260 likes | 541 Views
Mobile Agents. Mouse House Creative Technologies Mike O’Brien. Outline. Introduction to Mobile Agents Where & Why use Mobile Agents Mobile Agent Architecture Some Problems Java based toolkit for Agents (ASDK) Introduction to Aglets Aglet Architecture The Road Ahead for Mobile Agents
E N D
Mobile Agents Mouse House Creative Technologies Mike O’Brien
Outline • Introduction to Mobile Agents • Where & Why use Mobile Agents • Mobile Agent Architecture • Some Problems • Java based toolkit for Agents (ASDK) • Introduction to Aglets • Aglet Architecture • The Road Ahead for Mobile Agents • Competing Technologies • Conclusions
Search engine Machine A Machine B What is a Mobile Agent? • Program that can migrate from system to system within a network environment • Performs some processing at each host • Agent decides when and where to move next • How does it move? • Save state • Transport saved state to next system • Resume execution of saved state
Why Mobile Agents: Motivations • Network Management Bottlenecks • Unnecessary Bandwidth Utilization (Client/Server) • Low bandwidth connections • Users let the agent roam on their behalf • Wait for results • Asynchronous transaction capabilities • Agents can have Intelligence • Making decisions • Process Information • Communicating with other Agents
Where are Mobile Agents Used Today? • Network Management Systems • Discovery Agents • Configuration Agents • Information Retrieval • Best price, interesting news, music, monitor stock market • Data Mining • Search Engines
Mobile Agent Architecture • Agent transfer protocols • Like all data transfer from one system to another, agents must adhere to a protocol • Agent execution support • Networked systems that use agents, must support an environment for them to run in • AEE ( Agent Execution Environment ) • Agent construction and applications • Construction tools allow users define the task, set the parameters and proceed to launch the agents onto the networks
Migration Technology • Common execution language • Interpretive scripting language • Java • Process persistence • convert the object's state (variables, stack, and possibly even the point of execution) into a data form suitable for transmission over a network. • Communication mechanism between agent hosts • TCP/IP, or even higher level HTTP
Agent Host Requirements • An agent host must allow multiple agents to co-exist and execute simultaneously • An agent host must allow agents to communicate with each other and the agent host • An agent host must be able to negotiate the exchange of agents • An agent host must be able to freeze an executing agent and transfer it to another host • An agent host must be able to thaw an agent transferred from another and allow it to resume execution
Agent Requirements • An agent must have its own unique identity • Agents must be able to determine what other agents are executing in the agent host • Agents must be able to determine what messages other agents accept and send
Problems • Security for hosts • As a system, how do I make sure that the agent I let into my AEE is not an “evil” agent? • Encrypted signature • Resource negotiation Security for agents • Security for agents • protection against hostile hosts that would seek to dissect or modify them • Little to protect agents from snooping eyes!
Mobile Agents in Java • A mobile agent in Java is called an “Aglet” • Light weight agent • Why use Java • Platform independence! • Create once, go anywhere • Price ….. FREE TOOLKITS ( ASDK ) • Hosts can provide an environment for the aglet to execute within
Developing A Mobile Agentusing the AGLETS SOFTWARE DEVELOPMENT KIT (ASDK) “An environment for programming mobile Internet Agents in JAVA”
ASDK System Goals • Easy and Comprehensive model for programming agents without modifying the Java VM • Support Dynamic and Powerful Communication with know and unknown agents • Design a harmonious architecture with existing Web/Java Technology
What are Aglets ? • Aglets are Java objects that can move from one host on the Internet to another. • When an Aglet moves it takes along its program code as well as its data. How Does the ASDK Work ?
Creating an Aglet • First we determine what our Aglet is going to accomplish (or do). • Extend the ABSTRACT class Aglet (this class is provided with the ASDK) • This abstract class provides the fundamental methods used to control both the mobility and the life cycle of the mobile agent.
Primary Methods for Lifecycle and Mobility Control * Some of these methods are final and cannot be overridden.
Aglets at Runtime • Currently aglets use the Agent Transfer Protocol (ATP) as a default implementation of the communication layer (ATP is modeled after HTTP) • Used on the Tahiti aglet server • Use the Aglets Server Interface to write application capable of hosting, receiving and dispatching aglets
Competing Technologies • Message passing systems • Remote Method Invocation (RMI) • Common Object Remote Broker Architecture (CORBA)
Conclusions • Advantages • Bandwidth & Performance • Working offline • Monitor or find information • Disadvantages • Security concerns for both hosts & agents • Tough competition