第26章 KIE Server テンプレートおよびインスタンス用の Process Automation Manager コントローラー Java クライアント API
Red Hat Process Automation Manager は Process Automation Manager コントローラー Java クライアント API を提供し、これを使用することで Java クライアントアプリケーションから REST もしくは WebSocket プロトコルを使用して Process Automation Manager コントローラーに接続できるようになります。Process Automation Manager コントローラー REST API の代わりに Process Automation Manager コントローラー Java クライアント API を使用して、Business Central ユーザーインターフェイスを使わずに Red Hat Process Automation Manager で KIE Server テンプレート (設定)、KIE Server のインスタンス (リモートサーバー)、関連する KIE コンテナー (デプロイメントユニット) を操作することができます。この API のサポートにより、Red Hat Process Automation Manager サーバーおよびリソースをより効率的に維持でき、Red Hat Process Automation Manager の統合と開発を最適化できるようになります。
Process Automation Manager コントローラー Java クライアント API を使用すると、Process Automation Manager コントローラー REST API でもサポートされている以下のアクションが実行可能になります。
- KIE Server テンプレート、インスタンス、および関連する KIE コンテナーに関する情報の取得
- KIE Server テンプレートおよびインスタンスに関連付けられた KIE コンテナーの更新、起動、または停止
- KIE Server テンプレートの作成、更新、または削除
- KIE Server インスタンスの作成、更新、または削除
Process Automation Manager コントローラー Java クライアント API 要求には以下のコンポーネントが必要です。
- 認証
Process Automation Manager コントローラー Java クライアント API は、コントローラーのタイプによって、以下のユーザーロールに HTTP の Basic 認証を必要とします。
-
Business Central をインストールしていて、ビルトインの Process Automation Manager コントローラーを使用する場合は、
rest-all
のユーザーロール。 -
ヘッドレス Process Automation Manager コントローラーを Business Central とは別にインストールしている場合は、
kie-server
のユーザーロール。
お使いの Red Hat Process Automation Manager に設定されているユーザーロールを表示するには、
~/$SERVER_HOME/standalone/configuration/application-roles.properties
と~/application-users.properties
に移動します。ユーザーに
kie-server
ロールかrest-all
ロール、もしくはそれら両方を追加するには (Keystore がすでに設定されていると仮定)、~/$SERVER_HOME/bin
に移動し、ロールを指定して以下のコマンドを実行します。./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role kie-server,rest-all
$ ./add-user.sh -a --user <USERNAME> --password <PASSWORD> --role kie-server,rest-all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーストアが設定されていない場合は、以下のコマンドを実行してキーストアを作成します。
keytool -importpassword -keystore $SERVER_HOME/standalone/configuration/kie_keystore.jceks -keypass <SECRETKEYPASSWORD> -alias kieserver -storepass <SECRETSTOREPASSWORD> -storetype JCEKS
$ keytool -importpassword -keystore $SERVER_HOME/standalone/configuration/kie_keystore.jceks -keypass <SECRETKEYPASSWORD> -alias kieserver -storepass <SECRETSTOREPASSWORD> -storetype JCEKS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、
~/$SERVER_HOME/standalone/configuration/standalone-full.xml
に以下のプロパティーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Process Automation Manager コントローラーのアクセスで
kie-server
またはrest-all
ユーザーを設定するには、~/$SERVER_HOME/standalone/configuration/standalone-full.xml
に移動し、(該当する場合は)org.kie.server
プロパティーのコメントを解除して、コントローラーユーザーログイン認証情報とコントローラーの位置を (必要に応じて) 追加します。<property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"/> <property name="org.kie.server.controller.user" value="<USERNAME>"/> <property name="org.kie.server.id" value="default-kieserver"/>
<property name="org.kie.server.location" value="http://localhost:8080/kie-server/services/rest/server"/> <property name="org.kie.server.controller" value="http://localhost:8080/business-central/rest/controller"/> <property name="org.kie.server.controller.user" value="<USERNAME>"/> <property name="org.kie.server.id" value="default-kieserver"/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーロールと Red Hat Process Automation Manager のインストールオプションの詳細は、Red Hat Process Automation Manager インストールの計画 を参照してください。
-
Business Central をインストールしていて、ビルトインの Process Automation Manager コントローラーを使用する場合は、
- プロジェクトの依存関係
Process Automation Manager コントローラー Java クライアント API は、Java プロジェクトの関連するクラスパスで、以下の依存関係を必要とします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Process Automation Manager 依存関係の
<version>
は、プロジェクトで現在使用している Red Hat Process Automation Manager の Maven アーティファクトバージョンです (例: 7.44.0.Final-redhat-00006)。注記個別の依存関係に対して Red Hat Process Automation Manager
<version>
を指定するのではなく、Red Hat Business Automation BOM (bill of materials) の依存関係をプロジェクトのpom.xml
ファイルに追加することを検討してください。Red Hat Business Automation BOM は、Red Hat Decision Manager と Red Hat Process Automation Manager の両方に適用されます。BOM ファイルを追加すると、提供される Maven リポジトリーから、推移的依存関係の適切なバージョンがプロジェクトに含められます。BOM 依存関係の例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Business Automation BOM (Bill of Materials) についての詳細情報は、What is the mapping between RHPAM product and maven library version? を参照してください。
- クライアント要求の設定
Process Automation Manager コントローラー Java クライアント API による Java クライアント要求はすべて、少なくとも以下のコントローラー通信コンポーネントを定義する必要があります。
-
Business Central をインストールしている場合は
rest-all
ユーザーの認証情報、またはヘッドレス Process Automation Manager コントローラーを Business Central とは別にインストールしている場合はkie-server
のユーザーの認証情報。 REST もしくは WebSocket プロトコル用 Process Automation Manager コントローラーの場所。
-
REST URL の例:
http://localhost:8080/business-central/rest/controller
-
WebSocket URL の例:
ws://localhost:8080/headless-controller/websocket/controller
-
REST URL の例:
- API 要求および応答のマーシャリングフォーマット (JSON または JAXB)
-
KieServerControllerClient
オブジェクト。これは、Java クライアント API を使用してサーバー通信を開始するためのエントリーポイントのロールを果たします。 -
REST プロトコルまたは WebSocket プロトコルおよびユーザーアクセスを定義する
KieServerControllerClientFactory
。 -
使用される Process Automation Manager コントローラークライアントサービス (
listServerTemplates
、getServerTemplate
、getServerInstances
など)。
以下は、これらのコンポーネントを使用した REST および WebSocket クライアントの設定例です。
REST によるクライアント設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow WebSocket によるクライアント設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Business Central をインストールしている場合は
26.1. Process Automation Manager コントローラー Java クライアント API を使用した要求送信 リンクのコピーリンクがクリップボードにコピーされました!
Process Automation Manager コントローラー Java クライアント API を使用すると、Java クライアントアプリケーションから REST もしくは WebSocket プロトコルを使用して Process Automation Manager コントローラー に接続できるようになります。Process Automation Manager コントローラー REST API の代わりに Process Automation Manager コントローラー Java クライアント API を使用して、Business Central ユーザーインターフェイスを使わずに Red Hat Process Automation Manager で KIE Server テンプレート (設定)、KIE Server のインスタンス (リモートサーバー)、関連する KIE コンテナー (デプロイメントユニット) を操作することができます。
前提条件
- KIE Server をインストールし、実行している。
- Process Automation Manager コントローラーまたはヘッドレス Process Automation Manager コントローラーがインストールされ、実行中である。
-
Business Central をインストールしている場合は Process Automation Manager コントローラーにアクセスする
rest-all
ユーザーロールがある。もしくは、Business Central とは別にインストールされたヘッドレス Process Automation Manager コントローラーにアクセスするkie-server
ユーザーロールがある。 - Red Hat Process Automation Manager リソースを使った Java プロジェクトがある。
手順
クライアントアプリケーションで、Java プロジェクトの関連クラスパスに以下の依存関係が追加されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Red Hat カスタマーポータル から Red Hat Process Automation Manager 7.9.1 Source Distribution をダウンロードし、
~/rhpam-7.9.1-sources/src/droolsjbpm-integration-$VERSION/kie-server-parent/kie-server-controller/kie-server-controller-client/src/main/java/org/kie/server/controller/client
に移動して Process Automation Manager コントローラー Java クライアントにアクセスします。 -
~/kie/server/controller/client
フォルダーで、KIE Server テンプレートや KIE コンテナーが REST プロトコルでクライアントサービスにアクセスするために、RestKieServerControllerClient
実装などの送信する要求用の関連 Java クライアント実装を特定します。 クライアントアプリケーションで、API 要求用の
.java
クラスを作成します。クラスには、Process Automation Manager コントローラーの場所とユーザー認証情報、KieServerControllerClient
オブジェクト、実行するクライアントメソッド (RestKieServerControllerClient
実装からのcreateServerTemplate
やcreateContainer
など) を含める必要があります。ご自分のユースケースに合わせて、設定詳細を調整します。KIE Server テンプレートおよび KIE コンテナーの作成と対話
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定済み
.java
クラスをプロジェクトディレクトリーから実行して要求を実行し、Process Automation Manager コントローラーの応答を確認します。デバッグのロギングが有効になっている場合は、JSON などの設定済みマーシャリングフォーマットに従って、KIE Server が詳細を返します。エラーが発生した場合は、返されたエラーメッセージを確認して、それに応じて Java 設定を調整します。