X

Web-oriented architecture and the rise of pragmatic SOA

WOA is the latest term to confuse developers. However REST and SOA can be best friends.

Dave Rosenberg Co-founder, MuleSource
Dave Rosenberg has more than 15 years of technology and marketing experience that spans from Bell Labs to startup IPOs to open-source and cloud software companies. He is CEO and founder of Nodeable, co-founder of MuleSoft, and managing director for Hardy Way. He is an adviser to DataStax, IT Database, and Puppet Labs.
Dave Rosenberg
2 min read

Web-oriented architecture (WOA), a descriptive term for a subset of service- oriented architecture (SOA), has recently arisen as the next buzz-phrase to help further confuse the IT architect.

WOA is simply a way of implementing SOA by creating services that are RESTful resources, allowing any service or data to be accessed with a URI. (REST, by the way, stands for representational state transfer. And URI is short for uniform resource identifier.)

For many scenarios, this method dramatically simplifies things over the traditional WS-* approach. WOA resources are stateless and self-descriptive. Additionally, building SOA across intra-enterprise and in-the-cloud services becomes much easier with WOA.

As defined by Gartner's Nick Gall (thanks to Rob Eamon for the pointer):
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 + REST

To be clear, the WOA approach is not ideal for every scenario. As with any architectural style, there are trade-offs. Any application that requires a real-time, event-based action or response, for example, can't be easily built in the WOA way (at least without crippling the system with constant polling). For the enterprise architecture with any level of complexity, no one approach will fit all needs.

Add in the inevitable enterprise mix of legacy applications, existing investments in SOAP-style SOA, and point-to-point integration infrastructure, and it becomes clear that the true pure-play WOA will be all but nonexistent.

So, what about WOA governance? Does the emergence of the distributed, resource-oriented WOA mean that governance will be fundamentally different? Does it mean that a previously centralized, top-down SOA governance will give way to a bottom-up, federated approach? The answer is both yes and no.

Top-down centralized SOA governance has been a failure to date. The inherent complexity of trying to manage sprawling enterprise architecture with the enterprise architect's iron fist, combined with overly complex tools and protocols such as UDDI have all contributed to the shockingly high failure rates of SOA.

Any SOA governance strategy needs to manage ALL of an enterprise's IT artifacts--not just WS services, or WOA resources. Governance practices need to emphasize best practices, artifact discovery, and collaboration rather than top-down policy enforcement. Tools need to be pragmatic and useful to developers from day one.

In the end, WOA is just one more way to build service-oriented applications and will need to co-exist as a part of a larger enterprise SOA. SOA governance practices and tools will necessarily need to evolve to accommodate WOA and adapt to reflect the benefits that REST and WOA bring.

The pragmatic developer or architect recognizes that WOA is a way to solve a particular problem. It's not the total solution.