Software agents are a very powerful design metaphor for the development of complex object-oriented software systems. Mobile agents and mobile code can be used to design and build robust and fault-tolerant distributed systems. Mobile agents have applications in many areas including distributed information retrieval, network management, workflow management, and e-commerce.
This tutorial will provide an in-depth look at mobile agents and their application in modern networked computing. Mobile agents/code will be compared and contrasted with traditional client-server based tool such as CORBA. Design patterns for developing mobile agent applications will be presented. Several existing mobile agent frameworks will be discussed, including Aglets (IBM), Voyager (ObjectSpace) and Hive (MIT).
Code samples of actual agent implementations will be presented in Java using these frameworks. Custom implementations of mobile agents systems using Java\'s RMI (remote method invocation), Jini, and JavaSpaces will also be shown.
Finally, several applications of mobile agent systems, including a distributed workflow management system and a distributed information retrieval system, will be discussed in detail.'