Padrões de Troca de Mensagem do Web Services Addressing

A especificação World Wide Web Consortium (W3C) Web Services Addressing (WS-Addressing) define explicitamente as propriedades de núcleo do WS-Addressing para os Message Exchange Patterns (MEPs) definidos pelo WSDL 1.0. Esses MEPs são resumidos neste tópico, ilustrando as propriedades obrigatórias do WS-Addressing para cada padrão.

MEP Unidirecional

Esta é uma mensagem unidirecional direta definida no WSDL 1.0 como uma operação apenas de entrada. O fragmento WSDL para essa operação possui a seguinte forma:
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
</operation>
As MAPs (Message Addressing Properties) do WS-Addressing a seguir são incluídas automaticamente no cabeçalho de uma mensagem de entrada unidirecional do WS-Addressing pelo tempo de execução do servidor de aplicativos do cliente, para assegurar conformidade com a especificação WS-Addressing.
Dica: Estes valores podem ser substituídos usando as interfaces de programação do sistema (SPIs) WS-Addressing de proprietário IBM.
Tabela 1. As propriedades de endereçamento de mensagem do WS-Addressing incluídas por um cliente no cabeçalho da mensagem de uma mensagem de entrada unidirecional do WS-Addressing. A tabela lista os diferentes nomes de MAP do WS-Addressing e fornece uma descrição para cada um.
Nome de Abstract WS-Addressing MAP, usando a convenção notacional do Conjunto de Informações W3C XML Descrição para uma mensagem de entrada unidirecional
[ação] A ação WS-Addressing que é gerada de acordo com a versão da especificação WS-Addressing que está em uso.
[terminal de respostas] O terminal de respostas do WS-Addressing que indica que nenhuma resposta é esperada para essa mensagem de entrada. O valor dessa MAP depende da versão da especificação WS-Addressing em uso.
[ID de mensagem] Um identificador de mensagem gerado exclusivamente. Embora não exigido pela especificação, o tempo de execução do WebSphere Application Server configura esse valor automaticamente.

Embora a operação WSDL para essa troca de mensagens não especifique nenhuma resposta, as mensagens relacionadas podem ser enviadas como parte de outras trocas de mensagens. Especificamente, os aplicativos podem utilizar as MAPs do terminal de respostas ou do terminal de falhas do WS-Addressing para indicar ao destino de uma mensagem unidirecional o local para o qual enviar as mensagens relacionadas. Para propagar um terminal de respostas ou um terminal de falhas, associe a propriedade apropriada ao contexto de pedido do objeto BindingProvider do JAX-WS ou ao objeto Stub ou Call do JAX-RPC, conforme descrito em Especificando e Adquirindo Message-addressing Properties Utilizando SPIs do Web Services Addressing de Propriedade da IBM, para substituir os padrões.

Pedido-Resposta Bidirecional

Este é um MEP de pedido-resposta conforme definido no WSDL 1.1. A parte da resposta da operação pode ser definida como uma mensagem de saída, uma mensagem de falha, ou ambas. Os extratos de código WSDL a seguir mostram as várias formas de definição para essa operação:
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <output message="tns:myOutputMessage"/>
</operation>
<operation name="myOperation">
  <input message="tns:myInputMessage"/>
  <fault="tns:myFaultMessage"/>
</operation>
O tempo de execução do cliente de servidor de aplicativos garante que o cabeçalho SOAP da mensagem de pedido de saída contenha os cabeçalhos de informações relevantes das mensagens do WS-Addressing. O aplicativo de chamada não precisa configurar os cabeçalhos WS-Addressing. Uma resposta é esperada, portanto, você deve especificar um terminal de respostas ou um terminal de falhas na mensagem de pedido.
Dica: Na especificação 2005/08, um terminal de respostas não especificado é válido porque ele assume como padrão uma referência de terminal que contém o URI anônimo.
A tabela a seguir resume as MAPs que o produto configura por padrão em um pedido de serviço da Web que usa o protocolo do WS-Addressing. É possível substituir ou especificar outros MAPs usando as APIs WS-Addressing de proprietário IBM.
Tabela 2. As propriedades de endereçamento de mensagens incluídas em uma solicitação de serviço da Web que usa o protocolo WS-Addressing. A tabela lista os diferentes nomes de MAP do WS-Addressing e fornece uma descrição para cada um.
Nome de Abstract WS-Addressing MAP, usando a convenção notacional do Conjunto de Informações W3C XML Descrição da mensagem de entrada de uma operação de solicitação-resposta
[ação] A ação WS-Addressing gerada de acordo com a versão da especificação WS-Addressing que está em uso.
[ID de mensagem] Um identificador de mensagem gerado exclusivamente.
A tabela a seguir resume as MAPs que são configuradas por padrão pelo produto em uma mensagem de resposta ou falha do WS-Addressing.
Tabela 3. As propriedades de endereçamento de mensagens incluídas em uma resposta ou mensagem de falha do WS-Addressing. A tabela lista os diferentes nomes de MAP do WS-Addressing e fornece uma descrição para cada um.
Nome de Abstract WS-Addressing MAP, usando a convenção notacional do Conjunto de Informações W3C XML Descrição da mensagem de entrada de uma operação de solicitação-resposta
[ação] A ação WS-Addressing gerada de acordo com a versão da especificação WS-Addressing que está em uso.
[relationship] Um conjunto de relacionamentos contendo um relacionamento de resposta para o ID de mensagem transmitido na mensagem de pedido.
[ID de mensagem] Um identificador de mensagem gerado exclusivamente; embora não exigido pela especificação, o tempo de execução do servidor de aplicativos configura essa propriedade automaticamente.

