Estou desenvolvendo uma aplicação Java que configura e interage com dispositivos serais (teclados,impressoras e painéis). Estou usando MBeans para isso apesar da aplicação rodar locamente (em cada filial existirá uma aplicação WAR que chamará no mesmo servidor serviços desse MBean). Estou usando MBeans porque preciso monitorar esses recursos de hardware (eles possuem uma API para acessá-los por socket) e , em uma segunda fase , esse gerenciamento será feito também pelo escritório central (o que justificaria mais JMX pela caracterísitica de componente distribuído). A minhas dúvidas são:
Não é uma má prática usar MBeans na primeira fase com acesso local ?
Uma aplicação SAR no JBoss (que levanta os MBeans) usa Hibernate e Spring , isso não será problema?
Parabéns por usar JMX que é bom usar em praticamente TODAS as aplicações, locais ou não.
Correto o que escreveu, a menos da última frase pois JMX não está obrigatoriamente associado a noção de componente distribuído. Mas pode servir também nestes casos.
[quote=rg_eder]A minhas dúvidas são:
Não é uma má prática usar MBeans na primeira fase com acesso local ?
Uma aplicação SAR no JBoss (que levanta os MBeans) usa Hibernate e Spring , isso não será problema?[/quote]
Para mim é uma excelente prática pois permite que alguém vá lá na máquina local e monitore com JConsole. No futuro se pode usar conectores ou adapters para monitorar remotamente. Ou simplesmente enviar emails ou torpedos de alarme em caso de falha detectada.
Acho que você não precisava ter colocado como serviço do JBoss. Para mim era mais simples não ter feito assim. Mas isto não deve dar problema nenhum.
Pergunto:
Vovê usou as “facilidades” do Spring para usar JMX? (Entre aspas porque eu acho meio complicado)
Antes a API nem vinha com o Java e a gente era obrigado a fazer como a turma do JBoss que escreveu os proxies e conectores remotos RMI na raça.
Desde o Java 5 o JMX já está no JDK, com conectores remotos e (quase) tudo mais. Só foi podado o adaptador HTTP mas a gente pode obter baixando uma versão antiga do JMX que vinha com o tal adaptador.
No Java 5 foi criado o conceito MXBean e o PlatformMBean. Agora com o Java 6 a gente pode criar nosso próprios MXBeans.
Há outras pequenas perfumarias que também foram acrescentadas desde a versão inicial.
O uso de JMX ainda não teve a importância que merece porque as empresas que querem monitoramento compram logo um OpenView ou um Tivoli. Mas com JMX muitas coisas podem ser feitas de graça e com relativamente pouco esforço.
Não utilizei nenhuma facilidade do Spring para JMX não. Esse módulo ficou pronto e está muito bom mesmo. Agradeço as respostas , me encorajaram a continuar nesse caminho.
Acredito que o desacoplamento provido pelo JMX nunca é demais, tendo em vista que essa API pode mudar (você pode encontrar uma melhor) ou mesmo abstrair o tipo especifico do hardware, como uma impressora (de outra marca e outro modelo) e mesmo assim, pedir apenas ao MBean Server, que configure a impressora (visto que a interface é a mesma) através dos MBeans.
Eu só estou pensando na complexidade desta tecnologia. A API não evolui substancialmente há um tempo.. Digo em facilidade de uso...
Luca, você sabe algo a respeito?
Acredito que o desacoplamento provido pelo JMX nunca é demais, tendo em vista que essa API pode mudar (você pode encontrar uma melhor) ou mesmo abstrair o tipo especifico do hardware, como uma impressora (de outra marca e outro modelo) e mesmo assim, pedir apenas ao MBean Server, que configure a impressora (visto que a interface é a mesma) através dos MBeans.
Eu só estou pensando na complexidade desta tecnologia. A API não evolui substancialmente há um tempo… Digo em facilidade de uso…