W3C home > Mailing lists > Public > public-ws-addressing@w3.org > July 2005

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

From: Martin Gudgin <mgudgin@microsoft.com>
Date: Thu, 14 Jul 2005 22:19:13 -0700
Message-ID: <DD35CC66F54D8248B6E04232892B633806575388@RED-MSG-43.redmond.corp.microsoft.com>
To: "David Hull" <dmh@tibco.com>
Cc: "David Orchard" <dorchard@bea.com>, "Katy Warr" <katy_warr@uk.ibm.com>, <public-ws-addressing@w3.org>
 



________________________________

	From: David Hull [mailto:dmh@tibco.com] 
	Sent: 15 July 2005 04:43
	To: Martin Gudgin
	Cc: David Orchard; Katy Warr; public-ws-addressing@w3.org
	Subject: Re: LC 76 - What makes a msg WS-A?
	
	
	Martin Gudgin wrote: 

		I thought it was clear too. And it fits with the SOAP
processing model and so works for endpoints which were deployed long
before WS-A was a twinkle in the eye of it's multiple parents...
		
		

	It's clear that if someone hands me a message with a wsa: header
with mU=true, and I know nothing about WSA, I fault.
	
	I thought it was also clear we're not talking about that case. 
	[MJG] I didn't say we were, I was just making an observation. 
	
	The main question is, what if someone hands me a message with
(say) wsa:ReplyTo, mU set however you like, but no wsa:Action (or a
second wsa:ReplyTo, or whatever other cardinality violation you like),
and I do understand WSA. 
	[MJG] Define 'I'. If you are the endpoint that accepts WS-A
messages, you fault. If you are the endpoint that accepts non-WS-A
messages, you get to choose (modulo mustUnderstand). 
	
	Granted, if mU is true we may be on somewhat firmer ground, as
the receiver is then obligated to process the wsa:ReplyTo, and this
could be taken to bring in the rest of WSA by reference.  I'm not
convinced that the processing model imposes this sort of processing
requirement across header blocks per se (and I rather hope it doesn't),
but I'm 100% convinced that a co-editor of SOAP 1.2 knows more about
SOAP than I do.  In any case, if this is the behavior we want, we might
want to sharpen the language in the SOAP binding to say explicitly that,
for purposes of the SOAP processing model, processing any header also
entails checking the cardinality of the other header blocks. 
	[MJG] The way I see it, if the message doesn't have a mandatory
header, then it violates the spec and the receiver should generate a
fault. I'm not sure which way I'd want to go on the cardinality issue.
	
	If the wsa:ReplyTo doesn't have mU true, then I agree (or at
least I hope I'm agreeing) that the SOAP processing model provides no
guidance here.  My understanding, though, was that we wanted the
faulting behavior in that case too.  If so, it seems to be up to us to
state that explicitly, whether in the core, in the SOAP binding, or in
the context of the WSDL binding.  Wherever we say it, we have to say it
about the SOAP infoset, not the abstract MAPs, since at the MAP level we
can't tell if wsa:ReplyTo (or wsa:To) was present or not. 
	[MJG] Yeah, I seem to remember I was somewhat against
defaults....
	 
	Anyhow, why can't we just say 'If wsa:Action isn't in the
message then you MUST fault' (if you are a WS-A aware endpoint). Surely
the only thing left after that is the cardinality issue.
	
	Right now, the main thing that's clear to me is that the
seemingly simple question of when a WSA compliant processor throws
faults for cardinality violations (a.k.a. "When is WSA engaged?" or
"When is WSA validation required?") does not have an obvious answer.  So
far we've seen:
	

	*	When wsa:Action is present 
	*	When any wsa: header is present 
	*	When any wsa: header is present with mU true, and maybe
other times too. 

	Interestingly, each of these has been put forth as being
perfectly straightforward and obvious. 
	[MJG] How about this? Is wsa:Action is missing then you MUST
proceed as if you DO NOT understand WS-Addressing. And if wsa:Action is
present and any other constraints in the spec are violated, then you
MUST generate a fault. 
	
	The upshot of the first 'MUST' is that during the mU check, if
any wsa: header is found with mU='true' then a check to make sure
wsa:Action is present has to occur to determine whether you 'understand'
that wsa: header. Essentially, understanding wsa:Action becomes part of
understanding all the other wsa: headers.
	 
	This approach has the advantage of producing consistent
behaviour between WS-A and non-WS-A nodes for messages that DO NOT
contain wsa:Action. 
	 
	Gudge 
	 
	
Received on Friday, 15 July 2005 05:20:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:35:06 GMT