0% found this document useful (0 votes)
109 views72 pages

Communication: Real-Time & Multimedia Lab

This document discusses different methods of communication between distributed systems, including layered protocols, remote procedure calls, remote object invocation, message-oriented communication, and stream-oriented communication. It provides details on the OSI reference model and its seven layers, how remote procedure calls work by using client and server stubs to make remote calls appear local, and how remote object invocation extends this to allow for object-oriented distributed systems using proxies. Message-oriented communication is described as an asynchronous alternative that does not block clients by using messaging queues.

Uploaded by

Bilal Ahmed
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
109 views72 pages

Communication: Real-Time & Multimedia Lab

This document discusses different methods of communication between distributed systems, including layered protocols, remote procedure calls, remote object invocation, message-oriented communication, and stream-oriented communication. It provides details on the OSI reference model and its seven layers, how remote procedure calls work by using client and server stubs to make remote calls appear local, and how remote object invocation extends this to allow for object-oriented distributed systems using proxies. Message-oriented communication is described as an asynchronous alternative that does not block clients by using messaging queues.

Uploaded by

Bilal Ahmed
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 72

Communication

Chapter 2

Real-Time & MultiMedia Lab

Agenda
2.1 Layered protocols 2.2 Remote Procedure 2.3 Remote Object Invocation 2.4 Message-Oriented Communication 2.5 Stream-Oriented Communication

Real-Time & MultiMedia Lab

2.1 Layered Protocols


Shu Lei([email protected])

Real-Time & MultiMedia Lab

1 - Layered Protocols
OSI: Open Systems Interconnection Developed by the International Organization for Standardization (ISO) Provides a generic framework to discuss the layers and functionalities of communication protocols.

Layers, interfaces, and protocols in the OSI model.


Real-Time & MultiMedia Lab

OSI Model (con.t)

A typical message as it appears on the network.


Real-Time & MultiMedia Lab

OSI Protocol Layers


Physical layer
Deals with the transmission of bits Physical interface between data transmission device (e.g. computer) and transmission medium or network Concerned with:
Characteristics of transmission medium, Signal levels, Data rates

Data link layer:


Deals with detecting and correcting bit transmission errors Bits are group into frames Checksums are used for integrity

Real-Time & MultiMedia Lab

OSI Protocol Layers (con.t)


Discussion between a receiver and a sender in the data link layer.

Real-Time & MultiMedia Lab

OSI Protocol Layers (con.t)


Network layer:
Performs multi-hop routing across multiple networks Implemented in end systems and routers

Transport layer:
Packing of data Reliable delivery of data (breaks message into pieces small enough, assign each one a sequence number and then send them) Ordering of delivery Examples:
TCP (connection-oriented) UDP (connectionless) RTP (Real-time Transport Protocol)

Real-Time & MultiMedia Lab

OSI Protocol Layers (con.t)


Client-Server TCP protocol

(a) Normal operation of TCP. (b) Transactional TCP.


Real-Time & MultiMedia Lab

OSI Protocol Layers (con.t)


Session layer
Provide dialog control to keep track of which party is talking and it provides synchronization facilities

Presentation layer
Deals with non-uniform data representation and with compression and encryption

Application layer
Support for user applications e.g. HTTP, SMPT, FTP

Real-Time & MultiMedia Lab

Middleware Protocols
Support high-level communication services The session and presentation layers are merged into the middleware layer, Ex: Microsoft ODBC (Open Database Connectivity), OLE DB

An adapted reference model for networked communication.


Real-Time & MultiMedia Lab

2.2 Remote Procedure Call


Shu Lei([email protected])

Real-Time & MultiMedia Lab

Remote Procedure call


Basic idea: To execute a procedure at a remote site and ship the results back. Goal: To make this operation as distribution transparent as possible (i.e., the remote procedure call should look like a local one to the calling procedure).

Example: read(fd, buf, nbytes)

Real-Time & MultiMedia Lab

Client and Server Stubs


Definition: Are additional functions which are added to the main functions in order to support for RPC Client
count = doSomething();

Server
procedure doSomething();

Client Stub

Server Stub

OS

OS

Real-Time & MultiMedia Lab

Steps of a Remote Procedure Call


1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Client procedure calls client stub in normal way Client stub builds message, calls local OS Client's OS sends message to remote OS Remote OS gives message to server stub Server stub unpacks parameters, calls server Server does work, returns result to the stub Server stub packs it in message, calls local OS Server's OS sends message to client's OS Client's OS gives message to client stub Stub unpacks result, returns to client

Real-Time & MultiMedia Lab

Passing Value Parameters (1)

Steps involved in doing remote computation through RPC


Real-Time & MultiMedia Lab

Passing Value Parameters (2)


