72667 - SISTEMI MIDDLEWARE

Scheda insegnamento

  • Docente Alessandro Amoroso

  • Crediti formativi 6

  • SSD INF/01

  • Modalità didattica Convenzionale - Lezioni in presenza

  • Lingua di insegnamento Inglese

  • Orario delle lezioni dal 26/09/2018 al 13/12/2018

SDGs

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.

Istruzione di qualità Partnership per gli obiettivi

Anno Accademico 2018/2019

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.

Il libro di testo può essere liberamente scaricato (personalizzato).

Orario di ricevimento

Consulta il sito web di Alessandro Amoroso