Communication. Outline

Similar documents
Communication. Overview

Last Class: RPCs. Today:

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

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

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

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

Communication. Distributed Systems Santa Clara University 2016

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

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

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

Last Class: RPCs and RMI. Today: Communication Issues

Verteilte Systeme (Distributed Systems)

DISTRIBUTED COMPUTER SYSTEMS

Chapter 4 Communication

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

Last Class: RPCs. Today:

Distributed Information Processing

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

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Chapter 4 Communication

Chapter 4 Communication

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

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

Communication. Distributed Systems IT332

DISTRIBUTED COMPUTER SYSTEMS

Module 3 - Distributed Objects & Remote Invocation

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

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

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

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

DS 2009: middleware. David Evans

Advanced Distributed Systems

Distributed Systems Principles and Paradigms. Chapter 04: Communication

Distributed Systems Principles and Paradigms. Chapter 04: Communication

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

SAI/ST course Distributed Systems

Distributed Systems. Chapter 02

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

Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory.

Web Services - Concepts, Architecture and Applications Part 3: Asynchronous middleware

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

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

Distributed Systems Course. a.o. Univ.-Prof. Dr. Harald Kosch

Communication in Distributed Systems

Distributed Systems Principles and Paradigms

Distributed Systems COMP 212. Lecture 15 Othon Michail

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

CHAPTER - 4 REMOTE COMMUNICATION

Today: Distributed Objects. Distributed Objects

Interprocess Communication

Middleware and Interprocess Communication

CHAPTER 3 - PROCESS CONCEPT

Chapter 1 INTRODUCTION. SYS-ED/ Computer Education Techniques, Inc.

Diagram of Process State Process Control Block (PCB)

Collaboration of Tasks

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

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

416 Distributed Systems. RPC Day 2 Jan 11, 2017

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Lecture 5: Object Interaction: RMI and RPC

416 Distributed Systems. RPC Day 2 Jan 12, 2018

Indirect Communication

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.

The Big Picture So Far. Chapter 4: Processes

Interprocess Communication

SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (WMQS AP PRG

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

Object-based distributed systems. INF 5040/9040 autumn Lecturer: Frank Eliassen

2017 Paul Krzyzanowski 1

CSci Introduction to Distributed Systems. Communication: RPC

CSE398: Network Systems Design

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

The Big Picture So Far. Chapter 4: Processes

Chapter 3: Processes. Operating System Concepts 9 th Edition

Chapter 4: Processes

MODELS OF DISTRIBUTED SYSTEMS

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API

Distributed Systems 8. Remote Procedure Calls

"Charting the Course... WebSphere MQ V7 Administration for LUW Course Summary

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

BEAAquaLogic. Service Bus. MQ Transport User Guide

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Distributed Information Processing

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

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

COMMUNICATION IN DISTRIBUTED SYSTEMS

Architecture of Software Intensive Systems

Transport Layer (TCP/UDP)

BEAAquaLogic. Service Bus. Native MQ Transport User Guide

Advanced Topics in Operating Systems

WMQ Administration: Windows, AIX, and UNIX

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

Distributed Middleware. Distributed Objects

Process Concept. Chapter 4: Processes. Diagram of Process State. Process State. Process Control Block (PCB) Process Control Block (PCB)

Chapter 4: Processes

Verteilte Systeme (Distributed Systems)

CS153: Communication. Chengyu Song. Slides modified from Harsha Madhyvasta, Nael Abu-Ghazaleh, and Zhiyun Qian

MODELS OF DISTRIBUTED SYSTEMS

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

Transcription:

COP 6611 Advanced Operating System Communication Chi Zhang czhang@cs.fiu.edu Outline Layered Protocols Remote Procedure Call (RPC) Remote Object Invocation Message-Oriented Communication 2 1

Layered Protocols 2-1 Each layer can be changed without the other ones being affected. 3 Client-Server TCP 2-4 a) Normal operation of TCP. b) Transactional TCP. 4 2

Application Protocols Application Protocols Applications HyperText Transfer Protocol (HTTP) HTML Java RMI XML / SOAP Client-Server (Request-Reply) Not blocked by firewall 5 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 6 3

