You are on page 1of 22

Java-Based Mobile Agents

Li Zhao
Outline
 Overview of Mobile Agents
 Evolution of Mobile Agent Paradigm
 Advantages of Mobile Agents
 Mobility Support in Java
 Limitations of java
 Generic Mobile Agent Architecture
 Java Mobile Agent Framework
 Issues/Obstacles
 Summary

2 Java-Based Mobile Agent


Mobile Agents

 what is a mobile agent?


– an executing program that
– can migrate under its own control
– in a heterogeneous network Definition

Search
engine

Machine A Machine B

3 Java-Based Mobile Agent


Evolution – grows out of three earlier technologies

 Process Migration (mid 1980s)


 Object Migration (late 1980s) and
 Remote Evaluation (1990-1995)

4 Java-Based Mobile Agent


Evolution… Process Migration (mid 1980s)
 Process migration allows a partially executed
process to be relocated to another node.
 Mainly used for load balancing.

 Did not allow a easy way to return data back


to the source node without the entire process
returning as well.
 The programmer (user) has neither control
nor visibility of migrating process

5 Java-Based Mobile Agent


Evolution… object Migration
 Object migration allows objects to be moved across
address spaces at different nodes.
– Requires mobility of object’s code and data.
 Emerald supported object mobility under program
control. (Univ. of Washington) (1986)
 Chorus distributed system (1988) supported object
mobility with autonomous control by the object.

 Most of these system supported migration in a


homogeneous system.
 Insufficient when applied to large scale settings

6 Java-Based Mobile Agent


Evolution… Remote Evaluation (1990-1995)

procedure code + data


Code transported
Client Server to the server
results (data)

 An one hop solution


 RE involves just a movement of code + data from one host to
another which is capable of carrying out the process where as for
MA we have active entities shipped over network (data, code,
execution state)

7 Java-Based Mobile Agent


Mobile Agent
A mobile agent is an object capable of autonomously
migrating from one host to another in a distributed
system to perform actions on behalf of its creator.

Client
Server 1
agent
(code+data)
Mobile Agent

Server 3 Server 2

8 Java-Based Mobile Agent


Client-Server Versus Mobile Agents

Client Client Client Client


Agent

Agent Agent

Server Server Server Server


Traditional Mobile Agent-Based

9 Java-Based Mobile Agent


Mobile Agent Advantages [Dennis Lange:]

 Reduce the network load


 Help in overcoming Network latency
 Encapsulate protocols
 Execute asynchronously and autonomously
 Adapt dynamically
 Naturally heterogeneous
 They are robust and fault-tolerant

10 Java-Based Mobile Agent


Mobility Support in Java
 Dynamic class loading
– Load classes either locally from the java class-path or through the net
work
 Weak mobility could be implemented by serializing
objects and sending them to another JVM via sockets
or RMI.
 JVM from SUN does not support a strong kind of agent
mobility
 Most security conscious
– Though still not adequate!
– Java’s security management supports development of fine-grain,
highly configured security policies.

11 Java-Based Mobile Agent


Limitations of Java

 No resource control
 Importance:
– Protect against denial-of-service attacks
– Prioritize tasks

12 Java-Based Mobile Agent


Limitations of Java

 No resource accounting
 Importance:
– Measuring resource consumption
 Charging / billing resource usage
– Observing behavior of code

13 Java-Based Mobile Agent


Generic Mobile Agent System Architecture

14 Java-Based Mobile Agent


Java Mobile Agent Framework -- Aglets (IBM)

 migration:
– agent calls dispatch method
– Aglets system calls onDispatching
– code and object state are transferred
– Aglets system calls onArrival
 security model is similar to Ara and D’Agents
– An agent’s code is signed by its author.
– Agent’s argument and resource allowance are signed by user.
– Agent moving to a new virtual place is accepted or rejected by
that place’s admission function.

15 Java-Based Mobile Agent


Java Mobile Agent Framework -- Concordia

 migration: code and data are moved, but not


thread/control state
 strong focus on security and reliability
 can queue agents, events, and messages
 agents are saved to persistent store before and after
transfer across network
 protects agents via encryption during transmission and
storage
 protects hosts from malicious agents by cryptographic
authentication of agent’s owner

16 Java-Based Mobile Agent


Obstacles – Security Issues

 Protecting network communication


 Protecting hosts from agents
– Illegal access
– Denial of service
 Protecting agents from hosts
– Tampering
– Extracting information

17 Java-Based Mobile Agent


Obstacles – Robustness Issues

 Fault Tolerance Issues


– Exceptions during agent’s remote execution
– Unavailability of server
– Loss of an agent during migration
 Status Monitoring and Control
– Support to monitor an agent’s status
– Support to recall or terminate an agent

18 Java-Based Mobile Agent


Obstacles – Programming Support

 Programming model and APIs


 Programming infrastructure and services
 Naming scheme for servers, agents,
resources
 Agent transfer protocol
 Inter-agent communication protocol
 Debugging facilities

19 Java-Based Mobile Agent


Summary
 A mobile agent is an object capable of autonomously migrating
from one host to another in a distributed system to perform
actions on behalf of its creator.
 Mobile agents have many benefits compared with traditional
models mentioned.
 Java has several features that directly support implementation of
mobile agents although it still has some limitations.
 We need further efforts to deal with many issues brought up by
mobile agents.

20 Java-Based Mobile Agent


References
 Mobile agents: Motivations and state-of-the-art systems, by
Robert Gray, David Kots, George Cybenko, Daniela
Rus,Dartmouth College
 Mobile Agent Programming in Ajanta, by Anand Tripathi,
University of Minnesota
 Java based Mobile Code, by Omer Rana, University of Wales, UK

21 Java-Based Mobile Agent


End

Thank you!
Any Question???

22 Java-Based Mobile Agent