TECNOLOGIE E APPLICAZIONI DEI SISTEMI DISTRIBUITI

Scheda dell'insegnamento

Anno accademico di regolamento: 
2017/2018
Anno di corso: 
2
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio a scelta
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Primo Semestre
Ore di attivita' didattica: 
57
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

Modalita' di verifica dell'apprendimento: 

L'esame consta di una prova scritta con domande aperte e chiuse (su argomenti di lezione e di laboratorio) del valore di punti 28.
Le domande aperte possono essere semplici esercizi sugli argomenti del laboratorio.
Struttura della prova scritta:
- parte generale: 10 domande chiuse + 2 aperte [10*2+2*4=28 punti)

Chi ha frequentato i laboratori può ottenere 5 punti supplementari così assegnati:
1 punto per la frequenza (>=75%)
1 punto per la partecipazione attiva (svolgimento delle esercitazioni in aula)
3 punti per lo svolgimento dell'esercizio finale (concordato con il docente)

L'esame può essere integrato da una prova orale su richiesta del docente e/o dello studente.
La prova orale può determinare un incremento o un decremento del voto dello scritto.

Prove in itinere
La prova scritta può essere sostituita dallo svolgimento di due prove in itinere.
Ciascuna prova è composta da domande aperte e chiuse, + semplici esercizi sugli argomenti del laboratorio per complessivi 33 punti.
L'accesso alla seconda prova si ottiene con un punteggio maggiore o uguale a 18 punti nella prima prova.
Il voto della prova scritta è dato dalla media delle due prove. Non sono previste prove di recupero.

VOTO FINALE = VOTO PROVA SCRITTA + PUNTI LABORATORIO (se frequentato) + (eventuale integrazione orale)

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 delle architetture 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 in relazione alla progettazione di applicazioni Web interattive.
Analizza in particolare come stanno evolvendo i paradigmi d’interazione e comunicazione nei nuovi scenari di "Cloud computing" e "Internet of Things - IoT". Il corso include una significativa parte pratica dedicata all’apprendimento dei principi base di programmazione con JavaScript e di sviluppo di applicazioni Ajax (HTML5, CSS3, JavaScript, JSON). Verranno introdotti i principali framework per lo sviluppo di interfacce e interazione in ambiente desktop e mobile.

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 applicazioni Ajax

Bibliografia consigliata

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

Metodi didattici

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