Client and Server Stubs Principle of RPC between a client and server program. 7 Steps of a Remote Procedure Call 1. Client procedure calls client stub in normal way 2. Client stub builds message, calls local OS 3. Client's OS sends message to remote OS 4. Remote OS gives message to server stub 5. Server stub unpacks parameters, calls server 6. Server does work, returns result to the stub 7. Server stub packs it in message, calls local OS 8. Server's OS sends message to client's OS 9. Client's OS gives message to client stub 10. Stub unpacks result, returns to client Net effect: RPC as if LPC (local) 8 4

Passing Value Parameters (1) Which procedures call? Machines have different data representations. Big Endians and Endian? How to pass pointers? Copy array into messages. Input or Output? Cannot handle lists Interface Definition Languages (IDL) A collection of procedures Compiled into client or server stub. 9 Passing Value Parameters (2) 2-8 Steps involved in doing remote computation through RPC 10 5

Parameter Specification and Stub Generation a) A procedure b) The corresponding message. 11 Asynchronous RPC 2-12 a) The interconnection between client and server in a traditional RPC b) The interaction using asynchronous RPC 12 6

Distributed Objects 2-16 Common organization of a remote object with client-side proxy. 13 Binding a Client to an Object Distr_object* obj_ref; obj_ref = ; obj_ref-> do_something(); Distr_object objpref; Local_object* obj_ptr; obj_ref = ; obj_ptr = bind(obj_ref); obj_ptr -> do_something(); (a) (b) //Declare a systemwide object reference // Initialize the reference to a distributed object // Implicitly bind and invoke a method //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 a) (a) Example with implicit binding using only global references b) (b) Example with explicit binding using global and local references 14 7

Parameter Passing 2-18 The situation when passing an object by reference or by value. 15 Object Reference Other Issues network address + endpoint (TCP port) + object ID remote registry Static vs. Dynamic Invocation fobject.append(int) invoke(fobject, id(append), int) Clone Synchronization A proxy can be serialized and sent to another process, to be used as a reference. 16 8

Persistence and Synchronicity in Communication (1) 2-20 General organization of a communication system in which hosts are connected through a network 17 Persistence and Synchronicity in Communication (2) 2-22.1 a) Persistent asynchronous communication b) Persistent synchronous communication 18 9

Persistence and Synchronicity in Communication (3) 2-22.2 c) Transient asynchronous communication d) Receipt-based transient synchronous communication 19 Persistence and Synchronicity in Communication (4) e) Delivery-based transient synchronous communication at message delivery f) Response-based transient synchronous communication 20 10

Berkeley Sockets (1) 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 Socket primitives for TCP/IP. 21 Berkeley Sockets (2) Connection-oriented communication pattern using sockets. 22 11

The Message-Passing Interface (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 Some of the most intuitive message-passing primitives of MPI Message-oriented Transient Communication 23 Message-Queuing Model (1) 2-26 Persistent Asynchronous Communication: Intermediate-term storage for messages, without requiring the sender or receiver always active 24 12

Message-Queuing Model (2) Primitive Put Get Poll Notify Meaning Append a message to a specified queue Block until the specified queue is nonempty, and remove the first message 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. Basic interface to a queue in a message-queuing system. 25 General Architecture of a Message-Queuing System (1) The relationship between queue-level addressing and network-level addressing. 26 13

General Architecture of a Message-Queuing System (2) 2-29 The general organization of a message-queuing system with routers. 27 Message Brokers 2-30 The general organization of a message broker in a message-queuing 28 system. 14

Applications of Message-Queuing Systems Applications with more complex requirements than Emails Guaranteed delivery Priorities Logging Multicast Load balancing Fault tolerating Transaction E.g. Integrate a collection of database applications 29 Example: IBM MQSeries 2-31 General organization of IBM's MQSeries message-queuing system. 30 15

Channels Transfer along the channel can take place only if both its sending and receiving MCA are running. Configure the send queue to set off a trigger when a message is enqueued. The trigger starts the sending MCA The sending MCA sends a control message requesting the other MCA to be started. A daemon listens to a well-known address Channels are stopped automatically after a specified idle time. 31 Message Transfer (1) The general organization of an MQSeries queuing network using routing tables and aliases. 32 16

Message Transfer (2) Primitive MQopen MQclose MQput MQget Description Open a (possibly remote) queue Close a queue Put a message into an opened queue Get a message from a (local) queue Primitives available in an IBM MQSeries MQI 33 17