CODICE 86799 ANNO ACCADEMICO 2020/2021 CFU 6 cfu anno 2 INGEGNERIA INFORMATICA 8733 (LM-32) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Italiano SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso si propone di fornire conoscenze sulle problematiche relative alla realizzazione di sistemi di elaborazione distribuiti e ad elevata scalabilità e affidabilità. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Il corso si propone di descrivere i principi, le tecnologie e gli algoritmi sui quali è basata l'architettura dei servizi su rete Internet e in generale in tutti i sistemi distribuiti. In particolare i contenuti del corso sono: 1. Caratterizzazione dei Sistemi Distribuiti 2. Metodi e strumenti di sincronizzazione (sincronizzazione di clock logici e fisici, mutua esclusione distribuita, algoritmi e protocolli per l'elezione di leader). Caso di studio: Hyperledger permissioned Blockchains 3. Metodi e strumenti per la consistenza dei sistemi distribuiti (piattaforme data centric, piattaforme client centric, protocolli per la consistenza). Caso di studio: piattaforma di collaborazione MS Office Online 4. Resilienza dei sistemi distribuiti (process pooling distribuito e sua resilienza, servizi di trasmissione dati affidabili, operation commit distribuito, ripristino di sistemi compromessi). Caso di studio: Piattaforma Google per calcolo e storage distribuito, Data Stores distribuiti. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine del corso l'allievo sarà in grado di affrontare la progettazione e realizzazione di reti complesse in un contesto di rete pubblica sia in contesti di rete privata e la progettazione di sistemi e applicazioni basati sulle piattaforme informatiche ad elevata scalabilità e affidabilità. MODALITA' DIDATTICHE Lezioni ed esercitazioni PROGRAMMA/CONTENUTO Contenuti essenziali: 1. Distributed systems characterization 2. Coordination of distributed systems Physical and logical clock synchronization Distributed mutual exclusion Election algorithms and protocols 3. Consistency of distributed systems Data centric systems Client centric systems Consistency protocols 4. Resilience of distributed systems Distributed process pooling and resilience Reliable distributed communication services Distributed operation commit Recovery of faulty systems 5. Case studies Hyperledger permissioned blockchains Google distributed storage and computation In memory Distributed Data Store Office online collaboration platforms TESTI/BIBLIOGRAFIA Bibliografia: M. van Steen, A. tanenbaum, Distributed Systems Third Ed. 2017 G. Coulouris, J. Dollimor, T. Kindberg, G. Blair, Distributed Systems: Concepts and Desing, 5th editionby 2012 Materiale didattico disponibile su aulaweb. DOCENTI E COMMISSIONI PIERPAOLO BAGLIETTO Ricevimento: su appuntamento da richiedere via email: pierpaolo.baglietto@unige.it Commissione d'esame PIERPAOLO BAGLIETTO (Presidente) ALBERTO GIORDANO MASSIMO MARESCA (Presidente Supplente) LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Progetto didattico e orale MODALITA' DI ACCERTAMENTO capacità di risolvere semplici problemi di progettazione e di programmazione sugli argomenti del corso conoscenza degli argomenti trattati a lezione e capacità di analisi e discussione delle tematiche trattate Calendario appelli Data appello Orario Luogo Tipologia Note 14/01/2021 09:30 GENOVA Orale 11/02/2021 09:30 GENOVA Orale 14/06/2021 09:00 GENOVA Orale 28/06/2021 09:00 GENOVA Orale 16/07/2021 09:00 GENOVA Orale 10/09/2021 09:00 GENOVA Orale