Reliable mobile agents for distributed computing
The emergence of platform-independent, mobile code technologies has
created big opportunities for Internet-based applications. Mobile agents are
being utilized to perform a variety of tasks from personalized computing to
business-critical transactions. Unfortunately, these advances were not
matched by correspondent research into the reliability of these new
technologies. This work has been undertaken to investigate the faulttolerance
of this new paradigm.
Agent programs' mobility and autonomy of execution has introduced a new
class of failures different to that of traditional distributed systems. Therefore,
fault tolerance is one of the main problems that must be resolved to improve
the adoption of an agents' paradigm.
The investigation of mobile agents reliability in this thesis resulted in the
development of REMA (REliable Mobile Agents), which guarantees the
reliable execution, migration, and communication of mobile agents in the
presence of faults that might affect the agents hosts or their communication
We introduced an algorithm for the transparent detection of faults that might
affect agent execution, migration, and communication. A decentralized
structure was used to divide the agent dynamic distributed system into
network-partitioning proof spaces. Lightweight messaging was adopted as
the basic error detection engine, which together with the loosely coupled
detection managers provided an efficient, low overhead detection
mechanism for agent-based distributed processing.
The problem of taking checkpoint of agent execution is hampered by the
lack of the accessibility of the underlying structure of the JVM. Thus, an
alternative solution has been achieved through the REMA Checkpoint and
Recovery (REMA-CR) package. REMA-CR provides the developer with powerful classes and methods that allow for capturing the critical data of
The developed recovery protocol offers a communication-pairs, independent
checkpointing strategy at a low-cost, that covers all possible faults that
might invalidate reliable agent execution, migration and communication and
maintains the exactly once execution property.
The results and the performance of REMA confirmed our objectives of
providing a fault tolerant wrapper for agents and their applications with
acceptable overhead cost.