sistemi distribuiti · open system interconnection reference model – osi stabilisce un modello a...

Post on 17-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

SistemiSistemi DistribuitiDistribuiti

Anno Accademico 2005-06

Prof. Flavio De Paoli

2

CommunicationCommunication

Chapter 2

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

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

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

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

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)

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à

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

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

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

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

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

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

...

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”

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

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.

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

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

37

ArchitetturaArchitettura rpcgenrpcgen

38

GeneratoriGeneratori RPC RPC

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

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)

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)

top related