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