Distributed Systems PowerPoint PPT Presentation

presentation player overlay
1 / 35
About This Presentation
Transcript and Presenter's Notes

Title: Distributed Systems


1
Distributed Systems
  • Topic 3 Communication
  • Dr. Michael R. Lyu
  • Computer Science Engineering Department
  • The Chinese University of Hong Kong

2
Outline
  • 1 Communication Primitives
  • 2 Client/Server Communication
  • 3 Group Communication
  • 4 CORBA Event Service
  • 5 Summary

3
1 Communication Primitives
  • The ISO/OSI
  • Reference Model

HTTP, FTP, Telnet CORBA IIOP
Application
XDR, CORBA Data Secure Sockets (SSL)
Presentation
for connection- oriented comm.
Session
Transport
message TCP, UDP
Network
packetIP ATM VC
Data link
error-free trans. PPP, CSMA/CD
Physical
ISDN, baseband signaling
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
Session
Transport
Network
Data link
  • connection oriented
  • virtual connection
  • w sequencing
  • acknowledgement

Physical
  • connectionless
  • up to 64k bytes datagram
  • no seqs and acks

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
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
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
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 msgnew charstrlen(name)10
sprintf(msg,d,d,s, dob,
strlen(name),name) return(msg)

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
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
1.3 Synchronous Communication
12
1.3 Communication Deadlocks
P1 send() to P2 receive() from P2
P2 send() to P1 receive() from P1
  • Components are mutually waiting for each other.
  • To avoid deadlocks Waits-for relation has to be
    acyclic!

13
1.3 Asynchronous Communication
14
1.3 Notification
  • Uni-directional communication
  • Message contains marshaled notification
    parameters.

15
1.3 Request
  • Bi-directional communication.
  • Request message contains marshaled parameters.
  • Requester receives reply message.
  • Reply message contains marshaled results.

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
2 Client/Server Communication
  • Qualities of service.
  • Request protocol (R).
  • Request reply protocol (RR).
  • Request reply acknowledgement protocol (RRA).

18
2.1 Qualities of service
  • Exactly once,
  • At most once,
  • At least once and
  • Maybe?

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.

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.

21
2.4 RRA Protocol
  • In addition to RR protocol, client sends
    acknowledgement after it received reply.
  • Acknowledgement sent asynchronously.

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
3.1 Concepts
  • Broadcast Send msg to a group.
  • Multicast Send msg to subgroup only.
  • Useful applications
  • Fault tolerance
  • Object location
  • Better performance
  • Multiple update

24
3.2 Qualities of Service
  • Ideal Immediate and reliable.
  • Optimal Simultaneous and reliable.

25
3.2 Qualities of Service
  • In reality not simultaneous ...

... and not reliable
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
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
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
3.3.1 Push Model (Example)
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
3.3.2 Pull Model (Example)
32
3.3.2 Event Channel
  • Supported combinations
  • push suppliers, push consumers
  • push suppliers, pull consumers
  • pull suppliers, push consumers
  • pull suppliers, pull consumers

33
3.3.2 Event Channel (with proxies)
Proxy push consumer
Proxy push supplier
Push consumer
Push supplier
Event Channel
Direction of event transfer
Proxy pull consumer
Proxy pull supplier
Pull supplier
Pull consumer
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
Homework 1
  • 1.7 Total 10 questions, 10 points each
  • 1.11
  • 1.13 Due 7/10/2003 (Tuesday) in class
  • 2.9
  • 2.13
  • 3.1
  • 3.7
  • 3.9
  • 4.7
  • 4.21
Write a Comment
User Comments (0)
About PowerShow.com