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 qué 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.
QUIENES USAN Comet
· Chat en GMail
· Meebo
· 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://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
Seria bueno saber si esta "tecnologia" puede ser usada desde cualquier servidor o se necesita un servidor con caracteristicas "especiales", al ver quien lo utiliza (google, FB,Twitter) creo q se escapa un poco de nuestras manos el poderlo implementar.
ResponderBorrarAunque no es mucho mi conocimiento acerca de esta tecnología, no creo que por que google, FB, Twitter hagan uso de ellas, se escape de nuestras manos; por el contrario, nos debería impulsar más hacer uso de ellas, en mi corta experiencia programando, he podido utilizar diversas herramientas utilizadas por grandes compañías, y los resultados han sido favorables, quizás me anime a probarlas a ver que tal, luego podre comentar con propiedad. Un Ejemplo ( que no es mi caso ), son las personas que usan las tecnologías de Micro$oft, y han obtenido buenos resultados... Así que utilizar una que google aprovecha... Creo que será mi próximo reto
ResponderBorrar