Tuesday March 01, 2005 | Colm Smyth's Weblog Gestalt Blogology |
![]() |
|
The Real Value of Service-Oriented Architecture
Many software architects seem to want to perpetuate the giddy 'buzzword escalation' of the 90's long after the decline of dot-bomb thinking has enabled customers to return the focus to hard measurable quantities like ROI. One of the terms that on the surface seems over-hyped is Service-Oriented Architecture or SOA. The methods and benefits of SOA sound like a late night repeat of what the software industry was aiming for over 15 years ago when it started focussing on object-orientation, and then again about 10-13 years ago when developers and deployers realised that a packaged component under middleware such as COM, DCOM and CORBA could have useful 'physical' properties like ease of deployment, discovery and replacement. A web service is simply a remote-addressable component interface. A service-oriented architecture is achieved when the following are true:
It is quite easy to write web services that meet the technology requirements (1, 2 and 3) but it takes specific effort and knowledge to also meet the service definition and implementation requirements (4 and 5). A further critical goal of SOA is to achieve reuse. Object-orientation alone failed to deliver this, but developers who focus on high-level interfaces and use HTTP/SOAP/WSDL/UDDI as a common protocol backbone will be able to easily reuse functionality exposed via RMI, Jini and CORBA as well as UNO and XPCOM, and with care and some more effort, even non-OO functionality can be adapted as a service. Then we have folks like John Seely Brown and John Hagel III who talk at a high level about 'the service concept' and 'radical incrementalism'. Everyone understands what a service is, but for a developer it is nothing more than good old fashioned object-orientation with emphasis on loose-coupling and the addition of location independence. The latter concept (RI) is nothing more than kaizen (continuous improvement through time-boxed reflection and change), with a nod to techniques from agile development methodologies (frequent applied change, customer orientation and use of appropriate metrics to guide decisions) applied to the business arena. What then is SOA ultimately about? It's not simply about one or two technologies, despite the heavy focus on web services. For businesses, it's about ROI. It's simply too damn expensive to have to throw away versions/iterations of a service (or a set of interacting services) just because it was imperfect or incomplete. And its about choice, especially vendor-independence. SOA done properly will enable you to avoid the 'hairball', which is Scott McNealy's term for a bunch of inter-locking features which don't let you replace an unsatisfactory component with a better value one from another vendor. Ultimately SOA is about integrate-ability, choice and evolution. How will you know what to avoid to achieve the evolution-enabling nirvana of SOA? Here are a few key roadblocks:
An interesting aspect of SOA is how it is beginning to impact on IT vendors. Some vendors think that 'proprietary' is the only way to sustain revenues. This view is declining as businesses are demanding the ability to choose and evolve the components in their IT environments as a right, not a privilege, a view that Sun has notably held and acted on for many years. As CTO's and CIOs use the goal of SOA and the metric of short-term and future ROI to determine how they select and deploy software, vendors will have to compete on value, not on how much their products are mutually inter-dependent. This will facilitate competition among vendors and force a focus on delivering maximum value in a few key areas rather than trying to create a web of inter-locking inadequate products around a few popular ones. This in turn supports the businesses need to maximise ROI. Finally, does open-source have a connection to SOA? Not at all. To businesses, open-source is just another licensing model and says nothing about their ability to choose, to evolve and to maximise value received from their IT architecture. Summary
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||