La Rivoluzione di Internet
Transcript
La Rivoluzione di Internet
Laboratorio di Applicazioni Internet Anno Accademico 2007/2008 Tito Flagella ([email protected]) Lorenzo Nardi ([email protected]) Dipartimento di Informatica Università di Pisa Tito Flagella - [email protected] Orario • Martedì, 14 - 16 – Lezione, Aula B oppure – Esercitazione, Aula H e M • Mecoledì, 11 - 13 – Lezione, Aula B 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 Tito Flagella - [email protected] 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 protocollo Http • Introduzione alle tecnologie di base – – – – il protocollo http L'uso del protocollo http sul lato client L'uso del protocollo http sul lato server Sessioni Tito Flagella - [email protected] Argomenti: Le Architetture SOA • Introduzione a XML per la rappresentazione dei dati nelle applicazioni Web • L’architettura Web Services • Introduzione all’uso di SOAP/WSDL per la realizzazione di client e servizi Web • Introduzione alle infrastrutture Web Services: – realizzazione di nodi intermedi – uso dei servizi infrastrutturali (WS-*) Tito Flagella - [email protected] Argomenti: il Web 2.0 • La definzione di Web 2.0 • L'uso dei Web Services nel Web 2.0 • Introduzione ai Mashup Tito Flagella - [email protected] Argomenti: la persistenza dei dati • Uso del DB nelle Applicazioni Web – Richiami sull'uso delle Transazioni – Uso dei pool – Attacchi di SQL Injection – Esempi in Java • Le Transazioni Distribuite – Transazioni su risorse multiple (XA) – Transazioni su http (WS-Transaction) Tito Flagella - [email protected] Argomenti: aspetti di sicurezza • La Sicurezza in ambito Web: – Sicurezza a livello Trasporto – Sicurezza a livello Messaggio • Introduzione all'uso del protocollo https • Introduzione all'uso dello standard WS-Security Tito Flagella - [email protected] Organizzazione delle Lezioni • Lezioni – In 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 alcuni requisiti precisi da rispettare – Avere un'applicazione Internet funzionante non è condizione sufficiente per superare l'esame – Deve trattarsi di un'applicazione in linea con i pattern analizzati durante il corso – Le funzionalità sono a scelta dello studente, i pattern da utilizzare sono prefissati Tito Flagella - [email protected] I requisiti del Progetto • deve trattarsi di un'applicazione a scambio di messaggi, basata su http • l'applicazione prevedere la presenza di vari nodi applicativi con ruoli diversi; le operazioni esposte da ogni nodo ed i messaggi scambiati devono essere descritti nel linguaggio WSDL, usando schemi xsd per la definizione dei messaggi • l'applicazione deve prevedere almeno due nodi infrastrutturali con funzione di sicurezza • i nodi applicativi devono realizzare la persistenza dei dati su DBMS relazionale tramite JDBC, utilizzando le tecniche transazionali analizzate nel corso. Un'esempio di Applicazione •La Prova d'Esame • Il progetto viene dimostrato e discusso in una prova orale individuale • Il progetto può essere realizzato individualmente o in gruppi di 2 studenti • La discussione è comunque individuale e gli studenti dovranno essere in grado di giustificare durante la discussione tutte le scelte progettuali di cui sopra, alla luce di quanto analizzato durante le lezioni e le esercitazioni