Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di...

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

Transcript of Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di...

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

Producer – Consumer Producer – Consumer SystemSystem

Di Carlo Matteo 195111 CdLS Ingegneria Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234)Informatica (0234)

Reti di Calcolatori LSReti di Calcolatori LSA.A. 2004/2005A.A. 2004/2005

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

Modello semantico del Modello semantico del sistema – sistema – ««store and forwardstore and forward»»

Producer

Consumer

Consumer

Consumer

I consumatori sono scelti arbitrariamente…

Queue

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

Obiettivi e ipotesi di progettoObiettivi e ipotesi di progetto

Modello di replicazione passiva con Modello di replicazione passiva con copie calde copie calde permetta ad ogni cliente di permetta ad ogni cliente di usufruire dei servizi,usufruire dei servizi, permetta ad applicazioni diverse, in generale di permetta ad applicazioni diverse, in generale di

linguaggi differentilinguaggi differenti, di fruire il sistema, , di fruire il sistema, siasia tollerante ai guasti tollerante ai guasti, , operazioni tipiche per la gestione di operazioni tipiche per la gestione di clustercluster per per

alta disponibilità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 serviziogarantisca qualità del servizio,, garantisca qualche forma di garantisca qualche forma di sicurezza.sicurezza.

Ipotesi di guasto singoloIpotesi di guasto singolo

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

Client-Proxy-ServerClient-Proxy-ServerClient

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 applicazioneStessa applicazione Proxy come modulo del SOProxy come modulo del SO Proxy come server nella rete localeProxy come server nella rete locale

Public interface: Public interface: in generale questa interfaccia potrebbe anche in generale questa interfaccia potrebbe anche

non essere pubblica; nel caso specifico si fa non essere pubblica; nel caso specifico si fa riferimento a proxy che utilizzano interfaccia riferimento a proxy che utilizzano interfaccia definite da protocolli di uso comune come per definite da protocolli di uso comune come per esempio http.esempio http.

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

Proxy

Slave

Master

Client

Client

Client

Client

Client

Client

Proxy

Slave

Modello generale del sistemaModello generale del sistema

Come conosce i server? Nei parametri di

configurazione del proxy ci deve essere almeno l’indirizzo del master

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

SenderLiveManager

ServiceManager

ReceiverLiveManager

SenderReceiver

StateManager AddressManager

RecoveryManager

HotStandByManager

Architettura Server – parte 1Architettura Server – parte 1

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

Architettura server – parte 2Architettura server – parte 2 ServiceManager : oggetto remoto a cui il proxy rivolge le sue : oggetto remoto a cui il proxy rivolge le sue

richieste;richieste; Caso MasterCaso Mastersempre attivo;sempre attivo; Caso slave Caso slave pronto per essere attivato se primo slave, pronto per essere attivato se primo slave,

altrimenti comunque aggiornato;altrimenti comunque aggiornato; AddressManager : memorizza gli indirizzi della catena; : 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 fornisce a tutti gli altri manager le informazioni necessarie per

la comunicazione con i server pari;la comunicazione con i server pari; StateManager StateManager : mantiene aggiornato lo stato della copia slave : mantiene aggiornato lo stato della copia slave

collegata al server; collegata al server; devono essere inviati aggiornamenti man mano che arrivano devono essere inviati aggiornamenti man mano che arrivano

richieste da parte dei clienti;richieste da parte dei clienti; Heartbeat:Heartbeat:

SenderLiveManagerSenderLiveManager: manda messaggi a cadenze regolari di : manda messaggi a cadenze regolari di tempo al suo master del tipo “are you alive?”;tempo al suo master del tipo “are you alive?”;

ReceiverLiveManagerReceiverLiveManager: arrivato il messaggio di “are you : arrivato il messaggio di “are you alive?”, da parte del suo slave, risponde con un messaggio di alive?”, da parte del suo slave, risponde con un messaggio di “alive”;“alive”;

RecoveryManagerRecoveryManager : responsabile del recovery di un guasto; : responsabile del recovery di un guasto; SenderSender e e ReceiverReceiver : gestiscono i canali di comunicazione; : gestiscono i canali di comunicazione;

HotStandByManagerHotStandByManager: coadiuvante di tutti i manager.: coadiuvante di tutti i manager.

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

Code e Messaggi – parte 1Code e Messaggi – parte 1 gestione delle code dei messaggi è gestione delle code dei messaggi è

delegata dal serviceManager (incarico di delegata dal serviceManager (incarico di prendere le richieste dei proxy) al prendere le richieste dei proxy) al queueManager;queueManager;

CodeCode: serie di liste ordinate di messaggi, in : serie di liste ordinate di messaggi, in cui ogni lista ha una propria priorità cui ogni lista ha una propria priorità (utilizzata nello smistamento dei (utilizzata nello smistamento dei messaggi);messaggi); persistenti e non persistenti (in fase di sviluppo)persistenti e non persistenti (in fase di sviluppo)

