SlideShare uma empresa Scribd logo
1 de 45
 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
[object Object],[object Object],[object Object]
Polling – (Ativo) Quando o navegador(cliente) faz pedidos ao servidor em intervalos regulares e freqüentes. Gerando assim um tráfico extra e pesado na rede.
Servidor você tem alguma atualização pra mim ? SIM   NÃO  
Piggyback – (Passivo) O servidor tendo alguma atualização para o cliente aguarda até que o cliente faça uma nova solicitação, então ele “aproveita” para enviar juntamente com a respostas do cliente a sua atualização. Não gera tráfego extra, em contra partida é muito demorado.
Opá, tenho uma nova atualização pra você ! Servidor preciso do extrato da minha conta. Receba seu extrato e  um débito no seu cartão .
Comet – (Ativo) O servidor fica responsável em atualizar a qualquer momento o cliente. Uma única conexão é aberta e mantida pelo servidor.
[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
2. Long polling O navegador faz um pedido para o servidor, que é mantido em aberto até que o servidor tenha novos dados a ser enviado.  Após enviar um evento, o servidor encerra a conexão e imediatamente o navegador abre uma nova.
Seja qual for a técnica, o servidor é capaz de enviar novas informações com baixa latência; Streaming é considerado de melhor desempenho  comparado ao Long Polling;
Opa, a sua mulher acabou de efetuar uma compra com o seu cartão ! Vítima receba essa atualização.
 
 
 
 
O DWR é o Framework Ajax para JAVA mais robusto,  simples e confiável que existe no mercado atualmente. Ele possui integração com os principais frameworks do  mercado: JSF, EJB2, EJB3, Struts 1x, Struts 2.x, Webwork, Hibernate, Hibernate 2, Hibernate 3, Spring dentre outros.
 
 
Site Oficial:  http://directwebremoting.org/dwr Artigos, Vídeo Aulas:  http://www.handersonfrota.com.br/artigos-tutoriais/dwr/
 
Por padrão o DWR começa com o Reverse Ajax(Comet) desligado, permitindo apenas a transferência via Piggyback. O Reverse Ajax do DWR possui dois modos: Ativo e Passivo. O Modo Ativo possui ainda mais 3 modos.
 
[object Object],[object Object],[object Object]
 
 
1. Basta acrescentar o trecho de código no seu web.xml. Com isso você ativa o Reverse Ajax.
2. Depois de ativado no web.xml, agora no segundo passo você vai definir qual a página que vai se utilizar do Reverse Ajax. Basta acrescentar na sua página a seguinte linha de código: Você poderá adicionar no  onload  da página ou no início de um arquivo JS, ou apenas como Script na página.
 
 
Este é o modo padrão quando o Reverse Ajax é ativado para  as versões 2.0.3 e anteriores.  A partir da versão 2.0.4 o padrão é a Early Closing. Ele tem como características respostas mais rápidas,  porque ele fecha a conexão apenas uma vez a cada 60  segundos, ou verifica se o browser ainda está ativo.
Para ativar o modo Full Streaming na versão DWR 2.0.4 em  diante, basta seguir as configurações: No web.xml ative o uso de Reverse Ajax.
Ainda no web.xml adicione o seguinte trecho. Depois basta acrescentar na sua página a seguinte linha de código:
No modo Early Closing ele irá manter a conexão aberta  assim como na Full Streaming, no entanto ele ocupa apenas  a conexão durante 60 segundos, se não houver uma saída  para o navegador. Esse modo nas versões DWR 2.0.4 e superiores, não se faz  necessária nenhuma configuração adicional.  Para as versões 2.0.3 para baixo é preciso adicionar o  seguinte trecho.
Neste caso o DWR irá manter a conexão aberta por mais de  500 milissegundos após a primeira saída, depois ele fecha e  já solicita o a sua reabertura. Ele faz isso antes de forçar um  flush.
Caso este modo esteja sendo utilizado em aplicações com  um elevada taxa de transferência de dados(servidor-cliente)  se faz necessário em alguns casos aumentar a o tempo de  conexão aberta com o servidor. Bastando alterar o valor no maxWaitAfterWrite = 1000 ou  Mais, dependendo da sua necessidade.
 
Se por algum motivo você deseje utilizar essa técnica,  também é bem simples configurar. Além da configuração padrão:  web.xml(activeReverseAjaxEnabled=true) é preciso  adicionar dois init-params, veja a seguir:
Você deve definir o PollingServerLoadMonitor. No modo Polling o default é de 5 segundos, mas é  recomendado que você altere esse valor, pelo menos para 60  segundos. Isso para as versões DWR 2.0.3 em diante.
 
Como vimos o DWR tem um excelente suporte a Reverse  Ajax(Comet) em geral. Bem simples de se utilizar, fácil de  configurar e robusto. O DWR 3.0 promete muito mais, com novas features,  suporte a Rest, melhor integração com Spring, suporte ao  Google Gears e Dojo Offline,Aptana Jaxer, OpenAjax,  PubSub, Bayeux etc.
 

Mais conteúdo relacionado

Mais procurados

ASP.NET Core 2.1 #dotnetconf
ASP.NET Core 2.1 #dotnetconfASP.NET Core 2.1 #dotnetconf
ASP.NET Core 2.1 #dotnetconfRodrigo Kono
 
Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1Rodrigo Kono
 
pfSense - Proxy autenticado e regras no SquidGuard
pfSense - Proxy autenticado e regras no SquidGuardpfSense - Proxy autenticado e regras no SquidGuard
pfSense - Proxy autenticado e regras no SquidGuardCavalcante Treinamentos
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendadoricardophp
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQuality Press
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinTchelinux
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCFelipe Pimentel
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãospirallab
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis LaravelEduardo Cesar
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDMÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDOrlindo Saraiva
 
Curso De flask Criando Website - Introdução
Curso De flask Criando Website - IntroduçãoCurso De flask Criando Website - Introdução
Curso De flask Criando Website - IntroduçãoMarcus Pereira
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelManim Edições
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAYelken Heckman Ferreira Gonzales
 

Mais procurados (19)

ASP.NET Core 2.1 #dotnetconf
ASP.NET Core 2.1 #dotnetconfASP.NET Core 2.1 #dotnetconf
ASP.NET Core 2.1 #dotnetconf
 
Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1Novidades do ASP.NET Core 2.1
Novidades do ASP.NET Core 2.1
 
pfSense - Proxy autenticado e regras no SquidGuard
pfSense - Proxy autenticado e regras no SquidGuardpfSense - Proxy autenticado e regras no SquidGuard
pfSense - Proxy autenticado e regras no SquidGuard
 
Fail overpfsense
Fail overpfsenseFail overpfsense
Fail overpfsense
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendado
 
Qualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHPQualitypress - Segurança em Aplicações Web com PHP
Qualitypress - Segurança em Aplicações Web com PHP
 
Testando Tomcat Com Netbeans
Testando Tomcat Com NetbeansTestando Tomcat Com Netbeans
Testando Tomcat Com Netbeans
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
 
Tutorial De Instalação Do Tomcat
Tutorial De Instalação Do TomcatTutorial De Instalação Do Tomcat
Tutorial De Instalação Do Tomcat
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutençãoGerenciando sites em WordPress de forma eficiente: do deploy à manutenção
Gerenciando sites em WordPress de forma eficiente: do deploy à manutenção
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis Laravel
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUDMÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
MÓDULO I - PREPARANDO O AMBIENTE GROCERY CRUD
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
Curso De flask Criando Website - Introdução
Curso De flask Criando Website - IntroduçãoCurso De flask Criando Website - Introdução
Curso De flask Criando Website - Introdução
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunel
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVAVRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
VRaptor - Um Framework MVC Web para desenvolvimento ágil com JAVA
 

Semelhante a Configurando o Reverse Ajax (Comet) no DWR

Palestra Signal-R
Palestra Signal-RPalestra Signal-R
Palestra Signal-Rpaponciano
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
 
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareCloudflare
 
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xDicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xRodrigo Kono
 
Prova de sor 15082011
Prova de sor 15082011Prova de sor 15082011
Prova de sor 15082011Carlos Melo
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalREduardo Pires
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaeslucassrod
 
Guia instalacao portal_web_sara
Guia instalacao portal_web_saraGuia instalacao portal_web_sara
Guia instalacao portal_web_sarajanu seriguela
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoPaula Grangeiro
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSPledsifes
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMaurício Linhares
 
Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureRafael Dos Santos
 
Artigo Wireshark Luiz Felipe
Artigo Wireshark Luiz FelipeArtigo Wireshark Luiz Felipe
Artigo Wireshark Luiz Felipeluizfelipemz
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no androidAlexandre Antunes
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Flávio Lisboa
 

Semelhante a Configurando o Reverse Ajax (Comet) no DWR (20)

Palestra Signal-R
Palestra Signal-RPalestra Signal-R
Palestra Signal-R
 
SignalR - .Net Core 3.0
SignalR - .Net Core 3.0SignalR - .Net Core 3.0
SignalR - .Net Core 3.0
 
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de Microservices
 
Visão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da CloudflareVisão geral dos novos produtos da Cloudflare
Visão geral dos novos produtos da Cloudflare
 
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.xDicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
Dicas para migrar sua aplicação ASP.NET para ASP.NET Core 2.x
 
Prova de sor 15082011
Prova de sor 15082011Prova de sor 15082011
Prova de sor 15082011
 
JavaEE
JavaEEJavaEE
JavaEE
 
Comunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalRComunicação em Tempo Real com ASP.Net SignalR
Comunicação em Tempo Real com ASP.Net SignalR
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaes
 
Guia instalacao portal_web_sara
Guia instalacao portal_web_saraGuia instalacao portal_web_sara
Guia instalacao portal_web_sara
 
Django Channels - Aplicações real time com Django
Django Channels - Aplicações real time com DjangoDjango Channels - Aplicações real time com Django
Django Channels - Aplicações real time com Django
 
Mod06 licao01-apostila
Mod06 licao01-apostilaMod06 licao01-apostila
Mod06 licao01-apostila
 
Introdução à Servlets e JSP
Introdução à Servlets e JSPIntrodução à Servlets e JSP
Introdução à Servlets e JSP
 
Melhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação WebMelhorando A Performance Da Sua Aplicação Web
Melhorando A Performance Da Sua Aplicação Web
 
Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft Azure
 
Artigo Wireshark Luiz Felipe
Artigo Wireshark Luiz FelipeArtigo Wireshark Luiz Felipe
Artigo Wireshark Luiz Felipe
 
Consumindo dados via web service no android
Consumindo dados via web service no androidConsumindo dados via web service no android
Consumindo dados via web service no android
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3Escalabilidade via Software no ExpressoV3
Escalabilidade via Software no ExpressoV3
 

Configurando o Reverse Ajax (Comet) no DWR

  • 1.  
  • 2.
  • 3.
  • 4.  
  • 5.
  • 6. Polling – (Ativo) Quando o navegador(cliente) faz pedidos ao servidor em intervalos regulares e freqüentes. Gerando assim um tráfico extra e pesado na rede.
  • 7. Servidor você tem alguma atualização pra mim ? SIM  NÃO 
  • 8. Piggyback – (Passivo) O servidor tendo alguma atualização para o cliente aguarda até que o cliente faça uma nova solicitação, então ele “aproveita” para enviar juntamente com a respostas do cliente a sua atualização. Não gera tráfego extra, em contra partida é muito demorado.
  • 9. Opá, tenho uma nova atualização pra você ! Servidor preciso do extrato da minha conta. Receba seu extrato e um débito no seu cartão .
  • 10. Comet – (Ativo) O servidor fica responsável em atualizar a qualquer momento o cliente. Uma única conexão é aberta e mantida pelo servidor.
  • 11.
  • 12.
  • 13. 2. Long polling O navegador faz um pedido para o servidor, que é mantido em aberto até que o servidor tenha novos dados a ser enviado. Após enviar um evento, o servidor encerra a conexão e imediatamente o navegador abre uma nova.
  • 14. Seja qual for a técnica, o servidor é capaz de enviar novas informações com baixa latência; Streaming é considerado de melhor desempenho comparado ao Long Polling;
  • 15. Opa, a sua mulher acabou de efetuar uma compra com o seu cartão ! Vítima receba essa atualização.
  • 16.  
  • 17.  
  • 18.  
  • 19.  
  • 20. O DWR é o Framework Ajax para JAVA mais robusto, simples e confiável que existe no mercado atualmente. Ele possui integração com os principais frameworks do mercado: JSF, EJB2, EJB3, Struts 1x, Struts 2.x, Webwork, Hibernate, Hibernate 2, Hibernate 3, Spring dentre outros.
  • 21.  
  • 22.  
  • 23. Site Oficial: http://directwebremoting.org/dwr Artigos, Vídeo Aulas: http://www.handersonfrota.com.br/artigos-tutoriais/dwr/
  • 24.  
  • 25. Por padrão o DWR começa com o Reverse Ajax(Comet) desligado, permitindo apenas a transferência via Piggyback. O Reverse Ajax do DWR possui dois modos: Ativo e Passivo. O Modo Ativo possui ainda mais 3 modos.
  • 26.  
  • 27.
  • 28.  
  • 29.  
  • 30. 1. Basta acrescentar o trecho de código no seu web.xml. Com isso você ativa o Reverse Ajax.
  • 31. 2. Depois de ativado no web.xml, agora no segundo passo você vai definir qual a página que vai se utilizar do Reverse Ajax. Basta acrescentar na sua página a seguinte linha de código: Você poderá adicionar no onload da página ou no início de um arquivo JS, ou apenas como Script na página.
  • 32.  
  • 33.  
  • 34. Este é o modo padrão quando o Reverse Ajax é ativado para as versões 2.0.3 e anteriores. A partir da versão 2.0.4 o padrão é a Early Closing. Ele tem como características respostas mais rápidas, porque ele fecha a conexão apenas uma vez a cada 60 segundos, ou verifica se o browser ainda está ativo.
  • 35. Para ativar o modo Full Streaming na versão DWR 2.0.4 em diante, basta seguir as configurações: No web.xml ative o uso de Reverse Ajax.
  • 36. Ainda no web.xml adicione o seguinte trecho. Depois basta acrescentar na sua página a seguinte linha de código:
  • 37. No modo Early Closing ele irá manter a conexão aberta assim como na Full Streaming, no entanto ele ocupa apenas a conexão durante 60 segundos, se não houver uma saída para o navegador. Esse modo nas versões DWR 2.0.4 e superiores, não se faz necessária nenhuma configuração adicional. Para as versões 2.0.3 para baixo é preciso adicionar o seguinte trecho.
  • 38. Neste caso o DWR irá manter a conexão aberta por mais de 500 milissegundos após a primeira saída, depois ele fecha e já solicita o a sua reabertura. Ele faz isso antes de forçar um flush.
  • 39. Caso este modo esteja sendo utilizado em aplicações com um elevada taxa de transferência de dados(servidor-cliente) se faz necessário em alguns casos aumentar a o tempo de conexão aberta com o servidor. Bastando alterar o valor no maxWaitAfterWrite = 1000 ou Mais, dependendo da sua necessidade.
  • 40.  
  • 41. Se por algum motivo você deseje utilizar essa técnica, também é bem simples configurar. Além da configuração padrão: web.xml(activeReverseAjaxEnabled=true) é preciso adicionar dois init-params, veja a seguir:
  • 42. Você deve definir o PollingServerLoadMonitor. No modo Polling o default é de 5 segundos, mas é recomendado que você altere esse valor, pelo menos para 60 segundos. Isso para as versões DWR 2.0.3 em diante.
  • 43.  
  • 44. Como vimos o DWR tem um excelente suporte a Reverse Ajax(Comet) em geral. Bem simples de se utilizar, fácil de configurar e robusto. O DWR 3.0 promete muito mais, com novas features, suporte a Rest, melhor integração com Spring, suporte ao Google Gears e Dojo Offline,Aptana Jaxer, OpenAjax, PubSub, Bayeux etc.
  • 45.