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