The purpose of bindings

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, 9 April 2004 08:47:08 UTC