Red Hat Process Automation Manager での Red Hat build of Kogito の使用
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
ビジネスデシジョンの開発者は、Red Hat build of Kogito を使用して、ビジネスドメインおよびツールを適応するクラウドネイティブアプリケーションを構築できます。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みにより、これらの変更は今後の複数のリリースに対して段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
パート I. Red Hat build of Kogito マイクロサービスの使用 リンクのコピーリンクがクリップボードにコピーされました!
ビジネスデシジョンの開発者は、Red Hat build of Kogito ビジネス自動化を使用して、DMN (Decision Model and Notation) モデル、DRL (Drools Rule Language) ルール、PMML (Predictive Model Markup Language) またはこの 3 つのメソッドを自由に組み合わせて、デシジョンサービスを開発できます。
前提条件
- JDK 11 以降がインストールされている。
- Apache Maven 3.6.2 以降がインストールされている。
第1章 Red Hat Process Automation Manager での Red Hat build of Kogito マイクロサービス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito は、クラウド対応のビジネスアプリケーションを構築するクラウドネイティブのビジネス自動化テクノロジーです。名前 Kogito は、"Cogito, ergo sum" ("I think, therefore I am") で使用されるラテン語 Cogito を由来とし、[ˈkoː.d͡ʒi.to] (コジート) と発音します。文字 K は Kubernetes を指し、Red Hat Process Automation のターゲットクラウドプラットフォームとして Red Hat OpenShift Container Platform のベースと、Red Hat build of Kogito が起点となるオープンソースビジネス自動化プロジェクトに対応します。
Red Hat Process Automation Manager の Red Hat build of Kogito はハイブリッドクラウド環境向けに最適化されており、ドメインおよびツールのニーズに順応します。Red Hat build of Kogito マイクロサービスは主に、独自のドメイン固有のクラウドネイティブセットにデシジョンのセットを形成しやすくすることを目的とします。
Red Hat Process Automation Manager 7.13 バージョンでは、Red Hat build of Kogito のサポートは Decision Model and Notation (DMN)、Drools Rule Language (DRL)、Predictive Model Markup Language (PMML) などのデシジョンサービスに制限されます。このサポートは、将来のリリースで改善され、Business Process Modeling Notation (BPMN) に拡張される予定です。
Red Hat build of Kogito を使用する場合は、クラウドネイティブアプリケーションを独立したドメイン固有のマイクロサービスのセットとしてビルドし、ビジネスバリューを実現します。ターゲットの動作の記述に使用するデシジョンは、作成するマイクロサービスの一部として実行されます。その結果、マイクロサービスは高度に分散され、スケーラブルになり、一元化されたオーケストレーションサービスがなくなります。また、マイクロサービスが使用するランタイムは必要に応じて最適化されます。
ビジネスルール開発者は、Red Hat Process Automation Manager で Red Hat build of Kogito マイクロサービスを使用して、ビジネスドメインおよびツールに適合するクラウドネイティブアプリケーションを構築できます。
1.1. cloud-first の優先度 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスは、クラウドインフラストラクチャー上で実行され、スケーリングできるように設計されています。Red Hat build of Quarkus などの最新のクラウドベースのテクノロジーが含まれる Red Hat Process Automation Manager で Red Hat build of Kogito マイクロサービスを使用し、Red Hat OpenShift Container Platform などのコンテナーアプリケーションプラットフォームでの起動時間および即時スケーリングを向上できます。
たとえば、Red Hat build of Kogito マイクロサービスは以下のテクノロジーと互換性があります。
- Red Hat OpenShift Container Platform は Kubernetes をベースとしており、コンテナー化されたアプリケーションをビルドし、管理するためのターゲットプラットフォームです。
- Red Hat build of Quarkus は、Red Hat build of Kogito マイクロサービスを使用してアプリケーションをビルドするために使用できる Kubernetes のネイティブ Java スタックです。
- Spring Boot は、Red Hat Process Automation Manager で Spring Framework を設定するために使用できるアプリケーションフレームワークです。
1.2. Red Hat build of Quarkus および Spring Boot での Red Hat build of Kogito マイクロサービス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスがサポートする主な Java フレームワークは、Red Hat build of Quarkus および Spring Boot です。
Red Hat build of Quarkus は、特に OpenJDK HotSpot などの Java 仮想マシン (JVM) 向けの、コンテナーファーストアプローチを使用した Kubernetes ネイティブ Java フレームワークです。Red Hat build of Quarkus は、Java アプリケーションとコンテナーイメージフットプリントの両方のサイズを小さくし、Java プログラミングのワークロードの一部を以前の世代から排除し、それらのイメージの実行に必要なメモリー量を減らすことで、Java 専用の Kubernetes を最適化します。
Red Hat build of Kogito マイクロサービスにとっては、Red Hat build of Quarkus は高度なデバッグを行う開発モードでのライブリロードなど、Kubernetes の互換性および強化された開発者機能を最適化するための推奨フレームワークです。
Spring Boot は、スタンドアロンで実稼働対応の Spring アプリケーションをビルドするための Java ベースのフレームワークです。Spring Boot では、Spring 設定すべてを設定せずに最小設定で Spring アプリケーションを開発できます。
Red Hat build of Kogito マイクロサービスを使用する場合に、Spring Boot は既存の Spring Framework 環境で Red Hat Process Automation Manager を使用する必要のある開発者向けにサポートされます。
第2章 Red Hat build of Kogito マイクロサービスの DMN モデラー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager は、グラフィカルモデラーを使用して Red Hat build of Kogito マイクロサービスに Decision Model and Notation (DMN) デシジョンモデルを設計するために使用できる拡張機能またはアプリケーションを提供します。
次の DMN モデラーがサポートされています。
VS Code 拡張機能: Visual Studio Code (VS Code) で DMN モデルを表示し、設計できます。VS Code 拡張機能には VS Code 1.46.0 以降が必要です。
VS Code に直接拡張機能をインストールするには、VS Code で Extensions メニューオプションを選択して、Red Hat Business Automation Bundle 拡張を検索し、インストールします。
-
Business Modeler スタンドアロンエディター: Web アプリケーションに組み込まれた DMN モデルを表示して、作成できます。必要なファイルをダウンロードするには、Kogito ツールリポジトリー から NPM アーティファクトを使用するか、
https://kiegroup.github.io/kogito-online/standalone/dmn/index.jsの DMN スタンドアロンエディターライブラリーに直接 JavaScript ファイルをダウンロードできます。
2.1. Red Hat Process Automation Manager VS Code 拡張機能バンドルのインストール リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager は、Red Hat Business Automation Bundle VS Code 拡張機能を提供します。これにより、Decision Model and Notation (DMN) デシジョンモデル、Business Process Model and Notation (BPMN) 2.0 ビジネスプロセス、およびテストシナリオを VS Code で直接作成できます。VS Code は、新しいビジネスアプリケーションを開発するために推奨される統合開発環境 (IDE) です。Red Hat Process Automation Manager は、必要に応じて DMN サポートまたは BPMN サポートの DMN Editor および BPMN Editor VS Code 拡張機能をそれぞれ提供します。
VS Code のエディターは、Business Central のエディターと部分的に互換性があり、VS Code では複数の Business Central 機能がサポートされていません。
前提条件
- VS Code の最新の安定版がインストールされている。
手順
VS Code IDE で Extensions メニューオプションを選択し、DMN、BPMN、およびテストシナリオファイルのサポートに対して Red Hat Business Automation Bundle を検索します。
DMN ファイルまたは BPMN ファイルだけをサポートする場合は、DMN Editor または BPMN Editor 拡張機能をそれぞれ検索することもできます。
- Red Hat Business Automation Bundle 拡張機能が VS Code に表示される際に、これを選択し、Install をクリックします。
- VS Code エディターの動作を最適化するには、拡張機能のインストールが完了した後に、VS Code のインスタンスを再度読み込み、閉じるか、再起動します。
VS Code 拡張バンドルをインストールした後、VS Code で開くか作成するすべての .dmn ファイル、.bpmn ファイル、または .bpmn2 ファイルがグラフィカルモデルとして自動的に表示されます。さらに、開くまたは作成する .scesim ファイルが、ビジネスデシジョンの機能をテストするテーブルテストシナリオモデルとして自動的に表示されます。
DMN、BPMN、またはテストシナリオモデラーが DMN、BPMN、またはテストシナリオファイルの XML ソースのみを開き、エラーメッセージが表示される場合は、報告されたエラーおよびモデルファイルを確認して、すべての要素が正しく定義されていることを確認します。
新しい DMN モデルまたは BPMN モデルの場合は、Web ブラウザーで dmn.new または bpmn.new を入力して、オンラインモデラーで DMN モデルまたは BPMN モデルを設計することもできます。モデルの作成が終了したら、オンラインモデラーページで Download をクリックして、DMN ファイルまたは BPMN ファイルを VS Code の Red Hat Process Automation Manager プロジェクトにインポートできます。
2.2. Red Hat Process Automation Manager スタンドアロンのエディターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager は、自己完結型のライブラリーに分散されたスタンドアロンのエディターを提供し、エディターごとにオールインワンの JavaScript ファイルを提供します。JavaScript ファイルは、包括的な API を使用してエディターを設定および制御します。
以下の方法を使用して、スタンドアロンのエディターをインストールします。
- 各 JavaScript ファイルを手動でダウンロード
- NPM パッケージの使用
手順
以下の方法のいずれかを使用して、スタンドアロンのエディターをインストールします。
各 JavaScript ファイルを手動でダウンロード: この方法の場合は、以下の手順に従います。
- JavaScript ファイルをダウンロードします。
- ダウンロードした Javascript ファイルをホスト型アプリケーションに追加します。
以下の
<script>タグを HTML ページに追加します。DMN エディターの HTML ページのスクリプトタグ
<script src="https://<YOUR_PAGE>/dmn/index.js"></script>
<script src="https://<YOUR_PAGE>/dmn/index.js"></script>Copy to Clipboard Copied! Toggle word wrap Toggle overflow BPMN エディターの HTML ページのスクリプトタグ
<script src="https://<YOUR_PAGE>/bpmn/index.js"></script>
<script src="https://<YOUR_PAGE>/bpmn/index.js"></script>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NPM パッケージの使用: この方法の場合は、以下の手順に従います。
NPM パッケージを
package.jsonファイルに追加します。NPM パッケージの追加
npm install @kie-tools/kie-editors-standalone
npm install @kie-tools/kie-editors-standaloneCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各エディターライブラリーを
TypeScriptファイルにインポートします。各エディターのインポート
import * as DmnEditor from "@kie-tools/kie-editors-standalone/dist/dmn" import * as BpmnEditor from "@kie-tools/kie-editors-standalone/dist/bpmn"
import * as DmnEditor from "@kie-tools/kie-editors-standalone/dist/dmn" import * as BpmnEditor from "@kie-tools/kie-editors-standalone/dist/bpmn"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
スタンドアロンのエディターをインストールしたら、以下の例のように提供されたエディター API を使用して必要なエディターを開き、DMN エディターを開きます。API は、各エディターで同じものになります。
DMN スタンドアロンのエディターを開く
Copy to Clipboard Copied! Toggle word wrap Toggle overflow エディター API で以下のパラメーターを使用します。
Expand 表2.1 パラメーターの例 パラメーター 説明 containerエディターが追加される HTML 要素。
initialContentDMN モデルのコンテンツへの Promise。以下の例のように、このパラメーターは空にすることができます。
-
Promise.resolve("") -
Promise.resolve("<DIAGRAM_CONTENT_DIRECTLY_HERE>") -
fetch("MyDmnModel.dmn").then(content ⇒ content.text())
readOnly(任意)エディターでの変更を許可します。コンテンツの編集を許可する場合は
false(デフォルト)、エディターで読み取り専用モードの場合はtrueに設定します。origin(任意)リポジトリーの起点。デフォルト値は
window.location.originです。resources(任意)エディターのリソースのマッピング。たとえば、このパラメーターを使用して、BPMN エディターの DMN エディターまたは作業アイテム定義に含まれるモデルを提供します。マップの各エントリーには、リソース名と、
content-type(textまたはbinary) およびcontent(initialContentパラメーターと同様) で構成されるオブジェクトが含まれています。返されるオブジェクトには、エディターの操作に必要なメソッドが含まれます。
Expand 表2.2 返されたオブジェクトメソッド メソッド 説明 getContent(): Promise<string>エディターのコンテンツを含む promise を返します。
setContent(path: string, content: string): voidエディターの内容を設定します。
getPreview(): Promise<string>現在のダイアグラムの SVG 文字列が含まれる promise を返します。
subscribeToContentChanges(callback: (isDirty: boolean) ⇒ void): (isDirty: boolean) ⇒ voidエディターでコンテンツを変更し、サブスクライブ解除に使用されるのと同じコールバックを返す際に呼び出されるコールバックを設定します。
unsubscribeToContentChanges(callback: (isDirty: boolean) ⇒ void): voidエディターでコンテンツが変更される際に渡されたコールバックのサブスクライブを解除します。
markAsSaved(): voidエディターの内容が保存されることを示すエディターの状態をリセットします。また、コンテンツの変更に関連するサブスクライブされたコールバックをアクティベートします。
undo(): voidエディターの最後の変更を元に戻します。また、コンテンツの変更に関連するサブスクライブされたコールバックをアクティベートします。
redo(): voidエディターで、最後に元に戻した変更をやり直します。また、コンテンツの変更に関連するサブスクライブされたコールバックをアクティベートします。
close(): voidエディターを終了します。
getElementPosition(selector: string): Promise<Rect>要素をキャンバスまたはビデオコンポーネント内に置いた場合に、標準のクエリーセレクターを拡張する方法を提供します。
selectorパラメーターは、Canvas:::MySquare、Video:::PresenterHandなどの<PROVIDER>:::<SELECT>形式に従う必要があります。このメソッドは、要素の位置を表すRectを返します。envelopeApi: MessageBusClientApi<KogitoEditorEnvelopeApi>これは高度なエディター API です。高度なエディター API の詳細は、MessageBusClientApi および KogitoEditorEnvelopeApi を参照してください。
-
第3章 Red Hat build of Kogito マイクロサービスの Maven プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスの開発を開始する前に、アセットおよびその他の関連リソースをビルドできる Maven プロジェクトを作成する必要があります。
手順
- コマンドターミナルで、新しプロジェクトを保存するローカルディレクトリーに移動します。
以下のコマンドを入力して、定義したディレクトリーにプロジェクトを生成します。
Red Hat build of Quarkus の場合
mvn io.quarkus:quarkus-maven-plugin:create \ -DprojectGroupId=org.acme -DprojectArtifactId=sample-kogito \ -DprojectVersion=1.0.0-SNAPSHOT -Dextensions=kogito-quarkus$ mvn io.quarkus:quarkus-maven-plugin:create \ -DprojectGroupId=org.acme -DprojectArtifactId=sample-kogito \ -DprojectVersion=1.0.0-SNAPSHOT -Dextensions=kogito-quarkusCopy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot の場合
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
sample-kogitoの Maven プロジェクトを生成し、ビジネスアプリケーション自動化用のアプリケーション準備に必要な依存関係および設定の拡張をインポートします。プロジェクトの PMML 実行を有効にする場合は、Red Hat build of Kogito マイクロサービスが含まれる Maven プロジェクトの
pom.xmlファイルに以下の依存関係を追加します。PMML 実行を有効にするための依存関係
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Quarkus でアプリケーションを OpenShift で実行する予定の場合には、以下の例のように Liveness および Readiness Probe の
smallrye-health拡張もインポートする必要があります。OpenShift 上の Red Hat build of Quarkus アプリケーションの SmallRye Health 拡張
mvn quarkus:add-extension -Dextensions="smallrye-health"
$ mvn quarkus:add-extension -Dextensions="smallrye-health"Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、Red Hat build of Quarkus の Red Hat Process Automation Manager プロジェクトの
pom.xmlファイルに、以下の依存関係を生成します。OpenShift 上の Red Hat build of Quarkus アプリケーションの SmallRye Health 依存関係
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - VS Code IDE でプロジェクトを開くか、インポートしてコンテンツを表示します。
3.1. Red Hat build of Kogito マイクロサービス用のカスタム Spring Boot プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスの Spring Boot アーキタイプを使用して、カスタム Maven プロジェクトを作成できます。Spring Boot archetype を使用すると、Spring Boot スターターまたはアドオンをプロジェクトに追加できます。
Spring Boot スターターは、プロジェクト向けのオールインワン記述子で、Red Hat build of Kogito が提供するビジネス自動化エンジンが必要です。Spring Boot スターターには、決定、ルール、および予測が含まれます。
プロジェクトにすべてのアセットが含まれ、Red Hat build of Kogito を初めて使用する場合には、kogito -spring-boot-starter スターターを使用できます。より詳細なアプローチには、kogito-decisions-spring-boot-starter などの特定のスターターを使用するか、スターターの組み合わせを使用します。
Red Hat build of Kogito は、以下の Spring Boot スターターをサポートします。
- Spring Boot スターターの決定
Spring Boot プロジェクトに DMN サポートを提供するスターターです。以下は、デシジョン Spring ブートスターターをプロジェクトに追加する例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Spring Boot スターターの予測
Spring Boot プロジェクトに PMML サポートを提供するスターターです。以下は、予測 Spring ブートスターターをプロジェクトに追加する例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ルール Spring Boot スターター
Spring Boot プロジェクトに DRL サポートを提供するスターターです。以下は、ルール Spring ブートスターターをプロジェクトに追加する例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
- コマンドターミナルで、新しプロジェクトを保存するローカルディレクトリーに移動します。
以下のいずれかのコマンドを実行して、
startersまたはaddonsプロパティーを使用してプロジェクトを生成します。startersプロパティーを使用してプロジェクトを生成するには、以下のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいプロジェクトには、決定マイクロサービスを実行するために必要な依存関係が含まれています。
starters=decisions,rulesなどのコンマ区切りリストを使用して、複数の Spring Boot スターターを組み合わせることができます。addonsプロパティーを使用して Prometheus モニタリングが含まれるプロジェクトを生成するには、以下のコマンドを入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記アドオンをプロパティーに渡すと、アドオン名には
kogito-addons-springboot接頭辞は必要ありません。また、add-onsとstartersプロパティーを組み合わせてプロジェクトをカスタマイズすることもできます。
- IDE でプロジェクトを開くか、インポートしてコンテンツを表示します。
第4章 Red Hat build of Kogito マイクロサービスのあるアプリケーションの例 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスでは、rhpam-7.13.5-kogito-and-optaplanner-quickstarts.zip ファイルにサンプルアプリケーションが含まれます。これらのサンプルアプリケーションには、独自のアプリケーションの開発に役立つ Red Hat build of Quarkus または Spring Boot のさまざまなタイプのサービスが含まれます。このサービスは、1 つ以上の Decision Model and Notation (DMN) デシジョンモデル、Drools Rule Language (DRL) ルールユニット、Predictive Model Markup Language (PMML) モデル、または Java クラスを使用してサービスロジックを定義します。
アプリケーションの例および使用方法は、関連するアプリケーションフォルダーの README ファイルを参照してください。
ローカル環境でサンプルを実行する場合は、関連するアプリケーションフォルダーの README ファイルに記載されている要件に環境が対応していることを確認します。また、これには Red Hat build of Quarkus、Spring Boot、および docker-compose の設定に必要なネットワークポートを利用できるようにする必要がある場合があります。
以下は、Red Hat build of Kogito マイクロサービスで提供される例の一部です。
これらのクイックスタートの例は、サポート対象の設定を示しています。リストされていないその他のクイックスタートは、アップストリームコミュニティーだけが提供するテクノロジーを使用している可能性があるため、Red Hat では完全なサポートを提供していません。
- デシジョンサービス
-
dmn-quarkus-exampleおよびdmn-springboot-example: DMN を使用するデシジョンサービス (Red Hat build of Quarkus または Spring Boot) を使用して、交通違反をもとに運転手の罰則や免許停止を判断します。 -
rules-quarkus-helloworld: DRL ルールユニットが 1 つある、Red Hat build of Quarkus 上の Hello World のデシジョンサービス。 -
ruleunit-quarkus-exampleおよびruleunit-springboot-example: ルールユニットで DRL を使用して、ローン申し込みを検証するデシジョンサービス (Red Hat build of Quarkus または Spring Boot) を使用し、REST 操作を公開してアプリケーションの状態を表示します。 -
dmn-pmml-quarkus-exampleおよびdmn-pmml-springboot-example: DMN および PMML を使用するデシジョンサービス (Red Hat build of Quarkus または Spring Boot) を使用して、交通違反をもとに運転手の罰則や免許停止を判断します。 -
dmn-drools-quarkus-metricsおよびdmn-drools-springboot-metrics: Red Hat build of Kogito のランタイムメトリクス監視機能を有効化および消費するデシジョンサービス (Red Hat build of Quarkus または Spring Boot 上)。 -
PMML-quarkus-exampleおよびpmml-springboot-example: PMML を使用するデシジョンサービス (Red Hat build of Quarkus または Spring Boot 上)。
-
詳細は、Designing a decision service using DMN models、Designing a decision service using DRL rules、Designing a decision service using PMML models を参照してください。
第5章 DMN を使用した Red Hat build of Kogito マイクロサービスのアプリケーションロジックの設計 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを作成したら、プロジェクトの src/main/resources ディレクトリーに、Decision Model and Notation (DMN) デシジョンモデルと Drools Rule Language (DRL) ビジネスルールを作成またはインポートできます。また、Java サービスとして動作するプロジェクトの src/main/java ディレクトリーに Java クラスを含めるか、デシジョンから呼び出す実装を指定することもできます。
この手順の例では、基本的な Red Hat build of Kogito マイクロサービスが REST エンドポイント /persons を提供します。このエンドポイントは、PersonDecisions.dmn DMN モデルのサンプルをもとに自動生成され、処理されたデータをベースに意思決定を行います。
ビジネスデシジョンには、Red Hat Process Automation Manager サービスのデシジョンロジックが含まれます。DMN モデルや DRL ルールなど、ビジネスルールやデシジョンをさまざまな方法で定義できます。この手順の例では、DMN モデルを使用します。
前提条件
- プロジェクトを作成している。Maven プロジェクトの作成方法は 3章Red Hat build of Kogito マイクロサービスの Maven プロジェクトの作成 を参照してください。
手順
Red Hat Process Automation Manager サービス用に生成した Maven プロジェクトで
src/main/java/org/acmeフォルダーに移動し、以下のPerson.javaファイルを追加します。person Java オブジェクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Java オブジェクトの名前、年齢、成人ステータスを設定して取得します。
src/main/resourcesフォルダーに移動し、以下のPersonDecisions.dmnDMN デシジョンモデルを追加します。図5.1
PersonDecisionsの DMN 意思決定要件ダイアグラム (DRD) 例図5.2
isAdultデシジョンの DMN ボックス式の例図5.3 DMN データ型の例
この DMN モデルは、基本的な DMN 入力ノードと、カスタムの構造化データ型で DMN デシジョンテーブルが定義したデシジョンノードで構成されます。
VS Code では、Red Hat Business Automation Bundle VS Code 拡張機能を追加して、DMN モデラーで意思決定要件ダイアグラム (DRD)、ボックス式、およびデータタイプを設計できます。
この DMN モデルの例を迅速に作成するには、以下の
PersonDecisions.dmnファイルの内容をコピーします。DMN ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DMN モデラーを使用して VS Code でこの DMN モデルのサンプルを作成するには、以下の手順に従います。
-
空の
PersonDecisions.dmnファイルを開き、DMN モデラーの右上隅にある Properties アイコンをクリックし、DMN モデル Name がPersonDecisionsに設定されていることを確認します。 -
左側のパレットで DMN Input Data を選択し、ノードをキャンバスにドラッグしてから、ノードをダブルクリックして名前を
Personとします。 -
左側のパレットで DMN Decision ノードをキャンバスにドラッグし、ノードをダブルクリックして名前を
isAdultにし、入力ノードからリンクします。 - ノードオプションを表示するデシジョンノードを選択して Edit アイコンをクリックし、DMN ボックス式エディターを開き、ノードのデシジョンロジックを定義します。
- undefined expression フィールドをクリックし、Decision Table を選択します。
- デシジョンテーブルの左上隅をクリックして、ヒットポリシーを Unique に設定します。
タイプが
numberの入力ソースPerson.Ageで、年齢制限を、タイプがbooleanの出力ターゲットisAdultで成人ステータスを判断できるように、入出力コラムを設定します。図5.4 デシジョンが
isAdultの DMN デシジョンテーブルの例右上のタブで Data Types タブを選択して、以下の
tPerson構造のデータ型とネスト化データタイプを追加します。図5.5 DMN データ型の例
- データタイプを定義したら、Editor タブを選択して、DMN モデラーキャンバスに戻ります。
-
Person 入力ノードを選択し、Properties アイコンをクリックし、Information item の下にある Data type を
tPersonに設定します。 -
isAdult デシジョンノードを選択し、Properties アイコンをクリックして、Information 項目 で Data type がまだ
booleanに設定されていることを確認します。デシジョンテーブルの作成時に、このデータ型を設定してください。 - DMN デシジョンサービスを保存します。
-
空の
5.1. 別のデシジョンサービスとしての DRL ルールユニットの使用 リンクのコピーリンクがクリップボードにコピーされました!
また、ルールユニットとして実装した Drools Rule Language (DRL) ファイルを使用して、Decision Model and Notation (DMN) を使用する代わりに、このサンプルデシジョンサービスを定義することもできます。
DRL ルールユニットは、ルールのモジュールおよび、実行ユニットです。ルールユニットは、ルール実行のファクトタイプの宣言を使用して、一連のルールを収集します。また、ルールユニットは、各ルールグループに固有の namespace としても機能します。1 つのルールベースには、複数のルールユニットを含めることができます。通常、ユニットだけで自己完結できるように、ユニットの全ルールはユニット宣言と同じファイルに保存します。ルールユニットの作成方法は、DRL ルールを使用したデシジョンサービスの作成 を参照してください。
前提条件
- プロジェクトを作成している。Maven プロジェクトの作成方法は 3章Red Hat build of Kogito マイクロサービスの Maven プロジェクトの作成 を参照してください。
手順
DMN ファイルを使用する代わりに、サンプルプロジェクトの
src/main/resourcesディレクトリーに、以下のPersonRules.drlファイルを追加します。PersonRulesDRL ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow このルールの例では、18 歳以上を成人として分類しているかどうかを判断します。また、ルールファイルは、ルールがルールユニット
PersonRulesに属することを宣言します。プロジェクトをビルドすると、ルールユニットが生成され、DRL ファイルに関連付けられます。ルールは OOPath 表記を使用して条件も定義します。OOPath は、Xpath のオブジェクト指向の構文拡張で、コレクションおよびフィルター制約を処理しながら、関連要素間を移動します。
以下の例のように、従来のルールパターン構文を使用して、より明示的な形式で同じルール条件を再書き込みすることもできます。
従来の表記を使用した
PersonRulesDRL ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第6章 Red Hat build of Kogito イベントアドオン リンクのコピーリンクがクリップボードにコピーされました!
イベントアドオンは、EventEmitter および EventReceiver インターフェイスでサポートされているターゲットプラットフォームでのデフォルトの実装を提供します。EventEmitter および EventReceiver インターフェイスを使用して、プロセスによるメッセージング、サーバーレスワークフローイベント、およびイベント決定処理を有効にすることができます。
6.1. Red Hat build of Kogito イベントアドオンのメッセージペイロードデコレータの実装 リンクのコピーリンクがクリップボードにコピーされました!
依存するアドオンは、MessagePayloadDecorator を実装できます。
前提条件
- Red Hat build of Kogito イベントアドオンをインストールしました。
手順
-
クラスパスに
META-INF/services/org.kie.kogito.add-on.cloudevents.message.MessagePayloadDecoratorという名前のファイルを作成します。 - ファイルを開きます。
- ファイルに実装クラスのフルネームを入力します。
ファイルを保存します。
MessagePayloadDecoratorProviderは、アプリケーションの起動時にファイルをロードし、ファイルを装飾チェーンに追加します。Red Hat build of Kogito がMessagePayloadDecoratorProvider#decorateを呼び出す場合、実装は装飾アルゴリズムの一部です。イベントアドオンを使用するには、プロジェクトの
pom.xmlファイルに次のコードを追加します。{QAURKUS} のイベント smallrye アドオン
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-quarkus-events-smallrye</artifactId> <version>1.15</version> </dependency>
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-quarkus-events-smallrye</artifactId> <version>1.15</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow {QAURKUS} のイベント決定アドオン
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-events-decisions</artifactId> <version>1.15</version> </dependency>
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-events-decisions</artifactId> <version>1.15</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot 用のイベント Kafka アドオン
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-springboot-events-kafka</artifactId> <version>1.15</version> </dependency>
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-springboot-events-kafka</artifactId> <version>1.15</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot のイベント決定アドオン
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-springboot-events-decisions</artifactId> <version>1.15</version> </dependency>
<dependency> <groupId>org.kie.kogito</groupId> <artifactId>kogito-addons-springboot-events-decisions</artifactId> <version>1.15</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 Red Hat build of Kogito マイクロサービスの実行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスのビジネスデシジョンの設計後に、以下のいずれかのモードで Red Hat build of Quarkus または Spring Boot アプリケーションを実行できます。
- 開発モード: ローカルテスト用。Red Hat build of Quarkus の開発モードでは、実行中のアプリケーションでデシジョンをライブリロードし、詳細にわたるデバッグを行います。
- JVM モード: Java 仮想マシン (JVM) との互換性用。
手順
コマンドターミナルで、Red Hat build of Kogito マイクロサービスが含まれるプロジェクトに移動し、選択した実行モードやアプリケーション環境に合わせて、以下のコマンドのいずれかを入力します。
開発モードの場合:
Red Hat build of Quarkus の場合
mvn clean compile quarkus:dev
$ mvn clean compile quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sprint Boot の場合
mvn clean compile spring-boot:run
$ mvn clean compile spring-boot:runCopy to Clipboard Copied! Toggle word wrap Toggle overflow JVM モードの場合:
Red Hat build of Quarkus および Spring Boot の場合
mvn clean package java -jar target/sample-kogito-1.0-SNAPSHOT-runner.jar
$ mvn clean package $ java -jar target/sample-kogito-1.0-SNAPSHOT-runner.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 実行中の Red Hat build of Kogito マイクロサービスとの対話 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスの実行後、REST API 要求を送信し、アプリケーションとの対話やアプリケーションの設定方法に合わせて、マイクロサービスを実行できます。
この例では、/persons REST API エンドポイントをテストし、PersonDecisions.dmn ファイル (または DRL ルールユニットを使用した場合には PersonRules.drl ファイルのルール) に意思決定を自動生成します。
この例では、アプリケーションに設定された REST クライアント、curl ユーティリティー、またはアプリケーションに設定された Swagger UI (例: http://localhost:8080/q/swagger-ui または http://localhost:8080/swagger-ui.html) を使用して、以下のコンポーネントで API 要求を送信します。
-
URL:
http://localhost:8080/persons HTTP ヘッダー:
POST要求のみ:-
accept:application/json -
content-type:application/json
-
-
HTTP メソッド:
GET、POST、またはDELETE
成人 (JSON) を追加するための POST 要求ボディーの例
成人を追加する curl コマンドの例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'
応答例 (JSON)
以下の手順では、便宜上 curl コマンドを使用します。
手順
実行中のアプリケーションから分離されているコマンドターミナルウィンドウで、Red Hat build of Kogito マイクロサービスが含まれるプロジェクトに移動し、以下の curl コマンドのいずれかを JSON 要求とともに使用して、実行中のマイクロサービスと対話します。
Spring Boot では、これらのサンプル要求を機能させるには、アプリケーションによる API エンドポイントの公開方法を変更しないといけない場合があります。詳細は、このチュートリアルで作成した Spring Boot プロジェクトのサンプルに含まれる README ファイルを参照してください。
成人を追加します。
要求の例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"John Quark", "age": 20}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答例
{"id":"3af806dd-8819-4734-a934-728f4c819682","person":{"name":"John Quark","age":20,"adult":false},"isAdult":true}{"id":"3af806dd-8819-4734-a934-728f4c819682","person":{"name":"John Quark","age":20,"adult":false},"isAdult":true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 未成年を追加します。
要求の例
curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"Jenny Quark", "age": 15}}'curl -X POST http://localhost:8080/persons -H 'content-type: application/json' -H 'accept: application/json' -d '{"person": {"name":"Jenny Quark", "age": 15}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答例
{"id":"8eef502b-012b-4628-acb7-73418a089c08","person":{"name":"Jenny Quark","age":15,"adult":false},"isAdult":false}{"id":"8eef502b-012b-4628-acb7-73418a089c08","person":{"name":"Jenny Quark","age":15,"adult":false},"isAdult":false}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 返された UUID を使用して評価を完了します。
要求の例
curl -X POST http://localhost:8080/persons/8eef502b-012b-4628-acb7-73418a089c08/ChildrenHandling/cdec4241-d676-47de-8c55-4ee4f9598bac -H 'content-type: application/json' -H 'accept: application/json' -d '{}'curl -X POST http://localhost:8080/persons/8eef502b-012b-4628-acb7-73418a089c08/ChildrenHandling/cdec4241-d676-47de-8c55-4ee4f9598bac -H 'content-type: application/json' -H 'accept: application/json' -d '{}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
パート II. Red Hat OpenShift Container Platform での Red Hat build of Kogito マイクロサービスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
ビジネスデシジョンおよびプロセスの開発者は、クラウド実装用に Red Hat OpenShift Container Platform に Red Hat build of Kogito マイクロサービスをデプロイできます。RHPAM Kogito Operator は、デプロイメント手順の多数を自動化するか、デプロイメントプロセスを支援します。
前提条件
- Red Hat OpenShift Container Platform 4.6 または 4.7 がインストールされている。
- デプロイメントする OpenShift プロジェクトが作成されている。
第9章 Red Hat OpenShift Container Platform での Red Hat build of Kogito リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform に対して、クラウド実装用に Red Hat build of Kogito マイクロサービスをデプロイできます。このアーキテクチャーでは、Red Hat build of Kogito マイクロサービスは OpenShift Pod としてデプロイされ、個別にスケールアップおよびスケールダウンして、特定のサービスに必要な数のコンテナーを提供できます。
Red Hat Process Automation Manager では、Red Hat Process Automation Manager Kogito Operator が同梱されており、Red Hat build of Kogito マイクロサービスを OpenShift にデプロイするのに役立ちます。この Operator は、デプロイメントプロセス関連の構成をサポートします。Operator は Operator SDK をベースとしており、多くのデプロイメント手順を自動化します。たとえば、アプリケーションが含まれる Git リポジトリーへのリンクを Operator に指定すると、Operator はソースからプロジェクトのビルドに必要なコンポーネントを自動的に設定し、生成されるサービスをデプロイします。
OpenShift Web コンソールで Red Hat Process Automation Manager Kogito Operator をインストールするには、左側のメニューで Operators → OperatorHub に移動し、RHPAM Kogito Operator を検索して選択し、最新の Operator バージョンをインストールします。
第10章 RHPAM Kogito Operator を使用した OpenShift デプロイメントオプション リンクのコピーリンクがクリップボードにコピーされました!
ビジネスアプリケーションの一部として Red Hat build of Kogito マイクロサービスを作成したら、Red Hat OpenShift Container Platform Web コンソールを使用してマイクロサービスをデプロイすることができます。OpenShift Web コンソールの RHPAM Kogito Operator ページで、デプロイメントプロセスを進めます。
RHPAM Kogito Operator は、Red Hat OpenShift Container Platform で Red Hat build of Kogito マイクロサービスをビルドしてデプロイするための以下のオプションをサポートします。
- Git ソースビルドおよびデプロイメント
- バイナリービルドおよびデプロイメント
- カスタムイメージのビルドおよびデプロイメント
- ファイルビルドおよびデプロイメント
10.1. Git ソースビルドおよび OpenShift Web コンソールを使用した Red Hat build of Kogito マイクロサービスの OpenShift へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
RHPAM Kogito Operator は以下のカスタムリソースを使用して、開発するマイクロサービス (ドメイン固有のマイクロサービス) をデプロイします。
-
KogitoBuildは Git URL または他のソースを使用してアプリケーションをビルドし、ランタイムイメージを作成します。 -
KogitoRuntimeはランタイムイメージを起動し、要件に応じて設定します。
ほとんどのユースケースでは、以下の手順のように、標準のランタイムビルドおよびデプロイメント方法を使用して、Git リポジトリーソースから OpenShift に Red Hat build of Kogito マイクロサービスをデプロイできます。
Red Hat build of Kogito マイクロサービスをローカルで開発またはテストする場合は、バイナリービルド、カスタムイメージビルド、またはファイルビルドオプションを使用して、Git リポジトリーではなく、ローカルソースからビルドおよびデプロイできます。
前提条件
- RHPAM Kogito Operator がインストールされている。
- Red Hat build of Kogito マイクロサービスを使用するアプリケーションが OpenShift 環境からアクセス可能な Git リポジトリーにある。
-
OpenShift Web コンソールにアクセスでき、
KogitoBuildおよびKogitoRuntimeの作成および編集に必要なパーミッションが設定されている。 (Red Hat build of Quarkus のみ) プロジェクトの
pom.xmlファイルにquarkus-smallrye-health拡張機能の依存関係が含まれる。この拡張機能は、OpenShift の Red Hat build of Quarkus プロジェクトに必要な Liveness および Readiness Probe を有効にします。OpenShift 上の Red Hat build of Quarkus アプリケーションの SmallRye Health 依存関係
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
- Operators → Installed Operators に移動し、RHPAM Kogito Operator を選択します。
- Red Hat build of Kogito ビルド定義を作成するには、Operator ページで Kogito Build タブを選択し、Create KogitoBuild をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してビルド定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito ビルドを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito ビルドを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記内部 Maven リポジトリーを設定した場合は、Maven ミラーサービスとして使用でき、Red Hat build of Kogito ビルド定義に Maven ミラー URL を指定して、ビルド時間を大幅に短縮できます。
spec: mavenMirrorURL: http://nexus3-nexus.apps-crc.testing/repository/maven-public/
spec: mavenMirrorURL: http://nexus3-nexus.apps-crc.testing/repository/maven-public/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 内部 Maven リポジトリーの詳細は、Apache Maven ドキュメントを参照してください。
アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito ビルドを生成します。
アプリケーションが Red Hat build of KogitoBuilds ページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定および YAML の詳細を表示または変更できます。
- Red Hat build of Kogito マイクロサービス定義を作成するには、Operator ページで Kogito Runtime タブを選択し、Create KogitoRuntime をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してマイクロサービス定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito マイクロサービスを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application name
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito マイクロサービスを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この場合、アプリケーションは Git からビルドされ、KogitoRuntime を使用してデプロイされます。アプリケーション名が
KogitoBuildおよびKogitoRuntimeで同じである必要があります。アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito マイクロサービスを生成します。
アプリケーションが Red Hat build of Kogito マイクロサービスページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定や YAML ファイルの内容を表示または変更できます。
Web コンソールの左側のメニューで Builds → Builds に移動して、アプリケーションのビルドのステータスを表示します。
特定のビルドを選択して、ビルドの詳細を表示できます。
注記OpenShift デプロイメント用に作成するすべての Red Hat build of Kogito マイクロサービスでは、従来のランタイムビルドと S2I (接尾辞
-builder) ビルドの 2 つのビルドが生成され、Web コンソールの Builds ページに一覧表示されます。S2I メカニズムは OpenShift ビルドでアプリケーションを構築し、このアプリケーションを次の OpenShift ビルドに渡してランタイムコンテナーイメージにパッケージ化します。Red Hat build of Kogito S2I ビルド設定では、OpenShift プラットフォームの Git リポジトリーから直接プロジェクトをビルドできます。- アプリケーションのビルドが完了したら、Workloads → Deployments に移動して、アプリケーションのデプロイメント、Pod のステータスなどの情報を表示します。
Red Hat build of Kogito マイクロサービスをデプロイしたら、Web コンソールの左側のメニューの Networking → Routes に移動し、デプロイされたアプリケーションへのアクセスリンクを表示します。
アプリケーション名を選択して、ルート設定を表示または変更できます。
必要に応じてアプリケーションルートを使用すると、Red Hat build of Kogito マイクロサービスはビジネス自動化ソリューションと統合できます。
10.2. バイナリービルドおよび OpenShift Web コンソールを使用した Red Hat build of Kogito マイクロサービスの OpenShift へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift のビルドには、かなりの時間がかかる場合があります。OpenShift での Red Hat build of Kogito マイクロサービスのビルドおよびデプロイを短時間で行う別の方法として、バイナリービルドを使用できます。
Operator は以下のカスタムリソースを使用して、開発するマイクロサービス (ドメイン固有のマイクロサービス) をデプロイします。
-
KogitoBuildはアップロードしたアプリケーションを処理し、ランタイムイメージを作成します。 -
KogitoRuntimeはランタイムイメージを起動し、要件に応じて設定します。
前提条件
- RHPAM Kogito Operator がインストールされている。
-
ocOpenShift CLI がインストールされており、関連する OpenShift クラスターにログインしている。ocのインストールおよびログインの手順は、OpenShift documentation を参照。 -
OpenShift Web コンソールにアクセスでき、
KogitoBuildおよびKogitoRuntimeの作成および編集に必要なパーミッションが設定されている。 (Red Hat build of Quarkus のみ) プロジェクトの
pom.xmlファイルにquarkus-smallrye-health拡張機能の依存関係が含まれる。この拡張機能は、OpenShift の Red Hat build of Quarkus プロジェクトに必要な Liveness および Readiness Probe を有効にします。OpenShift 上の Red Hat build of Quarkus アプリケーションの SmallRye Health 依存関係
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
- アプリケーションをローカルに構築します。
- Operators → Installed Operators に移動し、RHPAM Kogito Operator を選択します。
- Red Hat build of Kogito ビルド定義を作成するには、Operator ページで Kogito Build タブを選択し、Create KogitoBuild をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してビルド定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito ビルドを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito ビルドを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito ビルドを生成します。
アプリケーションが Red Hat build of KogitoBuilds ページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定および YAML の詳細を表示または変更できます。
以下のコマンドを使用して、ビルドしたバイナリーをアップロードします。
oc start-build example-quarkus --from-dir=target/ -n namespace
$ oc start-build example-quarkus --from-dir=target/ -n namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
from-dirは、ビルドしたアプリケーションのtargetフォルダーパスと同じです。 -
namespaceは、KogitoBuildの作成先の namespace に置き換えます。
-
- Red Hat build of Kogito マイクロサービス定義を作成するには、Operator ページで Kogito Runtime タブを選択し、Create KogitoRuntime をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してマイクロサービス定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito マイクロサービスを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application name
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito マイクロサービスを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この場合、アプリケーションは、KogitoRuntime を使用してローカルにビルドされ、デプロイされます。アプリケーション名が
KogitoBuildおよびKogitoRuntimeで同じである必要があります。アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito マイクロサービスを生成します。
アプリケーションが Red Hat build of Kogito マイクロサービスページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定や YAML ファイルの内容を表示または変更できます。
Web コンソールの左側のメニューで Builds → Builds に移動して、アプリケーションのビルドのステータスを表示します。
特定のビルドを選択して、ビルドの詳細を表示できます。
- アプリケーションのビルドが完了したら、Workloads → Deployments に移動して、アプリケーションのデプロイメント、Pod のステータスなどの情報を表示します。
Red Hat build of Kogito マイクロサービスをデプロイしたら、Web コンソールの左側のメニューの Networking → Routes に移動し、デプロイされたアプリケーションへのアクセスリンクを表示します。
アプリケーション名を選択して、ルート設定を表示または変更できます。
必要に応じてアプリケーションルートを使用すると、Red Hat build of Kogito マイクロサービスはビジネス自動化ソリューションと統合できます。
10.3. カスタムイメージビルドおよび OpenShift Web コンソールを使用した Red Hat build of Kogito マイクロサービスの OpenShift へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift で Red Hat build of Kogito マイクロサービスをビルドし、デプロイする代わりに、カスタムイメージビルドを使用できます。
Operator は以下のカスタムリソースを使用して、開発するマイクロサービス (ドメイン固有のマイクロサービス) をデプロイします。
-
KogitoRuntimeはランタイムイメージを起動し、要件に応じて設定します。
Red Hat Process Automation Manager ビルダーイメージは、ネイティブビルドをサポートしません。ただし、以下の例のように、カスタムビルドを実行し、Containerfile を使用してコンテナーイメージをビルドできます。
FROM registry.redhat.io/rhpam-7-tech-preview/rhpam-kogito-runtime-native-rhel8:7.13.5
ENV RUNTIME_TYPE quarkus
COPY --chown=1001:root target/*-runner $KOGITO_HOME/bin
この機能はテクノロジープレビューとしてのみ提供されています。
Mandrel を使用してネイティブバイナリーをビルドするには、Quarkus アプリケーションのネイティブ実行可能ファイルへのコンパイル を参照してください。
前提条件
- RHPAM Kogito Operator がインストールされている。
-
OpenShift Web コンソールにアクセスでき、
KogitoRuntimeの作成および編集に必要なパーミッションが設定されている。 (Red Hat build of Quarkus のみ) プロジェクトの
pom.xmlファイルにquarkus-smallrye-health拡張機能の依存関係が含まれる。この拡張機能は、OpenShift の Red Hat build of Quarkus プロジェクトに必要な Liveness および Readiness Probe を有効にします。OpenShift 上の Red Hat build of Quarkus アプリケーションの SmallRye Health 依存関係
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-smallrye-health</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
- アプリケーションをローカルに構築します。
以下の内容を含むプロジェクトルートディレクトリーに
Containerfileを作成します。Red Hat build of Quarkus アプリケーションの
Containerfileの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow Spring Boot アプリケーションの
Containerfileの例FROM registry.redhat.io/rhpam-7/rhpam-kogito-runtime-jvm-rhel8:7.13.5 ENV RUNTIME_TYPE springboot COPY target/<application-jar-file> $KOGITO_HOME/bin
FROM registry.redhat.io/rhpam-7/rhpam-kogito-runtime-jvm-rhel8:7.13.5 ENV RUNTIME_TYPE springboot COPY target/<application-jar-file> $KOGITO_HOME/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
application-jar-fileは、アプリケーションの JAR ファイルの名前です。
-
以下のコマンドを使用して Red Hat build of Kogito イメージをビルドします。
podman build --tag <final-image-name> -f <Container-file>
podman build --tag <final-image-name> -f <Container-file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドでは、
final-image-nameは Red Hat build of Kogito イメージの名前、Container-fileは直前の手順で作成したContainerfileに置き換えます。必要に応じて、以下のコマンドを使用してビルドイメージをテストします。
podman run --rm -it -p 8080:8080 <final-image-name>
podman run --rm -it -p 8080:8080 <final-image-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを使用して、ビルドした Red Hat build of Kogito イメージをイメージレジストリーにプッシュします。
podman push <final-image-name>
podman push <final-image-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Operators → Installed Operators に移動し、RHPAM Kogito Operator を選択します。
- Red Hat build of Kogito マイクロサービス定義を作成するには、Operator ページで Kogito Runtime タブを選択し、Create KogitoRuntime をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してマイクロサービス定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito マイクロサービスを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito マイクロサービスを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito マイクロサービスを生成します。
アプリケーションが Red Hat build of Kogito マイクロサービスページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定や YAML ファイルの内容を表示または変更できます。
- アプリケーションのビルドが完了したら、Workloads → Deployments に移動して、アプリケーションのデプロイメント、Pod のステータスなどの情報を表示します。
Red Hat build of Kogito マイクロサービスをデプロイしたら、Web コンソールの左側のメニューの Networking → Routes に移動し、デプロイされたアプリケーションへのアクセスリンクを表示します。
アプリケーション名を選択して、ルート設定を表示または変更できます。
必要に応じてアプリケーションルートを使用すると、Red Hat build of Kogito マイクロサービスはビジネス自動化ソリューションと統合できます。
10.4. ファイルビルドおよび OpenShift Web コンソールを使用した Red Hat build of Kogito マイクロサービスの OpenShift へのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Decision Model and Notation (DMN)、Drools Rule Language (DRL)、プロパティーファイルなどの 1 つのファイルから、または複数のファイルを含むディレクトリーから Red Hat build of Kogito マイクロサービスをビルドおよびデプロイできます。ローカルファイルシステムパスから 1 つのファイル、またはローカルファイルシステムパスからファイルディレクトリーを指定できます。ファイルまたはディレクトリーを OpenShift クラスターにアップロードすると、新しい Source-to-Image (S2I) ビルドが自動的に開始されます。
Operator は以下のカスタムリソースを使用して、開発するマイクロサービス (ドメイン固有のマイクロサービス) をデプロイします。
-
KogitoBuildはファイルからアプリケーションを生成し、ランタイムイメージを作成します。 -
KogitoRuntimeはランタイムイメージを起動し、要件に応じて設定します。
前提条件
- RHPAM Kogito Operator がインストールされている。
-
ocOpenShift CLI がインストールされており、関連する OpenShift クラスターにログインしている。ocのインストールおよびログインの手順は、OpenShift documentation を参照。 -
OpenShift Web コンソールにアクセスでき、
KogitoBuildおよびKogitoRuntimeの作成および編集に必要なパーミッションが設定されている。
手順
- Operators → Installed Operators に移動し、RHPAM Kogito Operator を選択します。
- Red Hat build of Kogito ビルド定義を作成するには、Operator ページで Kogito Build タブを選択し、Create KogitoBuild をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してビルド定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito ビルドを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito ビルドを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記内部 Maven リポジトリーを設定した場合は、Maven ミラーサービスとして使用でき、Red Hat build of Kogito ビルド定義に Maven ミラー URL を指定して、ビルド時間を大幅に短縮できます。
spec: mavenMirrorURL: http://nexus3-nexus.apps-crc.testing/repository/maven-public/
spec: mavenMirrorURL: http://nexus3-nexus.apps-crc.testing/repository/maven-public/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 内部 Maven リポジトリーの詳細は、Apache Maven ドキュメントを参照してください。
アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito ビルドを生成します。
アプリケーションが Red Hat build of KogitoBuilds ページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定および YAML の詳細を表示または変更できます。
以下のコマンドを使用して、ファイルアセットをアップロードします。
oc start-build example-quarkus-builder --from-file=<file-asset-path> -n namespace
$ oc start-build example-quarkus-builder --from-file=<file-asset-path> -n namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
file-asset-pathは、アップロードするファイルハンドラーのパスに置き換えます。 -
namespaceは、KogitoBuildの作成先の namespace に置き換えます。
-
- Red Hat build of Kogito マイクロサービス定義を作成するには、Operator ページで Kogito Runtime タブを選択し、Create KogitoRuntime をクリックします。
アプリケーションウィンドウで、Form View または YAML View を使用してマイクロサービス定義を設定します。
少なくとも、以下の YAML ファイルのサンプルに示されるようにアプリケーション設定を定義します。
Red Hat build of Kogito マイクロサービスを使用した Red Hat build of Quarkus アプリケーションの YAML 定義の例
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application name
apiVersion: rhpam.kiegroup.org/v1 # Red Hat build of Kogito API for this microservice kind: KogitoRuntime # Application type metadata: name: example-quarkus # Application nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito マイクロサービスを使用した Spring Boot アプリケーションの YAML 定義の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この場合、アプリケーションはファイルからビルドされ、KogitoRuntime を使用してデプロイされます。アプリケーション名が
KogitoBuildおよびKogitoRuntimeで同じである必要があります。アプリケーションデータを定義したら、Create をクリックして Red Hat build of Kogito マイクロサービスを生成します。
アプリケーションが Red Hat build of Kogito マイクロサービスページに一覧表示されます。アプリケーション名を選択して、アプリケーション設定や YAML ファイルの内容を表示または変更できます。
Web コンソールの左側のメニューで Builds → Builds に移動して、アプリケーションのビルドのステータスを表示します。
特定のビルドを選択して、ビルドの詳細を表示できます。
注記OpenShift デプロイメント用に作成するすべての Red Hat build of Kogito マイクロサービスでは、従来のランタイムビルドと S2I (接尾辞
-builder) ビルドの 2 つのビルドが生成され、Web コンソールの Builds ページに一覧表示されます。S2I メカニズムは OpenShift ビルドでアプリケーションを構築し、このアプリケーションを次の OpenShift ビルドに渡してランタイムコンテナーイメージにパッケージ化します。- アプリケーションのビルドが完了したら、Workloads → Deployments に移動して、アプリケーションのデプロイメント、Pod のステータスなどの情報を表示します。
Red Hat build of Kogito マイクロサービスをデプロイしたら、Web コンソールの左側のメニューの Networking → Routes に移動し、デプロイされたアプリケーションへのアクセスリンクを表示します。
アプリケーション名を選択して、ルート設定を表示または変更できます。
必要に応じてアプリケーションルートを使用すると、Red Hat build of Kogito マイクロサービスはビジネス自動化ソリューションと統合できます。
第11章 Red Hat build of Kogito サービスプロパティー設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスがデプロイされると、Red Hat build of Kogito マイクロサービスの application.properties 設定用に configMap リソースが作成されます。
configMap リソースの名前は、次の例に示すように、Red Hat build of Kogito マイクロサービスの名前と接尾辞 -properties で構成されます。
Red Hat build of Kogito マイクロサービスデプロイメント中に生成された configMap リソースの例
configMap リソースの application.properties データは、Red Hat build of Kogito マイクロサービスのコンテナーにボリュームでマウントされます。application.properties セクションに追加するランタイムプロパティーは、Red Hat build of Kogito マイクロサービスのデフォルトのアプリケーション設定プロパティーをオーバーライドします。
configMap の application.properties データが変更されると、ローリング更新により、Red Hat build of Kogito マイクロサービスのデプロイメントと設定が変更されます。
第12章 Red Hat OpenShift Container Platform での Red Hat build of Kogito マイクロサービスのプローブ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform のプローブは、アプリケーションが機能していることを検証します。検証されない場合には、再起動する必要があります。Red Hat build of Quarkus および Spring Boot の Red Hat build of Kogito マイクロサービスの場合、プローブは HTTP 要求 (拡張機能によって公開されるエンドポイントにデフォルト設定) を使用してアプリケーションと対話します。そのため、Red Hat OpenShift Container Platform で Red Hat build of Kogito マイクロサービスを実行するには、拡張機能をインポートして Liveness、Readiness、および startup probe のアプリケーション可用性の情報を提供する必要があります。
12.1. Red Hat OpenShift Container Platform での Red Hat build of Quarkus アプリケーションのヘルスチェック拡張機能の追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform の Red Hat build of Quarkus をベースとする Red Hat build of Kogito サービスのヘルスチェック拡張機能を追加できます。
手順
コマンドターミナルで、プロジェクトの pom.xml ファイルに移動し、quarkus-smallrye-health 拡張機能の依存関係を追加します。
Red Hat OpenShift Container Platform の Red Hat build of Quarkus アプリケーションの SmallRye Health 依存関係
12.2. Red Hat OpenShift Container Platform での Spring Boot アプリケーションのヘルスチェック拡張機能の追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Container Platform の Spring Boot をベースとする Red Hat build of Kogito マイクロサービスのヘルスチェック拡張機能を追加できます。
手順
コマンドターミナルで、プロジェクトの pom.xml ファイルに移動し、以下の Spring Boot アクチュエーターの依存関係を追加します。
Red Hat OpenShift Container Platform における Spring Boot アプリケーションの Spring Boot のアクチュエーター依存関係
12.3. Red Hat OpenShift Container Platform での Red Hat build of Kogito マイクロサービスのカスタムプローブ設定 リンクのコピーリンクがクリップボードにコピーされました!
Liveness、Readiness、および startup probe のカスタムエンドポイントを設定することもできます。
手順
-
以下の例のように、プロジェクトの
KogitoRuntimeYAML ファイルでプローブを定義します。
カスタムプローブエンドポイントを含む Red Hat build of Kogito マイクロサービスカスタムリソースの例
第13章 Red Hat Process Automation Manager Kogito Operator と Prometheus および Grafana との対話 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager の Red Hat build of Kogito は、Red Hat build of Kogito マイクロサービスの Prometheus メトリック監視を有効にする monitoring-prometheus-addon アドオンを提供し、アドオンによってエクスポートされたデフォルトのメトリックを使用する Grafana ダッシュボードを生成します。RHPAM Kogito Operator は Prometheus Operator を使用して、Prometheus からスクレープするプロジェクトからメトリックを公開します。この依存関係により、Prometheus Operator はプロジェクトと同じ namespace にインストールする必要があります。
Red Hat build of Kogito マイクロサービスの Prometheus メトリクス監視を有効にする場合は、使用するフレームワークに応じて、プロジェクトの pom.xml ファイルに以下の依存関係を追加します。
Prometheus Red Hat build of Quarkus アドオンの依存関係
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>monitoring-prometheus-quarkus-addon</artifactId>
</dependency>
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>monitoring-prometheus-quarkus-addon</artifactId>
</dependency>
Prometheus Spring Boot アドオンの依存関係
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>monitoring-prometheus-springboot-addon</artifactId>
</dependency>
<dependency>
<groupId>org.kie.kogito</groupId>
<artifactId>monitoring-prometheus-springboot-addon</artifactId>
</dependency>
monitoring-prometheus-addon アドオンを使用し、Prometheus Operator がインストールされている Red Hat build of Kogito マイクロサービスをデプロイする場合、Red Hat Process Automation Manager Kogito Operator は ServiceMonitor カスタムリソースを作成し、以下の例のように Prometheus のメトリクスを公開します。
Prometheus の ServiceMonitor リソースの例
Prometheus Operator によって管理される Prometheus カスタムリソースを手作業で設定し、ServiceMonitor リソースを選択する必要があります。
Prometheus リソースの例
ServiceMonitor リソースで Prometheus リソースを設定した後に、Prometheus Web コンソールの Targets ページで Prometheus によってスクレープされたエンドポイントを表示できます。Red Hat Process Automation Manager サービスが公開するメトリックが Graph ビューに表示されます。
RHPAM Kogito Operator は、アドオンによって生成された Grafana ダッシュボードごとに、Grafana Operator によって定義される GrafanaDashboard カスタムリソースも作成します。ダッシュボードの app ラベルは、デプロイされた Red Hat build of Kogito マイクロサービスの名前です。Red Hat build of Kogito マイクロサービスに従い、Grafana カスタムリソースの dashboardLabelSelector プロパティーを設定する必要があります。
Grafana リソースの例
第14章 Red Hat Process Automation Manager Red Hat build of Kogito Operator と Kafka との対話 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager Red Hat build of Kogito Operator は、AMQ Streams Operator を使用して、Kafka を使用する Red Hat build of Kogito マイクロサービスを自動的に設定します。
KogitoInfra デプロイメントを通じてインフラストラクチャーメカニズムを有効にすると、Red Hat build of Kogito Operator の Red Hat Process Automation Manager は、関連するサードパーティー Operator を使用してインフラストラクチャーを設定します。
カスタムインフラストラクチャーリソースを定義し、それを KogitoInfra ファイルにリンクする必要があります。カスタムインフラストラクチャーリソースは、spec.resource.name および spec.resource.namespace 設定で指定できます。
カスタムメッセージング用の Red Hat build of Kogito インフラストラクチャーリソースの Red Hat Process Automation Manager の例
この例では、KogitoInfra カスタムリソースは、イベントメッセージングのために my-namespace から Kafka クラスター my-kafka-instance に接続します。
Red Hat build of Kogito マイクロサービスを Kafka に接続するには、対応するインフラストラクチャーを使用するための infra 設定を定義する必要があります。
メッセージングを使用した Red Hat build of Kogito マイクロサービスリソース設定の例
Red Hat Process Automation Manager Red Hat build of Kogito Operator は、アプリケーションが Kafka インスタンスに接続できるように必要なプロパティーを設定します。
第15章 Red Hat build of Kogito マイクロサービスのデプロイメントのトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
Operator を使用して Red Hat build of Kogito マイクロサービスをデプロイする時に発生する可能性のある問題のトラブルシューティングを行うには、このセクションの情報を使用します。以下の情報は、新しい問題および回避策が検出されるたびに更新されています。
- 実行中のビルドがない
実行中のビルドや関連する namespace で作成されたリソースが表示されない場合は、以下のコマンドを実行して実行中の Pod を取得し、Pod の Operator ログを表示します。
指定の Pod に関する RHPAM Kogito Operator ログの表示
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KogitoRuntimeステータスの確認たとえば、以下の YAML 定義を使用して、存在しないイメージを含めて
KogitoRuntimeアプリケーションを作成します。KogitoRuntimeアプリケーションの YAML 定義の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow bash コンソールで
oc describe KogitoRuntime exampleコマンドを使用して、KogitoRuntimeアプリケーションのステータスを確認できます。bash コンソールでoc describe KogitoRuntimeサンプルコマンドを実行すると、以下の出力が表示されます。KogitoRuntimeステータスの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の最後に、
KogitoRuntimeステータスと該当するメッセージが表示されます。
パート III. Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
ビジネス意思決定およびプロセスの開発者は、Red Hat Process Automation Manager のデシジョンサービスを Red Hat build of Kogito マイクロサービスに移行できます。移行の実行時に、既存のビジネス意思決定は独自のドメイン固有のクラウドネイティブセットの一部となります。Decision Model and Notation (DMN) モデル、Predictive Model Markup Language (PMML) モデル、または Drools Rule Language (DRL) ルールを移行することができます。
前提条件
- JDK 11 以降がインストールされている。
- Apache Maven 3.6.2 以降がインストールされている。
第16章 Red Hat build of Kogito マイクロサービスへの移行の概要 リンクのコピーリンクがクリップボードにコピーされました!
Business Central で開発したデシジョンサービスアーティファクトは、Red Hat build of Kogito マイクロサービスに移行できます。Red Hat build of Kogito は現在、以下のタイプのデシジョンサービスの移行をサポートしています。
- DMN (Decision Model and Notation) モデル: DMN リソースを KJAR アーティファクトから適切な Red Hat build of Kogito アーキタイプに移動して、DMN ベースのデシジョンサービスを移行します。
- Predictive Model Markup Language (PMML) モデル: KJAR アーティファクトから対応する Red Hat build of Kogito アーキタイプに PMML リソースを移動して、PMML ベースの予測および予測サービスを移行します。
- Drools Rule Language (DRL) ルール: Red Hat build of Quarkus REST エンドポイントでそれらを囲むことで、DRL ベースのデシジョンサービスを移行します。この移行アプローチにより、ホットリロードやネイティブコンパイルなど、Quarkus の主要な機能を使用できます。Quarkus 機能と Red Hat build of Kogito のプログラミングモデルにより、アプリケーションとサービスに実装するための Quarkus REST エンドポイントを自動生成できます。
第17章 DMN サービスの Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
DMN ベースのデシジョンサービスは、KJAR アーティファクトから適切な Red Hat build of Kogito プロジェクトに移動することで、Red Hat build of Kogito マイクロサービスに移行できます。Red Hat build of Kogito マイクロサービスでは、KIE v7 機能の一部が不要になりました。
17.1. 主な変更および移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、KIE Server API および KJAR から Red Hat build of Kogito デプロイメントへの移行に影響を与える主な変更および機能を示しています。
| 機能 | KIE Server API の場合 | Red Hat build of Kogito アーティファクト |
|---|---|---|
| DMN モデル |
KJAR の |
以下のように |
| KIE Server の汎用マーシャリングに必要なオブジェクトモデル (POJO) | Business Central で Data Model オブジェクトエディターを使用して管理されます。 | オブジェクトモデルの編集は不要になりました。 |
|
|
システムプロパティーまたは |
|
| その他の設定オプション |
システムプロパティーまたは |
|
| KIE Server クライアント API | KIE Server にデプロイされた KJAR と対話するために、オブジェクトモデルとともに使用します。 | オブジェクトモデルでは、この機能は不要になりました。 注記 独自の REST ライブラリーを選択できます。 |
| REST API | KJAR が KIE Server にデプロイされる場合、特定の DMN モデルエンドポイントと対話するアプリケーションは、Red Hat build of Kogito デプロイメントにおいて同じ API を使用します。 | 特定の DMN モデル生成の高度なサポート。詳細は、DMN モデルの実行 を参照してください。 |
| テストシナリオ | JUnit activator を使用して実行します。 | 同様の JUnit activator は、Red Hat build of Kogito で利用できます。 |
上記の表で説明されていない機能は、cloud-native Red Hat build of Kogito デプロイメントではサポートされません。
17.2. 移行ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
DMN プロジェクトを Red Hat build of Kogito プロジェクトに移行する場合は、最初に KIE Server のデシジョンサービスと対話する外部アプリケーションを移行できます。DMN モデルに固有の REST エンドポイントを使用できます。REST エンドポイントを使用してから、外部アプリケーションを KIE Server から Red Hat build of Kogito デプロイメントに移行できます。DMN モデルへの特定の REST エンドポイントの詳細は、特定の DMN モデルの REST エンドポイント を参照してください。
移行ストラテジーには、以下の手順が含まれます。
- KIE Server を使用して、既存の外部アプリケーションを汎用 KIE Server API から特定の DMN REST エンドポイントに移行します。
- KIE Server にデプロイされた KJAR を Red Hat build of Kogito マイクロサービスに移行します。
- Red Hat OpenShift Container Platform を使用して Red Hat build of Kogito マイクロサービスをデプロイします。
- 外部アプリケーションを再接続し、REST API の消費を特定の DMN REST エンドポイントから Red Hat build of Kogito デプロイメントに移行します。
17.3. 外部アプリケーションの DMN モデル固有の REST エンドポイントへの移行 リンクのコピーリンクがクリップボードにコピーされました!
DMN プロジェクトを Red Hat build of Kogito デプロイメントに移行するには、最初に特定の DMN REST エンドポイントを使用する外部アプリケーションを移行して KIE Server のデシジョンサービスと対話します。
手順
外部アプリケーションで REST エンドポイントを使用している場合は、
GET /server/containers/{containerId}/dmn/openapi.json(|.yaml)エンドポイントを使用して KJAR の Swagger または OAS 仕様ファイルを取得します。特定の DMN モデルの REST エンドポイントの詳細は、特定の DMN モデルの REST エンドポイント を参照してください。
- 外部アプリケーションで、Java または JDK ライブラリーを選択して、デシジョンサービスと対話します。特定の KJAR の REST エンドポイントを使用してデシジョンサービスと対話できます。
Red Hat build of Kogito デプロイメントへの移行では、KIE Server Client Java API はサポートされません。
17.4. DMN モデル KJAR の Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
外部アプリケーションの移行後に、DMN モデルに固有の KJAR を Red Hat build of Kogito マイクロサービスに移行する必要があります。
手順
Red Hat build of Kogito マイクロサービス用の Maven プロジェクトを作成します。
Maven プロジェクトの作成手順は、Red Hat build of Kogito マイクロサービスの Maven プロジェクトの作成 を参照してください。
Maven プロジェクトは Kogito アーティファクトを作成します。
-
KJAR の
src/main/resourcesフォルダーから Kogito アーティファクトのsrc/main/resourcesフォルダーに DMN モデルをコピーします。 テストシナリオを KJAR の
src/test/resourcesフォルダーから Kogito アーティファクトのsrc/test/resourcesフォルダーにコピーします。重要プロジェクトの
pom.xmlファイルに、テストシナリオの Red Hat build of Kogito 依存関係をインポートし、KIE Server REST API を使用して JUnit アクティケーターを作成する必要があります。詳細は、テストシナリオを使用したデシジョンサービスのテスト を参照してください。以下のコマンドを実行して、指定した回帰テストに対してテストシナリオが実行されていることを確認します。
mvn clean install
mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito アプリケーションの実行後に、Swagger または OAS 仕様ファイルを取得できます。Swagger または OAS 仕様は、以下の実装の詳細とともに REST エンドポイントと同じ情報を提供します。
- API が利用できるサーバーのベース URL
- スキーマ名の参照
外部アプリケーションを新しい URL に再ルーティングする場合には、指定の実装の詳細を使用できます。
DMN モデル KJAR を Red Hat build of Kogito マイクロサービスに移行したら、Red Hat OpenShift Container Platform を使用してマイクロサービスをデプロイする必要があります。Openshift のデプロイメントオプションは、RHPAM Kogito Operator を使用した OpenShift デプロイメントオプション を参照してください。
17.4.1. DMN モデル KJAR を Red Hat build of Kogito マイクロサービスに移行する例 リンクのコピーリンクがクリップボードにコピーされました!
以下は、DMN モデル KJAR を Red Hat build of Kogito マイクロサービスに移行する例です。
図17.1 DMN モデルを使用して実装したデシジョンサービスの例
図17.2 特定の ItemDefinition 構造を使用した DMN モデルの例
Business Central で開発した既存の KJAR で、オブジェクトモデル (POJO) を DTO として定義する必要があります。
KJAR で DTO として定義されたオブジェクトモデルの例
上記の例では、定義した DTO は KIE Server クライアント Java API と共に使用されます。または、Java 以外の外部アプリケーションが KIE Server にデプロイされた KJAR と対話している場合は、ペイロードで DTO を指定できます。
KIE Server クライアント Java API の使用例
図17.3 ペイロードで DTO を手動で指定する例
上記の例では、REST API のオブジェクトモデルの FQCN は汎用 KIE Server マーシャリングに使用されます。
17.5. 外部アプリケーションを Red Hat build of Kogito デプロイメントにバインドする例 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito マイクロサービスをデプロイしたら、外部アプリケーションを Red Hat build of Kogito マイクロサービスデプロイメントにバインドする必要があります。
外部アプリケーションをバインドするには、外部アプリケーションを再ルーティングし、アプリケーションを Red Hat build of Kogito アプリケーションに関連付けられたサーバーの新しいベース URL にバインドします。詳細は、以下の例を参照してください。
図17.4 KIE Server 上の KJAR の /discount REST エンドポイントの例
図17.5 ローカルの Red Hat build of Kogito の /discount REST エンドポイントの例
図17.6 Red Hat build of Kogito の新しいベース URL にバインドされる /discount REST エンドポイントの例
第18章 PMML サービスの Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
PMML ベースのサービスは、KJAR アーティファクトから適切な Red Hat build of Kogito プロジェクトに移動することで、Red Hat build of Kogito マイクロサービスに移行できます。
18.1. 主な変更および移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、KIE Server API および KJAR から Red Hat build of Kogito デプロイメントへの移行に影響を与える主な変更および機能を示しています。
| 機能 | KIE Server API の場合 | Red Hat build of Kogito アーティファクト |
|---|---|---|
| PMML モデル |
KJAR の |
以下のように |
| その他の設定オプション |
システムプロパティーまたは | デフォルト値のみが考慮され、設定の上書きはサポートされません。 |
| コマンドベースの REST API |
| サポートされていません。 |
| ドメイン駆動型 REST API | サポートされていません。 | PMML モデル固有の生成の高度なサポート。 |
上記の表で説明されていない機能は、cloud-native Red Hat build of Kogito デプロイメントではサポートされません。
18.2. 移行ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
移行ストラテジーには、以下の手順が含まれます。
- KIE Server にデプロイされた KJAR を Red Hat build of Kogito マイクロサービスに移行します。
- Red Hat OpenShift Container Platform を使用して Red Hat build of Kogito マイクロサービスをデプロイします。
- KIE Server 上のクライアント PMML API から Red Hat build of Kogito デプロイメントの REST API に外部アプリケーションを変更します。
18.3. PMML モデル KJAR の Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
PMML モデルを使用して実装される KJAR を Red Hat build of Kogito マイクロサービスに移行できます。
手順
Red Hat build of Kogito マイクロサービス用の Maven プロジェクトを作成します。
Maven プロジェクトの作成手順は、Red Hat build of Kogito マイクロサービスの Maven プロジェクトの作成 を参照してください。
Maven プロジェクトは Kogito アーティファクトを作成します。
-
KJAR の
src/main/resourcesフォルダーから Kogito アーティファクトのsrc/main/resourcesフォルダーに PMML モデルをコピーします。 以下のコマンドを実行して、Red Hat build of Kogito アプリケーションを実行します。
mvn clean install
mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of Kogito アプリケーションの実行後に、Swagger または OAS 仕様ファイルを取得できます。Swagger または OAS 仕様は、以下の実装の詳細とともに REST エンドポイントと同じ情報を提供します。
- API が利用できるサーバーのベース URL
- スキーマ名の参照
外部アプリケーションを新しい URL に再ルーティングする場合には、指定の実装の詳細を使用できます。
PMML モデル KJAR を Red Hat build of Kogito マイクロサービスに移行したら、Red Hat OpenShift Container Platform を使用してマイクロサービスをデプロイする必要があります。Openshift のデプロイメントオプションは、RHPAM Kogito Operator を使用した OpenShift デプロイメントオプション を参照してください。
18.4. 外部アプリケーションの Red Hat build of Kogito マイクロサービスへの変更 リンクのコピーリンクがクリップボードにコピーされました!
PMML マイクロサービスをデプロイしたら、外部アプリケーションを Red Hat build of Kogito デプロイメントに変更する必要があります。
前提条件
元の外部アプリケーションは、KIE Server クライアント API に実装する必要があります。
図18.1 KIE Server での外部アプリケーション実装の例
手順
KIE Server クライアント API の使用状況をすべて削除し、HTTP 通信に置き換えます。以下は、Java 以外の要求の例です。
同様の呼び出しを作成し、結果を解析するために、HTTP クライアントの Java ライブラリーが外部アプリケーション内で使用されるようにしてください。
以下は、入力データを JSON に変換する Java 11 HTTP クライアントおよび Gson の例です。
注記パラメーターの値として必要なすべてのパラメーターは、呼び出される URL に組み込まれます。
第19章 DRL サービスの Red Hat build of Kogito マイクロサービスへの移行 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kogito でサンプルプロジェクトを構築してデプロイし、Red Hat build of Quarkus REST エンドポイントでデシジョンエンジンのステートレスルール評価を公開し、REST エンドポイントを Red Hat build of Kogito に移行できます。
ステートレスルール評価は、Red Hat Process Automation Manager のルールセットの実行 1 つで、関数呼び出しとして特定できます。呼び出された関数では、出力値は入力値を使用して決定されます。また、呼び出された関数は、デシジョンエンジンを使用してジョブを実行します。そのため、関数は REST エンドポイントを使用して公開され、マイクロサービスに変換されます。マイクロサービスへの変換後、関数は、JVM の起動時間を短縮するために Function as a Service 環境にデプロイされます。
19.1. 主な変更および移行に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、KIE Server API および KJAR から Red Hat build of Kogito デプロイメントへの移行に影響を与える主な変更および機能を示しています。
| 機能 | KIE Server API の場合 | レガシー API サポートのある Red Hat build of Kogito | Red Hat build of Kogito アーティファクト |
|---|---|---|---|
| DRL ファイル |
KJAR の |
| ルールユニットおよび OOPath を使用して書き換えます。 |
|
|
システムプロパティーまたは |
| 必須ではありません。 |
|
|
システムプロパティーまたは |
システムプロパティーまたは | ルールユニットに置き換えられます。 |
19.2. 移行ストラテジー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager では、以下の 2 つの方法で、ルール評価を Red Hat build of Kogito デプロイメントに移行できます。
- Red Hat build of Kogito でのレガシー API の使用
-
Red Hat build of Kogito では、
kogito-legacy-apiモジュールが Red Hat Process Automation Manager のレガシー API を使用できるようにするため、DRL ファイルは変更されません。ルール評価の移行には最小限の変更が必要で、ホットリロードやネイティブイメージの作成など、Red Hat build of Quarkus の主要な機能を使用できます。 - Red Hat build of Kogito ルールユニットへの移行
Red Hat build of Kogito ルールユニットへの移行には、ルールユニットの概念に基づく、Red Hat build of Kogito のプログラミングモデルが含まれます。
Red Hat build of Kogito のルールユニットには、ルールのセットと、ルールが照合されるファクトの両方が含まれます。Red Hat build of Kogito のルールユニットにはデータソースも含まれます。ルールユニットデータソースは、指定のルールユニットで処理されるデータのソースで、ルールユニットの評価に使用されるエントリーポイントを表します。ルールユニットは、2 種類のデータソースを使用します。
-
DataStream: これは、追加のみのデータソースで、DataStreamに追加されたファクトは更新または削除することができません。 -
DataStore: このデータソースは変更可能なデータ用です。オブジェクトがDataStoreに追加されるときに返されるFactHandleを使用して、オブジェクトを更新または削除できます。
全体的に、ルールユニットには、評価するファクトの定義と、ファクトを評価する一連のルールが含まれます。
-
19.3. ローン申し込みプロジェクトの例 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、ローン申請プロジェクトを例として使用し、DRL プロジェクトを Red Hat build of Kogito デプロイメントに移行します。ローン申し込みプロジェクトのドメインモデルは、LoanApplication クラスと Applicant クラスの 2 つのクラスで構成されています。
LoanApplication クラスの例
Applicant クラスの例
ルールセットは、ビジネスデシジョンを使用してアプリケーションを承認または拒否し、承認済みの全アプリケーションをリストで収集する最後のルールと共に作成されます。
ローン申し込みのルールセットの例
19.3.1. Red Hat build of Quarkus を使用した REST エンドポイントでのルール評価の公開 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Quarkus を使用して、REST エンドポイントで Business Central で開発したルール評価を公開できます。
手順
ルールおよび Quarkus ライブラリーが含まれるモジュールに基づいて新しいモジュールを作成し、REST サポートを提供します。
新しいモジュールを作成する依存関係の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow REST エンドポイントを作成します。
以下は、REST エンドポイントを作成する設定例です。
FindApprovedLoansEndpointエンドポイントの設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、ルールを含む
KieContainerが作成され、静的フィールドに追加されます。KieContainerのルールは、クラスパス内の他のモジュールから取得されます。この方法では、ルールを再コンパイルせずにFindApprovedLoansEndpointエンドポイントに関連する後続の呼び出しで同じKieContainerを再利用できます。注記この 2 つのモジュールは、レガシー API を使用してルールユニットを Red Hat build of Kogito マイクロサービスに移行する次のプロセスで統合されます。詳細は、レガシー API を使用した DRL ルールユニットの Red Hat build of Kogito マイクロサービスへの移行 を参照してください。
FindApprovedLoansEndpointエンドポイントが呼び出されると、KieContainerから新しいKieSessionが作成されます。KieSessionには、LoanAppDtoのオブジェクトが入力され、JSON リクエストのアンマーシャリングになります。LoanAppDtoクラスの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow fireAllRules()メソッドが呼び出されると、KieSessionが実行され、ビジネスロジックが入力データに対して評価されます。ビジネスロジックの評価後、最後のルールはリストで承認されたアプリケーションをすべて収集し、出力と同じリストを返します。- Red Hat build of Quarkus アプリケーションを起動します。
確認するローンアプリケーションが含まれる JSON 要求で
FindApprovedLoansEndpointエンドポイントを呼び出します。maxAmountの値は、以下の例のようにルールで使用されます。curl 要求例
curl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"maxAmount":5000, "loanApplications":[ {"id":"ABC10001","amount":2000,"deposit":1000,"applicant":{"age":45,"name":"John"}}, {"id":"ABC10002","amount":5000,"deposit":100,"applicant":{"age":25,"name":"Paul"}}, {"id":"ABC10015","amount":1000,"deposit":100,"applicant":{"age":12,"name":"George"}} ]}' http://localhost:8080/find-approvedcurl -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"maxAmount":5000, "loanApplications":[ {"id":"ABC10001","amount":2000,"deposit":1000,"applicant":{"age":45,"name":"John"}}, {"id":"ABC10002","amount":5000,"deposit":100,"applicant":{"age":25,"name":"Paul"}}, {"id":"ABC10015","amount":1000,"deposit":100,"applicant":{"age":12,"name":"George"}} ]}' http://localhost:8080/find-approvedCopy to Clipboard Copied! Toggle word wrap Toggle overflow JSON の応答例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
この方法では、ホットリロード機能を使用できないため、プロジェクトのネイティブイメージを作成できません。次の手順では、欠落していた Quarkus 機能は Kogito エクステンションによって提供されます。これにより、Quarkus は DRL ファイルを認識し、ホットリロード機能を同様の方法で実装します。
19.3.2. レガシー API を使用した Red Hat build of Kogito マイクロサービスへのルール評価の移行 リンクのコピーリンクがクリップボードにコピーされました!
REST エンドポイントでルール評価を公開したら、レガシー API を使用してルール評価を Red Hat build of Kogito マイクロサービスに移行できます。
手順
プロジェクトの
pom.xmlファイルに以下の依存関係を追加して、Red Hat build of Quarkus およびレガシー API を使用できるようにします。Quarkus およびレガシー API を使用する依存関係の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow REST エンドポイント実装を書き換えます。
REST エンドポイント実装の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 書き換えられた REST エンドポイント実装では、
KieContainerからKieSessionを作成する代わりに、統合KieRuntimeBuilderを使用してKieSessionが自動的に作成されます。KieRuntimeBuilderは、KieContainerに代わるkogito-legacy-apiモジュールが提供するインターフェイスです 。KieRuntimeBuilderを使用すると、KieContainerで同様の方法でKieBaseとKieSessionを作成できます 。Red Hat build of Kogito はコンパイル時にKieRuntimeBuilderインターフェイスの実装を自動的に生成し、KieRuntimeBuilderをクラスに統合してFindApprovedLoansEndpointREST エンドポイントを実装します。開発モードで Red Hat build of Quarkus アプリケーションを起動します。
ホットリロードを使用して、実行中のアプリケーションに適用されるルールファイルに変更を加えることもできます。また、ルールベースのアプリケーションのネイティブイメージを作成することもできます。
19.3.3. ルールユニットおよび自動 REST エンドポイント生成の実装 リンクのコピーリンクがクリップボードにコピーされました!
ルールユニットを Red Hat build of Kogito マイクロサービスに移行したら、REST エンドポイントのルールユニットおよび自動生成を実装できます。
Red Hat build of Kogito では、ルールユニットに一連のルールとファクトが含まれ、ルールが一致します。Red Hat build of Kogito のルールユニットにはデータソースも含まれます。ルールユニットデータソースは、指定のルールユニットで処理されるデータのソースで、ルールユニットの評価に使用されるエントリーポイントを表します。ルールユニットは、2 種類のデータソースを使用します。
-
DataStream: これは、追加のみのデータソースです。DataStreamでは、サブスクライバーは新しいメッセージおよび過去のメッセージを受信すると、ストリームはリアクティブストリームでホットまたはコールドにすることができます。また、DataStreamに追加されたファクトは更新または削除できません。 -
DataStore: このデータソースは変更可能なデータ用です。オブジェクトがDataStoreに追加されるときに返されるFactHandleを使用して、オブジェクトを更新または削除できます。
全体的に、ルールユニットには、評価するファクトの定義と、ファクトを評価する一連のルールが含まれます。
手順
POJO を使用してファクト定義を実装します。
POJO を使用したファクト定義の実装例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、
LoanAppDtoを使用してLoanUnitクラスを直接バインドします。LoanAppDtoは、JSON リクエストをマーシャリングまたはアンマーシャリングするために使用されます。また、上記の例では、org.kie.kogito.rules.RuleUnitDataインターフェイスを実装し、DataStoreを使用して承認するローンアプリケーションを追加します。org.kie.kogito.rules.RuleUnitDataはマーカーインターフェイスで、LoanUnitクラスがルールユニット定義の一部であることをデシジョンエンジンに通知します。さらに、DataStoreは、新しいルールを実行し、他のルールをトリガーして、ルールエンジンが変更に対応できるようにします。また、ルールの結果は、前の例で
approvedプロパティーを変更します。その間、maxAmountの値はルールユニットの設定パラメーターとして考慮され、これは変更されません。maxAmountは、ルールの評価時に自動的に処理され、JSON リクエストに渡される値から自動的に設定されます。DRL ファイルを実装します。
DRL ファイルの実装例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成する DRL ファイルは、ファクト定義実装と同じパッケージと、Java クラスの同じ名前を持つユニットを宣言する必要があります。Java クラスは、インターフェイスが同じルールユニットに属する状態に
RuleUnitDataインターフェイスを実装します。また、前述の例の DRL ファイルは OOPath 式を使用して書き換えられます。DRL ファイルのデータソースはエントリーポイントとして機能し、OOPath 式には root としてデータソース名が含まれます。ただし、制約は以下のように角括弧に追加されます。
$l: /loanApplications[ applicant.age >= 20, deposit >= 1000, amount ⇐ maxAmount ]または、標準の DRL 構文を使用できます。この構文では、データソース名をエントリーポイントとして指定することができます。ただし、以下の例のように、デシジョンエンジンがデータソースからタイプを推測できる場合でも、一致するオブジェクトのタイプを再度指定する必要があります。
$l: LoanApplication( applicant.age >= 20, deposit >= 1000, amount ⇐ maxAmount ) from entry-point loanApplications上記の例では、承認されたローンアプリケーションをすべて収集する最後のルールは、リストを取得するクエリーに置き換えられます。ルールユニットは、ルールを評価するために入力で渡されるファクトを定義し、クエリーはルール評価からの予想される出力を定義します。この方法では、Red Hat build of Kogito はクエリーを実行し、以下の例のように出力を返すクラスを自動的に生成できます。
LoanUnitQueryFindApprovedクラスの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、ルールユニットを入力として取り、入力をクエリーエグゼキューターに渡して出力を返す REST エンドポイントの例になります。
LoanUnitQueryFindApprovedEndpointエンドポイントの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記複数のクエリーを追加でき、クエリーごとに異なる REST エンドポイントが生成されます。たとえば、
FindApprovedREST エンドポイントが find-approved 用に生成されます。
第20章 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
付録A バージョン情報 リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントの最終更新日: 2024 年 3 月 14 日 (木)
付録B お問い合わせ先 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Process Automation Manager のドキュメントチーム: brms-docs@redhat.com