With the advent of SOA came the promise of agility and flexibility. An organization that has embarked on the journey of SOA would be successful in delivering the promise of agility and flexibility only when its business processes and associated flows are realized in the architecture in a fashion that allow rapid changes in the implementation of these business processes. In the past, business process flows were typically embedded in software components and user interfaces. The SOA Reference Architecture (SOA RA) recognizes the promise of SOA and the challenges in the past in the ability to change the business processes as market changes and therefore introduces a specific layer for business processes and flows. The layer is called the Business Process Layer and allows externalization of the business process flow in a separate layer in the architecture and thus has a better chance to rapidly change as the market condition changes.
The Business Process Layer covers process representation and composition, and provides building blocks for aggregating loosely-coupled services as a sequencing process aligned with business goals. Data flow and control flow are used to enable interactions between services and business processes. The interaction may exist within an enterprise or across multiple enterprises.
This layer includes information exchange flow between participants (individual users and business entities), resources, and processes in a variety of forms to achieve the business goal. Most of the exchanged information may also include non-structured and non-transactional messages. The business logic is used to form service flow as parallel tasks or sequential tasks based on business rules, policies, and other business requirements.
Business processes represent the backbone of the flow of a business. The dynamic side of business architecture is realized through business processes. These business processes used to be implemented through a combination of static applications or, at best, a hardwired workflow. With service-orientation, a process can be realized by service compositions (which may be interim as an orchestration or a choreography) and the ability to insert “human intervention” and support long-running transactions.
In particular, compositions of services exposed in the Services Layer are defined in this layer: atomic services are composed into a set of composite services using a service composition engine. Note that composition can be implemented as a choreography of services or an orchestration of the underlying service elements.
Services combined or composed into flows or, for example, choreographies of services, bundled into a flow, work together to establish an application. These applications support specific use-cases and business processes. Typically, a visual flow composition tool will be used to design the application flow. Services Orchestration shows how a Business Process “P” can be implemented using Services A, B, C, and D from the Services Layer. Process P contains the logic for the sequence in which the services need to be invoked and executed, as well as having responsibility for many of the non-functional aspects such as state management. The services that are aggregated into a business process can be sourced from individual services or composite services.
Services Orchestration
The Business Process Layer leverages the Services Layer to compose and choreograph services and to coordinate business processes to fulfill customer requirements. Visual flow composition tools such as BPMN-based tools can be used for design of application flow.
In more detail, the Business Process Layer performs three-dimensional process-level handling: top-down, bottom-up, and horizontal. From the top-down direction, this layer provides facilities to decompose business requirements into tasks comprising activity flows, each being realized by existing business processes, services, and service components. From the bottom-up direction, the layer provides facilities to compose existing business processes, services, and service components into new business processes. From the horizontal direction, the layer provides services-oriented collaboration control between business processes, services, and service components.
The decomposition of a business process first decomposes it into smaller tasks; then each task is mapped into coarse-grain service (i.e., candidate services) that will be realized by actual web services in the Services Layer. In other words, the layer provides the ability to decompose a business process into coarse-grain candidate services that fulfill the business functions.
Building process blocks on-demand with reduced cost allows the supporting technology changes from being high volume/transactional to sophisticated but much smaller footprint applications. In fact, a business process captures the activities needed to accomplish a certain business goal. In today’s business solutions, a business process has played a central role in bridging the gap between business and IT.
From the top-down approach, a business process can be defined by business people based on customers’ requirements. In order to optimize the business process for better IT implementation, a business process should be componentized as re-usable services that can be modeled, analyzed, and optimized based on business requirements such as Quality of Service (QoS) (historical data described in the Quality of Service Layer), flow preference, price, time of delivery, and customer preferences. From the bottom-up approach, after a set of assets is created, they could be leveraged in a meaningful business context to satisfy customer requirements. The flexibility and extensibility of services composition guided by business requirements and composition rules enable business process on-demand for addressing different types of customer pinpoints by re-using services assets.
From an interaction perspective, the Business Process Layer communicates with the Consumer Layer (aka presentation layer) to communicate inputs and results with role players (e.g., end user, decision-makers, system administrator, etc.) through web portal or Business-to-Business (B2B) programs. Most of the control flow messages and data flow messages of the business process may be routed and transformed through the Integration Layer. The contents of the messages could be defined by the Information Layer. The Key Performance Indicators (KPIs) for each task or process could be defined in the Quality of Service Layer. The aggregation of services could be guided by the Governance Layer.
All the services should be represented and described by the Services Layer; and Service Components are represented by the Service Component Layer. From a technical perspective, dynamic and automatic business process composition poses critical challenges to researchers and practitioners in the field of web services. First, business processes are driven by business requirements, which typically tend to be informal, subjective, and difficult to quantify. Therefore, it is critical to properly formulate the descriptive and subjective requirements into quantifiable, objective, and machine-readable formats in order to enable automatic business process composition.
Second, existing web services-based business process description languages do not adequately accommodate detailed requirement specification, which fact makes it difficult to create optimal business process compositions.
Third, present web services specifications generally lack a facility to define comprehensive relationships among business entities, business services, and operations. These relationships may be important to optimize business process composition. For example, suppose enterprise E1 needs to compose a business process including service S. Enterprises E2 and E3 both provide similar service S.
However, there is a partnership between E1 and E2 that leads to a discount on services, and there is no partnership relationship between E1 and E3. If price is a requirement for party E1, this partnership between E1 and E2 needs to be taken into consideration in order to form the most appropriate business process. Fourth, nowadays more and more web services are published to the Internet on the daily basis. How to clearly specify search requirements to discover the most appropriate web services candidates remains a challenge. Fifth, a typical business process generally requires multiple web services to collaborate in order to serve business requirements.
Therefore, each Service Component not only needs to satisfy individual requirements, but also needs to coexist with other Service Components in order to best fit the overall composed business process. In other words, the entire business process needs to be optimized prior to execution.
In summary, the Business Process Layer in the SOA RA plays a central coordinating role in connecting business-level requirements and IT-level solution components through collaboration with the Integration Layer, Quality of Service Layer, as well as the Information Layer, the Services Layer, and the Service Component Layer. Addressing those challenging issues are being covered in this Business Process Layer to further differentiate the proposed SOA RA with other conceptual reference models from other vendors.
A typical calling sequence is to invoke a composite service in this layer, which implements a business process. This layer will then be responsible for orchestrating or choreographing the set of required underlying atomic or composite services that are combined to constitute the business process. It will typically maintain state for the flow, provide or collaborate with the Quality of Service Layer for monitoring the process flow, applying policies by working with the Governance Layer. Note that the invocation of the services may occur directly, or preferably, through the Integration Layer, thus enabling a separation of concerns between requester and provider to be managed by the capabilities and Architecture Building Blocks (ABBs) of the Integration Layer. For example, a single or federated set of Enterprise Service Bus(es) (ESBs) may be used to realize the invocation.
This layer will rely on the infrastructure provided by the Operational Systems Layer, in which, for example, the BPEL engine implementation will physically reside.
This layer supports and manages business processes and enables the SOA to choreograph or orchestrate services to realize business processes. Business Process Management (BPM) is to be found to start in this layer. There are multiple categories of capabilities that the Business Process Layer needs to support. These categories of capabilities are:
This layer features the following capabilities:
The ABBs responsible for providing these sets of capabilities in the Business Process Layer are:
Capability Category |
ABB Name |
Supported Capabilities |
Process Definition |
Business Process |
1 |
Event Handling |
Integration Layer: Event Listener |
2 |
|
Integration Layer: Event Producer |
2 |
Process Runtime Enablement |
Process Container/Process Engine |
3, 4, 5 |
|
Process Manager |
3, 4, 5 |
|
Process Factory |
4, 5 |
|
Process Flow Manager |
4, 5 |
|
Process Controller |
4, 5 |
|
Dynamic Assembler |
6, 7 |
|
Workflow Manager/Human Task Manager |
8 |
Process Information Management |
Context Manager |
9 |
|
Process State Manager |
10 |
|
Integration Layer: Data Transformer |
11 |
|
Process Repository |
12 |
Decision Management |
Governance Layer: Business Rules Manager |
13, 14 |
Process Integration |
Process Service Adapter |
15 |
|
Scheduler |
16 |
Security & Policy Compliance |
Quality of Service Layer: Policy Enforcer |
17 |
|
Quality of Service Layer: Access Controller |
18 |
Process Monitoring and Management |
Quality of Service Layer: Business Activity Monitor |
19 |
ABB to Capability Mapping for the Business Process Layer
This section describes each of the ABBs in the Business Process Layer in terms of their responsibilities.
This ABB represents a process that a business performs. This ABB is one of the core fundamental ABBs in the SOA RA. Business process is one of the fundamental constructs of an SOA solution and analysis and design based on the service-oriented paradigm.
See Event Listener ABB in the Integration Layer.
See Event Producer ABB in the Integration Layer.
This ABB provides an environment to manage the execution and flow of business processes, and to manage the interaction of humans with business processes. It is also is responsible for managing the instances of running processes and their context.
This ABB is responsible for deploying processes in the process container.
This ABB is responsible for creating instances of deployed processes in the process container.
The ABB is responsible for managing process templates and process instances. Process templates describe the business process model. At runtime, this ABB creates process instances from process templates using the Process Factory ABB. A process instance is the representation of a single running business process. The ABB’s job is to manage one or more process instances concurrently. It can support multiple interfaces that interact with business processes; for example, an SCA interface for interacting with other service components, and a generic process API for interacting with J2EE clients. It works cooperatively with the Workflow Manager or Human Task Manager ABB. The ABB has a core responsibility to split and manage processes and its sub-processes together and enabling services. This becomes an important part of an SOA’s ability to support business processes of varying granularity. For example, a Process Claim business process might have underlying business processes that support the Process Claim business process. This ABB in this case then manages all the interactions and the decomposition relationships for that individual’s sub-processes and enabling services.
The ABB acts as a controller that supports all the interactions between the invocation of a business process and the building blocks supporting that invocation. It is the core of a process container and responsible for executing the process activities.
This ABB is responsible for invoking the appropriate end-point that needs to serve the request based on the context. Context provides the extra information that this ABB needs to make the intelligent decisions on which end-point is to be invoked.
This ABB is responsible for the coordination of requests that require human intervention. It is also responsible for the management of the state of human tasks and work items. This ABB supports the ability of the Business Process Layer to integrate human intervention into business processes. In practice this might mean using the Service Adapter and Integration Adapter to integrate with the Consumer Layer. This ABB is often required in process error handling situations (e.g., the involvement of a customer service representative when the customer enters a wrong account number in a self-service banking scenario).
The ABB supports the ability of the layer to retain and manage state (not status) during a business process. It manages the process state within each business process instance. This is an important capability, for example, for orchestrating a series of state transitions which might involve multiple business processes.
The ABB manages the context of various instances of the business process.
See Data Transformer ABB in the Integration Layer.
The ABB acts a repository store for all business processes. This ABB is internal to the layer and interfaces with the Data Repository ABB in the Information Layer and Asset Repository ABB in the Governance Layer. It is the Process Repository ABB where other ABBs such as the Process Controller ABB will turn to obtain process information such as state information.
This ABB integrates the Business Process Layer with other SOA RA layers, in particular the Services, Integration, and Consumer Layers. It acts as the mechanism to expose business processes as services.
This ABB supports the ability to schedule the invocation of business processes and process activities at different times.
See Business Rules Manager ABB in the Governance Layer.
See Policy Enforcer ABB in the Quality of Service Layer.
See Access Controller ABB in the Quality of Service Layer.
See Business Activity Monitor ABB in the Quality of Service Layer.
The Business Process Layer is a critical component of the SOA RA. ABBs in the Business Process Layer can be thought of as being logically partitioned into categories which support:
ABBs in the Business Process Layer illustrates the ABBs partitioned into key categories:
ABBs in the Business Process Layer
Each business process is composed of data flows and process/control flows. Data flows pertain to how information is represented and conveyed in relation to the process data flow. The process and control flow pertains to the sequence of activities or services that are being invoked to enact a business process.
Key Relationships among ABBs in the Business Process Layer show the inter-relationships and a non-normative sequence of interaction. The final, prescriptive sequence of interaction will be defined by the underlying solution architecture and the standards that are invoking the support of other SOA RA layers.
Key Relationships among ABBs in the Business Process Layer
The Business Process Layer relies on cross-cutting layers of the architecture to fulfill its responsibilities.
It relies on the Governance Layer for the following capabilities:
It relies on the Quality of Service Layer for the following capabilities:
It relies on the Information Layer for the following capabilities:
It relies on the Integration Layer for the following capabilities:
Key Interactions of the Business Process Layer with Cross-Cutting Layers
Therefore, Business Process Layer interfaces with the following ABBs of cross-cutting layers of the architecture to provide its capabilities:
The Consumer Layer can invoke or trigger events that will execute business processes in the Business Process Layer. Business processes in the Business Process Layer are composed of services in the Services Layer either using orchestration or choreography. Essentially an executable business process is composed of either human task or systematic steps. The systematic steps can be enabled by services in the Services Layer.
Key Interactions of the Business Process Layer with Horizontal Layers
The Business Process Layer incorporates the ability to either statically or dynamically configure the orchestration or choreography of services in its composition.
To summarize, the Business Process Layer supports capabilities required for enabling SOA such as process composition and decomposition, orchestration or choreography of services, collaboration between processes, information and services using a set of policies and business rules that aid in its execution of the process flow.