TECNOLOGIE E APPLICAZIONI DEI SISTEMI DISTRIBUITI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2016/2017
Anno di corso: 
2
Anno accademico di erogazione: 
2017/2018
Tipo di attività: 
Obbligatorio a scelta
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
56
Prerequisiti: 

E’ opportuno che lo studente possegga conoscenze di base di informatica e di funzionamento delle reti. Nella parte introduttiva del corso saranno comunque definiti i concetti e i modelli base per favorire chi non ha una formazione informatica.

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

La verifica dell'apprendimento avviene con un questionario con domande a risposta aperta o chiusa e colloquio obbligatorio. Possibilità di svolgere progetti di approfondimento.

Valutazione: 
Voto Finale

Obiettivi formativi

Lo scopo del corso è fornire allo studente gli elementi fondamentali per comprendere e progettare applicazioni Web collaborative e a servizi. Al termine del corso lo studente conoscerà i principali modelli di sistemi distribuiti basati su tecnologia Web e le caratteristiche fondamentali dei linguaggi e degli strumenti per la loro realizzazione. Con questo bagaglio di conoscenze sarà in grado di analizzare sistemi esistenti e partecipare alla progettazione di sistemi innovativi.

Contenuti

Le attuali applicazioni distribuite utilizzano il Web come piattaforma di riferimento e il concetto di servizio come metafora per la realizzazione di componenti autonomi che realizzano le funzionalità necessarie. Il corso studia i principi e i modelli delle tecnologie software distribuite e il loro impatto sulla progettazione delle applicazioni di "Cloud Computing" e "Internet of Things" (IoT). Analizza in particolare come stanno evolvendo i paradigmi d’interazione e comunicazione in questi nuovi scenari. Il corso include una parte pratica dedicata all’apprendimento dei principi base di programmazione con JavaScript e allo sviluppo di semplici applicazioni Ajax (HTML5, CSS3, JavaScript, JSON).

Programma esteso

• Introduzione al corso. Evoluzione di Internet e del Web: convergenza di reti, device e applicazioni. Richiami dei concetti fondamentali di comunicazione con Internet e il Web. Il protocollo HTTP e le applicazioni Web (Servlet/JSP). Il modello architetturale REST (Web API): Web of Services, Web of Data, e Web of Things.
• Sistemi service-oriented: Definizione di servizio, modelli organizzativi a servizi, architettura dei sistemi orientati ai servizi (SOA). Processi di business e servizi. Modelli e principi di cloud e fog computing e loro impatto sul piano organizzativo e di architettura delle soluzioni: i modelli di "system of records" e "system of engagement". Principi e tecnologie dei sistemi di engagement: mobilità e interfacce attive Ajax.
• Scambio di informazioni: cenni di sintassi e semantica dei formati (XML, JSON, Linked Data, RDF). Descrizione e annotazione di servizi e sorgenti dati: proprietà funzionali, non-funzionali e comportamentali. Scoperta e composizione (mashup) automatica dei servizi.
• Architetture a servizi per ecosistemi “smart”: smart city, smart building, smart mobility, ecc. Principi di interoperabilità di IoT e altri tipi di sistemi (cenni).
• Progettazione di interfacce e interazione: tecnologie Ajax (HTML5, CSS3, JavaScript). Introduzione alla programmazione in JavaScript. Realizzazione di semplici applicazioni Ajax.

Bibliografia consigliata

Non c’è un unico testo di riferimento. Verranno indicati articoli e risorse sul sito di elearning.

Metodi didattici

Il corso prevede lezioni ed esercitazioni in aula con attività di studio individuale supportate da materiali didattici in e-learning.