0% found this document useful (0 votes)
62 views43 pages

Chap 02

1. The document discusses various techniques for communication between distributed systems including remote procedure calls, asynchronous RPC, message passing interfaces, message queuing, and enforcing quality of service for streaming data. 2. It also covers topics like binding clients to servers, writing clients and servers, multithreaded servers, and code migration models. 3. The document provides an overview of layered protocols, middleware protocols, and types of communication that can be used between distributed systems.

Uploaded by

Viet Tran
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 PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views43 pages

Chap 02

1. The document discusses various techniques for communication between distributed systems including remote procedure calls, asynchronous RPC, message passing interfaces, message queuing, and enforcing quality of service for streaming data. 2. It also covers topics like binding clients to servers, writing clients and servers, multithreaded servers, and code migration models. 3. The document provides an overview of layered protocols, middleware protocols, and types of communication that can be used between distributed systems.

Uploaded by

Viet Tran
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 PDF, TXT or read online on Scribd
You are on page 1/ 43

DISTRIBUTED SYSTEMS

Chapter 2 Communication

Introduction

Multiple computers/subsystems jointly solve a large problem communication among them is mandatory Data to be communicated can be:
Intermediate results Shared objects Signals/interrupts

Layered Protocols (1)

Layers, interfaces, and protocols in the OSI model.

Middleware Protocols

An adapted reference model for networked communication.

Types of Communication

Viewing middleware as an intermediate (distributed) service in application-level communication.

Conventional Procedure Call

(a) Parameter passing in a local procedure call: the stack before the call to read. (b) The stack while the called procedure is active.

Client and Server Stubs

Principle of RPC between a client and server program.

Remote Procedure Calls (1)

A remote procedure call occurs in the following steps:

1. The client procedure calls the client stub in the normal way. 2. The client stub builds a message and calls the local operating system. 3. The clients OS sends the message to the remote OS. 4. The remote OS gives the message to the server stub. 5. The server stub unpacks the parameters and calls the server.

Remote Procedure Calls (2)

A remote procedure call occurs in the following steps (continued):

6. The server does the work and returns the result to the stub. 7. The server stub packs it in a message and calls its local OS. 8. The servers OS sends the message to the clients OS. 9. The clients OS gives the message to the client stub. 10.The stub unpacks the result and returns to the client.

Passing Value Parameters (1)

The steps involved in a doing a remote computation through RPC.

Passing Value Parameters (2)

(a) The original message on the Pentium.

Passing Value Parameters (3)

(a) The original message on the Pentium.

Passing Value Parameters (4)

(c) The message after being inverted. The little numbers in boxes indicate the address of each byte.

Parameter Specification and Stub Generation


(a) A procedure. (b) The corresponding message.

Asynchronous RPC (1)

(a) The interaction between client and server in a traditional RPC.

Asynchronous RPC (2)

(b) The interaction using asynchronous RPC.

Asynchronous RPC (3)

A client and server interacting through two asynchronous RPCs.

Writing a Client and a Server (1)

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

Writing a Client and a Server (2)

Three files output by the IDL (interface description language) compiler: A header file (e.g., interface.h, in C terms). The client stub. The server stub.

Binding a Client to a Server (1)

Registration of a server makes it possible for a client to locate the server and bind to it. Server location is done in two steps:
1. Locate the servers machine. 2. Locate the server on that machine.

Binding a Client to a Server (2)

Client-to-server binding in DCE.

Berkeley Sockets

The socket primitives for TCP/IP.

The Message-Passing Interface (1)

Connection-oriented communication pattern using sockets.

The Message-Passing Interface (2)

Some of the most intuitive message-passing primitives of MPI.

Message-Queuing Model (1)

Four combinations for loosely-coupled communications using queues.

Message-Queuing Model (2)

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

General Architecture of Message-Queuing System (1)

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

General Architecture of Message-Queuing System (2)

The general organization of a message-queuing system with routers.

Data Stream

A general architecture for streaming stored multimedia data over a network.

Streams and Quality of Service

Properties for Quality of Service:


The required bit rate at which data should be transported. The maximum delay until a session has been set up The maximum end-to-end delay . The maximum delay variance, or jitter. The maximum round-trip delay.

Enforcing QoS (1)

Using a buffer to reduce jitter

Enforcing QoS (2)

The effect of packet loss in (a) non interleaved transmission and (b) interleaved transmission.

Synchronization Mechanisms (1)

The principle of explicit synchronization on the level data units.

Synchronization Mechanisms (2)

The principle of synchronization as supported by high-level interfaces.

Thread Usage in Nondistributed Systems

Context switching as the result of IPC.

Multithreaded Servers (1)

A multithreaded server organized in a dispatcher/worker model.

Networked User Interfaces (1)

(a) A networked application with its own protocol.

Networked User Interfaces (2)

(b) A general solution to allow access to remote applications.

Server Clusters (1)

The general organization of a three-tiered server cluster.

Server Clusters (2)

The principle of TCP handoff.

Reasons for Migrating Code

The principle of dynamically configuring a client to communicate to a server. The client first fetches the necessary software, and then invokes the server.

Models for Code Migration

Alternatives for code migration.

Research trends

Communication and service platform for NXGN and NWGN Communication middleware in parallel systems Design of advanced communication protocols for embedded networking (sensors, actors, embedded controllers, etc):
Semantics-orientation Hard spatial and temporal constraints

You might also like