Agentopia

Agentopia - Java Mobile Agents Framework

Agentopia is a Java 5 framework which allows mobile agents (Java class bytecode and object state) to transmit themselves around a peer-to-peer network of Java virtual machines. Similar to Skype, it is designed to bypass firewalls for maximum usability.

Mobile agents are more flexible than traditional client/server software: They reside entirely on the server for the duration of the request, while the client may temporarily disconnect. Agents may then stay at the server or retreat to a third computer to wait until the client reconnects.

This flexibility is paid for with additional security issues. While the JVM allows mitigating many of those issues, denial of service attacks per RAM allocation or thread bombardment remain open. For the time being, I recommend Agentopia only for distributed computing purposes.

Features

  • Needs only one open port for all connections
  • Uses non-firewalled hosts as router when firewalled
  • Agents may use treasure keeping facility
  • Agents may use anonymizing technique
  • Serviteur interface to provide services to agents
  • Demo agents: Remote walker, File transporter, File servicer
  • Demo serviteurs: File server, Image processing, System info
  • No skeleton/stub installations like CORBA or RMI
  • GPL license allows code ripping and free use

Vision

Agentopia was started in 2001 as a research project at NTU Singapore with a rather broad focus, namely extending the possibilities of networked computing. Since that time, I have been polishing the framework from time to time, extended the framework and its test suite, tuned the multi-view GUI, and so on. I would call the current state a good alpha.

Until realtime operating systems plus JVMs with better time and space controlling are freely available, the only realistic purpose of the framework is in distributed computing. Using one instance per server, you gain a rather quick deployment mechanism: Whenever you use mobile agents, you can send them to all servers without restarting anything ("hot deployment").

A long term goal is to make software independent of the availability of any particular computer. A typical scenario would be: Start a request on your mobile phone, turn it off, and let the result deliver to your desktop at home, or to your notebook at work, depending on which is better reachable.

In the meantime, consider Agentopia for your research or distributed computing needs, and have fun!