Business managers serving on WCM product-selection teams or attending technology conferences sometimes ask for definitions of “Web services” and “service-oriented architecture (SOA).” They say they are confused by their IT teams’ usage of the terms as though they were synonymous, and that when the managers themselves use the terms interchangeably, they get corrected. Why does this happen?
Web services, a technology standard, and SOA, an architectural design methodology, are highly complementary. Yet they are distinct. “Web services” refers to technologies that allow enterprise applications of all kinds (WCM, CRM ERP, BI, etc.) to communicate with each other. Common forms of Web services include application programming interfaces (APIs), which are connectors written by software vendors that allow for a standard way of communicating with their applications. Vendors often publish or sell these APIs as a straightforward means of connecting. Another common – and more generic – example of a Web service is any message, often in XML format, exchanged between a client (a Web browser, for example) and a server (your bank’s database) using the SOAP protocol. There are variations on these two themes, but the important concept to remember about Web services is that, simply put, they allow for a standard means of communication between software applications which may or may not rely upon transmission over the Web. Web services very frequently communicate only over corporate networks.
SOA, on the other hand, is not a technology. Rather, it is a way of designing connections between objects (application code components), applications, and other technology infrastructure. Like the frame of a building with respect to its windows and floors, SOA only defines the relationships between technology components, not their composition. SOA’s goals are to achieve self-sufficiency for each component – i.e. that each component will perform one complete task or “service” – and for each component to offer its “service” to all of the others. It stands to reason then, that Web services and SOA often fit together well because SOA provides a framework within which discrete components can interact with each other, and Web services provide a standard way of building the components.