La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.

Presentazioni simili


Presentazione sul tema: "Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005."— Transcript della presentazione:

1 Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005

2 Modello semantico del sistema – « store and forward » Producer Consumer I consumatori sono scelti arbitrariamente… Queue

3 Obiettivi e ipotesi di progetto Modello di replicazione passiva con copie calde Modello di replicazione passiva con copie calde permetta ad ogni cliente di usufruire dei servizi, permetta ad ogni cliente di usufruire dei servizi, permetta ad applicazioni diverse, in generale di linguaggi differenti, di fruire il sistema, permetta ad applicazioni diverse, in generale di linguaggi differenti, di fruire il sistema, sia tollerante ai guasti, sia tollerante ai guasti, operazioni tipiche per la gestione di cluster per alta disponibilità operazioni tipiche per la gestione di cluster per alta disponibilità monitoraggio dei servizi, monitoraggio dei servizi, migrazione del servizio, migrazione del servizio, controllo dello stato dei nodi; controllo dello stato dei nodi; garantisca qualità del servizio, garantisca qualità del servizio, garantisca qualche forma di sicurezza. garantisca qualche forma di sicurezza. Ipotesi di guasto singolo Ipotesi di guasto singolo

4 Client-Proxy-Server Client Application Client Portion Server Application Server Portion Client/Proxy Interface Proxy Application Proxy Portion Proxy Interface Public Interface Request Result Relazione client/proxy: Relazione client/proxy: Stessa applicazione Stessa applicazione Proxy come modulo del SO Proxy come modulo del SO Proxy come server nella rete locale Proxy come server nella rete locale Public interface: Public interface: in generale questa interfaccia potrebbe anche non essere pubblica; nel caso specifico si fa riferimento a proxy che utilizzano interfaccia definite da protocolli di uso comune come per esempio http. in generale questa interfaccia potrebbe anche non essere pubblica; nel caso specifico si fa riferimento a proxy che utilizzano interfaccia definite da protocolli di uso comune come per esempio http.

5 Proxy Slave Master Client Proxy Slave Modello generale del sistema Come conosce i server? Nei parametri di configurazione del proxy ci deve essere almeno l’indirizzo del master

6 SenderLiveManager ServiceManager ReceiverLiveManager Sender Receiver StateManagerAddressManager RecoveryManager HotStandByManager Architettura Server – parte 1

7 Architettura server – parte 2 : oggetto remoto a cui il proxy rivolge le sue richieste; ServiceManager : oggetto remoto a cui il proxy rivolge le sue richieste; Caso Master  sempre attivo; Caso Master  sempre attivo; Caso slave  pronto per essere attivato se primo slave, altrimenti comunque aggiornato; Caso slave  pronto per essere attivato se primo slave, altrimenti comunque aggiornato; : memorizza gli indirizzi della catena; AddressManager : memorizza gli indirizzi della catena; responsabile dell’ingresso nella catena da parte di uno slave ; responsabile dell’ingresso nella catena da parte di uno slave ; fornisce a tutti gli altri manager le informazioni necessarie per la comunicazione con i server pari; fornisce a tutti gli altri manager le informazioni necessarie per la comunicazione con i server pari; StateManager : mantiene aggiornato lo stato della copia slave collegata al server; StateManager : mantiene aggiornato lo stato della copia slave collegata al server; devono essere inviati aggiornamenti man mano che arrivano richieste da parte dei clienti; devono essere inviati aggiornamenti man mano che arrivano richieste da parte dei clienti; Heartbeat: Heartbeat: SenderLiveManager: manda messaggi a cadenze regolari di tempo al suo master del tipo “are you alive?”; SenderLiveManager: manda messaggi a cadenze regolari di tempo al suo master del tipo “are you alive?”; ReceiverLiveManager: arrivato il messaggio di “are you alive?”, da parte del suo slave, risponde con un messaggio di “alive”; ReceiverLiveManager: arrivato il messaggio di “are you alive?”, da parte del suo slave, risponde con un messaggio di “alive”; RecoveryManager : responsabile del recovery di un guasto; RecoveryManager : responsabile del recovery di un guasto; Sender e Receiver : gestiscono i canali di comunicazione; Sender e Receiver : gestiscono i canali di comunicazione; HotStandByManager: coadiuvante di tutti i manager. HotStandByManager: coadiuvante di tutti i manager.

8 Code e Messaggi – parte 1 gestione delle code dei messaggi è delegata dal serviceManager (incarico di prendere le richieste dei proxy) al queueManager; gestione delle code dei messaggi è delegata dal serviceManager (incarico di prendere le richieste dei proxy) al queueManager; Code: serie di liste ordinate di messaggi, in cui ogni lista ha una propria priorità (utilizzata nello smistamento dei messaggi); Code: serie di liste ordinate di messaggi, in cui ogni lista ha una propria priorità (utilizzata nello smistamento dei messaggi); persistenti e non persistenti (in fase di sviluppo) persistenti e non persistenti (in fase di sviluppo) Il messaggio è un dato composto da: Il messaggio è un dato composto da: un sender: colui che invia il messaggio; un sender: colui che invia il messaggio; uno o più recipient: i destinatari del messaggio (possibilità di avere destinatari particolari); uno o più recipient: i destinatari del messaggio (possibilità di avere destinatari particolari); un contenuto: nella semantica java, possiamo definire il contenuto come un qualsiasi oggetto serializzabile. un contenuto: nella semantica java, possiamo definire il contenuto come un qualsiasi oggetto serializzabile.

