Component-based Development of Mobile Agent Systems
Authors
Abstract
A mobile agent is a simple, natural and logical extension of the remote distributed object concept. It is an object with an active thread of execution that is capable of migrating between applications. By using mobile agents, the programmer is no longer confined to have static objects and perform remote invocations, but can program the objects to move directly between applications. In itself, a mobile agent is just a programming abstraction: an active object that can move when needed. It is a structuring primitive, similar to the notion of class, remote object or thread.The central argument of this thesis is that although the mobile agent concept is just a structuring primitive, the current mainstream middleware implementations do not convey it simply as such. In fact, they force all the development to be centered on mobile agents, provide poor integration with existing programming environments, do not integrate well with other middleware, and force the developers to depart from current object-oriented techniques. The objective of this work was to demonstrate that it is possible to create an infrastructure such that the mobile agent concept can be leveraged into existing object-oriented languages in a simple and transparent way, without interfering in the manner in which the applications are normally structured.
In order to achieve this goal, a component-oriented framework was devised and implemented, allowing programmers to use mobile agents as needed. Applications can still be developed using current object-oriented techniques but, by including certain components, they gain the ability to send, receive and interact with agents. The component palette was implemented using the JavaBeans technology and given the name M&M. Furthermore it was integrated with ActiveX, allowing programmers from any programming language that supports COM/ActiveX to take advantage of this paradigm.
To validate the soundness of the approach, a large number of applications have been implemented using M&M. Two application domains were of particular interest: agent-enabling web servers and disconnected computing. The M&M component framework allows any web server that supports the Servlet Specification to send, receive and use mobile agents. M&M provides a clean integration, requiring neither a custom-made web server nor a special purpose agent platform. Finally, supporting disconnected computing has allowed us to understand the current limitations of the framework in supporting very low-level operations.