第3章 Business Central を使用しないプロジェクトデプロイメント
Business Central インターフェイスにプロジェクトを開発およびデプロイする代わりに、独立した Maven プロジェクトまたは独自の Java アプリケーションを使用して、Red Hat Process Automation Manager プロジェクトを開発し、KIE コンテナー (デプロイメントユニット) のプロジェクトを、設定した KIE Server にデプロイします。KIE Server REST API を使用して、ビルドおよびデプロイしたサービスおよびプロジェクトバージョンを含む KIE コンテナーを起動、停止、または削除できます。このような柔軟性により、引き続き既存のアプリケーションのワークフローを使用して、Red Hat Process Automation Manager 機能を使用するビジネスアセットを開発できます。
Business Central のプロジェクトは、プロジェクトをビルドしてデプロイする際に自動的にパッケージ化されます。Business Central 以外のプロジェクト (独立した Maven プロジェクト、Java アプリケーションのプロジェクトなど) をビルドしてデプロイする場合は、追加した kmodule.xml ファイルに KIE モジュール記述子設定を追加するか、Java アプリケーションに直接指定する必要があります。
3.1. KIE モジュール記述子ファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
KIE モジュールは、追加メタデータファイル META-INF/kmodule.xml を持つ Maven プロジェクトまたはモジュールです。Red Hat Process Automation Manager プロジェクトを適切にパッケージングしてデプロイするには kmodule.xml ファイルが必要になります。この kmodule.xml ファイルは、プロジェクトのアセットの KIE ベースおよび KIE セッション設定を定義する KIE モジュール記述子ファイルです。KIE ベースには、Red Hat Process Automation Manager のルール、プロセス、その他のビジネスアセットがすべて含まれるリポジトリーですが、ランタイムデータは含まれません。KIE セッションは、ランタイムデータを保存および実行し、kmodule.xml ファイルに KIE セッションを定義した場合は KIE ベース、または KIE コンテナーから直接作成されます。
Business Central 以外のプロジェクト (独立した Maven プロジェクト、Java アプリケーションのプロジェクトなど) を作成する場合は、追加した kmodule.xml ファイルに KIE モジュール記述子設定を指定するか、Java アプリケーションに直接指定することでプロジェクトをビルドしてデプロイします。
手順
プロジェクトの
~/resources/META-INFディレクトリーに、最低でも以下の内容を含むkmodule.xmlメタデータを作成します。<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"> </kmodule>
<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://www.drools.org/xsd/kmodule"> </kmodule>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトの
resourcesパスで見つかったすべてのファイルを含むデフォルトの KIE ベースを 1 つ作成するには、この空のkmodule.xmlファイルで十分です。デフォルトの KIE ベースには、ビルド時にアプリケーションに KIE コンテナーを作成する際に発生するデフォルト KIE セッションも 1 つ含まれます。以下は、より高度な
kmodule.xmlファイルの例です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、KIE ベースが 2 つ定義されます。ルールアセットの特定の
パッケージは両方 KIE ベースに含まれます。このようにパッケージを指定した場合は、指定したパッケージを反映するディレクトリー構造にルールファイルを整理する必要があります。KIE ベースKBase1から 2 つの KIE セッションをインスタンス化し、KBase2から KIE セッションを 1 つインスタンス化します。KBase2の KIE セッションはステートレスな KIE セッションですが、これは 1 つ前の KIE セッションで呼び出されたデータ (1 つ前のセッションの状態) が、セッションの呼び出しと呼び出しの間で破棄されることを示しています。また、その KIE セッションには、ファイル (またはコンソール) ロガー、WorkItemHandler、サポートされる 3 種類のリスナー (ruleRuntimeEventListener、agendaEventListener、およびprocessEventListener) も指定されます。<configuration>要素は、kmodule.xmlファイルをさらにカスタマイズするのに使用できる任意のプロパティーを定義します。プロジェクトに
kmodule.xmlファイルを手動で追加する代わりに、Java アプリケーションのKieModuleModelインスタンスを使用するか、プログラムでkmodule.xmlファイルを作成し、KIE ベースおよび KIE セッションを定義し、KIE 仮想ファイルシステムKieFileSystemに、プロジェクトのリソースをすべて追加します。プログラムを使用して
kmodule.xmlを作成し、KieFileSystemに追加Copy to Clipboard Copied! Toggle word wrap Toggle overflow 手動またはプログラムで
kmodule.xmlファイルをプロジェクトに設定したら、設定を検証する KIE コンテナーから KIE ベースおよび KIE セッションを取得します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow kmodule.xmlファイルに、KieBaseまたはKieSessionをdefault="true"と設定している場合は、先ほどのkmodule.xml例のように、名前を渡さずに KIE コンテナーから取得できます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Process Automation Manager ディストリビューションの以下のシステムプロパティーの値を変更して、デシジョンエンジンにキャッシュする KIE モジュールまたはアーティファクトバージョンの最大数を増減できます。
-
kie.repository.project.cache.size: デシジョンエンジンにキャッシュする最大 KIE モジュール数。デフォルト値は100です。 -
kie.repository.project.versions.cache.size: デシジョンエンジンにキャッシュする同一のアーティファクトに対して最大指定可能なバージョン数。デフォルト値は10です。
KIE リポジトリー設定の完全一覧については、Red Hat カスタマーポータル から Red Hat Process Automation Manager 7.11.0 Source Distribution の ZIP ファイルをダウンロードして、
~/rhpam-7.11.0-sources/src/drools-$VERSION/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/KieRepositoryImpl.javaに移動してください。-
kmodule.xml ファイルの詳細は、(まだダウンロードしていない場合には) Red Hat カスタマーポータル から Red Hat Process Automation Manager 7.11.0 Source Distribution の ZIP ファイルをダウンロードし、$FILE_HOME/rhpam-$VERSION-sources/kie-api-parent-$VERSION/kie-api/src/main/resources/org/kie/api/ に保存してある XML スキーマ kmodule.xsd を参照してください。
3.1.1. KIE モジュール設定のプロパティー リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトにおいて、KIE モジュール記述子ファイル (kmodule.xml) の任意の <configuration> 要素は、プロパティーの キー および 値 ペアを定義し、kmodule.xml ファイルをさらにカスタマイズするのに使用できます。
kmodule.xml ファイルの設定プロパティーの例
以下は、プロジェクトの KIE モジュール記述子ファイル (kmodule.xml) でサポートされる <configuration> プロパティーのキーおよび値です。
- drools.dialect.default
デフォルトの Drools 方言を設定します。
サポートされる値:
java、mvel<property key="drools.dialect.default" value="java"/>
<property key="drools.dialect.default" value="java"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.accumulate.function.$FUNCTION
指定した関数名に累積関数を実装するクラスのリンク。デシジョンエンジンにカスタムの累積関数を追加できます。
<property key="drools.accumulate.function.hyperMax" value="org.drools.custom.HyperMaxAccumulate"/>
<property key="drools.accumulate.function.hyperMax" value="org.drools.custom.HyperMaxAccumulate"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.evaluator.$EVALUATION
デシジョンエンジンにカスタムのエバリュエーターを追加できるように、指定したエバリュエーター名にエバリュエーター定義を実装するクラスをリンクします。エバリュエーターは、カスタムオペレーターと類似しています。
<property key="drools.evaluator.soundslike" value="org.drools.core.base.evaluators.SoundslikeEvaluatorsDefinition"/>
<property key="drools.evaluator.soundslike" value="org.drools.core.base.evaluators.SoundslikeEvaluatorsDefinition"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.dump.dir
Red Hat Process Automation Manager の
dump/logディレクトリーにパスを設定します。<property key="drools.dump.dir" value="$DIR_PATH/dump/log"/>
<property key="drools.dump.dir" value="$DIR_PATH/dump/log"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.defaultPackageName
プロジェクトのビジネスアセットにデフォルトパッケージを設定します。
<property key="drools.defaultPackageName" value="org.domain.pkg1"/>
<property key="drools.defaultPackageName" value="org.domain.pkg1"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.parser.processStringEscapes
文字列のエスケープ機能を設定します。このプロパティーを
falseに設定すると、\n文字が改行文字として解釈されません。サポートされる値:
true(デフォルト)、false<property key="drools.parser.processStringEscapes" value="true"/>
<property key="drools.parser.processStringEscapes" value="true"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.kbuilder.severity.$DUPLICATE
KIE ベースがビルドされたときに報告される重複したルール、プロセス、または関数のインスタンスの重大度を設定します。たとえば、
duplicateRuleをERRORに設定すると、KIE ベースのビルド時に検出された重複ルールに対してエラーが生成されます。サポートされるキー接尾辞:
duplicateRule、duplicateProcess、duplicateFunctionサポートされる値:
INFO、WARNING、ERROR<property key="drools.kbuilder.severity.duplicateRule" value="ERROR"/>
<property key="drools.kbuilder.severity.duplicateRule" value="ERROR"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.propertySpecific
デシジョンエンジンのプロパティーの反応を設定します。
サポートされる値:
DISABLED、ALLOWED、ALWAYS<property key="drools.propertySpecific" value="ALLOWED"/>
<property key="drools.propertySpecific" value="ALLOWED"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - drools.lang.level
DRL 言語レベルを設定します。
サポートされる値:
DRL5、DRL6、DRL6_STRICT(デフォルト)<property key="drools.lang.level" value="DRL_STRICT"/>
<property key="drools.lang.level" value="DRL_STRICT"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2. KIE モジュールでサポートされる KIE ベース属性 リンクのコピーリンクがクリップボードにコピーされました!
KIE ベースは、プロジェクトの KIE モジュール記述子ファイル (kmodule.xml) を定義するリポジトリーで、Red Hat Process Automation Manager のルール、プロセス、その他のビジネスアセットが含まれます。kmodule.xml ファイルで KIE ベースを定義した場合は、特定の属性および値を指定して、KIE ベース設定をさらにカスタマイズできます。
kmodule.xml ファイルの KIE ベース設定例
以下は、プロジェクトの KIE モジュール記述ファイル (kmodule.xml) でサポートされる kbase 属性および値です。
| 属性 | サポートされている値 | 説明 |
|---|---|---|
|
| すべての名前 |
|
|
| KIE モジュールのその他の KIE ベースオブジェクトのコンマ区切り一覧 |
この KIE ベースに追加するその他の KIE ベースオブジェクトとアーティファクトを定義します。モジュールの |
|
| KIE ベースに追加するパッケージのコンマ区切りの一覧
デフォルト値: |
(ルールやプロセスなど) この KIE ベースに追加するアーティファクトのパッケージを定義します。デフォルトでは、 |
|
|
デフォルト値: | KIE ベースは、モジュールのデフォルトの KIE ベースで、名前を渡さずに KIE コンテナーから作成できます。各モジュールにはデフォルトの KIE ベースを 1 つだけ指定できます。 |
|
|
デフォルト値: |
新しいファクトが作業メモリーに挿入された場合の Red Hat Process Automation Manager の動作を定義します。 |
|
|
デフォルト値: |
イベントが KIE ベースで処理される方法を指定します。このプロパティーを |
|
|
デフォルト値: | 宣言型アジェンダが有効かどうかを指定します。 |
|
|
デフォルト値: | シーケンシャルモードが有効かどうかを判断します。順次モードでは、デシジョンエンジンは、ワーキングメモリーでの変更に関係なく、デシジョンエンジンアジェンダにリスト化された順番でルールを一度評価します。ステートレスの KIE セッションを使用しており、ルールを実行することで、アジェンダで次に出てくるルールに影響を与えないようにするには、このプロパティーを有効にします。 |
3.1.3. KIE モジュールでサポートされる KIE セッション属性 リンクのコピーリンクがクリップボードにコピーされました!
KIE セッションがランタイムデータを保存および実行し、プロジェクトの KIE モジュール記述子ファイル (kmodule.xml) で KIE セッションを定義した場合は KIE ベース、または KIE コンテナーから直接作成されます。KIE ベースおよび KIE セッションを kmodule.xml ファイルに定義すると、特定の属性および値を指定して、KIE セッション設定をさらにカスタマイズできます。
kmodule.xml ファイルの KIE セッション設定例
以下は、プロジェクトの KIE モジュール記述子ファイル (kmodule.xml) でサポートされている ksession 属性および値です。
| 属性 | サポートされている値 | 説明 |
|---|---|---|
|
| すべての名前 |
|
|
|
デフォルト値: |
KIE セッションの呼び出しと呼び出しの間にデータを保持 ( |
|
|
デフォルト値: | KIE セッションをモジュールのデフォルトセッションにし、名前を渡さずに KIE コンテナーから作成できるようにするかどうかを指定します。各モジュールにはデフォルトの KIE セッションを 1 つだけ指定できます。 |
|
|
デフォルト値: | イベントのタイムスタンプを、アプリケーションが制御するシステムクロック、または疑似クロックから割り当てられるかどうかを指定します。このクロックは、一時的なルールをテストするユニットで特に便利です。 |
|
|
デフォルト値: | KIE セッションが使用する信念体系の種類を定義します。信念体系は、ナレッジ (ファクト) から事実を推測します。たとえば、後ほどデシジョンエンジンから削除される別のファクトに基づいて新しいファクトが挿入されると、この体系では、新たに挿入されたファクトも削除する必要があると判断します。 |