| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 10:16:08
|
Guerr@
Virtual Machine Man
![[Avatar]](/images/avatar/9fb640ea6abe0e849c8c1fd6eea97c22.jpg)
Membro desde: 03/12/2006 10:32:50
Mensagens: 521
Offline
|
Estou precisando que uma aplicação Swing "escute" modificações ocorridas em um servidor de aplicações, mais ou menos como um observer remoto. Por enquanto estou criando no cliente uma thread que vai acessar um bean de tempos em tempos verificando se houve modificação.
Confesso que fiquei meio incomodado com isto... Qual seria a melhor opção para o servidor de aplicações avisar o cliente que houve uma modificação sem que eu precise ter um servidor no cliente.
Já agradeço qualquer contribuição!!!
|
Eduardo Guerra - "É Java na ponta do dedo!"
Desenvolvedor de Frameworks - Pesquisador
Editor Chefe - Revista MundoJ
Professor - Instituto Tecnológico de Aeronáutica
Me siga no Twiter!!! http://twitter.com/emguerra |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 10:25:41
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Eu sou fã de trocas de mensagens HTTP para não entrar com possíveis conflitos com o Departamentos de redes. E com HTTP, o único meio é o cliente de tempos em tempos enviar um GET ou POST (uma sonda) perguntando:
- Há alguma modificação?
Mas se usa JMS, você pode registrar os clientes em um tópico e o servidor publicará as modificações quando ocorrerem.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 12:38:24
|
Guerr@
Virtual Machine Man
![[Avatar]](/images/avatar/9fb640ea6abe0e849c8c1fd6eea97c22.jpg)
Membro desde: 03/12/2006 10:32:50
Mensagens: 521
Offline
|
Valeu pela resposta!!!
Como a aplicação já é um cliente do servidor de aplicações mesmo, atualmente esta pergunta de tempos em tempos está sendo feita via acesso a EJB mesmo.
A idéia do JMS é bem interessante, porém acho que poderia gerar um número de mensagens muito grande. Precisaria testar mesmo para ver como vai ficar a performance. Como estou encapsulando este mecanismo, depois vou fazer a implementação para JMS e ver qual vai ficar mais eficiente.
Alguma outra idéia?
|
Eduardo Guerra - "É Java na ponta do dedo!"
Desenvolvedor de Frameworks - Pesquisador
Editor Chefe - Revista MundoJ
Professor - Instituto Tecnológico de Aeronáutica
Me siga no Twiter!!! http://twitter.com/emguerra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/12/2006 09:35:31
|
Chulao
Thread.start()
![[Avatar]](/images/avatar/f0873a91b499e265ff6d78ff6e8985a0.jpg)
Membro desde: 05/01/2005 15:12:37
Mensagens: 46
Offline
|
Uma outra opção seria a utilização de Callbacks via EJB.
Agora não sei se essa abordagem ajuda a resolver ou a complicar o seu problema, eu precisei dessa abordagem uma vez e funcionou.
Mas em todo caso segue maiores informações:
http://www.ryerson.ca/~dgrimsha/courses/cps841/RMICallbacks.html
http://www.javaworld.com/javaworld/javaqa/1999-04/05-rmicallback.html
http://www.dca.fee.unicamp.br/cursos/PooJava/objdist/javarmi.html
http://www.cs.mcgill.ca/~cs577/project/rmiIntro/rmiintro.html
T+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 07:46:14
|
Guerr@
Virtual Machine Man
![[Avatar]](/images/avatar/9fb640ea6abe0e849c8c1fd6eea97c22.jpg)
Membro desde: 03/12/2006 10:32:50
Mensagens: 521
Offline
|
Valeu Luca!! A idéia do JMS funcionou 100%!!!
Esta idéia do Callback também é bem legal!!! Vou ver se crio também esta implementação! Obrigado pelos links!
|
Eduardo Guerra - "É Java na ponta do dedo!"
Desenvolvedor de Frameworks - Pesquisador
Editor Chefe - Revista MundoJ
Professor - Instituto Tecnológico de Aeronáutica
Me siga no Twiter!!! http://twitter.com/emguerra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 10:10:01
|
Guerr@
Virtual Machine Man
![[Avatar]](/images/avatar/9fb640ea6abe0e849c8c1fd6eea97c22.jpg)
Membro desde: 03/12/2006 10:32:50
Mensagens: 521
Offline
|
Valeu também Chulao! A abordagem do Callback RMI também funcionou muito bem!!!
Estou agora com 3 implementações funcionando na mão:
- Uma thread que chama um método de um EJB para buscar as mudanças periodicamente.
- A notificação dos clientes via JMS
- A notificação dos clientes via Callback RMI
Este é o tipo de coisa que costuma dar problema em ambiente de produção devido a carga e problemas inexperados como queda de rede e etc... Vou experimentar cada um deles e caso tenha algum problema, eu coloco aqui para ficar registrado!
Grato a todos pelas contribuições!!!
|
Eduardo Guerra - "É Java na ponta do dedo!"
Desenvolvedor de Frameworks - Pesquisador
Editor Chefe - Revista MundoJ
Professor - Instituto Tecnológico de Aeronáutica
Me siga no Twiter!!! http://twitter.com/emguerra |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 10:33:55
|
mister__m
Virtual Machine Man
![[Avatar]](/images/avatar/89b9c689a57b82e59074c6ba09aa394d.jpg)
Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline
|
Guerr@ wrote:
Este é o tipo de coisa que costuma dar problema em ambiente de produção devido a carga e problemas inexperados como queda de rede e etc...
Uma implementacao decente de JMS configurada direitinho com topicos durable e ack eh quase 100% a prova de falha. Existe o delay, como em qualquer solucao, mas eh certeza que o client vai receber a notificacao, mais cedo ou mais tarde.
|
Michael Nascimento Santos, aka Mister M
Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/12/2006 19:09:57
|
Guerr@
Virtual Machine Man
![[Avatar]](/images/avatar/9fb640ea6abe0e849c8c1fd6eea97c22.jpg)
Membro desde: 03/12/2006 10:32:50
Mensagens: 521
Offline
|
Cara, nós temos uma aplicação que roda em uma WAN (que é extremamente instável) e utiliza o SonicMQ. A quantidade de erros e instabilidades que tivemos que tratar foi absurda e a carga excessiva de mensagens causava leak de memória no servidor. Hoje funciona tudo redondinho, mas demorou um tempinho...
Acredito que a implementação com JMS neste caso é a mais adequada, principalmente porque a aplicação vai rodar dentro de uma LAN bem mais instável. Porém neste caso eu prefiro ser mais tipo São Tomé e fazer o teste em ambiente de produção para ver se vai dar problema...
|
Eduardo Guerra - "É Java na ponta do dedo!"
Desenvolvedor de Frameworks - Pesquisador
Editor Chefe - Revista MundoJ
Professor - Instituto Tecnológico de Aeronáutica
Me siga no Twiter!!! http://twitter.com/emguerra |
|
|
 |
|
|