Em arquitetura de software, um messaging pattern, ou em português padrão mensagem, é um padrão arquitetural orientado a redes que descreve como duas partes diferentes de um sistema de troca de mensagens conectam-se e comunicam-se um com o outro.
Em telecomunicações, um message exchange pattern (MEP), ou em português padrão de troca de mensagens, descreve o padrão de mensagens requerido por um protocolo de comunicação para estabelecer ou usar um canal de comunicação. Existem dois padrões de troca de mensagens principais - um padrão solicitação-resposta e um padrão unidirecional. Por exemplo, o TCP é um protocolo que segue o padrão solicitação-resposta e o UDP um protocolo que segue o padrão unidirecional.
O termo "Padrão de Troca de Mensagens" possui um significado específico dentro do protocolo SOAP.[1][2] Os tipos MEP do SOAP incluem:
- Apenas-Entrada (In-Only): É equivalente ao unidirecional. Um padrão de troca de mensagem unidirecional onde o consumidor envia uma mensagem ao provedor que fornece apenas uma resposta de estado.
- Apenas-Entrada Robusto (Robust In-Only): Este padrão é para a troca de mensagens confiável unidirecional. O consumidor inicia com uma mensagem a qual o provedor respondo com o estado. Se a resposta for um estado, a troca está completa, mas se for uma falha, o consumidor deve responder com um estado.
- Entrada-Saída (In-Out): É equivalente à solicitação-resposta. Um padrão de troca de mensagens bidirecional onde o consumidor inicia com uma mensagem, o provedor responde com uma mensagem ou uma falha e o consumidor responde com um estado.
- Entrada e Saída-Opcional (In Optional-Out): Um padrão de troca de mensagens bidirecional onde a resposta do provedor é opcional.
- Apenas Saída
- Apenas Saída Robusto
- Saída Entrada
- Saída Entrada-Opcional
A biblioteca de enfileiramento de mensagens ØMQ fornece os conhecidos sockets (um tipo de generalização sobre os tradicionais IP e sockets Unix) que requerem a indicação de um padrão de mensagens a ser usado e são particularmente otimizados para este tipo de padrão. Os padrões básicos ØMQ são:[3]
- Solicitação-resposta conecta a um conjunto de clientes par um conjunto de serviços. Isto é um padrão de chamada de procedimento remoto e de distribuição de tarefas.
- Publicação-assinatura conecta um conjunto de publicadores par um conjunto de assinantes. Este é um padrão de distribuição de dados.
- Empurrão-puxão (push-pull) - canalização - conecta nós em um padrão fun-out/fun-in que pode ter múltiplas etapas e loops. Este é um padrão de distribuição paralela de tarefas e de coleção.
- Par exclusivo conecta dois sockets em um par exclusivo. Este é um padrão de baixo-nível para casos de uso específicos e avançados.