Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Chinese University, CSE Dept. Distributed Systems / 3 - 1 Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering.

Similar presentations


Presentation on theme: "© Chinese University, CSE Dept. Distributed Systems / 3 - 1 Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering."— Presentation transcript:

1 © Chinese University, CSE Dept. Distributed Systems / 3 - 1 Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering Department The Chinese University of Hong Kong

2 © Chinese University, CSE Dept. Distributed Systems / 3 - 2 Outline 1 Communication Primitives 2 Client/Server Communication 3 Group Communication 4 CORBA Event Service 5 Summary

3 © Chinese University, CSE Dept. Distributed Systems / 3 - 3 1 Communication Primitives Application Presentation Transport Network Data link Physical Session The ISO/OSI Reference Model: HTTP, FTP, Telnet CORBA IIOP XDR, CORBA Data Secure Sockets (SSL) for connection- oriented comm. message; TCP, UDP packet;IP; ATM VC error-free trans. PPP, CSMA/CD ISDN, baseband signaling host PSE PSE (packet switching exchange)

4 © Chinese University, CSE Dept. Distributed Systems / 3 - 4 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 Application Presentation Transport Network Data link Physical Session  connection oriented  virtual connection  w sequencing & acknowledgement - connectionless - up to 64k bytes datagram - no seqs and acks

5 © Chinese University, CSE Dept. Distributed Systems / 3 - 5 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.

6 © Chinese University, CSE Dept. Distributed Systems / 3 - 6 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.

7 © Chinese University, CSE Dept. Distributed Systems / 3 - 7 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 Transport Network Data link Physical Session

8 © Chinese University, CSE Dept. Distributed Systems / 3 - 8 1.2 Complex Data Structures  Marshalling: Disassemble data structures into a transmittable form  Unmarshaling: Re-assemble the complex data structure. class Person { private: int dob; char * name; public: char * marshal() { char * msg; msg=new char[strlen(name)+10]; sprintf(msg,”%d,%d,%s”, dob, strlen(name),name); return(msg); };

9 © Chinese University, CSE Dept. Distributed Systems / 3 - 9 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):

10 © Chinese University, CSE Dept. Distributed Systems / 3 - 10 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.

11 © Chinese University, CSE Dept. Distributed Systems / 3 - 11 1.3 Synchronous Communication Time sender send receiver blocked Transport Layer receive blocked (1)(3)(4)(5) ackn (2)

12 © Chinese University, CSE Dept. Distributed Systems / 3 - 12 1.3 Communication Deadlocks P1: send() to P2; receive() from P2; P2: send() to P1; receive() from P1; P1 P2 Waits-for  Components are mutually waiting for each other.  To avoid deadlocks: Waits-for relation has to be acyclic!

13 © Chinese University, CSE Dept. Distributed Systems / 3 - 13 1.3 Asynchronous Communication Time sender send receiver Transport Layer receive blocked (1)(3)(4)(2)

14 © Chinese University, CSE Dept. Distributed Systems / 3 - 14 1.3 Notification  Uni-directional communication  Message contains marshaled notification parameters. send(...) NotifierNotified receive(...)

15 © Chinese University, CSE Dept. Distributed Systems / 3 - 15 1.3 Request  Bi-directional communication.  Request message contains marshaled parameters.  Requester receives reply message.  Reply message contains marshaled results. send(...) receive(...) RequesterProvider receive(...) request send(...) reply...

16 © Chinese University, CSE Dept. Distributed Systems / 3 - 16 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.

17 © Chinese University, CSE Dept. Distributed Systems / 3 - 17 2 Client/Server Communication  Qualities of service.  Request protocol (R).  Request reply protocol (RR).  Request reply acknowledgement protocol (RRA).

18 © Chinese University, CSE Dept. Distributed Systems / 3 - 18 2.1 Qualities of service  Exactly once,  At most once,  At least once and  Maybe?

19 © Chinese University, CSE Dept. Distributed Systems / 3 - 19 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(...) ClientServer receive(...) exec op;

20 © Chinese University, CSE Dept. Distributed Systems / 3 - 20 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(...) ClientServer receive(...) exec op; send(...) request reply

21 © Chinese University, CSE Dept. Distributed Systems / 3 - 21 2.4 RRA Protocol  In addition to RR protocol, client sends acknowledgement after it received reply.  Acknowledgement sent asynchronously. send(...) receive(...) send (...) ClientServer receive(...) exec op; send(...) receive(...) request reply ackn

22 © Chinese University, CSE Dept. Distributed Systems / 3 - 22 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.

23 © Chinese University, CSE Dept. Distributed Systems / 3 - 23 3.1 Concepts  Broadcast: Send msg to a group.  Multicast: Send msg to subgroup only. M NN NN NN MM N NN NN NN NN NN NN NN N Useful applications:  Fault tolerance  Object location  Better performance  Multiple update

24 © Chinese University, CSE Dept. Distributed Systems / 3 - 24 3.2 Qualities of Service  Ideal: Immediate and reliable. S R1 R2 Time l Optimal: Simultaneous and reliable. S R1 Time R2

25 © Chinese University, CSE Dept. Distributed Systems / 3 - 25 3.2 Qualities of Service  In reality: not simultaneous...... and not reliable Time S R1 R2 Time S R1 R2

26 © Chinese University, CSE Dept. Distributed Systems / 3 - 26 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.

27 © Chinese University, CSE Dept. Distributed Systems / 3 - 27 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).

28 © Chinese University, CSE Dept. Distributed Systems / 3 - 28 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.

29 © Chinese University, CSE Dept. Distributed Systems / 3 - 29 3.3.1 Push Model (Example) Share value updated Producer Event Channel Redisplay chart Redisplay table Consumer push(...)

30 © Chinese University, CSE Dept. Distributed Systems / 3 - 30 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.

31 © Chinese University, CSE Dept. Distributed Systems / 3 - 31 3.3.2 Pull Model (Example) Current value: 76.10 Producer Event Channel Current share value? Consumer pull(...)

32 © Chinese University, CSE Dept. Distributed Systems / 3 - 32 3.3.2 Event Channel Event Channel Direction of event transfer Push supplier Pull supplier Push consumer Pull consumer Supported combinations:  push suppliers, push consumers  push suppliers, pull consumers  pull suppliers, push consumers  pull suppliers, pull consumers

33 © Chinese University, CSE Dept. Distributed Systems / 3 - 33 3.3.2 Event Channel (with proxies) Event Channel Direction of event transfer Push supplier Pull supplier Push consumer Pull consumer Proxy push consumer Proxy pull consumerProxy pull supplier Proxy push supplier

34 © Chinese University, CSE Dept. Distributed Systems / 3 - 34 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.

35 © Chinese University, CSE Dept. Distributed Systems / 3 - 35 Homework #1  1.7Total 10 questions, 10 points each  1.11  1.13Due: 7/10/2003 (Tuesday) in class  2.9  2.13  3.1  3.7  3.9  4.7  4.21


Download ppt "© Chinese University, CSE Dept. Distributed Systems / 3 - 1 Distributed Systems Topic 3: Communication Dr. Michael R. Lyu Computer Science & Engineering."

Similar presentations


Ads by Google