Este é um post disponível para assinantes MVPArtigo Java Magazine 70 - Siga a rota do Camelo
A biblioteca está presente em vários produtos e é utilizada desde o simples roteamento de mensagens até a implementação de complexos padrões
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 70
Siga a rota do Camelo
Apache Camel é mais que rotear mensagens
A biblioteca está presente em vários produtos e é utilizada desde o simples roteamento de mensagens até a implementação de complexos padrões
De que se trata o artigo:
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.
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
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.
EIPs - Padrões de Integração
Trabalhar com o Apache Camel não é apenas codificar rotas em Java ou XML. É entender exatamente o problema, conhecer os padrões, e saber escolher aquele que se encaixa como a solução ideal. Abaixo, uma lista de alguns dos padrões mais utilizados e alguns casos onde podem ser aplicados.
Figura Q1. Pipes e Filters
Pipes e Filters são comumente acoplados para executar processos que avançam serialmente. A cada pulo entre Pipes, é possível filtrar o conteúdo da mensagem, transformando-a ou incrementando-a em uma mensagem que atenderá à necessidade do negócio.
Figura Q2. Wire Tap
O padrão Wire Tap serve para acoplar um Endpoint sem interferir no fluxo normal da mensagem. Uma cópia é enviada para o Tap, enquanto a mensagem é encaminhada para o seu destino final. Útil para logging e tracing de dados.
Figura Q3. Message Translator
Importante para integrar diferentes sistemas, que não compartilham do mesmo formato das mensagens. O padrão Message Translator serve para traduzir as mensagens vindas em um formato, por exemplo, CSV, e transformá-las em XML para então encaminhá-las a outro sistema ou componente.
Figura Q4. Message Splitter
Pode ser utilizado em casos onde uma única mensagem entra no contexto contendo uma série de itens, mas que estes podem ser processados em unidades de trabalho isoladas. Fica fácil concluir que este padrão oferece o suporte a processamento paralelo.
Arquitetura do Camelo
É difícil imaginar um produto que traz implementações dos EIPs de uma forma simplificada. E é contrariando o senso comum que o Apache Camel traz somente três macro-definições em sua arquitetura – representada na Figura 2:
- Processors;
- Endpoints;
- Components.
Figura 2. Visão geral da arquitetura do Apache Camel
Processors
O objetivo dos processadores é o de definir regras de mediação e rotas para as mensagens que entram e/ou saem do contexto do Camel. É com estas regras que os padrões de integração são definidos e acoplados para constituir uma solução.
Components
São as implementações para os meios de comunicação externos e internos do contexto do Camel. O framework possui componentes para se conectar, por exemplo, a filas JMS, FTPs, servidores POP3 e web services.
"ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
6 COMENTÁRIOS
os fontes desse e dos demais artigos dessa edição estão disponíveis em
http://www.devmedia.com.br/resumo/download.asp?site=6&idcanal=34

Atenciosamente,
Equipe Devmedia.
Att,
David A Ferreira
Space do autor


0
0
