Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 1/30/20161Distributed Systems - COMP 655.

Similar presentations


Presentation on theme: "COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 1/30/20161Distributed Systems - COMP 655."— Presentation transcript:

1 COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 1/30/20161Distributed Systems - COMP 655

2 Agenda 6:00 - 6:30, system summary presentation 6:30 - 8:00, Lab 1 8:00 - 8:15, Break 8:15 – 9:30, Communication Wrap up 1/30/2016Distributed Systems - COMP 6552

3 1/30/2016Distributed Systems - COMP 6553 Communication essentials Communication patterns Communication structure: OSI reference model and TCP/IP coverage Major middleware communication services –RPC –RMI –http –I hate to wait … –Message passing –(skip) Streams

4 1/30/2016Distributed Systems - COMP 6554 Communication patterns ProducerConsumer query response

5 1/30/2016Distributed Systems - COMP 6555 Communication patterns with broker Producer 2 query response Producer 1 Consumer 2 Consumer 1 Consumer 3 Subscription service Client 2 Client 1 Server 2 Server 1 Server 3 Request broker query response

6 1/30/2016Distributed Systems - COMP 6556 Communication patterns - other variations Blocking or non-blocking Connection-based or connectionless Transient or persistent Examples: blocking transient query-response == RPC non-blocking persistent producer/consumer == message queuing

7 1/30/2016Distributed Systems - COMP 6557 A note about blocking Blocking communication blocks the thread that makes the call Other work may continue in other threads in the same process More about threads and processes next week

8 1/30/2016Distributed Systems - COMP 6558 Communication essentials Communication patterns Communication structure: OSI reference model and TCP/IP coverage Major middleware communication services –RPC –RMI –http –I hate to wait … –Message passing

9 1/30/2016Distributed Systems - COMP 6559 OSI Reference Model 2-1 TCP/IP sending bits e.g. Ethernet connectionless IP TCP, UDP not used HTTP, FTP, …

10 Layered Protocols A typical message as it appears on the network.

11 1/30/2016Distributed Systems - COMP 65511 Middleware Protocols 2-5 RPC RMI

12 1/30/2016Distributed Systems - COMP 65512 Where does http fit? Originally, it looked like an application- level protocol, where the application was fetching and viewing HTML pages As the Web has matured, it has been used increasingly as middleware. It’s the foundation for –Web applications –Web services

13 1/30/2016Distributed Systems - COMP 65513 Communication essentials Communication patterns Communication structure: OSI reference model and TCP/IP coverage Major middleware communication services – RPC –RMI –http –I hate to wait … –Message passing

14 1/30/2016Distributed Systems - COMP 65514 RPC is all about Allowing a client to make a procedure call that is processed on a remote machine Without the client’s having to care (much)

15 1/30/2016Distributed Systems - COMP 65515 Ordinary procedure call process caller callee (callee is atanh) 0.98 2.3

16 Conventional Procedure Call Parameter passing in a local procedure call: the stack before the call to read. (b) The stack while the called procedure is active.

17 1/30/2016Distributed Systems - COMP 65517 RPC: call the procedure across a network client process server process network callercallee client stub server stub 0.98 Atanh, 0.98 message 0.98

18 1/30/2016Distributed Systems - COMP 65518 RPC: call the procedure across a network client process server process network callercallee client stub server stub 2.3 OK, 2.3 message 2.3

19 1/30/2016Distributed Systems - COMP 65519 RPC Summary client process server process network caller client stub callee server stub client stub pretends to be the callee server stub pretends to be the caller caller and callee are written as if they were on the same machine location transparency!! (almost)

20 1/30/2016Distributed Systems - COMP 65520 Warning: passing parameters and results can be tricky

21 Question 1/30/2016Distributed Systems - COMP 65521 Parameter passing mechanisms By value By reference By value-results …

22 1/30/2016Distributed Systems - COMP 65522 Passing Value Parameters (1)

23 1/30/2016Distributed Systems - COMP 65523 Passing Value Parameters (2) a)Original message (JILL, 5) on the Pentium (little endian) b)The message after receipt on the SPARC (big endian) c)The message after being inverted. The little numbers in boxes indicate the address of each byte Number is backwardsString is backwards

24 1/30/2016Distributed Systems - COMP 65524

25 1/30/2016Distributed Systems - COMP 65525 Conclusion from the byte order problem You have to explicitly define your interfaces. This problem is one of the fundamental motivators for the use of Interface Definition Languages (IDL) –WSDL, OMG IDL, … Passing value parameters is a key component of access transparency.

26 1/30/2016Distributed Systems - COMP 65526 Interface definition Interface definitions are critical factors in Openness Flexibility Access transparency Enabling proxy construction in middleware

27 1/30/2016Distributed Systems - COMP 65527 Activity – what can go wrong? (with an RPC) Brainstorm things that can go wrong when a program on machine A tries to make an RPC to a server on machine B AB Network

28 1/30/2016Distributed Systems - COMP 65528 Pick the top three The instructor will pick some of the failures you brainstormed Multi-vote on the ones in whose solutions you are most interested You will use the top three vote-getters in the next activity

29 1/30/2016Distributed Systems - COMP 65529 Activity – what could you do about it? Brainstorm approaches to dealing with the top three failure modes AB Network

30 1/30/2016Distributed Systems - COMP 65530 Communication patterns - reminder Parameters: Query-response or producer-consumer Blocking or non-blocking Connection-based or connection-less Persistent or transient Examples: blocking transient query-response == RPC non-blocking persistent producer/consumer == message queuing

31 1/30/2016Distributed Systems - COMP 65531 Finding the server or peer In all cases, the process that initiates a communication has to find the process it wants to communicate with The address could be in –Source code (simplest, least flexible) –Configuration file –A network directory service (requires client to know a name for a server) ( e.g. DNS) –A series of directories ( e.g. LDAP, then RMI Registry) Interaction with the directory is usually blocking request/response

32 1/30/2016Distributed Systems - COMP 65532 Communication essentials Communication patterns Communication structure: OSI reference model and TCP/IP coverage Major middleware communication services –RPC – RMI –http –I hate to wait … –Message passing

33 1/30/2016Distributed Systems - COMP 65533 Focus on Remote Objects Here, object == state + methods + interface Usually, only the interface is distributed “Remote objects” refers to approaches in which, for each object there is some server where all of it state resides

34 1/30/2016Distributed Systems - COMP 65534 Distributed Objects Common organization of a remote object with client-side proxy. 2-16

35 1/30/2016Distributed Systems - COMP 65535 Basic Java RMI rmiregistry** Server Client 1.Server registers its name and remote object 2.Client gets reference (a stub) to remote object from rmiregistry 3.Client calls server Interface.class _Stub.class * 1. 2. 3. Interface.class _Skel.class * * = not needed if Client and Server are both Java 1.5 or newer ** = RMI Registry can be a separate process or an object inside the Server process. If separate, must be on same machine.

36 1/30/2016Distributed Systems - COMP 65536 Passing objects around … In RMI, parameters and return values can be object references –If the parameter refers to a local object, do you copy the object or pass only a reference? –If the parameter refers to a remote object, what do you pass?

37 1/30/2016Distributed Systems - COMP 65537 Local, remote objects in Java RMI Local objects are passed by value Remote objects by reference Passing a remote object by reference means passing a proxy by value

38 1/30/2016Distributed Systems - COMP 65538 Parameter Passing in RMI


Download ppt "COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 1/30/20161Distributed Systems - COMP 655."

Similar presentations


Ads by Google