Mensageria

Esses padrões descrevem padrões comuns para soluções desenvolvidas em torno do conceito de troca de mensagens (mensageria).

Sistemas de Mensageria

NomeNome em InglêsDescrição
CanaisMessage channelVirtualiza um meio de comunicação entre transmissor e o receptor. Isso significa que tanto o transmissor quanto o receptor não precisam, necessariamente, saber qual aplicação está emitindo ou recebendo o evento. Isso favorece o desacoplamento arquitetural entre as aplicações.
MensagensMessageÉ uma unidade de troca de dados entre sistemas. Pode ser interpretada como um envelope, da onde os dados devem ser extraídos para processamento pelos integrantes.
Tubos e filtrosPipes and filtersUma abstração do processamento (incluindo, mas não limitado a filtragem) ordenado de mensagens em que cada passo do processamento é ligado por canais.
Roteamento de mensagensMessage routingProcesso de encaminhar as mensagens para os receptores corretos.
Tradutor de mensagensMessage translatorProcesso de modificação das mensagens de tal modo que cada integrante recebe a mensagem no formato que lhe é adequado.
TerminadoresMessage endpointPonto final/inicial de conexão onde se inicia ou termina o transporte da mensagem. Serve como uma divisão lógica entre a camada da aplicação e a camada que opera em conjunto com sistema de mensageria.

Canais de Mensageria

NomeNome em InglêsDescrição
Canal ponto a pontoPoint-to-point channelTipo de ligação que garante que só um receptor receberá a mensagem.
Publicação/assinantePublish/subscribeTipo de ligação em que um dos integrantes publica uma mensagem e todos os outros integrantes recebem uma cópia da mesma.
Canal por tipo de dadoDatatype channelForma de ligação que visa garantir que o receptor da mensagem será capaz de interpreta-la e processa-la.
Canal de mensagem inválidaInvalid message channelCanal para onde as mensagens inválidas são encaminhadas.
Canal “dead letter”Dead-letter channelCanal para onde vão as mensagens que não podem ser entregues.
Entrega garantidaGuaranteed delivery
Adaptador de canelChannel adapterFornece interfaces, através de APIs (Application Programming Interfaces), para que aplicações se acessem o canal.
Ponte de mensageriaMessaging bridgePermite que sistemas de mensageria se conectem de modo que as mensagens emitidas em um sistema estejam disponíveis em outro.
BarramentoMessage busCombinação de elementos de mensageria que garante o desacoplamento de sistemas mas garantindo que as aplicações conversem entre si através de uma infraestrutura comum.

Construção de Mensagens

NomeNome em InglêsDescrição
Mensagem de comandoCommand messageMensagem, sem um tipo especificamente definido, que contém um comando.
Mensagem de documentoDocument messageMensagem cujo conteúdo deve ser analisado (ou descartado) pelo receptor e que não têm uma ligação específica com uma invocação de método.
Mensagem de eventoEvent messageUma mensagem cujos dados são referentes a um evento anunciado pelo emissor.
Requisição e respostaRequest/replyComportamento de troca de dados em que o emissor envia uma requisição, através de um canal específico, e recebe uma resposta, igualmente, em um canal específico para respostas.
Endereço de retornoReturn addressPadrão onde o emitente da requisição informa o endereço de retorno – canal – da resposta. Desta forma é possível desacoplar o receptor de um canal resposta previamente definido.
Identificador de correlaçãoCorrelation identifierFornece uma maneira de associar uma resposta a uma requisição.
Sequência de mensagemMessage sequencePermite sequenciar uma mensagem de modo que grandes quantidades de dados, maiores do que seria possível transmitir em uma única mensagem, podem ser quebrados em partes menores e transmitidos através do canal.
Expiração de mensagemMessage expirationPermite indicar um tempo limite dentro do qual é aceitável consumir a mensagem.
Identificador de formatoFormat identifierFornece ao receptor uma maneira de identificar o formato da mensagem.

Roteamento de Mensagens

NomeNome em InglêsDescrição
Roteador baseado em conteúdoContent-based routerFornece uma solução para o problema de rotear uma mensagem de acordo com o seu conteúdo.
Filtro de mensagemMessage filterEstabelece a possibilidade de filtrar os dados de uma mensagem de modo a eliminar conteúdo que seja inútil ao receptor.
Roteador dinâmicoDynamic routerUma solução para o problema de determinar o destino de uma mensagem em tempo de execução – ou seja, quando a mensagem está trafegando pela rota.
Lista de receptoresRecipient listFornece uma solução para o problema de rotear dinamicamente uma mensagem para uma lista de recipientes.
DivisorSplitterHabilidade de dividir a mensagem em partes menores.
AgregadorAggregatorO agregador está relacionado a habilidade de coletar e armazenar mensagens de tal forma que elas podem ser agrupadas a uma única mensagem.
Re-sequenciadorRe-sequencerFornece uma reposta a necessidade de reordenar as mensagens para processamento ou envio.
Processador de mensagens compostasComposed message processorSolução para processar mensagens compostas, de modo que cada sub-mensagem pode ser roteada para um destino específico e cujas respostas, posteriormente, podem ser agregadas em uma única mensagem.
Dispersão e recolhimentoScatter-gatherEstá relacionado a agregação das respostas de uma mensagem que fora previamente anunciada a múltiplos receptores (broadcast).
Lista de circulaçãoRouting-slipInformação de roteamento adicionada a mensagem que permite definir a sequência de processamento.
Gerenciador de processosProcess managerComponente com a responsabilidade de gerenciar o estado, sequenciamento e determinar os próximos passos de processamento.
Corretor de mensagensMessage brokerComponente com a responsabilidade de orquestrar a execução das transações. Desacopla o destinatário de uma mensagem de seu receptor. É elaborado a partir da implementação dos padrões de integração de sistemas.

Transformação de Mensagens

NomeNome em InglêsDescrição
Enriquecedor de conteúdoContent enricherFornece uma solução para a necessidade de incrementar a carga de dados de uma mensagem.
Filtro de conteúdoContent filterFornece uma solução para a necessidade de filtrar dados de uma mensagem, de modo que dados irrelevantes sejam removidos da transação.