I talked about mash-ups and the enterprise a couple of weeks ago. This time I’d like to take a look at WOA and how that fits into the enterprise.
So, like a good philosophy essay, let’s start with some definitions. What is WOA, or perhaps more simply, what do the letters of the acronym stand for. WOA stands for Web-Oriented Architecture. It’s a way of building large-scale Web services. It’s like SOA on steroids! Gartner have a sort of definition. They think of it as SOA plus WWW plus REST. And just to unpick that definition a little, it’s Service-Oriented Architecture (the one that we’ve all been hearing about for the past five years) plus the World-Wide Web plus REpresentational State Transfer.
SOA, as you’re probably well aware, is a software design that breaks down a problem into modular, distributable, shareable, and loosely-coupled components. The World-Wide Web part refers to Web-related technologies such as HTTP(S) (HyperText Transfer Protocol Secure), (X)HTML (eXtensible Hypertext Mark-up Language), RSS (Really Simple Syndication), Atom Publishing Protocol, RDF (Resource Description Framework), and others.
With REST, there are no objects or methods, rather, everything is a resource. In a RESTful system, an agent communicates with a resource using its location, a verb describing the operation, and a representation of the desired state.
SOA usually comes associated with SOAP (Simple Object Access Protocol) and WSDL (Web Services Description Language). Now the problem many people experience is that the WSDL specification can be difficult to understand, domain specific, and difficult to extend or adapt. In addition, SOAP messages can be complex and difficult to understand without some knowledge of the services involved.
The advantage of WOA is that it uses existing technologies. A WOA interface can be used from any Web-enabled programming language. WOA can be easily extended.
But, I hear you say, can I use this with my mainframe? The answer is yes. And the reason is that WOA is ready for this kind of usage. It is simple, scalable, and extensible. It makes use of all the benefits of HTTP – such as using PUT, GET, POST, and DELETE requests. And it promotes the use of semantically rich representations.
You may remember me saying that mainframe mash-ups can use REST. The use of REST is probably the big difference at the moment between traditional SOA and WOA – although, every diagram shows WOA as being a subset of SOA. And it’s not all good news about REST, there are certain areas where it’s not great – such as two-phase commit, messaging, and asynchronicity.
But having said that, the use of REST and SOA puts the focus on Web resources rather than services and it just might be the way to get SOA projects to a satisfactory conclusion.