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

Similar documents
Communication. Outline

Communication. Overview

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

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

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

DISTRIBUTED COMPUTER SYSTEMS

Last Class: RPCs and RMI. Today: Communication Issues

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

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Communication. Distributed Systems Santa Clara University 2016

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

DS 2009: middleware. David Evans

Last Class: RPCs. Today:

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

Chapter 4 Communication

Chapter 4 Communication

DISTRIBUTED COMPUTER SYSTEMS

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

MODELS OF DISTRIBUTED SYSTEMS

Chapter 5: Distributed objects and remote invocation

Distributed Systems COMP 212. Lecture 15 Othon Michail

MODELS OF DISTRIBUTED SYSTEMS

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

Advanced Distributed Systems

SAI/ST course Distributed Systems

COMMUNICATION IN DISTRIBUTED SYSTEMS

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

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

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

Verteilte Systeme (Distributed Systems)

CHAPTER - 4 REMOTE COMMUNICATION

Distributed Information Processing

02 - Distributed Systems

02 - Distributed Systems

Distributed Systems. Chapter 02

Communication. Distributed Systems IT332

Chapter 4 Communication

Lecture 5: Object Interaction: RMI and RPC

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

Indirect Communication

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

PART B UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM PART A

Verteilte Systeme (Distributed Systems)

Communication Paradigms

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

Today: Distributed Objects. Distributed Objects

Distributed Systems Principles and Paradigms. Chapter 04: Communication

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

Lecture 06: Distributed Object

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

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Slides for Chapter 5: Remote Invocation

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

Operating System Support

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

Middleware and Interprocess Communication

Distributed Systems Principles and Paradigms. Chapter 04: Communication

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

DISTRIBUTED OBJECTS AND REMOTE INVOCATION

Electronic Payment Systems (1) E-cash

Chapter 5: Remote Invocation. Copyright 2015 Prof. Amr El-Kadi

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Collaboration of Tasks

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

Distributed Middleware. Distributed Objects

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

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

Advanced Topics in Operating Systems

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

CAS 703 Software Design

Indirect Communication

Module 3 - Distributed Objects & Remote Invocation

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

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

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

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

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

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics

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

CHAPTER 2. Introduction to Middleware Technologies

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

Software Architecture Patterns

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

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

Architecture of Software Intensive Systems

CS454/654 Midterm Exam Fall 2004

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


Chapter 4: Processes. Process Concept

Chapter 1: Distributed Information Systems

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial.

CSci Introduction to Distributed Systems. Communication: RPC

Chapter 4: Processes

Structured communication (Remote invocation)

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

Unit 7: RPC and Indirect Communication

CHAPTER 3 - PROCESS CONCEPT

03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI

Outlook. Process Concept Process Scheduling Operations on Processes. IPC Examples

Transcription:

Distributed Systems 6 RMI/MP IPC May-18-2009 Gerd Liefländer System Architecture Group 1

Intended Schedule of Today RMI (only rough overview) Message Passing Motivation Bridge Principle Message Passing Systems Design parameters Direct versus indirect naming Transient versus persistent communication Persistent communication IPC Semantics Communication Endpoints Events & Notification (see additional slides) Stream-oriented Communication (see other courses) 2

Introduction Remote Method Invocation RPC RMI RPC: invoke procedure of a remote server RMI: invoke method of a remote object at a remote server (quite similar to RPC) 3

Remote Method Invocation (RMI) Client side stub: proxy marshalling method parameters and transferring message to the server machine Server side stub: skeleton unmarshalling parameters and calling remote object and back again Piece of software at server side is a remote object (if its state is completely located at one remote machine) Sometimes even the state of a remote object can be distributed, then this is a true distributed object Additional problems arise when objects can migrate and/or are replicated 4

RPC versus RMI Remote object: Not associated to a specific server node, i.e. we can achieve better transparency if object can migrate Remotely accessible Exchange remote references between tasks Encapsulates state Easier to keep track of related state Easier migration/replication of state Easier synchronization of concurrent RMIs 5

