Message and Stream Oriented Communication

21,046 views 38 slides Aug 18, 2018
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Message and Stream Oriented Communication in distributed systems. Persistent vs. Transient Communication. Event queues, Pub/sub networks, MPI, Stream-based communication, Multicast communication


Slide Content

Message & Stream Oriented Communication CS4262 Distributed Systems Dilum Bandara [email protected] Some slides extracted from Dr. Srinath Perera & Dr. Rajkumar Buyya’s Presentation Deck

Outline Message oriented communication Event queues Pub/sub networks MPI Stream-based communication Multicast communication 2

Definitions – Persistent vs. Transient Communication Persistent communication Message submitted for transmission is stored by communication system for as long as it takes to deliver it to receiver e.g., e-mail, SMS Not necessary for sender to continue execution after submitting a message Not necessary for receiver to be executing at the time message submission Transient communication Message is stored by communication system only as long as sending & receiving applications are executing e.g., transport-level communication services (store-and-forward router) Receiver needs to be there when a message is received 3

Definitions – Asynchronous vs. Synchronous Communication Asynchronous communication Sender continues immediately after it has submitted its message for transmission Message may be stored, in a local buffer at sending host or at an intermediate communication server Synchronous communication Sender is blocked until its message is stored in a local buffer at receiving host or actually delivered to receiver Strongest form – Sender blocked until receiver has processed message 4

Types of Communication 5 a) Persistent asynchronous communication (e.g., e-mail) b) Persistent synchronous communication Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms

Types of Communication (Cont.) 6 c) Transient asynchronous communication (e.g., UDP) d) Receipt-based transient synchronous communication Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms

Types of Communication (Cont.) 7 e) Delivery-based transient synchronous communication f) Response-based transient synchronous communication Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms

Types of Communication (Cont.) Persistent, asynchronous communication Messages are persistently stored in local host buffer, or at an intermediate communication server e.g., e-mail Persistent, synchronous communication Messages can be persistently stored only at receiving host Weaker form of synchronous communication It isn’t necessary for receiving application to be executing 8

Types of Communication (Cont.) Transient, asynchronous communication Messages is temporarily stored in a local buffer & sender immediately continues e.g., UDP, RPC fire & forget Transient, synchronous communication Weakest form Receipt-based, transient, synchronous communication Sender is blocked until message is stored in a local buffer of receiving host e.g., Asynchronous RPC delivery part (send with Ack ) 9

Types of Communication (Cont.) Weaker form Delivery-based, transient, synchronous communication e.g., Asynchronous RPC delivery part (Send with Ack ) Strongest form Response-based, transient, synchronous communication e.g., RPC & RMI 10

Message-Oriented Communication Message-oriented transient communication Transport-level sockets Message-Passing Interface (MPI) Message transfer latency  milliseconds to seconds Message-oriented persistent communication Message-queuing systems or Message-Oriented Middleware (MOM) Provide intermediate-term storage capacity for messages Doesn’t requiring either sender or receiver to be active during message transmission Message transfer latency  seconds to minutes 11

Message-Queuing Model Applications communicate by inserting messages into a series of queues Loosely-coupled communication Sender is given guarantee that its message will eventually be inserted in recipient’s queue No guarantee on timing, or message will actually be read 12 Source: http://msdn.microsoft.com/en-us/library/windows/desktop/ms699870%28v=vs.85%29.aspx

Message-Queuing Model Combinations 13 Loosely-coupled communications using Queues. Sender & receiver can execute completely independent of each other. Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms

Message-Queuing Interface Basic interface to a queue in a message-queuing system 14 Primitive Meaning Put Append a message to a specified queue Get Block until the specified queue is nonempty, & remove first message Poll Check a specified queue for messages, & remove first message. Never block Notify Install a handler to be called when a message is put into specified queue

Architecture of a Typical Message-Queuing System With Routers 15 Source: http://csis.pace.edu/~marchese/SE765/L7/L7.htm

Message Queue Applications Amazon Simple Queue Service (Amazon SQS) Decouple components of a cloud application Can transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available 16 Source: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-using-sqs-queue.html

Message Queue Applications (Cont.) Java Message Service (JMS) queues Based on Java Enterprise Edition (JEE) Loosely coupled, reliable, & asynchronous Other applications E-mail Workflow & Groupware Batch processing Job queues Stream/complex-event processing 17

