A recent post by Nick Gall of Gartner on WOA: Putting the Web Back in Web Services stirred up some interesting buzz. This post presents Gartner's definition of WOA:
WOA is an architectural substyle of SOA that integrates systems and users via a web of globally linked hypermedia based on the architecture of the Web. This architecture emphasizes generality of interfaces (UIs and APIs) to achieve global network effects through five fundamental generic interface constraints:
- Identification of resources
- Manipulation of resources through representations
- Self-descriptive messages
- Hypermedia as the engine of application state
- Application neutrality
This is essentially a rehash of REST except for the fifth point on "application neutrality". Nick explains this further.
Application neutrality should be the principal goal of an interface, because it is precisely this characteristic that enables shareability (a fundamental SOA principle). In other words, interface designers’ primary goal should be generic, application-neutral interfaces, which generalize away application-specific details.
This is intriguing. How can you generalize away application-specific details from the interface, and yet do something meaningful and concrete? Nick goes on to illustrate this.
The key to shared use (reuse) is a generic, application-neutral protocol, such as the Atom Publishing Protocol (APP) or Google’s GData Protocol. Conversely, the more application-specific a protocol is, the less shareable it is.
This still did not make sense to me. In particular, APP and GData are profiles of HTTP, and not new application neutral protocols. After some back-and-forth discussions on the REST-discuss list, it turned out that "application neutrality" meant using generic media types such as the Atom Syndication Format for representations. Now, this is something I can comprehend.
So is WOA = REST + generic media types? It was not very clear from his post, but that seems to be the the gist of this definition. Using media types such as HTML, XHTML, and Atom makes sense in some cases, but saying that it should be the goal of an interface to use such media types is a stretch. Media types should be able to convey the type of representation, and by using generic types, applications lose describability.
It is unfortunate that Gartner chose a vague term like "application neutrality" to describe this. But on the positive side, they are at least talking about REST.

{ 1 comment… read it below or add one }
Fantastic set of blogs Subbu. Thanks.
I read the list thread and while not a specialist I wasn’t convinced by the ‘application neutrality’ idea.
Something not mentioned was the idea that the Content-Type could usefully be:
extensible (i.e. built-in forward/backward compatibility), self-delimiting (one or several messages) and self-describing.
This wouldn’t make your RESTful service/site/application of less application-neutral/generic. But, assuming the clients know how to consume such content, wouldn’t it make the content more robust to the server side changing (within some limits) the content encoded while the client consumer doesn’t change.
Protocol buffers fails the self-describing, since if I understand correctly the client has to be given the .proto file. As far as I’ve encountered it seems that extprot is all there is (http://eigenclass.org/R2/writings/extprot-extensible-protocols-intro).
Any thoughts on its suitability as a preferred Content-Type, cf XML and any other type?
Cheers
Mark