Technical Stream Session 6: Mobile Agents and Aglets - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Technical Stream Session 6: Mobile Agents and Aglets

Description:

Mobile Java object that can visit Aglet enabled hosts ... Send an aglet to another context, either locally or on a new host. Retraction ... – PowerPoint PPT presentation

Number of Views:298
Avg rating:3.0/5.0
Slides: 24
Provided by: compLa
Category:

less

Transcript and Presenter's Notes

Title: Technical Stream Session 6: Mobile Agents and Aglets


1
Technical Stream Session 6Mobile Agents and
Aglets
Distributed Systems
  • CSC 253
  • Paul Grace

2
Overview of the Session
  • Introducing Mobile Agents
  • What are agents and mobile agents?
  • Mobile agents versus client-server
  • When to use mobile agents
  • Mobile agent toolkits
  • A example mobile agent toolkit Aglets
  • The Aglet architecture
  • Mobile agent programming
  • Sample Aglets

3
What is an Agent?
  • An agent is a software program that acts on
    behalf of a user, or another software program
  • Typically used to retrieve and process
    information
  • Execute persistently (rather than on demand)
  • The agent decides when to take action
  • Types of Agent
  • Autonomous agents
  • Use AI techniques to modify how they reach their
    objective
  • Distributed agents
  • Executed upon multiple distinct machines
  • Multi-agent systems
  • Distributed agents that co-operate to reach a
    goal
  • Mobile agents
  • Agents that relocate

4
Examples of Stationary Agent Applications
  • E-mail filtering
  • Continuously monitor incoming e-mail, decide how
    to process is it spam? Important? etc.
  • Data Mining
  • Crawl the Web to collect data on a topic
  • E-Commerce
  • Book the cheapest holiday
  • Flights, hotel, hire car etc.

5
What is a Mobile Agent?
  • Mobile agents are a distributed computing
    paradigm
  • A mobile agent migrates from one machine to
    another under its own control
  • Decides which locations to visit and what
    commands to execute
  • Interaction with the original source isn't
    required
  • Suspend execution at any time and migrate to a
    new host

6
Levels of Mobility
  • Evolution of Mobile Agents
  • Mobile code transfer of code
  • Mobile objects transfer of code data
  • Mobile agent transfer of code data thread
    directive
  • Or
  • Weak Mobility
  • Mobile agent carries code and data. Execution has
    to start from beginning after transfer
  • Data state global state
  • Strong Mobility
  • Mobile agent carries code, data and execution
    state
  • Data state global state
  • Execution state local variables and threads
    state

See Lectures on Mobile Code in Java
7
Mobile Agents versus Client-Server
  • Remote Procedure Call
  • One computer invokes operations on another
  • Continuous exchange of request and response
    messages
  • Mobile Agents
  • Client sends and receives 1 message --gt mobile
    agent
  • Client is still continuously interacting with the
    server
  • However, there is NO continuous network
    communication

Network
8
The Advantages of Mobile Agents
  • Reduce bandwidth consumption and network load
  • Local communication between agent and host
  • Act autonomously
  • Well suited to distributed mobile applications
  • Limited resource devices
  • Processing can be moved to resource rich devices
  • Frequent network disconnections
  • Rather than deal with network exceptions, the
    agent migrates when a connection is available

9
When to use mobile agents
  • Mobile agents are not a substitute for
    client-server
  • Or any other paradigm youve learned about
  • Group communication (JGroups), Messaging (JMS),
    etc.
  • They are an alternative approach that for certain
    application types can provide benefits
  • As a distributed systems engineer you must decide
    the correct paradigm, based upon
  • legacy systems
  • Security
  • Mobile environment
  • etc
  • I.e. use the knowledge learned in this course to
    choose when agents are best

Which approach should I use?
10
An Example Mobile Agent Application
  • Information foraging
  • Agents starts on the users home machine ? Task
    find all text written by G.S. Blair
  • Agent travels to each site hosting a distributed
    library and interacts with a retrieval agent to
    get the documents
  • As the agent travels it merges the results into a
    single report ? task result
  • To optimise the task, the original agent spawns
    mobile child agents that retrieve the data in
    parallel.

11
Mobile Agent Toolkits
  • Provide the infrastructure for mobile agents ...
  • to interact with a local computer system this is
    known as acontext for mobile agents to reside
    and execute
  • to move from host to host
  • to communicate with other agents and hosts
    through message passing
  • These toolkits are normally Java-based e.g.
  • Aglets
  • Concordia
  • JADE
  • OAA
  • TACOMA (C)
  • and others

12
Mobile Agent Toolkits Conceptual Architecture
Application
Application
Agent Execution Environment
Agent Execution Environment
Agents place of execution
Messaging Subsystem
Messaging Subsystem
Handle transport of messages and agents
Communication Infrastructure
13
Java Mobile Agents
  • Java is well suited to mobile agents because of
    the following properties
  • 1. Platform independence
  • Allow agents to move in a heterogeneous network
  • 2. Security
  • Secure servers against incoming agents
  • Remember sandboxing and the security manager
  • 3. Dynamic class loading
  • Execute an incoming agent
  • 4. Object serialisation
  • Remember the Lecture on RMI Mobile Code
  • Stub distribution an example of mobile code
  • Agents are another example of how to use mobile
    code

