Chapter 4 Communication

Similar documents
Chapter 4 Communication

Chapter 4 Communication

Distributed Information Processing

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Communication. Distributed Systems Santa Clara University 2016

DISTRIBUTED COMPUTER SYSTEMS

IPC. Communication. Layered Protocols. Layered Protocols (1) Data Link Layer. Layered Protocols (2)

Distributed Systems Principles and Paradigms

Last Class: RPCs and RMI. Today: Communication Issues

Communication. Distributed Systems IT332

Communication. Overview

Communication in Distributed Systems

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

Today CSCI Remote Method Invocation (RMI) Distributed Objects

SAI/ST course Distributed Systems

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

DISTRIBUTED COMPUTER SYSTEMS

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Communication. Outline

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Verteilte Systeme (Distributed Systems)

Distributed Systems. Chapter 02

Communication. Layered Protocols. Topics to be covered. Layered Protocols. Introduction

Distributed Systems COMP 212. Lecture 15 Othon Michail

CHAPTER - 4 REMOTE COMMUNICATION

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS

LECTURE 6: MESSAGE-ORIENTED COMMUNICATION II: MESSAGING IN DISTRIBUTED SYSTEMS. Lecture Contents

Architecture of Software Intensive Systems

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Middleware and Interprocess Communication

Distributed Systems Inter-Process Communication (IPC) in distributed systems

Network Management & Monitoring

Communication. Communication. Distributed Systems. Networks and protocols Sockets Remote Invocation Messages Streams. Fall /10/2001 DoCS

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Advanced Distributed Systems

Communication in Distributed Systems Programming

Indirect Communication

Indirect Communication

A common issue that affects the QoS of packetized audio is jitter. Voice data requires a constant packet interarrival rate at receivers to convert

Dr. Jack Lange Computer Science Department University of Pittsburgh. Fall Distributed System Definition. A distributed system is

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

CHAPTER 2. Introduction to Middleware Technologies

ETSF10 Internet Protocols Transport Layer Protocols

Last Class: RPCs. Today:

Architecture of Distributed Systems

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

Distributed Information Processing

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)

Distributed Systems. Communication (2) Lecture Universität Karlsruhe, System Architecture Group

Protocol Specification. Using Finite State Machines

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Distributed Systems. Lehrstuhl für Informatik 4. RWTH Aachen. Organization. Literature. Classification of the lecture

Distributed Systems. Communication (2) Schedule of Today. Distributed Objects. Distributed Objects and RMI. Corba IDL Example

DISTRIBUTED SYSTEMS. Second Edition. Andrew S. Tanenbaum Maarten Van Steen. Vrije Universiteit Amsterdam, 7'he Netherlands PEARSON.

Module 3 - Distributed Objects & Remote Invocation

May Gerd Liefländer System Architecture Group Universität Karlsruhe (TH), System Architecture Group

Distributed Systems 8. Remote Procedure Calls

Introduction to Distributed Systems

CS 856 Latency in Communication Systems

CSci Introduction to Distributed Systems. Communication: RPC

DS 2009: middleware. David Evans

Collaboration of Tasks

Verteilte Systeme (Distributed Systems)

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Chapter 7 Consistency And Replication

Lecture 8: February 19

CS455: Introduction to Distributed Systems [Spring 2018] Dept. Of Computer Science, Colorado State University

Point-to-Point Network Switching. Computer Networks Term B10

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Introduction to Distributed Systems. Fabienne Boyer, LIG,

Implementing Remote Procedure Calls*

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

CERN openlab Summer 2006: Networking Overview

Module 3 Accessing Remote Resources CS655! 3-1!

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

CS 428/528 Computer Networks Lecture 01. Yan Wang

Communication Basics, RPC & RMI. CS403/534 Distributed Systems Erkay Savas Sabanci University

Interprocess Communication

Distributed Systems. Lehrstuhl für Informatik IV RWTH Aachen. Organisation. Classification of the lecture. Literature

Communication in Distributed Systems

PLEASE READ CAREFULLY BEFORE YOU START

IBM Lotus Expeditor 6.2 Server MQ Everyplace Overview

Chapter 2 ARCHITECTURES

Module 2 Overview of Computer Networks

Module 2 Overview of. Computer Networks

