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

RE: The purpose of bindings, interface and service

From: Liu, Kevin <kevin.liu@sap.com>
Date: Fri, 23 Apr 2004 20:26:15 +0200
Message-ID: <99CA63DD941EDC4EBA897048D9B0061DA95FD0@uspalx20a.pal.sap.corp>
To: Jacek Kopecky <jacek.kopecky@systinet.com>
Cc: WS-Description WG <www-ws-desc@w3.org>

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
 

>Jacek Kopecky wrote:

>Hi all,
>
>during yesterday's call we discovered it may be unclear what the purpose
>of bindings is, which makes very fuzzy the line of what should be in a
>binding and what should be in an interface.
>
>Here's my take:
>
>In WSDL, an Interface describes the application-level interface with all
>information necessary for the application. A Binding describes how the
>interface is realized on the wire.
>
>The main part of what the interface describes is the operations, message
>formats and exchange patterns. Additionally, using features (or
>extensions like policy or whatnot) an interface may specify other
>constraints, e.g. the necessity of authentication, confidentiality of
>communication, transactionality etc. Finally, an interface may describe
>important properties of operations and messages, e.g. web safeness or
>cacheability of results.
>
>A binding must be able to transfer the messages of its interface's
>operations, following the message exchange patterns, to an endpoint.
>Additionally, a binding must realize all features that an interface
>mandates and it must follow all constraints specified in the interface,
>e.g. the HTTP binding may realize communication confidentiality by
>mandating the use of HTTPS, or the SOAP binding may realize
>confidentiality by mandating the use of XML Encryption in the messages.
>Finally, a binding may take advantage of the properties described in its
>interface, for example by allowing opportunistic pre-invocation of
>web-safe operations or by allowing caching of cacheable results.
>
>To summarize, the boundary is in the application - information important
>for the application goes into interfaces, implementation details go into
>bindings.
>
>
>
>My on-line presence may be very sparse next week, so please be patient
>if any clarifications are necessary.
>
>Share and enjoy,
>
>                   Jacek Kopecky
>
>                   Systinet Corporation
>                   http://www.systinet.com/
Received on Friday, 23 April 2004 14:26:59 GMT

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