Algunas líneas de comentario por Kevin Haverlock: Una mirada más cercana al Paquete de Características para Web 2.0 del Servidor de Aplicaciones WebSphere

La misma tecnología usada por IBM® para crear aplicaciones dinámicas del estilo de Ajax está disponible para usted a través del Paquete de Características® para Web 2.0 del Servidor de Aplicaciones WebSphere de IBM. Conozca cómo algunas de estas características clave pueden tener un gran impacto en sus aplicaciones Web. This content is part of the IBM WebSphere Developer Technical Journal.

Kevin Haverlock, Software Development, IBM

Kevin Haverlock is a software engineer for IBM in Research Triangle Park, NC. He has worked on various portions of WebSphere Application Server dating back to 5.0. His most recent assignment was the Web 2.0 Feature Pack for WebSphere. Kevin is currently working on web development tooling to help customers enhance their serviceability of WebSphere Application Server.



03-08-2011

Ahora volvamos a nuestra presentación del paquete de características.

Ha sido excitante observar cómo nuestros equipos de desarrollo del Software Group de IBM han creado y entregado diseños nuevos e innovadores basados en arquitecturas del estilo de Ajax (Asynchronous JavaScript y XML). Ajax representó la nueva generación de desarrollo Web y se prestó a la creación de interfaces de usuario innovadoras basadas en navegadores. Como desarrollador, he visto cuán difusa se ha vuelto la línea entre las aplicaciones con interfaces gráficas de usuario pesadas que se ejecutan en sus sistemas operativos nativos y la riqueza que es posible obtener hoy con los navegadores y los dispositivos actuales.

La misma tecnología usada por los desarrolladores de IBM para crear aplicaciones del estilo de Ajax también está convenientemente disponible para los usuarios del Servidor de Aplicaciones WebSphere de IBM, sin costo alguno, a través del Paquete de Características para Web 2.0.

A diferencia de otros paquetes de características del Servidor de Aplicaciones WebSphere, como los correspondientes a EJB 3.0 y a servicios web, el paquete de características para Web 2.0 del Servidor de Aplicaciones WebSphere es de aplicación central. Esto significa que el Paquete de Características para Web 2.0 no modifica el tiempo de ejecución interno del Servidor de Aplicaciones WebSphere para proporcionar beneficios y funcionalidades adicionales. Por el contrario, este paquete de características proporciona un conjunto de bibliotecas Java™ y archivos JavaScript™ que usted puede utilizar para desarrollar sus aplicaciones. Señalo esto porque he conocido usuarios que son reacios a probar un nuevo paquete de características por temor a que éste pueda introducir un nuevo comportamiento en el tiempo de ejecución del servidor de la aplicación; esto no ocurre en este caso. Al desarrollar con el paquete de características Web 2.0, usted puede seleccionar las características y tecnologías que desea introducir en sus aplicaciones y luego implementar las aplicaciones como lo haría normalmente.

Yo escribí un artículo general sobre el paquete de características Web 2.0 cuando se lanzó originalmente en el año 2008. En esta ocasión pretendo dirigir su atención a sólo unas pocas características clave que pueden tener un gran impacto sobre su desarrollo de aplicaciones Web.


Una mirada a las características clave

El Paquete de Características para Web 2.0 V1.0.0.2 contiene elementos que están alineados con los tiempos de ejecución del lado cliente y del lado servidor. Del lado cliente tenemos el Dojo Toolkit 1.3.1, mientras que, del lado servidor, hay un vasto conjunto de bibliotecas y características de conectividad. Miremos más de cerca ambos lados.

Del lado cliente

El Dojo Toolkit 1.3.1 es una poderosa biblioteca JavaScript de código abierto que usted puede usar para crear interfaces de usuario ricas y variadas que se ejecutan dentro del navegador. Dojo soporta todos los navegadores principales y se desempeña bien tanto en el Pre de Palm como en el iPhone de Apple, los que se basan en el motor del navegador WebKit. El Dojo Toolkit elimina las peculiaridades y las singularidades de las implementaciones en los navegadores de plataformas.

El Dojo Toolkit se divide en 5 secciones:

  1. La base es el núcleo del Dojo Toolkit y consiste en un archivo dojo.js que está diseñado para ser compacto y se ha optimizado de manera tal que tarde un tiempo mínimo en descargarse al navegador. La base contiene utilidades provechosas tales como instrucciones para el dispositivo y notificación de eventos, por nombrar sólo algunas.
  2. El núcleo contiene una amplia variedad de widgets GUI y el transporte de entrada-salida para las solicitudes XHR al servidor.
  3. Dijit se construye sobre la base y el núcleo, y proporciona un vasto conjunto de controles de widgets adicionales que están internacionalizados y habilitados en cuando a su accesibilidad.
  4. Dojox contiene ciertos aspectos del Dojo Toolkit que representan un material innovador. Los módulos de Dojox incluyen gráficos, almacenamiento sin conexión, cuadrícula y almacenes de datos (que se describen más adelante), por nombrar sólo algunos.
  5. Util contiene un arnés de prueba para Dojo y puede usarse para poner a prueba los widgets que se proporcionan con el conjunto de herramientas.

