WS-Get

|

We need another WS- spec, WS-Get. It's the Get subset of WS-Transfer that just has Get. In the same way that HTTP Put/Delete are used less than Get, so I think that WS-Transfer verbs other than Get will be used less than Get.

WS-MetadataExchange is a perfect example of a spec that could use WS-Get. WS-Mex can't really refer to WS-Transfer because there's too many extra verbs. With WS-Get, WS-MEX could define GetMetadata and refer to WS-Get, and WS-Transfer could define Create/Update/Delete and refer to WS-Get. Cool.

We can still get to is a place where applications can choose:
- generic reads, generic writes: WS-Get + refactored WS-Transfer
- generic reads, specific writes: WS-Get + application specific verbs
- specific reads, specific writes: applicaiton specific verbs

I've argued the middle choice is a sweet spot that we should enable, ie Web services needs transfer protocols and specific protocols.

There's one additional piece that I would put into WS-Get, which is an optional binding to HTTP Get. As Chris said, SOAP 1.2 should have done a binding between SOAP infoset and HTTP GET + URIs. I'd proposed a SOAP RPC URI binding a long time ago. This and other proposals were rejected in favour of the soap-response MEP, which I think was a terrible solution. But the story isn't over, as WS-Get + binding to HTTP GET can give the advantages of SOAP + re-use of HTTP. I think there's more that WSDL 2.0 should do, but that's a separate issue.

WS-Get can enable HTTP GET for Web services read operations (including GET) and HTTP POST for all other Web service operations. Then the SOAP folks get what they want (the soap and wsdl extensibility models) and the REST folks get what they want (the use of URIs and use of HTTP GET).

About this Entry

This page contains a single entry by Dave Orchard published on October 13, 2004 11:36 AM.

Grouse Grind Mission Accomplished was the previous entry in this blog.

XSD and Wildcards is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories