A Service-Oriented Architecture (SOA) is defined by the set of functional and Non-Functional Requirements (NFRs) that constrain it. Functional requirements are business capabilities imperative for business operations including business processes, the business and IT services, the components, and underlying systems that implement those services. NFRs for SOA include: security, availability, reliability, manageability, scalability, latency, governance and integration capabilities, etc.
The underlying requirements which determine the capabilities that the SOA supports are determined by:
- A set of service requirements which includes business (aka functional) and NFRs on a service.
- Service requirements result in the documented capability that a service needs to deliver or is expected to deliver.
- The provider view of a service requirement is the business and technical capability that a given service needs to deliver given the context of all of its consumers.
- The consumer view of a service requirement is the business and technical capability that the service is expected to deliver in the context of that consumer alone.
The fulfillment of any service requirement may be achieved through the capabilities of a combination of one or more layers in the SOA Reference Architecture (SOA RA).
Services themselves have a contract element and a functional element. The service contract or service interface defines what the service does for consumers, while the functional element implements what a service is obligated to provide based on the service contract or service interface. The service contract is integrated with the underlying functional element through a component which provides a binding. This model addresses services exposing capabilities implemented through legacy assets, new assets, services composed from other services, or infrastructure services.
The identification of service requirements and the mapping of those requirements to each of the layers of the SOA RA is a key aspect in developing an SOA for an enterprise .
In order to describe each of the layers of the SOA RA we need the following for each layer:
- Introduction: Provide an overview of the layer itself.
- Requirements: Provide an understanding of the capabilities supported by the layer and what they are (the answer to the “what does the layer do” question).
- Logical Aspect: Provide an overview of the structural elements of the layer, applying the meta-model.
- Interaction: Provide typical interactions among the Architecture Building Blocks (ABBs) within the layer and across layers.
In general, we follow a theme where each layer has a part which supports a set of capabilities/ABBs which support the interaction of the layer with other elements in the SOA RA; a part which supports the actual capabilities that the layer must satisfy; and a part which supports the orchestration and management of the other ABBs to support the layer’s dynamic, runtime existence. Thus, in the following chapters that describe the layers in greater detail, we:
- Provide an overview and description of the layer and motivation behind the layer
- Provide the key capabilities supported by the layer
- Provide a structural overview of the layer which includes detailed description of ABBs enabling the responsibilities of the layer
- Describe the interactions within the layer and across other layers in the SOA RA
describes an interaction between the Consumer Layer and the Business Process Layer using the Integration Layer.
Typical Interactions among the Layers of the SOA RA
A typical interaction flow among the layers of the SOA RA is described below:
- Service consumers request services using the Integration Layer.
- The Integration Layer invokes the business process in the Business Process Layer which is using one or more services.
- It invokes the Services Layer.
- The Services Layer binds and invokes Service Components in the Service Component Layer.
- Service Components in the Service Component Layer invoke Solution Components from the Operational Systems Layer to carry out the service request.