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
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, 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
Sono proposti esercizi a lezione.
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.

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: 19/06/2024