1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini
2 L'idea di progetto Realizzare un sistema che sia: dinamico replicato distribuito trasparenza alla replicazione... Gestire direttamente la complessità dei problemi, senza ricorrere a strumenti ed ambienti avanzati
3 Uno sguardo al sistema dispatcher manager memory user Scambio di messaggi lista pacchetti
4 Ipotesi di guasto Gestione tramite timeout e messaggi di controllo
5 Direzioni del controllo
6 Replicazione del dispatcher Ingresso nel sistema: RESOLV_ASK_DIS -> RESOLV_ANS_DIS Caso 1, nessun dispatcher attivo, richiesta di elezione a dispatcher attivo: SET_CMD_DIS -> SET_ACCEPT_DIS Caso 2, un altro dispatcher è attivo, copia passiva con aggiornamento parziale dello stato (copia calda) Guasto del dispatcher attivo: messaggio di reset da parte delle copie
7 Replicazione del dispatcher
8 Ingresso di nodi nel sistema
9 Uscita di nodi dal sistema
10 Interazione dell'utente col sistema Inizialmente l'utente richiede le coordinate di un nodo manager cui rivolgersi per ulteriori richieste: Richiesta di invio della lista di pacchetti gestiti dal sistema Richiesta di invio di uno specifico pacchetto: da parte del nodo di memorizzazione cui viene ridirezionato l'utente dal manager, se il manager ha a disposizione un nodo adatto (strutture dati ad hoc) da parte del manager stesso Inoltre l'utente può chiedere al dispatcher la cancellazione di un pacchetto dalla lista di sistema
11 Eliminazione di un pacchetto dalla lista da parte dell'utente
12 Caratteristiche chiave del sistema Dinamicità: strutture dati per gestione dinamica di ingressi e dipartite, anche non preannunciate Replicazione: copie passive per il dispatcher, attive per i manager, in grado di fornire lo stesso servizio in maniera indipendente l'uno dall'altro Tecniche tipiche del calcolo distribuito: monitoraggio dei guasti, suddivisione delle responsabilità, heartbeat Trasparenza alla replicazione, gestione della concorrenza...
13 Conclusioni Difficoltà di progettare protocolli di comunicazione complessi, completi ed efficienti Difficoltà di definire strutture dati adatte a contenere informazioni utili alla gestione dinamica del sistema, in grado di garantire risultati diversi a seconda del contesto Difficoltà legate alla gestione e all'ipotizzazione di ogni possibile tipo di guasto Difficoltà implementative nell'ottenere esattamente il comportamento desiderato
14 Ancora conclusioni Difficoltà ed esplosione del problema nel momento in cui se ne analizzano tutti gli aspetti Molteplici possibilità di estensione e miglioramento Utilità da un punto di vista educativo e didattico della realizzazione di un progetto in cui emergano problematiche da risolvere in prima persona