Plataforma de código abierto para gobierno electrónico.Administración electrónica.
        Open Source Plattform for e-government.

"El software libre construye una sociedad mejor" (Richard Stallman)


Introducción a Comet y aplicaciones RIA

28/07/2009
Dar a conocer este artículo: Añade este link a delicius Menea esta noticia Enviar a technorati Enviar a Digg Enviar a Wikio Enviar a yahoo
En la introducción de este artículo, quiero citar un poco de historia contemporánea acerca de tecnologías web. Hasta no hace mucho mas de 5 años, las aplicaciones web based, tenían un gran dilema: cada vez que se necesitaba mostrar los datos que han resultado de peticiones al server, se debía recargar la pagina en su totalidad. Lo que producía que las aplicaciones fueran bastante limitadas en cuanto a interactividad, velocidad, usabilidad y tiempos de respuesta. Cuando aparece AJAX (Asynchronous JavaScript And XML) allá por 2005, acerca a la gran mayoría de la comunidad de desarrollo el concepto de comunicacion asincrona con el servidor en segundo plano y abre todo un mundo de posibilidades, comenzando y produciendo un gran cambio que ha revolucionado la web. Aparecen aplicaciones web based que empiezan a asemejarse bastante a aplicaciones de escritorio. Permitiendo construir aplicaciones con UI's más potentes, amigables e intuitivas.

Viendo toda esta revolución pasar por nuestras narices, el desarrollo de aplicaciones RIA (Rich Internet Applications) nos exige ir un poco mas allá. Por ejemplo, supongamos que debemos desarrollar una aplicación de mail, con su correspondiente bandeja de entrada. Esta aplicación necesitaría que cada cliente (browser) este actualizado al instante, en cuanto a las novedades que ocurren en el server que tienen que ver con él. Es decir, cada usuario de nuestra aplicación de mail tiene que enterarse de que ha llegado un nuevo correo que lo tiene como destinatario.

De este ejemplo se desprende la necesidad de tener un canal bidireccional de comunicación entre servidor y cliente. Digamos, que en ciertas oportunidades, cuando el servidor tiene novedades en relación a un cliente, sea este quien envie los datos sin necesidad que el cliente este constantemente realizando peticiones acerca de novedades. Para simular o lograr esta comunicación necesaria entre cliente y server, existen varias técnicas que comentaremos a continuación.

Polling

En la técnica de Polling, un browser abre una conexion con el server realizando peticiones repetidamente cada x segundos para estar al tanto de las novedades que a él respectan. En caso de no tenerlas el servidor retorna una respuesta vacía. Es decir, en nuestra aplicacion Mail de ejemplo, tendríamos a los clientes realizando peticiones cada 10 segundos para saber si ha llegado un nuevo mail que lo tenga como destinatario.


Long Polling

Long Polling es una variación de la técnica tradicional de polling. Con esta técnica, el cliente solicita información al servidor de forma similar al polling normal. Sin embargo, si el servidor no tiene información disponible para el cliente, en lugar de enviar una respuesta vacía, el servidor retiene la solicitud y espera a que cierta información esté disponible. Una vez que la información está disponible (o después de un cierto tiempo), una respuesta completa, se envía al cliente. El cliente, normalmente, en forma inmediata vuelve a solicitar la información al servidor, de manera que el servidor casi siempre tiene una solicitud disponible en espera para así poder utilizarla para proporcionar datos en respuesta a un evento.


Comet

Comet también es conocido como server push, HTTP push, HTTP streaming, Pushlets, Reverse Ajax, y otros. El objetivo de esta técnica es permitir a los servidores web enviar datos al cliente sin ninguna necesidad de que éstos se lo soliciten. O sea, que el cliente no pida al servidor, sino que el servidor envíe datos al cliente. Yendo a nuestra aplicación Mail de ejemplo, cada cliente se subcribiría a la espera de novedades. Luego cuando el servidor detecte ha llegado un nuevo mail que tiene como destinatario al cliente, el servidor tomará la posta y será quien avise provea al cliente la información sobre las novedades.


Hemos hecho un resumen sobre la revolución que ha provocado AJAX en la web. Dejamos planteado el problema que nos encontramos al desarrollar aplicaciones RIA. Y hemos hablado de las técnicas Polling, Long Polling y Comet.
Solo resta comentar hacia donde va el futuro de todo esto, quizás la respuesta la podremos encontrar en la especificación de HTML5 donde se prevee, a través de la característica de Web Socket's, permitir establecer un canal de comunicación bi-direccional entre servidor y cliente.


¡Nuevo producto!

Kunguru, intranet para empresas

Live!


Instalaciones

Desgarga OP Application framework.Plataforma entorno web.Php 5

Últimas noticias RSS



Últimos scripts & snippets RSS