Synthesis of the proposals for issue 64

Hi, per my action item I hereby propose a synthesis of the proposals for
dealing with issue 64 [1].

First, let me summarize the different approaches:

a) (possibly obsolete) Mark Baker suggests [2] renaming "transport"
attribute on binding to "protocol" and adding the attribute "type" which
says whether the protocol is used as an application protocol or a
transport protocol.  Finally, in the application-protocol case, the
methods of the binding would be those of the application protocol (GET,
POST, PUT, DELETE in case of HTTP).

b) Philippe suggests [3, 4, 5] adding a property into an interface that
will specify which of the CRUD operations is used (create, retrieve,
update, delete), with possible specialisations in HTTP binding and SOAP
HTTP binding.

c) In the same messages, Philippe notes he might name the operations
"GET" instead of "state" and POST instead of "change", making the
Interface mirror that of the application protocol being used. In the
threads it was noted repeatedly that application protocols have their
interfaces, that it's not just at binding level.

d) I analyze the situation [6] and come to the conclusion that the HTTP
interface is a WSDL interface and that it makes difficult strong typing
of HTTP resources.

Some more analysis follows:

In WSDL, especially in the HTTP binding with URL replacement, we seem to
be modeling things that are greater than single HTTP resources. In HTTP
services, the model has a bunch of related resources and hypermedia as
the state machine, where high-level application operations are performed
by various transitions and invoking the HTTP methods. In WSDL, we model
the high-level operations and group them into Interfaces.

Therefore the HTTP application-protocol interface is not really
applicable as WSDL interface, as describing a single HTTP resource is
less than what WSDL wants to accomplish in one Interface.

As a conclusion of this, I propose we take the general approach
demonstrated by Philippe in (b). Specifically, I propose that the
Interface level not be affected and that the binding level be able to
assign HTTP methods to operations (not just one method for the whole
binding though), and I don't think it matters much if we do it by means
of attributes on http:binding (currently we have 'verb') and
soap:binding (in case protocol="http") or by means of a feature and a

Hope this makes sense,

                   Jacek Kopecky

                   Senior Architect
                   Systinet Corporation


Received on Thursday, 17 July 2003 03:47:20 UTC