Sobre a Amostra WebSphere Service Registry and Repository Connectivity

A amostra WebSphere Service Registry and Repository (WSRR) Connectivity é baseada em um cenário no qual um negócio deseja usar o WebSphere Service Registry and Repository para escolher dinamicamente um serviço da Web a ser chamado no tempo de execução. A amostra demonstra o uso do nó EndpointLookup para recuperar arquivos WSDL do Service Registry para chamar um serviço da Web, no entanto, o Service Registry também pode armazenar outro tipos de documentos que podem ser recuperados usando o nó RegistryLookup. Apesar dos dois nós serem utilizados para recuperar diferentes tipos de documentos a partir do Registro de Serviços, a configuração de ambos os nós é a mesma, e é possível utilizar a configuração de exemplo desta amostra para utilizar o nó RegistryLookup.

O diagrama a seguir mostra a arquitetura de usar a conectividade do WebSphere Service Registry and Repository em um fluxo de mensagens.

Uma ilustração da arquitetura da conectividade do WebSphere Service Registry and Repository.

A amostra WebSphere Service Registry and Repository Connectivity demonstra as seguintes tarefas:

O serviço da Web na amostra, os serviços DemoCustomer, aceitam pedidos updateCustomer e retornam mensagens updateCustomerResponse. Um requisito comum de um Enterprise Service Bus (ESB) e do Registro é facilitar a invocação de serviço onde duas ou mais versões do mesmo serviço existem. O ESB deve poder chamar o serviço apropriado com base no pedido. O Registro deve poder acomodar múltiplos serviços como os que podem ser descobertos e utilizados. Nesta amostra, existem duas versões de serviço da Web DemoCustomer, ambas implementadas usando fluxos de mensagens que estão em execução no WebSphere Message Broker. A versão 1.0 é chamada quando as propriedades do nó estático EndpointLookup são utilizadas, e a versão 2.0 é chamada quando a mensagem SOAP de entrada contém informações de sobreposição em tempo de execução.

As Mensagens

Três mensagens de entrada são fornecidas para executar a amostra WebSphere Service Registry and Repository Connectivity:

A seguinte mensagem é a mensagem SOAP que chama o serviço da Web que é determinado pelas propriedades do nó EndpointLookup estático (versão 1.0):

<?xml version="1.0"
encoding="UTF-8"?> <soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <Request>
      <Verb>UpdateCustomer</Verb>
      <Data>
        <Customer>ABC</Customer>
      </Data>
    </Request>
  </soapenv:Body> </soapenv:Envelope>

A mensagem seguinte é a mensagem SOAP que chama o serviço da Web que é determinado pelas sobreposições do tempo de execução (versão 2.0). A mensagem é a mesma que a mensagem anterior, mas com o acréscimo da marcação de Versão, que é usada em tempo de execução para recuperar a versão 2.0 do WSDL a partir do Registro de Serviço:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <Request>       <Version>2.0</Version>
      <Verb>UpdateCustomer</Verb>
      <Data>
        <Customer>ABC</Customer>
      </Data>
    </Request>
  </soapenv:Body> </soapenv:Envelope>

A mensagem seguinte é a mensagem SOAP com uma propriedade Versão que não corresponde a quaisquer documentos no Registro de Serviço:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <Request>       <Version>3.0</Version>
      <Verb>UpdateCustomer</Verb>
      <Data>
        <Customer>ABC</Customer>
      </Data>
    </Request>
  </soapenv:Body> </soapenv:Envelope>

Os Fluxos de Mensagens

O diagrama a seguir mostra o fluxo de mensagens principal.

Captura de Tela do Fluxo de Mensagens Principal.

Tipo de Nó Nome de Nó
MQInput WSRR_IN
MQOutput WSRR_OUT
Compute SetVersion, InformFailure, InformWSResult, InformNoMatch
EndpointLookup Consulta de Terminal Um
SOAPRequest Pedido SOAP

O diagrama a seguir mostra o fluxo de serviço da Web. Duas versões deste fluxo de serviço da Web são mostradas. A diferença entre as duas versões é o nó Compute, que retorna uma resposta diferente para identificar qual versão foi chamada.

