gwt facu

6
Introducción: Google es mucho más que un simple motor de búsqueda. Esta enorme empresa de veloz expansión es también un importante centro de desarrollo de software. Además de programas como Google Desktop y GoogleEarth, la compañía también publica otros productos basados en la Web a un ritmo de uno al trimestre. Mientras que Google Mail disfruta el sabor de la fama, nuevas aplicaciones como Google Reader, Google Calendar o Google Spreadsheet han llamado menos la atención. Estas aplicaciones son desarrolladas en AJAX para conseguir un acceso cliente rápido y sencillo. Aunque muchos sospechaban que Google tiene su propio framework funcionando tras la cortina, no hubo manera de saberlo realmente hasta hace poco. Google confirma finalmente las sospechas en la Java One Fair en Mayo de 2006 al sacar a la luz su Google WebToolkit (GWT) y hacerla disponible completamente gratis. En qué consiste AJAX: Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página.JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML. Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

Transcript of gwt facu

Page 1: gwt facu

Introducción:Google es mucho más que un simple motor de búsqueda. Esta enorme empresa de veloz

expansión es también un importante centro de desarrollo de software. Además de programas como Google Desktop y GoogleEarth, la compañía también publica otros productos basados en la Web a un ritmo de uno al trimestre.

Mientras que Google Mail disfruta el sabor de la fama, nuevas aplicaciones como Google Reader, Google Calendar o Google Spreadsheet han llamado menos la atención. Estas aplicaciones son desarrolladas en AJAX para conseguir un acceso cliente rápido y sencillo.Aunque muchos sospechaban que Google tiene su propio framework funcionando tras la cortina, no hubo manera de saberlo realmente hasta hace poco. Google confirma � finalmente las sospechas en la Java One Fair en Mayo de 2006 al sacar a la luz su Google WebToolkit (GWT) y hacerla disponible completamente gratis.

En qué consiste AJAX:Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una

técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones. Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página.JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML. Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

Acerca de GWT: La necesidad de generar aplicaciones Web dinámicas, que puedan ser construidas en un menor periodo de tiempo, ha llevado  a la creación de una diversidad de frameworks que permiten acelerar el desarrollo de este tipo de aplicaciones. GWT es un framework creado por Google que permite ocultar la complejidad de algunos aspectos que utiliza la tecnología AJAX. Es un importante adelanto en la creación de aplicaciones dinámicas de JavaScript que funcionan en distintos navegadores Web. La filosofía de trabajo de GWT es bastante sencilla, básicamente se crea el código en Java usando cualquier entorno de desarrollo de Java y el compilador lo traduce a HTML y JavaScript. GWT construye una interfaz navegador cliente enriquecida con AJAX, sin embargo no puede crear una aplicación completa por sí mismo. Aun así debe tener un almacén de datos en el servidor y una cierta clase de framework para convertir esos objetos java que GWT pueda pasar desde el servidor a sus clientes.

Page 2: gwt facu

El   ciclo de desarrollo de GWT   es: Usa un entorno de desarrollo integrado (IDE) favorito para escribir y depurar una aplicación en Java, usando las librerías GWT que se necesiten. Usa el compilador de Java a JavaScript de GWT para transformar la aplicación en un conjunto de archivos JavaScript y HTML que se puede subir a cualquier servidor y ejecutar desde un navegador web. Verifica que las aplicaciones trabajen sobre todos y cada uno de los navegadores que se considere que los usuarios utilizan.

Características: GWT no sólo ofrece el compilador que es justamente el mecanismo para entregar enteramente una aplicación cliente/servidor. Las características incluyen: - Los widgets son los componentes visibles de una aplicación GWT que un usuario puede ver en la página por la que esta navegando. El paquete com.google.gwt.user.client.ui contiene las clases que nos permiten crear interfaces de usuario dinámicas usando técnicas que ya se han probado exitosamente con otros frameworks que proveen esta funcionalidad como por ejemplo el paquete AWT de Java. Las clases en este paquete aprovechan las características de las interfaces de usuario de un navegador web para proveer componentes dinámicos reutilizables, los cuales tienen el mismo comportamiento en las versiones e implementaciones de los navegadores soportados. La librería de interface de usuario de GWT llama a estos componentes widgets, y estos van desde simples botones o labels hasta controles más complejos como tabs o arboles. Algunos de estos widgets se traducen directamente en elementos HTML que normalmente uno usaría en la elaboración de una página web, mientras que otros son la composición de muchos elementos HTML combinados con scripts y manejo de eventos. -Un mecanismo de eventos para tomar y responder a eventos completamente en el lado del cliente. -Un framework para el manejo de llamadas asincrónicas entre la aplicación Web y el servidor. Gestión del historial del navegador: Un mecanismo para la creación de estados históricos de navegadores de modo que la aplicación AJAX no sea corrompía con el comportamiento esperado del botón atrás.Un framework test para usar Junit para escribir las pruebas de la aplicación cliente.

