3 mensagens, 3 participantes

Integração entre aplicações

#ejb #web services #JMS #integração

 
Avatar Paulo Melo
3 mensagens

Fala aí pessoal, blz?

Há um tempo atrás eu estava pesquisando sobre o assunto mas, por razões diversas, tive que parar um pouco. Porém, agora voltei e gostaria de saber o que o pessoal anda usando de solução a respeito. Sabemos dos EAI (Enterprise Integration Patterns) e neles podemos tirar várias idéias porém, também sabemos que muitas são as soluções/produtos disponíveis para implementá-los.

Então, trabalho em um ambiente heterogêneo (multi plataforma/linguagem) porém, a maioria esmagadora das aplicações são feitas em Java. E há uns dias atrás estou re-avaliando o uso de WebServices para integrar aplicações Java-Java (internas) pois, receio chegarmos a um gargá-lo (performance, largura de banda etc.) no futuro devido a demanda estar aumentando e com elas a necessidade de integração. Estou pesquisando EJB 3+ e sei das várias vantagens que vou ter usando esta tecnologia (confiabilidade, robustez, atomicidade (algumas aplicações exigem atomicidade na integração) etc.) porém, uma dos preços que devemos pagar por usá-lo me preocupa: tráfego de objetos e acoplamento. Enfim, de uma coisa estou certo, não existe nada perfeito. rsrsrsrs

Então, gostaria de saber: o que vc’s andam usando para integrar as aplicações com as quais vc’s trabalham (principalmente nos cenários que citei)?

Valeu!

Share |
 
Avatar j0nny
5 mensagens

Eu pessoalmente prefiro usar algo REST trafegando JSON, e é assim que tenho feito ultimamente.

--

github.com/jonatasdaniel

 
Avatar Felipe Oliveira
52 mensagens

Olá Paulo,

Se você está numa arquitetura Homogênea, ou seja – Java – Java, não vale à pena utilizar WebServices.

WebServices servem para interoperabilidade entre plataformas, todos os Standards WS-*, provém da experiência pregressa do universo CORBA, e os EJBs seguem a mesma linha.

Performance e largura de banda, são resolvidas com utilização de patterns, EIPS – como você citou e vale à pena estudá-los para entender um pouco mais a respeito.

Existem “Frameworks” de integração, assim como usamos MVC, Persistência. Esses fazem essa implementação, de maneira que torne fácil e rápida e com muita qualidade sua integração – ESBs.

Atualmente os produtos evoluiram muito. Se acompanhar as atividades por exemplo, da MuleSoft, vai ver que o produto vem evoluindo num rítmo quase semanal.

Integração com REST como o Jonny citou, atende somente a alguns casos, onde você tem por exemplo um protocolo uniforme, pode trabalhar apenas com a representação do Grafo – JSON. Se tiver falando de um protocolo rígido como o financeiro SWIFT ou HTL7, precisá de regras e tipagem forte, já que o JSON é SchemaLess e não serve com o propósito de “contratos”, o que é bastante importante em cenários fortes de integração.

O HTTP é lento, pois é síncrono por default e a segurança do HTTPs em nível de Transport será somente point-to-point. Você não conseguirá propagar a um terceiro sistema adjacente por exemplo.

Também não conseguirá fazer uma “Orquestração” com REST, se tiver que manter estado e fazer consultas a diferentes sistemas como SAP, EBS etc…

Performance tem muito mais a ver com o design da sua aplicação, utilizar patterns como Correlation ID com JMS por exemplo, pode aumentar drasticamente sua performance. Mas aqui entraríamos num assunto de ThreadSafe e teria que explicar como são as implementações síncronas tradicionais…

Por fim, você pode desenhar puramente em Java, para cenários de integração com outros protocolos como File, FTP, JMS, AMQP etc, vc poderia adotar um Mule – ESB.

Se um dia quiser expor parte da sua API para sistemas heterogêneos como .NET, o ESB ajudará nessa etapa também e ainda poderia servir como Anti-corrpuption Layer para um design Restful para representação final dos recursos.

Amigo, apareça no minicurso de hoje na soaexpert, é free, darei vários exemplos :-)

Um abraço,

--

Treinamentos SOA|EXPERT
(SOA, ESB, BPEL- BPM, CEP, Rules Engine, BI, BAM)

Formatação

Faça o login

CADASTRE-SE AGORA

. .