CREDITI
9 CFU, I semestre
LEZIONI
Lunedì 9:30-11:15, aula B13
Mercoledì 11:30-13:15, aula C3
Venerdì 9:30-11:15, aula B13
DOCENTI
Valeria Cardellini e Gabriele Russo Russo
ESAME
Scritto + progetto + orale facoltativo
LINK
[ Microsoft Teams ]
[ Delphi ]
[ DidatticaWeb ]
L'insegnamento si propone di fornire i principi, le metodologie e le tecnologie per la progettazione ed implementazione di sistemi distribuiti moderni, inclusi i sistemi distribuiti a larga scala ed i sistemi di Cloud computing. Durante il corso verranno coniugati aspetti metodologici e tecnologici, affrontando le principali problematiche e tecniche per lo sviluppo di sistemi distribuiti efficienti. In particolare, verranno approfonditi gli aspetti architetturali, i modelli di comunicazione tra i componenti di un sistema distribuito ed i corrispondenti middleware, le soluzioni per fornire sistemi scalabili e tolleranti ai guasti, le problematiche di coordinazione distribuita, replicazione e consistenza e le relativi soluzioni algoritmiche e tecniche, e la virtualizzazione dell'ambiente di esecuzione. Viene anche introdotto il linguaggio Go per la programmazione dei sistemi distribuiti. Il progetto proposto ha lo scopo di consolidare ed approfondire la preparazione teorica, metodologica e tecnologica sui temi affrontanti nel corso.
La didattica è svolta esclusivamente in presenza.
La classe virtuale su Teams è utilizzata per condividere il materiale del corso, gli avvisi e le informazioni.
(specificare [SDCC] nell'oggetto della mail)
(specificare [SDCC] nell'oggetto della mail)
Introduzione ai sistemi distribuiti
Introduzione al Cloud computing
Architetture per sistemi distribuiti
Sistemi distribuiti auto-adattativi
Comunicazione nei sistemi distribuiti
Introduzione alla programmazione in Go
Virtualizzazione
Architetture a microservizi e serverless
Sincronizzazione nei sistemi distribuiti
Mutua esclusione ed elezione nei sistemi distribuiti
Consistenza e replicazione nei sistemi distribuiti
Consenso nei sistemi distribuiti
Hands-on Cloud Computing Services
| Argomento | Slide | Data lezione |
|---|---|---|
| Organizzazione del corso | Organization.pdf |
21/9 |
| Introduzione ai SD | DS_Introduction.pdf | 21/9, 23/9, 25/9 |
| Introduzione al Cloud computing | Cloud_Introduction.pdf | 25/9 |
Ciclo di lezioni pratiche dedicato ai principali servizi Cloud di Amazon Web Service e agli strumenti per la loro configurazione e automazione.
| Argomento | Slide | Ultima modifica |
|---|
SUN RPC
square: sun-rpc_square.zip
Java RMI
echo: rmi_echo.zip
Remote Python Call
rpyc.zip
Go
Introduzione a Go: go-introduction.zip
RPC in Go: gorpc_arith.zip
gRPC
gRPC in Go: grpc-go_examples.zip
Esempi RabbitMQ
Hello in Go, worker in Go: rabbitmq-go.zip
Esempi Kafka
Using Kafka Command Line Interface (CLI): kafka-CLI_examples.pdf
In questa sezione, sono indicati articoli e video utili per approfondire ed integrare gli argomenti trattati a lezione.
Gli articoli sono suddivisi in base agli argomenti del corso e la loro lettura è consigliata.
[ Articoli ] [ Video ]
La prova scritta verte sugli argomenti dell'intero corso e prevede domande a risposta aperta ed esercizi.
Si raccomanda di sostenere la prova scritta prima del progetto.
In alternativa alla prova scritta, si terranno due prove scritte intermedie. Tali prove intermedie possono essere sostenute soltanto dagli studenti immatricolati al primo anno della Laurea Magistrale nell'A.A. 2026/27 e dagli studenti immatricolati in anni precedenti e che optano per il programma dell'A.A. 2026/27.
Se entrambe le prove intermedie saranno superate positivamente, verrà proposto un voto finale per la prova scritta.
Non è possibile recuperare le prove intermedie in modo parziale.
Non ci sono vincoli sulla partecipazione alle prove
(eccetto la prenotazione obbligatoria per le prove scritte).
Tuttavia, la partecipazione ad una prova scritta comporta la rinuncia automatica
ad un voto sufficiente conseguito in una prova scritta precedente.
Prove scritte di anni precedenti: SDCC_PastExams.zip
Le tracce dei progetti sono suddivise in due modalità, corrispondenti a due diversi pesi del progetto nella valutazione finale e a due differenti composizioni dei gruppi:
Per il ciclo di lezioni "Hands-on Cloud Computing Services" e la realizzazione del progetto, è possibile usufruire del grant offerto da Amazon Web Services tramite un Learner Lab del programma AWS Academy. Le istruzioni per l'accesso al Learner Lab saranno fornite sul canale Teams e l'invito per accedere al Learner Lab inviato sulla mail istituzionale degli studenti iscritti al corso.
Negli anni passati alcuni hanno svolto il loro progetto in gruppo partecipando a competizioni internazionali o nazionali, tra cui:
La prova orale è facoltativa e verte su tutto il programma del corso.
E' possibile sostenere la prova orale facoltativa in un appello diverso da quello in cui si è sostenuto la prova scritta, purchè nella stessa sessione.
E' possibile sostenere la prova scritta e l'eventuale prova orale in una stessa sessione e posticipare la discussione del progetto ad un'altra sessione.