View
38
Download
2
Category
Tags:
Preview:
DESCRIPTION
COMP 655: Distributed/Operating Systems. Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication. 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. Communication essentials. Communication patterns - PowerPoint PPT Presentation
Citation preview
COMP 655:Distributed/Operating
SystemsSummer 2011
Dr. Chunbo ChuWeek 2, 3: Communication
04/20/23 1Distributed 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
04/20/23 Distributed Systems - COMP 655 2
04/20/23 Distributed Systems - COMP 655 3
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
04/20/23 Distributed Systems - COMP 655 4
Communication patterns
Producer Consumer
query
response
04/20/23 Distributed Systems - COMP 655 5
Communication patterns with broker
Producer 2
query
response
Producer 1Consumer 2
Consumer 1
Consumer 3
Subscriptionservice
Client 2
Client 1
Server 2
Server 1
Server 3
Requestbroker
queryresponse
04/20/23 Distributed Systems - COMP 655 6
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
04/20/23 Distributed Systems - COMP 655 7
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
04/20/23 Distributed Systems - COMP 655 8
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
04/20/23 Distributed Systems - COMP 655 9
OSI Reference Model
2-1
TCP/IP
sending bits
e.g. Ethernet
connectionless IP
TCP, UDP
not used
not used
HTTP, FTP, …
Layered Protocols• A typical message as it appears on
the network.
04/20/23 Distributed Systems - COMP 655 11
Middleware Protocols
2-5
RPC
RMI
04/20/23 Distributed Systems - COMP 655 12
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
04/20/23 Distributed Systems - COMP 655 13
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
04/20/23 Distributed Systems - COMP 655 14
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)
04/20/23 Distributed Systems - COMP 655 15
Ordinary procedure call
process
caller
callee(callee is atanh)
0.98 2.3
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.
04/20/23 Distributed Systems - COMP 655 17
RPC: call the procedure across a network
clientprocess
serverprocess
network
caller callee
clientstub
serverstub
0.98
Atanh, 0.98
message
0.98
04/20/23 Distributed Systems - COMP 655 18
RPC: call the procedure across a network
clientprocess
serverprocess
network
caller callee
clientstub
serverstub
2.3
OK, 2.3
message
2.3
04/20/23 Distributed Systems - COMP 655 19
RPC Summary
clientprocess
serverprocess
network
caller
clientstub
callee
serverstub
•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)
04/20/23 Distributed Systems - COMP 655 20
Warning: passing parameters and results
can be tricky
Question
04/20/23 Distributed Systems - COMP 655 21
• Parameter passing mechanisms• By value• By reference• By value-results• …
04/20/23 Distributed Systems - COMP 655 22
Passing Value Parameters (1)
04/20/23 Distributed Systems - COMP 655 23
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 backwards String is backwards
04/20/23 Distributed Systems - COMP 655 24
04/20/23 Distributed Systems - COMP 655 25
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.
04/20/23 Distributed Systems - COMP 655 26
Interface definition
Interface definitions are critical factors in
• Openness• Flexibility• Access transparency• Enabling proxy construction in
middleware
04/20/23 Distributed Systems - COMP 655 27
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
A BNetwork
04/20/23 Distributed Systems - COMP 655 28
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
04/20/23 Distributed Systems - COMP 655 29
Activity – what could you do about it?
Brainstorm approaches to dealing with the top three failure modes
A BNetwork
04/20/23 Distributed Systems - COMP 655 30
Communication patterns -reminder
Parameters:• Query-response or producer-consumer• Blocking or non-blocking• Connection-based or connection-less• Persistent or transientExamples:• blocking transient query-response == RPC• non-blocking persistent producer/consumer
== message queuing
04/20/23 Distributed Systems - COMP 655 31
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
04/20/23 Distributed Systems - COMP 655 32
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
04/20/23 Distributed Systems - COMP 655 33
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
04/20/23 Distributed Systems - COMP 655 34
Distributed Objects
• Common organization of a remote object with client-side proxy.
2-16
04/20/23 Distributed Systems - COMP 655 35
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.
04/20/23 Distributed Systems - COMP 655 36
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?
04/20/23 Distributed Systems - COMP 655 37
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
04/20/23 Distributed Systems - COMP 655 38
Parameter Passing in RMI
Recommended