Communication in Distributed
Systems
1
Communication Paradigms
Using the Network Protocol Stack
Remote Procedure Call - RPC
Remote Object Invocation - Java
Remote Method Invocation
Message Queuing Services - Sockets
Stream-oriented Services
Distributed Computing Systems 2
Distributed shared memory(DSM) system
It is a resource management component of distributed
operating system that implements shared memory model
in distributed system which have no physically shared
memory. The shared memory model provides a virtual
address space which is shared by all nodes in a distributed
system
Distributed Computing Systems 3
Network Stack - OSI Reference Model
Application A Application B
Application Application
Layer Layer
Presentation Presentation
Layer Layer
Session Session
Layer Layer
Transport Transport
Layer Communication Network Layer
Network Network Network Network
Layer Layer Layer Layer
Data Link Data Link Data Link Data Link
Layer Layer Layer Layer
Physical Physical Physical Physical
Layer Layer Layer Layer
Copyright ©2000 The McGraw Hill Companies
Electrical and/or Optical Signals
Leon-Garcia & Widjaja: Communication Networks Figure 2.6
Distributed Computing Systems 4
OSI Reference Model
Copyright ©2000 The McGraw Hill Companies Leon-Garcia & Widjaja: Communication Networks
Application A Application B
data
Application Application
Layer data ah Layer
Presentation Presentation
Layer data ph Layer
Session Session
Layer data sh Layer
Transport Transport
Layer data th Layer
Network Network
Layer data nh Layer
Data Link Data Link
Layer dt data dh Layer
Physical Physical
Layer bits Layer
Distributed Computing Systems 5
TCP Connection Overhead
Normal operation of TCP Transactional TCP
Distributed Computing Systems 6
Remote Procedure Calls
RPC
7
Conventional Procedure Call
Count = read(fd, buf,bytes)
Note – call-by-value
and call-by-reference
parameters on the
stack.
a) Parameter passing in a local procedure call: the stack before
the call to read.
b) The stack while the called procedure is active.
Distributed Computing Systems 8
Remote Procedure Call
RPC concept :: to make a remote
procedure call appear like a local
procedure call.
The goal is to hide the details of the
network communication (namely, the
sending and receiving of messages).
The calling procedure should not be
aware that the called procedure is
executing on a different machine.
Distributed Computing Systems 9
Remote Procedure Call
When making a RPC:
The calling environment is suspended.
Procedure parameters are transferred across
the network to the environment where the
procedure is to execute.
The procedure is executed there.
When the procedure finishes, the results are
transferred back to the calling environment.
Execution resumes as if returning from a
regular procedure call.
Distributed Computing Systems 10
RPC differs from OSI
User does not open connection, read,
write, then close connection – client may
not even know they are using the
network.
RPC may omit protocol layers for
efficiency. (e.g. diskless Sun workstations
will use RPC for every file access.)
RPC is well-suited for client-server
interaction where the flow of control
alternates.
Distributed Computing Systems 11
RPC between
Client and Server
Distributed Computing Systems 12
RPC Steps
1. The client procedure calls a client stub
passing parameters in the normal way.
2. The client stub marshals the parameters,
builds the message, and calls the local OS.
3. The client's OS sends the message (using
the transport layer) to the remote OS.
4. The server remote OS gives transport layer
message to a server stub.
5. The server stub demarshals the parameters
and calls the desired server routine.
Distributed Computing Systems 13
RPC Steps
6. The server routine does work and returns result to
the server stub via normal procedures.
7. The server stub marshals the return values into
the message and calls local OS.
8. The server OS (using the transport layer) sends the
message to the client's OS.
9. The client's OS gives the message to the client stub
10. The client stub demarshals the result, and
execution returns to the client.
Distributed Computing Systems 14
RPC Steps
Distributed Computing Systems 15
Passing Value Parameters
a) Original message on the Pentium
b) The message after receipt on the SPARC
c) The message after being inverted. The little numbers in
boxes indicate the address of each byte
Distributed Computing Systems 16
Marshaling Parameters
Parameters must be marshaled into a
standard representation.
Parameters consist of simple types (e.g.
integers) and compound types (e.g., C
structures).
The type of each parameter must be
known to the modules doing the
conversion into standard representation.
Distributed Computing Systems 17
Marshaling Parameters
Call-by-reference is not possible in
parameter passing.
It can be “simulated” by copy-restore.
A copy of the referenced data
structure is sent to the server, and
upon return to the client stub the
client’s copy of the structure is
replaced with the structure modified
by the server.
Distributed Computing Systems 18
Marshaling Parameters
However, in general marshaling
cannot handle the case of a pointer to
an arbitrary data structure such as a
complex graph.
Distributed Computing Systems 19
Parameter Specification
and Stub Generation
The caller and the callee must agree
on the format of the message they
exchange, and they must follow the same
steps when it comes to passing complex
data structures.
A procedure The corresponding message
Distributed Computing Systems 20
RPC Details
An Interface Definition Language
(IDL) is used to specific the interface
that can be called by a client and
implemented by the server.
All RPC-based middleware systems
offer an IDL to support application
development.
Distributed Computing Systems 21
Doors
The principle of using doors as IPC mechanism.
Distributed Computing Systems 22
Doors
A Door is a generic name for a
procedure in the address space of a
server process that can be called by
processes colocated with the
server.
Doors require local OS support.
Distributed Computing Systems 23
Asynchronous RPC
2-12
a) The interconnection between client and server
in a traditional RPC
b) The interaction using asynchronous RPC
Distributed Computing Systems 24
Asynchronous RPC’s
A client and server interacting through two
asynchronous RPCs
Distributed Computing Systems 25