- From: David Hull <dmh@tibco.com>
- Date: Fri, 15 Jul 2005 16:18:01 -0400
- To: Anish Karmarkar <Anish.Karmarkar@oracle.com>
- Cc: Marc Hadley <Marc.Hadley@Sun.COM>, Martin Gudgin <mgudgin@microsoft.com>, David Orchard <dorchard@bea.com>, Katy Warr <katy_warr@uk.ibm.com>, public-ws-addressing@w3.org
This all makes fine sense. In this context, the long discussion has
been over how we fill in "sender does not mandate WSA, receiver gets to
choose", and I agree with everyone who says this is outside the scope of
the core and SOAP binding documents. I also agree with Jonathan that
there could be several different ways of making this choice, and we
don't want to preclude anything reasonable.
For what it's worth, I don't see why the "choose WSA if you see any wsa:
headers" won't work just fine as one such way of choosing. I also don't
think keying off of wsa:Action is a good idea, and though I hadn't
thought it through that far previously, I really don't think mandating
it in the SOAP binding would be good, both because it's out of scope and
because I don't like it.
Anish Karmarkar wrote:
> Marc Hadley wrote:
>
>> On Jul 15, 2005, at 10:26 AM, David Hull wrote:
>>
>>> I'd be less uneasy with something less arbitrary. The rule of
>>> understanding (in the SOAP sense) only if a particular header is
>>> present is not the first thing that would come to mind, and the
>>> basis for choosing this particular header -- it happens to be
>>> mandatory and not defaulted in the rules in section 3.2 -- is a
>>> crock. This approach also complicates the matrix we came up with
>>> in Berlin. Here's a version of that matrix, pretending that only
>>> Action and ReplyTo exist.
>>>
>>> Action
>>> ReplyTo
>>> Result
>>> absent
>>> absent
>>> Old-style behavior
>>> absent
>>> present, mU false
>>> ReplyTo silently ignored (I don't understand it and I don't have to)
>>> absent
>>> present, mU true
>>> Fault (mandatory header ReplyTo not understood)
>>> present, mU=any
>>> absent
>>> OK, ReplyTo anonymous
>>> present, mU=any
>>> present, mU = any
>>> OK, ReplyTo value used
>>>
>>> My guess is that the italicized row will have a long and storied
>>> career.
>>
>>
>>
>>
>> If wsa:Action is absent and and any other WS-Addr header is present
>> with mU='false' then the receiving node can either:
>>
>> (i) Not process the other WS-Addr header and do normal non-WS-Addr
>> processing, or
>> (ii) Process the other WS-Addr header and in so doing note that
>> there's no Action (which is mandatory) and send a WS-Addr 'Message
>> Addressing Header Required' fault.
>>
>> The spec already describes the required cardinality of WS-A headers,
>> if a sender wants to make sure that WS-Addr processing happens then
>> it can mark one of the WS-Addr headers as mU='true'. I'm not
>> convinced we need to say anything else.
>>
>
> +1
>
> I'm a little bit baffled over this long email thread and why this is
> so confusing. I think Marc's (and Steve's email as well, IIRC) email
> says it quite well what the presence or absence of WSA header (and mU
> values) mean. The way I see it:
>
> if (mU='1' on any WSA header) //receiver must engage WSA or fault
> {
> if (receiver does not understand WSA)
> {
> fault and stop processing the message
> }
> if (any WSA rule is violated) //including missing wsa:Action
> {
> fault and stop processing the message
> }
> process the message as a WSA message
> }
> else //sender does not mandate WSA, receiver gets to choose
> {
> if (receiver wants to process the message with WSA engaged)
> {
> if (any WSA rule is violated) //including missing wsa:Action
> {
> fault and stop processing the message
> }
> process the message as a WSA message
> }
> else
> {
> ignore all WSA headers, if any
> process the message as a non-WSA message
> }
> }
>
>
> -Anish
> --
>
> <snip/>
>
Received on Friday, 15 July 2005 20:18:14 UTC