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 Authoring
Project 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.
-
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 Authoring
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
-
In Business Central, go to Authoring
Project Authoring. - In the Project Explorer, select the organizational unit and the repository in which you want to create the project.
On the perspective menu, click New Item
Project. The New Project dialog window opens.
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
).
-
Project Name: name of the project (for example
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:
Open the Project Editor for the given project:
- In the Project Explorer view of the Project Authoring perspective, open the project directory.
- Click Open Project Editor to open the project view.
- In the Project Screen view, select in the Project Settings drop-down box the Dependencies item.
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):
-
When adding a maven dependency, a user has to define the
Group ID
,Artifact ID
and theVersion ID
in the Dependency dialogue window. - 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.
-
When adding a maven dependency, a user has to define the
- 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:
-
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. -
Click New Item
Package. - 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.