Applicazioni Telematiche

Corso di Laurea Specialistica in Ingegneria Informatica

Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni

Prof. Roberto Canonico


Obiettivi formativi

Il corso si propone di fornire le nozioni teoriche e metodologiche di base per la progettazione e lo sviluppo di applicazioni telematiche, con particolare riferimento ai sistemi basati sul web ed alle applicazioni multimediali distribuite. Le applicazioni telematiche verranno studiate sia dal punto di vista dell’architettura software che dal punto di vista dei protocolli che definiscono le modalità di comunicazione.


A.A. 2006-07

Programma dettagliato delle lezioni svolte

Le slide delle lezioni verranno pubblicate in formato PDF dopo ciascuna lezione.

Lezione Data Slide / Riferimenti Argomenti
1 28/02/2007 Introduzione al Corso.
2 2/03/2007 Interazione Client-Server nel World Wide Web.
Protocollo HTTP: formato dei messaggi, meccanismi di autenticazione e di mantenimento di informazioni di sessione.
3 7/03/2007 Applicazioni multimediali distribuite e requisiti di Qualità del Servizio.
Protocolli a supporto dello streaming di flussi audio/video. Il protocollo RTP.
Il protocollo RTSP per il controllo di sessioni.
4 9/03/2007 Web Caching. Gestione della coerenza. Gerarchie di cache.
Content Delivery Networks. Infrastrutture e modelli di funzionamento di CDN.
5 14/03/2007 Web Server. Servizio di pagine statiche. Progetti open source per applicazioni web client e web server. Cenni all'architettura software ed alla configurazione di Apache web server. Configurazione dei meccanismi di autenticazione ed autorizzazione in Apache.
6 16/03/2007 Squid Web Cache: architettura software, funzionalità e configurazione. Access Control List (ACL). Esperimenti di analisi del traffico web in presenza di un proxy cache.
Sistemi di caching cooperativo. Protocollo ICP.
7 21/03/2007 Session Initiation Protocol (SIP) e suo utilizzo in applicazioni di Voice-Over-IP (VOIP). Architettura prevista da RFC3261. User Agent Client e Server, Proxy, Redirect Server, Registrar, Back-to-Back User Agent. Varie tipologie di proxy. Proxy stateless, transaction stateful e call stateful. Formato dei messaggi SIP. Session Description Protocol (SDP) e suo utilizzo in SIP.
8 23/03/2007 Introduzione al linguaggio di programmazione Java.
Prerequisiti: conoscenza dei concetti fondamentali della programmazione ad oggetti.
NOTA: Gli argomenti trattati in questa lezione sono da considerarsi al di fuori del programma del corso.
9 28/03/2007 Programmazione di applicazioni multimediali distribuite in Java mediante Java Media Framework (JMF).
La API di JMF. Trasmissione, ricezione e presentazione di stream RTP con JMF.
Esempi di programmi Java-JMF.
10 30/03/2007 Applicazioni web: programmazione client-side. JavaScript: caratteristiche del linguaggio ed esempi. Applet Java: ciclo di vita, ambiente di esecuzione, esempi.
Programmazione server-side. Form HTML ed invio dati mediante i metodi GET e POST di HTTP.
11 13/04/2007 Programmazione server-side con tecnica CGI. Esempi di programmi CGI in C ed in Tcl.
Java Servlet: ciclo di vita, modello di servizio, un esempio.
Installazione e configurazione del Web Container Apache Tomcat.
12 18/04/2007 Linguaggi di markup. Introduzione ad XML.
Sintassi XML. DTD e Schema. XSL.
13 20/04/2007 Parsing di documenti XML: DOM e SAX.
Trasformazioni XSL. Sintassi XPath. XSL processors.
Elaborazione di documenti XML in Java: API JAXP. Esempi.
14 27/04/2007 Architettura delle reti IMS. Elementi di rete principali della architettura: CSCF, HSS, SLF, MRF. Application Server. Sviluppo e deployment di applicazioni in reti IMS. Ambienti di esecuzione message-driven (Servlet Containers) ed event-driven (SLEE).
15 02/05/2007 Metodi per la gestione di sessioni d’utente in un’applicazione Web. Accesso a database da Java Servlet e Java Server Page. Esempi di applicazioni web con accesso a database mediante query SQL.
16 04/05/2007 Protocolli standard IETF per il conferencing multimediale su Internet.
17 09/05/2007 Dalle applicazioni Web ai Web Services. Service Oriented Architectures (SOA). Lo stack protocollare dei WS. WSDL.
18 11/05/2007 Introduzione alla tecnologia Java Server Pages (JSP).
JSP: ciclo di vita.
JSP: scriptlet, dichiarazioni ed espressioni. La direttiva page.
19 16/05/2007 Sviluppo e deployment di Web Services con Apache Tomcat ed Axis. Il Web Service Deployment Descriptor (WSDD). Deployment automatico di web service.
20 18/05/2007 Applicazioni peer-to-peer. Caratteristiche di un sistema p2p. Sistemi peer-to-peer non strutturati e strutturati. Gnutella: caratteristiche generali, protocollo e meccanismi di discovery. Meccanismi di discovery per sistemi peer-to-peer non strutturati: Query Caching, Expanding Ring, Query Routing, Random Walks. Sistemi peer-to-peer strutturati (cenni).
21 23/05/2007 Composizione di servizi web. Orchestrazione e coreografia di web services. Descrizione del workflow di un processo di business. Linguaggi per la composizione e coreografia di web services. BPEL4WS. Un engine per la composizione di web-services: ActiveBPEL.
22 25/05/2007 Applicazioni location-aware. Tecnologie, tecniche e metodi per la localizzazione.
L'architettura Secure User Plane Location (SUPL) della OMA.
Interfacce di programmazione per lo sviluppo di applicazioni location-aware.
La API Java JSR-179.
23 30/05/2007 Applicazioni peer-to-peer di file distribution.
Meccanismi di ricerca: server centralizzato, query flooding, query flooding con superpeer, structured overlay routing.
Reti P2P basate su DHT: Chord.
Analisi del funzionamento di BitTorrent.

Testi consigliati - relativamente al programma svolto finora...

Nota1: altri testi potranno essere consigliati durante il prosieguo del corso.

Nota2: i testi indicati sotto sono "consigliati". Purtroppo, nessuno dei testi indicati coprirà da solo l'intero programma svolto in questo corso. Altri sussidi didattici liberamente accessibili tramite il Web verranno indicati nelle note relative a ciascuna lezione.

  • Web Protocols and Practice: HTTP/1.1, Networking Protocols, Caching, and Traffic Measurement
    Balachander Krishnamurthy, Jennifer Rexford
    Addison-Wesley, 2001

Progetti software di interesse per il corso

  • The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
  • The Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance. It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types.

Software utile per sviluppare gli esercizi e gli elaborati proposti al corso

  • Apache Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies.
  • Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software.
  • Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

roberto.canonico at unina.it

Ultimo aggiornamento: 15 giugno 2007