Mobile Agents
2
Mobile (transportable) agents
An agent is “an independent software
program, which runs on behalf of a network
user”.
A mobile agent is a program that, once it is
launched by a user, can travel from node to
node autonomously, and can continue to
function even if the user is disconnected from
the network.
3
Agent
Server
Agent
Server
Agent server
File server
...
A mobile agent performs work
on behalf of a user as it
travels to multiple locations
on the network.
user
Database server
What is mobile agent ?
-Program that can migrate : where and how ?
-Performs some processing at each host
-Agent decides when and where to move next
-How it Move : on just three steps
*Save state
*Transport
*Resume
A Mobile Agent Dissected
AttributesStateCode
Program inProgram in
a suitablea suitable
LanguageLanguage
to defineto define
TheThe
behavior ofbehavior of
AgentAgent
-Set the-Set the
internalinternal
variablesvariables
-Resume-Resume
its activityits activity
afterafter
moving tomoving to
anotheranother
hosthost
-info-info
describingdescribing
the agentthe agent
-Its origin,-Its origin,
ownerowner
-Movement-Movement
historyhistory
--
AuthenticatAuthenticat
ion keyion key
6
Advantages of Mobile Agents
They allow efficient and economical use of
communication channels that may have low
bandwidth, high latency, and may be error-
prone.
They enable the use of portable, low-cost,
personal communications devices to perform
complex tasks even when the device is
disconnected from the network.
They allow asynchronous operations and true
decentralization
7
Mobile Agent Paradigm vs.
Client-Server Paradigm
. . .
T h e c l i e n t - s e r v e r p a r a d i g m
T h e m o b i l e a g e n t p a r a d i g m
c l i e n t h o s t s e r v e r h o s t
h o s t A
h o s t B
c o m m u n ic a t io n
d a t a
a g e n t
t r a n s p o r t a t io n
8
Basic Architecture
An agent server process runs on each
participating host.
Participating hosts are networked through
links that can be low-bandwidth and
unreliable.
An agent is a serializable object whose
execution state can be frozen for
transportation and reconstituted upon arrival
at a remote site.
9
Basic Architecture
a g e n t
s e r v e r
a g e n t s e r v e r
h o s t
m o b ile a g e n t
10
What’s in the Agent?
An agent is an object, hence it contains state data and
methods.
Among the instance data is an itinerary of the sites to be
visited, which may be dynamically constructed or
adjusted.
Other data may include an agent ID or other
authentication data.
The agent’s behavior at each stop can be pre-
programmed and dynamically adjusted.
Events in Mobile Agent
12
 Creation: a brand new agent is born and its state is
initialized.
 Cloning: a twin agent is born and the current state
of the original is duplicated in the clone.
 Dispatch: an agent travels to a new host.
 Deactivation: an agent is put to sleep and its state
is saved in persistent storage.
 Activation: a deactivated agent is brought back to
life and its state is restored from persistent storage.
13
 Retraction: an agent is brought back from a remote
host along with its state to the home machine.
 Disposal: an agent is terminated and its state is lost
forever.
 Communication: Notifies the agent to handle
messages incoming from other agents , which is the
primary means of inter-agent correspondence.
Why mobile agent ?
-They reduce the network load
-they overcome network
latency
-they encapsulate protocols
-they adapt dynamically
-they execute asynchronously
and autonomously
-they are natural heterogeneous
-they are fault tolerance
15
Mobile-agent applications
Information retrieval
Monitoring
Virtual market-place/ meeting room
Shareware
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
Levels of mobility
Weak
-when moving a mobile
agent Carrier (Code +
DateState)
-global or instance variables
-on moving , execution starts
from the beginning
Strong
-when moving a mobile agent
Carrier (Code + DateState +
Execution State)
-global or instance variables
- Execution State :local
variables and threads
-on moving : execution can be
continued from the point it is
stopped previously
18
Security in Mobile Agent Systems
• Security concern is the primary deterrent of
deploying the mobile-agent technology.
• There are concerns for both the agent hosts and
the mobile agents.
– Agent host concerns:
Malicious/unauthorized agents can misuse/destroy
system resources (e.g., worms).
– Agent concerns:
Malicious hosts can destroy or alter an agent’s logic,
( e.g., Mobile agent’s route can be altered.)
19
Security in Mobile Agent Systems
Measures:
Authentication – an agent must
authenticate itself to the host, and an agent
server must authenticate itself to the agent.
Encryption – an agent encrypts its
sensitive data.
Resource access – a host enforces strict
access control to its resources.
Current Areas of Work
mobile agent theories: Pi-calculus extensions, Mobile
Ambients, Agent Itineraries
mobile agent model: some component-based, AI-
based
mobile agent infrastructure: environment supporting
mobile agents - security, naming, domain crossing,
etc
mobile agent programming: languages, toolkits,
abstractions
mobile agent applications: mobile agent standards:
OMG’s MASIF, FIPA
Research Issues
Security: protect host from agents, protect agents
from agents, protect agents from host
Performance: if Java or Python, performance
penalties with interpretation (esp. for performance
critical applications), but not for long?
Strong mobility: move full execution state (stacks
etc), stacks not accessible with current Java?
MA management:
– how control and manage deployed agents
– issues: fault tolerance (e.g., agent fails, host
fails), recalling agents, tracking agents, servicing
agents (esp. longer living agents)

