1 Concetti fondamentali: definizioni e proprietà caratteristiche; modelli client-server e peer-to-peer; Architetture software (layers vs tiers); nomi, identificatori e indirizzi (URI e DNS); Message Oriented Communication: modelli persistenti e transienti. Modelli push e pull.
2 "Tecnologie di base
Socket TCP/IP: client server e protocolli applicativi. I modelli client/server e peer-to-peer. Comunicazione basata su chiamata di procedura: Remote Procedure Call (RPC) e Remote Object Invocation (Java RMI)."
3 "Applicazioni Web
Web Foundations (URI & HTTP) HTTP request/response. Web applications: servlet/JSP Pattern MVC2. Client Web: Browser: Rich Interface Applications (Ajax).
Web services: REST e Web API vs WSDL/SOAP."
4 "Argomenti monografici
Sistemi distribuiti mobili: Android. Semantic Web Services: Service annotation."
5 "Applicazioni web dinamiche:
Introduzione a JavaScript; introduzione al framework jQuery; jQuery e tecniche AJAX
Esempi di applicazioni web: esempi base JavaScript, debugging, modifica dinamica di una pagina, invocazione di servizi remoti (es. Google Maps)"
6 "Rappresentazione dei dati
HTML5 & CSS come modello per la rappresentazione e presentazione dei dati
XML/ JSON come modello per il trasferimento dei dati
RDF come modello di dati per il web semantico
SPARQL come linguaggio di query per il web semantico
Esempi di applicazioni di web semantico: interrogazioni a DBPedia e altri end-point SPARQL, piccoli mashup (es. visualizzazione su Google Maps di dati da DBPedia)"
7 "Programmazione concorrente a memoria condivisa
Programmi basati su thread in Java
Modellazione con automi a stati finiti
Sincronizzazione e monitor
"
8 "Algoritmi distribuiti
Orologi logici scalari e vettoriali
Cenni ai principali algoritmi: sincronizzazione, mutua esclusione, elezione, rilevamento dei fallimenti"