Web Services Addressing (WS-Addressing) provides transport-neutral mechanisms to address Web services and messages. Specifically, WS-Addressing defines XML elements to identify Web service endpoints and to secure end-to-end endpoint identification in messages. This specification enables messaging systems to support message transmission through networks that include processing nodes such as endpoint managers, firewalls, and gateways in a transport-neutral manner.
WS-Addressing defines interoperable constructs that convey information that is typically provided by transport protocols and messaging systems. These constructs normalize this underlying information into a uniform format that can be processed independently of transport or application. The constructs are:
Endpoint references
Message information headers
Endpoint references A Web service endpoint is a (referenceable) entity, processor, or resource where Web service messages can be targeted. Endpoint references convey the information needed to identify/reference a Web service endpoint, and have several uses:
Conveying the information needed to access a Web service endpoint
Providing addresses for individual messages sent to and from Web services
Message information headers To enable the endpoint references to provide message addresses, the WS-Addressing specification defines a family of message information headers. These headers allow uniform addressing of messages independent of underlying transport. They convey end-to-end message characteristics including addressing for source and destination endpoints as well as message identity.
Both endpoint references and message information headers are designed to be extensible and re-usable so that other specifications can build on and leverage them. Example 245 illustrates the use of these mechanisms in a SOAP 1.2 message being sent from http://business456.example/client1 to http://fabrikam123.example/Purchasing:
Example 245. Endpoint References and Message Information Headers in SOAP
<?xml version="1.0" encoding="UTF-8"?> <e:Envelope xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wn0="http://tempuri.org/" xmlns:e="http://schemas.xmlsoap.org/soap/envelope/"> <e:Header> <wsa:MessageID>uuid:3384d560-21de-11d9-9535-30f37c209535</wsa:MessageID> <wsa:To>http://msserver/wsaService/service.ashx</wsa:To> <wsa:From> <wsa:Address>http://localhost:6060/callback_scenario3/</wsa:Address> </wsa:From> <wsa:ReplyTo> <wsa:Address>http://localhost:6060/callback_scenario3/</wsa:Address> </wsa:ReplyTo> <wsa:FaultTo> <wsa:Address>http://localhost:6060/callback_scenario3/</wsa:Address> </wsa:FaultTo> <wsa:Action>http://tempuri.org/ServicePortType/EchoString</wsa:Action> </e:Header> <e:Body> <wn0:EchoString i:type="wn0:EchoString">scenario3</wn0:EchoString> </e:Body> </e:Envelope>