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]