Monday, June 23, 2008

WOA

Everyone is familiar with SOA. Now the concept of WOA is grabbing the ideas faster. Nick Gall was and early proponent of WOA(in the year 2005) , but drowned as Web 2.0 dominated. WOA is defined as “an architectural style that is a substyle of SOA based on the architecture of the WWW with the following additional constraints: globally linked, decentralized, and uniform intermediary processing of application state via self-describing messages.” In his short-hand, he defines it as the combination of SOA, Web, and REST architectural and technology implementation styles. Dion Hinchcliffe further clarifies WOA as “a core set of Web protocols like HTTP and plan XML” to provide a simpler, and in his view, more scalable, approach to Web Services. He further states, “The only real difference between traditional SOA and the concept of WOA is that WOA advocates REST, an increasingly popular, powerful, and simple method of leveraging HTTP as a Web service in its own right”.
The question about the REST-WOA overlap can best be answered by stating that while not all REST applications are WOA, all WOA implementations are necessarily RESTful. None of the proponents of WOA seem to advocate it as a replacement for SOA concepts, and indeed indicate that it is a subset or style of SOA implementation. Nick Gall once stated, “[WOA] describes a subset of SOA that fits the architecture of the Web”.
WOA and SOA: Different Levels of Abstraction-- the key requirement for WOA is a dependence on the Web as a protocol and means for both Service definition and Service interaction. SOA is necessarily and completely agnostic with regards to how to define and interact with a Service, but WOA is necessarily more specific. WOA cannot exist without the Web protocols, but SOA can. Does this mean that WOA and SOA conflict? No, it simply means that WOA is more specific than SOA. In other words, WOA is a more concrete than the SOA abstraction. Hence, we are talking about different layers of abstraction. In this way, WOA is really an alternative to Web Services and perhaps other approaches to Service design, such as emerging mainframe-oriented, message-oriented, and event-driven approaches that all might mandate different styles of Service definition and associated infrastructure.
Web Oriented Architecture:
Long version: WOA is an architectural style that is a substyle of SOA based on the architecture of the WWW with the following additional constraints: globally linked, decentralized, and uniform intermediary processing of application state via self-describing messages.
Shorthand version: WOA = SOA + WWW + RESTBTW, Since WOA is a substyle of SOA (ie it imposes additional constraints above and beyond those imposed by SOA), you may be interested in our definition of SOA:

Service-Oriented Architecture:
Long version: An architectural style in which certain discrete functions are packaged into modular, shareable, distributable elements ("services"), which can be invoked by consumers in a loosely coupled manner.
Shorthand version: SOA = modular + distributable + sharable + loosely coupled

No comments: