propagation of values in the component model

Dear all,

as you may be aware, SAWSDL defines a few annotation properties that
apply to WSDL documents, for example modelReference (a set of URIs).
SAWSDL also introduces the property {model reference} on the annotated
WSDL components, e.g. on Interface components.

In some situations, the model references on some components apply also
on other components, e.g. from an interface to another interface that
extends the first one. The SAWSDL WG is about to discuss whether this
propagation should manifest in the WSDL Component Model or not, i.e.
whether the extending Interface component's {model reference} property
should include the values of {model reference} from the extended
Interface component(s) (values of {extended interfaces} property).

I note that the WSDL language itself goes both ways, in a sense: 
     1. The {style} property on Interface Operation gets its value
        either from the operation element's style attribute, or from the
        parent interface element's styleDefault attribute.
     2. The {http method} property is only instantiated from the
        whttp:method attribute, and it's up to the implementations of
        the HTTP binding to use {http method default} in case {http
        method} is missing.

The first approach means that a parser (if it's modeled after the
component model) will do the value propagation and apps need not care
whether style came from style="..." or styleDefault="...". However, this
approach also has a problem when creating a WSDL and then serializing it
into a WSDL file: the serializer must guess the styleDefault because it
only knows the {style} values of all the operations.

The second approach requires that the propagation is done by the app,
leaving space for error above the parser. But in the HTTP binding's case
this is necessary, e.g. when an interfaceless binding is combined with
some interface and the whttp:methodDefault applies. In fact the values
were propagated before we noticed that this doesn't work for
interfaceless bindings, can I therefore assume that it's in the spirit
of the component model to propagate the values as much as possible?

Basically, I'd like to ask for any opinion on which way SAWSDL should go
- should the component model implement all the propagation or should it
more closely reflect the actual file, leaving the propagation rules to
be implemented in the apps?

BTW, it is *not* my intention to say that WSDL is inconsistent in its
behavior and should be fixed in any way.

Bets regards,
Jacek

Received on Wednesday, 14 February 2007 13:30:12 UTC