Pari Gioia Reti Di Calcolatori LS A.A. 2003/04
Vi sono delle operazioni ad alto costo computazionale che i client non sono in grado di svolgere singolarmente in tempo utile e dei server che invece le possono svolgere su richiesta. In questo contesto la capacità computazionale di ciascun server diventa una risorsa preziosa sulla quale i vari client si devono sincronizzare. L'entry point dei server alla rete sarà costituitas dall’entità Monitor che fornirà il frontend ai client per acquisire informazioni sullo stato della rete.
Il progetto consiste nella realizzazione di un’applicazione distribuita, realizzata in ambiente real-time, la quale realizza i meccanismi di comunicazione, coordinazione e fault-tolerance relativamente ad un sistema di server che dispongono di servizi richiedibili da client. Monit or Servizi … Servizi … Servizi … Servizi …
Realizzazione di un sistema di gestione trasparente, affidabile di richieste concorrenti in ambiente real-time. Gestione dei guasti Meccanismi di replicazione Event drivenTime driven Meccanismi di controllo Gestione parallela Garanzia di atomicità Politiche di negoziazione flessibili Contract Net Gestione del discovery
Le entità del sistema… Client Lista Monitor … … … Contattare il monitor master Contattare i server EFFETTUARE RICHIESTE Avviare protocollo di negoziazione
Server FORNIRE DEI SERVIZI Registrarsi Gestire richieste concorrenti Mantenere coerente il proprio stato Eseguire le funzioni Servizi …
Monit or Monitor master GESTIRE IL DISCOVERY Lista Server … … … Lista Monitor … … … Gestire richieste concorrenti Registrare i server Aggiornare monitor replica
Monit or Monitor replica BACKUP DEL MONITOR Lista Server … … … Lista Monitor … … … Controllo stato monitor master Eleggere nuovo monitor master
CONTRACT NET Politica di negoziazione flessibile Lavorare in ambiente Real-time Trovare un ottimo nello stato corrente
Richiesta di un’operazione... Controllo passivo del monitor master dell’applica- zione Avviare anticipata- mente le procedure di sostituzione Controllo passivo dei server Eliminazione dei server opportuni Algoritmo di scelta Mantenere la lista monitor aggiornata (aggiornamento periodico) Reperire la lista server del sistema Contattare i server Determinare il server migliore Chiedere l’esecuzione del servizio Contattare l’entità monitor master Multicast alle entità server del sistema
Gestione di una richiesta … Garantire la consistenza dello stato del server Azioni atomiche sullo stato Gestione parallela delle richieste Rispondere alla richiesta Gestire richieste concorrenti Esecuzione di un thread per ogni richiesta
Registrazione dei server… Ricezione di una richiesta di registrazione Gestire richieste concorrenti Aggiornare i monitor replica del sistema Modifica della lista server Gestione parallela delle richieste Esecuzione di un thread per ogni richiesta Multicast alle entità monitor replica Controllo passivo dei monitor Eliminazione dei monitor opportuni
Fault del monitor master… Controllo stato del monitor Determinazione del nuovo monitor Elezione del nuovo monitor Controllo periodico (time driven) Algoritmo di scelta Modifica dello stato del monitor prescelto Aggiornamento dei monitor replica Controllo del monitor master dell’applica- zione
I monitor replica vengono aggiornati periodicamente dal monitor master, questo non garantisce che le liste contenute nei monitor replica siano effettivamente coerenti con quella del monitor master. Si potrebbe sviluppare un meccanismo che nel momento dell’elezione del nuovo master, controlli le liste di tutti i monitor replica e definisca secondo una politica prescelta (quorum, voting, confronto fra i timestamp) la determinazione della lista attuale. I server possa accettare una sola richiesta alla volta di esecuzione di una funzione, con l’aumentare del numero dei client si potrebbe avere che questo aspetto risulti come limitativo. Si potrebbe pensare di o richiedere l’attivazione, se possibile, di altri server nel momento in cui il numero di rifiuti divenga elevato o ampliare la capacità del server in modo tale da essere in grado di poter eseguire più di una funzione.