Interface CORBA IDL Example // In file Person.idl struct Person { string name; string place; short salary; long year; } ; interface PersonList { readonly attribute string listname; void addperson(in Person p) ; void getperson(in string name, out Person p); void updateperson(in Person p, short s, out Person p); long number(); }; 6

Message Passing Major drawbacks of RPC (and RMI): 1. Only transient communication, i.e. if callee is not activated request is lost 2. Caller synchronously blocked 3. Application programmers sometimes want more flexibility 7

Why do we need Message Passing? RPC/RMI is too restricted (e.g. limited parameters) or just not available on all involved nodes Sometimes applications need a comfortable and flexible IPC mechanism, e.g. a multicast to notify multiple nodes, e.g. in order to speed up a search Applications want to cooperate asynchronously Consumer on node 1, producer on node 2 P2P applications Client-Server applications We need an efficient & secure way to transfer application messages across the network(s) 8

Typical IPC Applications IPC via message passing is appropriate for fast cooperation between distributed applications, i.e. Synchronize physical clocks Enable mutual exclusion Elect a new coordinator Enable a global snapshot Detect a global deadlock In all these cases a synchronous RPC is insufficient 9

Bridge Principle 10

Communication Bridge Principle Bridge Principle Sender send() Computer boundary receive() Receiver Port receiver substitute sender substitute Port Bridge Data transfer over Network Remark: The functionality of the substitutes may vary depending on the requirements of the pair <sender(s)/receiver(s)> 11

Bridge Principle How to implement Communication Bridges? Bridges completely outside of the kernel distributed process model (Prozessverbund 1 ) Bridges within kernel & outside of kernel Hybrid model Bridges completely within kernel distributed kernel model (Kernverbund) 1 Terminology of Heiss (TU Berlin) and Wettstein 12

Bridge Principle Distributed Kernel Model Application A Computer Boundaries Application B User Mode Communication Software Local Kernel Distributed Kernel Communication Software Local Kernel Kernel Mode Distribution is hidden below the kernel API System calls at kernel API might access arbitrary kernel-objects Distributed kernel := union of all local kernels 13

Bridge Principle Distributed Process Model Computer Boundaries Application A Application B Communication Software Communication Software User Mode Local Kernel Local Kernel Kernel Mode API of local kernels must not be adapted Local kernel is not aware of being a member of a DS 14

IPC Models & Parameters Introduction Simple or Multiple Client Server Message-Oriented Transient IPC Sockets and MPI Message-Oriented Persistent IPC 15

Basic Communication Message Passing System * Implements explicit data transfer via a network Offers communication primitives at API at least a send(...) & a receive(...) operation Distributed Application API Network Node 1 Node 2 Node 3 *Very simple form of a middleware 16

Simple IPC Models Only 2 instances are part of the IPC, e.g. 1 client and 1 server, e.g. 2 processes or 1 process and a procedure Clients requests, server replies 2 peers (always 2 processes), both partners with equal communication rights can send or receive 17

Simple IPC Pattern Client send Peer receive send Peer send receive receive reply server sendrequest, receiverequest, replyresult 18

Multiple IPC Pattern (Client/Server) Client Client send send receive receive reply receive reply receive reply server sendrequest as multicast server What to do when replies are different? 19

Overview Pragmatic Design Parameters Length of message Constant or fixed Variable, but limited in size Unlimited Loss of messages Not noticed Suspected and notified Avoided Integrity of messages Not noticed Detected and notified Automatically corrected 20

Message Oriented Communication Orthogonal Design Parameters Number of involved communication partners Synchronous versus asynchronous Placing the message buffers Persistent versus transient communication Addressing the communicating instances 21

Basic Communication Direct versus Indirect Addressing Relationship mailboxes (ports) & processes 1:1 (one port per process) 1:n m:1 m:n Extension of buffering (in mailbox, channels) Number of involved buffers Limited buffer size (typical) 22

Direct Addressing Source and destination process/task serve as designators Allows a process easy control when to receive a message from a specific process Used to implement client/server applications Well suited iff 1 client & 1 server Otherwise: server must be able to receive request from any client A client should be allowed to invoke many services at a time if more than one server is available 23

