Sunday, 30 November 2008

Steve on the Inventor's Dilemma

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.

Tuesday, 25 November 2008

More information on Stonehenge

Nice blog from Mike Champion here.

Monday, 24 November 2008

Oslo M and MGrammar

At ApacheCon BarCamp I gave a very short (15 minute) demo of MGrammar, which is part of the Oslo modelling framework. There is plenty of information inside the download if you want to play around.

James Clark has recently blogged about both M and MGrammar. Definitely worth reading.

Tuesday, 18 November 2008

Stonehenge

The Apache Incubator has just voted to start a new Incubator podling, called Stonehenge. I'm the champion, so I'm taking this opportunity to explain it a little more.

Firstly, let's get this out of the way. This will be the first Apache Incubator project that has contribution from Microsoft. Yes, Microsoft. As well as Microsoft, Redhat/JBoss, Progress/Iona, Eviware, WSO2 and others have signed up to contribute. For those of you that didn't know, Microsoft already has two committers at Apache, and is a sponsor of Apache. I think this is a big step and I congratulate Microsoft on making it.

What is Stonehenge? The basic concept is to create a project that improves SOA interoperability through an Open Source model. The way we intend to do this is to create multiple implementations of the same application, and to ensure that they interoperate cleanly.

Let me give a concrete example, which is based on the first such application: Stocktrader. This application has separate components that talk to each other via Web Services. To demonstrate interoperability we are going to test each of these frameworks against each other. So part of the overall application might be running WSF/PHP, part Axis2/Java, part .NET WCF.

I expect this approach will get some interesting feedback. Most people think of Apache projects as a place to get a useful library or tool. But Apache members and committers think slightly differently - we think of Apache as a place where the community and process encourage good code. That is why we believe the Apache Incubator is the right place for this project - we believe that having many parties collaborate to create a set of interoperable applications that show best practice.

Of course, these applications won't all share code. Of course if several frameworks all use the same interface, say JAX-WS, then they may. But this project is not about sharing code, its about sharing standards and sharing interoperability.

If you want to hear more, Rich Bowen interviewed Kamaljit Bath and me at ApacheCon. You can hear the feathercast here. Kamaljit is a Program Manager from Microsoft's interop team and will be contributing to Stonehenge.

Finally, if you would like to get involved, we would welcome you. Please subscribe to the mailing list here: stonehenge-dev-subscribe@incubator.apache.org

Friday, 14 November 2008

Adjusting WSO2 to the financial climate

We all know that the financial and economic climate is tough. Both British and German commentators believe our respective countries are in recession, but this is a global issue across every market.

Like every other startup, WSO2 has to carefully ensure that we can weather the storm. Sanjiva and I take this very seriously. Together with the board and our finance team we put in a great deal of thought and consideration, and we came up with a plan to control expenses and make sure WSO2 was in a strong position for the future.

Sanjiva has blogged about this here and I think he explains it more clearly than I can.

I just want to say thank you to the whole WSO2 team. To the few people who are moving on I can only say - Thank you for all your hard work and efforts.