9 Code e Messaggi – parte 2 Le operazioni che possono essere effettuate dal cliente sono: Le operazioni che possono essere effettuate dal cliente sono: aggiunta di una coda; aggiunta di una coda; rimozione di una coda; rimozione di una coda; produzione di un messaggio: deve essere specificato in quale coda dovrà essere inserito il messaggio e con quale priorità; produzione di un messaggio: deve essere specificato in quale coda dovrà essere inserito il messaggio e con quale priorità; consumo di un messaggio: viene prelevato e rimosso dalla coda specifica il messaggio più prioritario; consumo di un messaggio: viene prelevato e rimosso dalla coda specifica il messaggio più prioritario; ottenere una lista delle code presenti; ottenere una lista delle code presenti; chiedere se esiste una certa coda; chiedere se esiste una certa coda; chiedere se esistono messaggi in una certa coda. chiedere se esistono messaggi in una certa coda.

10 Protocolli di comunicazione La comunicazione avviene sempre a catena dal master fino all’ultimo slave; La comunicazione avviene sempre a catena dal master fino all’ultimo slave; Comunicazione tra manager: ogni manager gestisce una serie di variabili che sono visibili a tutti gli altri manager ma che non possono essere modificate da loro(manager delle code escluso); Comunicazione tra manager: ogni manager gestisce una serie di variabili che sono visibili a tutti gli altri manager ma che non possono essere modificate da loro(manager delle code escluso); Comunicazione tra client, proxy e master: varie possibilità Comunicazione tra client, proxy e master: varie possibilità Client-proxy: comunicazione locale, remota; Client-proxy: comunicazione locale, remota; Proxy-server: comunicazione remota. Proxy-server: comunicazione remota.

11 Comunicazione a catena Master Slave Message

12 Comunicazione di ingresso slave Master SlaveNew Slave 3. connection 1. Entry: hostname, port 2. New Address Chain 2. New Address Chain, queues

13 Master Slave Client Proxy Client Aggiornamento stato Request: produce Message Aggiornamento stato

14 Master Slave 1. Are you alive? 2. Alive Se entro un certo tempo non mi risponde: MORTE MASTER Se entro un certo tempo non mi chiede nulla: MORTE LAST SLAVE Comunicazione di vita: heartbeat

15 Master Slave 1.Morte master 2. Divento il nuovo master 3. Mando la nuova Address chain New Address chain Crash o caduta del master

16 Master Slave 1. Morte slave 3. New Address chain 2. Recovery, new Address chain Slave 4. New Address chain Crash o caduta di uno slave

17 Master Slave 1.Morte ultimo slave 2. Divento il nuovo ultimo slave 3. Mando la nuova Address chain al master 3. Recovery, New Address chain 4. New Address chain Crash o caduta dell’ultimo slave

18 Master Slave 2 Slave 3Slave 1 1.Problemi con una certa coda… 2.Mando conteiner queue 2. Send Conteiner queue 2. Conteiner queue + my queue 2. Conteiner queue + my queue Conteiner queue 3. Send Winner Queue Winner Queue Errori interni

19 Prototipo Ambiente di sviluppo: java; Ambiente di sviluppo: java; Manager: classi java e solo alcuni di loro sono thread; Manager: classi java e solo alcuni di loro sono thread; Comunicazione tra i server: socket stream; Comunicazione tra i server: socket stream; Per ogni canale di comunicazione: thread receiver + switcher per la distribuzione del messaggio ai manager(interfaccia IListener); Per ogni canale di comunicazione: thread receiver + switcher per la distribuzione del messaggio ai manager(interfaccia IListener); Il proxy comunica con il master attraverso java RMI; Il proxy comunica con il master attraverso java RMI; Oggetti presenti nell’rmiregistry: serviceManager e il Chain Oggetti presenti nell’rmiregistry: serviceManager e il Chain serviceManeger: servizio delle code; serviceManeger: servizio delle code; Chain: permette al proxy di avere informazioni su tutta la catena dei server; Chain: permette al proxy di avere informazioni su tutta la catena dei server; Il proxy è stato implementato come un classe appartenente all’applicazione client; Il proxy è stato implementato come un classe appartenente all’applicazione client; Configurazione server e proxy: file xml (esempio) Configurazione server e proxy: file xml (esempio)

20 Conclusioni e sviluppi futuri Obiettivi rispettati Obiettivi rispettati QoS nella consegna dei messaggi e interazione tra server QoS nella consegna dei messaggi e interazione tra server Tolleranza ai guasti Tolleranza ai guasti Cluster per alta disponibilità Cluster per alta disponibilità Sviluppi futuri Sviluppi futuri Sicurezza: Sicurezza: utenti con diritti utenti con diritti Comunicazioni sicure Comunicazioni sicure DNS DNS Politiche di filtro dei messaggi Politiche di filtro dei messaggi


Scaricare ppt "Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005."

Presentazioni simili


Annunci Google