Fala pessoal, blz? Seguinte, recentemente entrei em um novo emprego e de cara caí em uma “bombinha” aqui… hehehehe… Bom o lance é que fiquei reponsável por um sistema crítico aqui e quando fui estudar o código do mesmo percebi que ele é ALTEMENTE acoplado à outros sistemas existentes aqui(coisa de instanciar classes de persistência dos outros sistemas nas classes controle e por aí vai… argh!).
Bom, estou pensando em tentar isolar esta aplicação abstraindo os acessos a outras aplicações e das outras aplicações ao sistema. A pergunta é, se já passaram por problema semelhante, qual foi a solução? RMI, WebServices etc…
Se são todos sistemas escritos em Java a integração natural seria via RMI.
Se você precisar de algo mais escalável pense em usar JMS. Como framework de mensagens estou começando a brincar com algo bem novo e com pouca documentação mas que promete bastante para quem conhece os padrões de integração do Gregor Hohpe: Apache Camel.
PORÉM, se apenas é feito um uso das classes então bastaria isolar as classes comuns em diversas APIs.
Fala Luca, blz? Sim os sistemas são todos feitos em Java. Cara, estava pensando em RMI mesmo, mesmo pq existem aplicações que estão em servidores distintos. E para transparecer isso, estava pensando em interfaces(remotas ou não), daí teria um delegate da vida que encapsularia estes detalhes, abstraindo a forma de acesso à outra aplicação.
Estou querendo fazer isso pois, quero isolar a aplicação(fonte) para reestruturá-la (refactoring), pois a mesma não possui nenhum POJO da vida e usa as classes de persistência para armazenar os atributos. :shock: Como os famigerados Entity Beans. Sobre o JMS, já vi alguma coisa a respeito mas não pesquisei sobre. Mas com o JMS seria possível trafegar objetos como em RMI?
Com JMS geralmente o tráfego é só de dados. Para fazer chamadas remotas usando JMS como transporte os objetos iriam e voltariam como SOAP. Mas digo isto só para explicar, não que seja a melhor opção no seu caso.
Apouco tempo, tivemos um caso que não eram sistemas “diferentes”, porém era sistemas que rodavam local nas máquinas e tinham que sincronizar com um servidor que ficava online. Tendo em vista que a tecnologia usada no projeto, tanto para o sistema off-line quanto para o online eram Java, utilizamos RMI, para trabalhar, e deu muito certo. Como você está com JAva, também aconselho a trabalhar com RMI.
[quote=fsquadro]… Como você está com JAva, também aconselho a trabalhar com RMI.
Espero ter ajudado.
[/quote]
Pois é fsquadro, já tenho experiência com RMI(não com esse fim: integração), mas até onde sei o mesmo tem tudo que preciso. Só perguntei para saber se existia uma solução melhor para esse caso.
O problema do EJB é justamente o Container EJB. Acho que não preciso disso tudo.