290 likes | 431 Vues
This section delves into message-oriented communication, focusing on the nuances of persistence and synchrony. It explores RPC (Remote Procedure Call) and message passing, highlighting their differences. RPC provides access transparency but is typically synchronous, raising concerns when the receiver is inactive. The chapter categorizes communication types: persistent vs. transient and synchronous vs. asynchronous. It also introduces message-queuing system architecture, illustrating how queues facilitate message delivery across networks and emphasizing the role of queue managers and message brokers in different systems.
E N D
Communication Chapter 4 Part II Message-Oriented Communication
Giving credit where credit is due: CSCE455/855Distributed Operating Systems • Most of the lecture notes are based on slides by Prof. Jalal Y. Kawash at Univ. of Calgary • I have modified them and added new slides
RPC and Message Passing • RPC enhances access transparency by hiding communication • RPC is inherently synchronous and is not always appropriate • What if the receiving side is not executing when the request is sent? • Sometimes, we need to resort to message-passing
Persistence and Synchronicity in Communication (1) 2-20 General organization of a communication system in which hosts are connected through a network
Persistence and Synchronicity in Communication (2) Persistent communication of letters back in the days of the Pony Express.
Persistence in Communication • Persistence: A (sent) message is stored by the communication system until it is delivered. • Transient: A (sent) message is stored by the communication system as long as both the sender and receiver applications are executing
Synchrony in Communication • Asynchronous: The sender does not block until the message is delivered, blocks until stored in a buffer at the sending host, or the first communication server • Synchronous: The sender blocks until the message is stored in a buffer at the receiving host, or delivered to the receiver
Persistent Asynchronous Communication • A message is stored: • until delivered • at A’s host • at the first comm server • e.g.: email 2-22.1
Persistent Synchronous Communication • A message is stored: • until delivered • at B’s host • at B’s comm server 2-22.1
Transient Asynchronous Communication • A message is stored: • at A’s host • at the first comm server • If B is not running, message • is dropped • e.g.: asynch. RPC, UDP 2-22.2
Transient Synchronous Communication (1) Weakest: Receipt-based 2-22.2
Transient Synchronous Communication (2) Strongest: Response-based Moderate: Delivery-based
General Architecture of a Message-Queuing System (1) Source Queue Destination Queue • Nearby the receiver • Message contains information about this queue • How the message travels between A and B is the responsibility of the queuing system A B • Nearby the sender • Messages can be put to this queue only
General Architecture of a Message-Queuing System (2) Queue Name Network Address Queuing table entry • The collection of queues is distributed across multiple machines • The system must maintain a (possibly distributed) database of queues (queuing tables)
General Architecture of a Message-Queuing System (3) The relationship between queue-level addressing and network-level addressing.
General Architecture of a Message-Queuing System (4) • Queues are managed by queue managers • A queue manager interacts directly with the sending/receiving application • Some (special) queue managers act like routers or relays
General Architecture of a Message-Queuing System (5) 2-29 • Routing is static • Medium-level scalability (manually configure the routing tables)
Integrating Differing Message-Based Systems System A System B Message Broker A-specific message format B-specific message format
Message Brokers 2-30 The general organization of a message broker in a message-queuing system.