Jan 23

“Reverse Ajax” visto desde “afuera”, visto desde el punto de vista de un “usuario”, es el mecanismo que permite que la información en una aplicación Web se “refresqué” automáticamente sin necesidad que lo solicite explícitamente (ejemplo; sin apretar un botón de “actualizar”), y donde no se tenga que volver a cargar la página completa (Ajax). Un ejemplo de esto sería una aplicación de la Bolsa de Comercio donde se muestran los valores de las acciones, los cuales se van actualizando automáticamente a medida que cambia el valor, y no cada vez que el usuario presiona un botón.

Una forma de “simular” esto, es que la pagina (cliente web) tenga un ciclo de consulta recurrente cada X segundos (un loop), el problema es que estriamos llenando de solicitudes (peticiones, o request) el servidor, lo que es poco eficiente.

“Reverse Ajax” corresponde a enviar información desde un servidor a los distintos clientes (Web) sin la necesidad explicita de una solicitud (request) por parte del cliente, este es el concepto de “empujar” (push) la información. Normalmente la información se entrega (push) de acuerdo a un evento que sucede en el servidor, por ejemplo actualización del valor de una acción.

Para lograr esto, los clientes Web (Browser) deben quedar esperando (escuchando) la información que pueda venir del servidor, y el servidor distribuye la información entre los distintos clientes “activos”.

“Reverse Ajax” tiene varias versiones e implementaciones, la técnica estándar es “Long pooling” usando el objeto Request de Ajax, a esta técnica también se le llama Comet. Y las implementaciones más usadas son los frameworks:

• Jetty Continuation:
• CometD
• Grizzly

Las dos primeras son independientes de Servidor de Aplicaciones, trabajan tanto en Jetty, Tomcat, GlassFish, o WAS, pero requieren que el servidor maneje “Servlet 3.0”. La tercera es propietaria de Glassfish, pero cumple los estándares, es decir puede atender a cualquier cliente Comet, y esta optimizada para este servidor.

Aquí hay un ejemplo completo de “reverse Ajax” con Grizzly (Glassfish)

http://docs.oracle.com/cd/E19776-01/820-4496/6nfv5l568/index.html

Este es un tutorial de Jetty y DWR

http://www.ibm.com/developerworks/java/library/j-jettydwr/

Implementacion usando servlets

http://www.ibm.com/developerworks/web/library/wa-cometjava/

Excelente introducción a COMET y revision de implementacion con CometD

http://www.ibm.com/developerworks/web/library/wa-reverseajax1/index.html?ca=drs-

Leave a Reply

You must be logged in to post a comment.