Decision Server の管理とモニターリング
ガイド
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
システム管理者は、Red Hat Decision Manager を実稼働環境にインストール、設定、アップグレードし、システム障害にすばやくかつ容易に対応できるようになり、システムが最適に稼働するようにできます。
前提条件
- Red Hat JBoss Enterprise Application Platform 7.2.0 がインストールされている。インストールの詳細は、Red Hat JBoss Enterprise Application Platform 7.2 Installation Guide を参照してください。
- Red Hat Decision Manager がインストールされている。詳細は、Red Hat Decision Manager インストールの計画 を参照してください。
-
Red Hat Decision Manager が稼働し、
adminロールで Business Central にログインできる。詳細は、Red Hat Decision Manager インストールの計画 を参照してください。
第1章 Red Hat Decision Manager のコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Decision Manager は、Decision Central と Decision Server で設定されます。
Business Central は、ビジネスルールを作成して管理するグラフィカルユーザーインターフェイスです。Business Central は、Red Hat JBoss EAP インスタンスまたは Red Hat OpenShift Container Platform (OpenShift) にインストールできます。
Business Central は、スタンドアロンの JAR ファイルとしても使用できます。Business Central スタンドアロンの JAR ファイルとして使用して、アプリケーションサーバーにデプロイせずに Business Central を実行できます。
Decision Server では、ルール、およびその他のアーティファクトが実行されます。これは、ルールをインスタンス化して実行し、計画の問題を解決するために使用されます。Decision Server は、Red Hat JBoss EAP インスタンス、OpenShift、Oracle WebLogic Server インスタンス、IBM WebSphere Application Server インスタンスに、または Spring Boot アプリケーションの一部としてインストールできます。
Decision Server は、管理モードまたは非管理モードで動作するように設定できます。非管理モードの場合は、手動で KIE コンテナー (デプロイメントユニット) を作成および維持する必要があります。KIE コンテナーは、プロジェクトの特定のバージョンです。管理モードの場合は、Decision Manager コントローラーが Decision Server の設定を管理し、ユーザーはコントローラーと対話形式で KIE コンテナーを作成、維持します。
第2章 Maven を使用したシステム統合 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Decision Manager は、Red Hat JBoss Middleware Maven Repository と Maven Central リポジトリーを依存関係ソースとして使用するように作られています。これら両方の依存関係がプロセスビルドに利用可能になるようにしてください。
ご自分のプロジェクトがアーティファクトの特定バージョンに依存していることを確認してください。LATEST または RELEASE は、一般的に、アプリケーションの依存関係バージョンの特定と管理に使用されます。
-
LATESTは、アーティファクトの最新デプロイ (スナップショット) バージョンになります。 -
RELEASEは、リポジトリー内の最新の非スナップショットバージョンリリースになります。
LATEST または RELEASE を使用することで、サードパーティーのライブラリーの新リリース時にバージョン番号を更新する必要がなくなります。ただし、ソフトウェアリリースに影響を受けるビルドに対するコントロールができなくなることになります。
2.1. ローカルプロジェクトの Preemptive (先行) 認証 リンクのコピーリンクがクリップボードにコピーされました!
お使いの環境にインターネットアクセスがない場合には、Maven Central や他のパブリックリポジトリーの代わりに社内リポジトリーを設定します。Red Hat Decision Manager サーバーのリモート Maven リポジトリーからローカル Mave プロジェクトに JAR をインポートするには、リポジトリーサーバーの先行認証をオンにします。pom.xml ファイルの guvnor-m2-repo 用の認証を設定することでこれが実行できます。以下に例を示します。
別の方法では、Authorization HTTP ヘッダーを Base64 でエンコードされた認証情報で設定できます。
2.2. Business Central における重複した GAV の検出 リンクのコピーリンクがクリップボードにコピーされました!
Business Central のすべての Maven リポジトリーで、プロジェクトの GroupId、ArtifactId、および Version (GAV) の各値が重複しているかどうかが確認されます。GAV が重複していると、実行された操作が取り消されます。
重複する GAV の検出は、Development Mode のプロジェクトでは無効になっています。Business Central で重複する GAV 検出を有効にするには、プロジェクトの Settings → General Settings → Version に移動して、Development Mode オプションを OFF (該当する場合) に切り替えます。
重複した GAV の検出は、以下の操作を実行するたびに実行されます。
- プロジェクトのプロジェクト定義の保存。
-
pom.xmlファイルの保存。 - プロジェクトのインストール、ビルド、またはデプロイメント。
以下の Maven リポジトリーで重複の GAV が確認されます。
-
pom.xmlファイルの<repositories>要素および<distributionManagement>要素で指定されたリポジトリー。 -
Maven の
settings.xml設定ファイルに指定されたリポジトリー。
2.3. Business Central における重複した GAV 検出設定の管理 リンクのコピーリンクがクリップボードにコピーされました!
admin ロールを持つ Business Central ユーザーは、プロジェクトで GroupId 値、ArtifactId 値、および Version 値 (GAV) が重複しているかどうかを確認するリポジトリーの一覧を修正できます。
重複する GAV の検出は、Development Mode のプロジェクトでは無効になっています。Business Central で重複する GAV 検出を有効にするには、プロジェクトの Settings → General Settings → Version に移動して、Development Mode オプションを OFF (該当する場合) に切り替えます。
手順
- Business Central で、Menu → Design → Projects に移動して、プロジェクト名をクリックします。
- プロジェクトの Settings タブをクリックし、Validation をクリックしてリポジトリーの一覧を開きます。
一覧表示したリポジトリーオプションの中から選択するか選択を解除して、重複した GAV の検出を有効または無効にします。
今後、重複した GAV の報告は、検証を有効にしたリポジトリーに対してのみ行われます。
注記この機能を無効にするには、システムの起動時に Business Central の
org.guvnor.project.gav.check.disabledシステムプロパティーをtrueに設定します。~/EAP_HOME/bin/standalone.sh -c standalone-full.xml
$ ~/EAP_HOME/bin/standalone.sh -c standalone-full.xml -Dorg.guvnor.project.gav.check.disabled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 Red Hat Decision Manager へのパッチ更新およびマイナーリリースアップグレードの適用 リンクのコピーリンクがクリップボードにコピーされました!
大抵の場合は、Business Central、Decision Server、ヘッドレス Decision Manager コントローラーなど、Red Hat Decision Manager の特定コンポーネントの更新を容易にする自動更新ツールが Red Hat Decision Manager のパッチ更新と新規マイナーバージョンで提供されます。デシジョンエンジンやスタンドアロンの Business Central など、その他の Red Hat Decision Manager アーティファクトは、各マイナーリリースが含まれる新しいアーティファクトとしてリリースされるため、再インストールして更新を適用する必要があります。
この自動更新ツールを使ってパッチ更新とマイナーリリースアップグレードの両方を Red Hat Decision Manager 7.3 に適用することができます。バージョン 7.3 から 7.3.1 への更新といった Red Hat Decision Manager のパッチ更新には、最新のセキュリティー更新とバグ修正が含まれます。バージョン 7.3.x から 7.3 へのアップグレードといった Red Hat Decision Manager のマイナーリリースアップグレードには、機能強化、セキュリティー更新、バグ修正が含まれます。
Red Hat Decision Manager バージョン 7.2.x から 7.3.1 を直接更新またはアップグレードできます。たとえば、7.3.0 アップグレードツールを使用して、Red Hat Decision Manager 7.2.x をバージョン 7.3.0 にアップグレードできます。同様に、Red Hat Decision Manager 7.2.0 をバージョン 7.3.1 に直接アップグレードできます。
Red Hat Decision Manager 更新ツールに含まれるのは、Red Hat Decision Manager の更新のみです。Red Hat JBoss EAP への更新は、Red Hat JBoss EAP パッチ配信を使用して適用する必要があります。詳細は、Red Hat JBoss EAP パッチおよびアップグレードガイド を参照してください。
rhdm-kie-server-ee7 を rhdm-kie-server-ee8 に更新しようとしないでください。これはサポートされていませんが、更新ツールによって実行が妨げられることはありません。Red Hat Decision Manager 7.3.0 を 7.3.1 に更新する場合は、rhdm-kie-server-ee7 のみを更新します。Red Hat Decision Manager 7.3.1 を 7.4.x に更新する場合は、rhdm-kie-server-ee8 のみを更新します。
前提条件
- Red Hat Decision Manager インスタンスおよび Decision Server インスタンスが稼働していない。Red Hat Decision Manager インスタンスまたは Decision Server インスタンスが実行している間は更新を適用しないでください。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから選択およびバージョンを選択します。
以下に例を示します。
- Product: Decision Manager
- バージョン: 7.3.0
バージョン 7.3.x から 7.3 などのように Red Hat Decision Manager のマイナーリリースにアップグレードする場合は、お使いの Red Hat Decision Manager に最新のパッチ更新を適用してから、以下の手順に従って、新たなマイナーリリースにアップグレードしてください。
Patches をクリックし、Red Hat Decision Manager [VERSION] Update Tool をダウンロードし、ダウンロードした
rhdm-$VERSION-update.zipファイルを一時ディレクトリーに展開します。この更新ツールは、Business Central、Decision Server、ヘッドレス Decision Manager コントローラーなど、Red Hat Decision Manager の一定のコンポーネントの更新を自動化します。このツールを使用して最初に更新を適用し、Red Hat Decision Manager ディストリビューションに関連するその他の更新、または新しいリリースアーティファクトをインストールします。
更新ツールがファイルを更新しないようにするには、展開した
rhdm-$VERSION-updateディレクトリーに移動し、blacklist.txtファイルを開き、更新しないファイルの相対パスを追加します。ファイルが
blacklist.txtファイルの一覧に追加されていると、更新スクリプトは、そのファイルを新しいバージョンに置き換えずにそのまま残し、新しいバージョンのファイルに.new接尾辞を付けて追加します。ブラックリストのファイルが配布されなくなると、更新ツールは、.removed接尾辞の付いた、空のマーカーファイルを作成します。次に、これらの新しいファイルを手動で保持、マージ、または削除することを選択できます。blacklist.txtファイルで除外されるファイルの例:WEB-INF/web.xml // Custom file styles/base.css // Obsolete custom file kept for record
WEB-INF/web.xml // Custom file styles/base.css // Obsolete custom file kept for recordCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新後の、ブラックリストに指定されたファイルディレクトリー内のコンテンツ:
ls WEB-INF
$ ls WEB-INF web.xml web.xml.newCopy to Clipboard Copied! Toggle word wrap Toggle overflow ls styles
$ ls styles base.css base.css.removedCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの端末で、
rhdm-$VERSION-update.zipファイルから展開した一時ファイルに移動し、以下の形式でapply-updatesスクリプトを実行します。重要更新を適用する前に、Red Hat Decision Manager インスタンスおよび Decision Server インスタンスが実行していないことを確認します。Red Hat Decision Manager インスタンスまたは Decision Server インスタンスが実行している間は更新を適用しないでください。
Linux システムまたは Unix ベースのシステムの場合:
./apply-updates.sh $DISTRO_PATH $DISTRO_TYPE
$ ./apply-updates.sh $DISTRO_PATH $DISTRO_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows の場合:
.\apply-updates.bat $DISTRO_PATH $DISTRO_TYPE
$ .\apply-updates.bat $DISTRO_PATH $DISTRO_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow $DISTRO_PATHの部分は、関連するディストリビューションディレクトリーへのパスで、$DISTRO_TYPEの部分は、更新しているディストリビューションの種類となります。Red Hat Decision Manager 更新ツールでは、以下のディストリビューションの種類がサポートされます。
-
rhdm-decision-central-eap7-deployable: Business Central を更新します (decision-central.war)。 -
rhdm-kie-server-ee8: Decision Server を更新します (kie-server.war) -
rhdm-kie-server-jws: Red Hat JBoss Web Server で Decision Server を更新します (kie-server.war) -
rhdm-controller-ee7: ヘッドレス Decision Manager コントローラー (controller.war) を更新します。 -
rhdm-controller-jws: Red Hat JBoss Web Server でヘッドレスの Decision Manager コントローラーを更新します (controller.war)。
Red Hat JBoss EAP で、Red Hat Decision Manager の完全ディストリビューションに対する Business Central および Decision Server への更新の例:
./apply-updates.sh ~EAP_HOME/standalone/deployments/decision-central.war rhdm-decision-central-eap7-deployable ./apply-updates.sh ~EAP_HOME/standalone/deployments/kie-server.war rhdm-kie-server-ee8
./apply-updates.sh ~EAP_HOME/standalone/deployments/decision-central.war rhdm-decision-central-eap7-deployable ./apply-updates.sh ~EAP_HOME/standalone/deployments/kie-server.war rhdm-kie-server-ee8Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヘッドレス Decision Manager コントローラーへの更新例 (使用している場合):
./apply-updates.sh ~EAP_HOME/standalone/deployments/controller.war rhdm-controller-ee7
./apply-updates.sh ~EAP_HOME/standalone/deployments/controller.war rhdm-controller-ee7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新スクリプトは、展開した
rhdm-$VERSION-updateディレクトリーに、指定したディストリビューションのコピーを含むbackupディレクトリーを作成してから、更新を行います。-
更新ツールが完了したら、Red Hat カスタマーポータルで、更新ツールをダウンロードしたSoftware Downloadsページに戻り、Red Hat Decision Manager ディストリビューションに関するその他の更新または新しいリリースアーティファクトをインストールします。
デシジョンエンジンまたはその他のアドオンに関する
.jarなど、Red Hat Decision Manager ディストリビューションにすでに存在しているファイルについては、ファイルの既存のバージョンを、Red Hat カスタマーポータルから取得した新しいバージョンと取り替えます。エアギャップ環境など、スタンドアロンの Red Hat Decision Manager 7.3.0 Maven Repository アーティファクト (
rhdm-7.3.0-maven-repository.zip) を使用している場合は、Red Hat Decision Manager [VERSION] Incremental Maven Repository をダウンロードし、ダウンロードしたrhdm-$VERSION-incremental-maven-repository.zipファイルを既存の~/maven-repositoryディレクトリーに展開して、関連するコンテンツを更新します。Maven リポジトリーの更新例:
unzip -o rhdm-7.3.1-incremental-maven-repository.zip -d $REPO_PATH/rhdm-7.3.0-maven-repository/maven-repository/
$ unzip -o rhdm-7.3.1-incremental-maven-repository.zip -d $REPO_PATH/rhdm-7.3.0-maven-repository/maven-repository/Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 関連する更新をすべて適用したら、Red Hat Decision Manager および Decision Server を起動して、Business Central にログインします。
Business Central 内のすべてのプロジェクトデータが存在して正確であることを確認し、Business Central ウィンドウの右上隅でプロファイル名をクリックし、About をクリックして、更新した製品バージョン番号を確認します。
Business Central でエラーが発生したり、データが不足していることが通知されたら、
rhdm-$VERSION-updateディレクトリーのbackupディレクトリーにコンテンツを復元し、更新ツールへの変更を戻します。Red Hat カスタマーポータルで Red Hat Decision Manager の以前のバージョンから、関連するリリースアーティファクトを再インストールできます。以前のディストリビューションを復元したら、更新を再実行してください。
第4章 Decision Server の設定と起動 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server の場所、ユーザー名、パスワード、その他の関連プロパティーは、Decision Server の起動時に必要な設定を定義することで設定できます。
手順
Red Hat Decision Manager 7.3 の bin ディレクトリーに移動し、以下のプロパティーで新しい Decision Server を起動します。お使いの環境に応じて特定のプロパティーを調整します。
- 1
standalone-full.xmlサーバープロファイルの開始コマンド- 2
- サーバー ID (Business Central で定義したサーバー設定名に一致させる必要がある)
- 3
- Decision Manager コントローラー から Decision Server に接続するユーザー名
- 4
- Decision Manager コントローラー から Decision Server に接続するパスワード
- 5
- Decision Manager コントローラーの場所 (
/rest/controller接尾辞が付いた Business Central の URL) - 6
- Decision Manager コントローラー REST API に接続するユーザー名
- 7
- Decision Manager コントローラー REST API に接続するパスワード
- 8
- Decision Server の場所 (この例では Business Central と同じ場所)
- 9
- 使用する Hibernate の方言
- 10
- 以前の Red Hat JBoss BRMS データベースに使用されるデータソースの JNDI 名
Business Central と Decision Server が別々のアプリケーションサーバーインスタンス (Red Hat JBoss EAP など) にインストールされている場合は、Business Central とポートが競合しないように、DecisionServer の場所には別のポートを使用します。別の Decision Server ポートが設定されていない場合は、ポートオフセットを追加して、Decision Server プロパティーに従って Decision Server のポート値を調整します。
以下に例を示します。
-Djboss.socket.binding.port-offset=150 -Dorg.kie.server.location=http://localhost:8230/kie-server/services/rest/server
-Djboss.socket.binding.port-offset=150
-Dorg.kie.server.location=http://localhost:8230/kie-server/services/rest/server
この例のように、Business Central ポートが 8080 の場合は、定義したオフセットが 150 の Decision Server ポートは 8230 です。
Decision Server は、新しい Business Central に接続し、デプロイするデプロイメントユニット (KIE コンテナー) の一覧を収集します。
依存関係の JAR ファイルでクラスを使用して Decision Server クライアントから Decision Server にアクセスすると、Business Central では ConversionException および ForbiddenClassException が発生します。Business Central でこれらの例外を発生させないようにするには、次のいずれかを実行します。
- クライアント側で例外が発生する場合は、kie-server クライアントに次のシステムプロパティーを追加します。
System.setProperty("org.kie.server.xstream.enabled.packages", "org.example.**");
System.setProperty("org.kie.server.xstream.enabled.packages", "org.example.**");
-
サーバー側で例外が発生する場合は、Red Hat Decision Manager インストールディレクトリーから
standalone-full.xmlを開き、<system-properties> タグに以下のプロパティーを設定します。
<property name="org.kie.server.xstream.enabled.packages" value="org.example.**"/>
<property name="org.kie.server.xstream.enabled.packages" value="org.example.**"/>
- 以下の JVM プロパティーを設定します。
-Dorg.kie.server.xstream.enabled.packages=org.example.**
-Dorg.kie.server.xstream.enabled.packages=org.example.**
KJAR に存在するクラスは、これらのシステムプロパティーを使用して設定しないように想定されています。システムプロパティーでは既知のクラスのみを使用し、脆弱性を回避するようにしてください。
org.example はパッケージ例で、使用するパッケージを何でも定義できます。org.example1.* * , org.example2.* * , org.example3.* * などのように、コンマ区切りで、複数のパッケージを指定できます。
org.example1.Mydata1, org.example2.Mydata2 など、特定のクラスも追加できます。
第5章 統合 Decision Manager コントローラー での Decision Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
本セクションの変更は、Decision Server を Decision Central で管理し、Red Hat Decision Manager を ZIP ファイルからインストールしている場合にのみ、実行してください。Business Central をインストールしていない場合は、6章ヘッドレス Decision Manager コントローラーのインストールおよび実行 の記載通りに、ヘッドレス Decision Manager コントローラーを使用して Decision Server を管理することができます。
Decision Server は、管理モードまたは非管理モードで動作できます。非管理モードの場合は、手動で KIE コンテナー (デプロイメントユニット) を作成および維持する必要があります。管理モードの場合は、Decision Manager コントローラーが Decision Server の設定を管理し、ユーザーはコントローラーと対話形式で KIE コンテナーを作成、維持します。
Decision Manager コントローラーは Business Central と統合します。Business Central をインストールしている場合は、Business Central の Execution Server ページを使用して Decision Manager コントローラーと対話します。
ZIP ファイルから Red Hat Decision Manager をインストールした場合は、Decision Server および Business Central の両方のインストールの standalone-full.xml ファイルを編集して、統合 Decision Manager コントローラーで Decision Server を設定する必要があります。
前提条件
Business Central と Decision Server が Red Hat JBoss EAP インストールのベースディレクトリー (
EAP_HOME) にインストールされている。注記実稼働環境では、Business Central と Decision Server は異なるサーバーにインストールすることが推奨されます。ただし、たとえば開発環境で、Decision Server と Business Central を同じサーバーにインストールする場合は、本セクションの説明に従って、共有の
standalone-full.xmlファイルを変更します。Business Central サーバーノードに、
rest-allロールを持つユーザーが作成されている。手順
Business Central の
EAP_HOME/standalone/configuration/standalone-full.xmlファイルで、<system-properties>セクションの以下のプロパティーのコメントを解除し、<USERNAME>および<USER_PWD>を、kie-serverロールを持つユーザーの認証情報に置き換えます。<property name="org.kie.server.user" value="<USERNAME>"/> <property name="org.kie.server.pwd" value="<USER_PWD>"/>
<property name="org.kie.server.user" value="<USERNAME>"/> <property name="org.kie.server.pwd" value="<USER_PWD>"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Decision Server の
EAP_HOME/standalone/configuration/standalone-full.xmlファイルで、<system-properties>セクションの以下のプロパティーのコメントを解除します。<property name="org.kie.server.controller.user" value="<CONTROLLER_USER>"/> <property name="org.kie.server.controller.pwd" value="<CONTROLLER_PWD>"/> <property name="org.kie.server.id" value="<KIE_SERVER_ID>"/> <property name="org.kie.server.location" value="http://<HOST>:<PORT>/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="<CONTROLLER_URL>"/>
<property name="org.kie.server.controller.user" value="<CONTROLLER_USER>"/> <property name="org.kie.server.controller.pwd" value="<CONTROLLER_PWD>"/> <property name="org.kie.server.id" value="<KIE_SERVER_ID>"/> <property name="org.kie.server.location" value="http://<HOST>:<PORT>/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="<CONTROLLER_URL>"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 以下の値を置き換えます。
-
<CONTROLLER_USER>および<CONTROLLER_PWD>をrest-allロールを持つユーザーの認証情報に置き換えます。 -
<KIE_SERVER_ID>を Decision Server システムの ID または名前に置き換えます (例:rhdm-7.3.0-decision_server-1)。 -
<HOST>を Decision Server ホストの ID または名前に置き換える (例:localhostまたは192.7.8.9)。 <PORT>を Decision Server ホストのポートに置き換える (例:8080)。注記org.kie.server.locationプロパティーで Decision Server の場所を指定します。<CONTROLLER_URL>を Business Central の URL に置き換えます。Decision Server は、起動時にこの URL に接続します。インストーラーまたは Red Hat JBoss EAP zip ファイルを使用して Business Central をインストールした場合、
<CONTROLLER_URL>は以下のようになります。http://<HOST>:<PORT>/decision-central/rest/controllerstandalone.jarファイルを使用して Business Central を実行している場合、<CONTROLLER_URL>は以下のようになります。http://<HOST>:<PORT>/rest/controller
第6章 ヘッドレス Decision Manager コントローラーのインストールおよび実行 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server は、管理モードまたは非管理モードで動作するように設定できます。非管理モードの場合は、手動で KIE コンテナー (デプロイメントユニット) を作成および維持する必要があります。管理モードの場合は、Decision Manager コントローラーが Decision Server の設定を管理し、ユーザーはコントローラーと対話形式で KIE コンテナーを作成、維持します。
Business Central には Decision Manager コントローラーが組み込まれています。Business Central をインストールしている場合は、Execution Server ページを使用して KIE コンテナーを作成および維持します。Business Central なしで Decision Server の管理を自動化するには、ヘッドレス Decision Manager コントローラーを使用することで可能になります。
6.1. Decision Manager コントローラーを使った Decision Server のインストーラーによる設定 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server は、Decision Manager コントローラーで管理するか、非管理モードで動作できます。非管理モードの場合は、手動で KIE コンテナー (デプロイメントユニット) を作成および維持する必要があります。管理モードの場合は、Decision Manager コントローラーが Decision Server の設定を管理し、ユーザーはコントローラーと対話形式で KIE コンテナーを作成、維持します。
Decision Manager コントローラーは Business Central と統合します。Business Central をインストールしている場合は、Business Central の Execution Server ページを使用して Decision Manager コントローラーと対話します。
インストーラーはインタラクティブモードまたは CLI モードで使用し、Business Central と Decision Server をインストールして、Decision Manager コントローラーで Decision Server を設定します。
Business Central をインストールしない場合は、6章ヘッドレス Decision Manager コントローラーのインストールおよび実行 でヘッドレス Decision Manager の使用方法を参照してください。
前提条件
- バックアップを作成してある Red Hat JBoss EAP 7.2 以降のサーバーインストールを持つ 2 台のコンピューターが利用できる。
- インストールを完了するのに必要なユーザーパーミッションが付与されている。
手順
- 1 台目のコンピューターで、インタラクティブモードまたは CLI モードでインストーラーを実行します。詳細は Red Hat JBoss EAP 7.2 への Red Hat Decision Manager のインストールおよび設定 を参照してください。
- Component Selection ページで、Decision Server チェックボックスを外します。
- Business Central インストールを完了します。
- 2 台目のコンピューターで、インタラクティブモードまたは CLI モードでインストーラーを実行します。
- Component Selection ページで Business Central チェックボックスを外します。
- Configure Runtime Environment ページで Perform Advanced Configuration を選択します。
- Customize Decision Server properties を選択し、Next をクリックします。
- Process Server Properties Configuration ページで、New Server Configuration をクリックして Decision Server を追加し、その Decision Server に一意の名前を指定します。この名前は Business Central に表示され、複数の Decision Server を区別できるようになります。
6.2. ヘッドレス Decision Manager コントローラーのインストール リンクのコピーリンクがクリップボードにコピーされました!
ヘッドレス Decision Manager コントローラーをインストールし、REST API または Decision Server Java Client API を使用してコントローラーを操作することができます。
前提条件
-
バックアップを作成してある Red Hat JBoss EAP システム (バージョン 7.2 またはそれ以降) が利用できる。Red Hat JBoss EAP システムのベースディレクトリーを
EAP_HOMEとする。 - インストールを完了するのに必要なユーザーパーミッションが付与されている。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- Product: Decision Manager
- Version: 7.3
-
Red Hat Decision Manager 7.3.0 Add Ons (
rhdm-7.3.0-add-ons.zipファイル) をダウンロードします。 -
rhdm-7.3.0-add-ons.zipファイルを展開します。rhdm-7.3-controller-ee7.zipファイルは展開したディレクトリーにあります。 -
rhdm-7.3-controller-ee7アーカイブを一時ディレクトリーに展開します。以下の例では、この名前をTEMP_DIRとします。 TEMP_DIR/rhdm-7.3-controller-ee7/controller.warディレクトリーをEAP_HOME/standalone/deployments/にコピーします。警告コピーするヘッドレス Decision Manager コントローラーデプロイメントの名前が、Red Hat JBoss EAP インスタンスの既存デプロイメントと競合しないことを確認します。
-
TEMP_DIR/rhdm-7.3-controller-ee7/SecurityPolicy/ディレクトリーの中身をEAP_HOME/binにコピーします。ファイルの上書きを確認するメッセージが表示されたら、Yes を選択します。 -
EAP_HOME/standalone/deployments/ディレクトリーに、controller.war.dodeployという名前で空のファイルを作成します。このファイルにより、サーバーが起動するとヘッドレス Decision Manager コントローラーが自動的にデプロイされます。
6.2.1. ヘッドレス Decision Manager コントローラーの作成 リンクのコピーリンクがクリップボードにコピーされました!
ヘッドレス Decision Manager コントローラーを使用する前に、kie-server ロールを持つユーザーを作成する必要があります。
前提条件
-
ヘッドレス Decision Manager コントローラーが Red Hat JBoss EAP インストールのベースディレクトリー (
EAP_HOME) にインストールされている。
手順
-
端末アプリケーションで
EAP_HOME/binディレクトリーに移動します。 以下のコマンドを入力し、
<USER_NAME>および<PASSWORD>を、作成するユーザー名およびパスワードに置き換えます。./add-user.sh -a --user <username> --password <password> --role kie-server
$ ./add-user.sh -a --user <username> --password <password> --role kie-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記必ず、既存のユーザー、ロール、またはグループとは異なるユーザー名を指定してください。たとえば、
adminという名前のユーザーは作成しないでください。パスワードは 8 文字以上で、数字と、英数字以外の文字をそれぞれ 1 文字以上使用する必要があります。ただし & の文字は使用できません。
- ユーザー名とパスワードを書き留めておきます。
6.2.2. Decision Server とヘッドレス Decision Manager コントローラー の設定 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server をヘッドレス Decision Manager コントローラーで管理する場合は、本セクションの説明に従って Decision Server インストールの standalone-full.xml とヘッドレス Decision Manager コントローラーの standalone.xml ファイルを編集する必要があります。
前提条件
-
Decision Server が Red Hat JBoss EAP インストールのベースディレクトリー (
EAP_HOME) にインストールされている。 ヘッドレス Decision Manager コントローラーが
EAP_HOMEにインストールされている。注記実稼働環境では Decision Server およびヘッドレス Decision Manager コントローラーを異なるサーバーにインストールすることを推奨します。ただし、開発環境のように Decision Server およびヘッドレス Decision Manager コントローラーを同じサーバーにインストールする場合は、併せて共有の
standalone-full.xmlファイルを変更します。-
Decision Server サーバーノードに、
kie-serverロールをのあるユーザーが作成されている。 サーバーノードに、
kie-serverロールのあるユーザーが作成されている。手順
EAP_HOME/standalone/configuration/standalone-full.xmlファイルの<system-properties>セクションに以下のプロパティーを追加し、<USERNAME>および<USER_PWD>を、kie-serverロールを持つユーザーの認証情報に置き換えます。<property name="org.kie.server.user" value="<USERNAME>"/> <property name="org.kie.server.pwd" value="<USER_PWD>"/>
<property name="org.kie.server.user" value="<USERNAME>"/> <property name="org.kie.server.pwd" value="<USER_PWD>"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Decision Server の
EAP_HOME/standalone/configuration/standalone-full.xmlファイルの<system-properties>セクションに以下のプロパティーを追加します。<property name="org.kie.server.controller.user" value="<CONTROLLER_USER>"/> <property name="org.kie.server.controller.pwd" value="<CONTROLLER_PWD>"/> <property name="org.kie.server.id" value="<KIE_SERVER_ID>"/> <property name="org.kie.server.location" value="http://<HOST>:<PORT>/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="<CONTROLLER_URL>"/>
<property name="org.kie.server.controller.user" value="<CONTROLLER_USER>"/> <property name="org.kie.server.controller.pwd" value="<CONTROLLER_PWD>"/> <property name="org.kie.server.id" value="<KIE_SERVER_ID>"/> <property name="org.kie.server.location" value="http://<HOST>:<PORT>/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="<CONTROLLER_URL>"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - このファイルで、以下の値を置き換えます。
-
<CONTROLLER_USER>および<CONTROLLER_PWD>をkie-serverロールを持つユーザーの認証情報に置き換えます。 -
<KIE_SERVER_ID>を Decision Server システムの ID または名前に置き換えます (例:rhdm-7.3.0-decision_server-1)。 -
<HOST>を Decision Server ホストの ID または名前に置き換える (例:localhostまたは192.7.8.9)。 <PORT>を Decision Server ホストのポートに置き換える (例:8080)。注記org.kie.server.locationプロパティーで Decision Server の場所を指定します。<CONTROLLER_URL>をヘッドレス Decision Manager コントローラー の URL で置き換えます。- Decision Server は、起動時にこの URL に接続します。
6.3. ヘッドレス Decision Manager コントローラーの実行 リンクのコピーリンクがクリップボードにコピーされました!
ヘッドレス Decision Manager コントローラーを Red Hat JBoss EAP にインストールしたら、以下の手順に従ってヘッドレス Decision Manager コントローラーを実行します。
前提条件
-
ヘッドレス Decision Manager コントローラーが Red Hat JBoss EAP インストールのベースディレクトリー (
EAP_HOME) にインストールされている。
手順
-
ターミナルアプリケーションで
EAP_HOME/binに移動します。 ヘッドレス Decision Manager コントローラーを、Decision Server をインストールした Red Hat JBoss EAP インスタンスと同じ Red Hat JBoss EAP インスタンスにインストールしている場合は、以下のいずれかのコマンドを実行します。
Linux または UNIX ベースのシステムの場合:
./standalone.sh -c standalone-full.xml
$ ./standalone.sh -c standalone-full.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows の場合:
standalone.bat -c standalone-full.xml
standalone.bat -c standalone-full.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ヘッドレス Decision Manager コントローラーを、Decision Server をインストールした Red Hat JBoss EAP インスタンスとは別の Red Hat JBoss EAP インスタンスにインストールしている場合は、
standalone.shスクリプトで Decision Manager コントローラーを開始できます。注記この場合は、
standalone.xmlファイルに必要な設定変更を加えます。Linux または UNIX ベースのシステムの場合:
./standalone.sh
$ ./standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows の場合:
standalone.bat
standalone.batCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ヘッドレス Decision Manager コントローラーが Red Hat JBoss EAP 上で動作していることを確認するには、以下のコマンドを入力します。ここで、
<CONTROLLER>と<CONTROLLER_PWD>は、ユーザー名とパスワードの組み合わせです。このコマンドにより、Decision Server インスタンスに関する情報が出力されます。curl -X GET "http://<HOST>:<PORT>/controller/rest/controller/management/servers" -H "accept: application/xml" -u '<CONTROLLER>:<CONTROLLER_PWD>'
curl -X GET "http://<HOST>:<PORT>/controller/rest/controller/management/servers" -H "accept: application/xml" -u '<CONTROLLER>:<CONTROLLER_PWD>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
別の方法では、Decision Server Java API Client を使用してヘッドレス Decision Manager コントローラーにアクセスすることもできます。
6.4. ヘッドレス Decision Manager コントローラーを使用した Decision Server のクラスターリング リンクのコピーリンクがクリップボードにコピーされました!
Decision Manager コントローラーは Business Central と統合します。ただし、Business Central をインストールしない場合は、ヘッドレス Decision Manager コントローラーをインストールし、REST API または Decision Server Java Client API を使用してそのコントローラーと対話します。
前提条件
-
バックアップを作成してある Red Hat JBoss EAP システム (バージョン 7.2 またはそれ以降) が利用できる。Red Hat JBoss EAP システムのベースディレクトリーを
EAP_HOMEとする。 - インストールを完了するのに必要なユーザーパーミッションが付与されている。
- マウントしたパーティションが存在する NFS サーバーが利用できる。
手順
Red Hat カスタマーポータルの Software Downloads ページに移動し (ログインが必要)、ドロップダウンオプションから製品およびバージョンを選択します。
- Product: Decision Manager
- Version: 7.3
-
Red Hat Decision Manager 7.3.0 Add Ons (
rhdm-7.3.0-add-ons.zipファイル) をダウンロードします。 -
rhdm-7.3.0-add-ons.zipファイルを展開します。rhdm-7.3-controller-ee7.zipファイルは展開したディレクトリーにあります。 -
rhdm-7.3-controller-ee7アーカイブを一時ディレクトリーに展開します。以下の例では、この名前をTEMP_DIRとします。 TEMP_DIR/rhdm-7.3-controller-ee7/controller.warディレクトリーをEAP_HOME/standalone/deployments/にコピーします。警告コピーするヘッドレス Decision Manager コントローラーデプロイメントの名前が、Red Hat JBoss EAP インスタンスの既存デプロイメントと競合しないことを確認します。
-
TEMP_DIR/rhdm-7.3-controller-ee7/SecurityPolicy/ディレクトリーの中身をEAP_HOME/binにコピーします。ファイルの上書きを確認するメッセージが表示されたら、Yes を選択します。 -
EAP_HOME/standalone/deployments/ディレクトリーに、controller.war.dodeployという名前で空のファイルを作成します。このファイルにより、サーバーが起動するとヘッドレス Decision Manager コントローラーが自動的にデプロイされます。 -
テキストエディターで
EAP_HOME/standalone/configuration/standalone.xmlファイルを開きます。 以下のプロパティーを
<system-properties>要素に追加し、<NFS_STORAGE>を、テンプレート設定が保存されている NFS ストレージへの絶対パスに置き換えます。<system-properties> <property name="org.kie.server.controller.templatefile.watcher.enabled" value="true"/> <property name="org.kie.server.controller.templatefile" value="<NFS_STORAGE>"/> </system-properties>
<system-properties> <property name="org.kie.server.controller.templatefile.watcher.enabled" value="true"/> <property name="org.kie.server.controller.templatefile" value="<NFS_STORAGE>"/> </system-properties>Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.kie.server.controller.templatefile.watcher.enabledプロパティーの値を true に設定すると、別のスレッドが開始してテンプレートファイルの修正を監視します。この確認の間隔はデフォルトで 30000 ミリ秒になり、org.kie.server.controller.templatefile.watcher.intervalシステムプロパティーで制御できます。このプロパティーの値を false に設定すると、テンプレートファイルへの変更の検出が、サーバーの再起動時に制限されます。ヘッドレス Decision Manager コントローラーを開始するには、
EAP_HOME/binに移動して、以下のコマンドを実行します。Linux または UNIX ベースのシステムの場合:
./standalone.sh
$ ./standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow Windows の場合:
standalone.bat
standalone.batCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat JBoss Enterprise Application Platform のクラスターリング環境で Red Hat Decision Manager を稼働する方法の詳細情報は、Red Hat JBoss EAP クラスター環境への Red Hat Decision Manager のインストールおよび設定 を参照してください。
第7章 Business Central に接続する Decision Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Decision Manager 環境で Decision Server がすでに設定されていない場合や、Red Hat Decision Manager 環境に追加の Decision Server が必要な場合には、Decision Server が Business Central に接続するように設定する必要があります。
Red Hat OpenShift Container Platform に Decision Server をデプロイする場合は、Red Hat OpenShift Container Platform への Red Hat Decision Manager のオーサリングと管理サーバー環境のデプロイメントで、Business Central に接続する設定手順を参照してください。
前提条件
Decision Server がインストールされている。インストールオプションは Red Hat Decision Manager インストールの計画 を参照してください。
手順
-
Red Hat Decision Manager インストールディレクトリーで、
standalone-full.xmlファイルに移動します。たとえば、Red Hat Decision Manager に Red Hat JBoss EAP インストールを使用する場合は$EAP_HOME/standalone/configuration/standalone-full.xmlにアクセスします。 standalone-full.xmlを開き、<system-properties>タグの下に、以下のプロパティーを設定します。- org.kie.server.controller.user: Business Central にログインするユーザーのユーザー名。
- org.kie.server.controller.pwd: Business Central にログインするユーザーのパスワード。
-
org.kie.server.controller: Business Central の API に接続する URL。通常、URL は
http://<centralhost>:<centralport>/decision-central/rest/controllerです。<centralhost>と<centralport>はそれぞれ Business Central のホスト名とポートになります。Business Central を OpenShift にデプロイしている場合は、URL からdecision-central/を削除します。 -
org.kie.server.location: Decision Server の API に接続する URL。通常、URL は
http://<serverhost>:<serverport>/kie-server/services/rest/server(<serverhost>および<serverport>はそれぞれ Decision Server のホスト名およびポート) になります。 - org.kie.server.id: サーバー設定の名前。このサーバー設定が Business Central に存在しない場合は、Decision Server が Business Central に接続する時に自動的に作成されます。
以下に例を示します。
<property name="org.kie.server.controller.user" value="central_user"/> <property name="org.kie.server.controller.pwd" value="central_password"/> <property name="org.kie.server.controller" value="http://central.example.com:8080/decision-central/rest/controller"/> <property name="org.kie.server.location" value="http://kieserver.example.com:8080/kie-server/services/rest/server"/> <property name="org.kie.server.id" value="production-servers"/>
<property name="org.kie.server.controller.user" value="central_user"/> <property name="org.kie.server.controller.pwd" value="central_password"/> <property name="org.kie.server.controller" value="http://central.example.com:8080/decision-central/rest/controller"/> <property name="org.kie.server.location" value="http://kieserver.example.com:8080/kie-server/services/rest/server"/> <property name="org.kie.server.id" value="production-servers"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Decision Server を起動または再起動します。
第8章 Decision Server および Business Central での環境モードの設定 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server は、production (実稼働) モードと development (開発) モードでの実行が設定可能です。開発モードでは、柔軟な開発ポリシーが提供され、小規模な変更の場合はアクティブなプロセスインスタンスを維持しながら、既存のデプロイメントユニット (KIE コンテナー) を更新できます。また、大規模な変更の場合は、アクティブなプロセスインスタンスを更新する前に、デプロイメントユニットの状態をリセットすることも可能です。実稼働モードは、各デプロイメントで新規デプロイメントユニットが作成される実稼働環境に最適です。
開発環境では、Business Central の Deploy をクリックして、実行中のインスタンスを停止せずにビルドされた KJAR ファイルを Decision Server にデプロイするか (該当する場合)、または Redeploy をクリックして、ビルドされた KJAR ファイルをデプロイし、実行中のインスタンスを停止します。ビルドした KJAR ファイルを次回にデプロイまたは再デプロイすると、以前のデプロイメントユニット (KIE コンテナー) が同じターゲット Decision Server で自動的に更新されます。
実稼働環境では、Business Central の Redeploy オプションは無効になり、Deploy をクリックして、ビルドした KJAR ファイルを Decision Server 上の新規デプロイメントユニット (KIE コンテナー) にデプロイすることのみが可能です。
手順
-
Decision Server 環境モードを設定するには、
org.kie.server.modeシステムプロパティーをorg.kie.server.mode=developmentまたはorg.kie.server.mode=productionに設定します。 Business Central のプロジェクトにデプロイメントの動作を設定するには、プロジェクトの Settings → General Settings → Version に移動して、Development Mode オプションを切り替えます。
注記デフォルトでは、Decision Server と Business Central の新規プロジェクトはすべて、開発モードになっています。
Development Mode がオンのプロジェクトや、実稼働モードの Decision Server に手動で
SNAPSHOTバージョンの接尾辞を追加したプロジェクトをデプロイすることはできません。
第9章 Business Central で管理する Decision Server の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、テスト目的で使用可能なサンプルの設定を紹介します。一部の値は、実稼働環境には適しておらず、その旨を記載しています。
以下の手順を使用して、Decision Server インスタンスを管理するように Business Central を設定します。
前提条件
以下のロールを持つユーザーが存在している
-
Business Central:
rest-allロールを持つユーザー -
Decision Server:
kie-serverロールを持つユーザー
実稼働環境では、2 人の異なるユーザーを使用し、それぞれロールを 1 つ割り当ててください。このサンプルでは、rest-all と kie-server の両ロールを持つ controllerUser という名前のユーザー 1 人のみを使用します。
手順
以下の JVM プロパティーを設定します。
Business Central と Decision Server の場所は異なる可能性があります。このような場合、正しいサーバーインスタンスのプロパティーを設定するようにしてください。
Red Hat JBoss EAP で、以下のファイルの
<system-properties>セクションを変更します。-
スタンドアロンモードの場合:
EAP_HOME/standalone/configuration/standalone*.xml -
ドメインモードの場合:
EAP_HOME/domain/configuration/domain.xml
-
スタンドアロンモードの場合:
Expand 表9.1 管理対象 Decision Server インスタンスの JVM プロパティー プロパティー 値 注記 org.kie.server.iddefault-kie-serverDecision Server の ID
org.kie.server.controllerhttp://localhost:8080/decision-central/rest/controllerBusiness Central の場所
org.kie.server.controller.usercontrollerUser前のステップで説明した
rest-allロールを持つユーザーの名前org.kie.server.controller.pwdcontrollerUser1234;前のステップで説明したユーザーのパスワード
org.kie.server.locationhttp://localhost:8080/kie-server/services/rest/serverDecision Server の場所
Expand 表9.2 Business Central インスタンスの JVM プロパティー プロパティー 値 注記 org.kie.server.usercontrollerUser前のステップで説明した
kie-serverロールを持つユーザーの名前org.kie.server.pwdcontrollerUser1234;前のステップで説明したユーザーのパスワード
http://SERVER:PORT/kie-server/services/rest/server/に GET リクエストを送信して Decision Server が正常に起動したことを確認します。認証が終わると、以下のような XML 応答が返されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登録が正常に完了したことを確認します。
- Business Central にログインします。
Menu → Deploy → Execution Servers の順にクリックします。
正常に登録されている場合には、登録されたサーバーの ID が表示されます。
9.1. TLS 対応の Smart Router の設定 リンクのコピーリンクがクリップボードにコピーされました!
TLS 対応の Smart Router (以前の KIE Server Router) 設定か可能となり、HTTPS トラフィックが使用できます。
手順
ターミナルを開いて以下のコマンドを実行し、TLS 対応の Smart Router を起動します。
java -Dorg.kie.server.router.tls.keystore=PATH_TO_YOUR_KEYSTORE -Dorg.kie.server.router.tls.keystore.password=YOUR_KEYSTORE_PASSWD -Dorg.kie.server.router.tls.keystore.keyalias=YOUR_KEYSTORE_ALIAS -jar kie-server-router-proxy-YOUR_VERSION.jarjava -Dorg.kie.server.router.tls.keystore=PATH_TO_YOUR_KEYSTORE -Dorg.kie.server.router.tls.keystore.password=YOUR_KEYSTORE_PASSWD -Dorg.kie.server.router.tls.keystore.keyalias=YOUR_KEYSTORE_ALIAS -jar kie-server-router-proxy-YOUR_VERSION.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow PATH_TO_YOUR_KEYSTORE、YOUR_KEYSTORE_PASSWD、YOUR_KEYSTORE_ALIAS、およびYOUR_VERSIONをそれぞれ関連データで置き換えます。
第10章 管理対象 Decision Server リンクのコピーリンクがクリップボードにコピーされました!
管理対象インスタンスには、Decision Server を起動するために利用可能な Decision Manager コントローラーが必要です。
Decision Manager コントローラーは、Decision Server の設定を一元的に管理します。各 Decision Manager コントローラーは複数の設定を一度に管理でき、環境内に複数の Decision Manager コントローラーを配置することができます。管理対象 Decision Server に複数の Decision Manager コントローラーを設定できますが、一度に接続することができるのは 1 台だけです。
どの Decision Manager コントローラーに接続されても同じ設定セットがサーバーに提供されるように、Decision Manager コントローラーはすべて同期する必要があります。
Decision Server に複数の Decision Manager コントローラーが設定されている場合には、いずれかのコントローラーとの接続が正常に確立されるまで、起動時に各コントローラーに対して接続を試みます。接続を確立できない場合は、設定でローカルのストレージが利用可能な場合でもサーバーは起動しません。こうすることで、整合性を保ち、冗長設定でサーバーが実行されるのを回避します。
Decision Manager コントローラーに接続せずにスタンドアロンモードで Decision Server を実行する方法については、11章非管理対象 Decision Serverを参照してください。
第11章 非管理対象 Decision Server リンクのコピーリンクがクリップボードにコピーされました!
管理対象外の Decision Server はスタンドアロンインスタンスであるため、Decision Server 自体から REST/JMS API を使用して個別に設定する必要があります。再起動時には、サーバーが自動的に設定をファイルに永続化し、そのファイルが内部のサーバーの状態として使用されます。
以下の操作を実行中に、設定が更新されます。
- KIE コンテナーのデプロイ
- KIE コンテナーのデプロイ解除
- KIE コンテナーの起動
- KIE コンテナーの停止
Decision Server が再起動すると、シャットダウン前に永続化された状態を再度確立しようと試みます。そのため、実行していた KIE コンテナー (デプロイメントユニット) は起動しますが、停止していたコンテナーは起動しません。
第12章 デプロイメント記述子 リンクのコピーリンクがクリップボードにコピーされました!
プロセスとルールは Apache Maven ベースのパッケージに保存され、ナレッジアーカイブ、または KJAR と呼ばれます。ルール、プロセス、アセット、およびその他のプロジェクトアーティファクトは、Maven がビルドおよび管理する JAR ファイルの一部です。kmodule.xml と呼ばれる、KJAR の META-INF ディレクトリー内に保存されるファイルを使用して、KIE ベースとセッションを定義できます。デフォルトでは、この kmodule.xml ファイルは空です。
Business Central のようなランタイムコンポーネントが KJAR を処理しようとする際には、ランタイム表記のビルドのために kmodule.xml を検索します。
デプロイメント記述子は kmodule.xml ファイルを補い、デプロイメントにおいてより詳細な制御を提供します。このような記述子は任意で、記述子がなくてもデプロイメントは正常に行われます。記述子を使用して、persistence、auditing、runtime strategy といったメタ値を含む技術的属性を設定することができます。
記述子を使用すると、(サーバーレベルのデフォルト、KJAR ごとに異なるデプロイメント記述子、その他のサーバー設定など) 複数レベルで Decision Server を設定できるようになります。記述子を使用して、デフォルトの Decision Server 設定にシンプルなカスタマイズが可能になります (KJAR ごとなど)。
記述子は kie-deployment-descriptor.xml と呼ばれるファイルで定義し、META-INF ディレクトリーの kmodule.xml ファイルの隣に置くことができます。このデフォルトの場所とファイル名は、システムパラメーターとして指定すると変更できます。
-Dorg.kie.deployment.desc.location=file:/path/to/file/company-deployment-descriptor.xml
-Dorg.kie.deployment.desc.location=file:/path/to/file/company-deployment-descriptor.xml
12.1. デプロイメント記述子の設定 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント記述子を使用すると、ユーザーは以下の複数レベルで実行サーバーを設定することができるようになります。
- サーバーレベル: メインのレベルで、サーバーにデプロイされているすべての KJAR に適用されます。
- KJAR レベル: このレベルでは、KJAR ベースで記述子を設定できます。
- デプロイ時レベル: KJAR のデプロイ時に適用される記述子です。
デプロイメント記述子で指定されたより詳細な設定アイテムは、マージされるコレクションベースの設定アイテムを除いて、サーバーレベルのものよりも優先されます。優先順位は、デプロイ時設定 > KJAR 設定 > サーバー設定 となります。
デプロイ時の設定は、REST API によるデプロイメントに適用されます。
たとえば、サーバーレベルで定義された (設定可能なアイテムの 1 つである) persistence mode が NONE で、同じモードが KJAR レベルでは JPA と指定されている場合、その KJAR の実際のモードは JPA になります。その KJAR についてデプロイメント記述子で persistence mode に何も指定されていない場合 (またはデプロイメント記述子がない場合) は、サーバーレベルの設定にフォールバックします。このケースでは、NONE (またはサーバーレベルのデプロイメント記述子がない場合は JPA) になります。
設定内容
デプロイメント記述子では、高度な技術的設定が可能です。以下の表では、設定可能な詳細と、それぞれの許容値とデフォルト値を掲載しています。
| 設定 | XML エントリー | 許容値 | デフォルト値 |
|---|---|---|---|
| ランタイムデータの永続ユニット名 | persistence-unit | 有効な永続パッケージ名 | org.jbpm.domain |
| 監査データの永続ユニット名 | audit-persistence-unit | 有効な永続パッケージ名 | org.jbpm.domain |
| 永続モード | persistence-mode | JPA, NONE | JPA |
| 監査モード | audit-mode | JPA、JMS、または NONE | JPA |
| ランタイムストラテジー | runtime-strategy | SINGLETON、PER_REQUEST、または PER_PROCESS_INSTANCE | SINGLETON |
| 登録するイベントリスナー一覧 | event-listeners |
| デフォルト値なし |
| 登録するタスクイベントリスナー一覧 | task-event-listeners |
| デフォルト値なし |
| 登録する作業アイテムハンドラー一覧 | work-item-handlers |
| デフォルト値なし |
| 登録するグローバル一覧 | globals |
| デフォルト値なし |
| 登録するマーシャリングストラテジー (プラグ可能変数永続) | marshalling-strategies |
有効な | デフォルト値なし |
| KJAR のリソースにアクセス可能となるために必要なロール | required-roles | 文字列のロール名 | デフォルト値なし |
| KIE セッションの追加の環境エントリー | environment-entries |
有効な | デフォルト値なし |
| KIE セッションの追加の設定オプション | configurations |
有効な | デフォルト値なし |
| リモートサービスのシリアル化に使用するクラス | remoteable-class |
有効な | デフォルト値なし |
12.2. デプロイメント記述子の管理 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメント記述子を設定するには、Business Central で Menu → Design → $PROJECT_NAME → Settings → Deployments と移動します。
プロジェクトが作成されるたびに、ストックの kie-deployment-descriptor.xml ファイルがデフォルト値で生成されます。
すべての KJAR で完全なデプロイメント記述子を提供する必要はありません。部分的なデプロイメント記述子の提供は可能で、かつ推奨されるものです。たとえば、異なる監査モードを使用する必要がある場合は、その KJAR のみにそれを指定し、残りの属性はサーバーレベルのデフォルト値で定義します。
OVERRIDE_ALL マージモードの使用時には、すべての設定アイテムを指定する必要があります。関連する KJAR は常に指定された設定を使用し、階層内の他のデプロイメント記述子とマージしないためです。
12.3. ランタイムエンジンへのアクセス制限 リンクのコピーリンクがクリップボードにコピーされました!
required-roles 設定アイテムは、デプロイメント記述子で編集できます。このプロパティーが定義するグループに属するユーザーにのみ特定プロセスへのアクセスを付与することで、KJAR ごとまたはサーバーレベルごとにランタイムエンジンへのアクセスを制限します。
セキュリティーロールを使用してプロセス定義へのアクセスを制限したり、ランタイムでのアクセスを制限することができます。
リポジトリーの制限に基づいてこのプロパティーに必要なロールを追加するのがデフォルトの動作になります。必要な場合は、セキュリティーレルムで定義されている実際のロールに合致するロールを提供することで、このプロパティーを手動で変更できます。
手順
- プロジェクトのデプロイメント記述子設定を開くには、Business Central で Menu → Design → $PROJECT_NAME → Settings → Deployments の順に選択します。
- 設定一覧から、Required Roles をクリックし、次に Add Required Role をクリックします。
- Add Required Role ウィンドウで、このデプロイメントにアクセスをするパーミッションのロール名を入力し、Add をクリックします。
- デプロイメントにアクセスする権限を持つロールをさらに追加するには、前の手順を繰り返します。
- すべてのロールを追加したら、Save をクリックします。
第13章 OpenShift 接続タイムアウトの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift のルートは 30 秒を超えた HTTP リクエストをタイムアウトするように設定されています。これにより Business Central でセッションタイムアウト問題が発生し、以下の動作につながるおそれがあります。
- "Unable to complete your request.The following exception occurred: (TypeError) : Cannot read property 'indexOf' of null."
- "Unable to complete your request.The following exception occurred: (TypeError) : b is null."
- Business Central で Project リンクまたは Server リンクをクリックすると、空白ページが表示される。
すべての Business Central テンプレートには拡張タイムアウト設定が含まれています。
Business Central OpenShift ルートのタイムアウトを長く設定するには、ターゲットルートに haproxy.router.openshift.io/timeout: 60s の注釈を追加します。
グローバルのルート固有のタイムアウト注釈の完全一覧は、OpenShift ドキュメント を参照してください。
第14章 LDAP ログインドメインの定義 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Decision Manager が認証と承認に LDAP を使用するように設定するには、LDAP ログインドメインを定義します。これは、Git SSH 認証が別のセキュリティードメインを使用する可能性があるためです。
LDAP ログインドメインを定義するには、org.uberfire.domain システムプロパティーを使用します。たとえば、Red Hat JBoss Enterprise Application Platform 上でこのプロパティーを以下のように standalone.xml ファイルに追加します。
<system-properties> <!-- other system properties --> <property name="org.uberfire.domain" value="LDAPAuth"/> </system-properties>
<system-properties>
<!-- other system properties -->
<property name="org.uberfire.domain" value="LDAPAuth"/>
</system-properties>
認証されたユーザーが、LDAP で適切なロール (admin、analyst、reviewer) に関連付けられているようにしてください。
第15章 RH-SSO を使用したサードパーティークライアントの認証 リンクのコピーリンクがクリップボードにコピーされました!
Business Central または Decision Server が提供するさまざまなリモートサービスを使用するには、curl、wget、Web ブラウザー、カスタムの REST クライアントなどのクライアントが、RH-SSO サーバー経由で認証を受け、要求を実行するために有効なトークンを取得する必要があります。リモートのサービスを使用するには、認証済みのユーザーに以下のロールを割り当てる必要があります。
-
rest-all: Business Central リモートサービスを使用する場合 -
kie-server: Decision Server のリモートサービスを使用する場合
RH-SSO 管理コンソールを使用してこれらのロールを作成し、リモートサービスを使用するユーザーに割り当てます。
クライアントは、以下のオプションのいずれかを使用して RH-SSO 経由で認証できます。
- クライアントでサポートされている場合は Basic 認証
- トークンベースの認証
15.1. Basic 認証 リンクのコピーリンクがクリップボードにコピーされました!
Business Central および Decision Server の両方に対して RH-SSO クライアントアダプターの設定で Basic 認証を有効にした場合には、以下の例のようにトークンの付与/更新の呼び出しをせずにサービスを呼び出すことができます。
Web ベースのリモートリポジトリーエンドポイントの場合:
curl http://admin:password@localhost:8080/decision-central/rest/repositories
curl http://admin:password@localhost:8080/decision-central/rest/repositoriesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Decision Server の場合:
curl http://admin:password@localhost:8080/kie-execution-server/services/rest/server/
curl http://admin:password@localhost:8080/kie-execution-server/services/rest/server/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第16章 Decision Server のシステムプロパティー リンクのコピーリンクがクリップボードにコピーされました!
Decision Server では、以下のシステムプロパティー (ブートストラップスイッチ) を使用してサーバーの動作を設定できます。
| プロパティー | 値 | デフォルト | 説明 |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以下の表に記載した Decision Manager コントローラーのプロパティーの中で、必須と印がついているものがあります。Business Central で Decision Server を作成または削除する場合に、このプロパティーを設定してください。Business Central との対話なしに Decision Server を別個で使用する場合には、必須のプロパティーを設定する必要はありません。
| プロパティー | 値 | デフォルト | 説明 |
|---|---|---|---|
|
| String | 該当なし | サーバーに割り当てる任意の ID。ヘッドレス Decision Manager コントローラーが Business Central 外に設定されている場合は、サーバーがこの ID を使用してヘッドレス Decision Manager コントローラーと接続し、KIE コンテナー設定をフェッチします。指定されていない場合、ID は自動で生成されます。 |
|
| String |
| Decision Manager コントローラーから Decision Server への接続に使用するユーザー名。このプロパティーは、Business Central のシステムプロパティーで設定します。Decision Manager コントローラーを使用する場合は、このプロパティーを設定します。 |
|
| String |
| コントローラーから Decision Server への接続に使用するパスワード。このプロパティーは、Business Central のシステムプロパティーで設定します。Decision Manager コントローラーを使用する場合は、このプロパティーを設定します。 |
|
| String | 該当なし | このプロパティーにより、Decision Manager コントローラーと Decision Server 間の認証に、ユーザー名/パスワードを使用する Basic 認証ではなく、トークンベースの認証を使用できます。Decision Manager コントローラーは、要求ヘッダーのパラメーターとしてトークンを送信します。トークンは更新されないため、サーバーには有効期限の長いアクセストークンが必要です。 |
|
| URL | 該当なし |
Decision Manager コントローラーが Decision Server インスタンスをコールバックするのに使用する URL (例: |
|
| コンマ区切りのリスト | 該当なし |
Decision Manager コントローラー REST エンドポイントへの URL のコンマ区切りリスト (例: |
|
| String |
| Decision Manager コントローラー REST API に接続するためのユーザー名。Decision Manager コントローラーを使用する場合は、このプロパティーの設定が必須です。 |
|
| String |
| Decision Manager コントローラー REST API に接続するためのパスワード。Decision Manager コントローラーを使用する場合は、このプロパティーの設定が必須です。 |
|
| String | 該当なし | このプロパティーにより、Decision Manager コントローラーと Decision Server 間の認証に、ユーザー名/パスワードを使用する Basic 認証ではなく、トークンベースの認証を使用できます。このサーバーは、要求ヘッダーのパラメーターとしてトークンを送信します。トークンは更新されないため、サーバーには有効期限の長いアクセストークンが必要です。 |
|
| Long |
| サーバーの起動時に Decision Server を Decision Manager コントローラーに接続することを試み、次に試みるまでの待機時間 (ミリ秒)。 |
| プロパティー | 値 | デフォルト | 説明 |
|---|---|---|---|
|
| URL | 該当なし |
Java Cryptography Extension KeyStore (JCEKS) の読み込みに使用する URL。例: |
|
| String | 該当なし | JCEKS に使用するパスワード |
|
| String | 該当なし | パスワードの保存先となる REST サービスのキーのエイリアス名 |
|
| String | 該当なし | REST サービスのエイリアスのパスワード |
|
| String | 該当なし | デフォルトの REST Decision Manager コントローラー用のキーのエイリアス |
|
| String | 該当なし | デフォルトの REST Decision Manager コントローラー用のエイリアスのパスワード |
| プロパティー | 値 | デフォルト | 説明 |
|---|---|---|---|
|
| パス | 該当なし |
Maven 設定のカスタム |
|
| String |
| JMS に対する応答キューの JNDI 名。 |
|
|
|
|
|
|
| String | 該当なし |
JMS を使用する場合にユーザーの認証に使う JAAS |
|
| パス |
| Decision Server の状態ファイルが保存される場所 |
|
|
|
| Decision Server に対して、Decision Manager コントローラーがコンテナーのデプロイメント設定を提供するまでデプロイメントを保持するように指示します。このプロパティーは、管理モードで実行するサーバーのみが対象です。以下のオプションが利用できます。
* |
|
|
|
| デプロイした KIE コンテナーの制御に使用する Decision Server の起動ストラテジーおよび、デプロイする順番 |
|
|
|
|
|
|
|
| 該当なし | XStream を使用してマーシャリングのホワイトリスト化を行うための追加パッケージを指定するプロパティー |
|
| String |
|
KieSession インスタンスのブートストラップを行う |
第17章 Decision Server の機能と拡張 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server の機能は、ビジネスニーズに合わせて有効化、無効化、または拡張可能なプラグインにより決まります。Decision Server は以下の機能および拡張をサポートします。
| 機能名 | 拡張名 | 説明 |
|---|---|---|
|
|
| サーバーインスタンスでの KIE コンテナーの作成や削除など、Decision Server のコア機能を提供します。 |
|
|
| ファクトの挿入やビジネスルールの実行など、ビジネスルール管理 (BRM) 機能を提供します。 |
|
|
| ソルバーの実装など、ビジネスリソースプランニング (BRP) 機能を提供します。 |
|
|
| DMN データ型の管理や DMN モデルの実行など、Decision Model and Notation (DMN) 機能を提供します。 |
|
|
| Decision Server REST API と対話するための Swagger の Web インターフェイス機能を提供します。 |
実行中の Decision Server インスタンスに対応する拡張を表示するには、以下の REST API エンドポイントに GET 要求を送信して、XML または JSON サーバーの要求を確認します。
Decision Server の情報に対する GET 要求のベース URL
http://SERVER:PORT/kie-server/services/rest/server
http://SERVER:PORT/kie-server/services/rest/server
Decision Server の情報を含む JSON 応答の例
Decision Server 拡張機能を有効または無効にするには、関連する Decision Server システムプロパティー (*.server.ext.disabled) を設定します。たとえば、BRM 機能を無効にするには、org.drools.server.ext.disabled=true システムプロパティーを設定します。全 Decision Server システムプロパティーについては、16章Decision Server のシステムプロパティー を参照してください。
デフォルトでは、Decision Server 拡張機能は REST または JMS データトランスポートで公開され、事前定義済みのクライアント API を使用します。追加の REST エンドポイントで既存の Decision Server 機能を拡張するか、REST または JMS 以外の対応するトランスポートメソッドを拡張するか、Decision Server クライアントの機能を拡張できます。
Decision Server 機能は柔軟であるため、デフォルトの Decision Server 機能にビジネスニーズを合わせるのではなく、Decision Server インスタンスをビジネスニーズに適合できます。
Decision Server 機能を拡張した場合には、Red Hat では、カスタムの実装や拡張の一部として使用したカスタムコードをサポートしません。
17.1. カスタム REST API エンドポイントを使用した既存の Decision Server 機能の拡張 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server REST API を使用すると、Business Central ユーザーインターフェイスを使わずに Red Hat Decision Manager の KIE コンテナーやビジネスアセット (ビジネスルールやプロセス、ソルバーなど) を操作することができます。利用可能な REST エンドポイントは、Decision Server システムプロパティーで有効にした機能により決まります (例: BRM 機能は org.drools.server.ext.disabled=false)。既存の Decision Server 機能は、カスタムの REST API エンドポイントで拡張し、ビジネスニーズに合わせて Decision Server REST API を適合できます。
たとえば、この手順では、以下のカスタム REST API エンドポイントで Drools Decision Server 機能 (BRM 機能向け) を拡張します。
カスタム REST API エンドポイントの例
/server/containers/instances/{containerId}/ksession/{ksessionId}
/server/containers/instances/{containerId}/ksession/{ksessionId}
このカスタムのエンドポイントの例では、デシジョンエンジンの作業メモリーに挿入するファクト一覧を受け入れ、自動的に全ルールを実行して、指定の KIE コンテナーで KIE セッションからのオブジェクトをすべて取得します。
手順
空の Maven プロジェクトを作成して、以下のパッケージタイプと依存関係を、プロジェクトの
pom.xmlファイルに定義します。サンプルプロジェクトの pom.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、プロジェクトの Java クラスに
org.kie.server.services.api.KieServerApplicationComponentsServiceインターフェイスを実装します。KieServerApplicationComponentsServiceインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- アプリケーションの起動時にデプロイされる Decision Server インフラストラクチャーに REST エンドポイントを提供します。
- 2
- この例の
Drools拡張など、拡張する機能を指定します。 - 3
- REST コンテナーがデプロイする必要のある全リソースを返します。Decision Server インスタンスで有効化した各拡張で、
getAppComponentsメソッドを呼び出して、指定したOWNER_EXTENSION以外の拡張の空のコレクションを、if ( !OWNER_EXTENSION.equals(extension) )の呼び出しで返します。 - 4
- この例の
Drools拡張のRulesExecutionServiceやKieServerRegistryサービスなど、指定の拡張から使用するサービスを表示します。 - 5
componentsリストの一部としてリソースを返すCustomResourceクラスと、拡張のトランスポートタイプをRESTまたはJMSに指定します (この例ではREST)。
以下の例のように、Decision Server を使用して新規の REST リソースの機能を追加する
CustomResourceクラスを実装します。CustomResourceクラスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、カスタムエンドポイントの
CustomResourceクラスで、以下のデータと動作を指定します。-
server/containers/instances/{containerId}/ksessionのベースポイントを使用します。 -
POSTHTTP メソッドを使用します。 REST 要求で以下のデータを指定する必要があります。
-
パスの引数として
containerId -
パスの引数として
ksessionId - メッセージペイロードとしてファクトの一覧
-
パスの引数として
全 Decision Server データ形式をサポートします。
- XML (JAXB、XStream)
- JSON
-
List<?>コレクションにペイロードをアンマーシャリングして、リスト内のアイテムごとに、InsertCommandインスタンスを作成し、その後にFireAllRulesとGetObjectコマンドを追加します。 -
デシジョンエンジンを呼び出す
BatchExecutionCommandインスタンスに全コマンドを追加します。
-
-
新規エンドポイントを Decision Server で検出できるようにするには、Maven プロジェクト内に
META-INF/services/org.kie.server.services.api.KieServerApplicationComponentsServiceファイルを作成して、このファイルにKieServerApplicationComponentsService実装クラスの完全修飾名を追加します。たとえば、このファイルには、org.kie.server.ext.drools.rest.CusomtDroolsKieServerApplicationComponentsServiceの 1 行が含まれます。 -
プロジェクトを構築して、作成された JAR ファイルをプロジェクトの
~/kie-server.war/WEB-INF/libディレクトリーにコピーします。たとえば、Red Hat JBoss EAP ではこのディレクトリーへのパスはEAP_HOME/standalone/deployments/kie-server.war/WEB-INF/libです。 Decision Server を起動して、実行中の Decision Server に構築したプロジェクトをデプロイします。プロジェクトは、Business Central インターフェイスまたは Decision Server REST API (
http://SERVER:PORT/kie-server/services/rest/server/containers/{containerId}へのPUT要求) のいずれかを使用してデプロイできます。実行中の Decision Server にプロジェクトを追加した後に、新しい REST エンドポイントとの対話を開始します。
今回の例では、以下の情報を使用して新規エンドポイントを呼び出すことができます。
-
要求 URL 例:
http://localhost:8080/kie-server/services/rest/server/containers/instances/demo/ksession/defaultKieSession -
HTTP メソッド:
POST HTTP ヘッダー:
-
Content-Type: application/json -
Accept: application/json
-
メッセージペイロードの例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
サーバーの応答例:
200(success) サーバーのログ出力例:
13:37:20,347 INFO [stdout] (default task-24) Hello mary 13:37:20,348 INFO [stdout] (default task-24) Hello john
13:37:20,347 INFO [stdout] (default task-24) Hello mary 13:37:20,348 INFO [stdout] (default task-24) Hello johnCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
要求 URL 例:
17.2. カスタムデータトランスポートを使用するための Decision Server の拡張 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Decision Server の拡張が REST または JMS データトランスポートを使用して公開されます。Decision Server を拡張して、カスタムのデータトランスポートのサポートを追加し、Decision Server トランスポートプロトコルをビジネスニーズに適合します。
たとえば、以下の手順では、Drools 拡張を使用し、Apache MINA (オープンソースの Java ネットワークアプリケーションフレームワーク) をベースとする Decision Server にカスタムのデータトランスポートを追加します。カスタムの MINA トランスポートの例では、既存のマーシャリング操作に依存し、JSON 形式のみをサポートする文字列ベースのデータを変換します。
手順
空の Maven プロジェクトを作成して、以下のパッケージタイプと依存関係を、プロジェクトの
pom.xmlファイルに定義します。サンプルプロジェクトの pom.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、プロジェクトの Java クラスに
org.kie.server.services.api.KieServerExtensionインターフェイスを実装します。KieServerExtensionインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow KieServerExtensionインターフェイスは、新規の MINA トランスポートの機能を追加する時に Decision Server が使用する主要な拡張インターフェイスです。このインターフェイスには、以下のコンポーネントが含まれます。KieServerExtensionインターフェイスの概要Copy to Clipboard Copied! Toggle word wrap Toggle overflow このインターフェイスの先程の
MinaDroolsKieServerExtension実装例では、initメソッドが主に、Drools拡張からサービスを収集して、MINA サーバーをブートストラップ化する要素となっています。KieServerExtensionインターフェイスの他のメソッドは、標準の実装のままで、インターフェイスの要件を満たします。TextBasedIoHandlerAdapterクラスは、受信要求に対応する MINA サーバーにあるハンドラーです。以下の例のように、MINA サーバーの
TextBasedIoHandlerAdapterハンドラーを実装します。TextBasedIoHandlerAdapterハンドラーの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、ハンドラークラスはテキストメッセージを受信して、
Droolsサービスでこのメッセージを実行します。TextBasedIoHandlerAdapterハンドラー実装を使用する場合は、以下のハンドラー要件と動作を考慮してください。- 各受信トランスポート要求が 1 行であるため、ハンドラーに送信する内容は、1 行でなければなりません。
-
ハンドラーで
containerID|payloadの形式が想定されるように、この 1 行に KIE コンテナー ID を渡す必要があります。 - マーシャラーで生成される方法で応答を設定できます。応答は複数行にすることができます。
-
このハンドラーは stream mode をサポートし、Decision Server セッションを切断せずにコマンドを送信できます。ストリームモードで Decision Server セッションを終了するには、サーバーに
exitまたはquitコマンドを送信してください。
-
新規のデータトランスポートを Decision Server で検出できるようにするには、Maven プロジェクトで
META-INF/services/org.kie.server.services.api.KieServerExtensionファイルを作成し、このファイルにKieServerExtension実装クラスの完全修飾名を追加します。たとえば、このファイルにはorg.kie.server.ext.mina.MinaDroolsKieServerExtensionの 1 行が含まれます。 -
プロジェクトを構築して、作成された JAR ファイルと
mina-core-2.0.9.jarファイル (今回の例でこの拡張が依存) をプロジェクトの~/kie-server.war/WEB-INF/libディレクトリーにコピーします。たとえば、Red Hat JBoss EAP ではこのディレクトリーへのパスはEAP_HOME/standalone/deployments/kie-server.war/WEB-INF/libです。 Decision Server を起動して、実行中の Decision Server に構築したプロジェクトをデプロイします。プロジェクトは、Business Central インターフェイスまたは Decision Server REST API (
http://SERVER:PORT/kie-server/services/rest/server/containers/{containerId}へのPUT要求) のいずれかを使用してデプロイできます。プロジェクトを実行中の Decision Server にデプロイした後に、Decision Server ログで新規データトランスポートのステータスを表示して、新規データトランスポートの使用を開始できます。
サーバーログの新規データトランスポート
Drools-Mina KIE Server extension -- Mina server started at localhost and port 9123 Drools-Mina KIE Server extension has been successfully registered as server extension
Drools-Mina KIE Server extension -- Mina server started at localhost and port 9123 Drools-Mina KIE Server extension has been successfully registered as server extensionCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Telnet を使用して Decision Server の 新しい MINA ベースのデータトランスポートと対話できます。
コマンドターミナルでの Telnet の開始およびポート 9123 での Decision Server の接続
telnet 127.0.0.1 9123
telnet 127.0.0.1 9123Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドターミナルでの Decision Server との対話例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーログの出力例
16:33:40,206 INFO [stdout] (NioProcessor-2) Hello john 16:34:03,877 INFO [stdout] (NioProcessor-2) Hello mary 16:34:19,800 INFO [stdout] (NioProcessor-2) Hello james
16:33:40,206 INFO [stdout] (NioProcessor-2) Hello john 16:34:03,877 INFO [stdout] (NioProcessor-2) Hello mary 16:34:19,800 INFO [stdout] (NioProcessor-2) Hello jamesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
17.3. カスタムクライアント API を使用した Decision Server のクライアント拡張 リンクのコピーリンクがクリップボードにコピーされました!
Decision Server は、Decision Server サービスの使用時に対話可能な、事前定義済みのクライアント API を使用します。カスタムのクライアント API で Decision Server クライアントを拡張して、ビジネスのニーズに Decision Server サービスを適合させます。
たとえば、以下の手順では、カスタムのクライアント API を Decision Server に追加して、Apache MINA (オープンソースの Java ネットワークアプリケーションフレームワーク) をもとにした、カスタムのデータトランスポートに対応します (このシナリオ向けにすでに設定済み)。
手順
空の Maven プロジェクトを作成して、以下のパッケージタイプと依存関係を、プロジェクトの
pom.xmlファイルに定義します。サンプルプロジェクトの pom.xml ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例のように、プロジェクトの Java クラスに、関連する
ServicesClientインターフェイスを実装します。RulesMinaServicesClientインターフェイスの例public interface RulesMinaServicesClient extends RuleServicesClient { }public interface RulesMinaServicesClient extends RuleServicesClient { }Copy to Clipboard Copied! Toggle word wrap Toggle overflow インターフェイスをもとにクライアントの実装を登録する必要があるため、特定のインターフェイスが必要です。また、指定のインターフェイスには実装は 1 つしか指定できません。
この例では、カスタムの MINA ベースのデータトランスポートが
Drools拡張を使用し、このRulesMinaServicesClientインターフェイスの例は、Drools拡張から、既存のRuleServicesClientクライアント API を拡張します。以下の例のように、新規の MINA トランスポートのクライアント機能を追加するのに Decision Server が使用可能な
RulesMinaServicesClientインターフェイスを実装します。RulesMinaServicesClientインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow この実装例は、以下のデータおよび動作を指定します。
- ソケットベースの通信を使用して簡素化します。
-
Decision Server クライアントのデフォルト設定に依存し、
ServerUrlを使用して MINA サーバーのホストとポートを提供します。 - マーシャリング形式で JSON を指定します。
-
受信メッセージは左波括弧
{で始まる JSON オブジェクトでなければなりません。 - 応答の最初の行を待機中に、ブロッキング API と直接、ソケット通信を使用してから、利用可能なすべての行を読み取ります。
- ストリームモード を使用しないので、コマンドの呼び出し後に Decision Server セッションを切断します。
以下の例のように、プロジェクトの Java クラスに
org.kie.server.client.helper.KieServicesClientBuilderインターフェイスを実装します。KieServicesClientBuilderインターフェイスの実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
新規のクライアント API を Decision Server クライアントで検出できるようにするには、Maven プロジェクトで
META-INF/services/org.kie.server.client.helper.KieServicesClientBuilderファイルを作成し、このファイルにKieServicesClientBuilder実装クラスの完全修飾名を追加します。たとえば、このファイルにはorg.kie.server.ext.mina.client.MinaClientBuilderImplの 1 行が含まれます。 -
プロジェクトを構築して、作成された JAR ファイルをプロジェクトの
~/kie-server.war/WEB-INF/libディレクトリーにコピーします。たとえば、Red Hat JBoss EAP ではこのディレクトリーへのパスはEAP_HOME/standalone/deployments/kie-server.war/WEB-INF/libです。 Decision Server を起動して、実行中の Decision Server に構築したプロジェクトをデプロイします。プロジェクトは、Business Central インターフェイスまたは Decision Server REST API (
http://SERVER:PORT/kie-server/services/rest/server/containers/{containerId}へのPUT要求) のいずれかを使用してデプロイできます。実行中の Decision Server にプロジェクトをデプロイしたあとに、新規の Decision Server クライアントと対話を開始できます。標準の Decision Server クライアントと同じ方法で、クライアント設定とクライアントインスタンスを作成して、タイプ別にサービスクライアントを取得し、クライアントメソッドを呼び出して、新しいクライアントを使用します。
たとえば、
RulesMinaServiceClientクライアントインスタンスを作成して、MINA トランスポートを使用して Decision Server で操作を呼び出すことができます。RulesMinaServiceClientクライアント作成の実装例Copy to Clipboard Copied! Toggle word wrap Toggle overflow MINA トランスポートを使用して Decision Server 上で操作を呼び出す設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第18章 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat JBoss EAP 7.2 への Red Hat Decision Manager のインストールおよび設定
- Red Hat Decision Manager インストールの計画
- Red Hat JBoss EAP 7.2 への Red Hat Decision Manager のインストールおよび設定
- Red Hat JBoss Developer Studio と Red Hat Decision Manager の統合
- Red Hat OpenShift Container Platform への Red Hat Decision Manager 管理対象サーバー環境のデプロイ
付録A バージョン情報 リンクのコピーリンクがクリップボードにコピーされました!
本書の最終更新日: 2021 年 11 月 15 日 (月)