Como implementar integrações com mensageria com JBoss, RabbitMQ e Qpid

Veja neste artigo como criar integrações de mensageria no JBoss EAP 6 para troca de informações entre várias aplicações

Fique por dentro
Neste artigo vamos aprender como é possível integrar o servidor de aplicações JBoss EAP 6 ao servidor de mensageria RabbitMQ, usando para isso um componente JCA fornecido pelo projeto Apache Qpid. Para isso, conheceremos o RabbitMQ, seus principais conceitos e como utilizar a API JCA da Java EE, implementada no Apache Qpid, para interagir de forma padronizada com esse middleware de alta-performance.

O termo Middleware se tornou comum no jargão corporativo e na mídia técnica. Chamamos de middleware um sistema de computação que facilita a troca de informações entre duas ou mais aplicações, estejam elas ou não em ambientes, redes ou hardwares diferentes.

Um servidor de aplicação é um tipo de middleware que permite, de forma centralizada, a instalação e execução de aplicações. Essas aplicações servem a propósitos de negócio e normalmente para isso interagem com outros middlewares. O mercado de software está repleto de fornecedores de sistemas de middleware e isso faz com que haja uma busca constante das empresas e da academia em encontrar padrões, definir protocolos e estimular formas fáceis de integração.

Nesse contexto se encontra a plataforma Java EE 6, uma especificação que descreve e define uma série de APIs para criação de aplicações Java a serem instaladas e executadas em servidores de aplicação. Descreve também como um servidor se conecta a outros servidores e como essa conexão deve funcionar. Um grande exemplo de servidor totalmente compatível com a plataforma Java EE 6 é o JBoss EAP 6.

Ao contrário de outras plataformas, o Java é conhecido pela sua diversidade. Uma das organizações sem fins lucrativos que mais colabora e incentiva a criação de software open source Java é a fundação Apache, mantenedora de vários projetos que suportam o Java EE 6.

Um desses projetos é o Apache Qpid, que abrange uma série de componentes incluindo APIs de criação e envio de mensagens, middleware de mensageria e conectores JCA. Neste artigo utilizaremos o conector Qpid JCA para fazer o JBoss EAP enviar e receber mensagens de outros middlewares de mensageria e através do uso do protocolo AMQP permitiremos que o JBoss EAP interaja de maneira confiável e ágil com plataformas totalmente diferentes da plataforma Java.

O AMQP, sigla para Advanced Messaging Queueing Protocol, é um protocolo de troca de mensagens largamente utilizado pelos grandes nomes da indústria de software e mantido por uma organização mundial de padronização chamada OASIS. Por ser amplamente suportado por vários fornecedores, o AMQP é principalmente útil para comunicação entre sistemas heterogêneos escritos em linguagens de programação diferentes.

Esse protocolo também é utilizado por diversos servidores de mensageria e uma de suas mais famosas implementações, o broker RabbitMQ, será empregado em nossa solução como mediador de mensageria entre o JBoss EAP e uma simples aplicação externa.

Message Broker, JMS ou Mensageria?

Os termos Message Broker, JMS e Mensageria são muitas vezes usados de forma intercalada e podem causar confusão mesmo a profissionais mais experientes. Apesar de relacionadas, essas palavras têm significados diferentes.

Mensageria, por exemplo, é um termo mais abrangente, que significa uma forma de comunicação entre componentes e aplicações. Cada programa ou sistema que usa mensageria pode assumir o papel de “produtor”, ou seja, ser um gerador de mensagem, ou “consumidor”, que representa os receptores de uma mensagem.

Para estabelecer essa comunicação, os Consumidores e Produtores podem trocar mensagens diretamente entre si ou através de um sistema intermediário. O sistema responsável por assumir o papel de intermediário em mensageria é chamado de Message Broker, e possui uma série de características que veremos a seguir.

Message Broker

Um componente Message Broker é responsável por coordenar a troca de mensagens, repassar requisições, retransmitir resultados e erros, e principalmente fazer com que produtores de informação não tenham nenhum conhecimento dos consumidores da informação produzida por eles. Essas características trazem algumas vantagens, a saber:

· Os produtores e consumidores funcionam de forma independente. Em caso de falha, no entanto, é óbvio que o processo de negócio que depende de um desses participantes será afetado;

· A quantidade de instâncias de produtores pode ser diferente da quantidade de instâncias de consumidores, de forma a acompanhar a demanda por mais poder de processamento;

· O Message Broker é ideal para trocas de mensagens em ambientes heterogêneos, isto é, aplicações escritas nas mais diversas linguagens e que rodam nas mais diversas plataformas.

Uma arquitetura baseada no uso de Message Broker pode também apresentar algumas desvantagens, a saber:"

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados