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

Embed Size (px)

DESCRIPTION

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

Citation preview

COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 1/30/20161Distributed Systems - COMP 655 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 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 1/30/2016Distributed Systems - COMP 6554 Communication patterns ProducerConsumer query response 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 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 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 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 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, Layered Protocols A typical message as it appears on the network. 1/30/2016Distributed Systems - COMP Middleware Protocols 2-5 RPC RMI 1/30/2016Distributed Systems - COMP 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. Its the foundation for Web applications Web services 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP RPC is all about Allowing a client to make a procedure call that is processed on a remote machine Without the clients having to care (much) 1/30/2016Distributed Systems - COMP Ordinary procedure call process caller callee (callee is atanh) 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. 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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) 1/30/2016Distributed Systems - COMP Warning: passing parameters and results can be tricky Question 1/30/2016Distributed Systems - COMP Parameter passing mechanisms By value By reference By value-results 1/30/2016Distributed Systems - COMP Passing Value Parameters (1) 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 65524 1/30/2016Distributed Systems - COMP 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. 1/30/2016Distributed Systems - COMP Interface definition Interface definitions are critical factors in Openness Flexibility Access transparency Enabling proxy construction in middleware 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP Activity what could you do about it? Brainstorm approaches to dealing with the top three failure modes AB Network 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP Distributed Objects Common organization of a remote object with client-side proxy. 2-16 1/30/2016Distributed Systems - COMP 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 * 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. 1/30/2016Distributed Systems - COMP 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? 1/30/2016Distributed Systems - COMP 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 1/30/2016Distributed Systems - COMP Parameter Passing in RMI