DaAgent: A Dependable Agent-based Computing System

An agent-based computing model is a very attractive model for computing over the Internet. It is comprised of an active entity called mobile agent that performs a computation distributed over several nodes in a distributed system. While performing a computation, an agent moves independently and asynchronously from one node to another. A mobile agent differs from a traditional operating system process in two important characteristics: (1) Location Awareness: unlike a process, a mobile agent knows where it is executing in a distributed system at any point in time, and (2) Communication Awareness: unlike a process, a mobile agent is aware of the communication network and makes an informed decision to move from one node to another during execution.

While a mobile, agent-based computing model overcomes several limitations of the traditional client-server model of distributed computing when applied over the Internet, there are several fundamental research issues in the design, implementation, and deployment of mobile, agent systems over the Internet that have not been investigated in sufficient detail. These include agent security, agent fault tolerance, and interagent communication & synchronization.

We have designed and implemented a mobile, agent-based computing system called DaAgent. This system has been designed to investigate agent security, agent fault tolerance, and interagent communication & synchronization issues in a mobile, agent-based computing environment. The first version of the DaAgent system was implemented in C and allowed the construction of C agents. This system mainly focussed on the mobility and fault tolerance issues. A description of this system is available in the following publication:


The key limitation of the first version the DaAgent system was that it assumed the the underlying computing environment to be a homogeneous, distributed computing environment. The current version (Version 2) of the DaAgent system has been implemented using Java, allows the construction of Java agents, and runs on a variety of computing platforms including IRIX, Solaris, Linux, and Windows. We have developed several simple agent applications in DaAgent including an interlibrary loan service agent and a travel agency agent. A description of this system alongwith its computing environment is available from the following publications:


The DaAgent system is currently being used to investigate the agent security, agent fault tolerance, and interagent communication & synchronization issues.

DaAgent: Security

Because an agent-based system allows an agent written by a user to run on remote nodes, it opens up a plethora of security concerns. The security support in the DaAgent system includes (1) protection of the resources of a host from malicious agents that may visit it, (2) protection of an agent from malicious hosts on which it may run, (3) protection of an agent from malicious entities during its migration over the Internet from one host to another, and (4) protection of the complete computing system from denial of service attacks that may be launched by a malicious agent or a malicious user. The DaAgent system provides this security support using the Java 1.2 sandbox security model, the Java cryptography architecture, and the SSL protocol. A description of the security architecture of the DaAgent system is available from the following paper:

DaAgent: Fault Tolerance

One key reason for the complexity of performing computations over the Internet is that Internet is unreliable. Due to high communication load, link failures, or software bugs, transient communication failures and communication partitions are common in the Internet. In addition, nodes in the Internet constantly fail and recover. These failures cause three problems in a mobile, agent-based computing system: (1) a communication failure may prevent the migration of an agent from one node to the next, (2) failure of a node to which an agent intends to visit may force an agent to terminate prematurely, and (3) failure of a node may result in a premature termination of all agents running on that node.

The DaAgent system provides support for agent fault tolerance with a specific focus on the fact that the underlying computing environment is Internet. Three agent fault-tolerance protocols have been designed and implemented that allow agents to continue to execute correctly despite node or communication failures. In addition, two protocols have been designed and implemented to detect and terminate runaway agents that may be cerated either maliciously, or as a consequences of agent fault-tolerance protocols. A description of these protocols is available from the following publication:

DaAgent: Interagent Communication & Synchronization

With increasing use of the Internet for computing purposes and increasing acceptance of the mobile, agent-based computing model for Internet computing, more and more complex computations are being designed and implemented using the agent-based computing model. A large number of these applications consist of multiple agents that operate in parallel and need to interact with one another at various stages of their execution for exchanging information and synchronization. These interagent communication & synchronization requirements arise due to either the inherent distributed nature of the computations being constructed, or efficiency reasons. To support the construction of such computations, there is a need for well-defined interagent communication & synchronization models. The DaAgent system provides eight models of interagent communication & synchronization. Each of these models is based on specific requirements of various Internet applications. In addition to the traditional execution synchronization, the mobile nature of agents gives rise to another form synchronization namely location synchronization. Location synchronization allows two mobile agents to synchronize the location of their execution at various times during execution. The eight models of interagent communication & synchronization in the DaAgent system provide varying degrees of execution and location synchronization. A description of these models is available from the following publications:
Copyright © 2003 Shivakant Mishra