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.
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.
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>
O diagrama a seguir mostra o 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.
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.
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:
A rota é como descrito anteriormente, mas com as seguintes diferenças:
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.