CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
- Anno accademico
- 2021/2022 Programmi anni precedenti
- Titolo corso in inglese
- CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
- Codice insegnamento
- CM0468 (AF:354805 AR:185431)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- INF/01
- Periodo
- II Semestre
- Anno corso
- 1
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Progetto, architetture e tecnologie. Applicazioni cloud, qualità del servizio e sicurezza.
Comunicazione tra processi, invocazione remota e chiamata di procedura remota. Algoritmi per la sincronizzazione, coordinamento, condivisione dei dati, allocazione delle risorse, consistenza, tolleranza ai guasti. Replicazione, consistenza e controllo della concorrenza in sistemi transazionali. Casi di studio.
Risultati di apprendimento attesi
Conoscenza delle architetture, tecnologie e servizi in cloud computing.
Conoscenza di paradigmi di comunicazione e algoritmi di sincronizzazione, cooperazione e gestione della concorrenza in sistemi distribuiti.
Prerequisiti
Contenuti
Principi di progettazione di sistemi distribuiti. Tipi di sistemi distribuiti.
Comunicazione. Paradigma client-server e IPC. Comunicazione di gruppo. Comunicazione multicast. Virtualizzazione di rete.
Remote Method Invocation (RMI) e Remote Procedure Call (RPC). Tipi e semantiche. Comunicazione indiretta, paradigma publish-subscribe.
Fondamenti di cloud computing. Progettazione di cloud computing.
Meccanismi e architetture. Modelli, tecnologie e sicurezza.
Servizio Cloud e applicazioni. Metriche di qualità del servizio.
Service Oriented Architecture. Sicurezza nel cloud.
Sistemi operativi distribuiti. Processi: assegnazione e schedulazione, migrazione e bilanciamento del carico. Deadlock.
Allocazione di processi in sistemi distribuiti. Virtualizzazione del sistema operativo.
Distributed File System. Modelli di file service e di progettazione. Casi di studio: NFS, AFS. Caso studio: Google File System.
Sincronizzazione e coordinamento in sistemi distribuiti.
Algoritmi per la sincronizzazione, il coordinamento e la sincronizzazione accordo orologio, mutua esclusione, stato globale. Ordinamento causale.
Dati condivisi. Replicazione, consistenza e transazioni. Modelli di consistenza. Modelli architetturali di replicazione.
Transazioni e controllo della concorrenza in sistemi distribuiti. Transazioni distribuite. Mobilità in sistemi distribuiti.
Testi di riferimento
G. Coulouris, J. Dollimore and T. Kindberg, "Distributed Systems: concepts and design", 5th edition, Addison Wesley Masson, 2011.
T. Erl, R. Puttini, Z. Mahmood, “Cloud Computing: Concepts, Technology and Architecture”, Prentice-Hall, 2013.
Modalità di verifica dell'apprendimento
L'esame consiste in uno scritto, seguito se necessario da un orale. Lo scritto è eventualmente sostituibile da prove intermedie.
E' proposto agli studenti un approfondimento tematico su argomenti da concordare attinenti al programma.
Modalità di esame
Metodi didattici
Esercizi proposti e risolti in classe.
Approfondimenti di temi specifici e seminari.
Esercitazioni e laboratorio.
Altre informazioni
L'esame scritto include domande di tipo generale metodologico, e domande specifiche di descrizioni di algoritmi e tecniche di progettazione di sistemi distribuiti e sistemi cloud.
Obiettivi Agenda 2030 per lo sviluppo sostenibile
Questo insegnamento tratta argomenti connessi alla macroarea "Città, infrastrutture e capitale sociale" e concorre alla realizzazione dei relativi obiettivi ONU dell'Agenda 2030 per lo Sviluppo Sostenibile