Dojo tiene un vasto conjunto de características, pero la que quiero destacar en particular se llama dojox.data. Dojox.data proporciona una capa de acceso uniforme que elimina el concepto de formatos de datos únicos. Desde una perspectiva JavaScript, todos los datos se representan como un elemento (o como un atributo de un elemento), lo que proporciona una manera de acceder a los datos de forma estándar. Fuera de la caja, Dojo proporciona un vasto conjunto de almacenes de datos para servicios conocidos como Google, Flickr y otros. Usted puede combinar fácilmente los almacenes de datos con sus propios widgets de interfaz de usuario o directamente integrarlos dentro de muchos widgets que son proporcionados directamente por Dojo.

Lo que es más importante, el almacén dojox.data le ofrece un medio a través del cual usted, como desarrollador, podrá acceder a los servicios del lado servidor que usted elabore. El archivo dojox.data.JsonRestStore proporciona un modo basado en estándares para interactuar con los servicios basados en JSON (JavaScript Object Notation) que usan una arquitectura de estilo RESTful. JsonRestStore proporciona lectura, escritura y notificación a través de HTTP/REST. Las interacciones usan comandos GET, PUT, POST y DELETE basados en el servidor.

La línea de código que figura a continuación ilustra cómo se crea un dojox.data.JsonRestStore. El objetivo especifica una URL para el recurso, mientras que idAttribute es el nombre de ID. A menudo, el idAttribute representa un identificador de clave primaria que se usa para identificar unívocamente el recurso sobre el servidor:

newStore = new dojox.data.JsonRestStore({target:"/MyTable/", idAttribute:"myId"});

El poder real de dojox.data es su capacidad de combinarse con un amplio array de widgets Dojo de interfaz de usuario. Por ejemplo, el widget dojox.grid es un widget de visualización de una tabla. Agregar el ejemplo dojox.data.JsonRestStore es tan simple como pasar el almacén dojox.data que usted creó (Listado 1).

Listado 1
gridLayout = [
       { name: 'Address', field: 'shipToAddress', editable: true},
       { name: 'Name', field: 'name'},
       { name: 'Id', field: 'myId'}];
var grid = new dojox.grid.DataGrid({
       store: newStore,
       structure: gridLayout
}, dojo.byId("gridElement"));
grid.startup();

El array gridLayout define los nombres de columna y los mapeos de campo. El dojox.data.JsonRestStore controla el análisis de los datos JSON devueltos por el servidor, mientras que el widget dojox.grid.DataGrid controla el mapeo de los contenidos del elemento a las filas y columnas de la cuadrícula. El dojox.data.JsonRestStore también puede usarse para devolver al servidor datos modificados por el usuario a través de las operaciones POST y PUT.

Del lado servidor

