Agent Mobility"CREATE ONCE, GO ANYWHERE" |
|
|
AGENT MOBILITY
Similar to Applet mobile agents are sent across a network and run in the context of the host memory space. The key to agent mobility as opposed to Applet mobility is the fact that a mobile agent also carries its state. The state allows a mobile agent to continue execution where it left off. In addition to state, mobile agents have an itinerary. That is, mobile agents can travel sequentially to many sites. There are certain requirements of any system that supports mobile agents. First and foremost, is the requirement for platform independence. The mobile agent code must be able to run on any machine it visits. Next, the system must provide a security solution. Finally, the system must provide a context or environment for the mobile agent. Javas use of bytecodes, interpreted execution and sandbox make it an ideal candidate for mobile agent programming. There are several mobile agent frameworks based on Java. They include IBMs Aglets, General Magics Odyssey and Mitsubishis Concordia among others. Because they all use Java they employ the same general principles to implement mobility. There are many implementation details that differentiate between the systems. For a further look at the Aglet mobility see Aglet Overview. An agent maintains state at the application level and transports that state between distributed memory spaces using Javas serialization methods. Javas object serialization marshals and unmarshals the state of an object to and from a stream of bytes. An object is serializable if it implements either the serializable or externalizable interface. To understand how Javas serialization mechanisms relate to state it is necessary to understand some level of the JVM runtime data areas. Each JVM thread has a stack, containing the pc (program counter) register, local variables and partial results. The JVM doesn't allow direct access and manipulation of the execution stacks. Therefore any mobile agent system based on Java must use other mechanisms than the state of execution stacks and program counters to store the state. Because the the stack cannot be accessed, the state must be stored within the application (objects). The JVM uses a heap to allocate memory for runtime data for all class instances (objects) and arrays. For further information on the JVM runtime areas see http://www.javasoft.com/docs/books/vmspec/html/Overview.doc.html. Given the ability to encompass location in addition to identity, behaviour and state differentiates mobile agents from other objects like applets and servlets which in general follow the principle of request/response architecture of client/server. Mobile agents provide a new paradigm for distributed computing. For furhter information on the benefits of mobile agents see our Applications Section.
References and Useful Links http://www.trl.ibm.co.jp/aglets/spec11.html (Aglets Specification 1.1 Draft) http://www.javaworld/jw-05-1997/jw-05-hood.html http://www.meitca.com/HSL/Projects/Concordia/example.htm (Mitsubishi Concordia) http://www.genmagic.com/technology/techwhitepaper.html Mobile Agent Computing, A White Paper, Mitsubishi Electric TIA Horizon Systems Library, 1/19/1998 |
For problems or questions regarding this web contact [jalwan@shrike.depaul.edu].
|