Aglets is a mobile agent system that allows an agent to move with its code and execution state across the network to interact with other entities. Aglets utilizes Java RMI to support client-server inter-agent communication. However, Java RMI requires static stubs and skeletons to be precompiled and deployed at both the client and server before communication can take place. There are also issues of interoperability, where the single communication protocol is embedded in the Java RMI stubs and skeletons at compile time. Runtime connection to non Java RMI entities is therefore dificult if not impossible. In Aglets, the use of Java RMI runs counter to modern trends for late-binding and highly nomadic code in heterogeneous environments. To address these shortcomings, we have designed and implemented an alternative RMI architecture that is easily retrofitted into the existing Aglets distribution. We have adopted lightweight stubs generated dynamically by the client's supporting runtime environment, and a single generic skeleton deployed on the server's host machine. In addition, we use the SOAP protocol in our prototype to encode remote calls in XML documents to maximize interoperability, albeit at the expense of performance. These are incorporated into a component based communication stack that permits runtime configuration and selection of the protocols transparently to the agents involved. With our RMI architecture we have overcome considerable usability limitations in Aglets, extending Aglets by providing full access and relocation transparencies.
|Cite as: Lu, F. and Bubendorfer, K. (2004). A RMI Protocol for Aglets. In Proc. Twenty-Seventh Australasian Computer Science Conference (ACSC2004), Dunedin, New Zealand. CRPIT, 26. Estivill-Castro, V., Ed. ACS. 249-253. |
(local if available)