Conhecer os padrões de integração, saber onde aplicá-los e como encaixá-los para construir uma solução, e como desenvolver e implementar estes padrões com o framework EIP Apache Camel.
Para que serve:
Integrar sistemas a partir do uso de troca de mensagens exige processamento destas mensagens vindas de diferentes origens e em diferentes formatos. Com o uso de padrões de integração, através de definições de rotas com o Apache Camel, isto se torna possível.
Em que situação o tema é útil:
Aos desenvolvedores e arquitetos que encontram pelo caminho o desafio de permitir a comunicação entre diversos sistemas e plataformas, os padrões de integração podem ser o caminho certo para implementar, segura e coerente, a inteligência do software comunicador. Processar dados que chegam em diferentes formatos, de forma eficiente e eficaz, é outro desafio que pode ser resolvido seguindo estes padrões.
Siga a rota do Camelo:
O Apache Camel traz implementações para os Padrões de Integração facilmente aplicáveis nos aplicativos Java. Rotear, filtrar, agrupar e segregar mensagens estão entre as diversas funcionalidades que esta biblioteca oferece.
Diversos produtos no mercado o utilizam e não é sem motivo. O Apache Camel é uma ótima opção para oferecer roteamento, transformação de dados e regras de mediação na integração entre sistemas. É uma das mais completas implementações Open Source destas funcionalidades, com uma série de componentes, configuração em XML e DSL (Domain-specific language) em Java e integração com Spring.
Sigla paraDomain Specific Language,é uma linguagem de programação ou uma linguagem específica para solucionar o domínio de um problema em particular, uma técnica para representar um determinado problema ou uma técnica de solução a um problema específico. Entendemos a linguagem Java como uma linguagem com propósitos genéricos. No caso de uma DSL em Java, esta dedica-se a atender um caso específico que facilite o entendimento e a solução do problema.
Enterprise Integration Patterns
Para entender como o Apache Camel funciona é preciso conhecer primeiro o que ele se propõe a resolver. Os padrões de integração (veja o quadro “EIPs – Padrões de Integração”) visam solucionar problemas comuns na troca de mensagens entre sistemas. Com os EIPs, a comunicação se torna desacoplada entre as pontas, deixando o Camel (ou qualquer outro framework de integração) como mediador e juiz.
Os dados que trafegam por meio do Camel podem ser transformados, filtrados, incrementados, agregados ou mesmo ignorados. Por meio da definição de regras, rotas podem ser definidas, ações configuradas e interceptadores injetados. Todas estas funcionalidades do Camel são implementações dos padrões de integração mencionados. Na Figura 1 é apresentado um exemplo destes padrões.
Antes de codificar qualquer solução EIP, o arquiteto e o desenvolvedor devem conhecer bem os padrões para não caírem em armadilhas. Existem alguns padrões similares, ou a combinação de dois ou mais padrões que resolvem o mesmo problema que outro padrão isolado. A complexidade da implementação desta combinação de padrões torna o trabalho caro, longo e confuso.
Por esta razão, é obrigação do arquiteto entender o problema e conhecer o máximo de padrões possível, para fazer a escolha certa. E é dever do desenvolvedor conhecer a implementação destes padrões para transpor para o código a solução definida da forma mais rápida e com o maior grau de qualidade possível. Implementar a solução para o problema com o padrão errado pode causar problemas futuros quando houver a necessidade de evoluir o sistema devido às mudanças do mercado.
Figura 1. Exemplo de padrão: Content-based Router
Estes padrões têm por objetivo atender necessidades de comunicação e processamento de dados entre sistemas e plataformas diferentes, que transportam mensagens em diversos formatos. Também podem tratar mensagens que possuem dados específicos, filtrando ou roteando para pontos específicos do sistema.
...