Olá pessoal. Tudo certo?!
Continuo com meu “breve passeio” por estilos de integração entre aplicações. Já vimos que:
Nesse post, apresento a alternativa mais “poderosa” (IMHO) de integração: mensageria.
A implementação desse modelo respeita a seguinte dinâmica:
Outra forma de descrever a implementação básica seria:
![]()
Onde reconhecemos:
Para mim, o aspecto mais interessante desse estilo de integração está no estabelecimento de um “canal inteligente”. Aplicações produzem e consomem mensagens, mas há um “universo de possibilidades” na gestão do canal. Abaixo relaciono apenas algumas possibilidades já discutidas em outros posts aqui do blog.
A mensagem, adicionada ao canal, pode ser filtrada ou transformada através do estabelecimento de “pipes e filtros“. Ou seja, podem ser definidos múltiplos canais que podem ser processados independentemente por filtros (map & filter). Cada canal, então, pode ser associado a uma aplicação consumidora.

Dessa forma, ganhamos, por exemplo, a possibilidade de escalar horizontalmente (conforme a demanda).

Além disso, o canal pode ajustar o processo de negócio direcionando que aplicativo deverá receber uma determinada mensagem (veja “Encaminhamento condicional“). Ou seja “a inteligência da integração” passa a estar no canal.
![]()
Caso uma aplicação precise de uma mensagem “traduzida” (diferente daquela que está sendo publicada pela aplicação de origem), será possível adicionar um filtro de tradução (ver Message Translator). Isso reforça ainda mais o desacoplamento.
![]()
Por fim, suporte natural a falhas de processamento através da própria infraestrutura de mensageria (ver tratando incoerências de integração)
![]()
E estas são apenas algumas possibilidades. No futuro devo discutir algumas outras possibilidades.
Outro aspecto muito interessante é que esse estilo pode ser facilmente ajustado para suportar aplicações sem suporte nativo.
Por exemplo, se uma determinada aplicação fornece uma API (para chamadas remotas), podemos escrever um endpoint (ver Entendendo Endpoints) externo que “consome mensagens” e aciona a API. A mesma relação pode ser estabelecida para sistemas com suporte a “transferência de arquivos”.
Integrações baseadas em mensageria são, ao meu ver, as mais inteligentes e expansíveis. Entretanto, alguns aspectos precisam ser considerados cuidadosamente:
Integrações baseadas em mensageria são a solução ideal para ambientes que exigem grande flexibilidade E possuem infraestrutura de TI adequada.
Bem gerenciado e aplicado, esse estilo de integração “desacopla” os aplicativos e reforça a coesão de cada etapa do processo.
Era isso.
Elemar, boa explanação. Aproveitando, qual sua escolha para servidor de mensageria?
Vocês acham que esse novo produto pode útil para usar dessa maneira proposta pelo Elemar ?
Service Bus for Windows Server (Service Bus 1.0)
http://blogs.msdn.com/b/windowsazure/archive/2012/10/24/announcing-public-availability-of-service-bus-for-windows-server-service-bus-1-0.aspx