Acessando um Aplicativo Ativado pelo WebSphere MQ como um Serviço da Web

Este cenário representa um serviço da Web que fornece uma interface para um aplicativo ativado pelo WebSphere MQ que utiliza MIME como o domínio. Um fluxo de mensagens para este cenário e as árvores de mensagens resultantes são especificados abaixo:

Este diagrama mostra um cliente HTTP externo enviando e recebendo mensagens de um fluxo de mensagens. O fluxo de mensagens consiste em um nó HTTPInput conectado a um nó Compute chamado Compute1. O nó Compute é então conectado a um nó MQOutput. O nó MQOutput coloca a mensagem em uma fila utilizada por um aplicativo externo. O aplicativo coloca uma mensagem em outra fila. A mensagem da fila vai para um nó MQInput. Este nó é conectado a outro nó Compute chamado Compute2. O nó Compute é conectado a um nó HTTPReply. A mensagem de resposta é retornada ao cliente HTTP.

Quando uma mensagem MIME entra no fluxo de mensagens, o Content-Type de nível superior da mensagem é armazenado na árvore HTTPInputHeader e na árvore de mensagens lógicas MIME. O intermediário também armazena uma cópia do Content-Type da mensagem como o valor ContentType na subárvore Propriedades. O diagrama abaixo mostra a árvore de mensagens após a mensagem ter saído do nó HTTPInput:

O diagrama mostra a árvore de mensagens lógicas após a mensagem ter saído do nó HTTPInput. A raiz da árvore é chamada Root e possui três filhos. Eles são, pela ordem, Properties, HTTPInputHeader e MIME.

O primeiro nó Compute, Compute1, deve incluir um cabeçalho MQMD na mensagem e salvar o correlator HTTP para utilização pelo fluxo de retorno. O correlator HTTP pode ser armazenado em um banco de dados ou copiado para o corpo da mensagem. O ESQL de exemplo a seguir ilustra como o correlator pode ser armazenado em um corpo da mensagem XML:
SET OutputRoot.XML.X.rid = CAST(InputLocalEnvironment.Destination.HTTP.RequestIdentifier AS CHARACTER); 
O diagrama abaixo mostra a árvore de mensagens após ela ter saído do nó Compute1:

O diagrama mostra a árvore de mensagens lógicas após a mensagem ter saído do primeiro nó Compute. A raiz da árvore é chamada Root e possui quatro filhos. Eles são, pela ordem, Properties, HTTPInputHeader, MQMD e MIME.

Se o aplicativo receptor da mensagem MQ esperar que a mensagem esteja em um formato MIME, será necessária uma árvore MIME. Compute1 pode fornecer isso criando uma nova árvore MIME ou modificando e propagando uma árvore MIME existente. Para modificar o Content-Type da mensagem, a propriedade ContentType do intermediário deve ser utilizada. Quando a propriedade ContentType do intermediário for modificada, a propriedade Content-Type na árvore MIME será atualizada automaticamente.

Quando a mensagem for recebida da fila de mensagens por meio do nó MQInputm o segundo nó Compute, Compute2, deverá remover o cabeçalho MQMD da mensagem e restaurar o correlator HTTP. Se Compute1 tiver copiado o correlator do corpo da mensagem conforme descrito acima, Compute2 poderá restaurar o correlator com o seguinte ESQL:
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(InputRoot.XML.X.rid AS BLOB); 
Compute2 também pode configurar um HTTPReplyHeader explícito.

Se o domínio de saída for MIME, uma árvore MIME deverá ser criada para a saída da mensagem. Compute2 cria uma nova mensagem MIME ou modifica e propaga a mensagem MIME de entrada, conforme requerido para criar a mensagem de saída. O diagrama a seguir mostra a árvore de mensagens após ela passar por Compute2:

O diagrama mostra a árvore de mensagens lógicas após a mensagem ter saído do segundo nó Compute. A raiz da árvore é chamada Root e possui quatro filhos. Eles são, pela ordem, Properties, HTTPInputHeader, HTTPReplyHeader e MIME.

São possíveis muitas variações deste cenário. Por exemplo, um único fluxo pode ser criado utilizando um nó MQGet em vez do nó MQInput e, em seguida, o correlator HTTP não precisará ser salvo. No entanto, isto é possivelmente menos escalável. A amostra Amostra Coordinated Request Reply fornece informações adicionais sobre como utilizar o nó MQGet.

Conceitos relacionados
Manipulando Mensagens no Domínio MIME
Detalhes da Árvore MIME
Mensagens MIME
Tarefas relacionadas
Desenvolvendo ESQL
Desenvolvendo Java
Referências relacionadas
Criando um Serviço da Web com HTTP como o Transporte
Criando um Serviço da Web com o WebSphere MQ como o Transporte
Um Aplicativo Ativado pelo WebSphere MQ Chamando um Serviço da Web
Nó HTTPReply
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac30040_