Este artigo descreve os nós de agregação e o padrão de solicitação-resposta do MQ do ® WebSphere® Message Broker, e então mostra como usá-los para criar fluxos de mensagens. Para tirar proveito deste artigo, é necessário ser capaz de projetar um serviço da web de processamento paralelo para aprimorar o desempenho.
Agregação é a geração e distribuição de solicitações relacionadas que são derivadas de uma única mensagem de entrada, e a reunião das respostas correspondentes para produzir uma única mensagem de resposta agregada. O WebSphere Message Broker fornece três nós de fluxo de mensagens que oferecem suporte à agregação:
- Nó AggregateControl
Marca o começo de uma distribuição de solicitações que fazem parte de uma agregação e envia uma mensagem de controle que é usada pelo nó AggregateReply para fazer a correspondência entre as diferentes solicitações que foram feitas. - Nó AggregateRequest
Registra o fato das mensagens de solicitação terem sido enviadas e coleta informações que ajudam o nó AggregateReply a desenvolver a mensagem de resposta agregada. - Nó AggregateReply
Marca o fim de um fan-in de agregação, coleta respostas e as combina em uma única mensagem de resposta agregada.
Padrão solicitação-resposta do MQ
É possível usar a fachada de serviços junto ao padrão de solicitação-resposta do WebSphere MQ para fornecer uma fachada de serviço a funções que são acessíveis apenas por meio do WebSphere MQ. Esse padrão cria uma ponte entre o protocolo HTTP síncrono, que é tipicamente usado com serviços da web, e aplicativos existentes com interfaces do WebSphere MQ que não podem ser facilmente atualizadas.
A solução envolve a implementação de um fluxo de mensagens que fornece um ponto de entrada de serviços. Quando uma solicitação de serviço é recebida, o identificador de resposta é armazenado em uma fila interna e a solicitação é encaminhada para o aplicativo provedor. Quando a resposta é recebida do aplicativo provedor, o identificador de resposta é recuperado e uma resposta de serviço da web contendo a resposta do provedor é retornada ao aplicativo solicitante:
Padrão solicitação-resposta do MQ

Desenvolvendo os fluxos de mensagens
Esta seção mostra como criar um serviço da web síncrono paralelo.
Criando os fluxos de fachada de serviço
Os fluxos de fachada de serviço podem ser gerados a partir do padrão de solicitação-resposta do MQ:
- Fluxo de Solicitação de Fachada
Quando uma solicitação SOAP é recebida, os cabeçalhos SOAP e HTTP são removidos para deixar a mensagem XML básica, e depois um cabeçalho MQMD é incluído antes de a mensagem ser colocada na fila de entrada de fan-out de agregação. Finalmente, o nó MQOutput SaveToStore é usado para armazenar o identificador de resposta SOAP e o identificador de mensagem do MQ relacionado. No fluxo de resposta de fachada, o identificador de mensagem do MQ relacionado é usado para recuperar o identificador de resposta SOAP; portanto, em fluxos subsequentes, o identificador de mensagem do MQ não pode ser perdido. Para controlar o identificador de forma conveniente, daqui em diante o identificador de mensagem do MQ será chamado de identificador de mensagem original.
Fluxo de solicitação SOAP do padrão de solicitação-resposta do MQ

- Fluxo de Resposta de Fachada
Este fluxo lê a mensagem de resposta de uma fila de saída de fan-in agregado e, então, o identificador de resposta SOAP é recuperado do MQ pelo identificador de mensagem original. Em seguida, o cabeçalho de resposta HTTP é criado e o cabeçalho MQMD é removido e, finalmente, a mensagem de resposta é enviada ao nó SOAP Reply.
Fluxo de resposta SOAP do padrão de solicitação-resposta do MQ

Criando os fluxos de agregação
Para economizar tempo, comece a partir da amostra de agregação na galeria de amostras do WebSphere Message Broker: selecione WebSphere Message Broker Toolkit => Help => Samples and Tutorials.
- Fluxo de Fan-Out Agregado (modo serial)
Este fluxo toma a mensagem de solicitação de entrada, gera duas mensagens de solicitação diferentes (solicitações bus e subway), envia-as ao MQ para que o processador as consuma e começa a controlar a operação de agregação. As ramificações de subsolicitação são processadas em sequência: a solicitação bus é colocada no MQ primeiro, seguida pela solicitação subway. Neste fluxo, as mensagens do MQ (solicitação bus e solicitação subway) possuem o mesmo identificador de mensagem MQMD que o identificador de mensagem original. Além disso, o campo correlIds do MQMD é definido como o identificador de mensagem original, porque os novos identificadores de mensagem serão gerados após as mensagens de solicitação terem sido colocadas na fila de solicitação agregada.
Fluxo de fan-out agregado

