Re: Why single-interface is broken

+1

----- Original Message ----- 
From: "Amelia A. Lewis" <alewis@tibco.com>
To: "WS Description List" <www-ws-desc@w3.org>
Sent: Friday, May 30, 2003 1:13 PM
Subject: Why single-interface is broken


> 
> Okay.
> 
> Single interface per service is proposed as a "simplification" (the term
> was used repeatedly).  It's the only argument that I can recall in favor
> of this.
> 
> I suggest that it is not a simplification.  By introducing redundancy,
> it introduces errors.  By introducing errors, without specifying how
> these errors are to be handled, it reduces interoperability.
> 
> Example:
> 
> <interface name="A" />
> 
> <interface name="B" />
> 
> <binding name="Aimpl" implements="A" />
> 
> <binding name="Bimpl" implement="B" />
> 
> <service name="aService"> <!-- first error -->
>   <endPoint binding="Aimpl" />
>   <endPoint binding="Bimpl" /> <!-- one of the foregoing two lines is
> the second error -->
> </service>
> 
> Legal and reasonable in WSDL 1.1, apart from the changes of element and
> attribute names.
> 
> Illegal in WSDL 1.2.  The lack of specification of the interface
> implemented by the service is an error.  Will it be flagged?  Imagine
> that this WSDL is created stepwise.  First, interface A, binding Aimpl,
> and endPoint A were all created; a validation tool may have noted the
> lack of an interface specification on the service, but perhaps offered
> only a warning (or perhaps not even that) to the author.  Later,
> additional functionality was added, using a different network paradigm
> that could not be adequately supported by the existing binding; a second
> interface, implementation, and endpoint were added.
> 
> A non-WSDL-validating tool will not note the errors at all.  A WSDL
> validating tool will note the first error, and then probably decide that
> endpoint Bimpl is illegal.  If interface="B" is added to the service,
> then it will instead decide that endpoint Aimpl is illegal.  The
> harassed and frustrated developer splits them into separate services,
> and removes the interface again (if there's only one endpoint in a
> service, you can be certain that there will be tools that do not enforce
> the user to declare the interface at the service level).  Same harassed
> developer looks at @targetResource, says "Huh?  WTF is that?  A resource
> is associated with an endpoint, in any rational web-aware world, what's
> this weirdness?" and goes on.  The WSDL works again, sort of, after all.
> 
> Redundancy is *bad*.  Specifying interface twice is *bad*.  If it's
> going to happen at all, error-handling MUST be specified in sufficient
> detail that two processors faced with the same description report the
> same thing.
> 
> Amy!
> -- 
> Amelia A. Lewis
> Architect, TIBCO/Extensibility, Inc.
> alewis@tibco.com
> 

Received on Friday, 30 May 2003 13:16:44 UTC