Re: [lc6][lc35]: Clarify conformance requirements (SOAP, substantive)

This looks considerably clearer from the SOAP point of view.  The hook 
"generates reply or fault messages it may send in response according to 
the rules outlined in this specification and in the WS-Addressing 1.0 
Core" is good.  However, there's not yet enough hanging on that hook.  
That is, the core still doesn't say whether an endpoint is required to 
fault on receiving a message which contains WSA headers but doesn't 
comply with section 3, because "the rules outlined ... in the 
WS-Addressing 1.0 Core" don't yet say what an endpoint MUST do when it 
receives a non-conformant message with wsa: headers.

At some point, most likely in the core, we need to say, very specifically:

    * A conformant endpoint MUST handle a conformant request message as
      per section 3.2 of the core. (This is already in place).
    * A conformant endpoint is unrestricted in how it handles conformant
      messages which aren't requests (i.e., which don't expect a reply).
    * A conformant endpoint is unrestricted in how it handles a message
      with no wsa: headers. (This is implied by the use of
      "WS-Addressing compliant request message in section 3.2", but this
      goes too far unless we intend the second option in the next bullet
      point.)
    * One of:
          o A conformant endpoint MUST fault on receiving a message
            which contains wsa:headers but is not conformant.
          o A conformant endpoint is unrestricted in how it handles a
            message which contains wsa:headers but is not conformant.

This would make the semantics clear enough that we could then have a 
well-defined debate over whether dispatching, message routing and 
message correlation MUST be used on an all-or-nothing basis or whether 
they MAY be used a la carte.

Here's another way to look at it.  Right now we talk about two kinds of 
messages: compliant and non-compliant, but the actual behavior depends 
on a multiway choice among:

    * Messages which use all the wsa: headers as they MUST according to
      section 3, further subdivided into requests and everything else.
    * Messages which don't contain any wsa: headers
    * Messages which contain wsa: headers but don't follow all the rules
      in section 3.

IMHO, the spec would be clearer if we talked about behavior directly 
instead of defining categories of messages and then defining behavior in 
terms of them, but I can see the reasoning behind the current approach.  
Under the current approach, though, we need at the very least to define 
clearly all the semantically significant kinds of messages.  Again, the 
proposed text does this in the context of the SOAP binding, deferring 
the details to the core (as it should).  The problem is that the core 
does not explicitly make the necessary distinctions.  It only mentions 
one category ("compliant request"), and that without explicitly defining 
the term.

