ch5 4 Fall 2007 by XM46j3gN


									Chapter 5.4


               Prepared by:
          Karthik V Puttaparthi

   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.                  CLIENT             SERVER

 Stub Processes
  serve as a logical      Local Process     Remote Process

  link making the
  physical boundary
 between the local and
 remote processes          Stub Process      Stub Process

    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.

    Its primary application : resource sharing in distributed
    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]

               Want to send message
   User                                Remote host                Based on
                                                                  the content
      invoke                                                      of message
                    Some user-defined operations at remote host

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 procedure calls, remote
   Remote operations are initiated by
                                                commands and interpretive
       Constrained to Services that are supported at the
       remote host
                            Primary Implementation Issues

               I/O Redirection                                 Security

Client stub            Client process’ standard input to the      Access to remote
                       remote command                             resources required
              copies                                              authorization
                       Standard output and error of the remote
Server stub
                       command to client process
• 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                System with purpose of
     for resource sharing                          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

Process created by               Coordination to accomplish
remote execution      require    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
    If remote execution is invoked on heterogeneous host

         It is necessary to recompile the program

               Overhead may be too high

Use canonical machine-independent intermediate language for
program execution.
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
              Source Site                  Destination Site
                Process P1

Freezing                     Transfer of
time                         control

                                                 Process P1
               Total Freezing                            Pretransferring
               Source           Destination              Source           Destination
               node             node                     node             node

                        Migration                                 Migration
    Suspended           decision                                  decision

    Freezing        Transfer of                               Transfer of
    time           address space                Suspended    address space

                           resumed            time                   resumed

Merits:   easy implementation                 Merits:   freezing time reduce
Demerits: long delay time                     Demerits: total time extended

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
                               Origin                                Origin

                 Sender     Receiver                Sender          Receiver

                      ResendMigrate                                 Migrate

                                  Dest 1                 Forward         Dest 1
                   Resend again

                              Migrate again
                                                                    Migrate again

                                  Dest 2
                                                                        Dest 2
                                               Ask origin site
  Resending messages
                                                Origin node keeps the info on the current
                                                location of the process created there, all
Messages of type 1 and 2 are either dropped     messages are sent to origin which
or negatively ack-ed, the sender is notified    forwards them to migrant process
and it needs to locate the migrant process
Sender           Receiver
          Send                     Messages are queued and sent to
                                   destination node as part of migration
 Send        Link                  procedure
                                   Link is left on source node to redirect
                                   messages, link contains the system-
                       Dest 1
                                   wide unique id of a process and its
            Link                   last known location
                   Migrate again

                       Dest 2

 Link traversal
     Sender          Receiver        During the transfer the source node
                                     sends the notification (link update)
         New location                of the transfer to all the nodes to
                                     which the process communicates:
              Send                   Messages are forwarded by the
                          Dest 1     source node
      New location
                                     Messages are sent directly to the
           Send      Migrate again   destination node
Current location
                         Dest 2

         Link Update
• 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
   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
   SysAdmins use a GUI
    to build agents for
       reconfiguration
       inspection
   GUI is used to
    1. Build distribution graph
    2. Select reconfiguration
      and inspection
    3. Visualize results.
  Process Migration vs. Mobile
                 Process Migration               Mobile Agents

Navigational     Migration decision is made by   Agents decide where and
Autonomy         system.                         where to go

Code Execution   Programs are fully compiled     Most agents are coded in Java
                 and executed in native mode.    and are interpreted by their
                                                 execution engine.
Strong/Weak      Execution is resumed where      Java-based agents resume
Migration        it has been suspended.          their execution from the top of
                                                 a given method.
I/O State        Long-term I/Os are              Agents relinquish I/O
                 forwarded to processes          connections every time they
                 migrated to the destination.    depart for their next
1.   Distributed operating system and algorithms
     Randy chow, Theodore Johnson
2.   A Framework for Process Migration in
     Software DSM Environments
     …. ( 2000 )
Thank You!!

To top