Re: proposal for restricting a service to a single interface

-1

By placing this restriction, you are prohibiting two important uses of WSDL 
1.2 that we in the Globus Project are planning.

1) Since the <port> contains the endpoint address (i.e. location), this 
rule prohibits me from implementing different endpoint addresses for 
different interfaces of a service.  For example, suppose I have an 
interface that is the composition (i.e. extension) of a management 
interface and a functional interface.  I might want bindings and <port>s 
that point to different endpoints for each of these interfaces.  For 
example, I might want a single management interface endpoint, but 
replicated, geo-located functional interface endpoints.

2) We want to write optimized, but perhaps not generally applicable, 
bindings.  For example, I would like to write high-performance bindings 
that only works for a very limited subset of XSD types (e.g. to improve 
encoding efficiency). By placing this restriction, you are now forcing me 
to place such an interface with its optimized binding in a completely 
separate <service> element.

Stated more abstractly...  This binding level restriction impinges on my 
interface composition freedom.  I can no longer compose interfaces (through 
interface extension) simply because they make sense in the modelling of a 
service, but must instead be cognizant of the binding details when deciding 
whether to compose the interface or not. In OGSI-land we fully expect the 
people who define interfaces to be separate from those who define the 
bindings, which makes this breakage of encapsulation particular onerous.

My alternate proposal would be to keep the <service interface="qname">, but 
change your first rule to require that all <port>s within a <service> 
element implement this interface *or one that it extends*.

The operational effect of this change is that some interfaces in the 
interface extension hierarchy may support more binding alternatives than 
others.

-Steve

At 05:39 PM 4/21/2003, Sanjiva Weerawarana wrote:

>Following up on the action item I have, I'd like to propose
>the following:
>
>- Require all <port>s within a <service> element to implement
>   exactly the same interface. Thus, each <port> is an alternate
>   implementation of the same interface.
>- The interface will be indicated with a new attribute:
>     <service interface="qname"> ... </service>
>- As with any interface in WSDL 1.2, this interface could
>   have extended any number of other interfaces.
>
>I will soon send the updated binding proposal which takes this
>into account to dramatically simplify the binding stuff. If
>this doesn't get accepted then I'll re-do the binding proposal.
>
>Sanjiva.

Received on Tuesday, 22 April 2003 00:48:31 UTC