jueves, agosto 28, 2008

Comet

Advertencia: Artículo potencialmente aburrido para el lector casual. Si lee la mitad de un párrafo y se da cuenta que no entiende nada, mejor déjeme un saludo (aprovechando que son gratis). Ahora si de paso quiere pensar en compartir una o varias cervezas, eso también podemos conversarlo :-)

¿Han escuchado o leído de AJAX? Javascript y XML Asíncrono, una técnica de programación para la web que permite, por ejemplo, rescatar contenidos de otra página y agregarlos en la página actual (la que estamos viendo) sin tener que recargar la pantalla completa.

Esto es súper práctico cuando, por ejemplo, están llenando un formulario, les piden la dirección y al seleccionar el país aparecen las regiones de ese país, y al seleccionar la región aparecen las ciudades de esa región, y al seleccionar la ciudad aparecen las provincias/comunas de esa ciudad. El ideal es que todo eso pase sin tener que esperar a que la página cargue entera de nueva y aparezcan estos datos.

Tampoco resulta práctico mandar todos los datos de una sola vez, la idea es que las páginas carguen rápido (sin importar que tengamos conexiones de banda ancha o angosta, para este contexto mientras más rápido mejor).

Comet es como AJAX, pero al revés, o sea en vez de ir desde el cliente al servidor, es el servidor el que empuja datos al cliente. La gracia de esto es que no es necesario que el cliente (léase el navegador) pida datos continuamente al servidor, sino que el servidor le entrega (empuja) los nuevos datos cuando estos estén disponibles.
Si esto se refleja visualmente (si no fuera así esto no tendría sentido) todos los que estén visitando la página verán reflejado el cambio ¡al mismo tiempo! Y no va a importar si Perico esta Chile (trepando, obviamente...), si Zutano está en España, y Mengano en Colombia, todos verán el cambio simultaneamente.

Esto es útil para chats, por ejemplo, para juegos 2D en línea en tiempo real (dama, tres en línea (gato) o ajedrez por ejemplo), o para indicadores que puedan ser actualizados desde distintas partes.

El ejemplo típico es un contador de clicks, un botón al medio y un contador. Y el contador incrementa su valor para todos los clientes. En términos prácticos es una estupidez de ejemplo (igual que el hola mundo), pero todo lo que hay detrás, al menos para mi es alucinante.

Por mientras para los aficionados al código les dejo el .ZIP (CometTest.zip) con el proyecto Java para Eclipse sobre el servidor de aplicaciones Glassfish, y aprovecho de estrenar mi sitio para los archivos:

Y corran la voz, que en algún minuto voy a necesitar a 10 mil voluntarios para poder demostrar una cosa en una prueba de concepto con esta tecnología.

Aquí en Coretech (la empresa donde trabajo) estamos desarrollando algunas cosas usando esta tecnología (indicadores, web trading, actualizacion de contenidos en línea y en tiempo real), si le interesa sírvase con la libertad de contactarnos.
Publicar un comentario