01/20/08 :: [SOA] WSDL sucks deeply and totally [permalink]

This is how Tim Bray still speaks these days. I asked for some clarifications or a link. Let's see what he comes back with.

He explains that he is not yet sure that he needs a Web Service Definition Language and comments:

Then after reading Dare’s piece, it dawned on me that I just spent the last three years of my life helping develop a Web Service Specification language, namely the Atom Publishing Protocol’s Service Document

Since Steve complains about "There’s simply no room in technical discussions for the negativity and hate that causes situations like that". I decided to play super positive today, I mean the Pats are 18-0, ready to win the Superbowl against the frozen Giants, how could you be negative in any ways. Steve also points to Joe's critic of WADL. (These guys are so far behind in their understanding of WS-* that it's not even funny anymore to discuss anything with them). Their motto is that WSDL is bad because you can do code generation (if you want) and code generation is bad, therefore WSDL is bad. Wow, how logical is this proposition? This reasoning is so profound that we should lobby to replace Harvard's entrance gate motto ("Enter, to grow in wisdom") with it. The world's elite's got to reflect on this every day. We should also make sure that any presidential candidate has been initiated to this new powerful form of reasoning. The future of the free world depends on it.

Steve comforts Tim's proposition by saying:

Similarly, an AtomPub service document is nothing like IDL or WSDL either...those documents essentially inform you of service URIs and media types, but they don’t define methods or operations. They don’t have to, because of the HTTP uniform interface.

I decided that contrary to by dearest habits, I would "boringly proceed with useful logical discussions". So, here is what Tim and Steve are talking about. I created my understanding of APP as a UML diagram. This is the latest addition to the REST family of specifications and possibly the RESTian crown jewel (click to zoom in).

Wow, I am impressed, you mean that's supposed to be the WSDL of REST. Wow. How long did it take you do write this spec? You said, 3 years just for the Service Document element. Wow, I mean, I can't take my brain off this abstraction, I am just blown away. Wow, just with four little verbs you have been able to create a spec that describes how to create member resources (entries) in a collection and how to edit them. And wow, the "workspace" concept, I mean wow, this is brilliant, that's much better than parking resources behind one service (or more than one service). Now they are inside a workspace. Wow, I mean, I am sure the resources appreciate the difference.

Wait, actually, the more I observe this wonderful abstraction the more questions I have. So now, let's say I have a corporate blog and I want the employees to be able to post blog entries. But since it is a corporate blog, I kind of want to monitor what's going on, so I have a simple state machine for an entry: entered, approved, published. How do I do that in APP? must be a PUT on the resource right?  

I am also wondering how  CORBAsian APP is? At a high level this is an object model with methods.

How does this design approach scales? I mean, if it took you 3 years to come up with an interaction model for feeds that can't even really support an approval step, how long do you think it is going to take me to do an insurance claim or policy? I don't have several years to come up with this kind of thing.

Ok, enough non-sense, Tim, Steve, when you'll have something of value to tell us beyond REST itself, let us know.

The UML file is available on WSPER.