In a large distributed system, multiple machine types are present Each machine has its own representation for number, characters, and others data items.

a) b) c)

Original message on the Pentium (little-endian) The message after receipt on the SPARC (big-endian ) The message after being inverted. The little numbers in boxes indicate the address of each byte
Real-Time & MultiMedia Lab

Parameter Specification
Caller and callee agree on the format of message they exchange
Ex: word = 4 bytes float = 1 word character is the rightmost byte of word => the client stub must use this format and the server stub know that incoming message for foobar has this format

Real-Time & MultiMedia Lab

Asynchronous RPC (1)


Avoids blocking of the client process. Allows the client to proceed without getting the final result of the call.

a) b)

The interconnection between client and server in a traditional RPC The interaction using asynchronous RPC
Real-Time & MultiMedia Lab

Differed synchronous
One-way RPC model: client does not wait for an acknowledgement of the servers acceptance of the request.

A client and server interacting through two asynchronous RPCs

Real-Time & MultiMedia Lab

Example DCE RPC


What is DCE ? (Distributed Computing Environment)
DCE is a true middleware system in that it is designed to execute as a layer of abstraction between exiting (network) operating system and distributed application.

-Goals of DCE RPC


Makes it possible for client to access a remote service by simply calling a local procedure.

Components:
Languages Libraries Daemon Utility programs Others
Real-Time & MultiMedia Lab

Writing a Client and a Server


Generate a prototype IDL file
containing an interface identify Filling in the names of remote procedure and their parameters IDL compiler is call to compile into three files

2-14

The steps in writing a client and a server in DCE RPC.


Real-Time & MultiMedia Lab

Binding a Client to a Server

Endpoint (port) is used by servers OS to distinguish incoming message

Client-to-server binding in DCE.


Real-Time & MultiMedia Lab

2.3 Remote Object Invocation


Cao Manh Cuong([email protected])

Real-Time & MultiMedia Lab

Objectives
RMI vs RPC Remote Distributed Objects Binding a client to object Parameter Passing Java RMI Example Summary

Real-Time & MultiMedia Lab

RMI vs RPC
The primary difference between RMI and RPC:
PRC is used for procedure based application. RMI is used for distributed object systems. RMI is object oriented. PRC is procedural.

Real-Time & MultiMedia Lab

Remote Distributed Objects(1)


Objects separate their actual implementation from their interface Distributed object = an object which publishes its interface on other machines Remote object = a distributed object whose state is encapsulated (their state is not distributed)

Real-Time & MultiMedia Lab

Remote Distributed Objects(2)

2-16

Common organization of a remote object with client-side proxy.

Real-Time & MultiMedia Lab

Binding a Client to an Object (1)


Two ways of binding: - Implicit: Invoke methods directly on the referenced object - Explicit: Client must first explicitly bind to object before invoking it

Real-Time & MultiMedia Lab

Binding a Client to an Object (2)


Distr_object* obj_ref; obj_ref = ; obj_ref-> do_something(); (a) Distr_object objPref; Local_object* obj_ptr; obj_ref = ; obj_ptr = bind(obj_ref); obj_ptr -> do_something(); (b) //Declare a systemwide object reference //Declare a pointer to local objects //Initialize the reference to a distributed object //Explicitly bind and obtain a pointer to the local proxy //Invoke a method on the local proxy //Declare a systemwide object reference // Initialize the reference to a distributed object // Implicitly bind and invoke a method

a) b)

An example with implicit binding using only global references An example with explicit binding using global and local references

Real-Time & MultiMedia Lab

Parameter Passing (1)


Pass remote object by reference
Pass local object by value Local object = an object in the clients address space

Real-Time & MultiMedia Lab

Parameter Passing (2)


The situation when passing an object by reference or by value.

2-18

Real-Time & MultiMedia Lab

Java RMI (1)


Distributed objects integrated into the Language Goal is to achieve transparency! Any serializable object type can be a parameter to an RMI Local objects are passed by value, remote objects are passed by reference Proxy can be used as a reference to a remote object: Possible to serialize the proxy and send it to another server

Real-Time & MultiMedia Lab

Java RMI (2)

Real-Time & MultiMedia Lab

Example
Integral Calculation with the following function: + Sin(x) (0 Pi) + Cos(x) (Pi/2 Pi) + X^2(0 5) Approximate with 10, 100, 1000 steps.

The integral is calculated according to the midpoint rule.

Real-Time & MultiMedia Lab

Example
Client
RemoteIntegralClient
2 4 1 3

Server
RemoteIntegralImpl

RemoteIntegral

rmiregistry

RemoteIntegralImpl_Stub

RemoteIntegralImpl_Skel

Real-Time & MultiMedia Lab

