Salta al contenuto principale della pagina

DISTRIBUTED COMPUTING

CODICE 101809
ANNO ACCADEMICO 2022/2023
CFU
  • 9 cfu al 1° anno di 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 9 cfu al 2° anno di 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 6 cfu al 1° anno di 10852 COMPUTER SCIENCE (LM-18) - GENOVA
  • 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 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
    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