Authors:
Fritz Hohl,
Joachim Baumann,
Markus Straßer
Affiliation: The authors are members of the research staff of
the IPVR
(Institute of Parallel and Distributed High-Performance Systems)
of the University of
Stuttgart, Germany. They are part of the
Mole
project, which deals with research in the Mobile Agent area and with
the construction of an object-oriented
Mobile Agent system with the same name, which uses Java as one agent
language.
Contact author:
The W3 is a very popular and still rapidly growing information system, but there are areas which are unsuitable to the current web techniques. "Mobile code" approaches like Java or the "interacting distributed objects" model of CORBA try to solve some of the disadvantages of the existing web, but they either lack a more general interaction and communication model (e.g. Java) or the possibilities to transfer code and the right distribution granularity (e.g. CORBA).
An approach that provides both mobile code and interacting objects (or object clusters) is the object-oriented Mobile Agent model. A Mobile Agent is a special object that has a data state (other non-agent-objects), a code state (the classes of the agent and the other referenced objects) and an execution state (the control threads running in the agent). A Mobile Agent is active because it may follow a program, mobile because it may migrate from host to host, and autonomous because it doesn't need to consult a human or non-human supervisor (it may if it wants of course).
A Mobile Agent is executed in a secure manner (because nobody wants to host e.g. "worms") by an agent server. Agent servers are mainly runtime environments for the agent languages, and Mobile Agents can't execute without them. Two important components of an agent system are traders and accounting mechanisms. Traders may return a list with agent addresses according to a service specification given in a request. Accounting mechanisms allow the system to stop agents that have exceeded their resources or to give more resources to agents that provide services deemed useful to the system or other agents. As in Java, Agent languages don't consist of only normal language elements like control structures and variables, but also platform independent GUI elements. These elements allow an application to work on every supported platform on one hand and without the restrictions of a limited presentation model like HTML on the other hand.
The agent servers communicate with each other via normal CORBA interaction (i.e. RPCs), they may support different object-oriented languages (due to the availability of CORBA IDLs for different languages) and they use some of the CORBA services e.g. externalization, persistence (for fail-safe execution), database access etc., thus putting a layer on top of CORBA that knows how to migrate agents, how to execute programs safely and so on.
A scenario for the use of Mobile Agents for WWW would consist of agent servers at web servers and clients. Some of the immediate benefits of this technology would be:
Apart from the impacts on existing web technology, the mobile agent model
may make the client-server approach redundant, because Mobile Agents
systems implement not only client-server, but also peer-to-peer
interaction, combined with asynchronous execution.
This may result in a system