14
Aglets
  • Java based mobile agent toolkit developed by IBM
  • Now available as open source under the IBM
    public license
  • The name originates from agentapplet Aglet
  • Aglet properties
  • Mobile Java object that can visit Aglet enabled
    hosts
  • Executes in a Context there may be many contexts
    on a node
  • An Aglet server hosts N contexts
  • Aglet Aglet state (variable values) Aglet
    code (Java class)
  • Autonomous
  • Runs in a separate thread when it arrives at a
    host
  • Reactive
  • Responds to messages that are sent to it. A
    message is an object exchanged by by aglets
  • Message passing is synchronous and asynchronous
  • Is unique
  • A globally unique identifier is bound to each
    aglet
  • Mobility level weak mobility

15
Aglet Operations
  • Creation
  • Create a new aglet in a context and start its
    execution
  • Cloning
  • Create a copy of an aglet, with a unique ID
  • Dispatching
  • Send an aglet to another context, either locally
    or on a new host
  • Retraction
  • Pull an aglet from its current context back to
    the requesting context
  • Deactivation/ Activation
  • Halt and restart the aglets execution
  • Disposal
  • Halt aglet execution and remove it from context

16
The Aglet Lifecycle
Dispose
Context Two
Context One
Clone
Dispatch
Aglet
Aglet
Retract
Activate
Deactivate
Class File
Disk Storage
17
The Aglet Programming Model
  • Event based programming model
  • Aglets have listeners which catch events in the
    lifecycle of the aglet
  • Clone Listener
  • About to be cloned, after cloning
  • Persistence Listener
  • After activation, or about to be deactivated
  • Etc..
  • MobilityListener Interface for receiving
    mobility events
  • onDispatching(mobilityEvent)
  • Invoked when aglet is being dispatched
  • OnReverting(mobilityEvent)
  • Invoked when the aglet is being retracted
  • onArrival(mobilityEvent)
  • Invoked when aglet has arrived at its destination

You override these methods with the aglet logic
Okay, Ill say hello!
Youve Arrived!
18
Aglet Creation and Management
  • Aglets are created and managed per context
  • The Context API interface? AgletContext
  • CreateAglet(CodeBase, ClassName, Args) returns a
    proxy to the created aglet
  • Others getAgletProxy, getAgletProxies, etc..
  • You manage an aglet by calling methods on the
    proxy using the Aglet API interface ? AgletProxy
  • This can be done remotely (so a proxy is similar
    to an RMI stub)
  • Clone() Create a copy of this aglet
  • Dispatch(destination) Send the aglet to a
    destination
  • Dispose() destroy the aglet
  • and others, etc

19
Writing an Aglet
import com.ibm.aglet. / DisplayAglet
Displays text in the message area on its aglet
viewer. / public class DisplayAglet extends
Aglet public void run() setText("Hello,
world! I am " getClass().getName() ".")
All Aglets inherit the Aglet super class were
saying this is an aglet!
What happens when the aglet is executed
20
Simple migration
public class HelloAglet extends Aglet public
void atHome(Message msg) setText("I'm
back.") dispose() public void
onCreation(Object init) setMessage("Hello
World!") itinerary new SimpleItinerary(this)
home getAgletContext().getHostingURL().toStr
ing() public void sayHello(Message msg)
setText(message) try itinerary.go(h
ome, "atHome") catch (Exception ex)
ex.printStackTrace()
When I arrive home delete myself
When created, setup an Itinerary (where to go)
When dispatched, this method is called (see next
slide). Makes itself go home
21
/ Starts the trip of this aglet to the
destination / public synchronized void
startTrip(Message msg) // get the address
for trip String destination
(String)msg.getArg() // Go to the destination
and Send "sayHello" message to owner(this
) try itinerary.go(destination,
"sayHello") catch (Exception ex)
ex.printStackTrace()
Called by the initiator or could be called from
run()
Dispatch the agent note it calls a specific
method on arrival
22
Delving Deeper
  • Use the toolkit, its available at
  • http//aglets.sourceforge.net/
  • There is much more to Aglets
  • Message passing between Aglets
  • 3 Styles
  • One way
  • Request-Response
  • Asynchronous Messaging
  • You can create sophisticated migration and
    meeting patterns for aglets
  • How and when aglets choose to move
  • You can synchronise meetings between aglets at
    particular hosts
  • build your own applications to see what is
    possible

23
Expected Learning Outcomes
  • At the end of this sixth unit
  • You should know what a mobile agent is and be
    able to describe its characteristics
  • You should know the benefits of mobile agent
    programming and be able to compare it against
    client-server
  • You should know what types of applications are
    suited to mobile agents
  • You should be able to classify the mobility
    levels of example mobile agent toolkits
  • You should know what an Aglet is, and how the
    Aglet toolkit works
Write a Comment
User Comments (0)
About PowerShow.com