CLOUD COMPUTING AND DISTRIBUTED SYSTEMS

Anno accademico
2020/2021 Programmi anni precedenti
Titolo corso in inglese
CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
Codice insegnamento
CM0468 (AF:332747 AR:175894)
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
Introduzione ai sistemi distribuiti e cloud computing.
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.
Conoscenza dei principi di progettazione di sistemi distribuiti e cloud computing.
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.
Conoscenze di programmazione, architetture di sistemi di elaborazione, reti di calcolatori e sistemi operativi.
Fondamenti. Introduzione ai sistemi distribuiti e cloud computing. Modelli architetturali, classificazione e progettazione.
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.
Libri di testo
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.
Sono proposti esercizi a lezione.
E' proposto agli studenti un approfondimento tematico su argomenti da concordare attinenti al programma.
Lezione. Esercizi proposti e risolti in classe. Approfondimenti di temi specifici e seminari. Esercitazioni.
Inglese
L'esame valuta la conoscenza della materia, la capacità dello studente di applicare i metodi e principi di progettazione studiati.
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.
scritto e orale
Programma definitivo.
Data ultima modifica programma: 04/05/2020