An experimental Mobile Agent Platform
Description
AGNES is a PoC mobile agent system based on GNU/EDMA and developed to test run-time update solutions and to provide a base system to work on evolvable systems.The AGNES Mobile Agent System (MAS), uses GNU/EDMA components as agents so, an AGNES agent is a GNU/EDMA component able to move throughout a set of machines on a network.
Strictly speaking, only objects moves not the associated code, however the idea is to use the GNU/EDMA features to provide a system able to automatically install any component required. This is the EDNA system. You can find a technical report here.
Additionally, when GNU/EDMA fully supported scripting languages code migration will also be an option for the agents.
AGNES agents moves among agencies (MASIF nomenclature), which offers services to them in order to allow agents to carry out their work. Currently, only a very limited set of services are available in the distribution.
One of the use cases I'm considering is what I have called Pervasive Widgets. You can read a bit more about this here, and check the video on the left.
Note that this is alpha software and some features could not work right. You can download and try it (check the side bar on the right) but do not expect too much. Nevertheless the code will dramatically change when I get some spare time. Note also that the current version needs GNU/EDMA 0.18.2 that is only available at CVS.
Features and Status
The AGNES MAS has the following features:
- Component-based OO architecture
- Agents can be easily built using the provided helper classes:
- AGNES_ITINERARY: allows to define the set of host the agent will visit
- AGNES_AGENT: base class providing basic mobility capabilities
- Agency based architecture. Current agency services are:
- AGNES_DIRECTORY: allows to query agency about other agents
- AGNES_GRAVEYARD: check-point facility for agents to allow restarting on crash
- Example Agents for system testing
- AGNES_HELLO: A simple greeting agent
- AGNES_MONITOR: Harvest system information from a set of hosts
- AGNES_KILLER: Kills a gives agent from a server
- AGNES_ASPECT: Adds an Aspect to a running agent in a server
- AGNES_SCRIPT: Runs an script in a set of hosts
- Distributed scripting. Using GNU/EDMA additional classes it is very easy to write (perl, pyton and C#) scripts which can be converted in agents and then executed in several agencies in the net.
Screenshots
See the HELLO_AGENT moving through three hosts, and the HERMITs demo running on an OMAP Zoom2To launch this example run the following commands, each one in a different xterm:
$ agnes_server2 SOCKET_TCP://localhost:5000
$ agnes_server2 SOCKET_TCP://localhost:5001
$ agnes_server2 SOCKET_TCP://localhost:5002
$ launch_agent HELLO_WORLD Holly \
">SOCKET_TCP://localhost:5000,>SOCKET_TCP://localhost:5001,>SOCKET_TCP://localhost:5002"
Download
Agnes 0.1.1 [tar.gz] 467KbDependencies:
- GNU/EDMA 0.18.2
- Perl, Python for scripting (Optional and not fully working right now)
- Wendy optional for running HERMITs demo
Related Projects and Links
Other Mobile Agent Systems
· Gypsy
· Fargo
· AgentSpace
· Concordia
· Grasshopper
· Messengers
· MOA
· Tacoma
· Voyager
Specifications
· MASIF:
Mobile Agent System Interoperability Facility
· FIPA: Foundation for Intelligent Physical Agents
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Please send comments to dmartin AT uvigo DOT es