jueves, 10 de septiembre de 2009

Comet

Actualmente estoy trabajando en un proyecto que entre muchos requerimientos tecnológicos está el de refrescar la pantalla del browser sin interacción del usuario, esto se puede obtener de manera mas o menos sencilla con una técnica llamada Comet, este termino lo acuño Alex Russell quién es creador del Dojo Toolkit, también es conocida como Reverse Ajax, HTTP Server Push, entre otros nombres.

Esta técnica se basa en una mezcla de tecnologías y estándares tales como JavaScript, JSON y Java Servlets. La idea general es abrir una sesión y suscribirse a un Servlet manteniendo de alguna manera suspendida esa conexión esperando que suceda algún evento en el servidor y avisar al browser de dicho evento, como se puede observar en el siguiente diagrama, el cuál es una versión minimalista del que se muestra en el artículo original de Alex Russell:

Comet hosted by Ember


Existen en la red diferentes implementaciones que soportan este modelo tales como CometD que es un proyecto de la Dojo Foundation, DWR, que es una de las implementaciones con mas tiempo en el mercado, los famosos continuations de Jetty y los Future Response Servlet y Abstract Asynchronous Servlet de Oracle Web Logic.

Mucha de estas son implementaciones que están acopladas a los servidores para los que fueron desarrolladas o a un a las librerías de JavaScript propias

También existe una implementación de Jean Francois Arcand, uno de los principales desarrolladores de Grizzly llamada Atmosphere, que pretende ser una implementación cross-application-server, la cual al parecer es bastante sencilla de aplicar a proyectos legacy como nuevos.

Cabe destacar que todos estos frameworks pueden ser parcial o totalmente reemplazados por el suspendable request que es parte de la especificación Servlet 3.0, ya que esta será la manera estándar de llevar a cabo el modelo Comet.

Sin embargo tomando en cuenta que falta algún tiempo para que esta especificación salga a la luz y se generalice su uso, mientras esto sucede podemos hacer uso de los frameworks mencionados anteriormente.

Una de las preguntas que viene de inmediato a nuestras cabezas es: ¿Cuál es el mejor framework?, la respuesta correcta no existe, todos tienen ventajas y desventajas, sin embargo tenemos que evaluar cual se adecua mejor a nuestras necesidades, por ahora para mi las implementaciones de Oracle y Atmosphere son las mas se ajustan al proyecto antes mencionado, por lo cual son en las que estaré profundizando un poco mas en artículos posteriores ;).

Temporalmente

Debido a algunos no-acuerdos financieros con mi anterior hosting, tomé la decisión de no contratar nuevamente el servicio.

Temporalmente estaré usando mi cuenta de MobileMe para hostear a The Geek Inside, aunque probablemente pasará lo que en la mayoría de los sistemas que son temporales: Se queden en producción por largo tiempo.

Y como no se quedó en producción el hosting temporal, después de una "ardua" labor de evaluación The Geek Inside usará Blogger como plataforma de blogging ya que es un servicio que me brinda muchos beneficios y además está respaldado por Google.

Los artículos publicados anteriormente los migraré de manera paulatina, por lo que agradezco su comprensión y apoyo para esta transición.