WS-Reliable Messaging
Os fluxos de mensagens são importados sem que o WS-Reliable Messaging esteja ativado. Qualquer um pode chamar o serviço da web
para consumir as mensagens, semelhante ao Monitor TCP/IP com SOAP através de HTTP. Para ativar o WS-Reliable Messaging,
consulte Estendendo a Amostra Address Book.
A ativação do WS-RM é uma tarefa administrativa executada no nível do WebSphere Message Broker. Não
é possível configurar o WS-RM ao desenvolver fluxos de mensagens; você deve configurar a política no broker e associá-la
aos fluxos de mensagens em um arquivo BAR.
Por que Usar o WS-Reliable Messaging
Na amostra de extensão Address Book, o consumidor e o provedor possuem os mesmos requisitos de sistema de mensagens
confiável:
- Assegure-se da entrega de uma mensagem SOAP quando um servidor for reiniciado inesperadamente.
- Assegure-se da entrega de uma mensagem SOAP quando a conexão entre o cliente e o servidor falhar,
por exemplo, devido a um tempo limite. O cliente deve estar apto a detectar a condição e tentar novamente a transmissão da mensagem.
O protocolo WS-RM preenche esses requisitos definindo como enviar novamente mensagens
que ele determina como não tendo sido entregues com sucesso e evitando a entrega de mensagens
duplicadas para o aplicativo de destino.
Como o WS-Reliable Messaging Funciona
A chave para o WS-RM é o conceito de uma sequência. Uma sequência no WS-RM é um contrato
entre um cliente de serviços da web e um provedor de serviços da web, por meio do qual eles concordam em transmitir
com confiança as mensagens entre eles. A sequência é usada para manter o estado de mensagens que
foram enviadas e recebidas. A própria sequência é específica do terminal de um provedor. Quando um cliente
envia uma mensagem para um terminal do provedor de serviços da web pela primeira vez, é criada uma sequência
para o terminal desse provedor e todas as mensagens subsequentes desse cliente para o terminal desse
provedor são entregues nessa sequência. A sequência permite que o WS-RM do lado do cliente e do lado do provedor
decida se as mensagens de aplicativos precisam ser entregues novamente, e para detectar se as mensagens que chegam são duplicatas.
Para definir as sequências e manter o estado atual, o WS-RM do cliente e do provedor usa uma coleção
de mensagens de protocolo definidas que são enviadas e retornadas. O diagrama a seguir mostra um fluxo de
mensagens típico para uma chamada de serviço de solicitação/resposta da web usando o WS-RM.

O cenário de amostra
A seguir estão as etapas que descrevem como a amostra funciona quando o WS-RM é ativado:
- As condições prévias do protocolo são estabelecidas. Elas incluem troca de políticas, resolução de terminal e estabelecimento de confiança.
- O consumidor solicita a criação de uma nova sequência.
- O provedor cria uma nova sequência e retorna seu identificador exclusivo.
- O consumidor começa a transmitir mensagens na sequência, começando com MessageNumber 1.
Cada solicitação enviada pelo nó SOAPRequest criará uma nova sequência, portanto, todas as mensagens
terão MessageNumber 1.
- O consumidor também inclui um cabeçalho AckRequested para assegurar que receberá uma
SequenceAcknowledgement adequada para a sequência.
- O provedor reconhece o recebimento de mensagens número 1 como resultado do recebimento do
cabeçalho AckRequested do consumidor. Se alguma mensagem intermediária for perdida por algum motivo,
nenhum reconhecimento será enviado ao consumidor
- O consumidor retransmite a mensagem não reconhecida com o mesmo MessageNumber.
Essa é uma nova mensagem da perspectiva do transporte subjacente,
mas possui o mesmo Identificador de sequência e MessageNumber para que o provedor possa
reconhecê-la como uma duplicata da mensagem anterior
no caso de as mensagens originais e retransmitidas serem ambas recebidas.
O consumidor inclui um cabeçalho AckRequested na mensagem retransmitida para que
o provedor envie um reconhecimento rapidamente.
- O provedor recebe a segunda transmissão da mensagem com MessageNumber 1
e reconhece o recebimento de mensagens número 1.
- O consumidor recebe esse reconhecimento e envia uma mensagem TerminateSequence para
o provedor, indicando que a sequência está concluída.
A mensagem TerminateSequence indica que a mensagem número 1 era a última mensagem da sequência.
- O provedor recebe a mensagem TerminateSequence, indicando que o consumidor não enviará
mais mensagens. O provedor envia uma mensagem TerminateSequenceResponse para o consumidor e
recupera os recursos associados à sequência.
Os detalhes para saber se as mensagens devem ser entregues em ordem ou não, estão contidos no conjunto de políticas do WS-RM. Use o diagrama anterior para referência.
Voltar para Estendendo a Amostra Address Book
Voltar para Início da Amostra