Just enough TCP/IP. Protocol Overview. Connection Types in TCP/IP. Control Mechanisms. Borrowed from my ITS475/575 class the ITL

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 5 Naming

Desarrollo de Aplicaciones en Red. El modelo de comunicación. General concepts. Models of communication. Message Passing

PLEASE READ CAREFULLY BEFORE YOU START

xkcd.com End To End Protocols End to End Protocols This section is about Process to Process communications.

COMP9243 Week 2 (08s1) Ihor Kuz, Felix Rauch, Manuel M. T. Chakravarty & Gernot Heiser

Transcription:

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication

Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI model.

Layered Protocols (2) Figure 4-2. A typical message as it appears on the network.

Middleware Protocols Figure 4-3. An adapted reference model for networked communication.

Types of Communication Figure 4-4. Viewing middleware as an intermediate (distributed) service in application-level communication.

Conventional Procedure Call Figure 4-5. (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 Figure 4-6. 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 client s 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. Continued

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 server s OS sends the message to the client s OS. 9. The client s OS gives the message to the client stub. 10. The stub unpacks the result and returns to the client.

Passing Value Parameters (1) Figure 4-7. The steps involved in a doing a remote computation through RPC.

Passing Value Parameters (2) Figure 4-8. (a) The original message on the Pentium.

Passing Value Parameters (3) Figure 4-8. (b) The original message on the Pentium.

Passing Value Parameters (4) Figure 4-8. (c) The message after being inverted. The little numbers in boxes indicate the address of each byte.

Passing by Reference Like passing a pointer or an array or by reference. The pointer or address has meaning within the same address space. Call by reference is replaced by a copy/restore. Difference between input and output parameters.

Parameter Specification and Stub Generation Figure 4-9. (a) A procedure. (b) The corresponding message.

Asynchronous RPC (1) Figure 4-10. (a) The interaction between client and server in a traditional RPC.

Asynchronous RPC (2) Figure 4-10. (b) The interaction using asynchronous RPC.

Asynchronous RPC (3) Figure 4-11. A client and server interacting through two asynchronous RPCs.

Writing a Client and a Server (1) Figure 4-12. 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 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 server s machine. 2. Locate the server on that machine.

Binding a Client to a Server (2) Figure 4-13. Client-to-server binding in DCE.

Berkeley Sockets Figure 4-14. The socket primitives for TCP/IP.

The Message-Passing Interface (1) Figure 4-15. Connection-oriented communication pattern using sockets.

The Message-Passing Interface (2) Figure 4-16. Some of the most intuitive message-passing primitives of MPI.

Message-Queuing Model (1) Figure 4-17. Four combinations for loosely-coupled communications using queues.

Message-Queuing Model (2) Figure 4-18. Basic interface to a queue in a message-queuing system.

General Architecture of a Message- Queuing System (1) Figure 4-19. The relationship between queue-level addressing and network-level addressing.

General Architecture of a Message- Queuing System (2) Figure 4-20. The general organization of a message-queuing system with routers.

Message Brokers Figure 4-21. The general organization of a message broker in a message-queuing system.

IBM s WebSphere Message-Queuing System Figure 4-22. General organization of IBM s message-queuing system.

Channels Figure 4-23. Some attributes associated with message channel agents.

Message Transfer (1) Figure 4-24. The general organization of an MQ queuing network using routing tables and aliases.

Message Transfer (2) Figure 4-25. Primitives available in the message-queuing interface.

Data Stream Figure 4-26. 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) Figure 4-27. Using a buffer to reduce jitter.

Enforcing QoS (2) Figure 4-28. The effect of packet loss in (a) non interleaved transmission and (b) interleaved transmission.

Synchronization Mechanisms (1) Figure 4-29. The principle of explicit synchronization on the level data units.

Synchronization Mechanisms (2) Figure 4-30. The principle of synchronization as supported by high-level interfaces.

Overlay Construction Figure 4-31. The relation between links in an overlay and actual network-level routes.

Information Dissemination Models (1) Anti-entropy propagation model Node P picks another node Q at random Subsequently exchanges updates with Q Approaches to exchanging updates P only pushes its own updates to Q P only pulls in new updates from Q P and Q send updates to each other

Information Dissemination Models (2) Figure 4-32. The relation between the fraction s of updateignorant nodes and the parameter k in pure gossiping. The graph displays ln(s) as a function of k.