MuleSoft - Introdução ao Mule ESB
ESB significa Enterprise Service Busque é basicamente uma ferramenta de middleware para integrar vários aplicativos em uma infraestrutura semelhante a um barramento. Fundamentalmente, é uma arquitetura projetada para fornecer um meio uniforme de movimentação do trabalho entre aplicativos integrados. Desta forma, com a ajuda da arquitetura ESB podemos conectar diferentes aplicativos através de um barramento de comunicação e permitir que eles se comuniquem sem depender uns dos outros.
Implementando ESB
O foco principal da arquitetura ESB é separar os sistemas uns dos outros e permitir que eles se comuniquem de forma estável e controlável. A implementação do ESB pode ser feita com a ajuda de‘Bus’ e ‘Adapter’ da seguinte maneira -
O conceito de “barramento”, que é alcançado através de um servidor de mensagens como JMS ou AMQP, é usado para separar aplicativos diferentes uns dos outros.
O conceito de “adaptador”, responsável por se comunicar com o aplicativo backend e transformar os dados do formato do aplicativo para o formato do barramento, é usado entre os aplicativos e o barramento.
Os dados ou mensagens que passam de um aplicativo para outro através do barramento estão em um formato canônico, o que significa que haveria um formato de mensagem consistente.
O adaptador também pode executar outras atividades como segurança, monitoramento, tratamento de erros e gerenciamento de roteamento de mensagens.
Princípios Orientadores do ESB
Podemos chamar esses princípios de princípios básicos de integração. Eles são os seguintes -
Orchestration - Integração de dois ou mais serviços para conseguir a sincronização entre dados e processos.
Transformation - Transformar dados do formato canônico para o formato específico do aplicativo.
Transportation - Lidar com negociação de protocolo entre formatos como FTP, HTTP, JMS, etc.
Mediation - Fornecimento de várias interfaces para oferecer suporte a várias versões de um serviço.
Non-functional consistency - Fornecer mecanismo para gerenciar transações e segurança também.
Necessidade de ESB
A arquitetura ESB nos permite integrar diferentes aplicativos, onde cada aplicativo pode se comunicar por meio dele. A seguir estão algumas orientações sobre quando usar ESB -
Integrating two or more applications - O uso da arquitetura ESB é benéfico quando há necessidade de integrar dois ou mais serviços ou aplicativos.
Integration of more applications in future - Suponha que se desejamos adicionar mais serviços ou aplicativos no futuro, isso pode ser feito facilmente com a ajuda da arquitetura ESB.
Using multiple protocols - No caso de precisarmos usar vários protocolos como HTTP, FTP, JMS etc., ESB é a opção certa.
Message routing - Podemos usar ESB no caso de exigirmos o roteamento de mensagens com base no conteúdo da mensagem e outros parâmetros semelhantes.
Composition and consumption - ESB pode ser usado se precisarmos publicar serviços para composição e consumo.
Integração P2P vs. integração ESB
Com o aumento do número de aplicativos, uma grande dúvida dos desenvolvedores era como conectar diferentes aplicativos? A situação foi tratada codificando manualmente uma conexão entre vários aplicativos. Isso é chamadopoint-to-point integration.
Rigidityé a desvantagem mais óbvia da integração ponto a ponto. A complexidade aumenta com o aumento do número de conexões e interfaces. As desvantagens da integração P-2-P nos levam à integração ESB.
ESB é uma abordagem mais flexível para integração de aplicativos. Ele encapsula e expõe a funcionalidade de cada aplicativo como um conjunto de recursos reutilizáveis discretos. Nenhum aplicativo se integra diretamente com outro, em vez disso, eles se integram por meio de um ESB, conforme mostrado abaixo -
Para gerenciar a integração, o ESB possui os seguintes dois componentes -
Service Registry- Mule ESB tem Service Registry / Repository onde todos os serviços expostos no ESB são publicados e registrados. Ele atua como um ponto de descoberta de onde se pode consumir os serviços e recursos de outros aplicativos.
Centralized Administration - Como o nome indica, fornece uma visão dos fluxos transacionais de desempenho das interações que ocorrem dentro do ESB.
ESB Functionality- A abreviatura VETRO é geralmente usada para resumir a funcionalidade do ESB. É o seguinte -
V(Validar) - Como o nome indica, ele valida a validação do esquema. Requer um analisador de validação e esquema atualizado. Um exemplo é um documento XML confirmando um esquema atualizado.
E(Enriquecer) - Adiciona dados adicionais a uma mensagem. O objetivo é tornar a mensagem mais significativa e útil para um serviço de destino.
T(Transformar) - Converte a estrutura de dados em um formato canônico ou de um formato canônico. Exemplos são a conversão de data / hora, moeda, etc.
R(Roteamento) - Ele roteará a mensagem e atuará como um porteiro do endpoint de um serviço.
O(Operar) - A principal tarefa desta função é invocar o serviço de destino ou interagir com o aplicativo de destino. Eles são executados no backend.
O padrão VETRO fornece flexibilidade geral para a integração e garante que apenas dados consistentes e validados sejam encaminhados para o ESB.
O que é Mule ESB?
O Mule ESB é um barramento de serviço empresarial (ESB) e plataforma de integração baseado em Java, leve e altamente escalável, fornecido pela MuleSoft. O Mule ESB permite que o desenvolvedor conecte aplicativos de forma fácil e rápida. Independentemente das várias tecnologias usadas pelos aplicativos, o Mule ESB permite uma fácil integração de aplicativos, permitindo a troca de dados. Mule ESB tem as seguintes duas edições -
- Edição da comunidade
- Enterprise Edition
Uma vantagem do Mule ESB é que podemos facilmente atualizar da comunidade Mule ESB para o Mule ESB enterprise porque ambas as edições são construídas em uma base de código comum.
Recursos e capacidades do Mule ESB
As seguintes características são possuídas pelo Mule ESB -
- Possui design gráfico simples de arrastar e soltar.
- O Mule ESB é capaz de mapeamento e transformação de dados visuais.
- O usuário pode obter a facilidade de centenas de conectores certificados pré-fabricados.
- Monitoramento e administração centralizada.
- Ele fornece recursos robustos de aplicação de segurança corporativa.
- Ele fornece a facilidade de gerenciamento de API.
- Há um gateway de dados seguro para conectividade em nuvem / local.
- Ele fornece o registro de serviço onde todos os serviços expostos no ESB são publicados e registrados.
- Os usuários podem ter controle por meio de um console de gerenciamento baseado na web.
- A depuração rápida pode ser realizada usando o analisador de fluxo de serviço.