Re: LC 76 - What makes a msg WS-A?

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:01:33 UTC