Chapter 1. Business Process Model and Notation

Business Process Model and Notation (BPMN) is a standard notation for business process modeling. It aspires to link the gap between business analysts and programmers by providing a workflow language that can be clearly understood by both.

1.1. Components

Red Hat JBoss BPM Suite integrates multiple components to support business processes throughout their entire life cycle and to provide process management features and tools for business analysts, developers, and business users. The product can be deployed on various JEE-compliant servers; the recommended option is Red Hat JBoss Enterprise Application Platform 6.

Red Hat JBoss BPM Suite consists of the following main components:

  • Execution Engine: Provides the runtime environment for Processes and Business Rules. It encompasses a workflow library that can be embedded into a user web application. Runtime manager is the root object and contains the following components:

    • Runtime Engine: Implements the core behavior of the computer language and it is provided by the runtime manager.

      • Process Engine: The environment for business process model execution.
      • Task Service: Handles human task lifecycles.
    • Rule Engine: Can be used with the process engine or on its own.

      • Rules Evaluation: Executes business rules on the provided set of facts.
      • Complex Event Processing: Applies business rules on incoming stream of events.
  • Business Central: A web-based application that accommodates tooling for asset creation, management, and monitoring by providing an integrated web environment.

    • Asset Repository: The central sharing location (Knowledge Store) for business assets, processes, rules, forms, etc. Users access this repository through the Project Explorer view of Business Central via AuthoringProject Authoring. By default, the product initializes a local GIT repository as its Asset Repository. However, other repositories may be added or removed as necessary.
    • Artifact Repository: A Maven based repository for storage of project jar artifacts.
    • Execution Server: Provides an execution environment for business process instances and tasks.
    • Business Activity Monitor: Provides customizable view on business performance.

Red Hat JBoss BRMS comes with its own Business Central application that is a subset of the Business Central application in Red Hat JBoss BPM Suite.

1.2. Project

A project is a container for asset packages (business processes, rules, work definitions, decision tables, fact models, data models, and DSLs) that lives in the Knowledge Repository. It is this container that defines the properties of the KIE Base and KIE Session that are applied to its content. In the GUI, you can edit these entities in the Project Editor.

As a project is a Maven project, it contains the Project Object Model file (pom.xml) with information on how to build the output artifact. It also contains the Module Descriptor file, kmodule.xml, that contains the KIE Base and KIE Session configuration for the assets in the project.

1.3. Creating Project

It is possible to create a project either in the Project Authoring perspective of Business Central or using the REST API calls.

Creating Project in Business Central

Note that only users with the admin role in Business Central can create projects.

Procedure: Using Business Central to Create Project

  1. In Business Central, go to AuthoringProject Authoring.
  2. In the Project Explorer, select the organizational unit and the repository in which you want to create the project.
  3. On the perspective menu, click New ItemProject.

    The New Project dialog window opens.

  4. Define the Project General Settings and Group artifact version details of the new project. These parameters are stored in the pom.xml Maven configuration file.

    See the detailed description of the parameters:

    • Project Name: name of the project (for example MortgageProject).
    • Project Description: description of the project, which may be useful for the project documentation purposes.
    • Group ID: group ID of the project (for example org.mycompany.commons).
    • Artifact ID: artifact ID unique in the group (for example myframework). Avoid using a space or any other special character that might lead to an invalid name.
    • Version: version of the project (for example 2.1.1).
  5. Click Finish.

    The project screen view is updated with the new project details as defined in the pom.xml file. You can switch between project descriptor files and edit their content by clicking the Project Settings: Project General Settings button at the top of the project screen view.

⁠⁠Creating Project Using REST API

Note that only users with the rest-all or rest-project role can create projects.

To create a project in the repository, issue the POST REST API call. Details of the project are defined by the corresponding JSON entity.

Input parameter of the call is an Entity instance. The call returns a CreateProjectRequest instance.

Example 1.1. Creating Project Using Curl Utility

Example JSON entity containing details of a project to be created:

  "name"        : "MortgageProject",
  "description" :  null,
  "groupId"     : "org.mycompany.commons",
  "version"     : "2.1.1"

Execute the following command:

curl -X POST 'localhost:8080/business-central/rest/repositories/REPOSITORY_NAME/projects/' -u USERNAME:PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name":"MortgageProject","description":null,"groupId":"org.mycompany.commons","version":"2.1.1"}'

For further information, refer to chapter Knowledge Store REST API, section Repository Calls of the Red Hat JBoss BPM Suite Development Guide.

1.4. Adding Dependencies

To add dependencies to your project, do the following:

  1. Open the Project Editor for the given project:

    1. In the Project Explorer view of the Project Authoring perspective, open the project directory.
    2. Click Open Project Editor to open the project view.
  2. In the Project Screen view, select in the Project Settings drop-down box the Dependencies item.
  3. On the updated Project Screen, click the Add button to add a maven dependency or click the Add from repository button to add a dependency from the Knowledge Store (Artifact repository):

    1. When adding a maven dependency, a user has to define the Group ID, Artifact ID and the Version ID in the Dependency dialogue window.
    2. When adding a dependency from the Knowledge Store, select the dependency in the displayed dialog box: the dependency will be added to the dependency table.
  4. To apply the various changes, the dependencies must be saved.

Additionally, you can use the Package white list when working with dependencies. When you add a repository, you can click the gear icon and select Add all or Add none, which results in including all or none of the packages from the added dependency.


If working with modified artifacts, do not re-upload modified non-snapshot artifacts as Maven will not know these artifacts have been updated, and it will not work if it is deployed in this manner.

1.5. Creating Package

To be able to import resources and reference them, create your resources, including processes, in a package of a particular project. To create a package:

  1. In Project Explorer, locate the project in which you want to create a package and open the Repository View. Navigate to the src/main/resources/ directory.
  2. Click New ItemPackage.
  3. In the Create New Package dialog window, enter a name of the package. The location of the package in the repository is already correctly set in the text box below.

To add resources into the newly created package, make sure to select the package when creating the resource.

For more information about creating processes, see Chapter 9, Process Creation, Import, and Export.