I’ve always considered WS-Routing to be one of the few shining stars of the WS-* spec family. Conversely, I’ve said before that I consider WS-Addressing to be perhaps the biggest waste of time yet developed. So imagine my surprise when Edwin notes this passage from Microsoft’s WSE 2.0;
One of the changes between WSE 1.0 and WSE 2.0 is the support for WS-Addressing. WS-Addressing largely replaces the capabilities of the WS-Routing specification that was supported in WSE 1.0. Instead of focusing on routing paths, WS-Addressing functionally provides a mechanism for adding To and From headers to a SOAP envelope.
WS-Routing uses URIs for endpoint and intermediary identification, whereas WS-Addressing exists because apparently URIs were considered deficient as identifiers. If you buy WS-Addressing’s premise (I don’t, surprise), this makes sense, sort of. But then you’re missing the value-add of WS-Routing and its support for SOAP intermediaries. The WSE 2.0 use of WS-Addressing defines a much less general routing infrastructure, premised upon only ever using gateways (where messages must terminate) rather than both gateways and proxies as WS-Routing supports.