Mobile agents are essentially software entities that are capable of exhibiting autonomous behaviour. Unlike their static counterparts these agents can migrate from one networked node to another while also preserving their current states. These agents can carry as payload, intelligence in the form of programs and/or data and execute them as and when they land in host node. Such intelligent mobile agents can gather precious information in a distributed manner and also exchange the same amongst themselves. Mobile agents prove useful in fragile networks thanks to their autonomous and asynchronous execution capabilities. They can also be programmed to react dynamically to environmental changes making them highly robust and fault tolerant.
The use and applications of such agents is still a hot area of research. Their use has been grossly limited mainly because of the non-availability of an easy-to-use framework which can provide for their deployment, programming, testing and debugging. Available platforms offer weak mobility which is often provided via serialization and de-serialization (in Java). The agent code is converted to byte streams and sent to the next remote host where it is once again reassembled. Their execution at the new location starts afresh and not from the last state.
We are at present testing a version of a mobile agent platform developed here at the Robotics lab., nicknamed Typhon (not Typhoon!) that runs on LPA Prolog’s Chimera Agent System. The mobile agents can now be programmed using Prolog and can be made to migrate from one node in a real network to another.
The platform provides for –
- Creation of agents (Typhlets), Cloning (Typhclones) and their Migration
- Payload carrying ability
- Network management which include facilities for ascertaining hop times and average arrival and departure times and discovering one-hop neighbours
- Security implemented using token authentication
- Restore points which aid in debugging and real-world back-tracking.
- Dynamic Code alterations can be used to realize programs that evolve.
Typhon thus allows for emulation of distributed and bio-inspired algorithms in the real world. It empowers a researcher to shed the closed and theoretical world of simulation and facilitate algorithms to be run in actual scenarios with hardware-in-the loop.
The first version of Typhon is available for use and we have hosted it for download for those interested. Do check the downloads link.