Depois do Ajax… vem aí COMET

Nos últimos meses ou talvez nos dois últimos anos AJAX passou a ser mais uma sigla da moda na sopa de letrinhas da informática junto com toda essa mudança chamada de WEB 2.0. Para muitos isso tudo não passa de mais algumas buzzword, para outros é um criação do O’Reilly para vender livros, isso não é importante o fato é que a WEB 2.0 está aí, o Ajax está sendo utilizado em muitas empresas e em posts futuros iremos discutí-lo bastante, neste post iremos tentar explicar o que é o COMET, qual a sua relação com Ajax e qual a sua importância partindo do pressuposto que Ajax já não é uma novidade.

A idéia por trás do Ajax é basicamente permitir que um cliente (browser) e um servidor web se comuniquem de forma assíncrona, ou seja fugir o modelo tradicional de preencher formulário, submeter, o servidor processar, devolver um nova página html e o browser exibir. Com ajax a idéia é deixar uma página montada no cliente e a medida que é necessário o cliente vai fazendo chamadas ao servidor e a medida que o servidor vai retornando respostas o cliente processa essas respostas e faz alguma mudança em parte de página, dessa forma a página deixar de ser recarregada totalmente a cada resposta do servidor, isso que alguns(eu fazia isso em 2000) já faziam utilizando iframe agora geralmente é feito XMLHttpRequest de uma forma bem mais simples.

Com a facilidade de ficar se comunicando com o servidor veio também o aumento do tráfego de rede, chats, geração iterativa de gráficos, jogos web multi-player, edição de textos colaborativa e muitos outros recursos que começam se popularizar neste momento, o que eles tem em comum? o cliente precisa interagir com outros clientes, ou simplesmente receber “mensagens” do servidor. A opção existente com ajax, configuro na página para ele a cada 5 segundos chamar um método no servidor para saber tem tem algum conteúdo novo, alguma nova mensagem, já pensou no tráfego que isso gera na rede desnecessariamente? fico fazendo neste caso 20 chamadas por minuto sendo que a maioria delas vai ser totalmente inútil, agora imaginem um servidor com muitos clientes. Foi exatamente daí que surgiu a idéia que Alex Russell deu o nome de COMET.

Se você já está querendo usar COMET espere um pouco, não é tão simples assim, o protocolo HTTP da forma que conhecemos hoje não está preparado para tal funcionalidade. Desde a formalização deste conceito e até mesmo antes começaram a surgir implementações e hoje a maioria delas se encontra em estágio inicial. O próprio Alex Russell iniciou um implementação o cometd, que é formado por um servidor de eventos, um biblioteca javascript e o protocolo Bayeux que é quem fará a comunicação entre browser e servidor, a parte cliente faz parte do dojotoolkit e como é escrita em javascript não tem problemas de compatibilidade com qualquer linguagem que esteja sendo utilizada no servidor, já este funciona como um plus para o HTTP e portanto precisa ser escrito para as diversas plataformas/linguagens sendo que hoje já estão sendo feitas versões em python, perl e java.

Além dessas implementações do cometd tem várias outras implementações nas mais diversas linguagens algumas funcionando muito bem, podemos citar o framework DWR em sua versão 2.0 que sairá com suporte a comet e o Juggernaut é um plugin para o Rails que já está disponível para utilização. Em breve devo publicar aqui um exemplo de utilização de comet com rails.

Blogged with Flock

2 Responses to “Depois do Ajax… vem aí COMET”

  1. [...] Tecnologia não é tudo, no que chama-se de web 2.0 isso fica ainda mais evidente, o que gera o termo é muito mais a utilização de tecnologias antigas de uma forma mais profissional do que a criação de nova tecnologias, mas, só para contrariar os que dizem que web 2.0 não tem nada de novo eu recomendo que estude um pouco sobre Comet(mais um nome que vão dizer que não significa nada). Leia esse meu post do ano passado que vão descobrir porque deram o nome Comet. Quem achar que isso não é uma tecnologia nova me mande uma implementação dela anterior a 2006 que tenha sido utilizado em algum projeto real. [...]

  2. [...] as diversas mudanças nessa nova versão se destaca o suporte a COMET que eles chamam de Reverse Ajax e a JavaScript Proxy [...]

Leave a Reply


Yoomp