The purpose of bindings, interface and service

Kevin,

I think I agree with you completely.

To discharge my action item, here's what I would write on the purpose of
interfaces, bindings and services in WSDL (trying to be concise):

An interface defines the design of the application. Additionally to the
operations it can contain features of any level of detail that are
important to the application, e.g. one application may require the use
of TLS because otherwise it would not make sense - in this case this
requirement would be present at the interface level.

A binding defines the implementation details necessary for accessing the
application; an application that doesn't require TLS in the interface
may do so in a binding intended for use over the internet, whereas a
different binding intended for a controlled environment may not require
the use of TLS.

A service defines a set of interchangeable endpoints for a particular
deployed implementation of an application, an endpoint provides all the
information necessary for accessing this particular endpoint that
doesn't affect the binding. For example an application can provide an
HTTP endpoint for the localhost address but an HTTPS endpoint for the
public address of a machine because TLS local to a machine is an
avoidable overhead in this case.

This text aims to show that a single feature - the use of TLS in the
examples - can belong to any of the levels WSDL provides, depending on
its connection with the intent of the application.

To summarize, the boundary is in the application - information important
for the application goes into interfaces, implementation details go into
bindings and deployment details go into endpoints and services.



Just trying to capture my understanding of the intent of the WSDL spec,
I guess the editors can take any of the wording or create their own if
the group agrees on the intent. 8-)

Best regards,

                   Jacek Kopecky

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




On Fri, 2004-04-23 at 20:26, Liu, Kevin wrote:
> Hi Jacek,
> 
> As I stated in yesterday's call, I hesitate to go the slippery slope
> of demarcating application and infrastructure and differentiate
> interface, binding and services based on that.  We had similar
> discussions in other forums and were never able to reach any consensus
> on where to draw the line since one man's application is others
> infrastructure. 
> 
> I promised to provide you some inputs for a revised proposal. Below is
> my thoughts. If you agree, I would appreciate it if your revised
> proposal can incorporate some thing like below.
> 
> In a very high level, Interface describes what a service is, Binding
> describes how to access it, and service endpoint describes where to
> access it.  This layering facilitates different levels of reusability
> and distribution of work in different stages of the lifecycle of a
> service. As one typical use case, an interface describes the
> functionality and supported features of a service, and is used at
> design time.  It has the highest level of reusability, and should be
> abstract and reusable for different bindings; A binding is used at
> configuration time. It provides transport protocol specific
> information about how to access a service, and should be reusable by
> different endpoints.  An endpoint provides concrete location of a
> service, and is used at run time. It's most concrete, specific to a
> particular instance of a service,  and not reusable. 
> 
> Section 1.1 under Introduction of part 1 ([1] looks like the right
> place to clarify the intent of interface, binding, and service. You
> might also want to have a look at the section and incorporate/change
> what's already there.
> 
> [1] http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20.html#intro_ws
> 
> Best Regards,
> Kevin
>  
> 

Received on Wednesday, 28 April 2004 06:56:02 UTC