Comet

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 11:22 27 oct 2014 por 201.196.228.246 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

En el desarrollo web, Comet es un neologismo para describir un modelo de aplicación web en el que una petición HTTP mantenida abierta permite a un servidor web enviar datos a un navegador por Tecnología Push, sin que el navegador los solicite explícitamente. Comet es un término paraguas de múltiples técnicas para conseguir esta interacción. Todos estos métodos confían en características incluidas por defecto en navegadores, como JavaScript, en lugar de sobre plugins no disponibles por defecto.

En teoría, el enfoque Comet 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 cualquier caso, 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. El concepto precede al acuñamiento del neologismo, y es conocido por otros nombres, incluyendo Ajax Push,[1][2]Reverse Ajax,[3]Two-way-web,[4]HTTP Streaming[4]​ and HTTP server push[5]​ entre otros.[6]

Antecedentes

En un principio se utilizaban Java Applets con un socket TCP,posteriormente Netscape desarrolló su propia técnica para implementar tiempo real en la web.

Normalmente una página web es entregada al cliente a petición de él mismo. Para cada petición el navegador realiza una conexión HTTP al servidor web, el servidor devuelve los datos y termina la conexión. La desventaja de este método es que para poder actualizar los datos en el cliente, el usuario o el cliente debe actualizar o cambiar de página web, lo que hace que esto tome mucho tiempo sin dejar de lado que consume mucho ancho de banda. Una solución a esto es AJAX que permite al navegador solicitar solo la parte de la página web que fue cambiada o actualizada. Esto reduce significativamente el tiempo para actualizar el contenido, sin embargo para algunas situaciones no es conveniente.

Por ejemplo en una aplicación de mensajes instantáneos que está basada sobre AJAX, para que una lista de usuarios pueda actualizarse pudiendo cambiar si un usuario se conectó o desconectó, el cliente necesita conectarse al servidor web cada cierto tiempo solicitando los cambios que hayan ocurrido, esto consume ancho de banda y tiempo.

AJAX vs Comet

La diferencia que existe entre AJAX y Comet es que en este modelo se mantiene una conexión abierta entre el cliente y el servidor web; el cliente no solicita los datos, pero si envía información al servidor, y el servidor no le responde al cliente con un bloque de datos, se espera a que haya algún evento de lado del servidor para enviar la información.

Volviendo al ejemplo de la aplicación de mensajes instantáneos, el cliente no deberá estar solicitando los cambios de la lista de usuarios, el servidor web es el que le envía los datos al cliente cuando cambia la lista de usuarios, esto reduce considerablemente el consumo de ancho de banda.

Historia

Alex de DojoToolkit.org fue el primero en definir esta técnica, y Dojo es el primer framework que implementa Comet.

Sitios usando Comet

Referencias

  1. Egloff, Andreas (5 de mayo de 2007). Ajax Push (a.k.a. Comet) with Java Business Integration (JBI) (Speech). JavaOne 2007, San Francisco, California: Sun Microsystems, Inc. Consultado el 10 de junio de 2008. 
  2. «Ajax Push» (html) (en inglés). ICEfaces.org. Consultado el 21 de julio de 2008. 
  3. Crane, Dave; McCarthy, Phil (July de 2008). Comet and Reverse Ajax: The Next Generation Ajax 2.0 (en inglés). Apress. ISBN 1590599985. 
  4. a b Mahemoff, Michael (June de 2006). «Web Remoting». Ajax Design Patterns (en inglés). O'Reilly Media. pp. 19; 85. ISBN 0596101805. 
  5. Double, Chris (05-11-2005). «More on Ajax and server push». Different ways of doing server push. Consultado el 05-05-2008. 
  6. Nesbitt, Bryce (01-11-2005). «The Slow Load Technique/Reverse AJAX». Simulating Server Push in a Standard Web Browser. Consultado el 05-05-2008. 

Enlaces externos