1 Introducción a las Aplicaciones Web RIA
1.1 Introducción
Como ya se ha anticipado en la introducción del curso, el concepto RIA (del inglés Rich Internet Applications) da nombre a lo que se podría clasificar como un nuevo paradigma de desarrollo de aplicaciones Web, el cual está obteniendo mucha fama e interés dentro del ámbito de las empresas deTecnologías de la Información y de las Comunicaciones (TIC). Las aplicaciones desarrolladas siguiendo este paradigma son aplicaciones Web dotadas de dos características importantes: riqueza y alcance. La riqueza hace referencia a la facultad de poder utilizar interfaces gráficas de usuario semejantes a las de las aplicaciones clásicas de escritorio, dotando a la aplicación Web de una interactividad y una intuitividad desconocidas hasta ahora. El alcance surge como ventaja derivada del uso de la Web como plataforma, de modo que la aplicación estará disponible para el usuario en cualquier momento independientemente de su situación geográfica en el planeta, y por tanto la aplicación podrá estar al alcance de cualquier usuario potencial. En este capítulo se realizará una introducción a las Interfaces de Aplicaciones Web RIA, conociendo su historia, sus beneficios, sus inconvenientes, así como una lista de diferentes plataformas disponibles para crear RIAs, sin olvidar que para el resto del curso nos centraremos en una de ellas: AJAX.
1.2 Objetivos
El presente capítulo persigue los siguientes objetivos:
- Conocer la historia de las RIAs.
- Descubrir algunos de sus beneficios.
- Ser conscientes de sus restricciones.
- Conocer qué tecnologías existen, si bien el curso se centrará
- en una de ellas: AJAX.
2 AJAX. Asynchronous JavaScript + XML
2.1 Introducción
AJAX es la palabra de moda entre la gente dedicada al desarrollo de aplicaciones Web, e incluso es una palabra conocida para todos aquellos que no saben nada del tema. El caso es que AJAX es la causa por la que se pueden realizar aplicaciones tan impresionantes como todas las de la familia de Google: Gmail, Google Maps, Google Documents…
AJAX es el acrónimo de Asyncronous.JavaScript + XML, y en realidad no es una tecnología, sino la unión de varias de ellas con las que se pueden desarrollar aplicaciones simplemente “espectaculares”. El concepto ya es conocido: consiste en cargar una página Web, mostrarla, y luego interactuar con ella, sin salir de ella en ningún momento. Mientras tanto, diferentes scripts y rutinas acceden poco a poco, en background, al servidor solicitando los datos necesarios a la vez que repintan la pantalla, mostrándole los datos actualizados al usuario.
En este capítulo se introducirá AJAX como un nuevo acercamiento a las aplicaciones Web, a la vez que se expondrán los requisitos software necesarios para poder realizar el curso sin problemas.
2.2 Objetivos
En este capítulo se persiguen los siguientes objetivos:
Entender qué es AJAX.
Aprender qué tecnologías conforman AJAX.
Comprender qué es lo que hace diferente a AJAX.
Preparar el ordenador para seguir adecuadamente este curso.
3 Mi primer ejemplo AJAX con Java
3.1 Introducción
La mejor forma para empezar con AJAX y habituarse al mismo es enfrentarse cuanto antes al desarrollo de un primer ejemplo. Es por ello que en este capítulo se va a desarrollar un ejercicio con AJAX y Java consistente en la introducción de un texto a través de un campo, y la devolución desde el servidor del mismo texto, pero invirtiendo el orden de las palabras. Las llamadas al servidor se harán de forma asíncrona sin necesidad de un botón de envío. De esta forma, se explicará todo lo necesario para empezar a trabajar con AJAX desde Java. Nota: Este curso no pretende enseñar JavaScript, por lo que se asume que el alumno posee ciertos conocimientos del mismo. De todas formas, en aquellas ocasiones que sea necesario utilizar alguna estructura JavaScript complicada, se explicará la misma.
3.2 Objetivos
Los objetivos del presente capítulo son:
Crear la primera aplicación AJAX con Java, para lo que
será necesario:
o Utilizar JavaScript y HTML para la parte cliente.
o Realizar un Servlet en el lado servidor.
Coger soltura con el uso de Eclipse, Aptana y Sysdeo.
4 XML y AJAX
4.1 Introducción
Las aplicaciones AJAX suelen requerir el manejo de gran cantidad de datos complejos. Para ello, necesitan de algún mecanismo que les proporcione una forma más estructurada de representar la información, y así de esta forma poder manejar esos grandes volúmenes de información de una forma más o menos sencilla. Es entonces donde surge la necesidad de utilizar XML.
4.2 Objetivos
Este capítuo pretende alcanzar los siguientes objetivos:
Ilustrar lo sencillo que es utilizar XML en AJAX para procesar el
flujo de información entre cliente y servidor.
Aprender a utilizar librerías destinadas a manejar datos en XML,
como JDOM.
Incrementar la funcionalidad del ejemplo desarrollado a lo largo
del capítulo anterior.
5 Utilización de Librerías JavaScript para AJAX
5.1 Introducción
Como se ha visto hasta este punto, el uso de JavaScript para el intercambio de datos con el servidor es fundamental, sumándose HTML y CSS para la construcción de las interfaces de usuario. En ocasiones, la cantidad y la complejidad del código JavaScript necesario para construir una aplicación Web RIA es tan grande que es bastante complicado llegar a buen puerto.
Sin embargo, gracias a la proliferación de este tipo de aplicaciones Web, han ido surgiendo numerosas librerías y frameworks (entornos de trabajo), basados en JavaScript, que facilitan enormemente el trabajo al desarrollador. Estas librerías se centran en automatizar tareas repetitivas (como las llamadas AJAX al servidor), así como en proveer de herramientas para construir interfaces de usuario y efectos gráficos propios de aplicaciones escritorio casi sin esfuerzo.
Este capítulo presenta la filosofía que siguen dichas librerías así como su funcionamiento. Para ello se basa en dos de ellas (Prototype y Script.aculo.us), las cuales se utilizarán como paradigma y cubrirán tanto la lógica de la aplicación en el lado del cliente, como la construcción de interfaces de usuario. Además, se van a presentar también otras opciones disponibles en este
ambito.
5.2 Objetivos
Los objetivos del presente capítulo son los siguientes:
Aprender qué son las librerías JavaScript para AJAX y cúales son
las más importantes.
Aprender a manejar la librería Prototype para simplificar la
codificación en JavaScript.
Descubrir cómo construir interfaces de usuario y efectos con la
librería Scriptaculous.
6 Toolkits Java para AJAX. Direct Web Remoting
6.1 Introducción
A estas alturas de curso y sin miedo a parecer repetitivos, ya os habréis dado cuenta que el uso de JavaScript para crear aplicaciones AJAX es fundamental. La codificación en JavaScript puede llegar a consumir fácilmente la mayor parte del tiempo de desarrollo. En un principio, cuando surgió la técnica AJAX, los desarrolladoresempleaban la potencia de JavaScript únicamente para construir interfaces de usuario visualmente ricas. Sin embargo, el problema era que los desarrolladores tenían que crear las aplicaciones del tirón, sin ayuda alguna, y además, muchos de ellos consideraban JavaScript como un lenguaje necesario para tareas secundarias, por lo que no tenían experiencia demasiada en él. Es por ello que cuando se dieron cuenta de la importancia real que tenía JavaScript, surgieron para paliar estas carencias, por un lado, las librerías AJAX ya descritas en el capítulo anterior, y por otro, una serie de frameworks y toolkits (herramientas) para tratar con AJAX desde los distintos lenguajes servidor. De esta forma, los desarrolladores no expertos en JavaScript podían tratar con AJAX de una manera que les resulte cómoda.
En este capítulo se describe como trabajar con el toolkit DWR (Direct Web Remoting) para Java, que facilita el desarrollo de aplicaciones AJAX. Esta herramienta permite abstraer al desarrollador de la comunicación entre el servidor y el cliente, así como manejar los objetos de una manera homogénea en cliente y servidor.
6.2 Objetivos
El presente capítulo tiene como objetivos los siguientes:
- Conocer los fundamentos de Direct Web Remoting y los toolkits de AJAX para Java en general.
- Aprender a invocar métodos ubicados en el código Java desde el código JavaScript.
- Compartir estructuras de datos (objetos) entre cliente y servidor.