Nomadic Pict: Language and Infrastructure Design for Mobile Computation

Ph.D. Thesis, Computer Lab., University of Cambridge, March 2000

Abstract

Mobile agents - units of executing computation that can migrate between machines - are likely to become an important enabling technology for future distributed systems. We study the distributed infrastructures required for location-independent communication between migrating agents. These infrastructures are problematic: the choice or design of an infrastructure must be somewhat application-specific - any given algorithm will only have satisfactory performance for some range of migration and communication behaviour; the algorithms must be matched to the expected properties (and robustness demands) of applications and the failure characteristic of the communication medium. To study this problem we introduce an agent programming language - Nomadic Pict . It is designed to allow infrastructure algorithms to be expressed clearly, as translations from a high-level language to a lower level. The levels are based on rigorously-defined process calculi, they provide sharp levels of abstraction. In this dissertation we describe the language and use it to develop a distributed infrastructure for an example application. The language and examples have been implemented; we conclude with a description of the compiler and runtime system.

The content is as follows. In Introduction we describe background work, focusing on issues of migration and communication transparency in process mobility, distributed objects, and mobile agent systems. In Model , we describe the syntax and operational semantics of our agent calculus, which extends an asynchronous pi-calculus. Then, we briefly discuss design choices in related calculi and two other non-calculi models. In Language , we describe Nomadic Pict: the language principles, syntax, and programming idioms. We compare with two other related languages. In Infrastructure , we describe many algorithms for location-independent communication, expressing two simple infrastructure algorithms (central server and forwarding pointers) as translations in Nomadic Pict. In Applications , we discuss various applications of mobile agents, matching examples with suitable infrastructures. Then, we develop in steps a non-trivial distributed infrastructure for an example application of a Personal Assistant. The focus is on demonstrating the benefits of a multi-level architecture based on clearly defined levels of abstraction. We begin with a simple centralised algorithm, which evolves to match application demands of scalability (execution on wide-area networks) and support for disconnected operation (on laptop computers). Finally, we describe the current implementation of Nomadic Pict.

Back to my home page.