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:
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 [2][3].
In order to describe each of the layers of the SOA RA we need the following for each layer:
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:
Typical Interactions among the Layers of 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: