Re: Two logical WSDL documents describing the same service

Jacek,

Within the context of the WSDL language I agree with you.  However, the 
issue I'm raising is really outside of what the WSDL language can (or 
should) define.  We can't reasonably define or constrain what some other 
language might mean (or what some processor might do) that simultaneously 
considers two logical WSDL documents[1].

More explanation inline below . . . .

At 03:59 PM 1/4/2004 +0100, Jacek Kopecky wrote:
>David,
>
>like Amy, I disagree and here's why.
>
>A WSDL service construct with the name {http://example.org/}accounting
>does not say something about a service identified by that name, it
>*defines* a WSDL service (a thing with one interface and some endpoints)
>and this WSDL service is named that. It is the same with the WSDL
>interface construct which defines an interface.

Yes, in the context of the WSDL language, I agree.

>When a binding references an interface by QName, it references a single
>definition of the interface and the processors can be reasonably
>expected to stop searching for that definition after having found one.
>Therefore, a WSDL interface construct defines the *whole* interface

Yes, in the context of the WSDL language, which defines the meaning of a 
single WSDL sentence, I totally agree.

>and we don't want to use two logical WSDL documents to describe the same
>interface, even if those documents specify different operations.

But that is beyond what is reasonable for the WSDL language to define.  The 
WSDL language can't say *anything* about what such a combination of 
documents should mean.  It can only define the meaning of a single sentence 
in the WSDL language.  It can't define the meaning of two WSDL sentences 
appearing in the context of some other language.

>I don't see why it should be different with services only because we
>don't use their QNames to identify them.
>
>Further, your practice would create an unnatural limitation because one
>couldn't have one logical WSDL document describing "the whole service",
>i.e. both facets (interfaces) of it.

That's correct, but the WG decided to limit a logical WSDL document[1] to a 
single interface.  You may be *shocked* to learn that some believe this 
decision is totally broken. ;)

More seriously though, it is a limitation, but it isn't necessarily 
unreasonable for WSDL to have this restriction.  It just means that WSDL 
only defines this level of functionality.  If you want more, you need to go 
beyond WSDL.  This is no different in principle than saying that WSDL gives 
you certain MEPs, and if you want to describe a more complex interaction 
pattern, you need to use something more than WSDL, such as choreography.

>Best practices for physical WSDL
>document separation would have to say that one shouldn't define an
>interface and a service in the same physical WSDL file, because
>importing interfaces is understood to be safe but importing services
>wouldn't be.
>
>In general, I'm very much opposed to having one QName (in one symbol
>space, limitation evil by itself but already present e.g. in XML Schema)
>identify multiple things.

In the context of the WSDL language, which can (should) only define the 
meaning of a single sentence in the WSDL language, it would only identify 
one thing.  It is only if you start considering more than one WSDL sentence 
in the context of some other language that it may identify "multiple 
things".  And even then, those "multiple things" may not be "multiple" at 
all -- they may simply be multiple facets of some single, larger resource.

>We are talking about mapping QNames to URIs
>(that is, universal identifiers) and if we see each separate WSDL
>interface as a separate resource, we should treat WSDL services the
>same.

I think we start getting on very shaky ground if we start trying to tell 
people what their resources are.  A resource (in the WebArch or RFC2396 
sense of the word) can be *anything*.  I could have a single resource that 
represents the union of several things.

>Which does bring up the question of the exact relationship between WSDL
>service and what is usually referred to as a Web Service. Mike Champion
>has already pointed that out, too.

Yes, so you might reasonably claim that the thing that is simultaneously 
described by two logical WSDL documents should not be *called* a "Web 
service", but you can't stop someone from describing such a thing outside 
the WSDL language.

[1] By "logical WSDL document" I mean the set of components denoted by a 
single physical WSDL document after following imports/includes, etc.  I.e., 
a single sentence in the WSDL language.   For further explanation see:
http://lists.w3.org/Archives/Public/www-ws-desc/2003Nov/0085.html


-- 
David Booth
W3C Fellow / Hewlett-Packard
Telephone: +1.617.253.1273

Received on Thursday, 8 January 2004 10:05:46 UTC