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.