Sistemi Distribuiti

Transcript

Sistemi Distribuiti
25/09/2015
Sistemi Distribuiti
Modelli di interazione e di
comunicazione interprocesso
1
Paradigmi di interazione
• Un paradigma o modello di interazione
definisce:
– Le modalità di collaborazione e
distribuzione dei processi su macchine
diverse
– I modelli di comunicazione
Alla base, in genere, ci sono i meccanismi di
comunicazione basati sui protocolli di rete
2
1
25/09/2015
Il modello client-server
• Idea di base
– Organizzare il sistema distribuito in entità
(processi) chiamati server (che offrono un
servizio) e altre entità chiamate client (che
utilizzano i servizi).
•Caratteristiche
– Client e server sono processi utente
( l l
(talvolta
i server hanno
h
una struttura
multithread)
– Ogni macchina può gestire molteplici
client, oppure molteplici server o entrambi.
3
Modello Client-Server tradizionale
1 25
1.25
• Modello generale di interazione tra un
cliente ed un server
4
2
25/09/2015
Il modello client-server
• Vantaggi
– Semplicità: il client fa una richiesta ed aspetta la
risposta
– Nessuna connessione da stabilire
– Efficienza: il protocollo ha meno livelli, (se siamo
in una LAN) ne bastano 3
Livelli
7
Request
Client
6
Server
5
Kernel
4
Reply
Kernel
Request/Reply
3
2
Network
1
Data link
Fisico
5
Problema: indirizzamento
• Tipicamente tocca al processo client avviare le
operazioni
• Come individuare il server?
– Attraverso un identificatore univoco: un
indirizzo
– Occorre che il client identifichi sia la macchina
che il processo (identificatore macchinaprocesso)
– Il servizio (ad es. un file server) non risulta
però trasparente al sistema macchina-processo.
E’ necessario introdurre un name server.
6
3
25/09/2015
Architettura three-tiered
interfaccia utente
Applicazioni
Database
server
server
client
• I programmi, parte del livello di elaborazione,
risiedono su un server separato dal server
DBMS
7
Modello di interazione a tre livelli
• An example of a server acting as a client.
client
1-30
8
4
25/09/2015
Modello client-server a più livelli
1-28
Organizzazione su tre livelli di un motore
di ricerca in Internet
9
Architettura a più livelli
• Alternative client
client-server
server organizations (a) – (e).
(e)
1-29
10
5
25/09/2015
Distribuzione orizzontale e verticale
• An example of horizontal distribution of a Web service.
service
1-31
Distribuzione orizzontale di un servizio Web
11
Limiti del modello Client-Server
• Il modello client-server è un buon modello per
organizzare un sistema distribuito ma viene
definito in termini di SEND/RECEIVE.
SEND/RECEIVE
• L’approccio basato su uno scambio esplicito di
messaggi può creare difficoltà in chi non ha
familiarità con IPC message-passing.
•Modello alternativo
programmatore
più
semplice
per
il
– Remote Procedure Call (RPC)
– Oggetti distribuiti
12
6
25/09/2015
Paradigmi di interazione orientati al
client-server
• Remote procedure call (RPC)
Un processo può chiamare una procedura la
cui implementazione è disponibile su una
macchina remota
– I parametri della chiamata di procedura sono
trasmessi in modo trasparente alla macchina
remota
– La procedura è eseguita in remoto
– I risultati sono inviati al processo chiamante in
modo trasparente
13
Paradigmi di interazione orientati al
client-server
• Oggetti distribuiti
Ci si riferisce ad oggetti che risiedono su
macchine remote
– Gli oggetti sono implementazioni di una interfaccia nota
– L’interfaccia specifica i metodi messi a disposizione
dall’oggetto
– L’invocazione di un metodo remoto è trasformata
nell’invio di un messaggio al corrispondente oggetto
– I dettagli della comunicazione sono gestiti dal
middleware
14
7
25/09/2015
Paradigmi di interazione di basso livello per
applicazioni di calcolo scientifico
– Message Passing
Ciascun processo svolge il suo specifico compito
nell’applicazione
nell
applicazione (MIMD o SPMD).
SPMD) I processi
comunicano per mezzo di primitive di scambio di
messaggi (send e receive)
• Lo scambio non richiede di conoscere dove sono
eseguiti i processi
• Le primitive di scambio fanno solo riferimento agli
identificatori dei processi
– Shared Memory
I processi comunicano per mezzo di operazioni di
read/write da uno spazio di memoria condiviso
15
Paradigma peer-to-peer (P2P)
• I client sono distribuiti e non esiste un vero
server
– Ciascun peer funziona da client e da server
– Scambio di messaggi, file sharing
– Il vero problema è l’associazione dati-nodi (peer)
rete peer-to-peer
16
8
25/09/2015
Paradigma peer-to-peer (P2P)
• Nei sistemi peer-to-peer i processi sono
organizzati in una rete overlay, una rete logica
in cui tutti i processi hanno una lista locale
degli altri nodi con cui possono comunicare.
La rete overlay può essere:
– Strutturata: esiste uno schema deterministico della
rete di overlay e dell’associazione
dell associazione dati
dati-nodi
nodi
– Non strutturata: la rete di overlay è un grafo
disordinato e la lista dei vicini nonché la posizione
dei dati si formano in maniera più o meno casuale.
17
Architetture Peer-to-Peer strutturate
tecnica tipica hash
table distribuita
(DHT): ai nodi e ai
dati viene assegnata
una chiave. E’
necessario uno
schema che mappi i
dati sui nodi
Mappatura dei dati nei nodi in Chord
18
9
25/09/2015
Architetture Peer-to-Peer strutturate
Mappatura dei dati nei
nodi in CAN
19
Architetture Peer-to-Peer strutturate
Suddivisione
S
ddi i i
di
una regione
quando un nodo si
unisce al sistema
20
10
25/09/2015
Superpeers
Nei sistemi peer-to-peer non strutturati, quando la
rete cresce, spesso si introduce una gerarchia tra i
nodi con alcuni nodi ((superpeer)
p p ) che hanno una
funzione di indice.
21
11