Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Desenvolvendo um serviço da web de processamento paralelo com o padrão de fachada de serviço e nós de agregação do WebSphere Message Broker

Fangtai Li, Software Engineer, 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, IBM
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.

Resumo:  Este artigo mostra como desenvolver um serviço da web de processamento paralelo usando o padrão de fachada de serviço e os mecanismos de agregação no WebSphere Message Broker. Os nós de agregação espalham a mensagem de entrada inicial para várias solicitações MQ que podem ser processadas de forma assíncrona e, depois, reúnem as diversas respostas em uma única resposta consolidada. O padrão de fachada de serviço fornece uma única interface de serviço da web desacoplada dos serviços do MQ, permitindo que você desenvolva um serviço da web síncrono paralelo.

Data:  28/Dez/2011
Nível:  Intermediário Também disponível em :   Inglês
Atividade:  672 visualizações
Comentários:  


Introdução

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.

Nós de agregação

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


Nós do MQ

Esta tabela relaciona todas as filas usadas nos fluxos acima:


Descrições de Nó do MQ
Nome da filaFluxo / NóComentários
PROVIDERSolicitação de Fachada / Solicitação de GravaçãoPonto 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
STORESolicitação de Fachada / SavetoStoreEsta 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_REQUESTFan-Out Agregado / Saída do MQAs 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
STORE1Solicitação-Resposta Agregadas / Salvar CorrelId no MQO 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_REPLYFan-In Agregado / Entrada do MQFila 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.
RESPONSEFan-In Agregado / Saída do MQPonto 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


Download

DescriçãoNomeTamanhoMétodo de download
Code samplewmb_parallel_aggregate_samples.zip82 KBHTTP

Informações sobre métodos de download


Recursos

  • Recursos do WebSphere Message Broker
  • Recursos do WebSphere
  • 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.

Sobre os autores

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.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=783160
ArticleTitle=Desenvolvendo um serviço da web de processamento paralelo com o padrão de fachada de serviço e nós de agregação do WebSphere Message Broker
publish-date=12282011

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).