Re: CR Issue (SOAP binding): Mapping of headers to MAPs and "WSA is engaged"

The Working Group resolved to add this to the SOAP Binding doc to  
resolve this:

If a receiver processes a message containing a wsa:Action header,  
this SOAP binding is engaged, [and the rules of this spec are in force].


On 28/09/2005, at 12:07 PM, David Hull wrote:

> >From the discussion of wsa:UsingAddressing, wsdl:required and so  
> forth, it appears that there is some ambiguity as to how to define  
> the set of MAPs present in an incoming SOAP message. Indeed,  
> section 2 of the SOAP binding deals solely with the outbound side,  
> defining how MAPs become headers, but not vice versa.  The infoset  
> description in section 3.1 of the core provides most of the needed  
> information, but there is at least one gray area: Since wsa:To is  
> given a default value, it is possible to define the [destination]  
> property of a message which contains no wsa:Headers in its infoset.
>
> This in turn appears to complicate the handling of messages  
> received by an endpoint whose wsa:UsingAddressing property is  
> present but with wsdl:required = false.  Essentially, the receiver  
> must be able to distinguish two cases, ideally without explicit  
> reference to SOAP-level concepts such as header blocks:
> wsa: SOAP headers were present, and therefore the endpoint should  
> follow the full WSA rules (in particular, it MUST fault if required  
> headers are absent)
> No wsa:SOAP headers were present, and therefore the endpoint  
> handles the message without regard to WSA.
> To my knowledge, there are at least two possible resolutions to this:
> (my preference).  Explicitly state that the MAPs for a SOAP message  
> are defined as per section 3.1 of the core, but with the exception  
> that a SOAP message with no wsa:headers present in its infoset has  
> no MAPs defined.  I.e., [destination] does not assume its default  
> value.  Non-SOAP bindings would similarly define their own mappings  
> from messages to MAPs.
> Explicitly state that the MAPs for a SOAP message are defined as  
> per section 3.1, including unconditional defaulting of  
> [destination].  In addition, introduce a "WSA engaged" flag  
> indicating whether the message was intended as a WSA message.  This  
> could be set based on whether any wsa:headers were present in the  
> infoset, or on any other basis.  Non-SOAP bindings would similarly  
> define their own mappings from messages to MAPs and the "WSA  
> engaged" flag.
> Note that in either case, wire-level optimizations are not an  
> issue.  We consider a SOAP message as its infoset, regardless of  
> how that infoset was serialized and deserialized.


--
Mark Nottingham   Principal Technologist
Office of the CTO   BEA Systems

Received on Saturday, 1 October 2005 03:36:32 UTC