What is a Mobile Agent?
Download
Report
Transcript What is a Mobile Agent?
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
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
Search
engine
Machine A
Machine B
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 Agent
using 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 ?
Aglet API Overview
Aglet API Overview
Aglet
Abstract class which defines the
fundamental methods
Aglet Proxy
Handle of the aglet, provides common
means of access (obtain proxy agent)
Message
Communicate through message exchange
Now-Type, Future-Type, Oneway-Type
Aglet Context Interface to communicate with the
runtime evironment
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
Method
Behaviour
dispose()
Dispose of the aglet
Dispatch(URL)
Dispatch the aglet to the
destination specified in the URL
Deavtivate(duration) Instruct the aglet to store itself
into a persistent medium
GetAgletInfo()
Get information on the aglet
* Some of these methods are final and cannot be overridden.
Specifying Behaviour
Method
Behaviour
onCreation()
Called upon creation of the object
onDisplay()
Called just after the dispose method is
called, used to release resources
run()
Called whenever instance is created or
resumes, Define Common Tasks
handleMessage() Performs task according to the kind of
message received
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
Future Applications
Future Applications 2
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