1 Sistemi Sistemi Distribuiti Distribuiti Anno Accademico 2005-06 Prof. Flavio De Paoli 2 Communication Communication Chapter 2
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)