Web Services Addressing (WS-Addressing) is a specification of transport-neutral mechanism that allow web services to communicate addressing information. It essentially consists of two parts: a structure for communicating a reference to a Web service endpoint, and a set of message addressing properties which associate addressing information with a particular message.
WS-Addressing is a standardized way of including message routing data within SOAP headers. Instead of relying on network-level transport to convey routing information, a message utilizing WS-Addressing may contain its own dispatch metadata in a standardized SOAP header. The network-level transport is only responsible for delivering that message to a dispatcher capable of reading the WS-Addressing metadata. Once that message arrives at the dispatcher specified in the URI, the job of the network-level transport is done.
WS-Addressing supports the use of asynchronous interactions by specifying a common SOAP header (wsa:ReplyTo) that contains the endpoint reference (EPR) to which the response is to be sent. The service provider transmits the response message over a separate connection to the wsa:ReplyTo endpoint. This decouples the lifetime of the SOAP request/response interaction from the lifetime of the HTTP request/response protocol, thus enabling long-running interactions that can span arbitrary periods of time.
An endpoint reference (EPR) is an XML structure encapsulating information useful for addressing a message to a Web service. This includes the destination address of the message, any additional parameters (called reference parameters) necessary to route the message to the destination, and optional metadata (such as WSDL or WS-Policy) about the service.
Message addressing properties
Message addressing properties communicate addressing information relating to the delivery of a message to a Web service:
- Message destination URI
- Source endpoint -- the endpoint of the service that dispatched this message (EPR)
- Reply endpoint -- the endpoint to which reply messages should be dispatched (EPR)
- Fault endpoint -- the endpoint to which fault messages should be dispatched (EPR)
- Action -- an action value indicating the semantics of the message (may assist with routing the message) URI
- Unique message ID URI
- Relationship to previous messages (A pair of URIs)
WS-Addressing was originally authored by Microsoft, IBM, BEA, Sun Microsystems, and SAP and submitted to W3C for standardization. The W3C WS-Addressing Working Group has refined and augmented the specification in the process of standardization.
WS-Addressing is currently specified in three parts:
- The Core specification of Endpoint References and Message Addressing Properties.
- A binding of these properties to SOAP.
- The Metadata specification defines how the abstract properties defined in Core are described using WSDL, how to include WSDL metadata in endpoint references, and how WS-Policy can be used to indicate the support of WS-Addressing by a Web service.
Web Services Policy Attachment for Endpoint Reference (WS-PAEPR) specifies the mechanism and meaning of including WS-Policy expressions in Endpoint References. WS-PAEPR is a W3C Member Submission.