Distributed Systems Topic 3 Communication Dr Michael R
Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering Department The Chinese University of Hong Kong © Chinese University, CSE Dept. Distributed Systems / 3 - 1
Outline 1 Communication Primitives 2 Client/Server Communication 3 Group Communication 4 CORBA Event Service 5 Summary © Chinese University, CSE Dept. Distributed Systems / 3 - 2
1 Communication Primitives HTTP, FTP, Telnet CORBA IIOP Application XDR, CORBA Data Secure Sockets (SSL Presentation The ISO/OSI Reference Model: PSE (packet switching exchange) host Session Transport PSE © Chinese University, CSE Dept. message; TCP, UDP Network packet; IP; ATM VC Data link error-free trans. PPP, CSMA/CD Physical ISDN, baseband signaling host PSE for connectionoriented comm. Distributed Systems / 3 - 3
1. 1 ISO/OSI Transport Layer ¨ Level 4 of ISO/OSI reference model. ¨ Concerned with the transport of information through a network. ¨ Two facets in UNIX networks: – TCP – UDP - connection oriented - virtual connection - w sequencing & - connectionless acknowledgement - up to 64 k bytes datagram - no seqs and acks © Chinese University, CSE Dept. Application Presentation Session Transport Network Data link Physical Distributed Systems / 3 - 4
1. 1 ISO/OSI Transport Layer (TCP) ¨ Transmission Control Protocol (TCP) provides bi-directional stream of bytes between two distributed components. ¨ UNIX rsh, rcp and rlogin are based on TCP. ¨ Reliable but slow protocol. ¨ Buffering at both sides decouples computation speeds. © Chinese University, CSE Dept. Distributed Systems / 3 - 5
1. 1 ISO/OSI Transport Layer (UDP) ¨ User Datagram Protocol (UDP) enables a component to pass a message containing a sequence of bytes to another component. ¨ Other component is identified within message. ¨ Unreliable but very fast protocol. ¨ Restricted message length. ¨ Queuing at receiver. ¨ UNIX rwho command is UDP based. © Chinese University, CSE Dept. Distributed Systems / 3 - 6
1. 2 ISO/OSI Presentation Layer ¨ At application layer: complex data types ¨ How to transmit complex values through transport layer? ¨ Presentation layer issues: – Complex data structures and – Heterogeneity. Application Presentation Session Transport Network Data link Physical © Chinese University, CSE Dept. Distributed Systems / 3 - 7
1. 2 Complex Data Structures ¨ Marshalling: Disassemble data structures into a transmittable form ¨ Unmarshaling: Reassemble the complex data structure. © Chinese University, CSE Dept. class Person { private: int dob; char * name; public: char * marshal() { char * msg; msg=new char[strlen(name)+10]; sprintf(msg, ”%d, %s”, dob, strlen(name), name); return(msg); }; }; Distributed Systems / 3 - 8
1. 2 Heterogeneity ¨ Heterogeneous data representation on different hardware platforms. ¨ Approach 1 (Example XDR): – Define a shared representation, – For each different platform, provide mapping between common and specific representation. ¨ Approach 2 (Example ASN): © Chinese University, CSE Dept. Distributed Systems / 3 - 9
1. 3 Communication Patterns ¨ Basic operations: send and receive messages (as in UDP). ¨ Message delivery: – Synchronous or – Asynchronous ¨ Messages are used to model: – Notification and – Request. © Chinese University, CSE Dept. Distributed Systems / 3 - 10
1. 3 Synchronous Communication (1) (2) sender (3) (4) (5) blocked ac kn send Transport Layer receiver blocked Time © Chinese University, CSE Dept. Distributed Systems / 3 - 11
1. 3 Communication Deadlocks P 1: send() to P 2; receive() from P 2; P 1 Waits-for P 2 © Chinese University, CSE Dept. P 2: send() to P 1; receive() from P 1; ¨ Components are mutually waiting for each other. ¨ To avoid deadlocks: Waits-for relation has to be acyclic! Distributed Systems / 3 - 12
1. 3 Asynchronous Communication (1) (2) (3) (4) sender send Transport Layer receiver blocked Time © Chinese University, CSE Dept. Distributed Systems / 3 - 13
1. 3 Notification send(. . . ) Notifier receive(. . . ) Notified ¨ Uni-directional communication ¨ Message contains marshaled notification parameters. © Chinese University, CSE Dept. Distributed Systems / 3 - 14
1. 3 Request send(. . . ) receive(. . . ) request reply Requester receive(. . . ). . . send(. . . ) Provider ¨ Bi-directional communication. ¨ Request message contains marshaled parameters. ¨ Requester receives reply message. ¨ Reply message contains marshaled results. © Chinese University, CSE Dept. Distributed Systems / 3 - 15
1. 3 Reliability Issues ¨ Unreliable message refers to message transmission without acknowledgement or retries (e. g. , UDP). ¨ A reliable delivery service may be constructed from an unreliable one by the use of ack. ¨ Positive ack. for client-server communication and negative ack. for group multicast. ¨ Reliable communication involves overheads. ¨ Each message should have a unique identifier. © Chinese University, CSE Dept. Distributed Systems / 3 - 16
2 Client/Server Communication ¨ Qualities of service. ¨ Request protocol (R). ¨ Request reply protocol (RR). ¨ Request reply acknowledgement protocol (RRA). © Chinese University, CSE Dept. Distributed Systems / 3 - 17
2. 1 Qualities of service ¨ Exactly once, ¨ At most once, ¨ At least once and ¨ Maybe? © Chinese University, CSE Dept. Distributed Systems / 3 - 18
2. 2 Request Protocol ¨ If service – does not have out or inout parameters and – does not have a return type client may not want to wait for server to finish. execution request send(. . . ) Client © Chinese University, CSE Dept. receive(. . . ) exec op; Server Distributed Systems / 3 - 19
2. 3 Request/Reply Protocol ¨ To be applied if client expects result from server. ¨ Client requests service execution from server through request message. ¨ Delivery of service result in reply message. send(. . . ) receive(. . . ) Client © Chinese University, CSE Dept. request reply receive(. . . ) exec op; send(. . . ) Server Distributed Systems / 3 - 20
2. 4 RRA Protocol ¨ In addition to RR protocol, client sends acknowledgement after it received reply. ¨ Acknowledgement sent asynchronously. send(. . . ) receive(. . . ) send (. . . ) Client © Chinese University, CSE Dept. request reply ackn receive(. . . ) exec op; send(. . . ) receive(. . . ) Server Distributed Systems / 3 - 21
3 Group Communication ¨ Client/server requests: – There is no other party involved. – Client has to identify server. ¨ Sometimes other properties are required: – Communication between multiple components. – Anonymous communication. © Chinese University, CSE Dept. Distributed Systems / 3 - 22
3. 1 Concepts ¨ Broadcast: Send msg to a group. N ¨ Multicast: Send msg to subgroup only. N N M N N N © Chinese University, CSE Dept. M N N Useful applications: ¨Fault tolerance ¨Object location ¨Better performance ¨Multiple update N N Distributed Systems / 3 - 23
3. 2 Qualities of Service ¨ Ideal: Immediate and reliable. R 1 S Time R 2 l R 1 Optimal: Simultaneous and reliable. S R 2 © Chinese University, CSE Dept. Time Distributed Systems / 3 - 24
3. 2 Qualities of Service ¨ In reality: not simultaneous. . . R 1 S Time R 2 R 1 . . . and not reliable S R 2 © Chinese University, CSE Dept. Time Distributed Systems / 3 - 25
3. 2 Qualities of Service ¨ Problem: To achieve reliable broadcast/multicast is very expensive. ¨ Degrees of reliability: – Best effort, – K-reliability, – totally ordered, – Atomicity. ¨ Choose the degree of reliability needed and be prepared to pay the price. © Chinese University, CSE Dept. Distributed Systems / 3 - 26
3. 3 CORBA Event Management ¨ CORBA event management service defines interfaces for different group communication models. ¨ Events are created by suppliers (producers) and communicated through an event channel to multiple consumers. ¨ Service does not define a quality of service (left to implementers). © Chinese University, CSE Dept. Distributed Systems / 3 - 27
3. 3. 1 Push Model ¨ Consumers register with those event channel through which events they are interested in are communicated. ¨ Event producers create a new event by invoking a push operation from an event channel. ¨ Event channel notifies all registered consumers by invoking their push operations. © Chinese University, CSE Dept. Distributed Systems / 3 - 28
3. 3. 1 Push Model (Example) Share value updated Producer push(. . . ) © Chinese University, CSE Dept. Redisplay chart Event Channel Consumer push(. . . ) Redisplay table Consumer push(. . . ) Distributed Systems / 3 - 29
3. 3. 2 The Pull Model ¨ Event producer registers its capability of producing events with event channel. ¨ Consumer obtains event by invoking pull operation from event channel. ¨ Event channel asks producer to produce event and delivers it to the consumer. © Chinese University, CSE Dept. Distributed Systems / 3 - 30
3. 3. 2 Pull Model (Example) Current value: 76. 10 Producer pull(. . . ) © Chinese University, CSE Dept. Current share value? Event Channel Consumer pull(. . . ) Distributed Systems / 3 - 31
3. 3. 2 Event Channel Push supplier Push consumer Event Channel Direction of event transfer Pull supplier © Chinese University, CSE Dept. Supported combinations: ¨push suppliers, push consumers ¨push suppliers, pull consumers ¨pull suppliers, push consumers ¨pull suppliers, pull consumers Pull consumer Distributed Systems / 3 - 32
3. 3. 2 Event Channel (with proxies) Proxy push consumer Push supplier Proxy push supplier Push consumer Event Channel Direction of event transfer Proxy pull consumer Pull supplier © Chinese University, CSE Dept. Proxy pull supplier Pull consumer Distributed Systems / 3 - 33
4 Summary ¨ What communication primitives do we use? ¨ How are differences between application and communication layer resolved? ¨ What quality of service do the client/server protocols achieve that we discussed? ¨ What quality of services are involved in group communication? ¨ CORBA Event Service for group communication. ¨ Read Textbook Chapter 3 through Chapter 4. © Chinese University, CSE Dept. Distributed Systems / 3 - 34
Homework #1 ¨ 1. 7 ¨ 1. 11 ¨ 1. 13 ¨ 2. 9 ¨ 2. 13 ¨ 3. 1 ¨ 3. 7 ¨ 3. 9 ¨ 4. 7 ¨ 4. 21 © Chinese University, CSE Dept. Total 10 questions, 10 points each Due: 7/10/2003 (Tuesday) in class Distributed Systems / 3 - 35
- Slides: 35