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

miércoles, 27 de enero de 2010

No se ejecuta código javascript o archivo .js

Programando una página web a un cliente, se me presento un problema al momento de hacer algunos códigos en javascript.

Realmente nunca se me había presentado un error así, pero siempre hay una primera vez. Por falta de experiencia en el tema (muy poco programo con javascript y solo hago validaciones muy sencillas), pero esta vez tuve la necesidad de hacer cosas un poco más complejas.

El problema de los errores radica en los errores sintácticos, que son el común denominador en la programación, porque nadie es infalible, pero que a veces por no entender porque falla nuestro código, el estrés se vuelve el peor enemigo del programador porque nos nubla el entendimiento. 

Pero bien, como dije anteriormente el problema son los errores y si tenemos uno o varios de ellos, nuestro código javascript no se ejecutará y nos coloca en un dilema mayor cuando hacemos llamados a otros archivos bien sean js, php, jsp, html, java, xml, txt, css o asp (por nombrar algunos) y perdemos el enfoque del error, por supuesto que los errores logicos son mas difíciles de detectar y un editor no lo resuelve, pero al depurar los errores sintácticos ya es mucho peso el que nos quitamos de encima.

En fin la solución que conseguí para evitar errores sintácticos en la programación con javascript es trabajar con un editor para este lenguaje, mis problemas se redujeron en un 75% y eso es mucho en términos de tiempo.

Conseguí uno muy bueno llamado JavaScript Editor, con el que puede revisar sintaxis además que ofrece una serie de ejemplos, código y rutinas ya probado con el cual se facilita la programación de muchas cosas triviales.

Espero que como a mí, todo el que lea este comentario le sirva de ayuda y no se quede a esperar la solución.