The following describes our opinion and philosophy of what SOA really means to progressive software engineering and systems development...
SOA is really Service-Orientation
Fundamentally, a Service-Oriented Architecture (SOA) can be described as a system architecture which adheres to the principles of some service-based architectural design rules. The design rules should cover service governance, functional re-usability and technology independence through standards-based communication protocols to support the evolution and maintenance of the service-based system. An SOA typically crosses enterprise boundaries and/or system domains. For example, it may be To illustrate some of the core concepts of service-orientation a relationship model was constructed as a Service-Oriented Model (SOM) by the W3C Services Architecture Group [1]. They describe the model as:
Service-Oriented Model (W3C)
"a model to explicate the relationships between an agent and the services is provides and requests".
The fundamental elements for service composition are service, service goal state, task and role. A service is an abstract resource that represents a capability of performing tasks, whilst it’s goal state is driven from the requirements of a some person or organization’s point of view. Furthermore, a service may take a particular role in performing a task. The model also serves to exhibit the relationships between service elements, and links these with service choreography. |
Figure 1. The W3C Service-Oriented Topics and Relationships Model |
Whilst the SOM model serves as a useful reference map in considering the principles of SOAs, there is clearly a gap between principle and implementation.
SOA is not a technical challenge
SOA is not really a technical challenge; it is promoting a common standards-based way of designing re-usable functions and integrating systems across partners that is the challenge. Technical (IT) considerations however, are important in the instantiation of an SOA strategy (e.g. deciding whether to leverage Web Service standards in the architecture under design).
References
[1] World-Wide Web (W3C), Services Architecture Group, 2009.