Indirect Addressing (Mailboxes) Mailbox shared by n>1 processes Messages sent to a mailbox can be received by any process currently attached to mailbox Implement more flexible client/server applications Client sends request to mailbox next server executes it Drawback: costly implementation 1. Message sent to mailbox 2. Relayed to all other sites that could potentially receive from mailbox 3. If on site decides to receive, inform all other sites that message is no longer available for receipt 4. Mutual exclusion for concurrent access 24

Indirect Addressing (Cont.) Port=mailbox, only one process can receive from...... Channel Static (at compile time)... Dynamic (at runtime)... 25

Persistence & Synchronicity Message Oriented Communication Organization of a communication system in which hosts are connected through communication servers via a network Communication servers (and/or hosts) can hold undeliverable messages as long as needed 26

Communication Models Message Oriented Communication Persistent versus Transient Persistent messages stored as long as necessary by the communication system (e.g. E-mail) Transient messages are discarded when they cannot be delivered (e.g. transport level) Synchronous versus Asynchronous Asynchronous implies sender proceeds as soon as it sends the message, i.e. no blocking Synchronous implies sender blocks until the receiver buffers the message or even delivers the message to the receiver 27

Message Oriented Communication Persistence and Synchronicity (1) active active a) Persistent asynchronous communication (email) b) Persistent synchronous communication 28

Message Oriented Communication Persistence and Synchronicity (2) 2-22.2 active c) Transient asynchronous communication d) Receipt-based transient synchronous communication 29

Message Oriented Communication Persistence and Synchronicity (3) Done e) Delivery-based transient synchronous communication f) Response-based transient synchronous communication 30

Transient IPC Berkeley Sockets MPI 31

Message Oriented Communication Message Passing Interface (1) Overcome disadvantages of sockets: Wrong level of abstraction being implemented at a too low level with only very primitive operations Designed for communication across networks using general-purpose protocol stacks (TCP/IP) Relatively poor performance Not well suited for high-speed interconnection networks used in COW* (Myrinet) * COW = Cluster Of Workstations 32

Message Oriented Communication MPI (2) Assumptions: 1. Communication only within a group of processes 2. Each group has a unique identifier 3. Groups may overlap 4. Each process in a group has a (local) identifier <GID, PID> identifies source/target of message 5. Support diverse forms of buffering and synchronization (over 100 functions) 6. If serious failures occur (e.g. network partition), no automatic recovery is offered 33

Message Oriented Communication Message-Passing Interface (3) 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 The most intuitive message-passing primitives of MPI 34

Persistent IPC Message-Queuing Systems Message-Oriented Middleware (MOM) 35

Persistent Communication Message Oriented Communication Application communicate by inserting messages in specific message queues Loosely coupled communication, i.e. it s no longer required that both sides are active while communicating Offer persistent intermediate-term storage capacity Applications can usually tolerate longer message transfer times Applications typically need larger message sizes 36

Message-Queuing Model (1) Message Oriented Communication 4 combinations for a loosely-coupled communication (b) Message remains in one of the queues till receiver is calling a receive, sender keeps on sending 37

Message-Queuing Model (2) Message Oriented Communication 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 an observer handler to be called when a message is put into the specified queue (callback function). Basic interface to a queue in a message-queuing system. 38

Message Oriented Communication Message-Queuing System (1) Relationship between queue-level addressing and network-level addressing 39

Message-Queuing System Message Oriented Communication 2-29 General organization of a message-queuing system with routers 40

Message Oriented Communication Message Brokers Subscribe list General organization of a message broker in a MQS A message broker can also act as a central manager of a publish/subscribe systems 41

Example: IBM MQSeries Message Oriented Communication Organization of IBM's MQSeries message-queuing system 42

Message Oriented Communication Channels Attribute Transport type FIFO delivery Message length Setup retry count Delivery retries Description Determines the transport protocol to be used Indicates that messages are to be delivered in the order they are sent Maximum length of a single message Specifies maximum number of retries to start up the remote MCA Maximum times MCA will try to put received message into queue Attributes associated with message channel agents 43

