PROGETTAZIONE DI SISTEMI DISTRIBUITI

ING-INF/05 - 9 CFU - 1° semestre

Docente titolare dell'insegnamento

ANTONELLA DI STEFANO


Obiettivi formativi

Tutti i sistemi software enterprise sono oggi sistemi distribuiti. Il corso si propone, di presentare in forma sistematica le problematiche fondamentali riguardanti la progettazione di sistemi distribuiti di grandi dimensioni nello scenario odierno, Lo scopo del corso è fornire conoscenze sulle moderne tecnologie in ambito distribuito, e soprattutto sviluppare nell’allievo le capacità di applicare algoritmi e metodologie di progetto fondamentali nella realizzazione di soluzioni complesse, su larga scala.

Più nel dettaglio, il corso mira a

1) fornire conoscenze su

2) sviluppare capacità applicative di tecnologie e strumenti di progettazione di sistemi distribuiti di grandi dimensioni negli scenari reali odierni.

3) acquisire competenze per il design, development e deployment di applicazioni nell' ambito di sistemi enterprise.

Verranno trattati problem solving tipici di SOA, P2P, CDN, Cloud e Fog Computing.


Modalità di svolgimento dell'insegnamento

Il metodo di insegnamento principale è la didattica frontale e le attività di laboratorio


Prerequisiti richiesti

linguaggi C e Java. Progettazione OO eUML. programmazione multithreading. Conoscenza di architetture e protocolli di rete, ed in particolare della suite TCP/IP. DNS. mySQL. Javascript e web programming. socket Java e/o BSD . Conoscenza delle tecniche di progettazione del software, e dei pattern fondamentali di GoF. conoscenze di base relative al management di sistemi UNIX-Like, basic Unix Bash programming, SSH, nmap, iptables, Iperf



Frequenza lezioni

la frequenza (70%) è richiesta solo agli studenti che intendano sostenere le prove in itinere (con o senza eventuale home-work) durante il corso



Contenuti del corso

Paradigmi, modelli e architetture software di sistemi di ampie dimensioni - multithreading vs virtualizzazione, Pattern per architetture sw distribuite, componenti, container e application server, sistemi multitier e distribuzione verticale ed orizzontale, Enterprise Systems (JEE), Service Oriented Architecture (WS e REST) e _aaS, microservizi e containerizzazione (Docker), message oriented systems (come MQTT o Rabbit MQ) , Sistemi P2P - Strutturati (DHT) e Non (flooding,es Gnutella), CDN, Cloud e Fog computing.

Comunicazione e localizzazione - C/S e Group communication. Multicast e Broadcast. Messaging systems. CallBack ed Event Notification, web socket.

Requisiti dei sistemi distribuiti interoperabilità, Qualità dei Servizi (QoS), Scalabilità, Tolleranza ai guasti e soluzioni, Data consistency.

Algoritmi distribuiti sistemi sincroni vs. asincroni, modelli di clock:,clock di Lamport e vector clock, event ordering e concorrenza, global snapshot; Fault tolerance. Classificazione dei fault: crash e byzantine, dependability e algoritmi di agreement in presenza di varie topologie di fault, fault detector. algoritmi cooperativi. Elezione. Mutua esclusione, deadlock detection. Transazioni distribuite, serializzabilità recuperabilità e commitment. Consistenza e Replicazione. Distribuzione delle repliche. Load Sharing. cenni di File System distribuiti e architetture Big Data.



Testi di riferimento

per le Tecnologie si consiglia di consultare direttamente i siti web indicati durante il corso


Altro materiale didattico

presente su Studium



Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

Modalità d esame per chi non svolge le prove in itinere

orale + progetto

il progetto non è obbligatorio: deve essere richiesto 30 giorni prima della prova orale, viene assegnato 20 giorni prima della prova orale e deve essere discusso contestualmente alla prova orale

chi non fa il progetto può sostenere soloa prova orale con una valutazione massima di 25/30

Modalità d esame per chi svolge le prove in itinere

sono previste delle prove in itinere durante l'erogazione del corso.

tipicamente consistono di discussione sulle tematiche teoriche e pratiche e attività di progetto (homework) relative agli argomenti, sia teorici che pratici ,trattati.

gli studenti potranno concordare se cimentarsi su homework oppure limitarsi ad una discussione orale degli argomenti trattati. Naturalmente in questultimo caso la valutazione sarà condizionata: la mancanza di homework limita il massimo raggiungibile nell valutazione a 26/30

le prove saranno in 2 tempi di verifica: una è prevista nel periodo di dicembre (la data può essere concordata) e una finale a completamento entro la data del 1o appello utile.




Apri in formato Pdf English version