Remote Execution - Home | Georgia State University

Download Report

Transcript Remote Execution - Home | Georgia State University

Chapter 5.4
DISTRIBUTED PROCESS
IMPLEMENTAION
Prepared by:
Karthik V Puttaparthi
[email protected]
OUTLINE




Logical Model of Local and Remote Processes
Application Scenarios
Remote Service
Remote Execution
Process Migration
Mobile Agents
References
Logical Model [1]
Front end Stub Processes facilitate the
creation of and communication between
processes.
 Stub Processes
serve as a logical
Local Process
Remote Process
link making the
physical boundary
between the local and
Stub Process
Stub Process
remote processes
transparent.

CLIENT
SERVER
Application Scenarios [1]




There are three significant application
scenarios depending on how request
messages are interpreted.
Remote Service – Interpreted as a request for
known service at the remote site.
Remote Execution – Contain a program to be
executed at the remote site.
Process Migration – Represent a process
being migrated to the remote site for
continuing execution.
REMOTE SERVICE


Its primary application : resource sharing in distributed
systems.
Request message for remote service can be generated
at three different software levels.
• As remote procedure calls at the language level
• As remote commands at the operating system level
• As interpretive messages at the application level
Remote Procedure Calls At the
Language Level [3]

At language level for remote service requests

Most suitable model : RPC

It is service oriented and provides both access and
location transparency
At the System Level,
There are some frequently used commands that need to invoke
remote objects. These commands can be built in as part of the
command shell and recognized by the local operating system.
Example: rsh host –l user ls in Unix can list the home directory files of
the user, user on a remote host machine, host.
Remote Commands at the Operating
System Level [3]
User
invoke
Want to send message
Remote host
Some user-defined operations at remote host
Based on
the content
of message
Remote commands are limited only to shell
commands. The concept can be generalized to
process messages.
Stub process at Server site has capability of
-- Interpreting messages sent from client stub
-- invoking respective operations
Example is ftp. The stubs are the ftp daemon processes. They interpret messages
such as get and put for downloading and uploading files.
Interpretive Messages at the
Application Level
Remote operations are initiated by
Remote procedure calls, remote
commands and interpretive
messages
Constrained to Services that are supported at the
remote host
Primary Implementation Issues
I/O Redirection
Client stub
copies
Server stub
copies
Security
Client process’ standard input to the
remote command
Standard output and error of the remote
command to client process
Access to remote
resources required
authorization
REMOTE EXECUTION [1]
• Remote operation initiated by client is created by the client
• Message sent from client to server is client program to be executed at
the server
•Remote Execution or Processor Pool model – Selected host may be a
system with specific resources for load sharing.
Selected host
System with specific resources
for resource sharing
System with purpose of
load sharing
Remote Execution
Remote Service
Implementation issue
Load sharing algorithm
location independence
system heterogeneity
protection and security
Load Sharing Algorithm [4]





