Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

Apache Camel: Um guia completo –Parte 1

Conheça esse poderoso framework que simplifica a integração entre sistemas

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login

(opcional) Onde podemos melhorar?

Confirmar voto
0
 (0)  (0)
Fique por dentro
Este artigo apresenta o Apache Camel, um framework para integração entre sistemas baseado em padrões. Esse consolidado framework open source diminui as dificuldades existentes nas integrações encapsulando código complexo através de uma linguagem simples e intuitiva, e com a utilização de componentes pré-existentes garante maior agilidade e eficiência no desenvolvimento. Portanto, aqueles que desejam aprender como o Apache Camel funciona, seus conceitos, recursos e como utilizá-lo em suas aplicações, encontrarão neste artigo um material de referência completo.

A TI se encaixa como uma grande aliada para suportar os negócios das empresas e assegurar que todo o ecossistema globalizado e interligado funcione de forma satisfatória. Portanto, há um grande esforço por parte da TI para construir, integrar e manter os diversos sistemas que compõem todo o fluxo de negócio da empresa.

Diante dessas condições, o artigo apresentará em detalhes os problemas que geralmente são enfrentados nesse contexto de integração de sistemas, além de desafios que constantemente colocam sistemas à prova, e, as soluções/estratégias que ao longo do tempo surgiram para simplificar todo esse cenário.

Além disso, será apresentado o framework Apache Camel, que foi desenvolvido com base nessas soluções e cuja principal função é facilitar a construção de sistemas voltados especialmente para integrações.

Para iniciar o estudo do tema proposto, a próxima seção apresentará em detalhes os problemas e desafios que são largamente enfrentados pelos desenvolvedores quando eles lidam com requisitos de integração.

Problemas e desafios para a integração

Uma integração efetiva é um pré-requisito fundamental para o sucesso dos negócios, mas os desafios relacionados à mesma, como tempo, custo e problemas técnicos, podem acabar com grandes investimentos e levar ao fracasso muitos projetos. Esses problemas incluem:

  • Sistemas legados baseados no desenvolvimento “tapa buraco”;
  • Sistemas com arquitetura de uma única camada;
  • Sistemas legados que não foram projetados para atender novos requisitos de qualidade e que são diretamente afetados pela necessidade de interoperabilidade, desempenho e segurança;
  • Sistemas que foram projetados para trabalhar com os dados restritos ao uso interno;
  • Decisões tomadas sem as devidas análises de arquitetura de software; e
  • Falta de definições adequadas referentes ao escopo e esforço necessários para a integração.

Além dos problemas mencionados, existem alguns desafios que devem ser considerados durante a integração entre sistemas. São eles:

  • Redes são instáveis e as soluções de integração implicam no transporte de dados por meio de redes que muitas vezes não são resilientes. Portanto, os sistemas integrados devem estar preparados para lidar com problemas relacionados à rede;
  • Como as redes são lentas, o envio de dados por meio destas é mais lento que chamadas locais. Sendo assim, pensar em uma solução distribuída da mesma forma que se pensa em uma solução isolada pode acarretar em sérios problemas relacionados a desempenho;
  • Visto que os sistemas são implementados com as mais diversas tecnologias, uma solução de integração necessita transmitir e receber dados de sistemas que utilizam diferentes linguagens de programação, plataformas, frameworks e formatos de dados. Portanto, a solução a ser construída deve ser capaz de atender a esse cenário;
  • Como mudanças são inevitáveis, sistemas são alterados a todo momento. Sendo assim, uma solução de integração deve garantir seu correto funcionamento e, consequentemente, o fluxo de negócio, independentemente das alterações realizadas nos sistemas que se conecta.

Felizmente os problemas e desafios apresentados até o momento têm sido superados pelos desenvolvedores ao longo do tempo, através de estilos de integração que foram adotados amplamente pelo mercado. Para nos aprofundarmos nesses estilos, a seção a seguir trará uma análise com mais detalhes.

Estilos de integração

Diante de todas as dificuldades e necessidades identificadas anteriormente, as integrações precisam ocorrer não apenas entre soluções homogêneas, mas também entre soluções estruturadas em plataformas distintas, separadas geograficamente dentro e fora do escopo da organização e que adotam as mais variadas tecnologias. Baseado nisso, as diferentes abordagens para que sistemas se comuniquem podem ser resumidas em quatro grandes estilos, a saber:

  • Transferência de arquivo (Electronic Data Interchange ou EDI): um sistema escreve um arquivo de texto ou binário para que um outro sistema leia. Esse estilo exige conformidades no nome do arquivo, localização e formato (layout). Normalmente está associado ao uso do protocolo FTP (File Transfer Protocol). Na Figura 1 é exibido um diagrama exemplificando a integração por EDI;

Figura 1. Integração entre sistemas através da transferência de arquivo.

  • Banco de dados compartilhado: múltiplos sistemas utilizam um mesmo banco de dados físico para consultar e manipular dados. Com isso, não há duplicidade de informação. A Figura 2 ilustra esse estilo;

Figura 2. Integração entre sistemas através do dado compartilhado via banco de dados.

  • Invocação Remota de Procedimento (Remote Procedure Call ou RPC): um sistema expõe suas funcionalidades para que sejam acessadas remotamente por outros sistemas. Nesse estilo a comunicação ocorre em tempo real, sincronamente e necessita que os sistemas integrados possuam compatibilidade em relação à tecnologia remota para que a comunicação funcione. A Figura 3 demonstra um cenário de integração com RPC;

Figura 3. Integração entre sistemas através de RPC.

  • Mensageria: é a tecnologia que permite a entrega rápida e confiável de mensagens através da comunicação assíncrona. Nessa proposta, a mensagem é simplesmente um tipo de estrutura de dados como um texto (string), um arranjo de bytes, um registro ou um objeto, servindo como um meio de integrar sistemas. Tudo isso funciona através de um sistema que publica uma mensagem em um canal para que outro, que também possui acesso a esse canal, possa ler e interpretar essa mensagem. A Figura 4 apresenta um diagrama exibindo um exemplo de comunicação através desse estilo;

Figura 4. Integração entre sistemas através de mensagens.

Apesar dos quatro estilos apresentados resolverem os mesmos problemas de integração, existem vantagens e desvantagens a serem consideradas na escolha de cada um. Para auxiliar essa escolha, foram definidos alguns critérios que devem ser analisados cuidadosamente. A Tabela 1 apresenta um comparativo entre os estilos de integração considerando esses critérios.

Critérios

Transferência de Arquivo

Banco de Dados Compartilhado

Invocação Remota de Procedimento

Mensageria

Acoplamento entre os sistemas

++

---

-

+++

Nível de intrusão

++

---

+

+++

Escolha da tecnologia

++

++

++

-

Formato dos dados

+

++

++

+++

Tempo para atualização dos dados

--

+++

++

++

Exposição das funcionalidades

---

---

+++

++

Processamento assíncrono

+++

++

++

+++

Confiabilidade

--

+++

+

+++

Tabela 1. Comparativo de pontos positivos e negativos de cada estilo baseado em critérios comuns.

Observa-se que o estilo de mensageria é o que possui mais pontos positivos dentre os critérios comparados, ou seja, a mensageria é o estilo de integração que possui mais vantagens e por isso é considerada a melhor opção. Porém, os sistema" [...]

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

Carregando
 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Ajude-nos a evoluir: você gostou do post?  (0)  (0)

(opcional) Onde podemos melhorar?

Confirmar voto
Compartilhe:
Ficou com alguma dúvida?