Red Hat Process Automation Manager と Red Hat Fuse の統合

Red Hat Process Automation Manager 7.6

ガイド

概要

本書では、Apache Karaf および Red Hat JBoss Enterprise Application Platform で、Red Hat Fuse を Red Hat Process Automation Manager 7.6 と統合する方法を説明します。

前書き

システム管理者は、Apache Karaf および Red Hat JBoss Enterprise Application Platform で、Red Hat Process Automation Manager と Red Hat Fuse を統合して、統合サービス間の通信を容易化します。

注記

Red Hat Process Automation Manager は、Spring Boot 上の Red Hat Fuse との統合をサポートしません。

第1章 Red Hat Fuse および Red Hat Process Automation Manager

Red Hat Fuse は、アジャイル統合ソリューションの一部である、分散型のクラウドネイティブ統合プラットフォームです。チームはこの分散アプローチを使用することで、必要に応じて統合サービスをデプロイできます。Fuse には、統合エキスパート、アプリケーション開発者、ビジネスユーザーなど、さまざまなユーザーに柔軟にサービスを提供でき、各自がデプロイメント、アーキテクチャー、ツールを選択できます。API 中心のコンテナーベースのアーキテクチャーは、各サービスを切り離して、個別に作成、展開、デプロイできるようにします。その結果、企業全体のコラボレーションをサポートする統合ソリューションが実現できます。

Red Hat Process Automation Manager は、ビジネスの自動化アプリケーションとマイクロサービスを作成する Red Hat プラットフォームです。これにより、企業のビジネスユーザーと IT ユーザーが、ビジネスプロセスおよびポリシーを文書化、シミュレート、管理、自動化、およびモニターできます。Red Hat Process Automation Manager は、ビジネスユーザーおよび IT ユーザーがより効果的に協力できるように設計されているため、ビジネスアプリケーションへの変更は簡単にすばやく行うことができます。

Apache Karaf コンテナープラットフォームまたは Red Hat JBoss Enterprise Application Platform に Red Hat Fuse をインストールしてから、このコンテナーに Red Hat Process Automation Manager をインストールし、設定してください。

重要

Red Hat Process Automation Manager 7.6 がサポートする Red Hat Fuse のバージョンについては、「 Red Hat Process Automation Manager 7 でサポートされる構成 」を参照してください。

1.1. Red Hat Process Automation Manager の Karaf 機能

以下の表では、Red Hat Process Automation Manager の Karaf 機能を紹介します。

機能説明

drools-module

Drools のコアとコンパイラーが含まれており、プレーン DRL から KIE ベースと KIE セッションを作成するのに使用します。また、実行可能モデルの実装も含まれています。永続性、プロセス、またはデシジョンテーブルを必要とせずに Drools を使用してルール評価ができます。

drools-template

Drools テンプレートが含まれています。

drools-jpa

プロセスまたはデシジョンテーブルを必要とせずに、Drools を使用して永続性 (Persistence) とトランザクション (Transaction) でルール評価を行います。drools-jpa 機能には drools-module が含まれますが、droolsjbpm-hibernate 機能をインストールするか、互換性のあるハイバネートバンドルがインストールされているようにしてください。

drools-decisiontable

デシジョンテーブルと合わせて、Drools を使用します。

jbpm

jBPM を使用します。jbpm 機能には、drools-module および drools-jpa が含まれます。droolsjbpm-hibernate 機能をインストールするか、互換性のあるハイバネートバンドルがインストールされているようにしてください。

jbpm および jbpm-human-task

ヒューマンタスクで jBPM を使用します。

jbpm-workitems-camel

jbpm-workitems-camel コンポーネントを提供します。

コアエンジン JAR および kie-ci

Red Hat Process Automation Manager と KIE スキャナー (kie-ci) を使用して、Maven リポジトリーから kJAR をダウンロードします。

kie-camel

kie-camel コンポーネント、Fuse と Red Hat Process Automation Manager を統合する Apache Camel エンドポイントを提供します。

kie-spring

kie-spring コンポーネントをインストールし、XML タグを使用して KIE セッションのリスナーを設定可能にします。

第2章 Apache Karaf 上に Fuse を統合した Red Hat Process Automation Manager のデシジョンエンジンおよびプロセスエンジン

