Analisi di strumenti e tecniche per lo sviluppo di applicazioni Ajax.

Documenti analoghi
Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

TESI DI LAUREA IN INFORMATICA

Strumenti per l automazione del testing di applicazioni web Javascript-based

Tesi di Laurea: Uno strumento per l estrazione di sessioni utente per applicazioni web JavaScript-based Anno Accademico: 2005/2006

Testing di applicazioni flex: uso dello strumento FlexUnit

Università degli Studi di Napoli Federico II

A. Ferrari. Ajax. Asynchronous JavaScript and XML. Alberto Ferrari

Applicazioni web. Parte 8 AJAX

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

Sviluppo di strumenti grafici su una Web Application per il data mining

Il Paradigma REST per lo sviluppo di applicazioni Web 2.0

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Metodi e Tecniche per il Riuso di componenti in Applicazioni Android

Realizzazione di un software per la gestione di apparecchiature biomedicali Anno Accademico 2010/2011

CHE COSA FA? P.S. io comunque dissento sul 4. Ing. Luca Frigerio

TCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING

Corso di Sviluppo di applicazioni Web

Uno Strumento per la ricerca di campi Output e Etichetta in pagine Client

Tecnologie e applicazioni web JSON Web Token (JWT)

Un'applicazione per lo scambio di contenuti multimediali in ambiente Android

Tesi di laurea: Realizzazione di Strumenti per la valutazione di accessibilità di pagine Web

Esperimenti sul Testing di Rich Internet Applications

Sistema Informativo Territoriale del bacino dell Adige in ambiente WEB

CORSO PROFESSIONALE PROGRAMMATORE PHP

CORSO PROFESSIONALE PROGRAMMATORE PHP

STRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Prof. Pagani corrado JAVA

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

Servizi di verifica runtime di Ambienti Intelligenti

LE GUIDE TURISTICHE. Progetto realizzato per l'esame di Laboratorio e Progettazione Web Corso di Laurea in Informatica Umanistica.

Corso Programmatore Object Oriented per Web e App.

Sommario. Introduzione a AJAX - Asynchronous Javascript And Xml. Motivazioni (1) XHTML e HTTP sono strumenti deboli

Corso di Applicazioni Telematiche

Progettazione e sviluppo WEB

Un framework a supporto della sperimentazione di tecniche euristiche. per l ottimizzazione di pagine Web per Screen Readers

Indice generale. Introduzione...xiii. Uno sguardo più da vicino a JavaScript...17

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Programmazione Orientata agli Oggetti in Linguaggio Java

Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori

AJAX. Riccardo Rosati

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Applicazioni distribuite e sistemi ad oggetti distribuiti

Progetto e realizzazione di una libreria per la comunicazione sicura di. dati sui fallimenti in ambiente Android. Anno Accademico 2011/2012

Applicazione software per la classificazione, guidata da query Xpath, di pagine equivalenti ai fini del testing

AJAX. Riccardo Rosati

Sistemi Di Elaborazione Dell informazione

Strumenti per lo sviluppo e la gestione di Ontologie

Tecnologie di Sviluppo per il Web

G2Music. Gestione Avanzata dei Dati Giuseppe Pietravalle, Giuseppe Santaniello, Marco Mannara

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Linguaggi di Programmazione

Web 2.0 e Web Services nell'era dei Social Network. Snal: un caso di studio

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

CORSO DI FORMAZIONE DI BASE. Programmatore web in ambiente.net. In collaborazione con:

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

Geomaster 2.0 L integrazione delle soluzioni One Team con le opportunità del Cloud ESRI.

ITI M. FARADAY. Programmazione a. s

Luca Tesei. Laboratorio di Sviluppo Web: Le Basi. Modulo IFTS. Fermo 31/03, 03/04, 07/ Prof. Luca Tesei Università di Camerino 1

Progetto d esame. La logica di gioco. Tecnologie e applicazioni web, a.a 2017/2018. Fase di posizionamento

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

UNIVERSITY OF CAGLIARI

Progettazione user-centered di sistemi a regole in ambienti intelligenti

Antonio d Acierno 13/01/2006

Basi di Dati-IX. Basi di dati e web. Introduzione. Schema. Basi di dati e web. Corso di Laurea in Informatica Anno Accademico 2013/2014

Perfezionamento e sperimentazione di uno strumento per la

FlyHigh. Progetto realizzato per l'esame di Laboratorio e Progettazione Web. Corso di Laurea in Informatica Umanistica. Italo Dei

Un architettura orientata ai servizi per la localizzazione di dispositivi mobili

Alma Mater Studiorum- Università di Bologna. Progettazione ed Implementazione di un Hidden TCP Proxy

