This article discusses four different applications where mobile agents cooperate with one another to accomplish a task in a network of processes. These applications range from topology discovery and distributed data structure implementation to fault diagnosis and system stabilization.
IntroductionA mobile agent is a piece of code that migrates from one machine to another. The code (often called the script), which is an executable program, executes at the host machine where it lands. In addition to the code, agents carry data values or procedure arguments or results that need to be transported across machines. Compared to messages that are passive, agents are active, and can be viewed as messengers.Mobile agents are convenient tools in distributed systems, both at the applications layer and as well as at the middleware level. The promise of mobile agents in bandwidth conservation or disconnected modes of operation is now well accepted. Deploying multiple mobile agents cooperating with one another can add a new dimension to distributed applications. While parallelism is the obvious advantage, the issues of load balancing, agent rendezvous, and fault tolerance play major roles. Among numerous possible applications, we highlight the following four problems, each with a different flavor of cooperation.Mapping of an unknown network. Network mapping is also known as the topology discovery problem. Making such a discovery using a single mobile agent is equivalent to developing an efficient algorithm for graph traversal. With multiple agents, the challenge is to develop an efficient cooperation mechanism so that the discovery is complete in the fewest number of hops and redundant traversals are avoided.Concurrent reading and writing. A distributed data structure has different components mapped to host machines at different geographic locations. As multiple agents concurrently access such a distributed data structure, the reading agent the writing agent need to be properly synchronize their operations so that the semantics of data sharing are preserved.
Black hole search.A black hole is a node that can potentially capture a visiting agent and thus, disrupt an application. Although it implies a malicious intent on the part of the host, a black hole can be as simple as a crashed node. If black holes can be located, then traversal paths can be rerouted without incurring further loss of mobile agents.Stabilization. Transient failures occasionally corrupt the global state of a distributed system, and stabilization is an important technique for restoring normal operation. To stabilize a network, a mobile agent patrols the network, and plays the role of traveling repairperson. Multiple agents can expedite the process of stabilization, but in doing so, some synchronization issues need to be resolved. We will address how multiple agents can be deployed for maximum speedup of a stabilizing application.This article has seven sections. Section 2 describes the model and the notations. Sections 3 through 6 address the four problems high...