There is an interesting thread going on in the service-orientated-architecture group.
Based on this thread I’m going to stop using the term “SOA” Everybody seems to have their own definitions for it. Here are some sample quotes:
From Patrick May:
If a distributed system uses a
standard means of registering services, looking up services, and
accessing services and it decouples clients of a service from details
about the implementation and location of that service, then it is
using an SOA.
From Sean McGrath
SOA (if it is worth anything at all) is a paradigm shift EAI-done-right
as opposed to EAI-V1.5. The paradigm
shift involves embracing asynchrony and reliable messaging substrates,
embracing protocol-oriented integration
patterns, embracing homogeneous message-passing “APIs”, embracing
event-oriented programming, embracing
the notion of explicit transaction boundaries, embracing the notion of
semantic interoperability, embracing
the notion of business-oriented system design in terms of data flows,
data transformations and service
choreography.
From Anne Thomas Manes:
I recall using the term “service-oriented architecture” back in the early
1990′s to describe DCE and CORBA-based application architectures. And if you
look at all the documentation about DCE, CORBA, and other RPC-based systems,
the name given to the object/procedure that serves RPCs is “service”. Even
database systems are service-oriented.
With all these varied views of what SOA means, i think the term has lost its usefulness.
This has also been recently blogged about by Rich Turner.