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:

  1. Identification of resources
  2. Manipulation of resources through representations
  3. Self-descriptive messages
  4. Hypermedia as the engine of application state
  5. 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.The hourglass model of Internet architecture[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.

  1. CSTB and NRC, The Internet’s Coming of Age, National Academies Press, 2001, p. 128. []



  1. Nick Gall November 25th, 2008 / 1 PM United States

    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.


  2. neal May 25th, 2010 / 9 PM Republic Of Korea

    좋은글 잘봤습니다. :)


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>

Leave a Reply to this Post



Follow Me on Twitter

Twitter Updates

  • Javascript is required to see this widget.

Follow echo4ngel


Categories


Flickr Photos

약속에 조금 늦었네오랜만에 점심 먹으러 밖으로줄이 끊이지 않네I'm here.선선하니 날씨좋네모히또 없으니 마가리타

View All Photos