Comet: ¿BlazeDS, XMPP?

Hace unos días me enteré de la existencia de una nueva palabrota que añadir al diccionario del desarrollador web: Comet. Que viene a ser un paso más allá de AJAX: con AJAX es el cliente el que va pidiendo información al servidor ví­a HTTP. Un modelo que se ajusta a las necesidades de un programa de correo electrónico, pero no a las de la mensajerí­a instantánea: si cada cliente le pregunta cada segundo al servidor si tiene mensajes nuevos, este se fundirí­a. Con Comet, o bien se establecen conexiones persistentes usando otros protocolos menos exigentes con el servidor o bien se dota al servidor de un mecanismo para abrir una conexión con el cliente. Una combinación de AJAX y Comet, por ejemplo, es la que posibilita la existencia de algo como Meebo.

Pues bien, el otro dia Enrique Duvós, «Senior Platform Evangelist» de Adobe Europa, presentaba en el MIF onsite las soluciones de Adobe para el tema, LiveCycle Data Services y BlazeDS (esta última, en código abierto), que tienen bastante buena pinta. Y también esta semana en ReadWriteWeb comentaban la posibilidad de usar XMPP (el protocolo sobre el que funcionan Jabber y Google Talk) para el mismo fin.

Aunque ambas tecnologí­as me parecen muy interesantes (y sin duda cada cual aporta sus problemas y limitaciones), las posibilidades que apunta XMPP en un mundo de dispositivos conectados me parecen apasionados. No serí­a descabellado llevar en el móvil, o en una PDA conectada, una suite de aplicaciones que, disponiendo de acceso a la red, comunicara a su ‘lista de contactos’ que está en marcha y ofreciese servicios como acceso a audio y ví­deo, o a pequeñas bases de datos que se sincronizasen con un servidor central de manera autónoma..

Muchas posibilidades, y muy interesantes. De golpe el servidor web que sacó en beta Nokia para sus móviles más potentes (véase) me parece bastante más interesante…

Después de AJAX, Comet

No será por falta de tecnologías nuevas. Me entero por el blog de Simon Willison de la existencia de una nueva «hype word» en el desarrollo web: Comet (acuñada por Alex Russell, hace ya un año y medio, que en esta casa nunca hemos sido especialmente rápidos). El problema a resolver es similar al que ataca AJAX: comunicación de baja latencia entre cliente y servidor. La técnica la ejemplifican la integración de Google Talk en GMail o Meebo. De lo que se trata es de mantener viva una conexión HTTP de manera que no es el navegador quien pide datos al servidor, sino que el servidor puede enviar en cualquier momento datos al navegador. Una especie de «streaming de eventos», si se quiere. «Push» donde AJAX es «pull».

Está claro por qué los ejemplos más claros son de mensajería instantánea en el navegador: con el correo podemos esperar unos segundos entre actualización y actualización, pero en mensajería instantánea necesitamos que el programa nos abra una ventana tan pronto como alguien nos envíe un mensaje. Podríamos llamar al servidor una vez por segundo, pero parece que la cosa escala mejor con conexiones HTTP persistentes que con múltiples httprequests.

Como con todo, se trata de una nueva herramienta en la caja. Ni AJAX es mejor que Comet ni al revés: dependiendo del tipo de aplicación una tecnología será más útil que otra. En el caso de aplicaciones multiusuario, en cualquier caso, Comet apunta muy buenas maneras. Y, además, la integración de Comet con AJAX ya la ha demostrado Google.

Los que estén interesados podrán encontrar más recursos en Comet Daily.