Practical Implementation
Each Process server maintains list of
registered hosts.
First step is to select remote host
Client process server indicate Resource
requirement to process server at remote site
If authenticated and its resource request can
be met, Server grants permission for remote
execution
LOCATION INDEPENDENCE
Process created by
remote execution
require
Coordination to accomplish
common task
So, it is necessary to support logical view for the processes
Each remote process is represented by an agent process at the
originating host
SYSTEM HETEROGENEITY
If remote execution is invoked on heterogeneous host
It is necessary to recompile the program
Overhead may be too high
Solution
Use canonical machine-independent intermediate language for
program execution.
PROTECTION AND SECURITY
Remote execution
powerful
Foreign code image can be Trojan horse
To Achieve Protection and Security,
• Accept only remote execution in source or intermediate codes
• Language used to describe a remote execution could be
restricted to exclude potential problems
• Run-time checking of parameters and stack overflow is also
necessary to protect the integrity of the remote hosts
PROCESS MIGRATION [2]
Time
Source Site
Destination Site
Process P1
:
:
:
:
Execution
suspended
Freezing
time
Transfer of
control
Execution
Resumed
:
:
:
:
Process P1
LINK REDIRECTION [2]
Total Freezing
Source
node
Suspended
Freezing
time
Pretransferring
Source
node
Destination
node
Destination
node
Migration
decision
Migration
decision
Transfer of
address space
Transfer of
address space
resumed
Merits:
easy implementation
Demerits: long delay time
Suspended
Freezing
time
resumed
Merits:
freezing time reduce
Demerits: total time extended
MESSAGE FORWARDING
Three types of messages:
1. Received when the process execution is stopped on the source
node and has not restarted on the destination node
2. Received on the source node after the execution started on
destination node
3. Sent to the migrant process after it started execution on
destination node
MESSAGE FORWARDING [2]
Origin
Origin
Receiver
Sender
Send
Sender
Send
ResendMigrate
Dest 1
Receiver
Migrate
Forward
Dest 1
Resend again
Migrate again
Migrate again
Dest 2
Resending messages
Messages of type 1 and 2 are either dropped
or negatively ack-ed, the sender is notified
and it needs to locate the migrant process
Ask origin site
Dest 2
Origin node keeps the info on the current
location of the process created there, all
messages are sent to origin which
forwards them to migrant process
MESSAGE FORWARDING [2]
Origin
Sender
Send
Send
Receiver
Forward
Link
Migrate
Dest 1
Forward
Link
Migrate again
Dest 2
Link traversal
Messages are queued and sent to
destination node as part of migration
procedure
Link is left on source node to redirect
messages, link contains the systemwide unique id of a process and its
last known location
MESSAGE FORWARDING
Origin
Sender
Send
Receiver
New location
Migrate
Send
Dest 1
New location
Send
Migrate again
Current location
Link Update
Dest 2
During the transfer the source node
sends the notification (link update)
of the transfer to all the nodes to
which the process communicates:
Messages are forwarded by the
source node
Messages are sent directly to the
destination node
MOBILE AGENTS [5]
• It is composition of computer software and data which is able to move
from one computer to another autonomously and continue its execution on
the destination computer.
• It refers to a process that can transport its state from one environment to
another, with its data intact
• Mobile agents can decide when and where to move next
• When a mobile agent decides to move, it saves its own state and transports
this saved state to next host and resume execution from the saved state.
Common applications include:
• Resource availability, discovery, monitoring
• Information retrieval
• Network management
• Dynamic software deployment
Mobile Agents


A mobile agent visits a collection of
ORBs.
In each ORB along its path, it can




install new components on the disk,
dynamically link new components,
inspect the state and configuration of the
ORB and the applications on top of it,
reconfigure ORBs and applications.
A Flexible Framework

Different NetworkBrokers support
different agent flavors. For example:



simple, lightweight, script-based agents
(carrying data and DCP commands only).
powerful, heavyweight, Java-based agents
(carrying data, bytecode, and dynamic state,
taking autonomous decisions).
Simple agents are suitable for PDAs,
embedded systems.
Reconfiguration with Mobile
Agents

SysAdmins use a GUI
to build agents for



reconfiguration
inspection
GUI is used to
1. Build distribution graph
2. Select reconfiguration
and inspection
commands
3. Visualize results.
Process Migration vs. Mobile
Agents
Process Migration
Mobile Agents
Navigational
Autonomy
Migration decision is made by
system.
Agents decide where and
where to go
Code Execution
Programs are fully compiled
and executed in native mode.
Most agents are coded in Java
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 destination.
Agents relinquish I/O
connections every time they
depart for their next
destination.
References
1.
2.
3.
Distributed operating system and algorithms
Randy chow, Theodore Johnson
A Framework for Process Migration in
Software DSM Environments
ieeexplore.ieee.org/iel5/6662/17807/00823407.pdf
…. ( 2000 )
http://birrell.org/andrew/papers/ImplementingRPC.
pdf
4.
http://www.informs-cs.org/wsc02papers/061.pdf
5.
http://en.wikipedia.org/wiki/Mobile_agent
Thank You!!