Presentation on theme: "Comparison Study of Three Mobile Agent Systems Aglets, Grasshopper and Voyager Qunhua Zhao, Hua Wang and Yi Zhang Department of Computer Science and Engineering."— Presentation transcript:
Comparison Study of Three Mobile Agent Systems Aglets, Grasshopper and Voyager Qunhua Zhao, Hua Wang and Yi Zhang Department of Computer Science and Engineering University of Connecticut
What is Software Agent? Debated for a long time and no unique definition. End user view: An agent is a program that assists people and acts on their behalf. Agents function by allowing people to delegate work to them. System view: A software object that Is situated within an execution environment. Reactive, Autonomous, Goal-Driven, Temporally continuous. Communicative, Mobile, Learning, Believable. Lange, D and Oshima, M. (1998)
What is a Mobile Agent? An mobile agent is not bound to the system where it begins execution. It can transport itself from one system in a network to another, and resume its execution. It can bring its state to a new remote host.
Why Use Mobile Agents? Reduce Network load. Overcome network latency. Encapsulate protocols. Execute asynchronously and autonomously. Naturally heterogeneous. Robust.
Mobile Agents Applications. Electronic commerce: e.g. stock quote. Personal assistant: e.g. meeting scheduler. Distributed information retrieval. Monitoring and notification. Parallel processing. Game on the Internet.
What is the Mobile Agent System? An agent system is a platform that can create, interpret, execute, transfer, and terminate agents. Components: Agents. Places: an environment in which an agent execute.
Aglets System. A A A Network Daemon Security Manager Network User Interface
Agent System. Agents Place Engine Resources Host
Agent Properties. Interface Implementation State Identifier
Agent Transfer Resume Execution Deserialize Agent Decode Data Receive DataTransfer Data Encode Data Serialize Agent Suspend Execution SenderReceiver Network
Agent Code Transfer. Agent Class Code DestinationOrigin Class Code Server (c) Class at Server (b) Class at Origin(a) Class at destination
Life Cycle of a Mobile Agent. (Aglets example) Agle t Clone Context AContext B Class File Disk Storage CreateActiveDeactivate Dispose
Agents Travel Among Places within the Network. Agent place The Internet List of Locations place
Goal. Experience with agent programming. Focus on the performance comparison of different mobile agent systems. We define the performance of an agent system as the total completion time of a certain task by a program, which is implemented by this agent system package
Three Chosen Mobile Agent Systems. Aglets IBM http://www.trl.ibm.com/aglets/index_e.htm http://sourceforge.net/projects/aglets/ Grasshopper IKV++ http://www.grasshopper.de/ Voyager Objectspace Recursion Software http://www.recursionsw.com
Why Choosing these three Systems? Popularity Representative Aglets: Focus of mobile agent. Grasshopper: A mobile agent system built on top of a distributed processing environment. The first mobile system compliant to OMGs MASIF specification. Voyager: An agent enhanced ORB. Programming language (JAVA) Availability Compatibility to latest version of JDK (1.3.1/1.4.1) Document and support
Description of Three Agent Systems. AgletsGrasshopperVoyager Architecture and Components Aglets as agents, Context as host/interface to runtime environment. Mobile and Stationary Agents. Region, Agency, Place. Distributed object connected by an ORB. Space for broadcasting. Transport and Communication Technology Agent Transfer Protocol (ATP). Socket, RMI, CORBA, Socket+SSL, RMI+SSL Socket, CORBA, RMI, DCOM. Concept of Stationary Agent NoYesNo Control of Migration Agent itself or others. Communication Type Message passingMethod invocation
Description of Three Agent Systems. (cont.) AgletsGrasshopperVoyager Synchronous Communication Yes Asynchronous Communication Yes One-way Communication Yes Multicast Communication Yes Message Forwarding NoYes Scope of Directory Service HostRegionGlobal
Description of Three Agent Systems. (cont.) AgletsGrasshopperVoyager Internal Security Aglets Security Manager based on Java Security Manager Grasshopper Security Manager based on Java Security Manager Voyager Security Manager based on Java Security Manger External Security NoX.509 certification, SSL. No Documentation Incomplete (no API or Doc for new version) Complete. User guide and API. Complete. User guide and API. Technical Support Mailing list. Full support if licensed. Mailing list (link broken) Full support if licensed Version 2.02 (2002)2.2.4b (2002)4.5 Compatible JDK 1.3 or later 1.2 or later.
Agent Design Pattern (cont.) Traveling Itinerary: routes among destinations. Forwarding: a host forwards an arrived agent to another host. Ticket: objectifies a destination address and encapsulates the quality of service and permissions needed to dispatch an agent to a host address and to execute it there. Task Master-Slave: an agent delegate a task to another Plan: organize multiple tasks to be performed in sequence or in parallel by multiple agents.
Agent Design Pattern (cont.) Interaction Meeting: two or more agents initiate local interaction at a given host. Locker: defines a storage and come back for data later. Messenger: an agent carries a remote message from one agent to another. Facilitator: an agent provides services for naming and locating agents. Organized Group: travel together.
Experiment Design Search Agent Search Agent goes through a list of hosts one by one, collects information from them and finally reports to the sender. Coop Agents Coop Agents need to do a simple calculation job co- operatively while moving around within the network.
Experiment Design – Search Agent Search Agent goes through a list of hosts one by one, collects information from them and finally reports to the sender.
Experiment Design – Coop Agent Coop Agents need to do a simple calculation job co-operatively while moving around within the network.
Conclusion & Future Work Performance Comparison in our project Aglet performs best; Voyager is better than Grasshopper; Different JDK environment influenced the experiment result. It is one of reasons that Voyager is slower than Aglet.
Conclusion & Future Work (cont.) Compare system performance with different communication methods. Compare system performance with security settings. Voyager ORB 4.5. Improve robustness of the systems (configuration?) Experiments with Voyagers resource reuse.