Dave Angers asked in a comment on my WS-Routing post about message dispatching, specifically regarding the restrictions on the <wsa:To> and <wsa:RelatesTo> headers.
The block of transport URI's in the <wsa:RelatesTo> header is because the Tech Preview uses the contents of this header (if it is present) to dispatch messages. Preventing the use of transport URI's (e.g. soap.tcp, http, etc.) means that we also block unwanted transport cross-over scenarios, for example where it's possible to send a message over, say, MSMQ and, because of the content of the <wsa:RelatesTo> header, have the message dispatched to a TCP receiver that was supposed to be hidden. The check on the <wsa:To> header has the same effect - it ensures that you are using the right transport to talk to a specific receiver.
Now, Dave's questions regarding this tight binding of the <wsa:To> header to a transport address are right on target and are part of the reason why I am currently separating the notions of <wsa:To> (i.e. logical Role or Actor) from transport address. We will still block unwanted transport cross-over scenarios (i.e. if you register using TCP you won't get message delivered over some other transport) and we'll have a looser definition for the contents of <wsa:To>.
We're still working out the exact details of how this will work, I hope to be able to say more about it before we release.
Posted by herveyw at November 14, 2003 04:02 PM