Padrões de Integração

Padrões de Integração 2

Postado em Atualizado em

Uma empresa possui duas aplicações separadas que estão se comunicando via Mensagens, usando um canal de mensagens que as conecta.

Como dois aplicativos conectados por um canal de mensagens podem trocar informações?

Coloque as informações em uma Mensagem, uma “carta” de dados que o sistema de mensagens pode transmitir através de um canal de mensagem. Assim, qualquer dado que deve ser transmitido através de um sistema de mensagens deve ser convertido em uma ou mais mensagens que podem ser enviadas através de canais de mensagens.

Para todas as informações desta série, veja esse artigo.

“Por acaso eu procuro a aprovação das pessoas? Não! O que eu quero é a aprovação de Deus.” Gálatas 1:10

Anúncios

Padrões de Integração 1

Postado em Atualizado em


Como um aplicativo se comunica com outro usando mensagens?

Conecte os aplicativos usando um canal de mensagens, onde um aplicativo grava informações no canal e o outro lê essa informação do canal. Quando um aplicativo tem informações para se comunicar, ele não apenas exibe as informações no sistema de mensagens, ele adiciona a informação a um canal de mensagens específico. Um aplicativo que recebe informações não é apenas retirá-lo aleatoriamente do sistema de mensagens; Ele recupera as informações de um determinado canal de mensagens.

Para todas as informações desta série, veja esse artigo.

“Todo aquele que afirma que Jesus é o Filho de Deus, Deus vive unido com ele, e ele vive unido com Deus.” 1 João 4:15

Série de Padrões de Integração

Postado em Atualizado em

Uma solução não vive sozinha

As aplicações de hoje raramente vivem isoladas. Os usuários esperam acesso instantâneo a todas as funcionalidades, que podem ser fornecidas por aplicativos e serviços diferentes, dentro ou fora da corporação. Sendo assim, a integração de soluções nas corporações hoje é um requisito obrigatório para qualquer negocio. Em um mundo ideal, pode se imaginar uma organização que tenha um sistema único e coeso, projetado desde o inicio para funcionar de forma unificada e coerente. Porém, a realidade que vemos é completamente diferente. Em uma empresa, mesmo que pequena, muito dificilmente existe apenas uma aplicação. E mesmo que se opte por desenvolver tal aplicação única, diversos seriam os desafios que acabariam por inviabilizar a estratégia.

Integrar é dificil

E para cumprir esse requisito, projetistas e arquitetos de software precisam considerar que integrações são complexas e cheios de desafios, uma vez que podem ocorrer entre soluções estruturadas, de diferentes provedores, de diferentes épocas, com plataformas distintas, com tecnologias distintas, usando protocolos distintos, repleta de restrições, limitações, problemas, separadas geograficamente dentro e fora do escopo da organização.

Reuso de Conhecimento

A grande questão desse tópico é que faz algum tempo que não precisamos mais nos “aventurar a desvendar ou inventar” os segredos da integração! No livro Enterprise Integration Patterns, temos uma documentação extensa e completa de um catálogo de padrões que nos fornece um arsenal de informações a respeito de várias estratégias já usadas e aprovados em ambientes de produção nas ultimas décadas. O proposito desse artigo hoje é resumir os principais pontos desse livro. Acomode-se na sua cadeira e vamos que vamos 🙂 .

Caraterísticas de Integração

