Obiettivi formativi
Il corso intende fornire una conoscenza approfondita sulle tecniche e le tecnologie proprie dei sistemi distribuiti e sul loro utilizzo per lo sviluppo di sistemi software distribuiti.
Prerequisiti
Ingegneria del Software, Basi di Dati.
Contenuti dell'insegnamento
Introduzione. Architetture e modelli di calcolo. Middleware. Sincronizzazione e coordinazione. Replicazione. Tolleranza ai guasti. Sicurezza. Sistemi multi-agente. Modellamento e simulazione. Tecnologie di sviluppo. Applicazioni.
Programma esteso
Introduzione
Architetture e modelli di calcolo
Progettazione e analisi delle prestazioni
Linguaggi per la programmazione concorrente e distribuita
Middleware
Tecniche per la risoluzione dei nomi
Sincronizzazione e coordinazione
Replicazione
Tolleranza ai guasti
Sicurezza
Transazioni distribuite
Sistemi orientati ai servizi
Sistemi multi-agente
Modellamento e simulazione
Tecnologie di sviluppo
Applicazioni
Bibliografia
G. Coulouris, J. Dollimore, T. Kindber. Distributed Systems - Concepts and Design, Addison Wesley, Fifth Edition, 2012.
Metodi didattici
Il corso si basa su lezioni teoriche e esercizationi in laboratorio.
Modalità verifica apprendimento
Sono previste una prova teorica e una prova pratica.
Altre informazioni
- - -