Chapter 4 Communication

Similar documents
Chapter 4 Communication

Chapter 4 Communication

Distributed Information Processing

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. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

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

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Communication. Distributed Systems IT332

DISTRIBUTED COMPUTER SYSTEMS

Distributed Systems Principles and Paradigms

Communication. Distributed Systems Santa Clara University 2016

Communication. Outline

Communication in Distributed Systems

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

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

Communication. Overview

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

SAI/ST course Distributed Systems

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

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

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

Today CSCI Remote Method Invocation (RMI) Distributed Objects

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

Last Class: RPCs and RMI. Today: Communication Issues

Advanced Distributed Systems

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

Distributed Systems. Chapter 02

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

Indirect Communication

Indirect Communication

Replica Placement. Replica Placement

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

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

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

Distributed Systems COMP 212. Lecture 15 Othon Michail

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

DISTRIBUTED COMPUTER SYSTEMS

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

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

Distributed Information Processing

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

Middleware and Interprocess Communication

Module 7 - Replication

DS 2009: middleware. David Evans

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Architecture of Software Intensive Systems

CHAPTER 2. Introduction to Middleware Technologies

Introduction to Distributed Systems

Communication in Distributed Systems Programming

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

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

CHAPTER - 4 REMOTE COMMUNICATION

Last Class: RPCs. Today:

Chapter 8 Fault Tolerance

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

Unit 7: RPC and Indirect Communication

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

Lecture 8: February 19

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

Lecture 5: Object Interaction: RMI and RPC

Networked Systems and Services, Fall 2018 Chapter 4. Jussi Kangasharju Markku Kojo Lea Kutvonen

Module 3 - Distributed Objects & Remote Invocation

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

Software Architecture Patterns

Verteilte Systeme (Distributed Systems)

Time and Space. Indirect communication. Time and space uncoupling. indirect communication

Today: Distributed Objects. Distributed Objects

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

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

Verteilte Systeme (Distributed Systems)

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

Two Phase Commit Protocol. Distributed Systems. Remote Procedure Calls (RPC) Network & Distributed Operating Systems. Network OS.

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

Distributed Systems. The main method of distributed object communication is with remote method invocation

Module 3 Accessing Remote Resources CS655! 3-1!

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

Indirect Communication

Large Systems: Design + Implementation: Communication Coordination Replication. Image (c) Facebook

Interprocess Communication

Distributed Systems Principles and Paradigms

COMMUNICATION IN DISTRIBUTED SYSTEMS

Collaboration of Tasks

Lecture 06: Distributed Object

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

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

DISTRIBUTED SYSTEMS [COMP9243] Distributed Object based: Lecture 7: Middleware. Slide 1. Slide 3. Message-oriented: MIDDLEWARE

Chapter 8 Fault Tolerance

Architecture of Distributed Systems

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI

Distributed Systems Principles and Paradigms

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

DISTRIBUTED SYSTEMS PRINCIPLES AND PARADIGMS

Chapter 6 Synchronization

Chapter 2 Distributed Computing Infrastructure

Implementing Remote Procedure Calls*

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

Consistency and Replication

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

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.

Types of Communication 1) Client/Server computing is generally based on a model of transient synchronous communication: Client and server have to be active at time of communication. Client issues request and blocks until it receives reply. Server essentially waits only for incoming requests, and subsequently processes them Drawbacks of synchronous communication: Client cannot do any other work while waiting for reply. Failures have to be handled immediately: the client is waiting. The model may simply not be appropriate (mail, news) 2) Message-oriented middleware: Aims at high-level persistent asynchronous communication: Processes send each other messages, which are queued Sender need not wait for immediate reply, but can do other things Middleware often ensures fault tolerance

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.

Basic RPC Operation Figure 4-6. Principle of RPC between a client and server program.

RPC Operation Figure 4-7. The steps involved in a doing a remote computation through RPC.

Remote Procedure Calls (1) A remote procedure call occurs in the following steps: 1. The client procedure calls the client stub. 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 (2) Figure 4-8. (a) The original message on the Pentium.

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. A remote reference mechanism enhances access transparency Remote reference offers unified access to remote data Remote references can be passed as parameter in RPCs Note: stubs can sometimes be used as such references

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.

Making sockets easier to work with Sockets are rather low level and programming mistakes are easily made. However, the way that they are used is often the same (such as in a client-server setting). ZeroMQ Provides a higher level of expression by pairing sockets: one for sending messages at process P and a corresponding one at process Q for receiving messages. All communication is asynchronous. Three patterns 1. Request-reply 2. Publish-subscribe 3. Pipeline

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 MQ

IBM s WebSphere MQ 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. By using logical names, in combination with name resolution to local queues, it is possible to put a message in a remote queue

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

Application-level multicasting To do multicast: two forms are either building an overlay network or using epidemic behavior. To overcome multicast routing usually an overlay network is formulated. There are two main types of overlay multicast networks: 1- tree based where there will be a single path between every two nodes in the multicast group 2- mesh based where there will be multiple paths between every two nodes in the group. More robust, requiring a form of routing

Overlay Construction Link stress: How often does an ALM message cross the same physical link? Example: message from A to D needs to cross hra;rbi twice. Stretch: Ratio in delay between ALM-level path and network-level path. Example: messages B to C follow path of length 73 at ALM, but 47 at network level ) stretch = 73/47.

Flooding Assume that an overlay network is built per multicast group. Then send a message m to the set of destination is converted to flooding. Flooding in tree is optimal O(M)= N-1 For fully connected network which has O(N 2 ) = N*(N-1)/2 links. If each link exists with probability (none-structured overlay network) P edge number of links = P edge * N * (N-1)/2.

Epidemic (Gossiping)

Anti-entropy 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 (push-pull)

Rumor Spreading A server S having an update to report, contacts other servers. If a server is contacted to which the update has already propagated, S stops contacting other servers with probability p stop. It become removed node. Fast propagation. But, no guarantee that the message will be delivered to all nodes. Assume s is the fraction of nodes which will not receive updates.

Deleting values Removal has to be registered as a special update by inserting a death certificate. When to remove a death certificate (it is not allowed to stay for ever) Run a global algorithm to detect whether the removal is known everywhere, and then collect the death certificates (looks like garbage collection) Assume death certificates propagate in finite time, and associate a maximum lifetime for a certificate (can be done at risk of not reaching all servers) It is necessary that a removal actually reaches all servers.