P1254325723mSDok - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

P1254325723mSDok

Description:

IBM Aglets, Voyager, Mole. Mobile Agents (Weak Migration) Condor, Sprite, Olden ... Public class DispatchingExample extends Aglet { boolean remoteAgent = false; ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 24
Provided by: munehir
Category:

less

Transcript and Presenter's Notes

Title: P1254325723mSDok


1
CSS434 Process Migration Textbook 7.4.2 and
Non-Textbook Contents
Professor Munehiro Fukuda
2
Outline
  • Degree of mobility
  • Implementation Issues in Process Migration
  • State capturing
  • Address transfer mechanisms
  • Message forwarding mechanisms
  • Mobile agents
  • DAgent
  • IBM Aglets
  • UWAgents

3
Degrees of Mobility
Data Control Code Data State Execution State Navigational Autonomy Transfer Direction
Message Passing Move In/Out
RPC Move Move Out
Remote Execution Move Move Move Out
Code on Demand Move Move In
Process Migration Move Move Move Move Move In/Out
Mobile Agents (weak) Move Move Move Move Own In/Out
Mobile Agents (strong) Move Move Move Move Move Own In/Out
4
System Examples
Types Systems
Message Passing Socket, PVM, MPI
RPC Xerox Courier, SunRPC, RMI
Remote Execution Servlets, Remote evaluation, Tacoma
Code on Demand Applets, VB/Jscripts
Process Migration Condor, Sprite, Olden
Mobile Agents (Weak Migration) IBM Aglets, Voyager, Mole
Mobile Agents (Strong Migration) Telescript, DAgent, Ara
5
Remote Execution
  • Procedure code is sent together with arguments.
  • Server behaves like a general cycle server.
  • Server can evolve itself.

Client
Server
Main Program
Dispatcher
Function Object
Remote execution
Arguments
6
Code on Demand
  • Server behaves like a general remote object
    server.
  • A remote function/object is sent back as a return
    value.
  • Client executes the function/object locally.
  • Client execution control stays in local while
    suspended upon a request to a server.

Client
Server
Main Program func( )
Dispatcher
Remote Function Object
7
Process Migration
  • Selecting a process to be migrated
  • Selecting the destination node
  • Suspending the process
  • Capturing the process state
  • Sending the state to the destination
  • Resuming the process
  • Forwarding future messages to the destination

8
Process MigrationBenefits
  • Better response time and execution speed-up
  • Dynamic load balancing among multiple nodes
  • Using a faster CPU
  • Higher throughput and Effective resource
    utilization
  • Migrating I/O and CPU-bound processes to file and
    cycle servers.
  • Reducing network traffic
  • Migrating processes closer to the resources they
    are using most heavily.
  • Improving system reliability
  • Migrating processes from a site in failure to
    more reliable sites
  • Replicating and migrating critical processes to a
    remote.

9
Process MigrationState Capturing
  • CPU registers
  • Captured upon a freeze
  • Address space
  • Difficult to restore pointers
  • I/O state
  • Fast I/O Operations
  • Completed before a process migration
  • Durable I/O Operations like files and user
    interactions
  • Difficult to carry files in use and to
    freeze/restore system calls.
  • Necessity to maintain a connection with I/O
    established at the source node.
  • Some popular files available at the destination
    node

10
Process MigrationAddress Transfer Mechanisms
Pretransferring
Transfer-on-reference
Total Freezing
Source node
Source node
Source node
Destination node
Destination node
Destination node
Suspended
Migration decision
Migration decision
Migration decision
Suspended
Freezing time
Transfer of address space
On-demand transfer
Transfer of address space
resumed
Freezing time
Suspended
Freezing time
resumed
resumed
Merits quick migration Demerits large memory
latency
Merits easy implementation Demerits long delay
time
Merits freezing time reduce Demerits total
time extended
11
Process MigrationMessage Forwarding Mechanisms
Resending messages
Ask origin site
Origin
Receiver
Sender
Send
Send
Migrate
Dest 1
Forward
Migrate again
Dest 2
12
Process MigrationMessage Forwarding Mechanisms
(Contd)
Link traversal
Link Update
Origin
Origin
Receiver
Sender
Receiver
Sender
Send
Send
New location
Forward
Send
Migrate
Migrate
Send
Dest 1
Dest 1
New location
Forward
Migrate again
Send
Migrate again
Current location
Dest 2
Dest 2
13
Process MigrationHeterogeneous Systems
  • Using external data representation
  • Floating-point data
  • External data representation must have at least
    as much space as the longest floating-point data
    representation
  • Process migration is restricted to only the
    machines that can avoid the over/underflow and
    the loss of precision.
  • Architectural-dependent data representation
  • Singed-infinity and singed-zero
  • In general, process migration over heterogeneous
    systems are too expensive
  • Conversion work
  • Architectural-dependent representation handling
  • Always interrupting external data representation
  • Java

14
Mobile AgentsParadigm
Conventional Approach
server
client
Network
Mobile Agent Approach
client agent
server
client agent
Network
15
Mobile AgentsBenefits
  • Low network traffic and latency
  • Agents-server communication takes place locally.
  • Encapsulation
  • All code and data are carried with an agent.
  • Autonomous and asynchronous navigation
  • Agent disconnect communication with their client
    and visits servers as their own.
  • Run-time adaptability
  • Agents can dynamically load new objects as they
    migrate over network.
  • Robustness
  • Agents are active to get out of faulty nodes.

16
Mobile AgentsExecution Model - OMG/MASIF -
HW/OS
HW/OS
HW/OS
Region
Agent System
Agent System
Agent System
Place
Place
Place
Agent
Agent
Agent
Place
Place
Place
Agent
Agent
Agent
Agent
Agent
Agent
Communication infrastructure
Communication infrastructure
Communication infrastructure
17
Mobile AgentsDefinition of Agents and Places
  • Agents
  • State Execution state to be resumed upon a
    migration
  • Implementation Architectural independent code
  • Interface Facility to communicate with places
    and other agents
  • Identifier Agent identifier
  • Authority/Principal The owner of agent
  • Places
  • Engine Place to execute agents
  • Resource CPU, memory, database, etc.
  • Location IP logical location id
  • Principal The owner of place

18
Mobile AgentsProcess Migration v.s. Mobile Agents
Process Migration Mobile Agents
Navigational Autonomy Migration decision is made by system. Agents decide where and where to go by calling go( ) or hop( ) method.
Code Execution Programs are fully compiled and executed in native mode. Most agents are coded in Java and Tcl, and are interpreted by their execution engine.
Strong/Weak Migration Execution is resumed where it has been suspended. Java-based agents resume their execution from the top of a given method.
I/O State Long-term I/Os are forwarded to processes migrated to the desination. Agents relinquish I/O connections every time they depart for their next destination.
19
Mobile AgentsDAgent Strong Migration Example
proc who machine
// agent spawned from its parent global
agent set list foreach m machines
if ( catch agent_jump m result
// jump to a remote machine append list
m nunable to JUMP here (result)nn // jump
failed else set users exec who
// jump in success, execute who
append list agent(local-server)
nusersnn agent_send agent( root )
0 list // send a list to its parent
agent exit
The list of machines
New line
20
Mobile AgentsIBM Agelts Weak Migration Example
Public class DispatchingExample extends Aglet
boolean remoteAgent false public void
onCreation( object init )
addMobilityListener( new MobilityAdapter( )
public void onDispatching(
MobilityEvent e ) System.out.println(
The parent agent dispatched a child agent )
public void onArrival(
MobilityEvent e ) remoteAgent
true System.out.println( The child
agent arrived at the destination )
) public void run( ) if (
!remoteAgent ) try URL
destination new URL( (String)getAgletContext(
).getProperty( uw1-320-lab ) dispatch(
destination ) catch ( Exception e )
System.out.println( e.getMessage( ) )
else System.out.println( The
child starts run( ) at the destination )

Source
Destination
21
Mobile AgentsUW Messengers What Former CSS499
Students Developed
public class MyAgent extends UWAgent implements
Serializable MyAgent( ) MyAgent(
String args ) void init( )
String args new String2 args0
Integer.toString( 10 ) args1
Integer.toString( 3 ) hop( uw1-320-01,
power, String funcArgs ) void power(
String args ) base Integer.parseInt(
args0 ) exp Integer.parseInt( args1
) for ( int j 0 j lt exp j )
pow base System.out.println( host
getInetAddress( ) power pow ) hop(
uw1-320-02, factorial, String args )
void factorial( String arg ) base
Integer.parseInt( args0 ) fact 1
for ( int j base j gt 0 j ) fact
j System.out.println( host
getInetAddress( ) fact fact )
uw1-320-lab css434/hw3/uwagent
hop( )
hop( )
MyAgent power( )
MyAgent init( )
MyAgent Factorial( )
Uw1-320-02
Uw1-320-01
Uw1-320-00
22
System Comparison
  • DAgent
  • IBM Aglets
  • Ara
  • Mole
  • Discussions
  • Which systems use strong migration? How has
    strong migration been implemented?
  • Which systems use weak migration? Why did they
    end up with weak migration?
  • Which system uses the concept of agent proxy?
    What is the agent proxy?
  • Which system uses allowance? What is it?

23
Exercises (No turn-in)
  1. What are items to be taken into consider when
    migration decision is made?
  2. Why is address space transfer so difficult when
    pointers are involved? What is necessary to
    transfer data structures on memory to the
    destination?
  3. Why do mobile agents have more security concerns
    than process migration.
  4. What made it possible to implement java-based
    mobile agents?
  5. Why do java-based mobile agents need to take weak
    migration?
Write a Comment
User Comments (0)
About PowerShow.com