Reti Di Calcolatori LS
A.A. 2003/04
Pari Gioia
171376
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.
Servizi
…
Monit
or
Servizi
…
Servizi
…
Servizi
…
Realizzazione di un sistema di gestione
trasparente, affidabile di richieste
concorrenti in ambiente real-time.
Gestione dei guasti
Gestione
del
discovery
Gestione parallela
Meccanismi di replicazione
Politiche di
negoziazione flessibili
Meccanismi di controllo
Garanzia di atomicità
Event driven
Time driven
Contract Net
Le entità del sistema…
Lista Monitor
…
…
Client
…
Contattare il monitor master
Contattare i server
EFFETTUARE RICHIESTE
Avviare protocollo di negoziazione
Registrarsi
Gestire richieste concorrenti
Server
Mantenere coerente il
proprio stato
Eseguire le funzioni
FORNIRE DEI SERVIZI
Servizi
…
Lista Monitor
…
…
…
Monitor
master
Monit
or
GESTIRE IL DISCOVERY
Lista Server
…
…
…
Gestire richieste concorrenti
Registrare i server
Aggiornare monitor replica
Lista Server
…
…
…
Monitor
replica
Monit
or
Lista Monitor
…
…
…
Controllo stato monitor master
BACKUP DEL MONITOR
Eleggere nuovo monitor master
CONTRACT NET
Politica di negoziazione
Lavorare in ambiente
Trovare un ottimo
flessibile
Real-time
nello stato corrente
Richiesta di un’operazione...
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
Controllo passivo
del monitor
master dell’applicazione
Contattare l’entità monitor master
Avviare anticipatamente le
procedure di
sostituzione
Multicast alle entità server del sistema
Controllo passivo
dei server
Algoritmo di scelta
Eliminazione dei
server opportuni
Gestione di una richiesta …
 Rispondere alla richiesta
 Gestire richieste concorrenti
Gestione parallela delle richieste
Garantire la consistenza dello stato del server
Esecuzione di un
thread per ogni
richiesta
Azioni atomiche
sullo stato
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
Controllo passivo
dei monitor
Multicast alle entità monitor replica
Eliminazione dei
monitor opportuni
Fault del monitor master…
 Controllo stato del monitor
 Determinazione del nuovo monitor
 Elezione del nuovo monitor
Controllo periodico (time driven)
Controllo del monitor
master dell’applicazione
Algoritmo di scelta
Modifica dello stato del monitor prescelto
Aggiornamento
dei monitor replica
• 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.
Scarica

presentazione