com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_link3' is unknown.

Architecture

This page describes the WSO2 Business Process Server architecture in the following sections:

Overview

Built on top of the Carbon Core like most WSO2 server products, WSO2 Business Process Server embeds the Apache ODE runtime for BPEL execution. BPS server also includes the Human Tasks Engine which supports WS-Human Tasks specification 1.1. When BPEL processes or Human Tasks are deployed on Business Process Server, it will publish SOAP services to the external world. These services are published through the Axis2 Web services integration layer. 

Messaging Architecture

The following diagram illustrates the BPS architecture from a messaging perspective (the components of the pipes are not in a specific order).

 

Let us look at each of the components depicted in above diagram. 

Application

This refers to an external application that sends a request to the Business Process Server. This request could be for a BPEL process published Axis2 service or Human Task published Axis2 service. 

Transport

This block represents the transport layer available within the Business Process Server. This layer is from Axis2 web service engine's supported transports. Hence you can invoke web services using Axis2 supported transports such as HTTP, HTTPS, JMS ect. 

QoS

When a message is received though the transport layer of Axis2, it goes though the Axis2 engine. At this layer, various quality of service requirements such as WS-Addressing and WS-Security will be processed using Axis2 modules such as rampart and addressing. After processing the message for QoS, it is forwarded to either the Human Task Engine or the BPEL Engine depending on the intended endpoint of the message.

Human Task Engine

At the human task engine, the received message is executed against the human tasks definition and configured user store. If the execution is successful, an instance of the task will be created and relevant task instance data is persisted to the database. 

Integration Layer

This layer sits between the ODE BPEL runtime and Axis2 for processing and forwarding received messages to ODE runtime. In addition to exposing services via the Axis2 engine, handling the deployment and un-deployment of BPEL processes, this layer provides multi-tenancy support.

BPEL Runtime

This represents the Apache ODE Run-time embedded within the BPS. When a message is received though the Axis2 integration layer, it is processed against the complied BPEL process definition and the process instance state is persisted to the database if the process is being executed in persistent mode.

Data Access Objects

This layer consist of Apache OpenJPA based Java persistence layer for interacting with the database.

Database

This is the RDBMS system used for persisting BPEL Process definition/instance data and Human tasks instance data.

Component Architecture

This section describes the component-based architecture of WSO2 BPS.

The following is a brief description of each of the components depicted in the above diagram.

Carbon Core 

Carbon Core is the base server product using which all other wso2 carbon products are built by addition additional components.

BPEL Components

BPEL UI

BPEL UI is the UI layer of BPS for BPEL processes. It consist of Process View, Process Up loader, Process Instance view and Graphical process view.

Management API

Management API consists of a set of secured Web services that can be used to manage deployed BPEL processes and instances. The main APIs provided are the ProcessManagementAPI and InstanceManagementAPI, which are secured SOAP Web services.

Process Services

Process services are Axis2 Web services exposed when a BPEL process is deployed. The BPEL process can be initiated by invoking these Web services. 

BPEL Deployer

BPEL deployer is a file system based process deployer. When a BPEL process package is saved to the "bpel" directory in BPS, it will be validated and deployed on the server.

Integration Layer 

Integration layer is the layer that combines Axis2 Web services engine and ODE run-time to provide, expose and invoke Web services

BPEL Complier

This is part of Apache ODE. It validates and complies BPEL process definition into a complied BPEL process (.cbp file).

ODE Runtime

As the name implies, ODE runtime executes the BPEL process.

DAOs.

These are data access objects implemented using Apache OpenJPA and Hibernate. WSO2 BPS uses the Apache OpenJPA based persistence layer.

JACOB

This is also part of Apache ODE, which provides concurrency and persistence facilities to implement BPEL constructs.

Human Task Components

Human Task UI

Human Task UI provides facilities to view and upload task packages, view task instances and perform various human task operations on the tasks.

Task Management API

Task management API provides secured SOAP Web services to manage tasks and task instances. The most important API provided is the Human Task Client API, which is defined in the WS Human Tasks specification. Human Task UI is built on top of these management APIs.

Human Task Services

When a task package is deployed, Axis2 Web services are published accordingly using the WSDLs included in the task package. By invoking these services, notifications can be created for instances of tasks.

Human Task Engine

The task engine does the processing of human task run-time definition against the incoming messages to create task/notification instances. It performs validations against the user store for permissions. Also, it performs the task client API actions against the task/notification instances. Additionally, it has a scheduling capability to handle escalations and task cleanups. 

Human Task Deployer

Task deployer is a file system based deployer which deploy, un-deploy task packages when added to or removed from the designated "humantasks" directory.

DAOs

DAOs are Apache OpenJPA based persistence layer used to interact with the persistence db.

com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.