Title: Distributed Systems: Communications Cont' Processes
1Distributed SystemsCommunications
(Cont.)Processes
- CS 654Lecture 7October 4, 2006
2Message-Oriented Communication
3Message-Oriented Communication
- RPC/RMI are also known as request/response.
- If we assume that there are no responses, we move
into message-oriented communication. - MOC is typically more decoupled than RPC/RMI.
4Persistence and Synchronicity in Communication (1)
- General organization of a communication system in
which hosts are connected through a network
5Persistence and Synchronicity in Communication (2)
- Persistent communication of letters back in the
days of the Pony Express. - Also known as store-and-forward.
6Persistence and Synchronicity
- With transient communication, discard the message
if next hop is down. Persistent communication
will store. - How long should it store the message?
- There is also a spectrum between transient and
persistent. - Do we wait for the receiver to actually receive
the message? - Messages can be synchronous
7Persistence and Synchronicity in Communication (3)
What kinds are these?
- Persistent asynchronous communication
- Persistent synchronous communication
8Persistence and Synchronicity in Communication (4)
2-22.2
- Transient asynchronous communication
- Receipt-based transient synchronous communication
9Persistence and Synchronicity in Communication (5)
- Delivery-based transient synchronous
communication at message delivery - Response-based transient synchronous communication
10Examples
- UDP
- IBM MQ series
- Jabber/XMPP
- WS-Notification
- JMS
- JINI
11Berkeley Sockets
- Most popular API for TCP/IP.
- Can be used for more, though not not as common.
- A socket is an endpoint.
12Berkeley Sockets (1)
- Socket primitives for TCP/IP.
13Berkeley Sockets (2)
- Connection-oriented communication pattern using
sockets.
14Message Passing Interface (MPI)
- Sockets are too low level for scientific
computing. - No data types.
- No broadcast.
- No collective operations.
- No message abstraction.
- MPI was written to address that.
- MPI job starts as a group of processes.
- mpirun prog_name host_list
- Each process has an integer rank, which serves
as the address of that process. Nothing like an
IP address. - MPI has specialized implementations over
specialized hardware. - Infiniband
- Myrinet
- Quadrics
- FibreChannel
15The Message-Passing Interface (MPI)
- Some of the most intuitive message-passing
primitives of MPI.
16Message-Queuing
- MPI and sockets are both transient models.
- Often it is useful to have persistence, to handle
servers being down, network interruptions, etc.
17Message-Queuing Model (1)
2-26
- Four combinations for loosely-coupled
communications using queues.
18Message-Queuing Model (2)
- Basic interface to a queue in a message-queuing
system.
19General Architecture of a Message-Queuing System
(1)
- The relationship between queue-level
addressing and network-level addressing.
20General Architecture of a Message-Queuing System
(2)
- The general organization of a message-queuing
system with routers.
21Message Brokers
2-30
- The general organization of a message broker in a
message-queuing - system.
22Example IBM MQSeries
- Queues managed by queue managers.
- Managers connected by channels.
- Queues managed by message channel agent.
23Channels
- Some attributes associated with message channel
agents.
24Addressing
- Addresses are a combination of queue manager
name, and destination queue. - Routing can be done using routing tables.
- Local aliases can provide a degree of
indirection, to avoid too much dependency on a
transport-level name.
25Message Transfer (1)
26Message Transfer (2)
- Primitives available in an IBM MQSeries MQI
27Publish-Subscribe
- In MOM, how do the sender and receiver hook up?