Summary
RMI specific for a remote object Remote object offer better transparence RMIs allow object references to be passes as parameter Local objects are passed by value Remote objects are passed by reference

Real-Time & MultiMedia Lab

2.4 Message-Oriented Communication


Manhyung Han([email protected])

Real-Time & MultiMedia Lab

Introduction
Message-Oriented Communication
RPC and RMI enhanced access transparency But client have to blocked until its request has been processed Message-Oriented Communication can solve this problem by messaging Index:
Meaning of synchronous behavior and its implication Various messaging systems Message-queuing system

Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(1)


General communication system connected through a network
Each host is connected to a single communication server. Hosts and communication servers can have buffers.

Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(2)


Persistent communication
An example of persistent communication Letter back in the days of Pony Express

Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(3)


Persistent vs. Transient
Persistent messages are stored as long as necessary by the communication system (e.g., e-mail) Transient messages are discarded when they cannot be delivered (e.g., TCP/IP)

Synchronous vs. Asynchronous


Asynchronous implies sender proceeds as soon as it sends the message no blocking Synchronous implies sender blocks till the receiving host buffers the message

Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(4)


Persistent asynchronous/synchronous communication

(a) Persistent asynchronous communication / (b) Persistent synchronous communication


Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(5)


Transient asynchronous/Receipt-based transient synchronous communication

(c) Transient asynchronous communication / (d) receipt-based transient synchronous communication

Real-Time & MultiMedia Lab

Persistence and Synchronicity in Communication(6)


Other transient synchronous communications

(e) Delivery-based transient synchronous communication at message delivery (f) Response-based transient synchronous communication

Real-Time & MultiMedia Lab

Message-Orient Transient Communication(1)


Message-Oriented Model
Many distributed systems and applications are built on top of the simple message-oriented model These models are offered by Transport Layer Message-oriented models
Berkeley Sockets: Socket interface as introduced in Berkeley UNIX The Message-Passing Interface(MPI): designed for parallel applications and as such in tailored to transient communication

Real-Time & MultiMedia Lab

Message-Orient Transient Communication(2)


Berkeley Sockets(1)
Meaning of Socket: a communication endpoint to which an application can write data (be sent to network) and read incoming data The socket primitives for TCP/IP
Primitive
Socket Bind Listen Accept Connect Send Receive Close

Meaning
Create a new communication endpoint Attach a local address to a socket Announce willingness to accept connections Block caller until a connection request arrives Actively attempt to establish a connection Send some data over the connection Receive some data over the connection Release the connection
Real-Time & MultiMedia Lab

Message-Orient Transient Communication(3)


Berkeley Sockets(2)
Connection-oriented communication pattern using sockets Sockets considered insufficient because:
Support only send and receive primitives Designed for communication using general-purpose protocol such as TCP/IP
Create a new endpoint Associate endpoint Waiting connection Block waiting for reqs

Real-Time & MultiMedia Lab

Message-Orient Transient Communication(4)


The Message-Passing Interface(MPI)(1)
Designed for multiprocessor machines and high-performance parallel programming Provides a high-level of abstraction than sockets Support diverse forms of buffering and synchronization (over 100 functions)

Real-Time & MultiMedia Lab

Message-Orient Transient Communication(5)


The Message-Passing Interface(MPI)(2)
Some of the most intuitive message-passing primitives of MPI
Primitive
MPI_bsend MPI_send MPI_ssend MPI_sendrecv MPI_isend MPI_issend MPI_recv MPI_irecv

Meaning
Append outgoing message to a local send buffer Send a message and wait until copied to local or remote buffer Send a message and wait until receipt starts Send a message and wait for reply Pass reference to outgoing message, and continue Pass reference to outgoing message, and wait until receipt starts Receive a message; block if there are none Check if there is an incoming message, but do not block

Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(1)


Message-Queuing Model(1)
Apps communicate by inserting messages in specific queues
Loosely-couple communication

Support for:
Persistent asynchronous communication Longer message transfers(e.g., e-mail systems)

Basic interface to a queue in a message-queuing system:


Primitive
Put Get

Meaning
Append a message to a specified queue Block until the specified queue is nonempty, and remove the first message

Poll
Notify

Check a specified queue for messages, and remove the first. Never block
Install a handler to be called when a message is put into the specified queue

Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(2)


Message-Queuing Model(2)

Four combinations for loosely-coupled communication using queues:

Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(3)


General architecture of a Message-Queuing System(1)
Messages can only be put and received from local queues Ensure transmitting the messages between the source queues and destination queues, meanwhile storing the messages as long as necessary Each queue is maintained by a queue manager

The relationship between queue-level addressing and network-level addressing


Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(4)


General architecture of a Message-Queuing System(2)
Queue managers are not only responsible for directly interacting with applications but are also responsible for acting as relays (or routers)

