Tim poses a great question about Basic Profile, SOAP1.2/WS-* protocols and Indigo. Tim mentions SOAP 1.2 as the main differentiator between BP1.1 and Indigo WsProfileBinding. SOAP1.2 is a good choice for WS-* simply because it's a cleaner spec. Take for example the SOAP Header fault singularity in SOAP1.1 and what a nightmare it brings into WS-* world:)
Another issue with using BP for WS-* and app protocols going forward is BP1.1 R2710 and the definition of the “wire signature“.
R2710 The operations in a wsdl:binding in a DESCRIPTION MUST result in wire signatures that are different from one another.
The Profile defines the "wire signature" of an operation in a wsdl:binding to be the fully qualified name of the child element of the soap:Body of the SOAP input message it describes. For the case of an empty soap:Body this name is an empty string.
The goal I believe was to allow to differentiate incoming soap messages based on the message content itself. An unfortunate side effect is that Profile singles out Body, but does not treat headers targeted at the ultimate destination as part of the wire signature. While SOAP 1.1 spec explicitly states:
A body entry is semantically equivalent to a header entry intended for the default actor and with a SOAP mustUnderstand attribute with a value of "1".
Same I believe can be said (while not explicitly stated) for SOAP1.2 processing of the Body. This BP1.1/1.0 inconsistency with the underlying SOAP spec makes BP1.1 hardly useable for WS-* scenarios.
As Tim mentions in the comment to his blog, Indigo does provide BP1.1 compliant binding, called BasicProfileBinding.
Posted
May 11 2005, 10:08 PM
by
kirill-gavrylyuk