CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
- Anno accademico
- 2024/2025 Programmi anni precedenti
- Titolo corso in inglese
- CLOUD COMPUTING AND DISTRIBUTED SYSTEMS
- Codice insegnamento
- CM0468 (AF:513718 AR:286750)
- 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, 2012.
T. Erl, R. Puttini, Z. Mahmood, “Cloud Computing: Concepts, Technology and Architecture”, Prentice-Hall, 2014.
[T] M.van Steen, A.S.Tanenbaum, DistributedSystems: Principles and Paradigms, 4rd edition, 2023
Modalità di verifica dell'apprendimento
L'esame consiste in uno scritto, seguito da un orale opzionale se necessario.
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.
Per quanto riguarda la gradazione del voto (modalità con cui saranno assegnati i voti):
1. punteggi nella fascia 18-22 verranno attribuiti nel caso di risposte alla prova scritta e orale che indichino una sufficiente conoscenza e comprensione delle tematiche affrontate nel corso; contenuta capacità di elaborare soluzioni autonome e applicazione dei metodi studiati; contenuta abilità nella esposizione dei metodi e soluzioni.
2. punteggi nella fascia 23-26 verranno attribuiti nel caso di risposte alla prova scritta e orale che indichino una discreta conoscenza e comprensione delle tematiche affrontate nel corso; discreta capacità di elaborare soluzioni autonome e applicazione dei metodi studiati; discreta abilità nella esposizione dei metodi e soluzioni e capacità di creare connessioni fra argomenti studiati.
3. punteggi nella fascia 27-30 verranno attribuiti nel caso di risposte alla prova scritta e orale che indichino una buona o ottima conoscenza e comprensione delle tematiche affrontate nel corso; buona o ottima capacità di elaborare soluzioni autonome e applicazione dei metodi studiati; buona o ottima abilità nella esposizione dei metodi e soluzioni e capacità di creare connessioni fra argomenti studiati.
4. la lode verrà attribuita solo in presenza di dimostrazione di ottima conoscenza, capacità di comprensione con riferimento al programma, ottima capacità di collegare argomenti e illustrare con ottime abilità comunicative.
Metodi didattici
Esercizi proposti e risolti in classe.
Approfondimenti di temi specifici e seminari.
Esercitazioni e laboratorio pratico di approfondimento.
Lingua di insegnamento
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. Le domande possono essere a risposta aperta o a scelta multipla.