Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 2. kie-eap-distribution-bpms-layer package

The Integration Pack contains a .zip file which contains JBoss EAP modules for Red Hat JBoss BPM (JBoss BPM) and Red Hat JBoss BRMS (JBoss BRMS) integration.

Apply the package

The package will be applied by the SwitchYard/BRMS Integration Pack installer jar.

Contents of the JBoss BPMS layer integration package

The following table shows the relationships between different components in BxMS and JBoss Fuse. Expansion of the table entries can be found below the table.

Table 2.1. Relationship Between JBoss BPM/JBoss BRMS components and Fuse components

Camel SwitchYard
JBoss BPM
JBos BPM can invoke Camel
JBoss BPM can orchestrate SwitchYard services
Camel can invoke JBoss BPM SwitchYard can invoke JBoss BPM
Rules
Rules does not use Camel.
Rules does not use SwitchYard
Camel can use Rules SwitchYard can call Rules

JBoss BPM can invoke Camel

JBoss BPM has a Camel WorkItemHandler. See JBoss BPM Suite Development Guide for more information.

Camel can invoke JBoss BPM

There are three interfaces that can be used to invoke JBoss BPM from Camel:

JBoss BPM can orchestrate SwitchYard services

The JBoss BPM process definition must be embedded in the SwitchYard application, not on a remote JBoss BPM server.
JBoss BPM will not execute on a remote JBoss BPM server. It will only run via jars provided in the integration pack.
See the provided quickstart EAP_HOME/quickstarts/fuse-integration/switchyard-bpm-service for an example.

SwitchYard can invoke JBoss BPM

The following scenarios have are supported:
  • Invoke/signal local JBoss BPM process defined as a SwitchYard service.
  • Invoke/signal remote JBoss BPM process defined as a SwitchYard service.
  • Invoke/signal a remote JBoss BPM process and insert/execute rules locally as a SwitchYard service using rules definitions resolved as KIE artifacts using Maven.
JBoss BPM process can be embedded in the SwitchYard application or it can be on a JBoss BPMS server on a different JVM.
If the process is embedded, the engine used must be the .jar file that is installed as part of the Integration pack. If the JBoss BPM engine is running locally in the JBoss Fuse JVM, then it can only be used to orchestrate SwitchYard services and can not be used to perform other tasks.
If the JBoss BPM process is not embedded, the invocation must occur via the SwitchYard JBoss BPM component. In this case, the user does not need to manage the interaction.

Camel can use Rules

You can insert facts and execute rules locally in JBoss Fuse using a Camel route. Rule definitions are resolved as KIE artifacts using Maven.
Camel can invoke Business Rules when the Karaf container is used. This functionality is not available on JBoss Fuse on JBoss EAP. It will be made available in a future release.
For use by JBoss BPM, the Rules must be in a Maven repository where the Kie scanner can find them. The Maven repository can be on the same machine or a remote machine. If the repository is on a remote machine, the rules will be added to the local repository during rules resolution process.
The Rules engine can be placed on the same machine as Camel is installed on, or on a remote JBoss BRMS execution server. For the local engine, binaries are provided by the Integration Pack. For the remote engine, the rules can be invoked using a mechanism such as the REST interface provided by JBoss BRMS.

SwitchYard can use Rules

You can insert facts and execute rules locally as a SwitchYard service using rules definitions deployed with the application. This makes the rules static and will require a rebuild to change them.
Alternatively you can insert facts and execute rules locally as a SwitchYard service using rules definitions resolved as KIE artifacts using Maven.. This repository can be either on the same machine as JBoss Fuse, or on a remote machine. Rules stored in a Maven repository can be updated at runtime using Kie scanning.
The Rules engine is installed on the JBoss Fuse server as part of the integration pack installation.