Segundo o livro, antes de qualquer ação, é necessário que o responsável pela integração pondere pelo menos 10 características fundamentais na decisão que repercutiram futuramente na qualidade, evolução e sustentabilidade, podendo impactar positivamente ou negativamente no serviço final. Segue eles abaixo:

  1. Acoplamento: Aplicações integradas devem minimizar as dependências entre si, de forma que cada uma possa evoluir sem causar problemas para as demais. Integrações devem ser específicas o suficiente para cumprir seu papel, porém, genéricas o suficiente para garantir que mudanças não façam com que as aplicações dependentes parem.
  2. Formato: Para se integrarem, aplicações devem concordar em um formato de dado. Considerando que alterar todas as aplicações da organização para considerar um formato de dado único pode ser inviável, tradutores intermediários podem ser empregados. Outro assunto relacionado é como a evolução do formato do dado ao longo do tempo pode impactar as aplicações dependentes.
  3. Seleção de Tecnologia: Diferentes abordagens de integração requerem diferentes quantidades de licenças de software e hardware. Tais ferramentas podem ser caras, podem levar a dependência da organização com fornecedores específicos e ao aumento da curva de aprendizado dos desenvolvedores.
  4. Exposição de Funcionalidades: Muitas abordagens de integrações permitem que aplicações compartilhem não apenas dados, mas também funcionalidades. Tal compartilhamento é interessante, pois gera um nível maior de abstração entre as aplicações envolvidas.
  5. Tempo para atualização: Integrações devem ser estruturadas pensando na minimização do tempo de defasagem de dado. Idealmente, aplicações consumidoras de dado deveriam ser informadas assim que o dado estivesse pronto para consumo. Quanto mais tempo se leva para o compartilhamento do dado, maior a probabilidade de falta de sincronismo de dados.
  6. Processamento Assíncrono: A chamada de funcionalidades remotas de forma síncrona pode ser algo custoso para a aplicação consumidora. A capacidade de realizar tarefas assíncronas traz diversas vantagens como, por exemplo, escalabilidade. Porém, tal solução tem design, desenvolvimento e depuração mais complexos.
  7. Confiabilidade: Conexões remotas não são apenas lentas, mas também são muito menos confiáveis do que a execução de procedimentos locais. Aplicações remotas podem não estar disponíveis ou a rede pode estar temporariamente indisponível. Comunicações assíncronas e confiáveis permitem que a aplicação origem realize outras tarefas, de forma confiante que a aplicação destino receberá a informação.
  8. Intrusividade: Integrações devem causar o mínimo de impacto em códigos existentes e devem requerer pouca codificação.
  9. Esforço: Algumas soluções de integração podem endereçar bem os diversos fatores apresentados, porém, podem ser difíceis de se desenvolver, depurar e manter. Profissionais específicos podem ser necessários para monitorá-las e para gerenciar erros.
  10. Escalabilidade: Integrações devem causar o mínimo de impacto na performance dos sistemas envolvidos. Também devem ser projetadas para suportar aumento no volume de dados trafegados e ainda pensando-se nos impactos decorrentes de acréscimo no número de sistemas consumidores de uma determinada informação. (Não constam no livro. Adicionados por mim por considera-los igualmente importantes com relação aos demais.)

Estilos de Integração

Segundo o livro, a evolução de anos de integração nos mostram que existem 4 principais estilos de integração. Esses quatros estilos, se endereçam automaticamente assumindo as caraterísticas acima citadas. Vejamos a seguir:

1) Transferência de Arquivo

Um sistema escreve um arquivo texto ou binário para que outro sistema leia.

1

2) Banco de Dados Compartilhado

Múltiplos sistemas utilizam o mesmo banco de dados físicos para consultar e manipular dados.

2

3) Invocação Remota

Um sistema expõe dados e funcionalidades para que sejam acessadas remotamente por outro sistema através de uso de tecnologias e protocolos proprietário ou públicos.

3

4) Mensageria

As aplicações se conectam a um sistema comum e intermediário de mensageria conhecido como MOM, de forma a compartilhar dados e a invocar operações através do uso de mensagens. O livro defini 65 diferentes micros padrões dentro desse estilo que pode ser combinado para dar soluções nos mais diversos cenários.

4

Prós e Contras de Cada Estilo

Cada um dos estilos possuem vantagens e desvantagens. A ideia não é usar sempre a mesma, mas ao invés, aquela que melhor se adeque a um cenário em particular. O livro é tão bom que já nos poupa tempo, classificando sistematicamente os prós e contras de cada caraterísticas versus o estilos, nos ajudando a ter uma visão global na tomada de decisão. Segue abaixo:

clip_image012

Qual é melhor ou Pior? Qual é o bala de Prata?

Segundo o livro, nenhum estilo ou abordagem de integração existente endereça todas as características acima ao mesmo tempo de forma igualmente bem. O estilo Mensageira é que mais se destaca entre todos por apresentar 80% de pontos fortes e 20% pontos fracos, e devem ser sempre o primeiro a ser considerado, porém, determinadas abordagens de integração podem ser melhores do que outras em determinados cenários. Em alguns casos, se faz necessário ate misturar dois ou mais estilos juntos para se chegar em um modelo mais adequado.

65 Padrões de Mensageria

A partir de hoje estarei postando um resumo de cada padrão de mensageria para ser utilizado como material de referencia e estudo. Até lá!

“Quando estamos na presença de Deus, temos coragem por causa do seguinte: se pedimos alguma coisa de acordo com a sua vontade, temos a certeza de que ele nos ouve.”1 João 5:14