More than merely linked web services, SOA has the potential to enable IT and the business to talk and collaborate using a common language.
Service oriented architecture is about much more than integration using web services technologies - it has the potential to enable IT and the business to start to talk and collaborate using a common language.
There are four steps involved in getting to this common language: using SOA to increase software flexibility, increasing software reuse, increasing the comprehensibility of IT to the business, and increasing the visibility of the value of IT.
The first two steps are the most talked-about aspects of SOA, and they are closely related. The first is basically about using SOA simply as a way to carve up existing applications, and develop new systems in a modular fashion, so that changes are potentially localised and the impact minimised. The second is about organising a portfolio of services so that as many of them as possible can be shared across multiple systems.
However, contrary to what might seem to be the case based on suppliers' marketing material, implementing an SOA initiative will not automatically yield improved software flexibility and reuse - there are important principles and practices which need to be applied and which have nothing to do with technology per se.
A big part of the value of service orientation is the ability of services to represent what a business does. If you do not understand the nature and structure of the business processes that are going to make use of software services once they are published, those services do not stand a chance of fitting the needs of the business.
The nature of SOA is such that individual services can, and should, be applicable to more than one system and more than one business process. This is a big part of the reuse promise of SOA. But it means that looking at service requirements purely within the context of a short-term system or business process requirement will miss wider opport- unities to generate value from your investments.
To ensure that broader and longer-term requirements are taken into account when services are being designed, full-time skilled architects who are available to all integration and development projects in your SOA initiative should be engaged.
The architects must be more than glorified software designers: they must have the responsibility of balancing short and long-term business requirements in the context of your IT delivery capabilities, which means they must sit squarely between IT and the business, talking to and understanding the needs of both.
And along with that responsibility, they must have the authority to influence the way that services are implemented and deployed. In other words, an architecture team that is seen purely as a "team of clever people we can ask questions of" is not going to be nearly enough.
Given the potential of SOA to make IT as a whole more service oriented, it might be tempting to attempt to recast the whole of your IT organisation's application portfolio as networks of collaborating, loosely coupled services. But this way lies madness.
You must focus on the domain in which SOA can yield real benefit, and that is in the area where business meets IT. This domain is increasingly being modelled as sets of clearly defined business processes, which are partly automated through the use of integrated business application software functions.
The ideal "service domain" where you focus your SOA efforts should not extend, initially at least, too far down into business functionality that is already implemented in application software. It should focus on the interfaces between those software functions and the business processes that need to make use of them.
It should also focus in areas where IT flexibility, rather than cost and efficiency, are paramount. That is likely to be in support of business activities and process which differentiate the business.
There are two principles which help to improve the flexibility and reuse of systems and services that are particularly suited to SOA initiatives.
First, create well-defined and distinct layers of services, each of which is responsible for a particular set of tasks (for example, information access logic, business rules, navigation logic, and user interaction and presentation logic), and each of which delegates responsibility for some tasks to the layer below.
Then discover and refine requirements for the overall system, understanding the business processes which will drive the system and its services. Start a "first cut" design with definitions of services within each layer according to the natural boundaries of steps in those business processes.
This will yield an important category of software reuse as a side-effect: reuse of a clearly designed set of infrastructure services (such as state persistence management, identity and access management, workflow, and platform administration and monitoring). These are often delivered within the boundaries of business applications.
The outcome of this "stovepipe infrastructure" is that islands of technology develop which constrain interoperability, inhibit employee and administrator productivity, and make things such as regulatory compliance painful to deal with.
SOA initiatives enable us to deconstruct these application stovepipes, and so redesign the way that infrastructure services are delivered - operating common infrastructure services which work consistently across large parts of the organisation. This aspect of software reuse is one of the important but often-ignored benefits of SOA.
Reuse of existing services in support of new system and business process requirements will not happen by accident - your analyst and development teams will have to take explicit steps to work together to foster reuse throughout the lifecycles of systems and services.
Additional time spent collaborating will cost money, as will tools to facilitate consistent sharing of service analysis, design and implementation information. You need to take some time early on in your SOA initiative to understand how much, and make budget adjustments accordingly.
Neil Ward-Dutton is co-founder of analyst and advisory firm MWD. Next month in Computer Weekly he will examine managing services and service-based systems throughout their lifecycles