- Fluxo de solicitação-resposta agregado (modo paralelo)
Este fluxo é usado para processar as mensagens de solicitação da operação de agregação. As mensagens dos nós de entrada do MQ são processadas em paralelo e, portanto, deve-se configurar números de instâncias adicionais para esse fluxo. Depois do fluxo de fan-out, um novo MsgId do MQMD é gerado, mas o CorrelId do MQMD é o mesmo que o identificador de mensagem original. Por padrão (se nenhuma opção for definida), o nó MQReply gera um novo campo MsgId na mensagem de resposta e copia o MsgId da mensagem de entrada para o campo CorrelId na mensagem de resposta. Se o identificador de mensagem original não estiver armazenado aqui, ele será perdido no próximo fluxo de fan-in, portanto ele é armazenado no MQ com o novo MsgId correspondente gerado pelo nó MQReply.
Fluxo de Solicitação-Resposta Agregado

- Fluxo de Fan-In Agregado
Este fluxo recebe todas as respostas do fluxo de Solicitação-Resposta e as agrega em uma única mensagem de saída. O nome agregado para os nós AggregateControl e AggregateReply deve possuir o mesmo valor. Um nó Compute é incluído para ajustar a mensagem de resposta em um formato no qual ela possa ser escrita em uma fila. Em seguida, é necessário recuperar o identificador de mensagem original, que é salvo pelo fluxo de Solicitação-Resposta agregado.
Fluxo de fan-in agregado

