Agregação de Fluxo de Mensagens

Agregação é a geração e difusão de pedidos relacionados derivados de uma única mensagem de entrada e a recepção de respostas correspondentes para produzir uma mensagem de resposta única e agregada.

O pedido inicial recebido pelo fluxo de mensagens, representando uma coleção de itens de pedido relacionados, é dividido no número apropriado de pedidos individuais para atender às subtarefas do pedido inicial. Esse processo é conhecido como difusão e é fornecido por um fluxo de mensagens que inclui nós de agregação.

As respostas de subtarefas são combinadas e intercaladas em uma única resposta que é retornada ao solicitante original (ou outro aplicativo de destino) para indicar a conclusão do processamento. Esse processo é conhecido como recepção e também é fornecido por um fluxo de mensagens que inclui nós de agregação.

Você pode iniciar a agregação enviando uma mensagem para um fluxo de mensagens de um aplicativo cliente que está conectado ao intermediário através de qualquer protocolo suportado e a resposta agregada também pode ser enviada para um aplicativo cliente através de todos esses protocolos. As mensagens emitidas pelo fluxo de mensagens de difusão e as respostas recebidas pelo fluxo de mensagens de recepção devem ser mensagens de pedido/resposta. Você fica, portanto, limitado aos aplicativos cliente que conectam utilizando o WebSphere MQ Enterprise Transport (enviando e recebendo mensagens para e a partir dos nós MQInput e MQOutput) ou aos clientes que utilizam outro protocolo suportado por nós de entrada e saída definidos pelo usuário que estão de acordo com o modelo de comunicação de pedido/resposta.

O WebSphere Message Broker fornece três nós do fluxo de mensagens que suportam agregação:

Quando você inclui esses nós em seus fluxos de mensagens, os diversos pedidos de difusão são emitidos em paralelo a partir de um fluxo de mensagens. Isso está em contraste com a operação padrão do fluxo de mensagens no qual cada nó executa seu processamento em seqüência.

Você também pode utilizar esses nós para emitir pedidos para aplicativos fora do ambiente do intermediário; as mensagens podem ser enviadas de forma assíncrona para aplicativos externos ou serviços, respostas recuperadas desses aplicativos e respostas combinadas para fornecer uma única resposta para a mensagem de pedido original.

Esses nós também permitem um aperfeiçoamento no tempo de resposta, porque pedidos lentos podem ser executados em paralelo e não precisam seguir uns aos outros seqüencialmente. Se as subtarefas puderem ser processadas de forma independente, e não precisarem ser tratadas como parte de uma única unidade de trabalho, elas poderão ser processadas por fluxos de mensagens separados.

Você pode projetar e configurar um fluxo de mensagens que fornece uma função semelhante sem utilizar os nós agregados, emitindo os pedidos de subtarefas para outro aplicativo (por exemplo, utilizando o nó HTTPRequest) e registrando os resultados de cada um no Ambiente Local. Após a conclusão de cada subtarefa, você pode intercalar os resultados de LocalEnvironment em um nó Compute e criar a mensagem de resposta combinada para propagar o aplicativo de destino. Se você fizer isso, todas as subtarefas serão executadas seqüencialmente e não fornecerão os benefícios de desempenho de operação paralela que podem ser obtidos utilizando os nós agregados.

Exemplos de fluxos de agregação utilizando os nós agregados são fornecidos na Aggregation sample e na Airline Reservations sample. A amostra Aggregation demonstra uma agregação simples de quatro vias e a amostra Airline Reservations simula pedidos relacionados a um serviço de reserva de vôo e ilustra as técnicas associadas aos fluxos de agregação.

Conceitos relacionados
Nós do Fluxo de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Configurando Fluxos de Agregação
Referências relacionadas
Nós Internos
Nó AggregateControl
Nó AggregateReply
Nó AggregateRequest
Notices | Trademarks | Downloads | Library | Support | Feedback
Copyright IBM Corporation 1999, 2006 Last updated: 5월 25, 2006
ac00660_