WOA = SOA + WWW + REST
With the advent of Web 2.0, the enterprise market has started to change. The attempt to merge SOA (Service-Oriented Architecture), which represents the complex Web Services technologies and WS-* standards, with lightweight programming models of Web 2.0 is one of those changes.
In the enterprise environment where agility and reusability are very important assets, SOA has been the most prevalent paradigm for last several years. But contrary to the expectation, the skepticism about ROI and the complexity of implementation have prevented the proliferation of SOA. Finally, people have chosen “Web” services not Web “Services”.
Web-Oriented Architecture
In 2005, Nick Gall from Gartner coined the term WOA (Web-Oriented Architecture) to describe Web-based SOA.
WOA = SOA + WWW + REST
However without any official definition or clear consensus about the meaning, there were lots of discussion about the term. Dion Hichcliffe and other experts tried to define the meaning of WOA, but there was a slight difference between their opinions. After all, on November 11, Gartner published an official note about 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
Like the author said, the first four of the five interface constraints of WOA are the same as REST’s uniform interface constraints. However the last one Application neutrality has been newly added.
Application Neutraility
One of the most important goals of SOA is to maximize reusability, which means achieving better scalability. Scalable systems can be built using middle out architecture.
Middle out architecture is neither top down nor bottom up method. It’s the way to design an abstract interface at the center first and then expand it to the top and bottom. The interface called IFaP is an abstract combination of Identifier standard, Format standard, and Protocol standard.
A representative example of middle out architecture is the Internet. The interface of the Internet consists of IP address, IP packet, and IP protocol, and each respectively plays the role of Identifier, Format, and Protocol. Based on the interface, the Internet has been expanded to the diverse applications including Web and VoIP, and the several new platforms like Linux, successfully providing stable services.
[1]
Application neutrality of WOA is also about IFaP. A fundamental characteristic of the Web is serendipitous reuse, highlighted by Tim Berners-Lee and Roy T. Fielding. Serendipitous reuse can be achieved by general and application neutral interfaces. In other words, the more application neutral a interface is, the more reusable it is.
- “Unexpected reuse is the value of the Web” (Tim Berners-Lee)
- “Engineer for serendipity” (Roy T. Fielding)
However, WS-* standards more focus on implementation neutrality than application neutrality, says the author. Implementation neutrality of WS-* standards can help support various middleware technologies, but application neutrality plays more significant role in creating powerful network effects. So, WOA strongly emphasizes application neutrality.
Application neutrality should be the principal goal of an interface, and implementation neutrality should be a secondary goal.
How Neutral?
At Jazoon’07, Roy T. Fielding said SOA is null architectural style which has no constraints at all. But WOA has at least the 4 different uniform interface constraints of REST. The issue is the last 5th constraint, application neutrality.
The author insists application neutrality is an implicit constrtaint in REST, and every interface element should be defined as generic as possible.
Don’t just build on generic interfaces; build up generic interfaces that are only slightly less generic than those built on.
However, how generic does it need to be? What is the basis for determining if an interface is generic? If going from neutral to specific is a continuum, how granular will it be?
For engineers to understand and adopt WOA correctly, and to build practical systems based on it, the questions above may need to be answered clearly.
- CSTB and NRC, The Internet’s Coming of Age, National Academies Press, 2001, p. 128. [↩]








2 Comments
jump to comment form | comments rss | trackback uri
Excellent summary Jay. And you zero in on the $64,000 question: “However, how generic does it need to be? What is the basis for determining if an interface is generic? If going from neutral to specific is a continuum, how granular will it be?”
My latest post in the REST-discuss group give a concrete example of “nested generality” (or nest neutrality): http://tech.groups.yahoo.com/group/rest-discuss/message/11612 . As I said in the thread: generality is like simplicity, so Einstein’s quote applies to generality as well:
Strive to be as general as possible. But not too general.
좋은글 잘봤습니다. :)
Have your say
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>