CLOUD COMPUTING AND DISTRIBUTED SYSTEMS

Anno accademico
2022/2023 Programmi anni precedenti
Titolo corso in inglese
CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
Codice insegnamento
CM0468 (AF:398279 AR:214921)
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.
L'esame consiste in uno scritto, seguito se necessario da un orale.
La prova scritta può essere sostituita da due prove intermedie che si tengono la prima durante lo svolgimento e la seconda al termine del corso.
Le prove riguardano un insieme di domande teoriche a risposta aperta o a scelte multiple, il cui scopo è testare la
padronanza della studente rispetto ai vari argomenti del corso, alla terminologia tecnica specifica e ai concetti fondamentali di progetto delle reti di calcolatori, o alcuni esercizi specifici sugli argomenti del corso al fine di valutare le competenze acquisite.
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 e laboratorio pratico di approfondimento.
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. Le domande possono essere a risposta aperta o a scelta multipla.
scritto e orale
Programma definitivo.
Data ultima modifica programma: 04/07/2022