

Service oriented architecture (SOA): An SOA can help IT
become more responsive to business needs, but confusion about the
approach means some fail to realise its potential.
Service oriented architecture (SOA) was one of the hottest
topics in enterprise software in 2005, and it is set to continue to
generate a huge amount of interest in 2006, as more and more people
look to it to help them deliver IT which is more responsive to the
needs of business.
Although some industry analysts predict that SOA is soon to
become a mainstream proposition, there is still a lot of confusion
and misunderstanding in the industry about what SOA is and why it
is important.
The more misunderstanding there is, the more opportunities will
be missed, and the more challenges and risks will go unmanaged.
Let's start from first principles. But I won't bore you with
talk of Soap, WSDL, UDDI or any one of a hundred other acronyms;
instead, I want to concentrate on a broader perspective of what the
"S" and the "A" in SOA mean.
Both "service" and "architecture" have meaning far beyond the
context within which most discussion of SOA is taking place.
The idea of a service is something that is relevant not only to
how you build, deploy and integrate application software - the "web
services perspective" - it is an opportunity to capture and
formalise the way in which IT in general is delivered.
Why? Because the concept of a service in the context of IT is
something with a long heritage, and there are many perspectives,
all of which have value and all of which are going to remain in
place, even when Soap (Simple Object Access Protocol) and WSDL (Web
Services Description Language) are old hat.
For example, in the world of systems management tools, there has
long been talk of service management, which aims to aggregate and
abstract operational system metrics to a level where they can be
measured against high-level service level agreements defined for
business services.
In the world of IT helpdesk tools, suppliers and users talk of
service management in terms of improving how IT problems are solved
by support staff. In the world of systems integration and
consulting, IT services describe things like software development,
integration and IT maintenance activities that are carried out by
engineers.
In this context, SOA makes the most sense as a way of thinking
about IT that explicitly recognises that all IT organisations are
service providers, with customers that have a variety of needs. And
SOA should help IT departments act in a systematic way that
improves the overall quality of the service that they provide to
those customers.
Soap, WSDL and their cousins may be merely the mortar that holds
the bricks together that make the overall house, but it is the
adoption of these standard software interface protocols by the IT
industry, coupled with increasing maturity in all the areas
outlined above, that makes SOA such a powerful force. SOA can, and
should, encompass all the perspectives on "IT service" outlined
above.
In our discussions of SOA, we distinguish three types of IT
service, all of which play a role in helping organisations get
business value out of IT:
- Business function services. The content of these services is
the core of what provides direct value to consumers, by automating
aspects of particular business functions.
- Infrastructure services. These services play a supporting role
in delivering value to the ultimate service user, by providing the
underlying platform over which business function services are
delivered.
- Lifecycle services. These are the wrapper which in the vast
majority of situations provide the real services which IT users
experience. Lifecycle services are responsible for the design,
implementation, operation and alteration of infrastructure and
business function services.
In reality, all these perspectives are interrelated in the
service-based delivery of IT. They all have to be considered if SOA
is going to live up to its promise of making IT more responsive to
the needs of business.
There is another aspect in which the definition of service in
SOA has to be carefully considered - the way in which services can
represent concepts that businesspeople understand. Software
services are not interesting because they can be exposed using WSDL
and interacted with using Soap, or indeed using any other
combination of readily-available interface definition language and
communication protocol.
They are interesting because of what they can represent. Just as
object orientation was valuable primarily because objects could be
representations of real-world objects, service orientation is
valuable primarily because services can be representations of
real-world activities and capabilities of companies.
If we can use SOA to more accurately model how software systems
can implement and automate business activities, SOA's potential
value is really about helping IT organisations and the businesses
they serve start to talk and collaborate using a common
language.
Architecture is not (or should not be) just a fancy way of
saying design. If we were to take that road, then SOA would just be
what a lot of people think it is: a way of designing systems so
that they are composed of loosely coupled units of software.
But architecture is different from design. It operates at a
larger scope and scale. Architecture is about forethought and
planning "in the large" - above the level of individual projects
and initiatives. In the context of SOA, the role of architecture
concerns setting policies and rules that govern the design of
individual services and systems, to maximise the overall value of a
service portfolio to the business.
This is a question of service granularity and reusability, of
representations and interactions, of semantics and much more. It is
also a question of strictly non-technical things like how you
organise and govern the IT function, and the way that the business
and IT work together to direct investment.
Fundamentally, in the context of SOA, architecture is about
laying the foundations for building a common language between IT
and the business. It is something you do - not something you build
or implement.
Neil Ward-Dutton is co-founder of analyst and advisory firm
MWD. Next month in Computer Weekly he will examine building reuse
into SOA initiatives