Laboratorio di Applicazioni Internet
Anno Accademico 2005/2006
Tito Flagella ([email protected])
Domenico Aquilino ([email protected])
Dipartimento di Informatica
Università di Pisa
Tito Flagella - [email protected]
Orario
• Mercoledì, 9 - 11
– Lezione, Aula B
oppure
– Esercitazione, Aula H e M
• Giovedì, 11 - 13
– Lezione, Aula A1
oppure
– Esercitazione, Aula H e M
• La scelta tra lezioni ed esercitazioni sarà comunicata di
volta in volta sulla mailing list del corso
Tito Flagella - [email protected]
Perché un corso sulle Applicazioni Internet
– Internet ha stravolto i precedenti paradigmi di sviluppo di
applicazioni distribuite
– La disponibilità di un ambiente di comunicazione globale ha
innescato l’esigenza di integrazioni applicative prima
semplicemente impensabili
– Il paradigma ad oggetti, ormai affermatosi in molti altri
campi, si è dimostrato solo parzialmente utilizzabile a causa
dei forti “vincoli ambientali” esistenti su Internet
– In una sola applicazione possono coesistere numerosi
linguaggi e altrettanti protocolli:
• Html, Javascript, Java, C++, IDL, …
• Http, SSL, IIOP, RMI, ODBC, JDBC,…
• XML, SOAP, WSDL, WS-*, …
– E non tutte le possibili combinazioni generano buone
applicazioni…
Tito Flagella - [email protected]
Perché un corso sulle Applicazioni Internet
• In definitiva Internet costituisce un ambiente
applicativo complesso, estremamente stimolante
dal punto di vista didattico
– Gli studenti hanno grande familiarità con questo
ambiente applicativo;
– L'ambiente è ampiamente esplorabile
• Qualche esempio:
– le prenotazioni sul sito Alitalia
– gli attacchi di tipo SQL Injection
– aspetti evoluti della gestione delle transazioni su
DB
Tito Flagella - [email protected]
Esempio: gli attacchi di tipo SQL Injection
user_input = request.getParam(“id_utente”)
sql_statement = “SELECT email
FROM users
WHERE email = “ + user_input;
Tito Flagella - [email protected]
Esempio: gli attacchi di tipo SQL Injection
sql_statement = “SELECT email
FROM users
WHERE email = 'pippo' OR 'x'='x';
Tito Flagella - [email protected]
Architettura Generale
Corba Objects
Documenti
Statici
Html,Javascript,
Applet Java
www.acquistalo
IIOP
Web Extension:
CGI, ASP, PHP,
JSP Servlet, …
DBMS
HTTP/HTTPS
Business
to
Business
Outbound
Firewall
SOAP
HTTP/HTTPS
Inbound
Firewall
Web Services
Html,WML
www.spediscilo
Sistemi
Legacy
Tito Flagella - [email protected]
Sistemi
Legacy
DBMS
Finalità del Corso
• Introdurre le principali architetture, protocolli e
strumenti di sviluppo per la realizzazione di
Applicazioni Internet
• Permettere agli studenti di esercitarsi nell'uso
degli stessi in una serie di esercitazioni
assistite ed in un progetto didattico
Tito Flagella - [email protected]
Argomenti: Architetture
• L'evoluzione delle architetture software: dai
mainframe al client/server a Internet
• I trend attuali nelle architetture applicative di
Internet
Tito Flagella - [email protected]
Argomenti: il Front-End Applicativo
• Introduzione alle tecnologie di base:
– il protocollo http
– l’ uso delle form in html per l’ interazione utente
all’ interno del browser
• Il Web server come portale Applicativo
– Introduzione a Java Servlet API come esempio di
Web Server Extensions;
– Introduzione a Java Server Pages come template
engine;
– Session Management: uso delle sessioni per la
gestione dell’ autenticazione in http.
Tito Flagella - [email protected]
Argomenti: il Back-End Applicativo
• Richiami sulla programmazione di transazioni
su RDBMS
• L'uso di JDBC per l'accesso a Database da
Java Servlet
• L'uso di connection pools per l’ accesso al DB
• L’ uso di CORBA/IDL per l’ accesso ai sistemi
legacy
Tito Flagella - [email protected]
Argomenti: L’ Integrazione Applicativa su
Internet
• L’ architettura Web Services
• Introduzione all’ uso di SOAP/WSDL per
l’ interazione tra applicazioni diverse
• Identity Management tra applicazioni
appartenenti a domini tra loro federati (scenari di
single sign on e delega)
Tito Flagella - [email protected]
Organizzazione delle Lezioni
• Lezioni:
– In piccola parte come presentazioni teoriche
– Il resto come introduzione o approfondimenti delle
esercitazioni
• Esercitazioni:
– gli studenti sono invitati a seguire traccie predefinite
per costruire autonomamente applicazioni minime
ma realmente funzionanti
– il principale risultato è far acquisire confidenza con
gli strumenti
Tito Flagella - [email protected]
Modalità d’esame
• E’ richiesta la realizzazione di un’applicazione Internet
con i seguenti requisiti:
– Interfaccia Utente realizzata all’interno del browser
– Estensioni Web realizzate come servlet, utilizzando JSP come
template engine
– Accesso al DB dal servlet via JDBC, utilizzando anche
transazioni non banali, in cui sia necessario gestire
manualmente il commit;
– Realizzazione di almeno una funzionalità dell’applicazione via
CORBA
– Realizzazione di almeno una funzionalità dell’applicazione via
Web Services
– Autenticazione dell’utenza tramite certificati X509
• L’applicazione viene infine dimostrata e discussa in una prova
orale individuale
Tito Flagella - [email protected]