lunes, 15 de febrero de 2010

Comet ó Ajax

INTRODUCCIÓN

Hace casi cuatro años (aproximadamente) se hablaba de una nueva técnica de programación Web que utiliza el objeto XMLHttpRequest, muy similar a Ajax, por algunos llamada Comet. Está técnica también es conocida como Reverse Ajax, Ajax Push, Server Push, HTTP Push , Two-way-web, HTTP Streaming y HTTP server push entre otros.

HISTORIA

En el año 1994 Netscape Navigator 1.1 introdujo la posibilidad de realizar un "server push" a través de un tipo de contenido HTTP multipart / x-mixed-replace.  Una ejecución CGI mantenía una conexión TCP abierta en el navegador, con la que se podía realizar el envío de nuevos contenidos a intervalos arbitrarios, sin una solicitud del cliente.

Esta técnica tenía algunas aplicaciones interesantes, pero se adelantó a su tiempo y se empleó raramente. El soporte multipart / x-mixed-replace nunca fué agregado a Internet Explorer, así que cuando Netscape perdió la guerra de los navegadores en la década de los 90, esta técnica fue en su mayoría abandonada.

         Con la incorporación de ajax en el contexto de la programación web se comenzaron a presentar nuevos retos de desarrollo, lo que ha permitido el resurgimiento de esta vieja tecnología que data de hace más de 25 años.

                Alex de DojoToolkit.org fué el primero en definir esta técnica hacia el año 2006, y Dojo es el primer framework que implementa Comet.

EN QUE CONSISTE

Comet (Push Ajax) nos permite establecer una conexión abierta de larga duración entre el cliente y el servidor web, en este caso, es el servidor el que se encargará de enviar información al cliente cuando se genere algún evento en este.

Esta tecnología difiere del modelo original de la web, en el que un navegador solicita una página web completa o trozos de datos para actualizar una página web. En la práctica, las aplicaciones Comet usan tradicionalmente programación AJAX con una petición prolongada para detectar nueva información en el servidor.

Esto no quiere decir que el cliente no envía información al servidor, al contrario, si envía información al servidor, pero en este caso, el servidor no le responde al cliente con un bloque de datos, espera a que se suscite algún evento para informar al cliente de su nuevo estado.

Diagrama COMET


QUIENES USAN Comet

  • Chat en GMail
  •  Meebo
  •  Facebook
  •  Twitter
  •  Entre otros.

EJEMPLOS Y DOCUMENTACIÓN

En los siguientes enlaces se puede conseguir bastante información sobre la implementación de esta no tan nueva tecnología llamada COMET.

Español

http://www.ribosomatic.com/articulos/como-implementar-comet-con-php-y-prototype/

http://component-showcase.icefaces.org/component-showcase/showcase.iface

Ingles

http://cometdaily.com/

http://cometdproject.dojotoolkit.org/

http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/

http://www.ape-project.org/demos/1/ape-real-time-chat.html

http://www.lightstreamer.com/?gclid=CNjqupv39J8CFRKenAod8QL7-g

 

CONCLUSIONES

Como palabras finales, son innumerables las aplicaciones que se pueden servir de esta tecnología, que si bien no es nada nueva, hasta hace poco tiempo no se le prestaba la debida atención y que indudablemente está marcando una nueva era en la prestación de servicios vía web, lo que representa un crecimiento cada vez mayor de este mercado.

Por otro lado cabe destacar, que si bien esta tecnología hace uso en algunas implementaciones de otra tecnología tal como lo es ajax, no se debe confundir, pues puede ser aplicada sin el uso de esta.

                Se recomienda el uso de la terminología Push ajax para esta tecnología.

REFERENCIAS

http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/

http://www.openjsan.org/doc/f/fu/fuzzynerd/HTTP/Push/0.04/lib/HTTP/Push.html

http://es.wikipedia.org/wiki/Comet