Visión general de Web Services Addressing
WS-Addressing (Web Services Addressing) es una especificación de W3C que permite que los servicios web interoperen definiendo un modo estándar de direccionar los servicios web y de proporcionar la información de direccionamiento en los mensajes. La especificación WS-Addressing introduce dos conceptos primarios: las referencias de punto final y las propiedades de direccionamiento de mensajes. Para obtener detalles adicionales, consulte las especificaciones de WS-Addressing.
Referencias de punto final
Las referencias de
punto final proporcionan un mecanismo estándar para encapsular la
información sobre puntos finales específicos. Las referencias de punto final pueden propagarse a otras partes y, a continuación, utilizarse para dirigirse
a los puntos finales de servicio web que representan.
La
siguiente tabla resume el modelo de información para las referencias de
punto final.
El siguiente prefijo y el espacio de nombres correspondiente se
utilizan en la tabla anterior.
Nombre de propiedad abstracta, utilizando el convenio de notación del conjunto de información W3C XML | Tipo de propiedad | Multiplicidad | Descripción |
---|---|---|---|
[address] | xs:anyURI | 1..1 | URI absoluto que especifica la dirección del punto final. |
[reference parameters]* | xs:any | 0..unbounded | Elementos informativos de elemento cualificado de espacio de nombres que son necesarios para interactuar con el punto final. |
[metadata] | xs:any | 0..unbounded | Descripción del comportamiento, políticas y posibilidades del punto final. |
Prefijo | Espacio de nombres |
---|---|
xs | http://www.w3.org/2001/XMLSchema |
El siguiente fragmento XML ilustra una referencia de
punto final. Este elemento hace referencia al punto final del URI
http://example.com/fabrikam/acct, tiene metadatos que especifican la
interfaz a la que hace referencia la referencia de punto final y tiene
parámetros de referencia definidos por aplicaciones del espacio de nombres
de http://example.com/fabrikam namespace.
<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>
Propiedades de direccionamiento de mensajes
Las MAP (Message Addressing
Properties) son un conjunto de propiedades de WS-Addressing bien definidas que
pueden representarse como elementos de las cabeceras SOAP y proporcionan
un modo estándar de proporcionar información como, por ejemplo, el punto
final al que se deben dirigir las respuestas a los mensajes así como la
información sobre la relación que el mensaje tiene con otros mensajes. Las
MAP definidas por la especificación de WS-Addressing se resumen en la
siguiente tabla.
Los nombres abstractos de las tablas anteriores se utilizan para
hacer referencia a las MAP de esta documentación.
Nombre MAP de WS-Addressing abstracto, utilizando el convenio de notación del conjunto de información W3C XML | Tipo de contenido de la MAP | Multiplicidad | Descripción |
---|---|---|---|
[acción] | xs:anyURI | 1..1 | URI absoluto que identifica exclusivamente la semántica del mensaje. Esta propiedad corresponde a la propiedad de dirección (address) de la referencia de punto final a la que se direcciona el mensaje. Este valor es necesario. |
[destino] | xs:anyURI | 1..1 | URI absoluto que especifica la dirección del receptor al que va dirigido este mensaje. Este valor es opcional porque, si no está presente, tomará como valor predeterminado el URI anónimo definido en la especificación, lo que indica que la dirección esta definida por el protocolo subyacente. |
[parámetros referencia]* | xs:any | 0..unbounded | Corresponde a la propiedad de parámetros de referencia (reference parameters) de la referencia de punto final a la que se direcciona el mensaje. Este valor es opcional. |
[source endpoint] | EndpointReference | 0..1 | Referencia al punto final desde el que se origina el mensaje. Este valor es opcional. |
[punto final de respuesta] | EndpointReference | 0..1 | Referencia de punto final para el receptor al que van dirigidas las respuestas de este mensaje. Este valor es opcional. |
[punto final de anomalía] | EndpointReference | 0..1 | Referencia de punto final para el receptor al que van dirigidos los errores relacionados con este mensaje. Este valor es opcional. |
[relationship]* | xs:anyURI más atributo opcional del tipo xs:anyURI | 0..unbounded | Par de valores que indican cómo este mensaje se relaciona con otro mensaje. El contenido de este elemento proporciona el ID del mensaje relacionado. Un atributo opcional proporciona el tipo de relación. Este valor es opcional. |
[ID de mensaje] | xs:anyURI | URI absoluto que identifica exclusivamente el mensaje. Este valor es opcional. |
El siguiente
ejemplo de un mensaje SOAP contiene algunas MAP 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>