Message & Stream
Oriented Communication
CS4262 Distributed Systems
Dilum Bandara
Dilum.Bandara@uom.lk
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.)
1. Persistent, asynchronous communication
 Messages are persistently stored in local host buffer,
or at an intermediate communication server
 e.g., e-mail
2. 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.)
3. Transient, asynchronous communication
 Messages is temporarily stored in a local buffer &
sender immediately continues
 e.g., UDP, RPC fire & forget
4. Transient, synchronous communication
I. 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.)
II. Weaker form
 Delivery-based, transient, synchronous communication
 e.g., Asynchronous RPC delivery part (Send with Ack)
III. 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
 WSO2 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
WSO2 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)
35Source: 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.

Message and Stream Oriented Communication

  • 1.
    Message & Stream OrientedCommunication CS4262 Distributed Systems Dilum Bandara Dilum.Bandara@uom.lk Some slides extracted from Dr. Srinath Perera & Dr. Rajkumar Buyya’s Presentation Deck
  • 2.
    Outline  Message orientedcommunication  Event queues  Pub/sub networks  MPI  Stream-based communication  Multicast communication 2
  • 3.
    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
  • 4.
    Definitions – Asynchronousvs. 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
  • 5.
    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
  • 6.
    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
  • 7.
    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
  • 8.
    Types of Communication(Cont.) 1. Persistent, asynchronous communication  Messages are persistently stored in local host buffer, or at an intermediate communication server  e.g., e-mail 2. 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
  • 9.
    Types of Communication(Cont.) 3. Transient, asynchronous communication  Messages is temporarily stored in a local buffer & sender immediately continues  e.g., UDP, RPC fire & forget 4. Transient, synchronous communication I. 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
  • 10.
    Types of Communication(Cont.) II. Weaker form  Delivery-based, transient, synchronous communication  e.g., Asynchronous RPC delivery part (Send with Ack) III. Strongest form  Response-based, transient, synchronous communication  e.g., RPC & RMI 10
  • 11.
    Message-Oriented Communication  Message-orientedtransient 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
  • 12.
    Message-Queuing Model  Applicationscommunicate 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
  • 13.
    Message-Queuing Model Combinations 13 Loosely-coupled communicationsusing Queues. Sender & receiver can execute completely independent of each other. Source: A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms
  • 14.
    Message-Queuing Interface  Basicinterface 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
  • 15.
    Architecture of aTypical Message- Queuing System With Routers 15 Source: http://csis.pace.edu/~marchese/SE765/L7/L7.htm
  • 16.
    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
  • 17.
    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
  • 18.
    Pub/Sub Networks  Publisherspublish 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.
  • 20.
    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
  • 21.
    Pub/Sub Brokers  RSSfeeds  Apache ActiveMQ, Qpid  OGCE WS-Messenger  For web services  WSO2 Event Server  Microsoft BizTalk Server  Distributed brokers  Narada Broker (www.naradabrokering.org)  Whihdum (http://code.google.com/p/wihidum/) 21
  • 22.
    Message Brokers  Applicationsneed 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
  • 23.
  • 24.
    Message Broker Architecture 24 Source:A.S. Tanenbaum & M.V. Steen, Distributed Systems: Principles and Paradigms
  • 25.
    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
  • 26.
  • 27.
    WSO2 Siddhi CEPArchitecture 27 Source: S. Suhothayan et al., “Siddhi: A Second Look at Complex Event Processing Architectures”, Nov. 2011
  • 28.
    Siddhi Pipeline Architecture 28 Source:S. Suhothayan et al., “Siddhi: A Second Look at Complex Event Processing Architectures”, Nov. 2011
  • 29.
    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
  • 30.
  • 31.
    MPI_Allreduce 31 Global sum followed bydistribution of result Source: Peter Pacheco, "An Introduction to Parallel Programming"
  • 32.
    Butterfly-Structured Global Sum 32 Source:Peter Pacheco, "An Introduction to Parallel Programming"
  • 33.
    MPI Primitives 33 Primitive Meaning MPI_bsendAppend 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.
  • 34.
    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
  • 35.
    Streams (Cont.)  EnforcingQOS  Mark packets as high priority  Use buffers to reduce jitter (play from buffer) 35Source: T. Banka et al., “An architecture and a programming interface for application-aware data dissemination using overlay networks,” COMSWARE 2007
  • 36.
    Streams (Cont.)  Streamsynchronization  Read alternatively  Control interface to control rates  Distribution – merge at sender 36
  • 37.
    Multicast Communication  Networklevel – 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
  • 38.
    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.

Editor's Notes

  • #22 RSS - Really Simple Syndication ES - Event Server
  • #27 LDM - Local Data Manager