22
1 Sistemi Sistemi Distribuiti Distribuiti Anno Accademico 2005-06 Prof. Flavio De Paoli 2 Communication Communication Chapter 2

Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

1

SistemiSistemi DistribuitiDistribuiti

Anno Accademico 2005-06

Prof. Flavio De Paoli

2

CommunicationCommunication

Chapter 2

Page 2: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

3

OutlineOutline

Regole per la comunicazione

Scenario di riferimento

Protocolli

Modelli per la comunicazione

Remote Procedure Call – RPC

Remote Method Invocation – RMI

Message-Oriented Middleware – MOM

Stream (multimedia)

4

ProtocolliProtocolli

La comunicazione avviene con scambio messaggi

I protocolli stabiliscono le regole di

Formato

Contenuto

Significato

dei messaggi scambiati

Open System Interconnection Reference Model – OSI

Stabilisce un modello a strati (layer)

Due classi di protocollo

Connection-oriented: richiede setup iniziale

Connectionless: senza setup iniziale

Page 3: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

5

Layered Protocols (1)Layered Protocols (1)

Layers, interfaces, and protocols in the OSI model.

2-1

6

Layered Protocols (2)Layered Protocols (2)

A typical message as it appears on the network.

2-2

Page 4: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

7

Il modello ISO/OSI per TCP/IPIl modello ISO/OSI per TCP/IP

8

Gli strati ISO/OSIGli strati ISO/OSI

Livello 1-2: Data-Link layer

si preoccupa della trasmissione fisica del messaggio

controlla che il messaggio non si sia deteriorato durante il trasporto

Page 5: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

9

Gli strati ISO/OSIGli strati ISO/OSI

Livello 3: Network layer

determina la rotta del messaggio

I protocolli più diffusi sono

IP connectionless

(ogni messaggio, o pacchetto, viene inviato in modo indipendente)

X.25 connection-oriented

(richiede una preventiva connessione che determina la rotta di tutti i

successivi messaggi)

10

Gli strati ISO/OSIGli strati ISO/OSI

Livello 4 Transport layer

garantisce l'affidabilità nella comunicazione

I protocolli più diffusi sono

TCP (Transmission Control Protocol )

connection-oriented e basato si IP

UDP (Universal Datagram Protocol)

connectionless e basato direttamente su IP

Page 6: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

11

Client-Server TCPClient-Server TCP

a) Normal operation of TCP.

b) Transactional TCP.

2-4

12

Middleware protocolsMiddleware protocols

Riferito allo stack OSI appartiene allo strato applicazioni

Realizza protocolli generici che forniscono servizi utili a

molte applicazioni

Protocolli di autenticazione

Protocolli di autorizzazione

Protocolli di commit (per transazioni, fault tolerance)

Protocolli di lock (per concorrenza)

Page 7: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

13

Middleware ProtocolsMiddleware Protocols

An adapted reference model for networked communication.

2-5

14

RPC e RMIRPC e RMI

Argomenti trattati

primitive di comunicazione

scambio messaggi esplicito ed implicito

Remote Procedure Call (RPC)

Remote Method Invocation (RMI)

Concetti: sincrono/asincrono, marshalling, stub/skeleton,

IDL, generazione degli stub, formato di scambio dei dati,

interoperabilità

Page 8: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

15

Primitive di Primitive di comunicazionecomunicazione

La comunicazione è la differenza principale tra applicazioni

monoprocessore e distribuite

monoprocessore: shared memory (Pipe...)

distribuite: message passing

16

ModelliModelli di di comunicazionecomunicazione

Architettura: client-server,peer-to-peer

Indirizzamento

Protocollo di comunicazione

Bloccante/non bloccante

Buffered/unbuffered

Formato dei dati

Gestione della concorrenza (asincrono)

Messaggi espliciti/impliciti

Page 9: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

17

Message passing Message passing esplicitoesplicito

Uso diretto del transport layer (TCP/UDP)

Nuovo modello di programmazione

Problemi da trattare:

concorrenza

primitive bloccanti

interrupt

fallimenti nella comunicazione

diversi formati dei dati

18

Remote Procedure CallRemote Procedure Call

Le procedure remote sono una estensione al distribuito del

normale protocollo di chiamata di procedura

Vantaggi

hanno una semantica nota

sono facili da implementare

Svantaggi

realizzate dal programmatore

sono statiche

Page 10: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

19

Conventional Procedure CallConventional Procedure Call

a) Parameter passing in a local procedure call: the stack before the call toread

b) The stack while the called procedure is active

20

PC PC tradizionalitradizionali

Void main () {

...

C = call mtxmpy(A,B,size);

...

}

Variabili del

main

Puntatore ad A

Puntatore a B

Size

Indirizzo di

ritorno

Varibili locali

di mtxmpy

Page 11: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

21

Client and Server StubsClient and Server Stubs

Principle of RPC between a client and server program.

22

RPCRPC

Puntatore ad A

