Reverse Ajax DWR != COMET

Alguns já devem ter visto uma palestra que ministrei no IV Natal Java Day 2008 sobre Reverse Ajax do DWR onde tento explicar como funciona essa funcionalidade do DWR. Porém, saiu alguns slides do Joe Walker sobre o DWR 3.0 onde no slide 37 ele fala que Reverse Ajax não é a mesma coisa do COMET.

O que tem isso ?

Na minha palestra acho que não fui bem claro e acabei gerando uma certa confusão, pois algumas pessoas me questionaram sobre isso. Vamos tentar aqui desmistificar e tentar novamente explicar o que é o Reverse Ajax do DWR.

Primeiro vamos entender alguns conceitos básicos.

Ajax

Ajax é qualquer chamada preferencialmente assíncrona que se utiliza do XMLHttpRequest(XHR) para se comunicar com o servidor. Quem dispara essa ação é sempre o cliente(browser ou usuário).

Reverse Ajax – Conceito

O Reverse Ajax seria algo inverso do Ajax padrão, ou seja, o servidor irá se comunicar com o cliente sem que o mesmo precise fazer essa solicitação. Não será mais o cliente fazendo uma solicitação ao servidor e esperando uma resposta e sim o servidor se comunicando com o cliente, sem que o mesmo precise fazer alguma solicitação.

COMET

COMET é uma das 3 técnicas de comunicação que o Ajax possui, as outras são Polling e Piggyback. Resumidamente o COMET é quando o servidor fica responsável em enviar mensagens para o cliente sem que o mesmo precise fazer alguma solicitação ao servidor.

O servidor é independente para atualizar “qualquer” cliente, sem que esse cliente tenha feito algum pedido.

Reverse Ajax do DWR

No DWR o Reverse Ajax envolve essas 3 técnicas: COMET, Polling e Piggyback.

Com ele você pode utilizar essas 3 individualmente ou juntas. Você pode definir que seu servidor irá ficar atualizando automaticamente os clientes que estão na sessão(browsers, usuários etc) –COMET, ou poderá definir o tempo em que o usuário/cliente poderá ficar enviando “perguntas” para o servidor –Polling, ou ainda permitir que o usuário faça uma solicitação e logo depois o servidor atualize todos os clientes em sessão ou os que ele desejar –Piggyback.

Conceitualmente Reverse Ajax é a mesma coisa do COMET, mas na prática no DWR isso não é completamente correto.

Conclusão

O DWR nos permite utilizar a técnica de COMET quando se ativa o Reverse Ajax, com isso acabamos que por comodidade utilizando somente o COMET para fazer as comunicações, logo essa funcionalidade de Reverse Ajax pode ser considerada igual ao COMET, pois essa é a funcionalidade “padrão” que utilizamos para esse fim. Claro, que no conceito geral, quando se ativa o Reverse Ajax no DWR você poderá utilizar as 3 técnicas.

Como foi dito também na minha palestra essa comunicação Reverse Ajax é dividida em 2 modos: Ativo e Passivo, onde o modo ativo possui ainda 3 sub-modos: Full Straming -que é equivalente ao Streaming do COMET “puro”, Early Closing -que é equivalente ao Long Polling e por fim o Polling.

Por isso o Reverse Ajax do DWR não é somente COMET, ele é a junção das 3 técnicas: Polling, Piggyback e COMET.

Bem espero ter esclarecido mais sobre esse assunto. Qualquer dúvida comentem ou enviem email 😉

Abraços

21 Comments on “Reverse Ajax DWR != COMET

  1. Excelente!

    Seria possivel disponibilizar uma implementação detalhada pra gente?

    Obrigado!

  2. Bom dia,

    Excelente artigo,

    Onde posso encontrar documentação com implementações detalhadas para exemplificar todo o conceito de AjaxReverse do DWR?

    Obrigado.

    Thiago

  3. qual desses ai que voce sitou fica melhor para o servidor nao sobrecarregar? com imagens, qual a diferença do ajax convencional do ajax reverso? qual a vantagem e desvantagem? qual desses ai eu posso ter uma conexao com mysql permanente sem atualizar o servidor e obtendo dados sem fechar conexao.

    ta de parabens o seu post.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.