Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi Dario Zanelli 0000232070 (mail: [email protected]) Obiettivi Distribuzione di notizie di agenzie su larga scala Presenza di un certo numero di fonti e un alto numero di fruitori completamente disaccoppiati ed eterogenei Utilizzo di IBM WebSphere MQ e delle sue funzionalità disponibili in Java Realizzare un sistema affidabile e che tenga in considerazione i problemi legati alla QoS Dario Zanelli - Sistema di Distribuzione 2 Descrizione del sistema Presenza di un certo numero NOTIZIA di fonti che FONTI immettono notizie nel sistema (fonti push o pull) Presenza di un alto numero di fruitori interessati alle notizie (fruitori push o pull) Sistema di distribuzione che si appoggia ad MQ e porta le notizie dalle fonti ai fruitori interessati SISTEMA DI DISTRIBUZIONE FRUITORI Dario Zanelli - Sistema di Distribuzione 3 Architettura del sistema di distribuzione 1/2 Gerarchico organizzato su più livelli, organizzato in maniera geografica I fruitori si posizionano all’ultimo livello gerarchico della rete Si effettua consegna totale delle notizie emesse (algoritmo Shortest Spannig Tree) L’unica eccezione è rappresentata dalle notizie esclusive per le quali la consegna va fatta solo ad un destinatario (algoritmo Shortest Path) Dario Zanelli - Sistema di Distribuzione 4 Architettura del sistema di distribuzione 2/2 Presenza di un MASTER per ogni livello della rete, con compiti di: inizializzazione di sistema mantenimento informazioni sullo stato della rete decisioni di routing in base allo stato della rete ricezione delle notizie dal master del livello gerarchico superiore Dario Zanelli - Sistema di Distribuzione 5 Affidabilità e tolleranza ai guasti Principalmente due tipi di guasti possibili nel sistema di distribuzione: malfunzionamenti della rete: possibile caduta di una tratta malfunzionamenti dei nodi: possibile caduta di un nodo Occorre garantire che non vadano persi i messaggi durante qualsiasi tipo di malfunzionamento Dario Zanelli - Sistema di Distribuzione 6 Malfunzionamenti della rete 1/2 Ogni notizia è caratterizzata da un ID 1) SendMessage (NodoA, 020, notizia1) NODO A NODO B Ogni nodo quando invia una notizia salva informazioni1)dell’invio (notizia, destinatario, ID) SendMessage (NodoA, 028, notizia2) in un’apposita struttura dati (Hashtable) 2) ReplyMessage (NodoB, 020) Ogni nodo quando riceve una notizia invia un 020 NodoA notizia1 ReplyMessage (NodoB, 028) messaggio di2) conferma avvenuta ricezione al 028 NodoA notizia2 mittente col proprio nome del messaggio 1) SendMessage (NodoA, e 036,l’ID notizia3) 036 NodoA notizia3 Chi riceve uno di questi messaggi di conferma elimina dalla struttura dati le informazioni riguardanti quel messaggio Dario Zanelli - Sistema di Distribuzione 7 Malfunzionamenti della rete 2/2 Un processo periodicamente controlla l’Hashtable e la confronta con una “fotografia” della stessa all’istante di controllo precedente MASTER una tratta Se sono presenti MASTER entryCade comuni si considera caduta la tratta corrispondente e: tutti i messaggi destinati a quella tratta prendono strade alternative viene avvisato il nodo master che tiene conto di questa informazione nel calcolo dei successivi alberi di routing Dario Zanelli - Sistema di Distribuzione 8 Malfunzionamenti dei nodi 1/2 Ogni nodo ha una copia capace di subentrare al suo posto in caso di malfunzionamento secondo un modello del tipo Master-Slave con copia fredda Ipotesi di guasto singolo Le due copie risiedono su macchine diverse con IP diversi La copia Slave invia messaggi di KeepAlive al Master, considerando un opportuno timeout Dario Zanelli - Sistema di Distribuzione 9 Malfunzionamenti dei nodi 2/2 NODO B Se il Master cade, subentra lo Slave, che: Recupera gli indirizzi IP dei vicini dal Registry Comunica ad essi la caduta del nodo Master I nodi vicini inviano allo Slave i messaggi di cui MASTER SLAVE non avevano ricevuto conferma La rete continua a lavorare con lo Slave che svolge tutte le funzioni del Master Quando il Master torna disponibile riprende il servizio ripristinando la condizione di partenza KeepAlive Response NODO A NODO C Dario Zanelli - Sistema di Distribuzione 10 Il Registry Fornisce gli indirizzi IP di tutti i nodi, sia REGISTRY 1) GetIP(ABRUZZO) Master che Slave Nome nodo, IP master, IP slave 2) “255.3.6.1” 255.3.6.2 socket ABRUZZO, 255.3.6.1, Comunica tramite con connessione LIGURIA, 255.8.11.2, 255.8.11.3 Due tipi di richieste: Richiesta IP di un nodo 1) GetIP(ABRUZZO,255.3.6.1) 2) “255.3.6.2” Richiesta IP di un nodo dato l’indirizzo IP della macchina non funzionante: verrà dato come risposta l’IP della copia funzionante della macchina Dario Zanelli - Sistema di Distribuzione 11 Gestione della qualità del servizio 1/2 La QoS del sistema di distribuzione è garantita tramite un’azione di monitoring sulle tratte che collegano i nodi Periodicamente ogni nodo invia messaggi contenenti un Timestamp su un’apposita coda dei vicini Il messaggio viene immediatamente rispedito al nodo mittente Dario Zanelli - Sistema di Distribuzione 12 Gestione della qualità del servizio 2/2 Viene calcolato il peso della tratta come Peso Tratta: 2 4 funzione lineare della differenza tra il Timestamp del messaggio e quello attuale (”MONITOR”,”NodoB”,04.10.2006 14:55:41) NODO A NODO B In caso di variazione di tale peso ne viene (”MONITOR”,”NodoB”,04.10.2006 14:55:41) data comunicazione al nodo master del livello Frequenza di monitoring non troppo alta per Calcolo il nuovo peso della tratta che è 2 non appesantire troppo il sistema Invio un messaggio al Master indicando la variazione di peso della tratta Dario Zanelli - Sistema di Distribuzione 13 Testing e conclusioni Testing avvenuto in locale su una macchina Attività di monitoring solo simulata È stato realizzato un prototipo che permette la comunicazione disaccoppiata tra Fonti e Fruitori Come sviluppi futuri si può prevedere la trasmissione criptata delle informazioni, un numero maggiore di contratti e una migliore gestione degli utenti mobili Dario Zanelli - Sistema di Distribuzione 14 Fine presentazione Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Dario Zanelli - Sistema di Distribuzione 15