Uma captura de tela do fluxo de Serviços da Web.

Tipo de Nó Nome de Nó
SOAPInput SOAP DempCustomer
Compute Criar Resposta WS
SOAPReply Resposta SOAP

Para localizar mais informações sobre os nós usados na amostra de conectividade WSSR, consulte Nós Integrados na documentação do WebSphere Message Broker.

A rota assumida pela primeira mensagem (versão estática)

Quando você colocar a primeira mensagem na fila de entrada, a mensagem passa através dos nós como descrito posteriormente neste tópico. Se qualquer uma das filas tiver sido desativada, a mensagem não pode seguir esse caminho.

Os nós no fluxo de mensagem principal possuem as seguintes funções:

  1. WSRR.IN: O nó pega a mensagem de entrada a partir da fila de entrada.
  2. SetVersion : Este nó Compute sobrepõe a propriedade Versão. Como não há marcação de Versão nessa mensagem, nada é substituído no ambiente local e, portanto, a propriedades estática da Versão no nó EndpointLookup é usada para recuperar a versão 1.0 do WSDL a partir do Registro de Serviço.
  3. EndpointLookupOne: Esse nó é o nó EndpointLookup que conecta-se ao Registro de Serviço e recupera o documento WSDL requerido (versão 1.0 conforme definido na configuração do nó EndpointLookup). A mensagem é propagada para um dos três nós com fio conforme determinado pela recuperação bem-sucedida (ou de outra forma) de um documento WSDL correspondente a partir do Registro de Serviços. Devido ao fato do nó EndpointLookup estar configurado para recuperar apenas "Um" documento WSDL correspondente, não há o requisito para seguir este nó com um nó Compute. Se o nó EndpointLookup está configurado para recuperar "Todos" os documentos WSDL correspondentes, siga este nó por um nó Compute para interrogar os documentos recuperados. Você pode usar o nó Compute para selecionar o documento para enviar para o nó SOAPRequest como mostrado na figura de arquitetura precedente.
  4. InformFailure: A mensagem é propagada para este nó se o WebSphere Message Broker encontrar erros na conexão ou durante a conexão com o Registro de Serviços.
  5. SOAPRequest: A mensagem é propagada para este nó se o nó EndpointLookup recuperar com êxito o documento WSDL solicitado do Registro de Serviços. O nó envia a mensagem SOAP para o serviço da Web que é determinado pelo terminal no WSDL.
  6. InformWSResult : Em uma chamada bem-sucedida do serviço da Web, este nó converte os cabeçalhos HTTP na mensagem para cabeçalhos MQMD no intuito de propagar a resposta para o nó MQOutput.
  7. InformNoMatch : A mensagem é propagada para este nó caso o Registro de Serviço não possa encontrar um documento WSDL correspondente.
  8. WSRR.OUT: Este nó coloca a mensagem na fila de saída WSRR.OUT.
Os nós no fluxo de serviços da Web possuem as seguintes funções:
  1. SOAPDemoCustomerMB : Este nó SOAPInput recebe a mensagem do SOAP a partir do fluxo de mensagens principal.
  2. Compute: Uma resposta é gerada por este nó.
  3. SOAPReply : Esse nó envia a resposta para o aplicativo de chamada, o nó SOAPRequest.

A rota assumida pela segunda mensagem (versão de runtime)

A rota é como descrito anteriormente, mas com as seguintes diferenças:

A rota assumida pela terceira mensagem (sem correspondência)

A rota é como descrito anteriormente, mas com as seguintes diferenças:

O propósito dessa amostra é ler uma mensagem de entrada e conectar o Registro de Serviço para recuperar um documento WSDL. Caso uma correspondência seja encontrada, ela invoca o serviço da Web relevante e grava a mensagem em outra fila. Caso uma correspondência não seja encontrada, ela grava a mensagem "Sem Correspondência" na fila.

Para obter mais informações, consulte WebSphere Service Registry and Repository na documentação do WebSphere Message Broker.

Voltar para Home da Amostra