Visão Geral de Web Services Addressing
O Web Services Addressing (WS-Addressing) é uma especificação World Wide Web Consortium (W3C) que auxilia na interoperabilidade entre serviços da Web definindo um modo padrão para endereçar serviços da Web e fornecer informações de endereçamento em mensagens. A especificação WS-Addressing introduz dois conceitos principais: referências de terminal e propriedades de endereçamento de mensagem. Para obter detalhes adicionais, consulte as especificações WS-Addressing.
Referências de Terminal
As referências de terminal fornecem
um mecanismo padrão para encapsular informações sobre terminais específicos. As referências de terminal podem ser
propagadas para outras partes e, então, usadas para destinar o terminal de serviço da Web que elas representam.
A tabela a seguir resume
o modelo de informações para referências de terminal.
O seguinte prefixo e espaço de nomes correspondente são utilizados na tabela
anterior.
Nome de propriedade abstrata, usando a convenção notacional do Conjunto de Informações XML do W3C | Tipo de Propriedade | Multiplicidade | Description |
---|---|---|---|
[endereço] | xs:anyURI | 1..1 | O URI absoluto que especifica o endereço do terminal. |
[parâmetros de referência]* | xs:any | 0..ilimitado | Itens de informações de elemento qualificado do espaço de nomes que são requeridos para interagir com o terminal. |
[metadados] | xs:any | 0..ilimitado | Descrição do comportamento, políticas e recursos do terminal. |
Prefixo | Espaço de Nomes |
---|---|
xs | http://www.w3.org/2001/XMLSchema |
O fragmento XML a seguir ilustra uma referência de terminal. Este elemento faz referência ao terminal no URI http://example.com/fabrikam/acct,
possui metadados que especificam a interface à qual a referência de terminal se refere
e possui parâmetros de referências definidas pelo aplicativo do espaço de nomes
http://example.com/fabrikam.
<wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
xmlns:fabrikam="http://example.com/fabrikam"
xmlns:wsdli="http://www.w3.org/2005/08/wsdl-instance"
wsdli:wsdlLocation="http://example.com/fabrikam
http://example.com/fabrikam/fabrikam.wsdl">
<wsa:Address>http://example.com/fabrikam/acct</wsa:Address>
<wsa:Metadata>
<wsam:InterfaceName>fabrikam:Inventory</wsam:InterfaceName>
</wsa:Metadata>
<wsa:ReferenceParameters>
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsa:EndpointReference>
Propriedades de Endereçamento de Mensagem
MAPs (Message addressing
properties) são um conjunto de propriedades de WS-Addressing bem definidas que podem
ser representadas como elementos em cabeçalhos SOAP e fornecem um modo padrão de
transportar informações, como o terminal para o qual as respostas à mensagem devem ser
direcionadas ou informações sobre o relacionamento que a mensagem tem com outras
mensagens. As MAPs definidas pela especificação WS-Addressing são resumidas
na tabela a seguir.
Os nomes abstratos nas tabelas anteriores são utilizados para fazer referências às MAPs
nesta documentação.
Nome da MAP abstrata do WS-Addressing, usando a convenção de notação do Conjunto de Informações W3C XML | Tipo de Conteúdo da MAP | Multiplicidade | Description |
---|---|---|---|
[ação] | xs:anyURI | 1..1 | Um URI absoluto que identifica exclusivamente a semântica da mensagem. Esta propriedade corresponde à propriedade de endereço da referência do terminal ao qual a mensagem é endereçada. Este valor é requerido. |
[destino] | xs:anyURI | 1..1 | O URI absoluto que especifica o endereço do receptor destinado dessa mensagem. Esse valor é opcional porque, se não presente, padronizará para o URI anônimo definido na especificação, indicando que o endereço é definido pelo protocolo de suporte. |
[parâmetros de referência]* | xs:any | 0..ilimitado | Corresponde à propriedade dos parâmetros de referência da referência de terminal ao qual a mensagem é endereçada. Esse valor é opcional. |
[terminal de origem] | EndpointReference | 0..1 | Uma referência ao terminal a partir do qual a mensagem se originou. Esse valor é opcional. |
[terminal de respostas] | EndpointReference | 0..1 | Uma referência de terminal para o receptor desejado de respostas a essa mensagem. Esse valor é opcional. |
[terminal de falhas] | EndpointReference | 0..1 | Uma referência de terminal para o receptor desejado de falhas relacionadas a essa mensagem. Esse valor é opcional. |
[relacionamento]* | xs:anyURI mais o atributo opcional do tipo xs:anyURI | 0..ilimitado | Um par de valores que indicam como esta mensagem está relacionada a uma outra mensagem. O conteúdo desse elemento transporta o ID de mensagem da mensagem relacionada. Um atributo opcional transporta o tipo de relacionamento. Esse valor é opcional. |
[ID de mensagem] | xs:anyURI | Um URI absoluto que identifica exclusivamente a mensagem. Esse valor é opcional. |
O exemplo a seguir de uma mensagem SOAP
contém MAPs de WS-Addressing:
<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:fabrikam="http://example.com/fabrikam">
<S:Header>
...
<wsa:To>http://example.com/fabrikam/acct</wsa:To>
<wsa:ReplyTo>
<wsa:Address> http://example.com/fabrikam/acct</wsa:address>
</wsa:ReplyTo>
<wsa:Action>...</wsa:Action>
<fabrikam:CustomerKey wsa:IsReferenceParameter='true'>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart wsa:IsReferenceParameter='true'>ABCDEFG</fabrikam:ShoppingCart>
...
</S:Header>
<S:Body>
...
</S:Body>
</S:Envelope>