Purely for readability, I would also recast the last part of the last 
sentence ("and, if the endpoint provides a WSDL description, conforms to 
the WS-A WSDL Binding specification.") as a separate sentence, something 
like "Additionally,  if the endpoint provides a WSDL description, this 
description must conform to the WS-A WSDL Binding specification."

Core

Jonathan Marsh wrote:

>Per my AI to add a modest amount of additional clarity re SOAP vs. Core
>MUST statements, here is a revised proposal for Conformance.  Though I
>was considering normative references to the Core elsewhere in the
>document, the simplest solution seems to be adding the references here
>in the Conformance section.
>
>7. Conformance
>
>A SOAP 1.2 message conforms to the SOAP 1.2 Addressing 1.0 Module when
>it contains headers from the wsa namespace, and follows all the
>constraints on message addressing properties defined by the
>WS-Addressing 1.0 Core and by the SOAP 1.2 Addressing 1.0 Module.
>
>A SOAP 1.1 message conforms to the SOAP 1.1 Addressing 1.0 Extension
>when it contains headers from the wsa namespace, and follows all the
>constraints on message addressing properties defined by the
>WS-Addressing 1.0 Core and defined by the SOAP 1.1 Addressing 1.0
>Extension.
>
>An endpoint which conforms to this specification understands and accepts
>SOAP messages containing headers in the wsa namespace targeted to it,
>generates reply or fault messages it may send in response according to
>the rules outlined in this specification and in the WS-Addressing 1.0
>Core, and, if the endpoint provides a WSDL description, conforms to the
>WS-A WSDL Binding specification.
>
>  
>
>>-----Original Message-----
>>From: public-ws-addressing-request@w3.org [mailto:public-ws-
>>addressing-request@w3.org] On Behalf Of Jonathan Marsh
>>Sent: Monday, May 02, 2005 12:40 PM
>>To: Anish Karmarkar
>>Cc: Francisco Curbera; public-ws-addressing@w3.org
>>Subject: RE: [lc6][lc35]: Clarify conformance requirements (SOAP,
>>substantive)
>>
>>
>>You mean:
>>
>>  "An endpoint which conforms to this specification understands and
>>  accepts SOAP messages containing headers in the wsa namespace
>>  targeted to it, and, if the endpoint provides a WSDL description,
>>  generates reply or fault messages it may send in response according
>>  to the rules outlined in this specification,conforms to the WS-A
>>  WSDL Binding specification."
>>
>>So, it would not be a conformance requirement, absent a published
>>WSDL,
>>that an endpoint follow the rules for constructing replies?  Doesn't
>>seem desirable.
>>
>>    
>>
>>>-----Original Message-----
>>>From: Anish Karmarkar [mailto:Anish.Karmarkar@oracle.com]
>>>Sent: Monday, May 02, 2005 12:14 PM
>>>To: Jonathan Marsh
>>>Cc: Francisco Curbera; public-ws-addressing@w3.org
>>>Subject: Re: [lc6][lc35]: Clarify conformance requirements (SOAP,
>>>substantive)
>>>
>>>The SOAP binding spec does not say anything about generating reply
>>>      
>>>
>>or
>>    
>>
>>>fault messages (although it does define faults). Perhaps we should
>>>move
>>>the part about 'generates reply or fault messages ..." to the "...
>>>conforms to the WS-A WSDL Binding ..." part (or remove it all
>>>together).
>>>
>>>-Anish
>>>--
>>>
>>>Jonathan Marsh wrote:
>>>      
>>>
>>>>Testable cross-specification conformance statements are hard to
>>>>        
>>>>
>>>write,
>>>      
>>>
>>>>but here goes.
>>>>
>>>>  "An endpoint which conforms to this specification understands
>>>>        
>>>>
>>and
>>    
>>
>>>>  accepts SOAP messages containing headers in the wsa namespace
>>>>  targeted to it, generates reply or fault messages it may send in
>>>>  response according to the rules outlined in this specification,
>>>>  and, if the endpoint provides a WSDL description, conforms to
>>>>        
>>>>
>>the
>>    
>>
>>>>  WS-A WSDL Binding specification."
>>>>
>>>>And we export the issue of precisely what conformance to the WSDL
>>>>Binding means to that spec.
>>>>
>>>>
>>>>        
>>>>
>>>>>-----Original Message-----
>>>>>From: Francisco Curbera [mailto:curbera@us.ibm.com]
>>>>>Sent: Sunday, May 01, 2005 8:46 PM
>>>>>To: Jonathan Marsh
>>>>>Cc: public-ws-addressing@w3.org; public-ws-addressing-
>>>>>          
>>>>>
>>request@w3.org
>>    
>>
>>>>>Subject: Re: [lc6][lc35]: Clarify conformance requirements (SOAP,
>>>>>substantive)
>>>>>
>>>>>If an endpoint publishes its WSDL description (by whatever
>>>>>          
>>>>>
>>>mechanism),
>>>      
>>>
>>>>>we
>>>>>should assume that the values of the Action IRIs it accepts are
>>>>>defined as
>>>>>indicated by the WSA WSLD binding spec. My impression is that "WSA
>>>>>conformance" of the endpoint includes this aspect as well.
>>>>>
>>>>>Of course, the endpoint need not have a WSDL description at all,
>>>>>          
>>>>>
>>but
>>    
>>
>>>>>if it
>>>>>does and makes it public then it is bound by it.
>>>>>
>>>>>Paco
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>                     "Jonathan Marsh"
>>>>>                     <jmarsh@microsoft.com>          To:
>>>>><public-ws-addressing@w3.org>
>>>>>                     Sent by:                        cc:
>>>>>                     public-ws-addressing-req        Subject:
>>>>>[lc6][lc35]: Clarify conformance requirements (SOAP, substantive)
>>>>>                     uest@w3.org
>>>>>
>>>>>
>>>>>                     04/29/2005 04:13 PM
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>I took an AI at the FTF to in the context of Issus lc6 [1] and
>>>>>          
>>>>>
>>lc35
>>    
>>
>>>>>[2]
>>>>>to start a discussion on endpoint conformance.  I'm a little vague
>>>>>          
>>>>>
>>>at
>>>      
>>>
>>>>>this point as to what the concern with my original proposal below
>>>>>          
>>>>>
>>>was.
>>>      
>>>
>>>>>As I recall the consolidation of conformance statements in the
>>>>>          
>>>>>
>>SOAP
>>    
>>
>>>>>Binding into a Conformance Section was not too controversial, and
>>>>>          
>>>>>
>>>that
>>>      
>>>
>>>>>the first two paragraphs I propose were viewed by many as useful
>>>>>clarifications on our existing.
>>>>>
>>>>>So the remaining issue is the third paragraph I propose, defining
>>>>>          
>>>>>
>>>the
>>>      
>>>
>>>>>new idea of endpoint conformance thus:
>>>>>
>>>>> "An endpoint which conforms to this specification understands
>>>>>          
>>>>>
>>and
>>    
>>
>>>>> accepts SOAP messages containing headers in the wsa namespace
>>>>>targeted
>>>>>
>>>>> to it, and generates reply or fault messages it may send in
>>>>>          
>>>>>
>>>response
>>>      
>>>
>>>>> according to the rules outlined in this specification."
>>>>>
>>>>>>From the minutes [3] I infer there may be a couple of concerns
>>>>>          
>>>>>
>>with
>>    
>>
>>>>>this
>>>>>concept:
>>>>>
>>>>>a) Should endpoint conformance require that all messages sent to
>>>>>          
>>>>>
>>the
>>    
>>
>>>>>  service must have wsa: headers in them?
>>>>>b) Should endpoint conformance also require conformance to some or
>>>>>          
>>>>>
>>>all
>>>      
>>>
>>>>>  aspects of the WSDL Binding spec?
>>>>>
>>>>>I'm not sure these are the right questions, but if they are my
>>>>>          
>>>>>
>>>answers
>>>      
>>>
>>>>>are no, and no.  Endpoints which require wsa: headers are a subset
>>>>>          
>>>>>
>>>of
>>>      
>>>
>>>>>WS-A enabled endpoints - it seems perfectly reasonable to allow
>>>>>          
>>>>>
>>the
>>    
>>
>>>>>case
>>>>>where a service honors but doesn't require wsa: headers.  And I
>>>>>          
>>>>>
>>>think
>>>      
>>>
>>>>>there is a useful notion of WS-A conformance that looks just at
>>>>>headers
>>>>>in messages coming into and out of a service and not requiring
>>>>>          
>>>>>
>>WSDL
>>    
>>
>>>>>description.
>>>>>
>>>>>Clarifications welcome.
>>>>>
>>>>>[1] http://www.w3.org/2002/ws/addr/lc-issues/#lc6
>>>>>[2] http://www.w3.org/2002/ws/addr/lc-issues/#lc35
>>>>>[3] http://www.w3.org/2002/ws/addr/5/04/19-ws-addr-
>>>>>          
>>>>>
>>minutes.html#lc6
>>    
>>
>>>>>-----Original Message-----
>>>>>From: public-ws-addressing-comments-request@w3.org
>>>>>[mailto:public-ws-addressing-comments-request@w3.org] On Behalf Of
>>>>>Jonathan Marsh
>>>>>Sent: Tuesday, April 12, 2005 2:23 PM
>>>>>To: public-ws-addressing-comments@w3.org
>>>>>Subject: Clarify conformance requirements (SOAP, substantive)
>>>>>
>>>>>
>>>>>We don't define conformance in a clear location in the document,
>>>>>although there is a suggestive statement in Section 4:
>>>>>
>>>>> 'To ensure interoperability with a broad range of devices, all
>>>>> conformant implementations that include support for SOAP 1.1
>>>>>          
>>>>>
>>MUST
>>    
>>
>>>>> support the SOAP 1.1 Addressing 1.0 Extension.'
>>>>>
>>>>>This statement however is a bit ambiguous as to what one is
>>>>>          
>>>>>
>>>conforming
>>>      
>>>
>>>>>to and what it means to conform.
>>>>>
>>>>>We suggest removing the above sentence, and replace it with an
>>>>>explicit
>>>>>Conformance Section (new Section 7) as follows:
>>>>>
>>>>>-----------
>>>>>7. Conformance
>>>>>
>>>>>A SOAP 1.2 message conforms to the SOAP 1.2 Addressing 1.0 Module
>>>>>          
>>>>>
>>>when
>>>      
>>>
>>>>>it contains headers from the wsa namespace, and follows all the
>>>>>constraints defined by the SOAP 1.2 Addressing 1.0 Module.
>>>>>
>>>>>A SOAP 1.1 message conforms to the SOAP 1.1 Addressing 1.0
>>>>>          
>>>>>
>>Extension
>>    
>>
>>>>>when it contains headers from the wsa namespace, and follows all
>>>>>          
>>>>>
>>the
>>    
>>
>>>>>constraints defined by the SOAP 1.1 Addressing 1.0 Extension.
>>>>>
>>>>>An endpoint which conforms to this specification understands and
>>>>>accepts
>>>>>SOAP messages containing headers in the wsa namespace targeted to
>>>>>          
>>>>>
>>>it,
>>>      
>>>
>>>>>and generates reply or fault messages it may send in response
>>>>>according
>>>>>to the rules outlined in this specification.
>>>>>-----------------
>>>>>
>>>>>Section 5 2nd paragraph states:
>>>>>
>>>>> 'Endpoints compliant with this specification MUST include the
>>>>>required
>>>>> message addressing properties serialized as SOAP headers in all
>>>>>fault
>>>>> messages.'
>>>>>
>>>>>For consistency, "compliant" -> "conformant".
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>
>>>>        
>>>>
>
>
>
>  
>

Received on Friday, 13 May 2005 17:09:44 UTC