Crying Out for a RESTful Service Interface Description Language


Dave Rosenberg is frustrated with Web 2.0 apps that don't play well together:

If you haven't seen any of the 37 Signals stuff, it's great. Easy to use, well-designed etc. But even they don't offer a completely integrated suite of all of their own apps. I need Basecamp integrated with MyYahoo and Salesforce.com to really be productive. I want all my stuff on one page at one URL, in sync across multiple computers and visible on my handheld. This was the promise of portals but it remains unfulfilled. ... To me the big opportunity of Web 2.0 development is the ability to create a better user experience based on features etc. Instead we are ending up with a morass of social-networking, photo-sharing redundancy. And while much of this stuff is cool and potentially usable, it's not enough.
From Frustrated by Web 2.0's lack of multi-site integration
Referenced Thu Jun 29 2006 11:39:02 GMT-0600 (MDT)

Adam Fields picks up the thread with an observation that UNIX command line programs have a similar problem and solve it with a pipe and flags that changes the modality of the application to make it more suitable for a specific use. He makes mention of the fact that it's more complicated due to dynamic interfaces. I had another riff on the same theme...

Web services (with SOAP) introduced a wonderful style of application integration because the standards associated with them encourage intermediation. Web services intermediaries offer all kinds of services that makes managing and integrating multiple services easier.

RESTians are fond of making fun of the myriad standards associated with Web services. I'm sympathetic. Sometimes it seems like it's gotten way out of hand. But these standards have an aim of creating context that is sufficiently well-defined that intermediation and orchestration are not just possible, but easy.

Intermediation and orchestration are possible with HTTP, but not really easy because that well-defined context is missing. In UNIX, stdin, stdout, environmental variables, and so on are the all the context that necessary. Integrating Web 2.0 apps is more complicated.

A good first step would be a well-accepted service description language for HTTP-based Web APIs. WSDL doesn't work in RESTian services and there's no RESTful alternative. Moreover, most people don't even see the need. Well, read Dave and Adam's posts--there's the need staring you in the face. The only way that we'll get to a place where Web 2.0 apps are more easily integrated is when we have a service interface description language and other metadata standards for RESTful services.