Luca Tesei. Laboratorio di Sviluppo Web: Le Basi. Modulo IFTS. Fermo 31/03, 03/04, 07/ Prof. Luca Tesei Università di Camerino 1

Javascript e CSS nelle pagine WEB

Dal sito web all applicazione mobile

Chiamata remota di metodi

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

Parte 6 JSON, Web Storage API, funzioni JavaScript e user script

Tecnologie di Sviluppo per il Web

1.Introduzione 1.1 Lo stato dell'arte

Testing automatico di applicazioni Android

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Java: un linguaggio per applicazioni di rete

Un architettura per la cooperazione di applicazioni: un approccio basato sulla migrazione di applicazioni Legacy

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Progetto e sviluppo di un prototipo per la migrazione di applicazioni Web di tipo Legacy

Model-View- Controller

cos è la piattaforma Moodle sito di e-learning Stratega esempi di applicazioni di Moodle

Progetto di Applicazioni Software

PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER

Argomenti XML JSON. Linguaggi per la definizione e lo scambio di dati strutturati, semi-strutturati, non strutturati. XML Data Model JSON

Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011

Programma Master Programmatore Java

Realizzazione di uno strumento software per la compilazione assistita di piani di qualità (richiesta ed offerta) per un Servizio Web

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l.

Indice. Introduzione PARTE PRIMA FONDAMENTI 1

SETA Selection Tool del Sistema ARTIST

Transcript:

tesi di laurea Analisi di strumenti e tecniche per lo sviluppo di applicazioni Ajax. Anno Accademico 2006/2007 relatore Ch.mo prof. Porfirio Tramontana 1 candidato Antonio Pandolfo Matr. 41/2568

Sommario Introduzione Problematiche Obiettivi Soluzione proposta Tecnologie utilizzate Esempi di utilizzo Conclusioni 2

Introduzione (1) Il web 2.0 e Ajax Il web 2.0 sta rapidamente ridisegnando il web e il modo di interagire con esso. Alcune caratteristiche: Applicazioni web simili a Desktop Application (una ricca ed interattiva, interfaccia user-friendly). La rete come piattaforma (rilascio di applicazioni tramite browser) 3 Una delle tecnologie che rende possibile il web 2.0 è la comunicazione asincrona con il server che vede la sua più moderna e potente espressione nell engine Ajax.

Introduzione (2) Tecniche di comunicazione Asincrona. Tecnica del frame nascosto Permette di mantenere la cronologia. Non permette di saper cosa accade dietro le quinte. Se la pagina non si carica, all utente non viene notificato alcun problema. Si rende necessaria una tecnica che aggiri questo inconvieniente e formalizzi la chiamata asincrona. 4

Introduzione (3) Oggetto XMLHttpRequest (il vero AJAX) Nella comunicazione Client-Server viene inserito un livello intermedio rappresentato dall engine Ajax. Quest ultimo è nient altro che un oggetto Javascript che viene chiamato in ogni comunicazione client-server. 5 Vantaggi: Il codice è più pulito e gli intenti della varie operazioni sono più manifesti Accesso agli header di richiesta e risposta. Acesso ai codice http di stato cosi da poter determinare se la richiesta è andata o meno a buon fine. Svantaggi: Non vi è alcuna registrazione della cronologia. In Internet Explorer bisogna attivare il controllo ActiveX per rendere disponibile l oggetto XMLHttpRequest.

Problematiche 6 Problematiche relative alla realizzazione di applicazioni Ajax: L utilizzo di Ajax richiede una grande quantità di codice aggiuntivo. Richiede la conoscenza di diversi linguaggi e tecnologie Javascript, CSS, DOM ecc Richiede che lo sviluppatore faccia i conti con le incompatibità tra i browser. Difficoltà nel debug. Il programmatore deve gestire i tasti back e forward. L esposizione del codice Javascript sul client è potenzialmente rischiosa.

Obiettivi Studio comparato di alcuni frameworks (open source) oggi disponibili, mediante l applicazione degli stessi ad una web application. Framework lato client: sono basati sul browser, si tratta per lo più di librerie Javascript. Framework lato server: sono basati sul server, intervengono nel modo in cui il server interagisce con il client (meccanismo della chiamata remota). Intervengono a vari livelli nella programmazione e progettazione lato server. 7

Obiettivi: FeedReader E una applicazione web per la lettura dei feeds Rss e Atom. Caratteristiche: Utilizzo di Javascript a oggetti Funzionamento e interazione con l utente simili ad una classica applicazione desktop Layout e disposizione dei pannelli simile ai classici programmi di posta. 8

