36 Chapter 3 Mobile Agent Migration
3.1 The Mobile Agent Migration Process
3.1.1 Generic Framework for Agent Migration
The process of agent migration, although implemented differently in
each mobile agent toolkit, can be described using a general framework.
Introducing this framework also helps us deﬁne some terms, which we use
throughout this book.
A mobile agent is a software program that is, in most systems, executed
as part of a so-called mobile agent server software. This server software
controls the execution of agents and provides some basic functionality for
agent communication, agent control, security, and migration.
In this book
we will call this mobile agent server an agency. On each computer system
that wants to host mobile agents, an agency of the same type must be
All agencies that are able to exchange mobile agents form a logi-
cal network that we call a mobile agent system. To refer to a speciﬁc project
or product, for example Aglets [Lange and Oshima, 1998] or Grasshopper
[Bäumer et al., 1999], we use the notion agent toolkit. Each computer sys-
tem can host several agencies in parallel, and each agency is reachable by
at least one URL to which migration is directed. The URL also serves as a
name of the agency. For the moment we are not concerned with how the
agency is structured. (Some mobile agent toolkits subdivide a single agency
into several places. If the places are closed, agents in different places cannot
know, see, or communicate with each other.)
When an agent is created on an agency, that agency becomes the agent’s
home agency. The user who starts the agent is called the agent’s owner, and
the owner also deﬁnes the agent’s name. The owner information is important
1. Of course, it is possible to build a system of (mobile) agents by just letting an agent be a process.
Processes can communicate with each other by primitives offered by the operating system, and
even migration can be achieved with special distributed operating systems or can be provided as
the only service of the underlying mobile agent server software. Tacoma [Johansen et al., 1995] is
an example for such a system.
2. Recently, some research groups started to develop methods to make mobile agents interoperable
so that two different agencies will be able to exchange agents. See, for example, Pinsdorf and Roth
 and Gr imstrup et al.  for more information.