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

Re: Two logical WSDL documents describing the same service

From: Jacek Kopecky <jacek.kopecky@systinet.com>
Date: Sun, 04 Jan 2004 15:59:53 +0100
To: David Booth <dbooth@w3.org>
Cc: WS-Description WG <www-ws-desc@w3.org>
Message-Id: <1073228393.28606.44.camel@localhost>

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.

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 and
we don't want to use two logical WSDL documents to describe the same
interface, even if those documents specify different operations.

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. 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. 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.

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.

With wishes of a happy year 2004,

                   Jacek Kopecky

                   Systinet Corporation
                   http://www.systinet.com/




On Thu, 2003-12-18 at 04:22, David Booth wrote:
> At the last WS Architecture F2F meeting, a question arose about whether the 
> WSDL 2.0 specification has anything to say about a single service being 
> described by two different WSDL documents.  I took an action to write to 
> the WSD WG to ask.
> 
> The question arose in the context of discussing WS Management: A single 
> service wishes to expose a functional interface for its regular users, but 
> it also wishes to expose a management interface.  Since a Web service 
> description (WSD) in WSDL 2.0 is not allowed to specify more than one 
> wsdl:interface, one obvious approach would be to write two WSDL documents 
> that define different interfaces -- a functional interface and a management 
> interface -- but that specify exactly the same targetNamespace and service 
> name, so they are describing the same service.  In fact, they might even 
> specify the same endpoint address.
> 
> This problem may sound familiar, because it's exactly the problem that the 
> proposed @targetResource attribute was intended to address.   But in this 
> case it skips the additional attribute.
> 
> At present, our Part1 document says that you cannot have two interfaces for 
> the same service.  HOWEVER, my understanding of the context of that is that 
> it pertains only to a *single* logical WSDL document[1] -- not multiple 
> logical WSDL documents.  (By "logical WSDL document" I mean the infoset or 
> WSDL components obtained from a single WSDL document and any of its 
> includes, imports, etc.  See [1] if you're unclear about what I mean 
> .)  Since this issue of single versus multiple logical WSDL documents[1] 
> has only recently been raised, I don't think we've addressed the question 
> of multiple logical WSDL documents describing the same service in this context.
> 
> My own reasoning about this is as follows.
> 1. The WSDL 2.0 spec should only define the meaning of any *single* valid 
> sentence in the language, i.e., only any *single* logical WSDL document.
> 2. Therefore, the WSDL 2.0 spec should have nothing to say about the 
> meaning or validity of two logical WSDL documents (each independently 
> valid) when considered together.
> 3. In the Web in general, it is entirely normal to have multiple documents 
> that describe the same resource.  Each such document may add to your 
> knowledge of that resource.  Furthermore, following an "open world 
> assumption", you should never assume that you know *everything* about a 
> particular resource.  The idea of having two WSDL documents that describe 
> the same resource seems entirely consistent with this view.
> 4. Therefore, I see nothing wrong with using two logical WSDL documents to 
> describe the same service, even if those documents specify different 
> interfaces.  If someone wants to create a PrinterService whose 
> PrintDocument interface is defined in one WSDL document, but whose 
> ManagePrinter interface is defined in another WSDL document, they are free 
> to do so.
> 
> Do others agree with this analysis?
> 
> 
> 1. http://lists.w3.org/Archives/Public/www-ws-desc/2003Nov/0085.html
> 
> 
Received on Sunday, 4 January 2004 10:02:47 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:28 GMT