Introdução ao Mule ESB e suas principais características
1. INTRODUÇÃO AO MULE ESB
O MuleESB é uma plataforma de integração da MuleSoft. Ele é uma leve linguagem de
programação em Java.
Através do Mule ESB, você pode integrar ou se comunicar com múltiplas aplicações.
O Mule ESB permite fácil integração de sistemas existentes, independentemente das
diferentes tecnologias que os aplicativos usam, incluindo JMS, serviços web, JDBC e
HTTP.
Recapitulando um pouco sobre Enterprise Service Bus (ESB): é um aplicativo que permite
o acesso a outros aplicativos e serviços. Sua principal tarefa é tratar as mensagens entre
os diversos aplicativos, sendo a espinha dorsal da integração de uma empresa.
O MuleESB é utilizado para a integração através de uma abordagem orientada a serviços.
Suas principais características são as seguintes:
Polling JMS
Transformação de Mensagens e roteamento de serviços
Hot deployment com Tomcat
Web service seguros
Muitas vezes usamos a sigla, VETRO (também em inglês), para resumir a funcionalidade
ESB:
V – validar a validação de esquema
E – enriquecer
T – transformar
R – rotear
O – operar (executar operações; eles correm no backend)
Antes da implantação de qualquer ESB, desenvolvedores e integradores conectam
diferentes aplicações de um modo ponto-a-ponto.
2. Após a implantação de um ESB, você só precisa conectar cada aplicativo ao ESB para
que cada aplicativo pode se comunicar uns com os outros através do ESB. Essa conexão
pode ser facilmente feita através do ESB, como mostrado no diagrama a seguir:
Há duas edições do ESB Mule: Community e Enterprise.
Mule ESB Enterprise é a versão empresarial (e paga!) da MuleSoft, com características e
recursos adicionais que são ideais para o funcionamento em clusters e desempenho, alem
do DataMapper e o conector SAP.
Mule ESB Community e Enterprise são construídos sobre a mesma base de código, por
isso é fácil de migrar do MuleESB Community para o MuleESB Enterprise.
3. A principal vantagem de um ESB é que permite que diferentes aplicativos se comuniquem
uns com os outros, agindo como um sistema de trânsito para o transporte de dados entre
aplicações dentro de sua empresa ou através da Internet. Mule ESB inclui recursos
poderosos, que incluem:
Criação de serviços e hospedagem: Expõe e hospeda serviços reutilizáveis usando
Mule ESB como um service container leve
Mediação Serviço: Protege serviços de formatos de mensagens e protocolos, a lógica de
negócio separado de mensagens, e permite que as chamadas de serviço independente da
localização
Encaminhamento da mensagem: filtros e mensagens seqüenciais com base em
conteúdo e regras
Transformação de dados: troca de dados em vários formatos e protocolos de transporte
Quando você examinar como uma mensagem flui através Mule ESB, você pode ver que
existem três camadas na arquitetura, que são listados como se segue:
Camada de aplicação
Camada de integração
Camada de transporte
A lista a seguir fala sobre o Mule e sua configuração :
Service component development: Trata-se de desenvolver ou re-utilizar os POJOs
existentes, que é uma classe com atributos e que gera métodos get e set, os Cloud
connectors, ou Spring Beans que contêm a lógica de negócios e irá consumir processos
ou alimentar mensagens.
Service orchestration (Orquestração de serviços): Envolve a configuração de;
processadores de mensagens, roteadores , transformadores e filtros que fornecem as
capacidades de mediação de serviços e orquestração necessários para permitir a
composição de serviços de baixo acoplamento, utilizando um fluxo do Mule.
Integration (Integração): Um requisito fundamental de mediação de serviço é dissociar os
serviços dos protocolos subjacentes. Mule fornece métodos de transporte para permitir o
envio e recebimento de mensagens em diferentes conectores de protocolo. Esses
conectores são configurados no arquivo de configuração do Mule e pode ser referenciada
a partir da camada de orquestração .Mule suporta vários métodos de transporte existentes
e todos os protocolos de comunicação populares, mas você também pode desenvolver um
método de transporte personalizado, se você precisa estender Mule para apoiar um legado
particular ou sistema proprietário.
4. Spring beans : Você pode construir componentes de serviço a partir de Spring beans e
definir esses componentes Spring através de um arquivo de configuração. Se você não
tiver esse arquivo, você terá que defini-lo manualmente no arquivo de configuração do
Mule.
Agents: um agente é um serviço que é criado no Mule Studio. Quando você iniciar o
servidor, um agente é criado. Quando você parar o servidor, este agente será destruído.
Connectors (Conectores): O conector é um componente de software .
Global configuration (Configuração global): configuração global é usado para definir as
propriedades globais e configurações.
Global Endpoints : Endpoints globais podem ser utilizadas na guia Elementos Global.
Podemos usar elemento das propriedades globais como muitas vezes em um fluxo como
nós queremos. Para isso, deve passar o nome de referência das propriedades globais.
Global message processor (Processador mensagem global): Um processador de
mensagem global observa-se uma mensagem ou modifica ou uma mensagem ou o fluxo
de mensagens; exemplos incluem transformadores e filtros.
Transformers: Um transformador converte os dados de um formato para outro. Você pode
defini-los globalmente e usá-los em vários fluxos.
Filters (Filtros): Filtros decidem quais mensagens o Mule deve processar. Filtros
especificam as condições que devem ser cumpridas para que uma mensagem seja
encaminhada para um serviço ou continuar progredindo através de um fluxo. Existem
vários filtros padrão que vêm com o Mule ESB, que você pode usar, ou você pode criar
seus próprios filtros.
Models (Modelos): é um agrupamento lógico de serviços que são criados no Mule Studio.
Você pode iniciar e parar todos os serviços dentro de um modelo específico.
Services (Serviços): Você pode definir um ou mais serviços que envolvem os seus
componentes ( lógica de negócios ) e configurar roteadores, pontos de extremidade,
transformadores e filtros especificamente para esse serviço. Os serviços são conectados
usando Endpoints.
Endpoints : Serviços são conectados usando Endpoints. É um objeto em que os serviços
irão receber (entrada) e enviar (saída) mensagens.
Fluxo : O fluxo é utilizado para um processador de mensagens para definir um fluxo de
mensagens entre uma fonte e um destino.