COMP 655: Distributed/Operating Systems

38
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 2, 3: Communication 06/17/22 1 Distributed Systems - COMP 655

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

Transcript of COMP 655: Distributed/Operating Systems

Page 1: COMP 655: Distributed/Operating Systems

COMP 655:Distributed/Operating

SystemsSummer 2011

Dr. Chunbo ChuWeek 2, 3: Communication

04/20/23 1Distributed Systems - COMP 655

Page 2: COMP 655: Distributed/Operating Systems

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

Page 3: COMP 655: Distributed/Operating Systems

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

Page 4: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 4

Communication patterns

Producer Consumer

query

response

Page 5: COMP 655: Distributed/Operating Systems

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

Page 6: COMP 655: Distributed/Operating Systems

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

Page 7: COMP 655: Distributed/Operating Systems

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

Page 8: COMP 655: Distributed/Operating Systems

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

Page 9: COMP 655: Distributed/Operating Systems

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, …

Page 10: COMP 655: Distributed/Operating Systems

Layered Protocols• A typical message as it appears on

the network.

Page 11: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 11

Middleware Protocols

2-5

RPC

RMI

Page 12: COMP 655: Distributed/Operating Systems

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

Page 13: COMP 655: Distributed/Operating Systems

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

Page 14: COMP 655: Distributed/Operating Systems

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)

Page 15: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 15

Ordinary procedure call

process

caller

callee(callee is atanh)

0.98 2.3

Page 16: COMP 655: Distributed/Operating Systems

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.

Page 17: COMP 655: Distributed/Operating Systems

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

Page 18: COMP 655: Distributed/Operating Systems

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

Page 19: COMP 655: Distributed/Operating Systems

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)

Page 20: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 20

Warning: passing parameters and results

can be tricky

Page 21: COMP 655: Distributed/Operating Systems

Question

04/20/23 Distributed Systems - COMP 655 21

• Parameter passing mechanisms• By value• By reference• By value-results• …

Page 22: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 22

Passing Value Parameters (1)

Page 23: COMP 655: Distributed/Operating Systems

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

Page 24: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 24

Page 25: COMP 655: Distributed/Operating Systems

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.

Page 26: COMP 655: Distributed/Operating Systems

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

Page 27: COMP 655: Distributed/Operating Systems

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

Page 28: COMP 655: Distributed/Operating Systems

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

Page 29: COMP 655: Distributed/Operating Systems

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

Page 30: COMP 655: Distributed/Operating Systems

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

Page 31: COMP 655: Distributed/Operating Systems

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

Page 32: COMP 655: Distributed/Operating Systems

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

Page 33: COMP 655: Distributed/Operating Systems

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

Page 34: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 34

Distributed Objects

• Common organization of a remote object with client-side proxy.

2-16

Page 35: COMP 655: Distributed/Operating Systems

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.

Page 36: COMP 655: Distributed/Operating Systems

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?

Page 37: COMP 655: Distributed/Operating Systems

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

Page 38: COMP 655: Distributed/Operating Systems

04/20/23 Distributed Systems - COMP 655 38

Parameter Passing in RMI