Sobre a Amostra Web Services Gateway

A amostra Web Services Gateway mostra como é possível usar nós SOAP operando no modo gateway para chamar e fornecer um serviço da Web. Essa amostra é a compilação de duas amostras existentes (SOAP Nodes e Address Book) e modifica a URL nos nós SOAPRequest para que todas as solicitações sejam roteadas por meio de um novo fluxo de gateway que encaminha a solicitação para o provedor de serviços da Web adequado.

Na amostra, a operação é extraída da mensagem de solicitação SOAP, e um serviço configurável definido pelo usuário é usado para recuperar a URL do provedor de serviços da Web.

O assistente da amostra substitui a URL nos nós SOAPRequest nos arquivos bar do fluxo do consumidor. Se você escolher recriar os arquivos bar, é possível que essas configurações sejam limpas e o fluxo do gateway não seja chamado.

Um diagrama ilustrando a configuração dessa amostra

A amostra Web Services Gateway demonstra as seguintes tarefas:

Antes de Iniciar:

Antes de iniciar, você deve estar familiarizado com as amostras existentes, sobre as quais essa amostra é construída.

O Fluxo de Mensagens

O diagrama a seguir mostra o fluxo de mensagens do Gateway de Serviços da Web:

Uma captura de tela do fluxo de mensagens do gateway da Web

A tabela a seguir mostra os nós no fluxo de mensagens:

Tipo de Nó Nome de Nó
SOAPInput GatewayInput
JavaCompute ComputeURL
SOAPRequest Pedido SOAP
SOAPReply GatewayReply

O nó SOAPInput opera no modo gateway e aceita os pedidos dos fluxos de consumidor da amostra Address Book ou da amostra SOAP Node.

O nó JavaCompute captura o nome da operação a partir da mensagem de solicitação recebida e o armazena no csName. O assistente de configuração da amostra cria um serviço configurável Definido pelo Usuário chamado Gateway e uma propriedade correspondente aos nomes da operação para dois fluxos de consumidor a partir das amostras existentes. O BrokerProxy é usado para obter o valor do serviço configurável e para configurar a URL para a solicitação no ambiente local.

List nodeset = (List)message.getRootElement().evaluateXPath("SOAP/Body/*[1]");
String csName=((MbElement)(nodeset.get(0))).getName();
		
String URL = null;
	
try {
	//Get the broker proxy
	BrokerProxy bp = BrokerProxy.getLocalInstance();
	//Find the URL from a configurable service
	URL = bp.getConfigurableServiceProperty("UserDefined/Gateway/"+csName);			
} catch (Exception e) {
	URL="/";
}

//Set the WebServiceURL creating the path if it doesn't exist
le.getRootElement().evaluateXPath("?Destination/?SOAP/?Request/?Transport/?HTTP/?WebServiceURL[set-value('"+URL+"')]");

O nó SOAPRequest envia o pedido para o fluxo de provedor apropriado.

O nó SOAPReply retorna a resposta para o fluxo do consumidor de chamada.

As Mensagens

As mensagens SOAP são geradas pelos fluxos do consumidor e do provedor existentes. O fluxo de gateway usa o nome da operação para roteá-lo para o provedor correto.

Estendendo a Amostra

Após executar a amostra, é possível que você queira estendê-la incluindo outro provedor de serviço da Web. Como é usado um serviço configurável para armazenar a URL para o provedor, basta incluir uma propriedade com o nome de uma operação de serviço existente e o conjunto de valores na URL.

Voltar para Home da Amostra