Chapter 2. Red Hat JBoss BPM Suite 6.3
2.1. Overview
Red Hat JBoss BPM Suite (BPMS) 6.3 is an open source BPM suite that combines business process management and business rules management, enabling business and IT users to create, manage, validate, and deploy business processes and rules. BPMS 6.3 provides advanced business process management capabilities compliant with the widely adopted BPMN 2.0 standard. The primary goal of BPMN is to provide a notation that is readily understandable by all business users, from the business analysts that create the initial drafts of the processes, to the technical developers responsible for implementing the technology that will perform those processes, and finally, to the business people who will manage and monitor those processes. Thus, BPMN creates a standardized bridge for the gap between the business process design and process implementation.
BPMS 6.3 comes with a choice of modeling tools; it includes a business-user-friendly, web-based authoring environment as well as an Eclipse plugin for developers, to enable all project stakeholders to collaborate effectively and build sophisticated process and decision automation solutions. The inclusion of Red Hat JBoss Business Rules Management System (BRMS) adds seamless integration with business rules and complex event processing functions to ease the development and facilitate the maintenance of processes in the face of rapidly changing requirements. Business activity monitoring (BAM) and process dashboards provide invaluable information to help manage processes while process simulation helps refine business processes by enabling their analysis and assessment of the dynamic behavior of processes over time.
Red Hat JBoss BPM Suite also includes Business Resource Planner. Business Resource Planner is a lightweight, embeddable planning engine that optimizes planning problems.
Red Hat JBoss BRMS and JBoss BPM Suite use a centralized repository where all resources are stored. This ensures consistency, transparency, and the ability to audit across the business. Business users can modify business logic and business processes without requiring assistance from IT personnel (reference official Red Hat BPM Suite documentation for more information).
BPMS 6.3 also includes Realtime Decision Server and Intelligent Process Server, both which serve as standalone, out-of-the-box components that can be used to instantiate and execute rules in provisioned containers through interfaces available for REST, JMS or a Java client side application. These self-contained environments encapsulate a compiled rule package and deployed rule instance, thus allowing for a looser coupling of rules and the execution code of the application. Created as a web deployable WAR file, these servers can be deployed on any web container.
Both decision servers ship with default extensions for JBoss BRMS & Business Resource Planner, with Intelligent Process Server also adding extensions for the BPM Suite. These servers, based on the KIE Execution Server, have low footprints, with minimal memory consumption, and therefore, can be deployed easily on a cloud instance. Each instance can open and instantiate multiple KIE Containers which allows execution of multiple rule services in parallel. Containers generated via execution servers can be managed from within Business Central via Rule Deployment. In future BPM Suite releases, the currently-utilized Business Central execution server functionality is slated to be replaced with the newer KIE execution server variations. Currently, when KIE execution server derivatives are employed, Business Central only allows for management of the runtime servers; no runtime aspects, such as Process Definition, Process Instances, Tasks, etc., can be used. Such functionality is currently slated for inclusion in version 7. Even so, should you wish to take advantage of the KIE Servers' advantages of decoupling rules execution from authorship and maintenance, more information on the deployment, management, and interacting with the Realtime Decision & Intelligent Process Servers can be found in the Red Hat JBoss BRMS 6.3 User Guide.
2.2. Installation Options
2.2.1. Server Platform
Red Hat JBoss BPM Suite offers means for installation on various containers (reference official Red Hat BPM Suite Installation Guide for further information):
-
jboss-bpmsuite-6.MINOR_VERSION-installer.jar: jar utility providing guided installations of deployments on
Red Hat JBoss Enterprise Application Platform (EAP 6). -
jboss-bpmsuite-6.MINOR_VERSION-deployable-eap6.x.zip: adapted for deployment on
Red Hat JBoss Enterprise Application Platform (EAP 6). -
jboss-bpmsuite-6.MINOR_VERSION-deployable-was8.zip: adapted for deployment on
WebSphere 8.5. -
jboss-bpmsuite-6.MINOR_VERSION-deployable-wls12c.zip: adapted for deployment on
Oracle Weblogic 12c. -
jboss-bpmsuite-6.MINOR_VERSION-deployable-generic.zip: deployable version with additional libraries adapted for deployment on
Red Hat JBoss Enterprise Web Server (EWS)and other supported containers.
The minimum supported configuration of Red Hat JBoss EAP for Red Hat JBoss BPM Suite 6.3 installation is a base installation of EAP 6.4.0 patched to version 6.4.7.
A separate download is provided for other supported containers. Dependent on the target container, security policy and possibly other small changes to configuration files are likely required and need to be incorporated based on the container instructions.
2.2.2. Clustering
For Red Hat JBoss BPM Suite, clustering may refer to various components and aspect of the environment. The following may be clustered:
- Artifact repository: virtual-file-system (VFS) repository that holds the business assets so that all cluster nodes use the same repository.
- Execution server and web applications: the runtime server that resides in the container (in this case, Red Hat JBoss EAP) along with BRMS and BPM Suite web applications so that nodes share the same runtime data.
- Back-end database: database with the state data, such as process instances, KIE sessions, history log, etc., for fail-over purposes
For further instructions on clustering the BPMS environment, including details on using the installer script to generate a clustered setup as detailed in Chapter 4, refer to the official Red Hat BPM Suite Installation Guide.
2.2.3. Red Hat JBoss Developer Studio
Red Hat JBoss Developer Studio (JBDS) is the JBoss integrated development environment (IDE) based on Eclipse and available from the Red Hat customer support portal. Red Hat JBoss Developer Studio provides plugins with tools and interfaces for Red Hat JBoss BRMS and Red Hat JBoss BPM Suite. These plugins are based on the community version of these products, so the BRMS plugin is called Drools plugin and the BPM Suite plugin is called the jBPM plugin.
Refer to the Red Hat JBoss Developer Studio documentation for installation and setup instructions. For instructions on installing the plugins, setting the runtime library, configuring the BPMS Server and importing projects from a Git repository, refer to the relevant section of the Red Hat BPM Suite Installation Guide.
2.3. Administration and Configuration
2.3.1. Business Central
Business Central is a web-based application for asset creation, management, and monitoring of business assets, providing an integrated environment with the respective tools, such as rule and process authoring tools, business asset management tools for work with artifact repository, runtime data management tools, resource editors, BAM (business activity monitoring) tools, task management tools, and BRMS tools. It is the main user interface for interacting with Red Hat JBoss BPM Suite.
Like most other web applications, Business Central configures standard declarative security in business-central.war/WEB-INF/web.xml. A number of security roles are defined to grant various levels of access to users:
- admin: administers BPMS system and has full access rights to make any necessary changes, including the ability to add and remove users from the system.
- developer: implements code required for processes to work and has access to everything except administration tasks.
- analyst: creates and designs processes and forms and instantiates the processes. This role is the similar to a developer, without access to asset repository and deployments.
- user: claims, performs, and invokes other actions (such as escalation, rejection, etc.) on assigned tasks, but has no access to authoring functions.
- manager: monitors the system and its statistics; only has access to the dashboard.
- rest-all: May use all REST URLs
- rest-project: May use REST URLs relating to project management, including repository and organizational unit management
- rest-deployment: May use REST URLs relating to deployment management
- rest-process: May use REST URLs relating to process management
- rest-process-read-only: May use REST URLs that return info about processes
- rest-task: May use REST URLs relating to task management
- rest-task-read-only: May use REST URLs that return info about tasks
- rest-query: May use the query REST URLs
- rest-client: May use the REST URL relating to the java remote client
Use the standard EAP add-user.sh script to create application users in the ApplicationRealm and give them one or more of the above security roles. For further details, refer to the official Red Hat documentation.
2.3.2. Asset Repository
Business rules, process definition files and other assets and resources created in Business Central are stored in the asset repository called the Knowledge Store. The Knowledge Store is a centralized repository for business knowledge and uses a Git repository to store its data. Business Central provides a web front-end that allows users to view and update the stored content.
To create a new repository or clone an existing one in Business Central, visit the administration section under the authoring menu and select an option from the Repositories menu. Refer to the official Red Hat documentation for further details.
2.3.3. Data Persistence
The BPMS platform stores the runtime data of the processes in data stores. This includes various items:
- Session state: session ID, date of last modification, the session data that business rules would need for evaluation, state of timer jobs.
- Process instance state: process instance ID, process ID, date of last modification, date of last read access, process instance start date, runtime data (execution status: the node being executed, variable values), event types.
- Work item runtime state: work item ID, creation date, name, process instance ID, state
Based on the persisted data, it is possible to restore the state of execution of all running process instances in case of failure, or to temporarily remove running instances from memory and restore them later.
With BPM Suite deployed on EAP, persistence is through Java Persistence API (JPA). To set the data source, database type and other properties, configure the standard JPA persistence file at business-central.war/WEB-INF/classes/META-INF/persistence.xml. Refer to the official Red Hat documentation for further details.
2.3.4. Audit Logging
The audit logging mechanism allows the system to store information about the execution of a process instance. A special event listener listens on the process engine, capture any relevant events, and logs them to the designated destination. Depending on the execution model used in a project, the log can potentially be stored separately from the runtime data and in a separately configured data source. This configuration is outside the scope of this reference architecture and is not discussed in any detail. For further information about the audit logger, refer to the official Red Hat documentation.
2.3.5. Task Execution Configuration
The execution environment may be configured to run a number of business rules when a new task is created or an existing task is completed. To take advantage of this behavior, place two files called default-add-task.drl and default-complete-task.drl in the root classpath of the server environment. Any business rules within these two files will be evaluated and potentially executed when a task is respectively created and completed.
The task execution engine accesses a mail session as required for escalation, notification or other similar functions. To enable the email functionality, configured a mail session with its “jndi-name” set to "java:/mail/bpmsMailSession". Configure a corresponding socket binding for the outgoing port.
Refer to the official Red Hat documentation for further details.
2.4. Design and Development
2.4.1. Data Model
Both rules and business processes require a data model to represent the data. Plain Old Java Objects (POJO) are used in BPMS to represent custom data types.
Business Central provides the Data modeler, a custom graphical editor, for defining data objects. The created data types are JavaBeans with annotations added to adapt to the graphical editor.
2.4.2. Process Designer
The Process Designer is a tool for modeling business processes within BPM Suite. The output of the modeler is a BPMN 2.0 process definition file, which is normally saved in the Knowledge Repository under a package of a project. The definition then serves as input for JBoss BPM Suite Process Engine, which creates a process instance based on the definition.
The editor is delivered in two variants:
- JBDS Process Designer: Thick-client version of the Process Designer integrated in the Red Hat JBDS plugin
- Web Process Designer: Thin-client version of the Process Designer integrated in BPM Central
The Process Designer implementation is different for the JBDS Process Designer and the Web Process Designer, but both adhere to the notation specified in BPMN 2.0 and generate similar compliant process files. For further details, consult the official Red Hat documentation.
2.4.3. Forms
A form is a layout definition for a page (defined as HTML) that is displayed as a dialog window to the user, either on process instantiation or task completion; the form is then respectively referred to, as a process form or a task form. It serves for acquiring data for a process or a task, from a human user: a process can accept its process variables as input and a task takes DataInputSet variables with assignment defined and returns DataOutputSet variables that are typically mapped back to process variables. For further details, consult the official Red Hat documentation.
JBoss BPM Suite provides a web-based custom editor for defining forms.
2.5. Process Simulation
Process simulation allows users to simulate a business process based on the simulation parameters and get a statistical analysis of the process models over time, in form of graphs. This helps to optimize pre and post execution of a process, minimizing the risk of change in business processes, performance forecast, and promote improvements in performance, quality and resource utilization of a process.
The simulation process runs in the simulation engine extension, which relies on the possible execution paths rather than process data. On simulation, the engine generates events for every simulated activity, which are stored in the simulation repository.
The Path Finder helps identify the various possible paths that a process execution can take. In the web process designer, this tool is available from the toolbar.
Running a simulation requires that simulation properties be correctly set up for each individual element in the process model. This includes setting a probability for each sequence flow leaving a diverging gateway. For an XOR gateway, the sum of all the probability values should be 100%.
Run validation on the process and correct any issues before attempting process simulation. Viewing all issues in the web process designer helps find various simulation-related issues as well.
To run process simulation, specify the number of process instances that are to be started. The interval between process instances can be specified in units as small as millisecond and as large as days. This, coupled with realistic properties set up on each process element, such as the availability of user task actors and minimum and maximum processing time for various automatic and manual tasks can help provide a useful analysis of future process performance.
Once process simulation successfully executes, the results are presented in various charts and tables. Use the legend provided in the graphs to filter out items such as minimum or maximum values.
For further details, refer to the official Red Hat documentation.
2.6. Business Activity Monitoring
Red Hat JBoss Dashboard Builder is a web-based dashboard application that provides Business Activity Monitoring (BAM) support in the form of visualization tools for monitored metrics (Key Performance Indicators or KPIs) in real time. It comes integrated in the Business Central environment under the Dashboards menu.
The included dashboard requests information from the BPMS execution engine and provides real-time information on its runtime data; however, custom dashboards may also be built over other data resources.
The Dashboard Builder is accessed directly from the Dashboards menu of the Business Central application:
- Process & Task Dashboards: displays a pre-defined dashboard based on runtime data from the execution server. An entity may be selected in the menu on the left and the widgets on the right will display the data for that entity.
- Business Dashboards: display the environment where custom dashboards are created.
The Dashboard Builder can establish connections to external data sources including databases. These connections are then used for creating data providers that obtain data from the data sources. The Dashboard Builder is connected to the local BPMS engine by default and queries it for the required data for its jBPM Dashboard indicators (widgets with visualizations of the data available on the pages of the jBPM Dashboard workspace).
If operating over a database, the data provider uses a SQL query to obtain the data and if operating over a CVS file, the data provider automatically obtains all the data from the file. So it is the data providers that keep the data you work with. For more information, refer to the official Red Hat documentation.
2.7. Rest API
Representational State Transfer (REST) is a style of software architecture of distributed systems (applications). It allows for a highly abstract client-server communication; clients initiate requests to servers to a particular URL with potentially required parameters and servers process the requests and return appropriate responses based on the requested URL. The requests and responses are built around the transfer of representations of resources. A resource can be any coherent and meaningful concept that may be addressed (such as a repository, a process, a rule, etc.).
Refer to the official Red Hat documentation for further details on the REST API and its usage.
2.7.1. Knowledge Store REST API
REST API calls to the Knowledge Store enable management of the content and manipulation of the static data in the repositories.
The calls are asynchronous and continue their execution after a response is returned to the caller. A job ID is returned by every call to allow the subsequent of request the job status and verify whether the job completed successfully. These calls provide required parameters as JSON entities.
2.7.2. Deployment REST API
JBoss BPM Suite modules can be deployed or undeployed using either the UI or REST API calls. Similar to calls to the Knowledge Store, deployment calls are also asynchronous and quickly return with a job ID that can later be used to query the status of the job.
2.7.3. Runtime REST API
Runtime REST API are calls to the execution servers for process execution, task execution and business rule engine. These calls are synchronous and return the requested data as Java Architecture for XML Binding (JAXB) objects.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.