Pub/Sub Networks Publishers publish messages Usually to a topic Subscribers may express interest for a subset of messages Pub/Sub system makes sure interested parties get corresponding messages 80-90% implementations are topic based Content based is hard 18 Source: http://msdn.microsoft.com/en-us/library/ff649664.aspx

19

Eventing in Pub/Sub Decouple Time – both parties need not be online same time Space – don’t know each other’s addresses Synchronization – don’t have to wait for each other Models Event producer  Event consumer Event producer  Broker  Event consumer Actually it’s Event producer  Event Bus  Notifier Event bus can be 1+ nodes Decoupling makes it is hard to debug 20

Pub/Sub Brokers RSS feeds Apache ActiveMQ, Qpid OGCE WS-Messenger For web services WSO 2 Event Server Microsoft BizTalk Server Distributed brokers Narada Broker (www.naradabrokering.org) Whihdum (http://code.google.com/p/wihidum/) 21

Message Brokers Applications need to understand messages they receive Options Standard message formats Not suitable as message-queuing applications typically operate at a higher level of abstraction Convert messages using a Message Broker Convert incoming messages to a format that can be understood by destination application 22

Message Brokers 23 Source: http://www.fi.muni.cz/~xkolar2/dp/html/index.html

Message Broker Architecture 24 Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms

Message Bus A.k.a. Enterprise Service Bus (ESB) Tasks Monitor & control routing of message exchange between services Resolve contention between communicating service components Control deployment & versioning of services Marshal use of redundant services 25 Source: http://msdn.microsoft.com/en-us/library/ff647328.aspx

Complex Event Processing System 26

WSO 2 Siddhi CEP Architecture 27 Source: S. Suhothayan et al., “Siddhi: A Second Look at Complex Event Processing Architectures”, Nov. 2011

Siddhi Pipeline Architecture 28 Source: S. Suhothayan et al., “Siddhi: A Second Look at Complex Event Processing Architectures”, Nov. 2011

Message-Passing Interface (MPI) Designed for communication among parallel applications Primarily used in HPC systems with high-speed interconnection networks Provides an interface with advanced features such as different forms of buffering & synchronization Provides hardware independence Supports many types/forms of communication Algorithm/application specific performance optimization 29

MPI Operations 30 Source: http://www.broadinstitute.org/gatk/about/#high-performance Source: http://mpitutorial.com/mpi-reduce-and-allreduce/

MPI_Allreduce 31 Global sum followed by distribution of result Source: Peter Pacheco, "An Introduction to Parallel Programming"

Butterfly-Structured Global Sum 32 Source: Peter Pacheco, "An Introduction to Parallel Programming"

MPI Primitives 33 Primitive Meaning MPI_bsend Append outgoing message to local send buffer. MPI_send Send a message & wait until copied to local or remote buffer. MPI_ssend Send a message & wait until receipt starts. MPI_sendrecv Send a message & wait for reply. MPI_isend Pass reference to outgoing message, and continue. MPI_issend Pass reference to outgoing message, & wait until receipt starts. MPI_recv Receive a message; block if there is none. MPI_irecv Check if there is an incoming message, but do not block.

Stream Oriented Communication Continuous streams of data e.g., real media stream Modes Asynchronous – no time limit Synchronous – max time limit Isochronous – both max & lower limit Simple stream – One type of streams Complex stream – Many streams e.g., movie with video, 2 audio, & subtitles QoS – bit rate, delay, jitter, etc. Enforcing QoS is a main challenge 34

Streams (Cont.) Enforcing QOS Mark packets as high priority Use buffers to reduce jitter (play from buffer) 35 Source: T. Banka et al., “An architecture and a programming interface for application-aware data dissemination using overlay networks,” COMSWARE 2007

Streams (Cont.) Stream synchronization Read alternatively Control interface to control rates Distribution – merge at sender 36

Multicast Communication Network level – IP multicast Very efficient within LAN No global routing support Application level Main challenge is to setup a path Options Tree based Mesh based Can recover from failures Often used in parallel computing clusters Group communication Ordered reliable multicast 37

Tree-Push & Mesh-Pull 38 Source: J. Liu et al., "Opportunities and challenges of peer-to-peer internet video broadcast,” 2008. X. Zhang et al., " CoolStreaming / DONet : a data-driven overlay network for efficient live media streaming," INFOCOM 2005.