CLOUD COMPUTING AND DISTRIBUTED SYSTEMS

Anno accademico
2023/2024 Programmi anni precedenti
Titolo corso in inglese
CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
Codice insegnamento
CM0468 (AF:451548 AR:245279)
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.
scritto e orale
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.
Programma definitivo.
Data ultima modifica programma: 23/02/2023