Mobile agents

  • 1.
  • 2.
    2 Mobile (transportable) agents Anagent is “an independent software program, which runs on behalf of a network user”. A mobile agent is a program that, once it is launched by a user, can travel from node to node autonomously, and can continue to function even if the user is disconnected from the network.
  • 3.
    3 Agent Server Agent Server Agent server File server ... Amobile agent performs work on behalf of a user as it travels to multiple locations on the network. user Database server
  • 4.
    What is mobileagent ? -Program that can migrate : where and how ? -Performs some processing at each host -Agent decides when and where to move next -How it Move : on just three steps *Save state *Transport *Resume
  • 5.
    A Mobile AgentDissected AttributesStateCode Program inProgram in a suitablea suitable LanguageLanguage to defineto define TheThe behavior ofbehavior of AgentAgent -Set the-Set the internalinternal variablesvariables -Resume-Resume its activityits activity afterafter moving tomoving to anotheranother hosthost -info-info describingdescribing the agentthe agent -Its origin,-Its origin, ownerowner -Movement-Movement historyhistory -- AuthenticatAuthenticat ion keyion key
  • 6.
    6 Advantages of MobileAgents They allow efficient and economical use of communication channels that may have low bandwidth, high latency, and may be error- prone. They enable the use of portable, low-cost, personal communications devices to perform complex tasks even when the device is disconnected from the network. They allow asynchronous operations and true decentralization
  • 7.
    7 Mobile Agent Paradigmvs. Client-Server Paradigm . . . T h e c l i e n t - s e r v e r p a r a d i g m T h e m o b i l e a g e n t p a r a d i g m c l i e n t h o s t s e r v e r h o s t h o s t A h o s t B c o m m u n ic a t io n d a t a a g e n t t r a n s p o r t a t io n
  • 8.
    8 Basic Architecture An agentserver process runs on each participating host. Participating hosts are networked through links that can be low-bandwidth and unreliable. An agent is a serializable object whose execution state can be frozen for transportation and reconstituted upon arrival at a remote site.
  • 9.
    9 Basic Architecture a ge n t s e r v e r a g e n t s e r v e r h o s t m o b ile a g e n t
  • 10.
    10 What’s in theAgent? An agent is an object, hence it contains state data and methods. Among the instance data is an itinerary of the sites to be visited, which may be dynamically constructed or adjusted. Other data may include an agent ID or other authentication data. The agent’s behavior at each stop can be pre- programmed and dynamically adjusted.
  • 12.
    Events in MobileAgent 12  Creation: a brand new agent is born and its state is initialized.  Cloning: a twin agent is born and the current state of the original is duplicated in the clone.  Dispatch: an agent travels to a new host.  Deactivation: an agent is put to sleep and its state is saved in persistent storage.  Activation: a deactivated agent is brought back to life and its state is restored from persistent storage.
  • 13.
    13  Retraction: anagent is brought back from a remote host along with its state to the home machine.  Disposal: an agent is terminated and its state is lost forever.  Communication: Notifies the agent to handle messages incoming from other agents , which is the primary means of inter-agent correspondence.
  • 14.
    Why mobile agent? -They reduce the network load -they overcome network latency -they encapsulate protocols -they adapt dynamically -they execute asynchronously and autonomously -they are natural heterogeneous -they are fault tolerance
  • 15.
  • 16.
    Mobile Agents inJava 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
  • 17.
    Levels of mobility Weak -whenmoving a mobile agent Carrier (Code + DateState) -global or instance variables -on moving , execution starts from the beginning Strong -when moving a mobile agent Carrier (Code + DateState + Execution State) -global or instance variables - Execution State :local variables and threads -on moving : execution can be continued from the point it is stopped previously
  • 18.
    18 Security in MobileAgent Systems • Security concern is the primary deterrent of deploying the mobile-agent technology. • There are concerns for both the agent hosts and the mobile agents. – Agent host concerns: Malicious/unauthorized agents can misuse/destroy system resources (e.g., worms). – Agent concerns: Malicious hosts can destroy or alter an agent’s logic, ( e.g., Mobile agent’s route can be altered.)
  • 19.
    19 Security in MobileAgent Systems Measures: Authentication – an agent must authenticate itself to the host, and an agent server must authenticate itself to the agent. Encryption – an agent encrypts its sensitive data. Resource access – a host enforces strict access control to its resources.
  • 20.
    Current Areas ofWork mobile agent theories: Pi-calculus extensions, Mobile Ambients, Agent Itineraries mobile agent model: some component-based, AI- based mobile agent infrastructure: environment supporting mobile agents - security, naming, domain crossing, etc mobile agent programming: languages, toolkits, abstractions mobile agent applications: mobile agent standards: OMG’s MASIF, FIPA
  • 21.
    Research Issues Security: protecthost from agents, protect agents from agents, protect agents from host Performance: if Java or Python, performance penalties with interpretation (esp. for performance critical applications), but not for long? Strong mobility: move full execution state (stacks etc), stacks not accessible with current Java? MA management: – how control and manage deployed agents – issues: fault tolerance (e.g., agent fails, host fails), recalling agents, tracking agents, servicing agents (esp. longer living agents)