The context of MARS is a virtual world of connected sites, where mobile agents roam from site to site in order to carry out their job. A Mobile Agent is a software entity with the capability of actively changing its execution environment, by moving in a network-aware fashion. An Execution Environment (EE) is a logical place where agents can exploit resources. A system that manage mobile agents is called Mobile Agent System (MAS).
What is MARS?
MARS enables agents to coordinate with other entities they encounter in thier nomadic life. It is not another MAS, but it works in conjunction with a MAS, such as Java-To-Go (from University of California, Berkley), or Odyssey (from General Magic Corporation, Cupertino, California). MARS implements a coordination architecture based on Linda-like tuple spaces, associated to each execution environment, where agents can store and retrieve messages in a spatial and temporal uncoupled way. In addition, MARS is programmable, i.e., agents can associate reactions to the operations made on the space. Programmability of tuple spaces leads to more flexible and secure interactions.
MARS is implemented in Java, and can be connected to Java-based MAS. MARS follows the specifications of JavaSpace. The tuples are Java objects, and agents retrieve/store them by using Linda-like operations, sunch as:
- read - reads a tuple from the space
- take - reads and deletes a tuple from the space
- write - stores a tuple in the space
The tuples are retrieved by an object-oriented associative mechanism. Reactions are stored as tuples in a meta-level tuple space. Putting and extracting tuples from the meta-level tuple space means installing and de-installing reactions.
How does it work?
When an agent arrives at a site (step a in the figure), the agent system gives it a reference to the local tuple space (step b). The agent can access the tuple space to store or retrieve messages (step c). If a reaction is associated to the performed operation, it is executed (step d).
How can you make it work?
The MARS package comes with a very easy to use graphical interface with which you can write tuples into the local tuple space, install and de-install reaction, launch agents. The Interface consists of Java applets, we can be easily adapted to provide Web access to MARS administration.