Chris's Rants

Friday, August 19, 2005

Before you jump to conclusions, suggest you RTFS

Mark Baker with yet another rant about the supposed absence of a formal binding to the SOAP binding framework in the WS-Addressing CR:
Now, off in SOAP/HTTP land, we have a set of properties of the default binding which are required in order to construct a SOAP/HTTP message. Amoungst these properties are ImmediateDestination - 'where the envelope is to be sent' - and then either Action or Web-Method (or both - who knows?!) which define the - you guessed it - 'the action that is requested be done'. So, you'd think that WS-Addressing would have to define how to populate those properties from a WS-A infoset, ideally as a function of things like wsa:To and wsa:Action. AFAICT, it doesn't.
Uhm... Mark, I would suggest that next time, before you jump to (inaccurate) conclusions that you RTFS. In fact, the WS-Addressing SOAP Binding spec does define a binding/mapping of the WS-Addressing properties to the SOAP1.2 binding framework feature for the http://www.w3.org/2003/05/soap/features/action/Action property. It does the same for SOAP1.1's SOAPAction.

As for the http://www.w3.org/2003/05/soap/mep/ImmediateDestination property, where in the SOAP1.2 spec does it say that that property must come from the SOAP infoset? Also, as others have pointed out, who says that the ImmediateDestination has to have anything to do with the ultimate receiver (which would be the closest thing to wsa:To but which is not referenced in the SOAP binding framework)?

Nice try, Mark. Better luck next time.

4 Comments:

  • "who says that the ImmediateDestination has to have anything to do with the ultimate receiver"

    You might want to try that RTFS thing yourself, Chris - the SOAP spec does when it describes the value of the ImmediateDestination property;

    "An identifier (URI) that denotes the responding SOAP node"

    -- http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#tabreqcon

    By Blogger Mark Baker, at August 19, 2005 12:06 PM  

  • There's also this definition: "The identifier of the immediate destination of an outbound message." I believe that the definition to which you refer is possibly the odd man out and should have been replaced with the above but was not caught on the final review. I take ImmediateDestination to mean the destination to which the message is first sent. Given that a SOAP message path may have intermediaries, that address may be very different that that of the ultimate receiver. Note that that term is not used in this context.

    By Blogger Chris, at August 19, 2005 12:12 PM  

  • This is all part of the request/response MEP, don't forget, so there has to be a means to identify the thing providing the response. If ImmediateDestination were for addressing the next hop, then you'd need another property for targetting the responding node. So either that's a rather glaring omission, or my interpretation is the correct one.

    By Blogger Mark Baker, at August 19, 2005 1:01 PM  

  • Moreover, if ImmediateDestination is for the next hop, then how would a SOAP/HTTP intermediary such as a firewall be handled? In such a case, the SOAP/HTTP client could open a TCP connection to the firewall at its IP address & port, and then send the message with Request-URI/ImmediateDestination set to the ultimate destination, perhaps a SOAP node offering a stock quote service. That's consistent with both the SOAP & HTTP specs.

    On the other hand, putting the ultimate destination URI in wsa:To, and setting ImmediateDestination to target the firewall, is incompatible with HTTP and with existing HTTP firewalls. It's also incompatible with existing SOAP/HTTP firewalls, since none of them know about wsa:To.

    By Blogger Mark Baker, at August 19, 2005 2:19 PM  

Post a Comment

<< Home