It’s just data

WS-HTTP

Don Box: Had we started with a simpler basis (perhaps Relax NG + some SOAP-specific extensions), my guess is we'd be having different discussions right now.

I don't.  To me, the keys are the three faces and WS-Get.

Let's explore them in turn, Tim's first.

One World

My experience is that:

Each of the above statements is arguable, but one thing that is undeniable is that a large number of people have found "simple XML over HTTP" to be a sweet spot.

The end result is that people who use a SOAP Toolkit can't access the eBay API.  (example)

I can hear Tim Ewald now "but Soap Envelope and Soap Body are but a small price to pay for future extensibility".  That's nice, but toolkits that insist on inserting these elements don't help those who want to access eBay today.

Now, Imagine a SOAP 1.3 specification which is identical to SOAP 1.2 with exactly two changes:

In such a world, people who use SOAP 1.3 enabled toolkits would be able to construct messages to be sent to eBay.  If they are so inclined, they could write schemas for such messages (in the schema language of their choice).  They could even wrap this schema in WSDL, and share it amongst themselves.

All of a sudden, a class of developers would find eBay to be "Web Service enabled".  Without requiring any coordination or changes with eBay.

Now, we are in a position to have a different set of discussions.

WS-GET

Now we (almost) get eBay.  What about Bloglines?  These requests require HTTP GET.

Contained in WS-Transfer's description of Get is the following:

There are no body blocks defined for a Get Request.

Above, I talked about omitting soap:Envelope and soap:Body elements when no headers are present, but what should one do if there are no body elements?  How about using HTTP GET in such circumstances?

In fact, for compatibility with WS-Transfer, we could also require the use HTTP GET if there is a single soap:Header which contains a wsa:Action of GET.

All of a sudden, a class of developers would find Bloglines to be "Web Service enabled".  Without requiring any coordination or changes with eBay.

Again, we find ourselves to be in a position to have a different set of discussions.

Other Issues

One of the details I glossed over in the eBay discussions above is that the eBay API also defines some HTTP Headers.  HTTP headers are simple collections of token and string values.  Modeling this as a SOAP Header is a piece of cake.  In fact, there already is one.

There are other details, like status codes, that need to be worked out, but the overall approach is to consider an outside-in instead of the traditional inside-out approach that web services has traditionally taken.

There are a couple of other issues.  Automatically omitting Envelopes will prevent interop with existing SOAP servers.  For this reason, it might make sense to consider this as a WS-HTTP WSDL binding instead of a rev to SOAP itself.

Also, while adding any mustUnderstand will cause existing eBay to crap out, adding any optional headers will cause problems too.  Getting this solved will require a change to eBay, albeit a small one.  There isn't much that can be done to solve this, but allowing soap requests to go out without any envelopes allows progress to be made today, allowing advocacy for soap headers to take place in parallel.


Sam Ruby's approach to bridging SOAP and raw XML over HTTP

... [more]

Trackback from XML Eye for the Object Guy

at

Putting the "Simple" back in SOAP

I've never been too big on SOAP. It's nice that there are lots of toolkit implementations out there, but for most of my projects, it just seems like overkill. Many developers joke about the acronym being an oxymoron, because SOAP can quickly lose its...... [more]

Trackback from geek ramblings

at

WS-HTTP problemos

Sam talks about WS-HTTP, and where we could be with Web services and HTTP. Thanks for the mention of WS-Get Sam! I'm stoked that some folks were talking about this at sells-con. I shoulda been there... Sam mentions the use...... [more]

Trackback from Dave Orchard's Blog

at

WS-HTTP Thoughts

A thought or two on Sam Ruby's latest entry: I can hear Tim Ewald now "but Soap Envelope and Soap Body are but a small price to pay for future extensibility". That's nice, but toolkits that insist on inserting...... [more]

Trackback from Dan Diephouse

at