Il Il messaggiomessaggio è un dato composto da: è 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 uno o più recipient: i destinatari del messaggio

(possibilità di avere destinatari particolari);(possibilità di avere destinatari particolari); un contenuto: nella semantica java, possiamo un contenuto: nella semantica java, possiamo

definire il contenuto come un qualsiasi oggetto definire il contenuto come un qualsiasi oggetto serializzabile.serializzabile.

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

Code e Messaggi – parte 2Code e Messaggi – parte 2 Le Le operazionioperazioni che possono essere che possono essere

effettuate dal cliente sono: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 produzione di un messaggio: deve

essere specificato in quale coda dovrà essere specificato in quale coda dovrà essere inserito il messaggio e con quale essere inserito il messaggio e con quale priorità;priorità;

consumo di un messaggio: viene consumo di un messaggio: viene prelevato e rimosso dalla coda specifica prelevato e rimosso dalla coda specifica il messaggio più prioritario;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 chiedere se esistono messaggi in una

certa coda.certa coda.

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

Protocolli di comunicazioneProtocolli di comunicazione La comunicazione avviene sempre La comunicazione avviene sempre

a catena dal master fino all’ultimo a catena dal master fino all’ultimo slaveslave;;

Comunicazione tra manager: Comunicazione tra manager: ogni ogni manager gestisce una serie di manager gestisce una serie di variabili che sono visibili a tutti gli variabili che sono visibili a tutti gli altri manager ma che non possono altri manager ma che non possono essere modificate da loro(manager essere modificate da loro(manager delle code escluso);delle code escluso);

Comunicazione tra client, proxy e Comunicazione tra client, proxy e master: varie possibilitàmaster: varie possibilità Client-proxy: comunicazione locale, Client-proxy: comunicazione locale,

remota;remota; Proxy-server: comunicazione remota.Proxy-server: comunicazione remota.

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

Comunicazione a catenaComunicazione a catena

Master Slave

Slave

Message

Message

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

Comunicazione di ingresso Comunicazione di ingresso slaveslave

Master Slave

New Slave

3. connection

1. Entry: hostname, port

2. New Address Chain

2. New Address Chain, queues

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

Master Slave

Client Proxy

Client

Client

Aggiornamento stato

Aggiornamento stato

Request: produce Message

Request: produce Message

Request: produce Message

Aggiornamento statoAggiornamento stato

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

Master Slave Slave

1. Are you alive?

1. Are you alive?

2. Alive2. 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: Comunicazione di vita: heartbeatheartbeat

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

Master Slave Slave

1.Morte master2. Divento il nuovo master

3. Mando la nuova Address chain

New Address chain

Crash o caduta del masterCrash o caduta del master

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

Master

Slave Slave

1. Morte slave

3. New Address chain

2. Recovery, new Address chain

Slave

4. New Address chain

Crash o caduta di uno slaveCrash o caduta di uno slave

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

Master

Slave SlaveSlave

1.Morte ultimo slave2. Divento il nuovo ultimo slave

3. Mando la nuova Address chain al master

3. Recovery, New Address chain

4. New Address chain

4. New Address chain

Crash o caduta dell’ultimo Crash o caduta dell’ultimo slaveslave

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

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

Winner Queue

Winner Queue

Errori interniErrori interni

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

PrototipoPrototipo

Ambiente di sviluppo: java;Ambiente di sviluppo: java; Manager: classi java e solo alcuni di loro sono Manager: classi java e solo alcuni di loro sono

thread;thread; Comunicazione tra i server: socket stream;Comunicazione tra i server: socket stream; Per ogni canale di comunicazione: thread receiver Per ogni canale di comunicazione: thread receiver

+ switcher per la distribuzione del messaggio ai + switcher per la distribuzione del messaggio ai manager(interfaccia IListener);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 Oggetti presenti nell’rmiregistry: serviceManager e

il Chainil Chain serviceManeger: servizio delle code;serviceManeger: servizio delle code; Chain: permette al proxy di avere informazioni su tutta Chain: permette al proxy di avere informazioni su tutta

la catena dei server;la catena dei server; Il proxy è stato implementato come un classe Il proxy è stato implementato come un classe

appartenente all’applicazione client;appartenente all’applicazione client; Configurazione server e proxy: file xml (esempio)Configurazione server e proxy: file xml (esempio)

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

Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

Obiettivi rispettatiObiettivi rispettati QoS nella consegna dei messaggi e QoS nella consegna dei messaggi e

interazione tra serverinterazione tra server Tolleranza ai guastiTolleranza ai guasti Cluster per alta disponibilitàCluster per alta disponibilità

Sviluppi futuriSviluppi futuri Sicurezza: Sicurezza:

utenti con diritti utenti con diritti Comunicazioni sicureComunicazioni sicure

DNSDNS Politiche di filtro dei messaggiPolitiche di filtro dei messaggi