Le tecnologie AJaX e Hibernate per lo sviluppo di nuove

Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
tesi di laurea
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Anno Accademico 2007/2008
Relatore
Ch.mo prof. Domenico Cotroneo
Correlatore
Ch.mo prof. Marcello Cinque
Candidato
Alessandro Paolillo
Matr. 534/1783
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Contributo
Lo sviluppo delle tecnologie Internet ha alimentato negli ultimi anni la
diffusione delle RIA (“Rich Internet Application”) nel contesto del “Web 2.0”.
Si sono approfondite tecnologie di sviluppo:
●
AJaX (insieme di tecnologie indipendenti);
●
Il framework Hibernate;
E' stato sviluppato un esempio classico di una applicazione web RIA
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Applicazioni web tradizionali vs. Nuove Applicazioni
Il confronto tra le applicazioni Web tradizionali e le nuove va fatta principalmente
nei punti in cui le applicazioni “tradizionali” creano molti problemi.
Applicazioni Tradizionali
Nuove Applicazioni
Sfruttano maggiore banda perché il server restituisce
al browser intere pagine Html
Le pagine risultano poco interattive.
Il client ad ogni click cambia pagina
Il server impiega più tempo per restituire il risultato
dell'elaborazione perché lavora su intere pagine
I rallentamenti nella comunicazione dipendono solo
dalla rete
Il browser non ha problemi perché l'elaborazione
è tutta sul server
Il server invia al browser meno informazioni,
solo quelle relative all'elaborazione richiesta
Rendono le pagine più interattive e aggiornabili gradualmente
Il server lavora solo su piccole porzioni di pagine
Un abuso di AJaX porta rallentamenti nella comunicazione
Un uso inadeguato di Javascript può mandare in overflow
la memoria del browser
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
AJaX (1/2)
AJaX è l'acronimo per (Asynchronous JavaScript and XML).
Ajax fornisce un approccio completamente nuovo alle applicazioni web. Con l'uso
di questa tecnologia è possibile distribuire più intelligenza dal lato client.
Con AjaX il client non aspetta più risposte dal server ma ad ogni click può
continuare la sua navigazione
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
AJaX (2/2)
AJaX si basa su l'utilizzo dell'oggetto XmlHTTPRequest per l'interscambio
asincrono di dati tra il browser ed il web server.
●
●
onreadystatechange: per registrare l'handler da invocare al completamento
della richiesta;
send: si occupa di inviare la richiesta vera e propria al Server;
In questo modo possiamo inviare una richiesta asincrona al server.
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Hibernate (1/2)
Hibernate (H8) è una soluzione Object-relational-mapping (ORM) per il
linguaggio di programmazione Java.
È un software free, open source e distribuito sotto licenza LGPL.
Hibernate fornisce un framework, che mappa un modello di dominio orientato
agli oggetti in un classico database relazionale.
Hibernate fornisce funzionalità di interrogazione e recupero dei dati da una base
di dati.
Lo scopo di Hibernate è quello di aiutare lo sviluppatore nei più comuni compiti
di programmazione legati alla persistenza dei dati.
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Hibernate (2/2)
Hibernate usa il database e i dati di
configurazione per garantire i servizi di
persistenza all'applicazione.
Hibernate è composto da:
●
●
una configurazione completa in un
file chiamato hibernate.cfg.xml o
hibernate.properties
un
mapping
oggetto/relazione
definito in un documento XML.
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Applicazione RIA
Si è realizzata un'applicazione web per la condivisione di una rubrica attraverso
browser.
Nella programmazione lato client sono state sviluppate due pagine Html:
● una pagina per il Login;
● una pagina contenente la rubrica condivisa.
Le due pagine importano tre librerie Javascript sviluppate per avviare il motore
AjaX, e per gli handler delle richieste asincrone.
Nella programmazione lato server si è adottato J2EE:
● sono state implementate delle servlet per accettare le richieste dai client;
● sono stati implementati 2 oggetti persistenti, Contatto e Utente, con l'uso di H8.
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Applicazione RIA
Il sequence diagram mostra come avviene l'aggiornamento della rubrica
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Snapshot dell'applicazione
Il client 1 inserisce:
(Marcello, Cinque, [email protected], 0987655)
client 2 vede la modifica
Lista degli utenti
collegati
Rubrica dei contatti
Le tecnologie AJaX e Hibernate per lo sviluppo di nuove applicazioni per il Web
Conclusioni
In questo lavoro di tesi si sono affrontate tecnologie tali da rendere le applicazioni Web più vicine
a quelle desktop.
E' stata sviluppata un'applicazione web come caso di studio in modo tale da valutare tutte le
tecnologie studiate.
La tecnologia AJaX ha reso l'applicazione più interattiva, i tempi di elaborazione e di risposta del
server brevi ma allo stesso tempo si è riscontrato che un abuso di tale tecnologia può rallentare la
comunicazione con il server.
Il framework Hibernate ha semplificato la programmazione lato server nell'interazione con la base
di dati ma non ha del tutto isolato il programmatore dall'onere di conoscere la struttura relazionale
della base di dati.