Pedido-Resposta Síncronos

Por padrão, se você não utilizar a SPI do WS-Addressing proprietária da IBM para configurar o terminal de respostas ou o terminal de falhas, a parte da resposta de uma mensagem bidirecional será retornada de acordo com o protocolo subjacente em uso. Em específico, para um pedido de HTTP, a resposta é retornada de forma síncrona na resposta de HTTP.
O cliente envia uma mensagem para o serviço da Web. O cabeçalho SOAP contém o elemento <wsa:To>http://example.com/fabrokam/acct</wsa:To>. O serviço da Web retorna uma resposta síncrona.

Para chamadas síncronas de JAX-WS, se você configurar o terminal de respostas ou o terminal de falhas, a referência de terminal configurada deverá utilizar o URI anônimo. Se a referência de terminal não usar URI anônima, uma exceção javax.xml.ws.WebServiceException será lançada. Embora a referência de terminal use o URI anônimo, é possível usar os parâmetros de referência dentro da referência de terminal para destinar a resposta ou o terminal de falha.

Para aplicativos JAX-WS, é possível especificar um padrão de troca de mensagens síncronas ao aplicar e configurar um tipo de política WS-Addressing. Esse padrão de troca é particularmente útil nos seguintes cenários:
  • Você não possui o WS-Security ativado ou não utilizou uma ferramenta de montagem para especificar que os elementos ReplyTo e FaultTo da mensagem SOAP devam ser assinados. Nessa situação, é possível que um terminal JAX-WS seja utilizado para enviar mensagens a um terceiro, tomando parte potencialmente em um ataque de Negação de Serviço. Para evitar esses ataques, especifique o padrão de troca de mensagens síncronas e ative o WS-Policy para que os clientes saibam sobre este requisito.
  • Um cliente JAX-WS se comunica através do dispositivo NAT. Os URIs nos elementos ReplyTo ou FaultTo da mensagem SOAP não podem ser roteados através desse dispositivo. Nesta situação, o cliente deve utilizar o URI anônimo definido pela especificação WS-Addressing e um padrão de troca de mensagens síncronas. Para garantir que o cliente esteja de acordo com esses requisitos mesmo que o servidor utilize o WS-Policy para solicitar um URI não anônimo no elemento ReplyTo, especifique o padrão de troca de mensagens síncronas no cliente.
É possível garantir que os servidores ou os clientes estejam cientes sobre o requisito para o sistema de mensagens síncronas ativando o WS-Policy.

Pedido-Resposta Assíncronos

O modelo de programação JAX-RPC 1.0 não permite respostas ou falhas assíncronas para uma operação de pedido-resposta bidirecionais.

Respostas para pedidos ou falhas geradas de pedidos, direcionadas aos terminais hospedados no WebSphere Application Server são destinadas no terminal de respostas ou terminal de falhas, de acordo com a especificação WS-Addressing. A conexão com o cliente solicitante será fechada com uma resposta de HTTP 202.
O cliente envia uma mensagem para o serviço da Web. O cabeçalho SOAP contém o elemento <wsa:ReplyTo>, que contém em si o elemento <wsa:address>http://example.com/fabrokam/acct/replyEP</wsa:address>. O serviço da Web envia uma resposta para o terminal de resposta. O cabeçalho SOAP da mensagem de resposta contém o elemento <wsa:To>http://example.com/fabrokam/acct</wsa:To>.
Para chamadas assíncronas de JAX-WS, o terminal de respostas é gerado automaticamente para uso pela implementação de JAX-WS. Se você tentar configurar um terminal de resposta ou um terminal de falha, será emitida uma exceção javax.xml.ws.WebServiceException.
[Windows]Nota: Em sistemas operacionais Windows, o nome do host local enviado pelo cliente deve ser resolvido pelo serviço de destino, caso contrário, as respostas não chegarão ao aplicativo cliente. Alternativamente, é possível configurar o cliente para enviar seu endereço no formato IP, no entanto, você perderá os benefícios do DHCP. Para obter mais informações, consulte o tópico Chamando Serviços da Web JAX-WS Assincronicamente.
Para aplicativos JAX-WS, existem diversas maneiras de especificar um padrão de troca de mensagens assíncronas. O padrão de troca será particularmente útil se um terminal do JAX-WS tiver um tempo de chamada de execução longo. Os recursos do cliente e do servidor são utilizados para manter a conexão aberta, mas essa utilização de recurso poderá não ser prática se o serviço levar muito tempo para responder.
A configuração do padrão de troca de mensagens é expressa nos anexos do WS-Policy no documento WSDL. Os clientes poderão acessar essas informações de configuração do padrão de troca de mensagens se uma das seguintes condições for verdadeira:
  • O compartilhamento do WS-Policy estiver ativado.
  • O compartilhamento do WS-Policy não estiver ativado, mas:
    • O WSDL compactado (recuperado por uma solicitação HTTP GET) contiver as informações de política relevantes.
    • As anotações @Addressing tiverem sido usadas no código. Nesse caso, o tempo de execução do servidor gerará um documento WSDL contento os anexos do WS-Policy.
Consulte o tópico Compartilhamento de Provedores de Serviço da Web e Configuração de Política para obter mais detalhes.

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_meps
Nome do arquivo: cwbs_wsa_meps.html