W3C home > Mailing lists > Public > www-ws-desc@w3.org > February 2004

RE: 2004-02-12 Action Item: Clarification to the OperationName feature

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Tue, 24 Feb 2004 16:20:05 -0800
Message-ID: <DF1BAFBC28DF694A823C9A8400E71EA202B52C8A@RED-MSG-30.redmond.corp.microsoft.com>
To: "Umit Yalcinalp" <umit.yalcinalp@oracle.com>, "Glen Daniels" <gdaniels@sonicsoftware.com>
Cc: <www-ws-desc@w3.org>

> -----Original Message-----
> From: Umit Yalcinalp [mailto:umit.yalcinalp@oracle.com]
> Sent: Tuesday, February 24, 2004 11:38 AM
> To: Glen Daniels
> Cc: Jonathan Marsh; www-ws-desc@w3.org
> Subject: Re: 2004-02-12 Action Item: Clarification to the
OperationName
> feature

> 		1) Whether the operation name itself must appear in the
> message.
> 
> 
> 
> 	Not as such, no.
> 
> Jonathan, I am assuming what we are referring to as "message" is the
> soap:body, not envelope, namely the element references (GED)s, right?

No, I meant anywhere in the envelope.  One of your proposals was to
transmit the OperationName in a header, another is in the soap:action,
neither of which is in the soap:body.

> It only appears in the message as a side effect of using RPC style,
due to
> the definition of the RPC style only if you are using RPC style. This
is
> NOT an additional requirement brought by the feature, it just happens
> because one uses RPC style. The proposal indicates this.

Yes, I understand this, though Glen has new concerns on whether the GED
under RPC style still might not be unique.


> 		3) How a service that simply used unique GEDs for each
> 		message would interact with this feature.
> 
> 	You *could* state that the "default" implementation of the
feature
> is to
> 	simply map unique GEDs to their operation names, and then it
would
> only be a
> 	problem if you a) didn't find anything else in the WSDL (a SOAP
> module /
> 	binding) which implemented the feature AND b) there were in fact
> duplicate
> 	or undefined GEDs.  I would prefer an approach which forces the
WSDL
> 	developer to somehow explicitly assert (via a style or a feature
> 	declaration) the claim that all the relevant GEDs are unique.
This
> is kind
> 	of the same reason we have the RPC style - you *could* figure it
out
> on your
> 	own by just looking at the schema, but the style helps you
decide up
> front
> 	how you want to deal, and whether to bother engaging potentially
> expensive
> 	checks.
> 
> 
> +1.

This fits nicely into my concept of a style, less nicely into my concept
of a feature declaration.  This is reflected in the component model - a
style would not change the mapping to the component model, a built-in
feature would.

> Everything in the contract must be explicitly stated, if we would like
it
> to be interoperable.
> 
> 
> 
> 
> 		4) What is the implication of a built-in required
feature on
> 		the syntax and the component model.
> 
> 
> 
> 	No impact on the syntax, and the component model gets a single
> required
> 	feature component which is always assumed to be there, I think.
> 
> That is what the clarification indicated. The implications on the
syntax
> are
> 
> -- none (for declaring the feature, because it is equivalent to be
> declared to be "always present" as if it was declared to be required)

The syntax might change (syntactic validity might be affected),
depending on how you choose to specify the processing of <wsdl:feature
uri="...OperationName" required="false"/>, which is currently allowed in
the syntax.  I'd think a concrete proposal on this would be valuable.
Is this particular element an error, silently ignored, or result in
duplicate feature components?

Which uncovers an issue; currently the component model for...

  <wsdl:interface>
    <wsdl:feature uri="myURI" required="true"/>
    <wsdl:feature uri="myURI" required="false"/>
  </wsdl:interface>

... would have two conflicting (I assume) feature components.  What is
the meaning of such conflicting components?  Should the syntax or the
mapping prevent such conflicts?

> -- for bindings, the implementations will need to be declared as soap
> modules, etc.  

Glen said I could use ESP.  I'm not sure whether you include that in the
"etc."

> As stated above, this is a good thing IMO, because looking
> at the WSDL, it is obvious to infer the implementations that are
engaged.

I'm not sure what is obvious here, part of my ignorance of features and
properties is showing.  There are two things that could be influenced by
a feature - whether the WSDL should be rejected by a processor, and what
appears on the wire.  There appears to be an assumption that a required
feature, when no corresponding implementation feature can be found,
results in a bad WSDL.  There also appears to be an assumption that a
required feature may interact, or override, the corresponding
implementation feature.

The concept of relating two features (abstract and implementation) is
not supported by the WSDL spec, and not detailed in the OperationName
proposal.  The precise outcomes (for the WSDL processor and for the
messages on the wire) need to be detailed.

For instance, let me create a matrix of options, using the OperationName
feature (pretending it's not built-in) and soap:action module as
examples.

  OperationName   SOAPAction  |  WSDL  Behavior
  Feature         feature     |  
  ----------------------------------------------------
  required        required    |  OK    Messages       contain
soap:action
  required        present     |  ?     ?
  required        absent      |  ?     ?
  present         required    |  OK    Messages       contain
soap:action
  present         present     |  OK    Messages may   contain
soap:action
  present         absent      |  OK    ?
  absent          required    |  OK    Messages       contain
soap:action
  absent          present     |  OK    Messages may   contain
soap:action
  absent          absent      |  OK    Messages don't contain
soap:action
Received on Tuesday, 24 February 2004 19:20:09 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:15:02 UTC