Sam wrote
"...There are a couple of other issues.  Automatically omitting Envelopes will prevent interop with existing SOAP servers"

I also see another problem with clients who use SOAP with no SOAP Header going against a server that all of a sudden fail if the envelope is sent with no header.

Posted by Norman Headlam at

This makes too much sense, it could never happen.  Adapt a standard to real world examples?  Learn from actual usage patterns to determine what the standard should contain?  C'mon Sam, this is too reasonable!

Posted by Ole Eichhorn at

SOAP and REST Do Not Have to be Mutually Exclusive

From WS-HTTP talking about SOAP vs. REST style interfaces: WSDL can describe bindings of operations to many different protocols, but most bindings are to SOAP.SOAP can be transported across many different protocols, but most SOAP messages are transported over HTTP.Individual...... [more]

Trackback from Dichotomy's Purgatory

at

Keeping simple things simple

Amen to this post on intertwingly. Sam Ruby notes that while the SOAP based web services specifications allow for all...... [more]

Trackback from Notes from Classy's Kitchen

at

Fix the layering first

All this just because the layering got totally screwed up by the broken requirement of protocol independence? Egads. Time to check back with those first principles, me thinks. The SOAP response MEP, though not without problems, at least gets the...

Excerpt from Web Things, by Mark Baker at

I recall Don Box giving a presentation in Boston where he said that if there needs to be a SOAP 1.3 then SOAP itself will have failed.

It seems to me if people are already finding SOAP 1.2 to be inadequate for a large set of problems then you might as well stick a fork in it now.

Posted by Jeffrey Winter at

All of a sudden, a class of developers would find Bloglines to be "Web Service enabled".  Without requiring any coordination or changes with eBay.

Methinks you meant to say something else there… :-)

Posted by Aristotle at

So our site stupidly requires you to sign up before you can view this, but eBay actually does have a SOAP API:

SOAP landing page
eBay WSDL

(You can actually view the WSDL without logging in.)

The real problem for me isn't that we (or Web services in general) don't support SOAP, it's that the WSDL we generated using Axis only works on .NET and Java. Trying to get PHP or Perl to parse this WSDL it a bitch and a half. If you could throw some IBM resouces into fixing open source SOAP toolkits, (or someone else could arrange a similar effort), I would be a lot more interested in your SOAP story.

Right now, I have to jump through all sorts of hoops, including patching PEAR::SOAP, and that seems to defeat the purpose of SOAP.

Posted by Adam Trachtenberg at

WS-HTTP / WS-REST

David, Now that all of us (WSDL WG, WS-ADDR WG) are in Boston W3C Plenary. Should we revisit Sam's WS-HTTP Proposal and your response?...... [more]

Trackback from Davanum Srinivas' weblog

at

REST and SOAP/WSDL Sitting in a Tree... K... I... S... S... I... N... G...

Some links I want to keep around about describing REST API points in WSDL and converting between SOAP &...... [more]

Trackback from Jeremy Smith's blog

at

[link]...

Excerpt from del.icio.us/frank_martinez at

It seems like you are an expert for binding a webservice to HTTP-GET.

I would really need some help, providing a SOAP web service in apache axis with a binding to HTTP-GET.

Can anyone give me some advice?
I am really stuck for weeks!

Thanks a lot!
Stef

Posted by StrongSteve at

WS-REST continued: do we need an HTTP Transfer SOAP binding and simplified WSDL?

The Web services and HTTP world are still way separate. Without getting into the politics, I wonder what it would take to get to a mixed world: where SOAP clients can “see” Web resources, and Web clients can “see” SOAP...... [more]

Trackback from Dave Orchard's Blog

at

(Insert REST Pun Here)

(I started writing this as a comment in Harry’s blog in conversation to this , and soon realized that it would be better off living here; plus it took on a life of its own as they are wont to do - and at the very least I have more room to type here...

Excerpt from From 9 till 2 at

Add your comment