Distributed Systems

Master's Programme: Computer Systems and Networks

Lavagna distribuita semplice

Un programma che gira su diverse macchine, dove i client postano su qualsiasi server usando un browser web, memorizza tutti i dati ricevuti, diffonde i dati appena ricevuti: a tutte le altre schede e in modo peer-to-peer.

Codice e descrizione completa (in inglese)


Lavagna distribuita - versione centralizzata

Ogni post è inviato al leader che lo distribuisce alla rete. Il leader dovrebbe essere in grado di gestire correttamente più post di diversi nodi.

Codice e descrizione completa (in inglese)


Lavagna consistente alla fine

Tutte le repliche alla fine convergono allo stesso valore, un protocollo per consistenza finale: le scritture vengono infine applicate in ordine totale (stesso ordine su tutte le repliche, portano allo stesso valore, consistenza finale) e le letture potrebbero non vedere le scritture più recenti in ordine totale.

Codice e descrizione completa (in inglese)


Accordo bizantino

N navi, ciascuna generale controlla una nave, per ogni generale (nave): decide su un profilo "onesto" o "bizantino", i generali onesti decidono un voto "attacco" o "ritiro", avvia l'algoritmo di accordo bizantino su tutti generali, attraverso un'interfaccia web. Quando l'algoritmo termina, il risultato e il vettore risultante dovrebbero apparire in ogni pagina web (all'aggiornamento): i generali onesti dovrebbero essere d'accordo sugli stessi voti tra di loro, non è richiesto alcun accordo per i generali bizantini.

Codice e descrizione completa (in inglese)