Pessoal, preciso implementar um servico para que eu possa enviar mensagens entre maquinas na rede. Tenho uma hierarquia onde uma maquina mestre envia notificacoes para execucao de tarefas em maquinas da rede, essas precisam receber essa notificacao, executar as tarefas solicitadas e dar uma resposta a maquina mestre.
Ja implementei isso via Socket, via RMI, etc… Queria saber a opiniao de vcs, pois minhas ideias ja se esgotaram. O que eu quero é usar o minimo de trafego na rede (sao cerca de 30 maquinas).
Estou utilizando aplicacoes SWING (PDVs) uma em cada caixa da empresa, que por sua vez se comunicam com um servidor responsavel por exemplo, pela configuracao dos PDVs. A aplicacao que esta no servidor roda em JBoss, toda a transferencia de aquivos entre Servidor x PDVs e vice-versa sao feitas via download/upload utilizando ftp. O que esta faltando fazer é esse esquema de mensagens entre Servidor x PDV. Fiz uma implementacao via socket, outra via RMI, mas acho que ainda nao ficou ideal, por isso queria a opiniao do pessoal do forum.
Entao, via JMS daria certo ??? a comunicacao entre pdvs e o servidor é bidirecional… ou seja eu precisaria de um “servico de filas” jms em cada pdv ??? ou estou errado ???
O mais simples é usar sockets. Quanto ao tráfego de rede vai depender do tamanho de suas mensagens. Em redes Windows trafegam tanto lixo que seus sockets não vão acrescentar muita coisa. Com RMI vc envia o objeto todo e há possibilidade de aumentar o tráfego.
Como você já fez com sockets que para mim é uma boa soluçaõ, esqueça JMS.
Os pacotes enviados pela rede sao pequenos, tambem nao sao enviados com tanta frequencia.
To fazendo varios testes porque o processo precisa ficar bem enxuto e seguro, as quedas de energia sao frequentes e o software precisa retornar no mesmo estado que estava antes da queda. As redes das lojas sempre sao mal feitas e super lentas, por isso a preocupacao com o trafego.
Os problemas que eu to tendo sao os seguintes :
A rede cai com frequencia e via sockets tenho que ficar tentando transmitir até garantir que chegou do outro lado, ai gravo na base de dados a mensagem.
Com rmi quando um pdv é desligado por queda de energia, nao sei o que ocorre que as vezes o servidor rmi nao sobre novamente. Uso com rmiregistry…
Outra tentativa foi via tabela em banco de dados, mas o problema era que o servidor tinha que ficar fazendo conexao com os bancos locais no pdv e o pdv conectando no bando do servidor.
via jms nao cheguei a implementar, mas pelo que sei ele garante a chegada de mensagens do outro lado.