Queue managers form an overlay network, acting as routers


Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(5)


Generalpurpose of a Message-Queuing System
Enable persistent communication between processes Handling access to database In wide range of application, include:
Email Groupware Batch processing

Real-Time & MultiMedia Lab

Message-Orient Persistent Communication(6)


Message Broker

The general organization of a message broker in a message-queuing system

Real-Time & MultiMedia Lab

Summary & Conclusion


Summary
Two different communication concept Transient vs. Persistent
Persistent messages are stored as long as necessary Transient messages are discarded when they cannot be delivered

Message-Oriented Transient Comm.


Berkeley socket and MPI

Message-Oriented Persistent Comm.


Message-Queuing Model and Message Broker

Conclusion
Message-Oriented communication solve the blocking problems that may occur in general communication between Server/Client Message-Queuing systems can users(including applications) to do Persistent communication
Real-Time & MultiMedia Lab

2.5 Stream-Oriented Communication


Manhyung Han([email protected])

Real-Time & MultiMedia Lab

Support for Continuous Media(1)


Types of media
Continuous media
Temporal dependence between data items
ex) Motion - series of images

Discrete media
No temporal dependence between data items ex) text, still images, object code or executable files

Real-Time & MultiMedia Lab

Support for Continuous Media(2)


Data Stream
Sequence of data units

Discrete data stream: UNIX pipes or TCP/IP connection


Continuous data stream: audio file (connection between file and audio devices)

Transmission modes
Asynchronous: no timing constraints Synchronous: upper bound on propagation delay

Isochronous: upper and lower bounds on propagation delay (transfer on time)

Real-Time & MultiMedia Lab

Support for Continuous Media(3)


Types of stream
Simple stream
consist of only a single sequence of data

Complex stream
consist of several related simple stream ex) stereo audio, movie

Substream
related simple stream ex) stereo audio channel

Real-Time & MultiMedia Lab

Support for Continuous Media(4)


Figure. 2-35 (a) Setting up a stream between two processes across a network (b) Setting up a stream directly between two devices

Real-Time & MultiMedia Lab

Support for Continuous Media(5)


Figure. 2-36 An example of multicasting a stream to several receivers

Real-Time & MultiMedia Lab

Streams and Quality of Service(1)


Specifying QoS(1)
Flow specification To provide a precise factors(bandwith, transmission rates and delay, etc.) Example of flow specification developed by Partridge
Figure. 2-37 A flow specification

Characteristics of the Input


Maximum data unit size (bytes) Token bucket rate (bytes/sec) Token bucket size (bytes) Maximum transmission rate (bytes/sec)

Service Required
Loss sensitivity (bytes) Loss interval (microsec) Burst loss sensitivity (data units) Minimum delay noticed (microsec) Maximum delay variation (microsec) Quality of guarantee

Real-Time & MultiMedia Lab

Streams and Quality of Service(2)


Specifying QoS(2)
Token bucket algorithms
Tokens are generated at a constant rate
Token is fixed number of bytes that an application is allowed to pass to the network
Figure. 2-38 The Principle of a token bucket algorithm

Real-Time & MultiMedia Lab

Streams and Quality of Service(3)


Setting up a stream
Resource reSerVation Protocol(RSVP)
Transport-level control protocol for enabling resource reservation in network router
Used to provide QoS for continuous data streams by reserving resources (bandwidth, delay, jitter and so on) Issue: How to translate QoS parameters to resource usage?
Two ways to translate 1. RSVP translates QoS parameters into data link layer parameters 2. Data link layer provides its own set of parameters (as in ATM)

Real-Time & MultiMedia Lab

Streams and Quality of Service(4)


Figure. 2-39 The basic organization of RSVP for resource reservation in a distributed system

Real-Time & MultiMedia Lab

Streams and Quality of Service(5)

Real-Time & MultiMedia Lab

Streams and Quality of Service(6)

Real-Time & MultiMedia Lab

Stream Synchronization(1)
Basic ideas
Synchronize transmission of data units

Synchronization take place when the data stream is made up


Stereo audio with CD quality(16 bit samples)
Sampling rate 44.1 KHz -> synchronize 22.6 micro sec

Synchronization between audio stream and video stream for lip sync.
NTSC 30Hz(a frame every 33.33ms), CD Quality sound
Synchronized every 1470 sound samples

Real-Time & MultiMedia Lab

Stream Synchronization(2)
Synchronization Mechanisms(1)
Figure. 2-40 The principle of explicit synchronizati on on the level data units

Real-Time & MultiMedia Lab

Stream Synchronization(3)
Synchronization Mechanisms(2)
Figure. 2-41 The principle of synchronization as supported by high-level interfaces

Real-Time & MultiMedia Lab

You might also like