n Chapter 4, we looked at the migrating process, which can be considered to provide mobility
in the logical domain. In this chapter, we revisit logical mobility by considering the mobile
agent, which is an extension of the migrating process.
An agent is a computer program whose execution is contingent upon events and data
conditions in its environment and which is not under continuous, direct control by a human
user. Agents make an interesting topic of study because they draw on and integrate so many
diverse disciplines of computer science, including objects and distributed object architectures,
adaptive learning systems, artificial intelligence (AI), expert systems, genetic algorithms,
distributed processing, distributed algorithms, collaborative online social environments and
Agent technology is also interesting for its potential to solve some nagging productivity
problems that pester almost all modern computer users. Many agents are used as intelligent elec-
tronic gophers or automated errand boys. If we want them, for example, to search the Internet
for information on a topic, or assemble and order a computer according to our desired specifica-
tions, they will do so and inform us when they have finished.
Agents are not a new paradigm, as they have been researched earlier in the area of distributed
AI as intelligent agents. In this sense, they can be said to be the successors of the ‘actors’ of
Hewitt. The Web and Java language have given agents a new impetus, in the form of agent-oriented
Some of the many ways in which agents are useful are as follows:
• They simplify distributed computing
• They are intelligent resource managers
• They overcome user interface problems
• They act as personal assistants which adapt to the user
• They are particularly relevant to telecommunications. Telecommunications companies
account for the largest portion of agent research.
In this chapter, we will study mobile agent technology and see the characteristics and uses of
mobile agents, especially in relation to mobile computing. We shall see how agents are different
from other mechanisms like process migration, client/server architectures, etc. We shall visit
three mobile agent platforms and study their salient features. Finally, we shall discuss the merits
and demerits of Java language vis-à-vis design support for mobile agents.