Apache Karaf は、スタンドアロンで、オープンソースのランタイム環境です。OSGi Alliance の OSGi 標準に基づいています。Karaf は、高度なクラ出力ディングサポートを備えた OSGi バンドルを通じてモジュール化のサポートを提供します。Karaf コンテナーでは、依存関係の複数のバージョンを並行してデプロイできます。ホットコードスワップを使用すると、コンテナーをシャットダウンせずにモジュールをアップグレードまたは置き換えることができます。

Red Hat Process Automation Manager は、Karaf 機能を使用して、Karaf で FUSE と統合されます。これらの機能を使用して、Karaf 上の FUSE 向けに Red Hat Process Automation Manager の個別のコンポーネントをインストールできます。

機能ファイルは XML ファイルで、このファイルを使用して特定の機能向けにどの DOSGI バンドルをインストールするかを指定します。以下の機能 XML ファイルにより、Karaf 上の Fuse と Red Hat Process Automation Manager の統合を容易にします。

  • rhba-features-<FUSE-VERSION>-features.xml

    このファイルは、Karaf にインストールした Fuse に含まれており、<FUSE-VERSION> は Fuse のバージョンに置き換えます。このファイルは、system/org/jboss/fuse/features/rhba-features ディレクトリーの Karaf システムリポジトリーに保存されます。このファイルには、Red Hat Process Automation Manager 機能をインストールする前提条件が記載されています。

  • kie-karaf-features-7.30.0.Final-redhat-00003-features-fuse.xml

    このファイルは Red Hat Process Automation Manager に含まれており、Red Hat Process Automation Manager 機能を提供します。この機能により、Red Hat Fuse にデプロイできる OSGi 機能が決まります。OSGi ユーザーは、このファイルから機能をインストールして、Red Hat Process Automation Manager を Fuse にインストールし、アプリケーションで使用できます。この機能ファイルは、Red Hat Process Automation Manager で配布されるオンラインおよびオフラインの Maven リポジトリーに配置されています。このファイルのグループ ID、アーティファクト ID、およびバージョン(GAV)識別子は、org.kie:kie-karaf-features:7.30.0.Final-redhat-00003 です。

2.1. Karaf 上の古くなった Red Hat Process Automation Manager 機能 XML ファイルのアンインストール

お使いの環境に、以前の Red Hat Process Automation Manager 機能の XML ファイル (例: kie-karaf-features-<VERSION>-features.xml) が含まれている場合は、このファイルと関連するファイルをすべて削除してから、最新の機能の XML ファイルをインストールする必要があります。

前提条件

  • 以前の機能 XML ファイルが Apache Karaf の環境に存在する。

手順

  1. 以下のコマンドを実行して、使用環境に以前の Red Hat Process Automation Manager 機能の XML ファイルが含まれているかどうかを確認します。

    $ JBossFuse:karaf@root> feature:repo-list
    $ JBossFuse:karaf@root> feature:list
  2. 以下のコマンドを入力します。<FUSE_HOME> は Fuse のインストールディレクトリーに置き換えて、Red Hat Fuse コンソールを起動します。

    $ ./<FUSE_HOME>/bin/fuse
  3. 以下のコマンドを入力します。<FEATURE_NAME> は、アンインストールする機能の名前に置き換えて、以前の機能 XML ファイルを使用するアプリケーションまたは機能をアンインストールします。

    JBossFuse:karaf@root> features:uninstall <FEATURE_NAME>

    以下の例では、機能の削除方法を紹介します。

    JBossFuse:karaf@root> features:uninstall drools-module
    JBossFuse:karaf@root> features:uninstall jbpm
    JBossFuse:karaf@root> features:uninstall kie-ci
  4. Karaf の home で、droolskie、または jbpm を使用するバンドルへの参照を検索します。以下の例では、grep を使用してこれらのコンポーネントを検索する方法を示しています。

    karaf@root> list -t 0 -s | grep drools
    karaf@root> list -t 0 -s | grep kie
    karaf@root> list -t 0 -s | grep jbpm

    この例は、上記のコマンドからの出力です。

    250 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.canonical-model
    251 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.cdi
    252 │ Active   │  80 │ 7.19.0.201902201522          │ org.drools.compiler
  5. 以下のコマンドを入力します。BUNDLE_ID は、検索で返されたバンドル ID に置き換えて、以前の手順で検出されたバンドルを削除します。

    karaf@root> osgi:uninstall BUNDLE_ID
  6. 次のコマンドを入力して、古くなった drools-karaf-features の URL を削除します。

    karaf@root> features:removeurl
     mvn:org.kie/kie-karaf-features/VERSION.Final-redhat-VERSION/xml/features
  7. Fuse を再起動します。

