Linee guida progetto


Per affrontare l'esame è richiesta la realizzazione di un progetto, singolarmente o in gruppi di due studenti.

Il progetto può essere svolto su un tema a piacere ma deve rispettare alcuni vincoli tecnologici, corrispondenti ai principali argomenti oggetti del corso. In particolare, il progetto consiste nella realizzazione di un'applicazione Internet aderente all'architettura applicativa analizzata durante il corso, che rispetti i seguenti requisiti.

  • Deve trattarsi di un'applicazione a scambio di messaggi, basata su http/s; non e' richiesta la presenza di un'interfaccia grafica ma solamente di interazioni command-line;

  • Devono essere realizzati almeno due Web Service, il primo basato sulla gestione manuale del messaggio SOAP, come mostrato nell'Esercitazione JAX-WS Message Level, il secondo implementato usando metodi Java, partendo dall'uso del tool WSDL2Java per generare l'interfaccia Java del servizio, come mostrato nell'Esercitazione WSDL.

    Per ognuno dei Web Service, dovranno essere forniti in allegato al progetto una breve relazione contenente gli schemi xsd dei messaggi coinvolti nella comunicazione, una documentazione essenziale degli schemi e alcuni esempi di messaggi xml aderenti allo schema. Il WSDL dovrà prevedere un encoding di tipo wrapped document/literal.

  • Deve essere previsto almeno un componente applicativo di tipo servlet che funga da nodo intermedio (Proxy) nelle comunicazioni SOAP. Tale componente deve prelevare il messaggio dalla richiesta per individuare il servizio destinatario a partire dal contenuto XML, come visto nell'Esercitazione Proxy, e inoltrare la richiesta al servizio individuato.

  • Deve essere previsto almeno un fruitore dei servizi (Client). Puo' essere un'applicazione java standalone pilotata da opzioni della command-line o un servlet gestito da una form html elementare. In ogni caso si tratta in generale di una semplice applicazione stateless che interagisce con i servizi tramite protocollo SOAP. Il client dovra' interagire con il Proxy anziche' con i due Web Service reali.

  • OPZIONALE: Almeno uno dei servizi utilizza il database. Nell'interazione con il DB dev'essere prevista almeno una transazione non banale con gestione esplicita delle politiche di commit/rollback. Tale componente dovrà essere robusto rispetto ad attacchi di tipo SQL Injection e gestire correttamente la concorrenza delle transazioni. Nel caso non sia realizzata la componente DB, i dati necessari per l'implementazione dei servizi possono essere gestiti in memoria dai servizi come mostrato allo step 6 dell'Esercitazione sul Setup Iniziale del Progetto d'Esame.

  • Almeno una delle comunicazioni SOAP tra client e servizio previste nel progetto deve avvenire in modalità sicura, garantendo confidenzialita' (cifratura) e/o identita' dei partecipanti (firma) tramite l'uso di WS-Security, come visto nell'Esercitazione WS-Security.
    Nota: Almeno il Wrapper Element del Body del messaggio SOAP non dovra' essere cifrato per permettere al Proxy di identificare il Servizio destinatario.

Uno schema dell'architettura del progetto è disponibile qui

Le specifiche di ogni singolo progetto vanno comunque concordate con il docente. Una volta realizzato il progetto, la prova d'esame consiste nella dimostrazione dell'applicazione realizzata e la successiva discussione individuale del progetto. Gli studenti dovranno essere in grado di giustificare durante la discussione tutte le scelte progettuali di cui sopra, alla luce di quanto esaminato nelle lezioni teoriche.

E' utile notare come il focus del corso di Laboratorio di Applicazioni Internet sia sull'integrazione e non sui singoli argomenti, i quali sono spesso oggetto di approfondimento in altri corsi specifici. E' quindi importante che, anche se il progetto viene svolto in gruppo, ogni studente abbia una visione dettagliata di tutte le parti del progetto.

Footer BGFooter BG
Tito Flagella - © 2007-2015