Mobile Agents: A New Paradigm for Distributed Object Computing on the WWW

Submitted to OOPSLA'96 Workshop
Toward the Integration of WWW and Distributed Object Technology

Daniel T. Chang and Danny B. Lange
IBM
dtchang@vnet.ibm.com and culange@trl.ibm.co.jp

Introduction

The Object Management Group (OMG) has been adopting and promoting technologies for distributed object computing since 1989. The central paradigm which ties all the technologies together is defined in CORBA (The Common Object Request Broker: Architecture and Specification), currently in Revision 2.0. CORBA essentially defines a synchronous message passing paradigm whereby objects are distributed, but stationary, and they interact with each other through message passing. Primitive data types, such as int, are passed by value, but objects are passed by reference. It is only recently that the OMG has started to address the need for asynchronous message passing, passing objects by value, and mobile agents. So far the focus has been on server objects, i.e., stationary objects which execute on the server and provide well-known services.

The World Wide Web (WWW) is a well-known phenomenon which started in 1991. It has rapidly become the dominant platform for network computing, both Internet and intranet. The World Wide Web Consortium (W3C) was formed to adopt and promote technologies for the Web, with particular emphasis on user interfaces and protocols. The WWW originated with a central paradigm of static information sharing. With the addition of Java, however, it has embraced distributed objects and is evolving into a full application development and delivery platform (e.g., Netscape ONE). So far the focus has been on Java applets, i.e., downloadable code executing on the client.

Recently there have been a lot of efforts reported on integrating the WWW with distributed object technologies (e.g., the Joint W3C/OMG Workshop on Distributed Objects and Mobile Code), particularly with CORBA. Some of the most significant ones involve building the so-called Java ORB (Object Request Broker), e.g., Java IDL and VisiBroker for Java, which allow downloaded Java applets to access services provided by CORBA server objects. As can be expected, it follows the synchronous message passing paradigm.

In this paper we advocate that mobile agents provide a new, alternative paradigm for distributed object computing on the WWW. The synchronous message passing paradigm is incomplete and needs to be enhanced in some fashion with additional paradigms such as asynchronous message passing, passing objects by value, and mobile agents. Mobile agents, on the other hand, can provide a single uniform paradigm for distributed object computing, encompassing synchrony and asynchrony, message passing and object passing, and stationary objects and mobile objects. Mobile agents, like particles in physics, are fundamental to distributed objects computing.

Mobile Agents

Mobile agents, or mobile objects, are objects that have code (behavior), data, execution state and itinerary. These are logically bundled together and can move as a single unit. This is in contrast to stationary objects which have code (behavior) and data. In both cases, the behavior is represented by interfaces. However, for stationary objects, since they do not move, the code and data can be platform dependent. Mobile agents, on the other hand, can move and, therefore, their code, data, execution state and itinerary must all be portable, or at least convertible from and into portable forms.

With mobility, mobile agents are embodied with the following unique and important computational characteristics:

Object passing
When a mobile agent move, the whole object is passed, i.e. its code, data, execution state, and itinerary are passed together.
Autonomous
The mobile agent has the information within itself to decide what to do and where to go.
Asynchronous
The mobile agent has its own thread of execution and can execute asynchronously.
Local interaction
The mobile agent interacts with other mobile agents or stationary objects locally. If needed, it can dispatch messenger agents or surrogate agents , which are all mobile agents, to facilitate the interaction.
Disconnected operation
The mobile agent can perform its tasks whether the network connection is open or closed. If the network connection is closed and it needs to move, it can wait until the connection is reopened.
Parallel execution
More than one mobile agent can be dispatched to different site to perform tasks in parallel.

Aglets Workbench

We have developed Aglets Workbench, a visual environment for building mobile agent applications in Java, to prove the concept and to demonstrate and facilitate the usage of mobile agents. Aglets Workbench contains the following major components for building mobile agent applications:

ATP (Agent Transfer Protocol) Framework
ATP is the standard protocol used to transfer mobile agents. It uses URL for resource location. This
framework consists of a set of classes which allow the creation of ATP daemons, opening of
connections to ATP resources, processing of ATP requests, and generation of ATP responses.
Aglets Framework
An Aglet (or aglet) is an agile agent or mobile agent. In addition to Aglet, this framework consists
of classes which provide the execution context, identification, proxy, and itinerary for an Aglet.
It also has a loader which is responsible for loading and unloading Aglets when they move.
Aglet Patterns
These consist of the following generic and useful aglet pairs:
  • Messenger-Receiver
    This allows one to create a Messenger aglet and dispatch it to a Receiver aglet to deliver messages.
  • Master-Slave
    This allows a Master aglet to create a Slave aglet and dispatch it to remote site(s) to perform tasks. Once the Slave aglet completes its itinerary, it returns and reports back to the Master aglet.
  • Notifier-Notification
    This allows one to create a Notifier aglet and dispatch it to a remote site to monitor events of interest. Whenever such an event occurs, the Notifier aglet will send back a Notification via a Messenger aglet.
  • Aglet Server
    This provides a graphical user interface to allow a user to easily dispatch, retract, and dispose an Aglet. It also performs management functions such as security management thread management, and logging.
    Aglet Launcher
    This allows a user to dispatch and retract an Aglet from an applet and, therefore, from a Web page. This is a key component which enables Aglets to serve as the mechanism integrating the WWW and, say, CORBA.

    Aglets Workbench is available for free download over the WWW. The ATP and Aglets Frameworks are the base technology for IBM's submission for the OMG Mobile Agent Facility. In addition to the above mobile-agent specific components, it also contains data access components (JoDax and JDBC) and a visual builder component (Tazza) which make it easy for a user to build mobile agent applications complete with data access back ends and visual front ends.

    Conclusion

    Our experience in developing Aglets Workbench and using it has convinced us that mobile agents are a new and viable paradigm for distributed object computing on the WWW. It is unique and powerful in that it provides a single paradigm which unifies:

  • mobile and stationary objects
  • object passing, message passing and data passing
  • autonomous and passive objects
  • asynchronous and synchronous processing
  • local and remote objects
  • disconnected and connected operations
  • parallel and sequential executions
  • Mobile agents have the added advantage of being scaleable over the WWW as a result of their computational characteristics.