DISTRIBUTED DEPENDABLE SYSTEMS

iten
Codice
101809
ANNO ACCADEMICO
2021/2022
CFU
9 cfu al 2° anno di 10852 COMPUTER SCIENCE (LM-18) GENOVA
SETTORE SCIENTIFICO DISCIPLINARE
INF/01
LINGUA
Inglese
SEDE
GENOVA (COMPUTER SCIENCE )
periodo
1° Semestre
materiale didattico

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Learning how to design high quality distributed systems, ranging from classical client-server to peer-to-peer and blockchain-based systems, and applying classical mathematical tools to measure reliability, availability, and fault tolerance.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Obiettivo principale di questo corso è comprendere quando ha senso passare da sistemi centralizzati a sistemi distribuiti e alcune delle scelte chiave nella loro progettazione, tenendo conto di attributi quali disponibilità, affidabilità, tolleranza ai guasti. Durante il corso verranno presentati esempi di sistemi distribuiti, in particolare sistemi peer-to-peer e applicazioni basate su blockchain.

PREREQUISITI

Per seguire con successo questo corso, gli studenti devono già conoscere:

  • strutture dati e algoritmi di base
  • le architetture client-server
  • i protocolli di rete
  • i principali argomenti di base di sicurezza informatica

Per le attività pratiche è necessario avere buone capacità di programmazione.

MODALITA' DIDATTICHE

Lezioni, esercitazioni pratiche e studio a casa.

PROGRAMMA/CONTENUTO

Ti serve davvero un sistema distribuito? Pro e contro nella scelta:

  • Scalabilità verticale e orizzontale
  • Costi di comunicazione

Gestione dei dati distribuiti

  • Replicazione
  • Codici a cancellazione e codici fontana

Rendere coerenti i sistemi

  • Il consenso bizantino
  • Approcci moderni (ad es. Google's Spanner)

Rendere veloci i sistemi: progettazione di sistemi di successo

  • MapReduce e Hadoop
  • Spark e Reliable Distributed Datasets

Rendere decentralizzati i sistemi: peer-to-peer

  • Ricerca dei dati nei sistemi peer-to-peer
  • Incentivi alla cooperazione

Consenso per i sistemi peer-to-peer: blockchain e registri distribuiti

  • Hai davvero bisogno di una blockchain?
  • Bitcoin e Proof-of-Work
  • Modelli di consenso alternativi
  • Ethereum: cosa c'è dietro al computer più lento del mondo

TESTI/BIBLIOGRAFIA

Durante il corso verranno suggeriti articoli scientifici sugli argomenti trattati durante le lezioni.

DOCENTI E COMMISSIONI

Ricevimento: La docente riceve su appuntamento presso il DIBRIS, studio numero 231, 2 piano, Via Dodecaneso 35, Genova. In caso di didattica a distanza il ricevimento avviene su Teams. E-mail: marina.ribaudo@unige.it    

Commissione d'esame

MARINA RIBAUDO (Presidente)

MATTEO DELL'AMICO

LEZIONI

MODALITA' DIDATTICHE

Lezioni, esercitazioni pratiche e studio a casa.

Orari delle lezioni

L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

ESAMI

MODALITA' D'ESAME

Esame orale e discussione delle esercitazioni proposte durante il corso.

MODALITA' DI ACCERTAMENTO

Per ogni esercitazione verrà valutata la qualità del codice e del report, per capire le competenze tecniche acquisite dallo studente.
La prova orale sugli argomenti teorici presentati durante il corso completa l'esame.

Calendario appelli

Data Ora Luogo Tipologia Note