COMP 655: Distributed/Operating Systems

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