reverse ajax dwr

45

Upload: handerson-frota

Post on 28-Jun-2015

3.108 views

Category:

Documents


5 download

DESCRIPTION

Palestra sobre ReverseAjax com DWR. COMET

TRANSCRIPT

Page 1: Reverse Ajax Dwr
Page 2: Reverse Ajax Dwr

Handerson Frota – Analista Programador;Sócio Fundador da Triadworks;Atualmente Analista Programador da IVIA;Envolvido na programação desde os 13 anos iniciando com C, web desde 1997 e com Java desde 2001;Entusiasta Java e Ajax;Colunista da DevMedia, com artigos e vídeo aulas;Coordenador e Fundador da Célula Java na Faculdade Lourenço Filho;Já atuou em vários projetos de médio e grande porte exercendo as funções de: Programador, Analista, Arquiteto e Líder Técnico;

Page 3: Reverse Ajax Dwr

O que é COMET ?Comet ou ReverseAjax ?Você não conhece o DWR ?Quer saber mais sobre o DWR ?E agora como utilizar ?Mas, como vou configurar isso ?Preste atenção em alguns exemplos.Considerações finais.

Page 4: Reverse Ajax Dwr
Page 5: Reverse Ajax Dwr

1. Polling;2. Piggyback;3. Comet;

Page 6: Reverse Ajax Dwr

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.

Page 7: Reverse Ajax Dwr

Servidor você tem alguma atualização pra

mim ?

SIM

NÃO

Page 8: Reverse Ajax Dwr

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.

Page 9: Reverse Ajax Dwr

Servidor preciso do extrato da minha

conta.

Receba seu extrato e um débito no seu

cartão.

Opá, tenho uma nova

atualização pra você !

Opá, tenho uma nova

atualização pra você !

Page 10: Reverse Ajax Dwr

Comet – (Ativo)

O servidor fica responsável em atualizar a qualquer momento o cliente.

Uma única conexão é aberta e mantida pelo servidor.

Page 11: Reverse Ajax Dwr

Ele se utiliza basicamente de duas estratégias:

1.Streaming;

2.Long polling;

Page 12: Reverse Ajax Dwr

1. Streaming

O navegador abre uma única conexão persistentepara o servidor.

Quando o servidor envia algum evento a conexão não é fechada.

Page 13: Reverse Ajax Dwr

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.

Page 14: Reverse Ajax Dwr

Seja qual for a técnica, o servidor é capaz deenviar novas informações com baixa latência;

Streaming é considerado de melhor desempenho comparado ao Long Polling;

Page 15: Reverse Ajax Dwr

Vítima receba essa atualização.

Opa, a sua mulher acabou de efetuar uma compra com o

seu cartão !

Opa, a sua mulher acabou de efetuar uma compra com o

seu cartão !

Page 16: Reverse Ajax Dwr
Page 17: Reverse Ajax Dwr
Page 18: Reverse Ajax Dwr
Page 19: Reverse Ajax Dwr
Page 20: Reverse Ajax Dwr

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, Springdentre outros.

Page 21: Reverse Ajax Dwr
Page 22: Reverse Ajax Dwr
Page 23: Reverse Ajax Dwr

Site Oficial: http://directwebremoting.org/dwr

Artigos, Vídeo Aulas: http://www.handersonfrota.com.br/artigos-tutoriais/dwr/

Page 24: Reverse Ajax Dwr
Page 25: Reverse Ajax 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.

Page 26: Reverse Ajax Dwr
Page 27: Reverse Ajax Dwr

1.Full Streaming(Comet - Streaming)2.Early Closing (Comet - Long Polling)3.Polling

Page 28: Reverse Ajax Dwr
Page 29: Reverse Ajax Dwr
Page 30: Reverse Ajax Dwr

1. Basta acrescentar o trecho de código no seu web.xml. Com isso você ativa o Reverse Ajax.

Page 31: Reverse Ajax Dwr

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.

Page 32: Reverse Ajax Dwr
Page 33: Reverse Ajax Dwr
Page 34: Reverse Ajax Dwr

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.

Page 35: Reverse Ajax Dwr

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.

Page 36: Reverse Ajax Dwr

Ainda no web.xml adicione o seguinte trecho.

Depois basta acrescentar na sua página a seguinte linha de código:

Page 37: Reverse Ajax Dwr

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.

Page 38: Reverse Ajax Dwr

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.

Page 39: Reverse Ajax Dwr

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.

Page 40: Reverse Ajax Dwr
Page 41: Reverse Ajax Dwr

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:

Page 42: Reverse Ajax Dwr

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.

Page 43: Reverse Ajax Dwr
Page 44: Reverse Ajax Dwr

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.

Page 45: Reverse Ajax Dwr