Computer Engineering Department Distributed Systems Course

Slides:



Advertisements
Similar presentations
Chapter 4: Communication*
Advertisements

Spring 2000CS 4611 Introduction Outline Statistical Multiplexing Inter-Process Communication Network Architecture Performance Metrics.
T.Sharon-A.Frank 1 Multimedia Quality of Service (QoS)
29.1 Chapter 29 Multimedia Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 25 Multimedia.
Dr. Kalpakis CMSC621 Advanced Operating Systems Communication.
Last Class: RPCs and RMI
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
CS294-9 :: Fall 2003 ALF and RTP Ketan Mayer-Patel.
EECS122 - UCB 1 CS 194: Distributed Systems Remote Object Invocation, Message- Oriented Communications (Based on textbook slides) Computer Science Division.
CS 582 / CMPE 481 Distributed Systems Communications.
Department of Computer Engineering University of California at Santa Cruz Networking Systems (1) Hai Tao.
Persistent and Transient Objects Persistent objects continue to exist even if they aren’t in the address space of a server process Transient objects existence.
CS 582 / CMPE 481 Distributed Systems Communications (cont.)
Chapter 2  Communication 1 Communication Chapter 2.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Computer Science Lecture 2, page 1 CS677: Distributed OS Last Class: Introduction Distributed Systems – A collection of independent computers that appears.
1/20 Introduction Outline Statistical Multiplexing Inter-Process Communication Network Architecture Performance Metrics Implementation Issues.
Univ. of TehranDistributed Operating Systems1 Advanced Operating Systems University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
TCP: Software for Reliable Communication. Spring 2002Computer Networks Applications Internet: a Collection of Disparate Networks Different goals: Speed,
An adapted reference model for networked communication.
Communication Part II Message-Oriented Communication Chapter 4.
Communication. Asynchronous RPC (1) a)The interconnection between client and server in a traditional RPC b)The interaction using asynchronous RPC 2-12.
Messaging Passing Communication AOS Dan Huang. Why Need Message RPC and ROI hiding communication for transparency. Hiding communication is not an appropriate.
Message-Oriented Communication Synchronous versus asynchronous communications Message-Queuing System Message Brokers Example: IBM MQSeries 02 – 26 Communication/2.4.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Gursharan Singh Tatla Transport Layer 16-May
Process-to-Process Delivery:
1 CMSCD1011 Introduction to Computer Audio Lecture 10: Streaming audio for Internet transmission Dr David England School of Computing and Mathematical.
Chapter 17 Networking Dave Bremer Otago Polytechnic, N.Z. ©2008, Prentice Hall Operating Systems: Internals and Design Principles, 6/E William Stallings.
Communication (II) Chapter 4
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Support for continuous media Streams in distributed systems Stream management Stream-Oriented Communication 02 – 36 Communication/2.5 Stream-Oriented Communication.
1 CS 6823 ASU Message-Queuing Model The underlying system takes care of fragmenting and assembling large messages Put: nonblocking call Get:
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 CHAPTER 8 TELECOMMUNICATIONSANDNETWORKS. 2 TELECOMMUNICATIONS Telecommunications: Communication of all types of information, including digital data,
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Message Oriented Communication Prepared by Himaja Achutha Instructor: Dr. Yanqing Zhang Georgia State University.
03/11/2015 Michael Chai; Behrouz Forouzan Staffordshire University School of Computing Streaming 1.
CS Spring 2014 CS 414 – Multimedia Systems Design Lecture 18 – Multimedia Transport (Part 1) Klara Nahrstedt Spring 2014.
Multimedia and Networks. Protocols (rules) Rules governing the exchange of data over networks Conceptually organized into stacked layers – Application-oriented.
 Communication Distributed Systems IT332. Outline  Fundamentals  Layered network communication protocols  Types of communication  Remote Procedure.
Chapter 15 Chapter 15 Multimedia and Networks Multimedia Systems.
Distributed Computing Systems
Distributed (Operating) Systems -Communication in Distributed Systems- Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Communication Chapter 2.
OS2-SUT– Sem ; R. Jalili Communication Chapter 2.
Communication Chapter 2.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Performance Metrics & Network Architectures Professor Jinhua Guo CIS 427 Winter 2003.
Communication Chapter 2. Layered Protocols (1) Layers, interfaces, and protocols in the OSI model. 2-1.
2: Transport Layer 11 Transport Layer 1. 2: Transport Layer 12 Part 2: Transport Layer Chapter goals: r understand principles behind transport layer services:
Multimedia Communication Systems Techniques, Standards, and Networks Chapter 4 Distributed Multimedia Systems.
OS2-Sharif University of Technology - Sem ; R. Jalili Communication Chapter 2.
1 Prof. Leonardo Mostarda University of Camerino Distributed Systems – Remote Procedure Calls Prof. Leonardo Mostarda-- Camerino,
Last Class: Introduction
Last Class: RPCs and RMI
Message Based Communication
Communication Chapter 2.
Process-to-Process Delivery:
Chapter 15 – Part 2 Networks The Internal Operating System
Process-to-Process Delivery: UDP, TCP
Presentation transcript:

Distributed (Operating) Systems -Message-oriented Communication- -Stream-oriented Communication- Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015

Communication Issues Message-oriented communication Transient vs Persistent Synchronous vs asynchronous Stream-oriented communication

Message-oriented Transient Communication Many distributed systems built on top of simple message-oriented model Example: Berkeley sockets – transport level sockes

Berkeley Socket Primitives

