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