Una aplicación   GWT   tiene tres   partes :

-Parte cliente: desarrollada en java, luego compilado a Java Script. -Parte pública: ficheros públicos: imágenes, sonidos, etc. -Parte Servidor: código java de servido (que se ejecutan en el servidor).

Solo necesaria cuando va a haber interacción entre Cliente-Servidor (AJAX).Ejecuta las librerías requeridas.

Las aplicaciones   GWT   pueden ser ejecutadas en dos   modos :

Modo Hosted (Hosted Mode): En modo hosted, la aplicación corre como bytecodes de Java sobre una máquina virtual. Por lo general se demora más desarrollando en modo hosted, pero se cuenta con todas las ventajas que proporciona Java para depurar usando un IDE como Eclipse.

Page 3: gwt facu

Modo Web (Web Mode): En modo web, la aplicación corre como HTML + JavaScript sobre un navegador, traducido desde el código fuente Java original con el compilador de GWT (Java-to-JavaScript compiler). Cuando la aplicación está terminada, lo único que se debe hacer es subirla a un servidor web, y los usuarios finales accederán a ella a través de un navegador en “modo web”.

Para soportar el modo hosted, GWT cuenta con un navegador especial que está enlazado a la máquina virtual de Java.

Arquitectura:

GWT contiene los siguientes componentes:

-GWT Java-to-JavaScript Compiler: traduce el código desarrollado en Java al lenguaje JavaScript cuando se usa modo web. -Hosted Web Browser: ejecuta la aplicación Java sin traducirla a JavaScript, en modo host usando la máquina virtual de Java. -JRE Emulation Library: contiene las librerías más importantes de las Clases de Java. -GWT Web UI Class Library: contiene elementos de UI para la creación de objetos tales como textos, cajas de textos, botones e imágenes.

Ventajas e Inconvenientes:

-Ventajas: *Se escribe Java y se traduce en JavaScript. *Puede crear fácilmente aplicaciones con interfaces de usuario orientadas a servicio.

-Desventajas: *Es difícil añadir GWT sobre código ya existente. *Carece de soporte a Java 5. *Curva de aprendizaje lento para los programadores con poca experiencia y los programadores con mucha experiencia en otros lenguajes. *Puede tener un consumo amplio del navegador * Poca documentación, y sobre todo, muy dispersa *La instalación del framework es complicada

Page 4: gwt facu

Bibliografia:

Dewsbury, Ryan. Google Web Toolkit Applications. Edit. Paperback. 2007.

Jaber, Sami.Programmation GWT 2 : Développer des applications RIA et Ajax avec Google Web Toolkit. Edit.Eyrolles. 2010

Jaber,Sami.Programmation GWT 2 : Sous le capot GWT. [en línea]. [fecha de consulta: 21 de noviembre 2011].Disponible en: http://sami-jaber.developpez.com/tutoriel/java/web/gwt2/compilateur/

Tenberge, Bastian. Database Access in GWT – The Missing Tutoria. [en linea].[fecha de consulta: 15 de noviembre 2011].Disponible en: http://altair.cs.oswego.edu/~tenberge/tenbergen.org/misc/DB-Access-in-GWT-The-Missing-Tutorial.pdf

Genoud , Philippe. Introduction a GWT.[en linea].[fecha de consulta: 16 de noviembre 2011]. Disponible en: http://www.inrialpes.fr/helix/people/genoud/ENSJAVA/cours/supportsPDF/AjaxGWT_2pp.pdf