Is SOA part of enterprise architecture, or is it something separate? Is it really new, or is it just a rehash of old ideas? Does it require a radically different approach, or are the tried and trusted methods still valid?
Part of the problem is that SOA devotees and traditional enterprise architects tend to form different communities, and do not talk to each other as much as they should. David Linthicum, the well-known SOA expert and blogger, speaking at the recent Open Group conference in Austin, Texas, referred to them as different tribes, which do not understand each other. This is an interesting and perceptive comment. But misunderstandings can also occur within families particularly between different generations and this may be a better metaphor for the differences between architects that do and dont use SOA.
Traditional enterprise architects see themselves as professionals. They take responsibility for delivering solutions that meet the clients needs and that also meet accepted professional standards. Because of this, they are wary of things that are new and untried. They follow existing best practice, because they know it works, in the same way as a surgeon follows standard procedure when performing an operation. It might be interesting to experiment with new techniques, but this would not be fair to the client.
So, does this mean that the SOA devotees are unprofessional and irresponsible? Not at all! SOA has generally been introduced carefully, starting with small pilot projects, or with architectures that use the principle of loosely-coupled services within a traditional infrastructure and omit the more advanced SOA features such as service discovery. More mature examples of the SOA style have followed from the success of these early projects.
SOA devotees are not different in kind from traditional enterprise architects. They have the same professional approach to delivering solutions. They just believe in a new technical approach.
SOA Is Different
How different is this new approach? What distinguishes SOA from traditional approaches to enterprise architecture?
The principle of service orientation can apply throughout the enterprise architecture, but is usually applied to the organization of the software that supports the enterprise's business operations. With SOA, this software is organised as a set of loosely-coupled software services. The services are supported by an infrastructure that, together with the services, enables information to flow freely within the enterprise and between the enterprise and external organizations.
The software services are used by the enterprises business operations. This most frequently involves a human-computer interface, often implemented as a Web interface using portals, but it may also involve other interfaces such as machine interfaces for process control.
Note that the business operations themselves may be organized on the service-oriented principle. Indeed, there are many people who believe that the greatest benefits of SOA are obtained when it is applied to the business architecture. But this is not essential to a service-oriented software architecture.
The infrastructure provides the execution environment for the software services. This includes the basic operating system and networking, and also includes specific support for software services, such as message passing and service discovery. It is used via human-computer interfaces by technical operations staff who are responsible for all aspects of managing the enterprises information technology, including its availability, performance, and security.