El Paquete de Características para Web 2.0 proporciona un vasto conjunto de bibliotecas y características de conectividad que usted puede usar dentro de sus aplicaciones basadas en el servidor para ayudarse en el desarrollo del cliente navegador. No es obligatorio que usted use estas bibliotecas con el Dojo Toolkit, pero las mismas simplificarán el desarrollo:

  • JSON4J

    Le mencioné anteriormente que usted puede usar dojox.data para interactuar con sus propios servicios basados en JSON. La biblioteca JSON4J es una implementación de las clases de control JSON y puede usarse dentro de una aplicación Java. La biblioteca puede utilizarse para derivar las corrientes de datos JSON que son devueltas al cliente, y proporciona:

    • Un modelo de objeto Java para construir y manipular los datos que se han de representar como JSON.
    • Una rápida transformación para la conversión de XML a JSON. JSON4J puede usarse para convertir una respuesta XML de un servicio en una estructura JSON que puede usarse fácilmente dentro de una aplicación Ajax.
    • Un analizador de cadena y corriente JSON que puede generar el correspondiente JSONObject, el que representa esa estructura JSON en Java.
  • Proxy Ajax

    El paquete de características proporciona un proxy de enrutamiento basado en servlet que puede emplearse en la agregación de contenidos desde diferentes sitios. Los navegadores modernos usan una política del mismo origen que sólo permite que las solicitudes subsiguientes se emitan hacia el mismo dominio donde se originó la página. La política del mismo origen puede ser un problema si su aplicación JavaScript pretende contactar servicios que usted u otros han escrito. Por ejemplo, si su aplicación JavaScript contacta otro servidor como Yahoo para obtener información meteorológica, el navegador bloqueará la solicitud, ya que la información que usted está solicitando (de Yahoo) no está en la misma ubicación de dominio en la que se originó su aplicación JavaScript. El proxy Ajax puede configurarse para emitir la solicitud al servicio Yahoo en nombre del navegador. Dado que el proxy Ajax reside en el mismo dominio que su aplicación JavaScript, la aplicación JavaScript supera la prueba de política del mismo origen del navegador.

    Para proporcionar control, el proxy contiene un archivo de configuración de lista blanca que puede usarse para definir los sitios a los que el proxy podrá acceder. Asimismo, el proxy puede filtrar por encabezados HTTP, cookies y tipos de mime para proporcionar un cierto nivel de control sobre los sitios a los que pueda acceder un cliente basado en el navegador.

  • Control remoto Web para componentes Java
    Un desafío a la hora de combinar arquitecturas basadas en Ajax y soluciones J2EE™ es el hecho de mapear un tiempo de ejecución del lado cliente a construcciones J2EE. Por ejemplo, considere un widget JavaScript que exhibe información en una tabla que se crea dinámicamente usando JavaScript. Los datos necesarios para la creación de la tabla existen en el servidor y puede accederse a ellos usando componentes EJB. Por lo tanto, ¿cómo acceder a esas construcciones EJB?
    El paquete de características proporciona un Adaptador de Llamado a Procedimiento Remoto (RPCAdapter), provisto como una biblioteca JAR, que puede incrustarse dentro de una aplicación Web del lado servidor. El RPCAdapter puede usarse para aceptar solicitudes HTTP como POST y GET, así como para mapear las solicitudes directamente a las clases creadas por el usuario. Uno de los aspectos más importantes del RPCAdapter es su capacidad de serializar la sesión EJB y la recopilación de datos a una corriente JSON o XML que se devuelve al cliente navegador. Los datos JSON y XML pueden contener la información que ha de exhibir el widget.
  • Mensajería Ajax

    Si bien la mensajería Ajax podría parecer en cierto modo inocua, representa un concepto innovador que permite crear aplicaciones que se actualizan dinámicamente, en base a los cambios que ocurren a partir del servidor. El servicio de mensajería Ajax utiliza un patrón de publicación y suscripción para conectar el navegador al Bus de Integración del Servicio del Servidor de Aplicación WebSphere (SIBus) para que el evento del lado servidor empuje hacia el navegador. La comunicación cliente-servidor se logra a través del protocolo Bayeux, el que se basa en JSON y se usa como mecanismo de publicación/suscripción para la entrega del evento. Sobre el servidor, usted puede considerar el servicio de mensajería Ajax, una implementación de servidor Comet en la que el Dojo Toolkit proporciona apoyo del lado cliente.

    El servicio de mensajería Ajax vincula los clientes del navegador con el WebSphere SIBus, permitiendo que un servicio web o cualquier otro elemento conectado al bus publiquen eventos hacia los clientes basados en Web. Usted puede usar el servicio de mensajería Ajax en una aplicación nueva o existente colocando un archivo de biblioteca JAR en un módulo Web de aplicación, estableciendo un archivo de configuración simple y configurando el mapeo del servlet.

  • Bibliotecas Apache Abdera

    Apache Abdera es un proyecto de código abierto que proporciona apoyo a la distribución de fuente. Abdera aborda tanto el formato Atom Syndication como el protocolo de publicación ATOM. Usted puede usar las bibliotecas Abdera sobre el servidor para leer las distribuciones desde otras fuentes o para generar su propio contenido de fuente ATOM a fin de usarlo en sus widgets. Dojo proporciona widgets de interfaz de usuario que contribuyen a la visualización de la información basada en ATOM.


Conclusión

Esta mirada al Paquete de Características para Web 2.0 del Servidor de Aplicaciones WebSphere de IBM se ha enfocado en algunas funciones clave que lo ayudarán a crear sus propias aplicaciones Web de estilo Ajax para el Servidor de Aplicaciones WebSphere. Esperamos que esta información lo motive a explorar más en detalle el paquete de características, donde encontrará otras características que usted podrá usar para liberar el potencial de sus aplicaciones Web.

Recursos

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere, Lotus
ArticleID=426982
ArticleTitle=Algunas líneas de comentario por Kevin Haverlock: Una mirada más cercana al Paquete de Características para Web 2.0 del Servidor de Aplicaciones WebSphere
publish-date=08032011