Puntatore a B

Size

Indirizzo di

ritorno

Varibili locali

di mtxmpy

Variabili del

main

Puntatore ad A

Puntatore a B

Size

Indirizzo di

ritorno

Kernel KernelTransport

Page 12: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

23

ArchitetturaArchitettura RPC RPC

24

Steps of a Remote Procedure CallSteps of a Remote Procedure Call

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

Page 13: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

25

StrutturaStruttura di di unauna RPC RPC

Client Clientstub

RPCtransport

RPCtransport

Serverstub

Server

unmarshallreturnparameters

marshallcallparameters

call

return

sendmessage

receivemessage

receivemessage

sendmessage

unmarshallcallparameters

marshallresultparameters

call

return

Performoperation

Network

26

ConversioneConversione RPC RPC

Azioni da effettuare dal lato chiamante

...

preparare il messaggio (mtxmpy, A, B, size)

inviare il messaggio usanto il livello trasporto

ricevere il messaggio di ritorno

leggere il messaggio ed assegnare C

...

Page 14: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

27

ConversioneConversione RPC RPC

Client

Programma:

chi chiamare?

Kernel: come trattare i

parametri?

Kernel: dove sta la macchina

server?

Kernel: come trattare il

programma cliente?

Server

Kernel: quale procedura

invocare?

Kernel: come passare i

parametri?

Kernel: come trattare il risultato?

28

RappresentazioneRappresentazione deidei datidati

Interi

complemento a 2

ordine dei byte

Altri formati: dipende dal tipo dei dati

conversione a un formato esterno e riconversione locale (Sun)

invio senza conversione con indicazione del formato, chi riceve converte

se serve (Apollo)

“self describing data format”

Page 15: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

29

Passing Value Parameters (1)Passing Value Parameters (1)

Steps involved in doing remote computation through RPC

2-8

30

Passing Value Parameters (2)Passing Value Parameters (2)

a) Original message on the Pentium

b) The message after receipt on the SPARC

c) The message after being inverted. The little numbers in boxesindicate the address of each byte

Tra macchine eterogenee bisogna considerare

i diversi formati dei dati

Page 16: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

31

Passing Reference ParametersPassing Reference Parameters

Pointers are meaningful only within the address space of the

processes

Call-by-reference is replaced by copy/restore

input structures are copied and sent over

output structures are copied back

Input/output structures are sent over and copied back

32

Parameter Specification and StubParameter Specification and Stub

GenerationGeneration

a) A procedure

b) The corresponding message.

Page 17: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

33

Asynchronous RPC (1)Asynchronous RPC (1)

a) The interconnection between client and server in a traditional RPC

b) The interaction using asynchronous RPC

2-12

34

Asynchronous RPC (2)Asynchronous RPC (2)

A client and server interacting through two asynchronous RPCs

2-13

Page 18: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

35

ImplementazioneImplementazione di RPC di RPC

generare automaticamente

i messaggi dalla chiamata tradizionale

marshalling e unmarshalling dei parametri

Client stub

traduce i dati e manda il messaggio;

riceve i risultati e li traduce

Server stub riceve la richiesta

traduce i parametri e chiama la procedura

traduce il risultato e lo invia

36

GeneratoriGeneratori RPC RPC

Consentono di automatizzare la progettazione di sistemi

client/server

Si scrive una normale applicazione

Si individuano le parti client e le funzioni remote

Si compila il codice per ottenere 4 parti

Page 19: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

37

ArchitetturaArchitettura rpcgenrpcgen

38

GeneratoriGeneratori RPC RPC

Page 20: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

39

DCE RPCDCE RPC

Distributed Computing Environment (DCE)

E’ un middleware composto da:

Distributed file server

Directory service

Security service

Distributed time service

Caratteristiche

Nasconde il binding del client col server

Converte i dati tra client e server

Indipendente dal linguaggio (client Java e server C)

40

Writing a Client and a ServerWriting a Client and a Server

The steps in writing a client and a server in DCE RPC.

2-14

Page 21: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

41

Binding a Client to a ServerBinding a Client to a Server

Client-to-server binding in DCE.

2-15

42

ConfrontoConfronto RPC/PC RPC/PC

Fallimenti sono diversi

Prestazioni differenti

E’ possibile il parallelismo (concorrenza)

Sincronismo è un problema nei DS

Sono possibili chiamate tra linguaggi diversi

Comunque è molto diffuso (DCE)

Page 22: Sistemi Distribuiti · Open System Interconnection Reference Model – OSI Stabilisce un modello a strati (layer) Due classi di protocollo Connection-oriented: richiede setup iniziale

43

ConclusioniConclusioni

Un servizio puo’ essere realizzato da un insieme di client e

server

Un server è costituito da un coordinatore e da un insieme di

serventi specializzati

Le prestazioni possono essere migliorate utilizzando server

multi-thread

Le prestazioni e le altre proprieta’ vanno misurate punto-a-

punto (end-to-end)