Esta tabela relaciona todas as filas usadas nos fluxos acima:
Descrições de Nó do MQ
| Nome da fila | Fluxo / Nó | Comentários |
|---|---|---|
| PROVIDER | Solicitação de Fachada / Solicitação de Gravação | Ponto de conexão entre os fluxos de Solicitação de Fachada e Fan-out. A mensagem da solicitação SOAP é enviada ao fluxo de Fan-Out por esta fila. |
| Fan-Out Agregado/ Entrada do MQ | ||
| STORE | Solicitação de Fachada / SavetoStore | Esta fila é usada para salvar e recuperar o ID de resposta SOAP, que é correlacionado com o identificador de mensagem do MQ. |
| Resposta de Fachada / Recuperar ID de Resposta | ||
| AGG_REQUEST | Fan-Out Agregado / Saída do MQ | As subsolicitações divididas são colocadas nesta fila, e então o fluxo de Solicitação-Resposta as lê e processa em paralelo. |
| Solicitação-Resposta Agregadas / Entrada do MQ | ||
| STORE1 | Solicitação-Resposta Agregadas / Salvar CorrelId no MQ | O fluxo de Solicitação-Resposta precisa salvar o identificador de mensagem original, que é correlacionado com o ID de Resposta SOAP. O fluxo de Fan-In precisa recuperar o identificador de mensagem original e usá-lo para atualizar o identificador de mensagem de saída. Então a mensagem de saída é enviada ao fluxo de Resposta de Fachada. |
| Fan-In Agregado / GET do MQ | ||
| AGG_REPLY | Fan-In Agregado / Entrada do MQ | Fila de resposta do AGG_REQUEST. Os resultados do fluxo de Solicitação-Resposta são colocados nessa fila para que o fluxo de Fan-In possa agregar o resultado. |
| RESPONSE | Fan-In Agregado / Saída do MQ | Ponto de conexão entre Fan-In Agregado e Resposta de Fachada. A mensagem de resultado de agregação é enviada ao fluxo de Resposta de Fachada para desenvolver a mensagem de resposta SOAP. |
| Resposta de Fachada / Resposta de GET |
| Descrição | Nome | Tamanho | Método de download |
|---|---|---|---|
| Code sample | wmb_parallel_aggregate_samples.zip | 82 KB | HTTP |
Informações sobre métodos de download
- Recursos do WebSphere Message Broker
- Centro de informações do WebSphere Message Broker V7
Um portal da web único que reúne toda a documentação do WebSphere Message Broker V7, com conceitos, tarefas e informações de referência sobre a instalação, a configuração e o uso do seu ambiente WebSphere Message Broker. - Página de recursos para desenvolvedor do WebSphere Message Broker
Recursos técnicos para ajudar a usar o WebSphere Message Broker para conectividade, transformação de dados universal e integração em nível corporativo de serviços, aplicativos e plataformas diversos, para reforçar sua SOA. - Página do produto WebSphere Message Broker
Descrições do produto, notícias sobre o produto, informações de treinamento, informações de suporte, etc. - O que há de novo no WebSphere Message Broker V7
O WebSphere Message Broker V7 fornece conectividade universal com sua capacidade de rotear e transformar mensagens de qualquer lugar para qualquer lugar. Por meio de seu modelo de programação simples e uma eficiente interface de gerenciamento operacional, ele facilita muito o desenvolvimento, a implementação e a manutenção de soluções complexas de integração de aplicativos. Esse artigo descreve os principais aprimoramentos na V7. - Faça download de uma versão de teste gratuita do WebSphere Message Broker V7
O WebSphere Message Broker V7 é uma compilação ESB para conectividade universal e transformação em ambientes heterogêneos de TI. Ele distribui informações e dados gerados por eventos de negócio em tempo real para pessoas, aplicativos e dispositivos por todo a sua empresa, e além dela. - Biblioteca de documentação do WebSphere Message Broker
Especificações e manuais do WebSphere Message Broker. - Fórum do WebSphere Message Broker
Obtenha respostas para as suas perguntas técnicas e compartilhe seu conhecimento com outros usuários do Message Broker. - Página de suporte do WebSphere Message Broker
Um banco de dados para pesquisa de problemas de suporte e suas soluções, além de downloads, correções e rastreamento de problemas.
- Centro de informações do WebSphere Message Broker V7
- Recursos do WebSphere
- Recursos para desenvolvedores WebSphere no developerWorks
Informações técnicas e recursos para desenvolvedores que usam produtos WebSphere. O WebSphere no developerWorks fornece downloads de produtos, informações de instruções, recursos de suporte e uma biblioteca técnica grátis com mais de 2.000 artigos técnicos, tutoriais, melhores práticas, IBM Redbooks e manuais on-line de produtos. - Recursos do developerWorks para desenvolvedor de integração do aplicativo WebSphere
Artigos de instruções, downloads, tutoriais, educação, informações de produto e outros recursos para ajudá-lo a desenvolver soluções de integração do aplicativo WebSphere e de integração de negócio. - Recursos do desenvolvedor de gerenciamento de processos de negócio do WebSphere no developerWorks
Artigos de instruções, downloads, tutoriais, educação, informações de produtos e outros recursos do WebSphere BPM para ajudá-lo a modelar, montar, implementar e gerenciar processos de negócios. - Downloads de versão de teste do WebSphere mais populares
Downloads de versão gratuita de teste dos principais produtos do WebSphere. - Fóruns do WebSphere
Fóruns específicos do produto nos quais é possível obter respostas de perguntas técnicas e compartilhar o seu conhecimento com outros usuários de WebSphere. - Demos On Demand do WebSphere
Faça o download e acompanhe essas demos de execução automática, e saiba como os produtos e tecnologias WebSphere podem ajudar sua empresa a responder a um ambiente de negócios em rápida mudança e com complexidade crescente. - Boletim semanal sobre o WebSphere do developerWorks
O boletim do developerWorks oferece artigos e informações mais recentes somente naqueles tópicos que interessam a você. Além do WebSphere, é possível selecionar entre Java, Linux, Open source, Rational, SOA, serviços da web e outros tópicos. Inscreva-se agora e indique as mensagens que deseja receber. - Livros da IBM Press relacionados ao WebSphere
Compras on-line convenientes por meio da Barnes & Noble. - Eventos relacionados ao WebSphere
Conferências, exposições, Webcasts e outros eventos em todo o mundo que são do interesse dos desenvolvedores WebSphere.
- Recursos para desenvolvedores WebSphere no developerWorks
- Recursos do developerWorks
- Downloads de teste de produtos de software IBM
Downloads de teste sem custo de produtos selecionados da IBM® DB2®, Lotus®, Rational®, Tivoli® e WebSphere® . - blogs do developerWorks
Participe de uma conversa com os usuários e autores do developerWorks, e com editores e desenvolvedores da IBM. - Recursos de computação em nuvem do developerWorks
Acesse a nuvem IBM ou Amazon EC2, teste um produto de computação em nuvem da IBM em um ambiente de simulação, assista a demos de produtos e serviços de computação em nuvem, leia artigos sobre a nuvem e acesse outros recursos sobre a nuvem. - Briefings técnicos do developerWorks
Sessões informativas técnicas grátis realizadas por especialistas IBM para acelerar a sua curva de aprendizagem e ajudá-lo a ter sucesso nos seus projetos de software mais desafiadores. As sessões informativas vão de sessões virtuais de uma hora a sessões ao vivo com meio dia e um dia inteiro de duração em cidades do mundo todo. - Podcasts do developerWorks
Ouça entrevistas e discussões interessantes com inovadores de software. - o developerWorks no Twitter
Confira as nossas mensagens e URLs recentes no Twitter. - IBM Education Assistant
Uma coleção de módulos educacionais multimídia que ajudam a entender melhor os produtos de software IBM e usá-los de forma mais efetiva para atender aos seus requisitos de negócios.
- Downloads de teste de produtos de software IBM
Fangtai Li é Software Engineer no IBM China Development Lab. Sua experiência inclui design e desenvolvimento de SOA e J2EE, e ele é um IBM Certified WebSphere Message Broker V7 Solution Developer. Você pode entrar em contato com Fangtai pelo email ftli@cn.ibm.com.
Zhang Hua é Staff Software Engineer no IBM China Development Lab. Ele trabalha em projetos relacionados a padrões de turismo e transporte, e sua experiência inclui desenvolvimento de banco de dados, Java, SOA, Web 2.0 e .NET. Ele também tem interesse em tecnologias de processamento multimídia, de mecanismos de busca e da web. Ele obteve mestrado em Ciência da Computação na Universidade de Tsinghua e tem oito anos de experiência em desenvolvimento de software. Você pode entrar em contato com Zhang pelo email zhuadl@cn.ibm.com.