Sunday, June 1, 2008

No WOW for WOA

I was at an architect community meeting when I first heard of the term WOA, and later looked up some references on the internet. I am not sure who coined the term and why. WOA stands for Web Oriented Architecture. The first couple of questions that came to mind were "Sounds like SOA, what's the difference?" and "Do we really need another acronym?". After googling a bit (for instance I found the following:
"Web-Oriented Architecture is an alternative to Service-Oriented Architecture. WOA is fundamentally about "open" systems that communicate over "open" and established protocols and formats."
Hm. SOA uses open formats, and services are open, use of established protocols and formats are fine as well. Why is WOA an "alternative"?

"In WOA, HTTP takes center-stage as the communication protocol between applications and web-services. Beyond that, the exchange format is also web-centric and is often XHTML, RSS, RDF, or other such formats."

Hm. Ok fine. you can have a SOA with HTTP on the center stage. You could have CORBA for that matter. SOA does not say that HTTP is excluded from the protocols it can work with. SOA does not say that RSS is not allowed or something like that.

Maybe a good time to try and explain what I understand as SOA. At this point I was almost going to try and write it down, but instead of repeating what is already on the web, I'll just refer you to the OASIS reference model of SOA:

By the way, RSS is actually a very good example of a service implementation if you look at the OASIS paper of what a service is.

"In WOA, web-services embrace the same technological design principles that web-applications have been following for years: communication between services is stateless, formats are open and extensible, and data exchanges are cacheable. All desirable properties for creating large scale, ad-hoc networks of connected, heterogenous web-services. "

That just sounds like really good things to do when you design services. No difference again here with SOA. SOA says nothing about not-caching, statefull, closed formats, not-extensible. A lot of the articles floating around try to make a connection between SOA and SOAP. Although there is alot implemented today with SOAP, this is not a prerequisite for SOA.

Then I read the following:

"SOA should extend out of the firewall to the Internet, if you're to provide real value to your enterprise. However, this was not universally accepted by the rank-and-file SOA guys. Indeed, generally speaking most viewed SOA as something that occurred within the firewall exclusively, and extending the reach of their SOA to Internet-based resources was taboo."

That is opinion, not definition. How you do your security is implementation detail. (Obviously you will have far different requirements in a SOA environment)
From the OASIS reference model:

"Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains."

Sounds like cross firewall to me.

"Not sure if anyone is selling this as a replacement to SOA, or traditional enterprise architecture, but it's really an approach to architecture where there is a core acceptance that Web-based resources may provide the most speed to delivery, the largest number of resources, and with minimum amount cost. That's it."

And in my opinion, all of that is a narrowing down of a specific implementation of a service oriented architecture style that doesnt really add more meaning, at least not enough for me to start using the term.