Introduction
The business efficiencies organizations are striving for in a Service-oriented architecture come with a distinct level of complexity. Simplistically, SOA allows an entity to distribute work among a battery of applications across departmental, organizational and geographic boundaries. Furthermore, the entity might not ultimately own or manage a service that contributes to the work being performed. This dispersion of applications in context of a widely distributed IT environment leads to a very complex system to test. SOA demands a different quality process than the traditional application-centric process that permeates our industry today. There needs to be a sea change. To ensure secure, reliable, compliant service-oriented architectures the quality process must morph towards the process we observe in real-time or embedded systems.
A SOA Is Like an Embedded System
Achieving quality in a Service-Oriented Architecture will be very similar to achieving quality in the embedded systems world. Like embedded systems, SOAs are complex in many ways.
- The abstraction of logic into the message layer introduces a level of system testing that was formally coupled with the application.
- The application layer is a “software unit” that performs a service that contributes to the system.
- Both the system and service must work together in an environment interacting with other systems and services.
- Both system and service might or might not be owned or controlled by the single entity.
- It is difficult to stage a testing environment due to the distributed nature of these components.
- The lack of a GUI and the technical nature of this architecture shifts the onus of quality from the traditional QA role to development.
From an architectural point of view, as organizations continue to leverage services, a software error will be exponentially more difficult to pin-point. In a Web Services example, a software error could be the result of a single Web Service in a composite application or the result of multiple service invocation calls to a variety of applications or mainframes both inside and outside of the entities firewall.
As organizations continue to leverage SOA to enable mission critical business processes, architects must employ a visible, end-to-end quality process that ensures accuracy and consistency. The complexity of the architecture requires a gated quality process that exercises the individual components to ensure that they meet the contracts defined by the business. To achieve this, there will be distinct impacts to the traditional “quality” roles and responsibilities.
-1-