Salta al contenuto principale
CODICE 101809
ANNO ACCADEMICO 2022/2023
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

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

Commissione d'esame

GIORGIO DELZANNO (Presidente)

MARINA RIBAUDO (Presidente)

MATTEO DELL'AMICO (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale 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 appello Orario Luogo Tipologia Note
06/02/2023 09:00 GENOVA Esame su appuntamento
26/06/2023 09:00 GENOVA Esame su appuntamento
22/09/2023 09:00 GENOVA Esame su appuntamento