<<Steve Vinoski has written an article applying Christensen's famous
book, The Inventor's Dilemma, to the REST and WS-* argument. For those
of you who don't know, Steve is a strong supporter of REST models.
Steve was previously a major dude in the CORBA world, and like many
converts, has taken a very strong stance against his previous position.

I pretty much have stopped arguing about REST and Web Services. One of
the things open source has taught me is to react well to customers. If
a customer is interested in using a SOAP solution, I help them. If a
customer wants to use a RESTful model, I help them do that too. And I
try to look at their individual scenario and understand what is the
most appropriate technology for them.

Steve's argument is phrased in terms of RPC, and he portrays WS-* as
the culmination of the RPC model. In fact many of the architectures I
am involved in building on top of WS-* for customers are not RPC -
they are either long-running asynchronous or event driven. It is a
fundamental error to say that SOAP is an RPC format.

In my experience, very few customers care about WS-* vs. REST: they
care about building something that is effective, maintainable, fits
with their skill set and developers, and that scales well.

Given my lack of interest in arguing about REST and WS-*, I considered
ignoring that Steve has chosen the WSO2 Registry as an exemplar in his
article. On the other hand, his example is wrong in so many, many
ways, I can't resist the need to set him straight.

Here is what Steve has to say:

    "For example, WSO2 uses Atom4 and AtomPub5 (both built on RESTful
HTTP) within its registry product (www.wso2.com/products/registry/),
which is part of a set of open source products based on SOA and WS-*.
Somewhat ironically, the registry uses a RESTful approach to handle
the publication and lookup of metadata for non-RESTful RPC-oriented
Web services. Christensen refers to this approach as "cramming," in
which firms try to capitalize on disruptive technologies by
incorporating them into sustaining products;"

Let's address the factual errors first and then address the more
systemic problem in the article.

Firstly, let's be clear about the WSO2 Registry: it is a new
initiative, built from the ground up as a RESTful model. , and it is
not limited to publication and lookup of metadata for non-RESTful
services. For example, you could use it as the store for document
descriptions, mime-type descriptors, WADL, RDDL, or many other RESTful
description models. We built the WSO2 Registry in a RESTful way
because we decided it was the most appropriate technology for managing
metadata. You could say its ironic, but since 99.9% of the world's
WSDLs are accessed via HTTP GET, you could also say it is simply
extending the defacto standard. Of course being English, I consider
Irony a good thing, and I often point out this same irony myself.

Since the Inventor's Dilemma is also a lot about the human reaction to
new technology, I think its also fair to point out that I have
consistently criticized UDDI for over 5 years, both publicly in
presentations and to anyone who asked me.

I actually wonder if Steve has downloaded the Registry or looked at it
beyond the fact that it uses Atom and AtomPub. Why? Because if he had,
he would have realized that the main aspect of the Registry is a Web
interface. The Atom and AtomPub are secondary to most users, because
the main interaction is humans using a Web browser. And mostly if a
user comes across the Atom, its in their feedreader, which is likely
an extension of their browser.

Steve goes on to say:

    "In this case, the benefits of REST are hidden behind an
RPC-oriented API for accessing the registry, and those benefits
disappear completely as soon as an application uses the registry to
find a non-RESTful service and starts to use it."

Once again, this is a highly superficial view of the Registry. The
benefits of the REST design permeate the use of this product. You can
bookmark any page. You can point your tooling or code at a permanent
URL pointing to a WSDL or a WADL or a Schema and know that it will
always be there in exactly the version you want. You can subscribe to
the Registry using your feed reader. You can follow links from
dependents to dependencies. You can associate any kind of relationship
between resources, and follow those relationships as hypertext. These
real and important benefits of the REST design are why we chose it, no
more, no less.

The core API is highly RESTful and built around the concept of
Resource as a first class concept.

I think its clear that Steve is taking a superficial view of the
registry in order to make a point - he thought "cramming" was an
essential point of Christensen's model and so he looked around for a
target. And this is the systemic problem with this article.

The scientific method is that you propose a theory, and you
dispassionately look for evidence to prove or disprove the theory.
Unfortunately Steve has proposed a theory - that the Inventor's
Dilemma maps neatly onto the REST vs WS-* argument - and then applied
his strong viewpoint to bias the outcome. The whole article starts
from the premise that REST is the answer and then goes on to prove
that. Funny how that happens.

So my advice - take a look at the WSO2 Registry yourself.>>

You can find Paul's blog at:

http://pzf.fremantle.org/

Gervas

Reply via email to