2.2. XML ファイルを使用した Karaf への Red Hat Process Automation Manager 機能のインストール

Karaf に Red Hat Process Automation Manager 機能をインストールして、Red Hat Process Automation Manager プロセス向けに動的ランタイム環境を作成します。

前提条件

手順

Red Hat Process Automation Manager の機能をインストールするには、以下のコマンドを入力します。

$ JBossFuse:karaf@root> feature:install <FEATURE_NAME>
注記

org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor の代わりに org.kie.spring.KModuleBeanFactoryPostProcessor を使用して、OSGi 環境の KIE 要素を後処理します。

kie-spring 機能をインストールする前に drools-module 機能をインストールしないようにしてください。先にインストールしてしまうと、drools-compiler バンドルにより、kie-spring がエクスポートしたパッケージが検出されなくなります。

これらの機能を間違った順番でインストールした場合は、osgi:refresh drools-compiler_bundle_ID を実行して、drools-compiler が強制的に Import-Package メタデータをリビルドするようにします。

このコマンドでは、<FEATURE_NAME> は、「Red Hat Process Automation Manager の Karaf 機能」 に記載の機能の 1 つに置き換えます。

2.3. maven を使用した Karaf への Red Hat Process Automation Manager 機能のインストール

必要に応じて、Apache Karaf 上にある Fuse で Red Hat Process Automation Manager をインストールして、統合サービスをデプロイします。

前提条件

手順

  1. Maven リポジトリーを設定するには、テキストエディターで FUSE_HOME/etc/org.ops4j.pax.url.mvn.cfg ファイルを開きます。
  2. https://maven.repository.redhat.com/ga/ リポジトリーが org.ops4j.pax.url.mvn.repositories 変数に存在することを確認します。必要に応じて、追加してください。

    注記

    エントリーは、コンマ、スペース、およびバックスラッシュ (, \) で区切ります。バックスラッシュを追加すると、強制的に改行されます。

  3. Fuse を起動するには以下のコマンドを入力します。<FUSE_HOME> は Fuse のインストールディレクトリーに置き換えます。

    $ ./FUSE_HOME/bin/fuse
  4. インストールの前提条件が含まれる機能ファイルに参照を追加するには、以下のコマンドを入力します。<FUSE_VERSION は、インストールする Fuse のバージョンに置き換えます。

    $ feature:repo-add mvn:org.jboss.fuse.features/rhba-features/<FUSE-VERSION>/xml/features
  5. 以下のコマンドを入力して、Red Hat Process Automation Manager 機能の XML ファイルへの参照を追加します。

    $ JBossFuse:karaf@root> features:addurl mvn:org.kie/kie-karaf-features/VERSION/xml/features-fuse

    現在の drools-karaf-features バージョンをチェックするには、Red Hat Process Automation Manager 7 Supported Configurations ページを参照してください。

  6. 以下のコマンドを入力して、Red Hat Process Automation Manager 機能の XML ファイルで提供される機能をインストールします。このコマンドでは、<FEATURE_NAME> は、「Red Hat Process Automation Manager の Karaf 機能」 に記載の機能の 1 つに置き換えます。

    JBossFuse:karaf@root> features:install <FEATURE_NAME>
  7. 次のコマンドを入力して、インストールを確認します。

    $ JBossFuse:karaf@root>feature:list

    機能が正常にインストールされると、ステータスは started になります。

第3章 Red Hat Process Automation Manager を使用した Red Hat JBoss EAP 7.2 内の Fuse のインストール

Red Hat Process Automation Manager を使用して Red Hat JBoss EAP に Fuse をインストールし、必要に応じて統合サービスをデプロイします。

前提条件

