430 likes | 441 Views
Communication. Chapter 2. IPC. Inter-Process Communication is the heart of all DSs. Processes on different machines. Always based on low-level message passing. In this chapter: RPC RMI MOM (Message Oriented MiddleWare) Streams (due to the advent of Multimedia DSs).
E N D
Communication Chapter 2
IPC • Inter-Process Communication is the heart of all DSs. • Processes on different machines. • Always based on low-level message passing. • In this chapter: • RPC • RMI • MOM (Message Oriented MiddleWare) • Streams (due to the advent of Multimedia DSs)
Layered Protocols (1) • Layers, interfaces, and protocols in the OSI model. 2-1
Layered Protocols • Protocol • Connection Oriented • Connectionless • Protocol Stack • Description of the layers, Unit of exchange.
Layered Protocols (2) • A typical message as it appears on the network. 2-2
Data Link Layer • Discussion between a receiver and a sender in the data link layer. 2-3
Transport Protocols • Makes the underlying layers usable by the application layer. • Provide a reliable or unreliable connection for the upper layer. • UDP :: TCP • RTP for real-time systems.
Client-Server TCP • Normal operation of TCP. • Transactional TCP. 2-4
Middleware Protocols • An adapted reference model for networked communication. 2-5
RPC • PC? • R…………….PC? • Simple idea • Complexity in provision
Conventional Procedure Call • Parameter passing in a local procedure call: the stack before the call to read Count = read (fd, buf, nbytes); • The stack while the called procedure is active
Issues • Calling Method? • Call by value • Call by reference • Call by Copy/Restore • Call by name
Client and Server Stubs • Principle of RPC between a client and server program. • The read stub is called on behalf of the real read procedure!
Steps of a Remote Procedure Call • Client procedure calls client stub in normal way • Client stub builds message, calls local OS • Client's OS sends message to remote OS • Remote OS gives message to server stub • Server stub unpacks parameters, calls server • Server does work, returns result to the stub • Server stub packs it in message, calls local OS • Server's OS sends message to client's OS • Client's OS gives message to client stub • Stub unpacks result, returns to client
Passing Value Parameters (1) • Steps involved in doing remote computation through RPC • It works fine, while the scenario is simple and straightforward; but …. 2-8
Passing Value Parameters (2) • Different character set standards (ASCII vs EBCDIC) • Little-Endian vs Big-Endian Architecture. • Original message on the Pentium (L. E.) • The message after receipt on the SPARC (B. E.) • The message after being inverted. The little numbers in boxes indicate the address of each byte
Parameter Specification and Stub Generation • Both sides should agree on the content of passing data structures. • Example in the next slide. • The way a message including the parameters is interpreted is the main issue!! • Client and server should agree on the representation of simple data structures. • Agreement on the actual exchange of the messages (connection-oriented or connection-less)
Parameter Specification and Stub Generation • A procedure • The corresponding message. • Interface Definition Language compiling into client stub and server stub
Extended RPC Models • RPC becoming as de facto standard for comm. in DSs. • Popularity due to simplicity. • Two extensions • Doors • Async RPC.
Doors • Equivalent to RPC for processes located on the same machine. • A door is a name for a procedure in the address space of a server process, called by colocated processes within the server. • Idea was originally from the Spirit OS (1994) • Same as LightWeight RPC. • The server process must register a door before use (calling door-create)
Doors • The principle of using doors as IPC mechanism.
Asynchronous RPC (1) • The interconnection between client and server in a traditional RPC • The interaction using asynchronous RPC 2-12
Asynchronous RPC (2) • A client and server interacting through two asynchronous RPCs 2-13
Writing a Client and a Server • The steps in writing a client and a server in DCE RPC. 2-14
Binding a Client to a Server • Client-to-server binding in DCE. 2-15
Performing an RPC • The whole scenario! • Semantics • At-most-once operation • Idempotency
Remote Object Invocation • OO technology in centralized systems. • Promoting the idea of RPC to the OO technology. • Proxy as the client delegate == Client stub. • Skeleton == server stub • The object state is normally not distributed remote object instead of distributed object
Distributed Objects • Common organization of a remote object with client-side proxy. 2-16
Message-Oriented Communication • Sometimes both RPC and RMI is not appropriate • Synchronous nature of RPC and RMI! • Messaging.
Berkeley Sockets (2) • Connection-oriented communication pattern using sockets.
The Message-Passing Interface (MPI) • Some of the most intuitive message-passing primitives of MPI.
Stream-Oriented Communication • Till now, focus was on exchanging one or more independent and complete units of info. • However, consider an audio stream, CD quality is also required the original sound has been sampled at 44100 Hz a sample in each 1/44100 Sec is required to re-produce the original sound. • Time-dependent and continuous media is required :: Temporal relationship between data items are crucial.
Data Stream (1) • Setting up a stream between two processes across a network. • Data stream is a sequence of data units.
Transmission Modes • Async Trans Mode: Sending regardless of time • Synch Trans Mode: There is a max end-to-end delay for each unit: Sensor info! • Isochronous Trans Mode: Data units should be transferred on time:: A max and min end-to-end delay (bounded jitter).
Data Stream (2) • Setting up a stream directly between two devices. 2-35.2
Data Stream (3) • An example of multicasting a stream to several receivers.
QoS • Time-Dependent requirement:: QoS • Next slide as a sample QoS specification • Formulation based on the token bucket algorithm • Basic idea is that tokens are generated at a constant rate. • Token is a fixed # of bytes, an application is allowed to pass to the network.
Specifying QoS (2) • The principle of a token bucket algorithm.
Setting Up a Stream • The basic organization of RSVP (Resource reSerVation Protocol) for resource reservation in a distributed system.
Synchronization Mechanisms (1) • The principle of explicit synchronization on the level data units.
Synchronization Mechanisms (2) • The principle of synchronization as supported by high-level interfaces. 2-41