You are on page 1of 22

Java-Based Mobile Agents

Li Zhao
 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


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.

Server 1
Mobile Agent

Server 3 Server 2

8 Java-Based Mobile Agent

Client-Server Versus Mobile Agents

Client Client Client Client


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
 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
 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
 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,
 Agent transfer protocol
 Inter-agent communication protocol
 Debugging facilities

19 Java-Based 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.
 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

 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


Thank you!
Any Question???

22 Java-Based Mobile Agent