Eric D. Schabell: Red Hat JBoss BRMS - taking a closer look at BRMS 5 vs BRMS 6

Thursday, May 22, 2014

Red Hat JBoss BRMS - taking a closer look at BRMS 5 vs BRMS 6

This year the JBoss Business Rules Management System (BRMS) product has undergone many changes as it moved from the version 5 series into the future with version 6.

We thought it might be interesting to take a short tour through the various elements you were familiar with in JBoss BRMS 5 after logging into the Govnor versus what you will find when logging into the JBoss BRMS 6 Business Central dashboard.

This article will have some of the more common features and components passing review, but may not contain the specific feature you are looking for. In such case, please put your request into the comments below.

The initial feature or component will title the section below in bold letters, followed by a section outlining what the differences are and what the matching feature or component is in JBoss BRMS 5 vs JBoss BRMS 6.

Repository mechanism

JBoss BRMS 5 is backed by a JCR data source.

JBoss BRMS 6 is backed by a GIT based repository, which is very much in line with how the mainstream enterprises are storing and working to deploy their projects. For more information see the product documentation (Installation Guide, Chapter 3).

Importing packages and the global area

JBoss BRMS 5 Guvnor provides a mechanism to export your projects into a zip file that you could then import into another instance.

Another option is to use the JBoss Developer Studio (JBDS) tooling that provided a Guvnor connection to the JCR data source that allows round tripping of your project assets into Guvnor.

JBoss BRMS 6 uses the concept of cloning (GIT) your project assets into the Business Central component in the Administration perspective. The option to use JBDS is also available as in version 5 but by using the git repository.

Globals are named objects that are made visible to the rule engine, but in a way that is fundamentally different from the one for facts: changes in the object backing a global do not trigger reevaluation of rules. These are still available in version 6. For more information see the product documentation (Development Guide, Chapter 5).

Dependency management on packages and facts

JBoss BRMS 5 needs dependencies for packages and facts to be put on the rule projects containers classpath, usually resulting in adding dependencies to the JBoss EAP server. For facts you could add a model JAR file to the Guvnor that was packaged with your project for deployment.

JBoss BRMS 6 uses Maven as the deployment and dependency management infrastructure allowing enterprises to leverage existing strategies for managing their projects dependencies. Business Central project will have a POM file for managing dependencies. A data model (fact) dependencies can be managed in this same maven practice.

Building and deploying packages

JBoss BRMS 6 is very strongly tied to the maven build mechanism, using a 'Build&Deploy' button in the Project Authoring a maven artifact is generated (a JAR file, often referred to as a knowledge archive KJAR). This artifact is then deployed by default into the local maven repository where it is available for any development project that has access to that local maven repository.

Managing process instances

In JBoss BRMS 5 you had process management capabilities along with rules and events. This is not the case with JBoss BRMS 6 which has rules and events, while JBoss BPM Suite product is used for rules, events, and processes.

This feature is part of the JBoss BPM Suite and not available in JBoss BRMS 6.

Task lists

In JBoss BRMS 5 you had process management capabilities along with rules and events. This is not the case with JBoss BRMS 6 which has rules and events, while JBoss BPM Suite product is used for rules, events, and processes.

This feature is part of the JBoss BPM Suite and not available in JBoss BRMS 6.

Registering service handlers

The need to design and add service handlers (aka task nodes in BPMN2) is a concept around domain specific nodes. In JBoss BRMS 5 you had process management capabilities along with rules and events. This is not the case with JBoss BRMS 6 which has rules and events, while JBoss BPM Suite product is used for rules, events, and processes. If you need or desire to create your own domain specific tasks and registering these with the BPM engine, then you will need to use the JBoss BPM Suite product.
Rule tasks only...

JBoss BRMS 6 does have a process designer to develop rule flows, which are processes that contain only rule tasks.

Adding user task forms

In JBoss BRMS 5 you had process management capabilities along with rules and events. This is not the case with JBoss BRMS 6 which has rules and events, while JBoss BPM Suite product is used for rules, events, and processes.

This feature is part of the JBoss BPM Suite and not available in JBoss BRMS 6.

REST interface

If you are instead using the REST API in BRMS 5, note that this has changed as there has been a certain evolution to the JBoss BRMS REST interface. For more details see JBoss BRMS 6 documentation (User Guide, Chapter 9).

Monitoring and BAM

In JBoss BRMS 5 you had process monitoring and BAM capabilities that could be added in along with rules and events. This is not the case with JBoss BRMS 6 which has rules and events, while JBoss BPM Suite product is used for rules, events, and processes.

This feature is part of the JBoss BPM Suite and not available in JBoss BRMS 6.

Persistence management

Persistence management as gone through a bit of an evolution from JBoss BRMS 5 to JBoss BRMS 6, but it still remains grounded in the same principles of JPA and JTA. For more details on configuration and usage with the new Knowledge Is Everything (KIE) API, see product documentation (Developer Guide, Chapter 5).

Integrating rules - knowledge agent - JBDS integration

Rules integration is facilitated in JBoss BRMS 5 by the Knowledge Base (KB) and Knowledge Session (KS). This has been moved to a KIE Base and KIE Session in JBoss BRMS 6. There is backwards compatibility for users that wish to remain on the deprecated KB/KS facilitated by adding in the knowledge-api dependency from the product to your projects. This will be removed at some future time so plans should be made to migrate to the newer KIE API.

The knowledge agent has been replaced with a KIE Scanner, for an example of how to use this see the Cool Store demo where a web application has been created that uses the KIE Scanner to watch for new releases of a project from Business Center by scanning the maven repository for the latest builds. You can find an example of how to setup the KIE Scanner in the github project.

As mentioned above, JBDS integration continues to facilitate round trip development. The major difference is only in the backends for the products having been JCR for JBoss BRMS 5 and now GIT for JBoss BRMS 6.

Accessing editors / modelers

With the JBoss BRMS 5 product hosting rules, events, and process capabilities, there were many editors and modelers available. These will not all map to JBoss BRMS 6 as the full arsenal of BPM is only available in the JBoss BPM Suite product as mentioned above.

JBoss BRMS 6 continues to offer the following editors and modelers embedded in a single dashboard experience:

  • Administration perspective
    • organizational units editor
    • repository editor
    • asset explorer
  • Project Authoring perspective
    • rule flow process modeler
    • decision table modeler
    • DRL editor
    • data modeler
    • guided rule wizards
    • test designers
    • categories editor
    • artifact repository


Categories

Categories remain available in JBoss BRMS 6 and have their very own dashboard editor.
Categories editor

Versions

Asset versioning
Looking specifically at rule asset versions within the product you will find the various editors and modelers have a Metadata tab at the bottom that provide insights and ability to select older versions of an asset.