72667 - SISTEMI MIDDLEWARE

Scheda insegnamento

Anno Accademico 2017/2018

Conoscenze e abilità da conseguire

Al termine del corso, lo studente conosce i modelli architetturali, le principali problematiche, e gli aspetti peculiari dei sistemi distribuiti. È in grado di progettare ed implementare sistemi distribuiti prototipali e di familiarizzarsi con ambienti di "cloud computing" all'interno dei quali queste tecnologie sono impiegate. Particolare attenzione verrà rivolta a tecnologie di middleware e ambienti di cloud computing disponibili come Free Open Source Software.

Programma/Contenuti

Introduzione: caratterizzazione di un sistema distribuito, design, obiettivi, tipi di sistemi distribuiti, middleware e sistemi distribuiti.

Architetture: stili, organizzazione del middleware, organizzazione dei sistemi.

Comunicazioni: RPC, comunicazioni orientate ai messaggi, multicast.

Coordinazione: sincronizzazione di orologi, orologi logici e vettoriali, mutua esclusione, elezione, sistemi di localizzazione, event match distribuito, coordinazione basata su gossip.

Coerenza e replicazione: modelli incentrati sui dati e sui clienti, gestione delle repliche, protocolli di coerenza.

Tolleranza ai guasti: introduzione, resilienza, comunicazioni affidabili, commit distribuito, recupero.

Sicurezza:introduzione, canali sicuri, controllo degli accessi, gestione.

Testi/Bibliografia

A. S. Tanenbaum, M. van Steen; Distributed Systems Principles and Paradigms - Third Edition; Maarten van Steen; 2017

S. Mullender (Ed.); Distributed Systems (II edition); Addison-Wesley; 1994. [cap. 4, 5]

Metodi didattici

Lezioni e progetto

Modalità di verifica dell'apprendimento

Realizzazione di un progetto di gruppo su un argomento riguardante le tematiche del corso e concordato preventivamente con il docente. Il progetto di gruppo è tarato per circa un mese uomo a componente. Il progetto viene valutato sia per mezzo di una dimostrazione interattiva in laboratorio, in corso di esame, sia per mezzo di una documentazione consegnata alcuni giorni prima della data dell'esame. Le linee guida per la documentazione saranno disponibili all'inizio del corso. L'esame prosegue con una prova orale in cui si discutono gli aspetti peculiari del progetto realizzato. L'esame si conclude con una ulteriore prova orale in merito agli argomenti del corso

Strumenti a supporto della didattica

Non sono disponibili le slide di lezione. Saranno disponibili le animazioni.

Orario di ricevimento

Consulta il sito web di Alessandro Amoroso

Consulta il sito web di Fabio Panzieri