Mensageria

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

Sistemas de Mensageria

Nome Nome em Inglês Descrição
Canais Message channel Virtualiza 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.
Mensagens Message É 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 filtros Pipes and filters Uma 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 mensagens Message routing Processo de encaminhar as mensagens para os receptores corretos.
Tradutor de mensagens Message translator Processo de modificação das mensagens de tal modo que cada integrante recebe a mensagem no formato que lhe é adequado.
Terminadores Message endpoint Ponto 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

Nome Nome em Inglês Descrição
Canal ponto a ponto Point-to-point channel Tipo de ligação que garante que só um receptor receberá a mensagem.
Publicação/assinante Publish/subscribe Tipo 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 dado Datatype channel Forma de ligação que visa garantir que o receptor da mensagem será capaz de interpreta-la e processa-la.
Canal de mensagem inválida Invalid message channel Canal para onde as mensagens inválidas são encaminhadas.
Canal “dead letter” Dead-letter channel Canal para onde vão as mensagens que não podem ser entregues.
Entrega garantida Guaranteed delivery
Adaptador de canel Channel adapter Fornece interfaces, através de APIs (Application Programming Interfaces), para que aplicações se acessem o canal.
Ponte de mensageria Messaging bridge Permite que sistemas de mensageria se conectem de modo que as mensagens emitidas em um sistema estejam disponíveis em outro.
Barramento Message bus Combinaçã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

Nome Nome em Inglês Descrição
Mensagem de comando Command message Mensagem, sem um tipo especificamente definido, que contém um comando.
Mensagem de documento Document message Mensagem 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 evento Event message Uma mensagem cujos dados são referentes a um evento anunciado pelo emissor.
Requisição e resposta Request/reply Comportamento 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 retorno Return address Padrã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ção Correlation identifier Fornece uma maneira de associar uma resposta a uma requisição.
Sequência de mensagem Message sequence Permite 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 mensagem Message expiration Permite indicar um tempo limite dentro do qual é aceitável consumir a mensagem.
Identificador de formato Format identifier Fornece ao receptor uma maneira de identificar o formato da mensagem.

Roteamento de Mensagens

Nome Nome em Inglês Descrição
Roteador baseado em conteúdo Content-based router Fornece uma solução para o problema de rotear uma mensagem de acordo com o seu conteúdo.
Filtro de mensagem Message filter Estabelece a possibilidade de filtrar os dados de uma mensagem de modo a eliminar conteúdo que seja inútil ao receptor.
Roteador dinâmico Dynamic router Uma 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 receptores Recipient list Fornece uma solução para o problema de rotear dinamicamente uma mensagem para uma lista de recipientes.
Divisor Splitter Habilidade de dividir a mensagem em partes menores.
Agregador Aggregator O agregador está relacionado a habilidade de coletar e armazenar mensagens de tal forma que elas podem ser agrupadas a uma única mensagem.
Re-sequenciador Re-sequencer Fornece uma reposta a necessidade de reordenar as mensagens para processamento ou envio.
Processador de mensagens compostas Composed message processor Soluçã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 recolhimento Scatter-gather Está relacionado a agregação das respostas de uma mensagem que fora previamente anunciada a múltiplos receptores (broadcast).
Lista de circulação Routing-slip Informação de roteamento adicionada a mensagem que permite definir a sequência de processamento.
Gerenciador de processos Process manager Componente com a responsabilidade de gerenciar o estado, sequenciamento e determinar os próximos passos de processamento.
Corretor de mensagens Message broker Componente 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

Nome Nome em Inglês Descrição
Enriquecedor de conteúdo Content enricher Fornece uma solução para a necessidade de incrementar a carga de dados de uma mensagem.
Filtro de conteúdo Content filter Fornece uma solução para a necessidade de filtrar dados de uma mensagem, de modo que dados irrelevantes sejam removidos da transação.