Olá pessoal. Tudo certo!?
Nesse post, concluo uma relação de “Enterprise Integration Patterns” fundamentais. Se você está chegando agora, deve considerar ver posts anteriores relacionados:
- Trocando mensagens (entre aplicações) usando MSMQ (com C#)
- Ganhando Flexibilidade e Escalabilidade com Mensageria e “Pipes and Filters” (usando C#)
- Encaminhamento condicional de mensagens com Message Router (usando C#)
- Promovendo compatibilidade com Message Translator (usando C#)
Como pode notar, até aqui, mesclei alguma prática com teoria. Para a parte prática, usei fundamentalmente MSMQ. Entretanto, o contexto teórico é aplicável a outros serviços de mensageria, bem como o próprio Windows Azure.
Agora, vou deixar o código um pouco de lado.
O que é um Message Endpoint?
Pattern que garante baixo acoplamento entre aplicações e serviços/infraestrutura de mensageria. Observe:
Nesse diagrama, podemos perceber algums elementos importantes:
- aplicações independentes enviando e recebendo mensagens;
- sistema especialista de mensageria (nos exemplos, estou usando MSMQ);
- Filtros executando algum tipo de processamento/direcionamento/conversão das mensagens.
Repare que esses elementos são “independentes” (não fazem parte do mesmo pacote).
Um Message Endpoint nada mais é que um componente interfaceando a aplicação e a infraestrutura de mensageria.
Entendendo melhor a relação infra de mensageria com nossos aplicativos
Um sistema de mensageria opera de forma semelhante a um servidor/serviço. Ele recebe e responde requisições.
Como “servidor”, sistemas de mensageria tem clientes. Nesse contexto, as aplicações que os utilizam.
Considere:
- O server provê uma API para que seus clientes possam interagir com ele;
- Essa API não é “application-specific”, e sim “domain-specific”;
Por que um Messaging Endpoint é importante?
O Messaging Endpoint é o “ponto-de-ligação” entre nossos aplicativos e a API do servidor de mensageria.
Adotando esse pattern, permitimos que o restante da aplicação saiba pouco sobre: formato de mensagens; canais; etc.
Message Endpoint encapsula o servidor de mensageria (e suas particularidades) do resto da aplicação. Assim se decidirmos escolher outro mecanismo, bastará substituir esse componente preservando todo o resto.
Boas práticas na escrita de Message Endpoints
Message Endpoints devem:
- enviar mensagens (para o “servidor” de mesageria) ou receber. Nunca fazer as duas coisas;
- publicar mensagens em apenas uma Queue;
Logo, devem existir tantos endpoints quanto canais de comunicação e/ou operações.
Era isso!






fevereiro 21st, 2012 → 23:33
[...] Message Endpoint [...]
fevereiro 21st, 2012 → 23:35
[...] Message Endpoint [...]