Sugestão de Arquitetura p/ "Integrador de Sistemas"

Pessoal,

Estou a procura de uma arquitetura para um novo sistema que será um “integrador entre sistemas”. Vou explicar melhor.

Hoje, aqui na empresa temos diversos sistemas rodando. Alguns em Java, outros em ASP, outros comprados de terceiros, outros OpenSource… e assim vai. No entanto, há MUITA integração entre eles. Então, hoje, há JOB’s que são rodados de tempos em tempos para que os dados sejam levados de sistemas para outros sistemas.

O que eu quero fazer é padronizar a criação dos JOB’s, pois é criado um job (sem um padrão) para cada integração que precisa ser feita. Com a padronização dos JOB’s, eu gostaria de adiciona-los a um sistema maior que chamaria esses JOB’s e gerenciaria eles para que possamos ter relatórios e informações sobre as integrações. Em uma visão bem macro, o que eu estava pensando seria mais ou menos assim:

Eu estava pensando em fazer algo onde os JAR’s gerados no desenvolvimento dos JOB’s pudessem ser lidos pelo Integrador e o integrador chamaria a execução desses jars.

Em tecnologia, posso usar qualquer coisa OpenSource.

O que vocês recomendariam, a primeiro momento, de arquitetura. Ou teriam alguma outra idéia?

A resposta para seu problema é DEPENDE, ou seja, depende de uma série de fatores e variáveis que existem no seu parque de programas hoje.

Que tal uma consultoria?? :wink:

Ola, ficou meio vago, mas já pensou em XML?
webservice…
já que já tens uma estrutura web

A solução para seu problema se chama JMS.

Você poderia criar para cada lógica de job um Message Driven Bean, que transmitiria as informações via mensagens atraves de vários sistemas legados. No final utilizando o timer service e o controlM poderia ter o controle de quando tais mensagens seriam enviadas, isso se não desejar o comportamento padrão assincrono.

Para isso seria talvez necessário, para uma melhor arquitetura, criar um webservice na ponta de todos os sistemas legados, e então fazer o EJB Message Driven bean ler e transmitir a mensagem para o destino desejado.

Dessa forma teria um sistema central de integração entre todos os sistemas e poderia fazer um trace em tempo real das informações que estão sendo enviadas entre todos os sistemas.

E qualquer novo sistema, poderia facilmente adicionar mais um Message Driven, junto com o webservice na ponta e integrar mais esse novo sistema legado sem nenhum problema.

Já cogitou a hipótese de osgi? Ou Agendamento Cron?