O documento descreve conceitos de middleware orientado a mensagens (MOM), incluindo comunicação assíncrona através de filas de mensagens e aplicações que se comunicam enviando e recebendo mensagens. Além disso, discute quando utilizar MOM, exemplos de aplicações e o funcionamento básico de envio e recebimento de mensagens através de servidores de comunicação.
2. CONCEITOS
Conhecidos como sistemas de enfileiramento de
mensagens.
Suporte para comunicação assíncrona persistente.
Capacidade de armazenamento de médio prazo para as
mensagens trocadas
Aplicações se comunicam retirando e colocando
mensagens em filas específicas.
Mensagem será eventualmente entregue ao receptor.
3. CONCEITOS
Sistemas de enfileiramento de mensagens ajudam
fornecendo meios básicos para empacotar cada
subconsulta em uma mensagem e roteá-la até o banco
de dados adequado.
Exemplo:
Consulta que abranja vários bancos de dados pode ser repartida
em subconsultas que são repassadas para bancos de dados
individuais.
4. QUANDO
UTILIZAR?
Quando se desejar que os componentes de uma aplicação
não dependam de informações a respeito da interface de
outros componentes de forma a poder facilmente substitui-
los;
Deseja-se executar uma aplicação sem que exista a
necessidade que todos os componentes estarem
executando simultaneamente;
O modelo de negócios da aplicação permite que um
componente envie informações a outro e continue a
operar sem receber uma resposta imediatamente.
5. APLICAÇÕES
MOM
E-mail
Fluxo de trabalho
Groupware
Processamento em lotes
Integração de banco de dados
Aplicações em Geral
6. FUNCIONAMENT
O
1. Aplicações se comunicam inserindo mensagens em
filas específicas.
2. Mensagens são repassadas por uma série de
servidores de comunicação.
3. Mensagens são entregues ao destinatário, mesmo
que ele não esteja em funcionamento quando a
mensagem foi enviada
Remetente e Receptor podem executar em completa
independência.
7. ESTADOS DO
REMETENTE E DO
RECEPTOR
A ideia básica é a comunicação por filas. Assim as
aplicações se comunicam inserindo mensagens em filas
específicas. Nenhuma garantia é dada sobre quando, e
nem ao menos se, a mensagem será lida.
Uma fila só pode ser lida por sua aplicação associada,
mas é possível que várias aplicações compartilhem uma
mesma fila.
8. CARACTERÍSTICAS
DAS MENSAGENS
Mensagens podem conter qualquer tipo de dado
Mensagens devem ser adequadamente endereçadas
O endereçamento é feito com o fornecimento de um nome
exclusivo da fila destinatária no âmbito do sistema
10. ARQUITETURA
Conceitos
Fila de Fonte: Fila na qual o remetente envia a mensagem. Estas
filas são filas locais do remetente.
Fila de Destino: Uma mensagem colocada em uma fila contém a
especificação de uma fila de destino para a qual ela deve ser
transferida.
Gerenciadores de Fila: Um gerenciador de fila interage
diretamente com a aplicação que está enviando ou recebendo uma
mensagem.
Repassadores: Repassam mensagens que chegam para outros
gerenciadores de fila.
11. ARQUITETURA
Conceitos
Sistema de enfileiramento de mensagens pode crescer
até uma rede de sobreposição (overlay) completa de
nível de aplicação.
13. EXEMPLO:
VENDA DE
INGRESSOS
A figura mostra como vários clientes podem acessar um
servidor Web de venda de ingressos pela Internet. Os
clientes Web exibem páginas HTML que mostram
disponibilidade e preço de ingressos e diagramas dos
assentos.
Uma empresa que venda ingressos para eventos pode
usar os seguintes recursos dos Serviços de Enfileiramento
de Mensagens para melhorar seu sistema:
Serviço de mensagens sem conexão. Atualização de
conta e envio de ingresso, realizados de maneira
assíncrona.
14. EXEMPLO:
VENDA DE
INGRESSOS
Conexão à Internet. Aceita pedidos pela Internet
usando um aplicativo dos Serviços de Enfileiramento de
Mensagens e componentes COM, em conjunto com
páginas ASP e IIS (Serviços de Informação da Internet).
Isto é feito por meio de formulários da Web, que dão um
suporte de segurança e de várias plataformas.
Suporte de várias plataformas. Integra computadores
pessoais e sistemas legados. Por exemplo, o servidor de
venda de ingressos pode estar sendo executando em
um computador com UNIX.
15. MULTICASTING
Ideia Básica: Nós se organizam em uma rede de
sobreposição que é usada para disseminar informações
para seus membros
Nós na rede de sobreposição podem cruzar vários enlaces
físicos: roteamento pode não ser ótimo
Construção do overlay
Árvore: único caminho entre cada par de nós
Malha: Cada nó terá vários vizinhos, em geral, existem
vários caminhos entre cada par de nós
16. MULTICASTING
Multicasting de Nível de Aplicação (MNA)
No caso da estrutura em árvore, o problema é construir
uma árvore eficiente!
17. MULTICASTING
MNA - Qualidade da estrutura
Estresse de enlace: Quantas vezes uma mensagem
atravessa o mesmo enlace?
Exemplo: mensagem de A a D atravessa Ra,Rb duas vezes
Penalidade de atraso relativo: Razão entre o atraso entre
dois nós na sobreposição e o atraso que esses dois nós
sofreriam na rede subjacente.
Exemplo: mensagens de B a C possuem um atraso de 71 no
overlay, mas de 47 no nível de rede, que gera uma penalidade de 1.51
Custo da árvore: parâmetro de medição global,
relacionado com a minimização dos custos agregados de
enlaces.
Exemplo: atraso entre dois nós finais → spanning tree
18. MULTICASTING
Disseminação de Dados – Algoritmos Epidêmicos
Ideia Básica: propagar informações rapidamente entre um
grande conjunto de nós usando somente informações locais.
Não há nenhum componente central que coordena a
disseminação de informações.
Atualizações para um item de dado específico são iniciadas
em um único nó, evitando conflito de escrita.
19. MULTICASTING
Modelos de Disseminação de Dados
Três tipos de nós:
Infectado: se contiver dados que está disposto a
espalhar para outros nós
Suscetível: nó que ainda não tenha visto esses dados
Removido: nó atualizado que não está disposto ou
capacitado para propagar os dados.
20. MULTICASTING
Antientropia
Ideia Básica: Um nó P escolhe aleatoriamente um outro
nó Q
Push: P envia suas próprias atualizações a Q
Pull: P recebe novas atualizações de Q
Push-Pull: P e Q enviam atualizações um ao outro
(abordagem enviar-receber)
21. MULTICASTING
Gossiping
Ideia Básica: Se um nó P acabou de ser atualizado com
o item de dado x, ele contata um nó arbitrário Q e tenta
enviar a atualização a Q. Contudo, é possível que Q já
tenha sido atualizado por um outro nó. Nesse caso, P
pode perder o interesse em levar adiante a propagação
da atualização, com probabilidade 1/k
Problema: Nós poderão não receber atualizações!