Message-Passing Interface (MPI) Sockets are designed for network communication (e.g., TCP/IP) Support simple send/receive primitives Abstraction not suitable for other protocols in clusters of workstations or massively parallel systems Need an interface with more advanced primitives Buffering and synchronization Large number of incompatible proprietary libraries and protocols Need for a standard interface Message-passing interface (MPI) Hardware independent Designed for parallel applications (uses transient communication)

MPI Key idea: communication between groups of processes Each endpoint is a (groupID, processID) pair MPI are intent to be used in clusters It is basically used for scientific applications and parallel systems It overcomes some of the TCP communications MPI basically run on UDP Socket based communication is also transient but it is based on synch communication but here MPI also support asynchronous communication

MPI Primitives

Message-oriented Persistent Communication Message queuing systems or Message oriented Middleware (MOM) Support asynchronous persistent communication Intermediate storage for message while sender/receiver are inactive Example application: email Communicate by inserting messages in queues Sender is only guaranteed that message will be eventually inserted in recipient’s queue No guarantees on when or if the message will be read “Loosely coupled communication”

Message-Queuing Model (1)

Basic interface to a Queue Put: append a message to a specified queue Get: block until the specified queue is nonempty and remove the first message Poll: check a specified queue for messages and removes the first . Never block Notify: install a handler to be called when a message is put into the specified queue.

Message-Queuing Model

General Architecture of a Message-Queuing System (2) Queue manager and relays Relays use an overlay network Relays know about the network topology and how to route

Message Brokers Message broker: application level gateway in MQS Convert incoming messages so that they can be understood by destination (format conversion) Also used for pub-sub systems

IBMʼs WebSphere MQ Queue managers manage queues Connected through message channels Message channel agent (MCA) Checks queue, wraps into TCP packet, send to receiving MCA

Stream Oriented Communication Communication as discussed so far has concentrated on exchanging more-or-less independent and complete units of information. It does not matter at what particular point in time communication takes place. Timing has no effect on correctness. Continuous media: the temporal relationship between different data items are fundamental to correctly interpreting what the data actually means. Audio and video streams Discrete media: temporal information is not important, ex. text and still images

Stream Oriented Communication Timing is crucial in certain forms of communication Examples: audio and video (“continuous media”) 30 frames/s video => receive and display a frame every 30ms If there is increasing delay there might be some frames dropped but human eye can see it TCP does not guarantee short time latency TCP enables retransmitting but frame should be displayed at right time and right place Retransmit does not make sense here UDP is actually better protocol for streaming

Data Streams A sequence of data units Discrete vs. continuous data streams TCP/IP connections – discrete data streams – file transfers Playing an audio – continuous data streams Isochronous communication : Data transfers have a maximum bound on end-end delay and jitter Push mode: no explicit requests for individual data units beyond the first “play” request Streaming live data vs. streaming stored data

To Push or Pull ? Client-pull architecture Server-push architecture Clients pull data from servers (by sending requests) Example: HTTP Pro: stateless servers, failures are easy to handle Con: limited scalability Server-push architecture Servers push data to client Example: video streaming, stock tickers Pro: more scalable, Con: stateful servers, less resilient to failure When/how-often to push or pull?

Examples

Streaming Live stream based comm, real time issues come up, ex- video conferencing, skype Stored stream based comm, latency does not matter, ex- youtube Live streaming has even more stringent constraints Unicast: 1 sends for 1 receiver Multicast: 1 send for n receiver

Streams and Quality of Service Time-dependent and other requirements are specified as quality of service (QoS) Requirements/desired guarantees from the underlying systems Application specifies workload and requests a certain service quality Contract between the application and the system Properties for Quality of Service: The certain loss rate 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. The quality of video

Specifying QoS: Token Bucket The principle of a token bucket algorithm Parameters (rate r, burst b) Rate is the average rate, burst is the maximum number of packets that can arrive simultaneously

Specifying QoS: Leaky Bucket

Enforcing QoS (1) Observation: There are various network-level tools, such as differentiated services by which certain packets can be prioritized. Also: use buffers to reduce jitter

Enforcing QoS (2) Problem: How to reduce the effects of packet loss (when multiple samples are in a single packet)? Solution: simply spread the samples:

Stream synchronization Multiple streams: Audio and video; layered video Need to sync prior to playback Timestamp each stream and sync up data units prior to playback Sender or receiver? App does low-level sync 30 fps: image every 33ms, lip-sync with audio Use middleware and specify playback rates

Synchronization Mechanism Problem: Given a complex stream, how do you keep the different substreams in synch? Example: Think of playing out two channels, that together form stereo sound. Difference should be less than 20–30 μsec! Alternative: multiplex all substreams into a single stream, and demultiplex at the receiver. Synchronization is handled at multiplexing/demultiplexing point (MPEG).

Multicasting Multicast: sending data to multiple receivers Network- and transport-layer protocols for multicast bogged down at the issue of setting up the communication paths to all receivers. Group communication IP multicast versus application-level multicast Construct an overlay multicast tree rooted at the sender Send packet down each link in the tree Issues: tree construction, dynamic joins and leaves

Application-Level Multicasting IP multicasting works in IP layer. Why not just use that? Often difficult to configure, requires too much administrative support, agreement, etc. Application-level seeks to address those issues. Peer-to-peer communication using structured overlays can use application-layer protocols to support multicast The overlay network is used to disseminate information to members

Application-Level Multicasting Essence: Organize nodes of a distributed system into an overlay network and use that network to disseminate data. Two possible structures: Tree: unique path between every pair of nodes Mesh: multiple neighbors ensure multiple paths (more robust)