Sistemi distribuiti e pervasivi
A.A. 2018/2019
Obiettivi formativi
Obiettivo del corso e' quello di illustrare i fondamenti dei sistemi distribuiti moderni permettendo una profonda comprensione delle problematiche coinvolte nella progettazione di sistemi di cloud computing e più in generale di sistemi complessi formati da nodi eterogenei con capacità di calcolo e comunicazione.
Il corso si propone anche di introdurre gli studenti ai sistemi pervasivi come particolari sistemi distribuiti ai quali partecipano come nodi smart objects e reti di sensori.
Il corso si propone anche di introdurre gli studenti ai sistemi pervasivi come particolari sistemi distribuiti ai quali partecipano come nodi smart objects e reti di sensori.
Risultati apprendimento attesi
Non definiti
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Linea Milano
Responsabile
Periodo
Secondo semestre
STUDENTI FREQUENTANTI
Programma
Introduzione
Definizione di sistema distribuito e sistema pervasivo.
Concetti di Trasparenza e scalabilità.
Tipi di sistemi distribuiti (Cluster, Grid, Cloud, Edge, ...)
1a parte: le basi dei sistemi distribuiti
Architetture dei sistemi distribuiti e pervasivi. Sistemi client-server multilivello. Sistemi peer-to-peer, Reti di sensori e smart objects
Le basi della comunicazione in ambiente distribuito. Modelli di comunicazione. Comunicazione orientata ai messaggi; RPC/RMI; Web Service, comunicazione orientata agli stream.
Cooperazione e sincronizzazione: orologi fisici e logici; algoritmi di elezione e mutua esclusione
Consenso distribuito e Distributed Ledger (blockchain e sue applicazioni)
Case study: Google distributed system technologies
2a parte: sistemi pervasivi e applicazioni
Tipologie e architetture di sistemi pervasivi
Rappresentazione e trattamento di dati provenienti da sensori
Context-awareness e adattività
3a parte: Sicurezza e Privatezza nei sistemi distribuiti e pervasivi
ESERCITAZIONI
Sviluppo di sistemi distribuiti (Java, Web service REST, gRPC)
Sviluppo di semplici sistemi distribuiti pervasivi
Guida al progetto.
Definizione di sistema distribuito e sistema pervasivo.
Concetti di Trasparenza e scalabilità.
Tipi di sistemi distribuiti (Cluster, Grid, Cloud, Edge, ...)
1a parte: le basi dei sistemi distribuiti
Architetture dei sistemi distribuiti e pervasivi. Sistemi client-server multilivello. Sistemi peer-to-peer, Reti di sensori e smart objects
Le basi della comunicazione in ambiente distribuito. Modelli di comunicazione. Comunicazione orientata ai messaggi; RPC/RMI; Web Service, comunicazione orientata agli stream.
Cooperazione e sincronizzazione: orologi fisici e logici; algoritmi di elezione e mutua esclusione
Consenso distribuito e Distributed Ledger (blockchain e sue applicazioni)
Case study: Google distributed system technologies
2a parte: sistemi pervasivi e applicazioni
Tipologie e architetture di sistemi pervasivi
Rappresentazione e trattamento di dati provenienti da sensori
Context-awareness e adattività
3a parte: Sicurezza e Privatezza nei sistemi distribuiti e pervasivi
ESERCITAZIONI
Sviluppo di sistemi distribuiti (Java, Web service REST, gRPC)
Sviluppo di semplici sistemi distribuiti pervasivi
Guida al progetto.
Propedeuticità
Sistemi operativi, programmazione, reti, mobile computing, reti wireless e mobili
Prerequisiti
Esame scritto con domande a risposta multipla su tutti gli argomenti principali del programma, oltre ad una parte a risposte aperte con domande ed esercizi.
Per conseguire il voto finale lo studente deve prima passare l'esame di teoria e poi consegnare e discutere un progetto software. La progettazione e lo sviluppo del progetto viene guidato nelle fasi iniziali durante le esercitazioni in aula. In questo modo il superamento dell'esame accerta sia l'apprendimento dei concetti logici fondamentali che l'acquisizione di abilità pratiche di progettazione e sviluppo di sistemi distribuiti e pervasivi.
Per conseguire il voto finale lo studente deve prima passare l'esame di teoria e poi consegnare e discutere un progetto software. La progettazione e lo sviluppo del progetto viene guidato nelle fasi iniziali durante le esercitazioni in aula. In questo modo il superamento dell'esame accerta sia l'apprendimento dei concetti logici fondamentali che l'acquisizione di abilità pratiche di progettazione e sviluppo di sistemi distribuiti e pervasivi.
Metodi didattici
Lezioni frontali ed esercitazioni al computer per lo sviluppo guidato di un progetto.
Materiale di riferimento
STUDENTI NON FREQUENTANTI
Distributed Systems: Concepts and Design, 5/e, Coulouris, Dollimore, Kindberg & Blair, Addison-Wesley, 2012, ISBN-10: 0132143011
Programma
Il programma non cambia per i non frequentanti.
Docente/i