Enterprise Integration Patterns (EIP) é um livro de Gregor Hohpe e Bobby Woolf e descreve 65 padrões para o uso de integração de aplicativos corporativos e middleware orientado a mensagens na forma de uma linguagem de padrões. Eles nos ajudam a usar formas padronizadas de integração de aplicativos, sem a necessidade de reinventar a roda cada vez que você tem um problema.
O objetivo dos padrões de integração de empresas é criar uma linguagem comum e um conjunto de ações de fluxo de trabalho para combiná-las para criar processos de negócios maduros e práticos. Ele fornece um catálogo de sessenta e cinco padrões que ajudam você a projetar soluções de mensagens eficazes para sua empresa.
O livro distingue quatro alternativas de alto nível para integração:
- Transferência de arquivo
- Banco de dados compartilhado
- Invocação de procedimento remoto
- Mensagens
Os seguintes tipos de integração são introduzidos:
- Portal de Informações
- Replicação de dados
- Função Comercial Compartilhada
- Arquitetura Orientada a Serviços
- Processo de Negócios Distribuído
- Integração Business-to-Business
- Interação fortemente acoplada vs. interação fracamente acoplada
Desenhe o diagrama de padrão de integração empresarial com a ferramenta online gratuita
A ferramenta gratuita Enterprise Integration Patterns da Visual Paradigm (ferramenta de diagrama EIP) apresenta um conjunto de recursos de edição que tornam a diagramação mais simples e rápida, como arrastar e soltar e guia de alinhamento, tornando a edição suave e intuitiva. A ferramenta de diagrama EIP também vem com um conjunto de símbolos e formas EIP que permitem criar diferentes tipos de diagramas EIP.
Você pode desenvolver facilmente seus padrões e depois produzi-los e compartilhá-los por meio de formatos como PNG, JPG, GIF, SVG e PDF.
Aprenda EIP com exemplos e modelos
Você pode começar com um diagrama em branco ou um modelo EIP. Seguem-se alguns dos modelos. Clique no botão Editar para começar a editar imediatamente. É gratuito e não precisa de cadastro.
Exemplo de padrão de integração empresarial: Proxy inteligente
Exemplo de padrão de integração corporativa: MSMQ de mensagens compostas
Quer adotar alguns outros padrões de integração empresarial?
Repositório de edição online EIP da Visual Paradigm
Estrutura de implementação para EIPs
O Apache Camel suporta a maioria dos padrões de integração empresarial do excelente livro de Gregor Hohpe e Bobby Woolf. Baseado em padrões de integração empresarial (EIP) para ajudá-lo a resolver seu problema de integração, aplicando as melhores práticas prontas para uso. O Camel suporta a maioria dos Enterprise Integration Patterns do excelente livro de Gregor Hohpe e Bobby Woolf, e padrões de integração mais recentes de arquiteturas de microsserviços .
Se você é novo no Camel, experimente o Guia de Introdução no Guia do Usuário antes de tentar implementar esses padrões.
SISTEMAS DE MENSAGENS
Canal de mensagem
Como um aplicativo se comunica com outro usando mensagens?
Mensagem
Como dois aplicativos conectados por um canal de mensagens podem trocar uma informação?
Como podemos realizar um processamento complexo em uma mensagem mantendo a independência e a flexibilidade?
Como você pode desacoplar etapas de processamento individuais para que as mensagens possam ser passadas para filtros diferentes, dependendo de um conjunto de condições?
Como os sistemas que usam diferentes formatos de dados podem se comunicar entre si usando mensagens?
Ponto de extremidade da mensagem
Como um aplicativo se conecta a um canal de mensagens para enviar e receber mensagens?
CANAIS DE MENSAGENS
Como o chamador pode ter certeza de que exatamente um destinatário receberá o documento ou realizará a chamada?
Publicar Inscrever-se no Canal
Como o emissor pode transmitir um evento para todos os receptores interessados?
O que o sistema de mensagens fará com uma mensagem que não pode entregar?
Como o remetente pode ter certeza de que uma mensagem será entregue, mesmo que o sistema de mensagens falhe?
Como você pode conectar um aplicativo ao sistema de mensagens para que ele possa enviar e receber mensagens?
Como vários sistemas de mensagens podem ser conectados para que as mensagens disponíveis em um também estejam disponíveis nos outros?
O que é uma arquitetura que permite que aplicativos separados funcionem juntos, mas de forma desacoplada, de modo que os aplicativos possam ser facilmente adicionados ou removidos sem afetar os outros?
Sincronização de dados capturando as alterações feitas em um banco de dados e aplicando essas alterações em outro sistema.
CONSTRUÇÃO DE MENSAGEM
Como o sistema de mensagens pode ser usado para transmitir eventos de um aplicativo para outro?
Quando um aplicativo envia uma mensagem, como ele pode obter uma resposta do receptor?
Como um respondente sabe para onde enviar a resposta?
Como um solicitante que recebeu uma resposta sabe para qual solicitação esta é a resposta?
Como um remetente pode indicar quando uma mensagem deve ser considerada obsoleta e, portanto, não deve ser processada?
ROTEAMENTO DE MENSAGENS
Como lidamos com uma situação em que a implementação de uma única função lógica (por exemplo, verificação de estoque) está espalhada por vários sistemas físicos?
Como um componente pode evitar receber mensagens desinteressantes?
Como você pode evitar a dependência do roteador em todos os destinos possíveis, mantendo sua eficiência?
Como roteamos uma mensagem para uma lista de destinatários especificados (estáticos ou dinâmicos)?
Como podemos processar uma mensagem se ela contém vários elementos, cada um dos quais pode ter que ser processado de uma maneira diferente?
Como combinamos os resultados de mensagens individuais, mas relacionadas, para que possam ser processadas como um todo?
Como podemos obter um fluxo de mensagens relacionadas, mas fora de sequência, de volta à ordem correta?
Processador de mensagens compostas
Como você pode manter o fluxo de mensagens geral ao processar uma mensagem que consiste em vários elementos, cada um dos quais pode exigir um processamento diferente?
Como você mantém o fluxo geral de mensagens quando uma mensagem precisa ser enviada para vários destinatários, cada um dos quais pode enviar uma resposta?
Como roteamos uma mensagem consecutivamente por meio de uma série de etapas de processamento quando a sequência de etapas não é conhecida em tempo de design e pode variar para cada mensagem?
Como roteamos uma mensagem por várias etapas de processamento quando as etapas necessárias podem não ser conhecidas em tempo de design e podem não ser sequenciais?
Como você pode dissociar o destino de uma mensagem do remetente e manter o controle central sobre o fluxo de mensagens?
Como posso limitar as mensagens para garantir que um endpoint específico não fique sobrecarregado ou que não excedamos um SLA acordado com algum serviço externo?
Como posso amostrar uma mensagem entre muitas em um determinado período para evitar que a rota downstream não fique sobrecarregada?
Como posso atrasar o envio de uma mensagem?
Como posso equilibrar a carga em vários endpoints?
Como posso parar para chamar um serviço externo se o serviço estiver quebrado?
Como posso chamar um serviço remoto em um sistema distribuído onde o serviço é pesquisado em um registro de serviço de alguns tipos?
Como posso definir uma série de ações relacionadas em uma rota Camel que devem ser concluídas com sucesso (todas) ou não executadas/compensadas?
Como posso rotear uma mensagem para vários endpoints ao mesmo tempo?
Como posso repetir o processamento de uma mensagem em um loop?
TRANSFORMAÇÃO DE MENSAGEM
Como nos comunicamos com outro sistema se o originador da mensagem não tiver todos os itens de dados necessários disponíveis?
Como você simplifica o tratamento de uma mensagem grande, quando está interessado apenas em alguns itens de dados?
Como podemos reduzir o volume de dados de mensagens enviadas pelo sistema sem sacrificar o conteúdo das informações?
Como você processa mensagens que são semanticamente equivalentes, mas chegam em um formato diferente?
Como posso classificar o corpo de uma mensagem?
Como executo um script que não pode alterar a mensagem?
Como posso validar uma mensagem?
PONTOS FINAIS DE MENSAGENS
Como você move dados entre objetos de domínio e a infraestrutura de mensagens, mantendo os dois independentes um do outro?
Consumidor orientado a eventos
Como um aplicativo pode consumir mensagens automaticamente à medida que elas se tornam disponíveis?
Como um aplicativo pode consumir uma mensagem quando o aplicativo está pronto?
Como um cliente de mensagens pode processar várias mensagens simultaneamente?
Como vários consumidores em um único canal podem coordenar seu processamento de mensagens?
Como um consumidor de mensagens pode selecionar quais mensagens deseja receber?
Como um assinante pode evitar mensagens perdidas enquanto não as está ouvindo?
Como um receptor de mensagens pode lidar com mensagens duplicadas?
Como um cliente pode controlar suas transações com o sistema de mensagens?
Como você encapsula o acesso ao sistema de mensagens do restante do aplicativo?
Como um aplicativo pode projetar um serviço a ser invocado por meio de várias tecnologias de mensagens e por meio de técnicas que não são de mensagens?
ADMINISTRAÇÃO DE SISTEMA
Como podemos administrar efetivamente um sistema de mensagens distribuído em várias plataformas e em uma ampla área geográfica?
Como você pode rotear uma mensagem por meio de etapas intermediárias para executar funções de validação, teste ou depuração?
Como você inspeciona as mensagens que viajam em um canal ponto a ponto?
Como podemos analisar e depurar efetivamente o fluxo de mensagens em um sistema fracamente acoplado?
Como posso registrar o processamento de uma mensagem?
Steps agrupa um conjunto de EIPs em uma unidade lógica composta para métricas e monitoramento.