Soluzione proposta 1 : DOJO Dojo è un framework Open Source che permette la creazione di funzionalità dinamiche nelle pagine web: Fornisce un potente meccanismo di astrazione IO Ajax-based. Questo significa che esso gestisce la comunicazione asincrona attraverso l'uso di XMLHttpRequest. Questo meccanismo è chiamato remoting. Fornisce un potente gestore di eventi. Per esempio è possibile invocare il gestore di eventi prima o dopo che un evento si verifichi. Fornisce un costruttore dell'interfaccia utente basato su Widgets. E' possibile costruire nuovi widgets o usare quelli costruiti da altri. Supporto delle animazioni. Sono disponibili un gran numero di utili librerie Javascript. 9

Soluzione proposta 1 : DOJO 10 Funzionalità implementate nell applicazione FeedReader: Gestione della comunicazione asincrona e delle operazioni di basso livello sull oggetto XMLHttpRequest attraverso il metodo dojo.io.bind() Utilizzo delle API specifiche per la manipolazione del DOM Possibilità di utilizzare direttamente il formato XML restituito dal server impostando il parametro mimetype Gestione del tasto Back Gestione degli eventi Evento logout: pulitura dello schiermo e ripristino delle condizioni iniziali Concatenamento di chiamate di funzioni. Utilizzo del widget Tree.

Soluzione proposta 1 : DOJO Dojo e Json: JSON ( JavaScript Object Notation ) è un semplice formato per lo scambio di dati. Per gli utenti è facile da leggere e scrivere, mentre per le macchine risulta facile generare e analizzare la sintassi 11 Vantaggi: Permette di ottenere un vantaggio nelle dimensioni dei dati scambiati con il server. Rende piu rapido l accesso ai dati restituiti dal server. Rende più semplice la manipolazione dei dati restituiti dal server grazie al formato interpretabile da Javascript. Svantaggi: Meno leggible rispetto ad XML da parte di un utilizzatore esterno.

Soluzione proposta 1: Dojo I tempi di caricamento sono accettabili a patto che non si esageri con l utilizzo di effetti grafici. 12

Soluzione proposta 2 : DWR Frameworks RMI-like Remoting via Proxy Simile allo schema di comunicazione generale di una RPC Utilizzo di stub e skeleton. E' possibile usare sintassi di tipo RMI all'interno del codice Javascript lato client. Il framework genera il client stub, che è codice Javascript Runtime lato server. Il client stub gestisce la corrispondenza dei parametri e il valore ritorno. 13

Soluzione proposta 2 : DWR Utilizzo di DWR applicato all applicazione FeedReader: Autenticazione dell utente tramite la realizzazione della classe Javascript requestuserinfo. Caricamento del feed appropriato. Utilizzo delle API per la manipolazione del DOM. 14

Soluzione proposta 2 : DWR Aggiungendo /dwr all indirizzo dell applicazione si accede alla pagina di debug. Problema: esposizione dei metodi. Soluzione: si espone all esterno solo ciò che veramente si desidera Non c è un carico eccessivo determinato dall inserimento delle librerie. Possibilità di usare classi Java da qualsiasi fonte, senza alcuna modifica. 15

Soluzione proposta 3: GWT Google Web Toolkit: approccio radicale al problema. GWT permette di sviluppare e debuggare applicazioni Ajax in un ambiente di sviluppo Java Due modalità di funzionamento: 16 1. Modalità Hosted: in questa modalità l'applicazione gira come codice Java all'interno della Java Virtual Machine(JVM). 2. Modalità Web: l'applicazione gira come Javascript e Html puro compilato a partire dal codice srogente Java attraverso il compilatore Java-to-Javascript.

Soluzione proposta 3: GWT Funzionalità implementate: realizzazione di una pagina GWT per la lettura di un feed Meteo da Yahoo.com: la visualizzazione avviene nel pannello dei messaggi di FeedReader: Modalità hosted: Modalità web: Compilatore Java-to-Javascript 17

Soluzione proposta 3: GWT Vantaggi: C è bisogno di conoscere un solo linguaggio di programmazione: JAVA File generati dal compilatore Java-to-Javascript di dimensioni contenute Uso di Javascript relegato a casi particolari e sporadici. 18 Svantaggi: Non c è controllo sul codice generato Difficoltà di debug una volta usciti dal proprio IDE

Conclusioni Dojo e DWR sono attualmente i framework più utilizzati, essi rappresentano infatti un equo compromesso tra innovazione e legame con le metologie di sviluppo tradizionali. GWT rappresenta un approccio radicale al problema. L utilizzo di Java rappresenta un grande vantaggio, ma potrebbe diventare il suo principale limite (scarso controllo sul codice generato). 19 Sviluppi possibili: espandere le funzionalità dell applicazione FeedReader sfruttando ad esempio effetti avanzati come il drag and drop. realizzare l applicazione FeedReader utilizzando esclusivamente Java.