Message Oriented Communication Message Transfer (1) General organization of an MQSeries queuing network using routing tables and aliases. 44

Message Oriented Communication 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 45

Message Oriented Communication Simple Mail Transfer Protocol (SMTP) Processes User agents (mail readers) Eudora, pine, elm, outlook, messenger Mail servers Store messages SMTP Uses TCP/IP Uses DNS Client-to-server protocols Pop (post office protocol) Imap (internet mail access protocol) 46

Message Oriented Communication SMTP User agent User agent User agent Mail server SMTP Mail server User agent User agent User agent Mail server User agent User agent User mailbox Queue of outgoing messages 47

Message Oriented Communication Network News Protocol News client 1.1 News client 1.2 News client 1.3 News server 1 News server 3 News client 3.1 News client 3.2 News client 2.1 News client 2.2 News server 2 News server 4 Network News Reader Protocol (NNRP) Network News Transport Protocol (NNTP) News client 4.1 News client 4.2 News client 4.4 Uses TCP Servers flood fill their peers with new postings 48

Communication Endpoints 49

Communication Endpoints Identified via a DS wide unique identifier Location transparency if global name scheme Different types of receiving instances : Procedure or method, i.e. something passive to be invoked on the remote side Process or thread receiving the message, i.e. something active on the remote side Port handovers message to its owner process Mailbox buffers message for its attached processes 50

Types of Service Instances Common AS 1 Separate ASes Passive Instance Library Local Procedure Local Object Remote Procedure Remote Object Active Instance Thread Process Task 1 except SASOS 51

Communication Endpoints Identifier of the place of destination can have meaning that is location transparent (or not) tradeoff between performance and flexibility or transparency Value of identifier must be system wide unique (at least for a while) 52

Example Remote Procedure Comparable to a PCB or TCB If caller must know about the node hosting the remote procedure we have no location transparency 53

Example Process 54

Example Port 55

Example Mailbox 56

Example Port Chain 57

Summary: Endpoints 58

How to achieve Uniqueness? Identifier must have a value excluding ambiguity Random number depends on quality of random number generator Time stamp needs a global time Processor number depends on manufacturer Already locally you need uniqueness, e.g. Used only once (see: UNIX PID) Generation number differs between reused identifiers Address of an object in RAM Degree of uniqueness depends on potential range of values See Y2K problems 59

Structured Identifiers Typically the structure of an identifier is not visible from outside It enhances an efficient lookup for an insider Identifier is location transparent (but contains location hints) 60

Communication Process Direct: identifier is a PID, i.e. either a process or a procedure or a TID, i.e. a thread-id Messages are sent to the corresponding AS Indirect: identifier is a port-id or a mailbox-idid Messages are sent to receiver via a port or mailbox Connection oriented: identifier is a port-id Connection exists between ports Using a connection helps to reserve resources 61

Direct Communication (1) Address a remote procedure to do work specified in the request message Scheme neither supports migration nor failure transparence 62

Direct Communication (2) Address a remote process to do work specified in the request message Time when this message will received determines the scheduling of the related worker thread (process) Potential scheduling latency requires a message queue Scheme neither supports migration nor failure transparency 63

Indirect Communication (1) Address a remote port to forward the request message Receiver (with PID 55) is loosely coupled (docked) with the entrance port Binding is dynamic and can relate to multiple ports Scheme supports migration, but not failure transparency 64

Indirect Communication (2) WHY? You address a remote mailbox to queue messages Multiple processes can receive from the same mailbox Typical for multithreaded server Scheme neither supports migration nor failure transparency 65

Connection Oriented Communication (1) You address the local port to forward your request message Linking between send-port and remote process is dynamic Identifier of the remote process can be a replicate Scheme supports migration and failure transparency 66

Connection Oriented Communication (2) Address local port to forward request message via a port chain Dynamic linking of send-port to receive-port either according to 1:1 or N:1 In case of node crashes you have to repair broken portchains Scheme supports migration and failure transparency 67