手順

  1. Red Hat Process Automation Manager をインストールした Red Hat JBoss Enterprise Application Platform 7.2 コンテナーに Red Hat Fuse をインストールします。インストールの説明は、『 Install Fuse 7.3 on JBoss EAP 7.2 』を参照してください。
  2. テキストエディターで、Fuse のホームディレクトリーにある pom.xml を開きます。
  3. 以下の例のように pom.xml ファイルを編集して、kie-camel コンポーネントの依存関係を含めて、統合プロジェクトを作成します。

    <dependency>
      	<groupId>org.apache.camel</groupId>
      	<artifactId>camel-core</artifactId>
      	<scope>provided</scope>
    </dependency>
    <dependency>
      	<groupId>org.kie</groupId>
      	<artifactId>kie-api</artifactId>
    </dependency>
    <dependency>
      	<groupId>org.kie</groupId>
      	<artifactId>kie-ci</artifactId>
      	<exclusions>
        	<exclusion>
          	<groupId>aopalliance</groupId>
          	<artifactId>aopalliance</artifactId>
        	</exclusion>
      	</exclusions>
    </dependency>
    <dependency>
      	<groupId>org.kie.server</groupId>
      	<artifactId>kie-server-api</artifactId>
      	<exclusions>
        	<exclusion>
          	<groupId>org.jboss.spec.javax.xml.bind</groupId>
          	<artifactId>jboss-jaxb-api_2.3_spec</artifactId>
        	</exclusion>
        	<exclusion>
          	<groupId>javax.activation</groupId>
          	<artifactId>activation</artifactId>
        	</exclusion>
      	</exclusions>
    </dependency>
    <dependency>
      	<groupId>org.jbpm</groupId>
      	<artifactId>jbpm-bpmn2</artifactId>
    	</dependency>
    	<dependency>
      	<groupId>org.kie</groupId>
      	<artifactId>kie-camel</artifactId>
      	<exclusions>
        	<exclusion>
          	<groupId>org.apache.cxf</groupId>
          	<artifactId>cxf-core</artifactId>
        	</exclusion>
        	<exclusion>
          	<groupId>org.apache.camel</groupId>
          	<artifactId>camel-cxf</artifactId>
        	</exclusion>
        	<exclusion>
          	<groupId>org.apache.camel</groupId>
          	<artifactId>camel-cxf-transport</artifactId>
        	</exclusion>
        	<exclusion>
          	<groupId>com.thoughtworks.xstream</groupId>
          	<artifactId>xstream</artifactId>
        	</exclusion>
      	</exclusions>
    </dependency>
    <dependency>
       	<groupId>org.kie.server</groupId>
       	<artifactId>kie-server-client</artifactId>
       	<exclusions>
         	<exclusion>
           	<groupId>org.jboss.spec.javax.ws.rs</groupId>
           	<artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
         	</exclusion>
       	</exclusions>
    </dependency>

第4章 kie-camel コンポーネント

kie-camel コンポーネントは、Fuse と Red Hat Process Automation Manager が統合された Red Hat Fuse が提供する Apache Camel エンドポイントです。このコンポーネントを使用して、ルートや実行にプルできる Maven グループ ID、アーティファクト ID、バージョン (GAV) の識別子を使用して、Red Hat Process Automation Manager モジュールを指定できます。また、ファクトとしてメッセージボディーの一部を指定できます。埋め込みエンジンや Process Server で、kie-camel コンポーネントを使用できます。

埋め込みエンジン

このシナリオでは、KIE エンジンが Fuse 統合プロジェクトと同じコンテナーで実行されます。エンジン間の通信には、KIE コマンドを使用できます。Camel プロデューサーを作成するには、以下の URI を使用します。

kie-local:kie-session-name?action=execute

たとえば、次のコマンドを入力して、Spring の Camel ルートを初期化します。

<from uri="direct:runCommand" />
  	<to uri="kie-local:kie-session1?action=execute"/>

プロセスサーバー

このシナリオでは、kie-camel コンポーネントは Process Server REST API を使用して Process Server に接続します。こうすることでユーザーは、Process Server API を使用して Process Server と通信できます。プロデューサーを作成するには、以下の URI を使用します。

kie:http://username:password@kie-server-url`

たとえば、次のコマンドを入力して、Spring の Camel ルートを初期化します。

<from uri="direct:runCommand" />
  	<to uri="kie:http://user:psswd@localhost:8080/kie-server-services/services/rest/server"/>

メッセージには以下のヘッダーが含まれます。

表4.1 メッセージのヘッダーと説明

ヘッダー説明

CamelKieClient

Process Server クライアント (必須)

CamelKieOperation

Process Server クライアント (必須)

CamelKieParameterName

クライアントメソッドパラメーターの値 (任意)

CamelKieBodyParam

メッセージボディーを保存するメソッドパラメーター (任意)

付録A バージョン情報

本書の最終更新日: 2021 年 11 月 15 日(月)