0% found this document useful (0 votes)
2 views

chapter-4

Chapter 4 covers remote communication, focusing on Remote Procedural Calls (RPC) and Remote Method Invocation (RMI). It discusses RPC basics, implementation, communication protocols, and various issues such as exception handling and optimization. The chapter also includes case studies on Sun RPC and Java RMI, highlighting their components and execution processes.

Uploaded by

Maniza Hijab
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

chapter-4

Chapter 4 covers remote communication, focusing on Remote Procedural Calls (RPC) and Remote Method Invocation (RMI). It discusses RPC basics, implementation, communication protocols, and various issues such as exception handling and optimization. The chapter also includes case studies on Sun RPC and Java RMI, highlighting their components and execution processes.

Uploaded by

Maniza Hijab
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 61

CHAPTER - 4

REMOTE COMMUNICATION
Topics
• Introduction to Remote Communication
• Remote Procedural Call Basics
• RPC Implementation
• RPC Communication
• Other RPC Issues
• Case Study: Sun RPC
• Remote invocation Basics
• RMI Implementation

© Oxford University Press 2011


Introduction to Remote
Communication

© Oxford University Press 2011


Introduction
 Middleware

© Oxford University Press 2011


Remote Procedural Call Basics

© Oxford University Press 2011


Local Procedure Call

© Oxford University Press 2011


Remote Procedure Call
 Basic RPC operation

© Oxford University Press 2011


RPC operation

© Oxford University Press 2011


Elements of RPC mechanism
implementation
 Client
 Client stub
 RPC Runtime
 Server stub
 Server

© Oxford University Press 2011


RPC Execution

© Oxford University Press 2011


Stub generation
 Manual generation
 Auto generation using Interface Definition Language
(IDL)

© Oxford University Press 2011


RPC Compilation

© Oxford University Press 2011


RPC Implementation

© Oxford University Press 2011


RPC implementation
 RPC messages:
 Call/ Request
 Reply

© Oxford University Press 2011


RPC Call/ Request message

© Oxford University Press 2011


RPC reply conditions

© Oxford University Press 2011


RPC reply message

© Oxford University Press 2011


Parameter Passing Semantics
• Call-by-value semantic
– Marshalling
• Call-by –reference semantic
• Call-by-copy/restore semantic
Call-by-value copies all parameters into a message
before transmission . Call-by-reference passes
pointers to the parameters that are passed from the
client to the server. Call-by-copy/restore uses
temporary storage accessible to both programs

© Oxford University Press 2011


Call-by-value semantic

© Oxford University Press 2011


Byte ordering

© Oxford University Press 2011


Server management
 Server implementation
 Stateless server
 Stateful server

 Server management
 Instance per call
 Instance per session

 Persistent servers

© Oxford University Press 2011


RPC communication
 RPC call semantics

© Oxford University Press 2011


Orphan calls
 Calls whose caller has expired due to a node crash
 Handle orphan calls by using:
 Extermination

 Reincarnation

 Gentle reincarnation
 Expiration

© Oxford University Press 2011


RPC communication protocols
 Request protocol
 Request/Reply protocol
 Request/Reply/ Acknowledge- Reply protocol

© Oxford University Press 2011


Request protocol

© Oxford University Press 2011


Asynchronous RPC

© Oxford University Press 2011


Request/Reply protocol

© Oxford University Press 2011


Request/Reply/ Acknowledge- Reply
protocol

© Oxford University Press 2011


Client server binding process

© Oxford University Press 2011


Client Server binding
 Issues  Types of binding
 Server naming  Fixedbinding
 Server locating  Dynamic binding

 Binding agent  At compile time


 At link time
primitives
 At run time
 Register

 Deregister

 Lookup

© Oxford University Press 2011


Other RPC Issues

© Oxford University Press 2011


Other issues in RPC implementation
 Exception handing and security
 Failure handling
 Optimizing RPC execution
 Various types of complicated RPCs

© Oxford University Press 2011


RPC in heterogeneous environment
 Data presentation
 Transport protocol
 Control protocol

© Oxford University Press 2011


Failure handling mechanism in RPC
 Client cannot find the server
 Request from client to the server is lost
 Reply from server to the client is lost
 Server crashes after getting the request
 Client crashes after sending the request

© Oxford University Press 2011


RPC Optimization

© Oxford University Press 2011


Concurrent access to multiple servers

 Use of threads
 Early reply technique
 Call buffering approach
 Serving multiple requests simultaneously
 Reducing call workload of server
 Using reply cache for idempotent RPC

© Oxford University Press 2011


Early Reply technique

© Oxford University Press 2011


Call buffer approach

© Oxford University Press 2011


Complicated and special RPCs
 Complicated RPCs
 RPCs with long duration calls or with gaps between
calls
 RPCs with long messages

 Special RPCs:
 Callback RPC
 Broadcast RPC

 Batch mode RPC

© Oxford University Press 2011


Call back RPC
 Client handle is provided to the server
 Client process should wait for callback RPC
 Handle callback deadlocks

© Oxford University Press 2011


Case Study: Sun RPC

© Oxford University Press 2011


Case Study- Sun RPC
 Uses rpcgen compiler which generates
 Header file
 XDR filter file

 Client stub file

 Server stub file

© Oxford University Press 2011


Remote invocation Basics

© Oxford University Press 2011


Remote Object Invocation
 Distributed object concept
 Remote objects reference
 Remote interface

© Oxford University Press 2011


RMI

© Oxford University Press 2011


RMI vs LMI

© Oxford University Press 2011


RMI Implementation

© Oxford University Press 2011


RMI implementation
Design issues in RMI

 RMI invocation • RMI invocation semantics


semantics  Maybe semantics

 Level of transparency  At-least-once semantics

 Marshalling  At-most-once semantics

 Message passing
 Task of locating and
contacting the remote
object for the client

© Oxford University Press 2011


Invocation semantics

© Oxford University Press 2011


Level of Transparency

© Oxford University Press 2011


Components of RMI

© Oxford University Press 2011


RMI execution components
 Communication module
 Remote reference module
 RMI software
 Server program
 Client program
 Binder

© Oxford University Press 2011


RMI execution

© Oxford University Press 2011


RMI software
 Proxy
 Dispatcher
 Skeleton

© Oxford University Press 2011


Types of objects

© Oxford University Press 2011


Remote invocation readiness

© Oxford University Press 2011


RMI binding
 Implicit binding
 Explicit binding

© Oxford University Press 2011


Parameter passing in RMI
 Pass by value
 Pass by reference

© Oxford University Press 2011


Case study: Java RMI

© Oxford University Press 2011


Java RMI layer

© Oxford University Press 2011


Summary
• Introduction to Remote Communication
• Remote Procedural Call Basics
• RPC Implementation
• RPC Communication
• Other RPC Issues
• Case Study: Sun RPC
• Remote invocation Basics
• RMI Implementation

© Oxford University Press 2011

You might also like