Os aplicativos podem utilizar os serviços de um intermediário enviando e recebendo mensagens dele em um dos protocolos de transporte suportados.
O modo que isto é feito depende do próprio protocolo, a interface de programação que utilizam e o modelo de comunicação que adotam.
O WebSphere Message Broker suporta dois modelos de comunicação de aplicativos de usuário final:
Um único aplicativo pode misturar os dois estilos, se apropriado. Em um cenário misto, o fluxo de mensagens que processa mensagens para esse aplicativo contém, ao menos, um nó output e um nó de publicação, além de um ou mais nós de entrada.
As interfaces de programação que você pode codificar em seus aplicativos são descritas em Interfaces de Programação de Aplicativo.
Os aplicativos ponto-a-ponto utilizam um modelo de pedido/resposta ou de cliente/servidor ou difundem uma mensagem para muitos aplicativos de destino utilizando listas de distribuição. Outros aplicativos enviam o tráfego unidirecional do tipo envio único ou datagrama. Eles trocam informações com parceiros conhecidos. Cada aplicativo está ciente da identidade dos aplicativos com os quais ele se comunica. Você pode criar e configurar fluxos de mensagens para processar mensagens de envio único e de pedido/resposta, além de implementá-las em seus intermediários.
O texto e os diagramas a seguir ilustram os modelos de envio sem resposta e solicitação/resposta. Os diagramas supõem que os aplicativos estejam utilizando o protocolo WebSphere MQ Enterprise Transport. O modelo é idêntico para outros protocolos, embora o recurso pelo qual uma mensagem é enviada ou recebida não seja uma fila do WebSphere MQ.
No modelo de envio único, um aplicativo envia uma mensagem, mas não espera uma resposta. Outro aplicativo pode receber opcionalmente uma mensagem como um resultado da mensagem enviada pelo primeiro aplicativo. É possível que nenhuma mensagem seja enviada pelo fluxo de mensagens (por exemplo, se o envio da mensagem acaba de solicitar uma atualização do banco de dados). No diagrama, o emissor coloca uma mensagem na fila de entrada de um fluxo de mensagens no intermediário (1). A saída do fluxo de mensagens é colocada na fila receptora (2), onde o receptor pode obtê-la (3).
Com o sistema de mensagens de pedido/resposta, depois que um receptor recebe uma mensagem de pedido, ele envia uma resposta ao emissor. A mensagem de pedido é tratada como descrito para mensagens de envio único. Há duas possibilidades para a resposta:
No diagrama a seguir, o emissor coloca uma mensagem na fila de entrada de um fluxo de mensagens no intermediário (1). A saída do fluxo de mensagens é colocada na fila receptora (2), onde o receptor a obtém (3). O receptor envia a resposta diretamente ao Fila Responder Para do emissor (4), a partir de onde o emissor pode obtê-lo (5).
A saída do fluxo da mensagem de resposta deve ir ao Fila Responder Para do emissor. Se o nome estiver corrigido, não há problema; se não estiver, alguns meios de associar essa fila com a mensagem da resposta serão necessários.
Isso pode ser feito, por exemplo, incluindo um nó Database ou DataInsert no primeiro fluxo de mensagens que armazene as informações de destino da resposta, que pode ser recuperado pelo segundo fluxo de mensagens.
Alternativamente, os detalhes relevantes no descritor da mensagem podem ser copiados para uma pasta no cabeçalho MQRFH2 e transportados com a mensagem.
No diagrama a seguir, o emissor coloca uma mensagem na fila de entrada do primeiro fluxo de mensagens no intermediário (1). A saída do fluxo de mensagens é colocada na fila receptora (2), onde o receptor a obtém (3). O receptor envia a resposta à fila de entrada do segundo fluxo de mensagens no intermediário (4). Após o processamento da resposta, o intermediário envia-o à Fila Responder Para do emissor (5), a partir de onde o emissor pode obtê-lo (6). (Nesse caso, o nó output do segundo fluxo de mensagens precisa saber a Fila Responder Para do emissor.)
Os aplicativos existentes, que você gravou utilizando o modelo ponto-a-ponto, podem ser executados sem alteração em uma ambiente do WebSphere Message Broker, se eles utilizarem um dos protocolos suportados para comunicar-se com o intermediário.
Você pode melhorar e estender a função existente de seu aplicativo utilizando os recursos do intermediário para incluir parceiros adicionais. Por exemplo, um aplicativo que trata dados semelhantes, mas em um formato diferente, podem participar porque a mensagem original pode ser transformada por um fluxo de mensagens no intermediário para o formato esperado, sem precisar alterar o aplicativo de envio ou de recepção.
Se você identificar uma mensagem que precisa de processamento de aplicativo adicional, você pode criar outra cópia da mensagem no fluxo de mensagens e enviá-la para um novo aplicativo desenvolvido para fornecer esse processamento. Os aplicativos originais não estão cientes da nova ação da mensagem e continuam a trabalhar sem alteração.
O modelo de comunicação do aplicativo de publicação/assinatura envolve aplicativos conhecidos, como editores e aplicativos conhecidos como assinantes. Os editores disponibilizam as mensagens publicando tópicos específicos. Os assinantes recebem mensagens assinando os tópicos. Um aplicativo individual pode ser editor e assinante.
Mensagens publicadas por qualquer outro publicador podem ser recebidas por qualquer número de assinantes. Assinantes podem também receber mensagens, no mesmo tópico, ou em um diferente, de qualquer número de publicadores.
No diagrama abaixo, o editor pode enviar mensagens Publicar ou Excluir Publicação ao intermediário. O intermediário envia a mensagem Publicar aos assinantes que possuem uma assinatura correspondente. O assinante pode enviar mensagens do tipo Registrar Assinante, Desfazer o Registro de Assinante ou Solicitar Atualização ao intermediário. As mensagens Resposta Opcional do intermediário são enviadas ao editor e ao assinante.
Se você tiver aplicativos do usuário final existentes que são gravados no modelo Publicação/Assinatura, por exemplo, utilizando a MQI ou AMI, provavelmente poderá integrar esses aplicativos em um domínio de intermediário do WebSphere Message Broker sem alteração.
Você também pode modificar esses aplicativos, ou gravar novos, para tirar vantagem do processamento sofisticado de Publicação/Assinatura que é fornecido, principalmente para assinantes.
O modelo publicação/assinatura, e o processamento fornecido pelo WebSphere Message Broker, é totalmente descrito nos tópicos adicionais disponíveis nos links relacionadas listados abaixo.