10.6 Managing Logical-Agency Networks 391
MirrorAndPush does not deﬁne a mapping of classes to code units, and, there-
fore, cannot be used for the initial migration of an agent. It ﬁrst loads
code units and data items from the agent’s home agency or last mirror
agency that are still missing and not deﬁned at the current agency. If
there is already a mirror agency, it is released and the current agency
becomes the new mirror agency.
MirrorAndPushWithoutCache works like MirrorAndPush, but disables the code
cache by default.
Worm works like a worm that roams the network and initializes each agency
that it visits to become a code ser ver. It does not transmit any code along
with its state transmission, but always loads necessar y classes from the
last agency it has visited before. It deﬁnes a single common code unit for
WormWithoutCache works like Worm, but disables the code cache by default.
10.6 Managing Logical-Agency Networks
The Tracy Domain Manager Service is an approach to construct and evolve a
network of agencies. It is indispensable if mobile agents are to move through
the network automatically.
The basic concept we employ is that of a logical-agency network.We
deﬁne a logical network as an undirected graph in which vertices represent
agencies and an edge exists between a pair of vertices if there is the possibil-
ity of transmitting mobile agents between the corresponding agencies. Not
all agencies are able to exchange mobile agents because of different trans-
mission protocols, ﬁrewalls, or private subnetworks that are only reachable
via a gateway server. A logical-network view is a necessary prerequisite for
a mobile agent to be able to move through the network in an autonomous
fashion. On each agency an agent can ask for this service for the neighboring
agencies and decide which agency to migrate to next.
Without such a network service, the agent’s programmer has to code the
agent’s itinerary into its business logic. Although this is sufﬁcient in many
applications and in small networks, it is not reasonable to deﬁne an agent’s
route in a wide-area network or in a dynamic environment (e.g., where