Download presentation
Presentation is loading. Please wait.
Published byJewel Perry Modified over 8 years ago
1
1 Chapter 2. Communication
2
STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols if necessary
3
STEMPusan National University STEM-PNU 3 Client-Server Model TCP/IP Client-Server Model
4
STEMPusan National University STEM-PNU 4 Basic Operations of Client-Server Model (Send and Receive Protocol) Client … txmsg.opcode=opcode; txmsg.source=me; txmsg.param=param; sendMessage(serverID,&txmsg); waitMessage(serverID,&rxmsg); checkAndProcess(rxmsg); Client Server While(1) { waitMessage(FromAny,&rxmsg); source=rxmsg.source; opcode=rxmsg.opcode; param=rxmsg.params; result=functions[opcode](param); txmsg.result=result; txmsg.source=me; sendMessage(source,&txmsg); }
5
STEMPusan National University STEM-PNU 5 Steps of RPC 1. Client procedure calls client stub in normal way 2. Client stub builds message, calls local OS 3. Client's OS sends message to remote OS 4. Remote OS gives message to server stub 5. Server stub unpacks parameters, calls server 6. Server does work, returns result to the stub 7. Server stub packs it in message, calls local OS 8. Server's OS sends message to client's OS 9. Client's OS gives message to client stub 10. Stub unpacks result, returns to client
6
STEMPusan National University STEM-PNU 6 RPC : Remote Procedure Call Client … txmsg.opcode=opcode; txmsg.source=me; txmsg.param=param; sendMessage(serverID,&txmsg); waitMessage(serverID,&rxmsg); checkAndProcess(rxmsg); Server result=funcA(param); txmsg.opcode=opcode; txmsg.source=me; txmsg.param=param; sendMessage(serverID,&txmsg); waitMessage(FromAny,&rxmsg); source=rxmsg.source; opcode=rxmsg.opcode; param=rxmsg.params; result=functions[opcode](param); funcA STUB
7
STEMPusan National University STEM-PNU 7 Binding a Client to a Server Binding in DCE (Distributed Computing Environment)
8
STEMPusan National University STEM-PNU 8 Middleware Client Stub for Client Server Stub for Server Binding (Dynamic) Middleware
9
STEMPusan National University STEM-PNU 9 Middleware Protocol
10
STEMPusan National University STEM-PNU 10 OS Some Issues : Reliable vs. Non-Reliable ClientServer Process OS 1. Request 2. Reply If reply message is lost? 1. Blocking 2. Acknowledge 3. Idempotent
11
STEMPusan National University STEM-PNU 11 Some Issues : Blocking vs. Non-Blocking Blocking (No Buffer, Synchronous) Client Server Send Kernel Trap Server Processing Send Receive Blocked
12
STEMPusan National University STEM-PNU 12 Some Issues : Blocking vs. Non-Blocking Non-Blocking (No Buffer, Asynchronous) Client Server Send Copy to system buffer Process other task Server Processing Send Receive Blocked
13
STEMPusan National University STEM-PNU 13 Asynchronous RPC If client does not receive return value, No reason to be blocked. Asynchronous RPC
14
STEMPusan National University STEM-PNU 14 Asynchronous RPC Even though client does receive return value, Two asynchronous RPC
15
STEMPusan National University STEM-PNU 15 Some Issues : Parameter Passing
16
STEMPusan National University STEM-PNU 16 Parameter Passing for Objects Two types of Object Parameter Passing Object Copy vs. Reference Copy Should it be transparent ?
17
STEMPusan National University STEM-PNU 17 Remote Object Invocation Generalization of RPC to Object Invocation Implementation of object interface like client stub in RPC
18
STEMPusan National University STEM-PNU 18 Marshalling System A Object in Main Memory System B Object Object in Main Memory MarshallingDemarshalling When objects in memory are to be passed across a network to another host or persisted to storage, their in-memory representation must be converted to a suitable out-of-memory format. This process is called marshalling, and converting back to an in memory representation is called demarshalling
19
STEMPusan National University STEM-PNU 19 Extended RPC : Door for Single Machine Client and Server are located in a single machine RPC for processes on the same machine 1 2 3
20
STEMPusan National University STEM-PNU 20 RMI : Object Binding Implicit Binding Distr_object* obj_ref;//Declare a system-wide object reference obj_ref = …;// Initialize the reference to a distributed object obj_ref-> do_something();// Implicitly bind and invoke a method Explicit Binding Distr_object objPref; //Declare a system-wide object reference Local_object* obj_ptr; //Declare a pointer to local objects obj_ref = …; //Initialize the reference to a distributed object obj_ptr = bind(obj_ref); //Explicitly bind and obtain a pointer to the local proxy obj_ptr -> do_something();//Invoke a method on the local proxy
21
STEMPusan National University STEM-PNU 21 Stream-Oriented Communication In distributed environment Continuous Media : e.g. video Discrete Media : e.g. Simple File Transfer Temporal Aspects of Data Stream Asynchronous Transmission Synchronous Transmission Isochronous Transmission Composition of Stream Simple Stream Complex Stream : composed of simple or complex streams Synchronization is very important
22
STEMPusan National University STEM-PNU 22 Data Streaming
23
STEMPusan National University STEM-PNU 23 QoS : Quality of Service Timeline, Volume and Reliability
24
STEMPusan National University STEM-PNU 24 Group Communication Send to a group Send to a machine Send to multiple receivers
25
STEMPusan National University STEM-PNU 25 Group Communication : Design Issues Closed or Open Peer or Hierarchical Addressing Multi-Casting or Broadcasting Uni-casting Predicate Addressing Open to outside Closed to outside
26
STEMPusan National University STEM-PNU 26 Group Communication : Design Issues Group Membership Send/Receive Protocol How to distinguish it from single receive Atomicity Message ordering Scalability
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.