2
Introduction
ƒinterprocess communication is at the heart of all distributed
systems
ƒcommunication in distributed systems is based on message
passing as offered by the underlying network which is harder as opposed to using shared memory
ƒmodern distributed systems consist of thousands of processes scattered across an unreliable network such as the Internet ƒunless the primitive communication facilities of the network
are replaced by more advanced ones, development of large scale Distributed Systems becomes extremely difficult
3
Objectives of the Chapter
ƒreview how processes communicate in a network (the rules
or the protocols) and their structures
ƒintroduce the five widely used communication models for
distributed systems:
ƒRemote Procedure Call (RPC) - which hides the details of message passing and suitable for client-server models ƒRemote Object (Method) Invocation (RMI) ƒMessage-Oriented Middleware (MOM) - instead of the
client-server model, think in terms of messages and have
a high level message queuing model similar to e-mail
ƒStream-Oriented Communication - for multimedia to support the continuous flow of messages with timing
constraints
ƒMulticast Communication - information dissemination for
several recipients
4
ƒ
why communication in distributed systems? because there is
no shared memory
ƒ
two communicating processes must agree on the syntax and
semantics of messages
ƒ
a protocolis a set of rules that governs data communications
ƒ
a protocol defines whatis communicated, howit is
communicated, and whenit is communicated
ƒ
for instance, for one computer to send a message to another
computer, the first computer must perform the following
general steps (highly simplified) ƒ
break the data into small sections called packets(message,
datagram, packet, frame)
ƒ
add addressing information to the packets identifying the
source and destination computers
ƒ
deliver the data to the network interface card for
transmission over the network
4.1 Network Protocols and Standards
5
ƒ
the receiving computer must perform the same steps, but in
reverse order ƒ
accept the data from the NIC
ƒ
remove transmitting information that was added by the
transmitting computer
ƒ
reassemble the packets of data into the original message ƒ
the key elements of a protocol are syntax, semantics, and
timing ƒ
syntax: refers to the structure or format of the data
ƒ
semantics: refers to the meaning of each section of bits
ƒ
timing : refers to when data should be sent and how fast
they can be sent
ƒ
functions of protocols ƒ
each device must perform the same steps the same way
so that the data will arrive and reassemble properly; if
one device uses a protocol with different steps, the two
devices will not be able to communicate with each other
6
ƒProtocols in a layered architecture
ƒ
protocols that work together to provide a layer or layers of
the model are known as a protocol stackor protocol suite,
e.g. TCP/IP
ƒ
each layer handles a different part of the communications
process and has its own protocol
ƒData Communication Standards
ƒ
standards are essential for interoperability
ƒ
data communication standards fall into two categories ƒ
De facto standards: that have not been approved by an
organized body; mostly set by manufacturers
ƒ
De jure standards: those legislated by an officially
recognized body such as ISO, ITU, ANSI, IEEE
7
Network (Reference) Models ƒ
Layers and Services ƒ
within a single machine, each layer uses the services
immediately below it and provides services for the layer
immediately above it
ƒ
between machines, layer x on one machine communicates
with layer x on another machine
ƒ
Two important network models or architectures ƒ
The ISO OSI (Open Systems Interconnection) Reference Model
ƒ
The TCP/IP Reference Model
a. The OSI Reference Model
ƒ
consists of 7 layers
ƒ
was never fully implemented as a protocol stack, but a good theoretical model
ƒ
Open– to connect open systems or systems that are open
for communication with other systems
8
layers, interfaces, and protocols in the OSI model
9
ƒPhysical: Physical characteristics of the media
Host (upper) Layers
Media (lower) Layers
ƒData Link: Reliable data delivery across the link
ƒNetwork: Managing connections across the network
or routing
ƒTransport: End-to-end connection and reliability (handles
lost packets); TCP (connection-oriented),
UDP (connectionless), etc.
ƒSession: Managing sessions between applications
(dialog control and synchronization); rarely
supported
ƒPresentation: Data presentation to applications; concerned
with the syntax and semantics of the
information transmitted
ƒApplication: Network services to applications; contains
protocols that are commonly needed by
users; FTP, HTTP, SMTP, ...
10
a typical message as it appears on the network
11
b. The TCP/IP Reference Model
ƒ
TCP/IP - Transmission Control Protocol/Internet Protocol
ƒ
used by ARPANET and its successor the Internet
ƒ
design goals ƒ
the ability to connect multiple networks (internetworking)
in a seamless way
ƒ
the network should be able to survive loss of subnet
hardware, i.e., the connection must remain intact as long
as the source and destination machines are properly
functioning
ƒ
flexible architecture to accommodate requirements of
different applications - ranging from transferring files to
real-time speech transmission
ƒ
these requirements led to the choice of a packet-switching
network based on a connectionless internetwork layer
ƒ
has 4 (or 5 depending on how you see it) layers:
Application, Transport, Internet (Internetwork), Host-to-
network (some split it into Physical and Data Link)
12
ƒ
OSI and TCP/IP Layers Correspondence
13
ƒ
Layers involved in various hosts (TCP/IP) ƒ
when a message is sent from device A to device B, it may
pass through many intermediate nodes
ƒ
the intermediate nodes usually involve the first three layers
14
ƒMiddleware Protocols
ƒa middleware is an application that contains general-purpose
protocols to provide services
ƒexample of middleware services
ƒauthentication and authorization services
ƒdistributed transactions (commit protocols; locking
mechanisms) - see later in Chapter 8
ƒmiddleware communication protocols (calling a procedure
or invoking an object remotely, synchronizing streams for
real-time data, multicast services) - see later in this Chapter
ƒhence an adapted reference model for networked
communications is required
15
an adapted reference model for networked communication
16
4.2 Remote Procedure Call
ƒthe first distributed systems were based on explicit message
exchange between processes through the use of explicit
sendand receiveprocedures; but do not allow access
transparency
ƒin 1984, Birrel and Nelson introduced a different way of handling communication: RPC ƒit allows a program to call a procedure located on another machine ƒsimple and elegant, but there are implementation problems
ƒthe calling and called procedures run in different address
spaces
ƒparameters and results have to be exchanged; what if the machines are not identical? ƒwhat happens if both machines crash?
17
parameter passing in a local procedure
call: the stack before the call to read
ƒConventional Procedure Call, i.e., on a single machine
ƒe.g. count = read (fd, buf, bytes); a C like statement, where
fdis an integer indicating a file
bufis an array of characters into which data are read
bytesis the number of bytes to be read
the stack while the called procedure is active
Stack pointer
ƒparameters can be call-by-value(fd and bytes) or call-by
reference(buf) or in some languages call-by-copy/restore
Stack pointer
principle of RPC between a client and server program
ƒ
Client and Server Stubs ƒ
RPC would like to make a remote procedure call look the same as a local one; it should be transparent, i.e., the calling procedure should not know that the called procedure is executing on a different machine or vice versa
ƒ
when a program is compiled, it uses different versions of library functions called
client stubs
ƒ
a
server stub
is the server-side equivalent of a client stub
ƒ
Steps of a Remote Procedure Call 1.
Client
procedure calls
client
stub in the normal way
2.
Client
stub builds a message and calls the local OS
(packing parameters into a message is called
parameter
marshaling
)
3.
Client's
OS sends the message to the remote OS
4.
Remote OS gives the message to the
server
stub
5.
Server
stub unpacks the parameters and calls the
server
6.
Server
does the work and returns the result to the stub
7.
Server
stub packs it in a message and calls the local OS
8.
Server's
OS sends the message to the
client's
OS
9.
Client's
OS gives the message to the
client
stub
10.
Stub unpacks the result and returns to
client
ƒ
hence, for the client remote services are accessed by making ordinary (local) procedure calls; not by calling
send
and
receive
)
server machine vs
server process
; client machine vs
client process
Asynchronous RPC ƒ
a shortcoming of the original mode
l is that it is blocking: but
no need of blocking for the client in some cases ƒ
two cases 1. if there is no result to be returned
ƒ
e.g., inserting records in a database, ...
ƒ
the server immediately sends an ack promising that it will carryout the request
ƒ
the client can now proceed without blocking
a)
the interconnection between client
and server in a traditional RPC
b)
the interaction using asynchronous RPC
2. if the result can be collected later
ƒ
e.g., prefetching network addresses of a set of hosts, ...
ƒ
the server immediately sends an ack promising that it will carryout the request
ƒ
the client can now proceed without blocking
ƒ
the server later sends the result
a client and server interactin
g through two asynchronous RPCs
ƒ
the above method combines two asynchronous RPCs and is sometimes called
deferred synchronous RPC
ƒ
variants of asynchronous RPC ƒ
let the client continue without
waiting even for an ack,
called
one-way RPC
ƒ
problem: if reliability of co
mmunication is not guaranteed
(Chapter 10: Distributed Object-Based Systems; from page 443)
ƒ
resulted from object-based technology that has proven its value in developing nondistributed applications
ƒ
it is an expansion of the RPC mechanisms
ƒ
it enhances distribution transparency as a consequence of an object that hides its internal from the outside world by means of a well-defined interface
ƒ
Distributed Objects ƒ
an object encapsulates data, called the
state
, and the
operations on those data, called
methods
ƒ
methods are made available through an
interface
ƒ
the state of an object can be manipulated only by invoking methods
ƒ
this allows an interface to be
placed on one machine while
the object itself resides on
another machine; such an
organization is referred to as a
distributed object
4.3 Remote Object (Method) Invocation (RMI)
ƒ
if the state of an object is
not distributed, but only the
interfaces are, then such an object is referred to as a
remote
object
ƒ
the implementation of an ob
ject’s interface is called a
proxy
(analogous to a client stub in RPC systems)
ƒ
it is loaded into the client
’s address space when a client
binds
to a distributed object
ƒ
tasks: a proxy marshals met
hod invocation into messages
and unmarshals reply messages to
return the result of the
method invocation to the client
ƒ
a server stub, called a
skeleton
, unmarshals messages and
marshals replies
common organization of a remote
object with client-side proxy
ƒ
Object Servers ƒ
an object server is a server
to support distributed objects
ƒ
it does not provide a specific service; services are implemented by the objects that reside on the server
ƒ
the server provides only the means to invoke local objects based on remote client requests
ƒ
RPCsand RMIs are not adequate for all distributed system applications
ƒ
the provision of access transparency may be good but they have semantics that is not adequate for all applications
ƒ
example problems ƒ
they assume that the receiving
side is running at the
time of communication
ƒ
a client is blocked until its request has been processed
ƒ
messaging is the solution
4.4 Message-Oriented Communication
ƒ
until now, we focused on exchanging independent and complete units of information
ƒ
time has no effect on correctness
; a system can be slow or fast
ƒ
however, there are communications where time has a critical role
ƒ
Multimedia ƒ
media ƒ
storage, transmission, interchange, presentation, representation and perception
of different data types
ƒ
text, graphics, images, voice, audio, video, animation, ...
ƒ
movie: video + audio + …
ƒ
multimedia: handling of a var
iety of representation media
ƒ
end user pull ƒ
information overload and starvation
ƒ
technology push ƒ
emerging technology to integrate media
4.5 Stream-Oriented Communication
ƒ
The Challenge ƒ
new applications ƒ
multimedia will be pervasive in few years (as graphics)
ƒ
continuous delivery ƒ
e.g., 30 frames/s (NTSC), 25 frames/s (PAL) for video
ƒ
guaranteed Quality of Service
ƒ
admission control
ƒ
storage and transmission ƒ
e.g., 2 hours uncompressed HDTV (1920×1080) movie: 1.12 TB (1920×1080x3x25x60x60x2)
ƒ
videos are extremely large, even after compressed (actually encoded)
ƒ
search ƒ
can we look at 100… videos to find the proper one?
ƒ
Types of Media ƒ
two types ƒ
discrete media
: text, executable code, graphics, images;
temporal relationships between data items
are not
fundamental to correctly interpret the data
ƒ
continuous media
: video, audio, animation; temporal
relationships between data items
are
fundamental to
correctly interpret the data
ƒ
a
data stream
is a sequence of data units and can be applied
to discrete as well as continuous media; e.g., TCP provides byte-oriented discrete data streams
ƒ
stream-oriented communication
provides facilities for the
exchange of
time-dependent information
(continuous media)
such as audio and video streams
ƒ
timing in transmission modes ƒ
asynchronous transmission mode
: data items are
transmitted one after the other,
but no timing constraints;
e.g. text transfer
ƒ
synchronous transmission mode
: a maximum end-to-end
delay defined for each data unit;
it is possible that data can
be transmitted faster than the maximum delay, but not slower
ƒ
isochronous transmission mode
: maximum and minimum
end-to-end delay are defined; also called
bounded delay
jitter
; applicable for distributed multimedia systems
ƒ
a continuous data stream can be simple or complex ƒ
simple stream
: consists of a single sequence of data; e.g.,
mono audio, video only (only visual frames)
ƒ
complex stream
: consists of several related simple streams,
called
substreams
, that must be
synchronized
; e.g., stereo
audio, video consisting of au
dio and video (may also contain
subtitles, translation to other languages, ...)
ƒ
a stream can be considered as
a virtual connection between a
source
and a
sink
ƒ
the source or the sink could be a process or a device
ƒ
streaming
means a user can listen (or watch) after the
downloading has started
ƒ
we can stream
stored data
or
live data
(compression, actually
encoding is required)
A general architecture for streaming
stored multimedia data over a network
setting up a stream directly between two devices - live data
ƒ
the data stream can also be multicasted to several receivers
ƒ
if devices and the underlying networks have different capabilities, the stream may be
filtered
, generally called
adaptation
(
filtering
?,
transcoding
?)
an example of multicasting a stream to several receivers
68
ƒQuality of Service (QoS)
ƒtiming and other nonfunctional requirements are expressed
as Quality of Servicerequirements
ƒQoS requirements describe what is needed from the
underlying distributed system and network to ensure
acceptable delivery; e.g. viewing experience of a user
ƒfor continuous data, the concerns are
ƒtimeliness : data must be delivered in time
ƒinitial delay: maximum delay until a session has been
setup
ƒmaximum end-to-end delay
ƒmaximum delay variance or jitter
ƒvolume/bandwidth: the required throughput (bit rate) must
be met
ƒreliability: a given level of loss of data must not be
exceeded
ƒquality of perception : highly subjective
ƒ
multicasting
: delivery of data from one host to many
destinations; for instance for multimedia applications
ƒ
a one-to-many relationship
1. Application-Level Multicasting
ƒ
nodes are organized into an overlay network (a network which is built on top of anothe
r network) and information is
disseminated to its members (routers are not involved as in network-level routing)
ƒ
how to construct the overlay network ƒ
nodes organize themselves as a tree with a unique path between two pairs of nodes or
ƒ
nodes organize into a mesh network and there will be multiple paths between
two nodes; adv: robust
2. Gossip-Based Data Transmission
ƒ
use epidemic protocols where information is propagated among a collection of nodes without a coordinator
ƒ
for details read
p
a
g
es 166-174
4.6 Multicast Communication