Sei sulla pagina 1di 3

Comet y Web Socket.

Un enfoque diferente a Ajax


por

Jorge Rodrguez|3 Replies

Ajaxes el estndar de facto para construirRIA(del acrnimo en ingles Rich


Internet Application). Es la tecnologa soportada por todos los browsers
modernos (W3C) y la base de la mayora de los frameworks JavaScripts
(digaseprototypejs,jQuery,Dojooextjs, por nombrar los ms conocidos) y de
otras tecnologas como Flex, GWT o M$ Silverlight. Ajax ha permitido dar un
nuevo enfoque al WWW y est colaborando en la creacin de la nueva burbuja
de internet con la versin 2.0 de la web. Ha permitido tambin ver al browser
como una plataforma donde se pueden ejecutar aplicaciones complejas que
minimizan el esfuerzo del usuario y hace ms agradable su uso.
No obstante Ajax no es la nica opcin. A continuacin hablaremos
deCometyWebSocketcomo opciones substitutas para la contruccin de
aplicaciones con interfaces y comportamiento complejos que en el caso de
Comet no gozan de la popularidad de Ajax ni se ha convertido en estndar por
no tener una espalda empresarial como Microsoft[1], Google o Yahoo!. El caso
de Web Socket es diferente por haber nacido como parte de una especificacin
creada y en desarrollo por parte de W3C.
Comet:
Alex Russell(creador de Dojo[2]) descubre una nueva forma de comunicacin
no estndar entre el browser y el servidor usado por aplicaciones comoGoogle
Talk,MeebooJotLive(ahora de Google) diferente a la tradicional Ajax y decide
denominarla Comet como una forma de poder referenciarla a futuro.
La diferencia de Comet con Ajax es que en Ajax, las peticiones de ejecucin en
el server nacen en el browser (la direccin es la tradicional, del browser al
servidor). En Comet sin embargo se abre una linea de comunicacin entre el
browser y el server, reduciendo la latencia de enviar paquetes desde el browser

cada vez que se necesite un requerimiento y permitiendo que sea el server quien
envie los paquetes al browser de forma autnoma (la comunicacin es
bidireccional, ahora el servidor tambin puede enviar peticiones al browser). A
continuacin se ilustra la diferencia entre las formas de comunicacin del
enfoque Ajax vs Comet.
Una aplicacin Comet puede enviar datos al
browser en cualquier momento, lo que permite crear
aplicaciones ms real time (por ejemplo monitoreo
o colaboracin online entre usuarios) a diferencia de
Ajax donde el browser encola las peticiones
enviadas al servidor de forma asncrona.
Dado que Comet no est contruida sobre la base de
comunicacin estndar HTTP Request/Response es
necesario instalar componentes de parte del server.
Apache provee un mdulo comet-ready en su
versin 2.2, existen tambin soluciones como Twisted (para desarrollos en
python), o POE (para perl), la lista aumenta a medida que Comet se convierte en
una opcin popular.
HTML 5 WebSocket:
Web Socket es la alternativa estndar (escrita desde cero) para la especificacin
de la versin 5 del lenguaje HTML ( que en su versin expresada en XML se
podr llamar XHTML ) y por tanto con implementacin nativa para los browsers
que cumplan dicha especificacin.
La diferencia que da valor agregado a Web Socket ( a parte de ser estndar )
radica en que provee una conexin duplex entre el browser y el server con una
sola conexin TCP/IP (a diferencia de Comet que abre conexiones para cada
requerimiento) y por otro lado genera pocos headers HTTP en los mensajes ( a
diferencia de Comet que se basa en escribir mucha informacin en el header

haciendo ms pesados los mensajes). Adems el protocolo de transporte que


usa Web Socket puede ser usado en una diversidad de clientes (e.g. JavaScript,
Adobe Flex, JavaFX, Microsoft Silverlight, etc.) sin usar transformacin de
mensajes a diferencia de Comet que usa el protocolo Bayeux o JSON de la parte
cliente, requeriendo transformacin cuando el server trabaja con otro protocolo
como JMS, XMPP o IMAP.
Conclusiones
Ajax no es la nica alternativa tcnica para la comunicacin entre el browser y el
server cuando se desarrollan RIA. Existen opciones como Comet ( usadas por
aplicaciones como Google Talk, o Meebo ) y el futuro y prometedor estndar
Web Socket de la especificacin HTML versin 5.0.
1.- Microsoft se acredita la invencin de Ajax con su implementacin de
XMLHTTP a finales de los 90 mientras escriban la interface web del MS
Exchange Server 2000.
2.- Dojo fue diseado con soporte para Comet a traves de su
interfazdojo.io.bind()(VerDojo toolkitpara ms informacin.)

Potrebbero piacerti anche