第2章 オーサリング環境のアーキテクチャー

Red Hat Process Automation Manager では、Business Central のコンポーネントに、オーサリングサービス用の Web ベースの対話型ユーザーインターフェースが含まれています。KIE Server のコンポーネントでこれらのサービスを実行します。

KIE Server は、データベースサーバーを使用して、プロセスサービスの状態を保存します。

Business Central を使用して、KIE Server 上でサービスをデプロイすることもできます。複数の KIE Server を使用して異なるサービスを実行して同じ Business Central から複数のサーバーを制御できます。

単一のオーサリング環境

単一のオーサリング環境では、Business Central のインスタンスが 1 つだけ実行されます。複数のユーザーが同時に Web インターフェースにアクセスできますが、パフォーマンスが制限される可能性があり、フェイルオーバー機能はありません。

Business Central には、開発したサービスの各種ビルドバージョン (KJARファイル/アーティファクト) を格納する、ビルトイン Maven リポジトリーが含まれています。継続的インテグレーション/継続的デプロイメント (CICD) ツールを使用して、リポジトリーからこのようなアーティファクトを取得し、必要に応じて移動できます。

Business Central は、ビルトインの Git リポジトリーにソースコードを保存します (.niogit ディレクトリーに保存)。組み込まれたインデックスメカニズムを使用して、サービス内でアセットをインデックス化します。

Business Central では、Maven リポジトリーと Git リポジトリーに永続ストレージを使用します。

単一のオーサリング環境には、デフォルトで KIE Server が 1 台含まれています。この KIE Server は、ビルトインの H2 データベースエンジンを使用して、プロセスサービスの状態を保存します。

単一のオーサリング環境では、コントローラーストラテジー を使用できます。Business Central には、KIE Server を管理できるコンポーネントである コントローラー が含まれています。Business Central に接続するように KIE Server を設定した場合、KIE Server は REST API を使用してコントローラーに接続します。この接続を使用すると、WebSocket が永続的に解放されます。コントローラーストラテジーを使用する OpenShift デプロイメントでは、KIE Server はそれぞれ、Business Central コントローラーに接続するように初期設定されます。

Business Central ユーザーインターフェースを使用して KIE Server でサービスをデプロイしたり管理したりする場合、KIE Server はコントローラー接続の WebSocket を使用して要求を受け取ります。サービスをデプロイする場合は、KIE Server が Business Central の一部である Maven リポジトリーから必要なアーティファクトを要求します。

クライアントアプリケーションは、REST API 経由で、KIE Server で実行されるサービスを使用します。

図2.1 単一のオーサリング環境のアーキテクチャー図

architecture authoring nonha

KIE Server のクラスタリングと複数の KIE Server の使用

KIE Server Pod をスケーリングして、KIE Server のクラスター環境を実行できます。KIE Server をスケーリングするには、ビルトインの H2 データベースエンジンではなく、別の Pod でデータベースサーバーを使用するか、外部のデータベースサーバーを使用する必要があります。

クラスターデプロイメントでは、複数の KIE Server インスタンスが同じサービスを実行します。このようなサーバーは、Business Central コントローラーから同じ要求を受信できるように、同じサーバー ID を使用して Business Central コントローラーに接続します。Red Hat OpenShift Container Platform ではサーバー間の負荷分散が可能です。同じクライアントからの要求が別のインスタンスで処理される可能性があるため、クラスター化された KIE Server で実行するデシジョンサービスや Business Optimizer のサービスは、ステートレスでなければなりません。

独立した KIE Server を複数デプロイして、異なるサービスを実行することも可能です。このような場合、サーバーは異なるサーバー ID 値を指定して Business Central コントローラーに接続します。各サーバーにサービスをデプロイする場合は、Business Central UI を使用できます。

Smart Router

任意の Smart Router コンポーネントは、クライアントアプリケーションと KIE Server の間にレイヤーを提供します。独立した KIE Server を複数使用する場合に役立ちます。

クライアントアプリケーションは、異なる KIE Server で実行されるサービスを使用できますが、常に Smart Router に接続されます。Smart Router は自動的に、必要なサービスを実行する KIE Server に要求を渡します。また、Smart Router では、サービスのバージョン管理も可能で、追加の負荷分散レイヤーも提供されます。

高可用性オーサリング環境

高可用性 (HA) のオーサリング環境では Business Central Pod がスケーリングされるため、複数の Business Central インスタンスが実行されます。Red Hat OpenShift Container Platform は、ユーザー要求の負荷分散を提供します。この環境は、複数のユーザーに最適なパフォーマンスを提供し、フェイルオーバーをサポートします。

Business Central の各インスタンスには、構築されたアーティファクト用の Maven リポジトリーが含まれており、ソースコードには .niogit の Git リポジトリーを使用します。このインスタンスは、リポジトリー用に共有の永続ストレージを使用します。このストレージには、ReadWriteMany アクセス権のある永続ボリュームが必要です。

Red Hat DataGrid のインスタンスは、Business Central で開発されたすべてのプロジェクトとアセットをインデックス化します。

Red Hat AMQ インスタンスは、Business Central のすべてのインスタンス間に、Java CDI メッセージを伝播します。たとえば、新規プロジェクトが作成された場合、アセットがインスタンスの 1 つでロックまたは変更された場合に、その情報が即座に他の全インスタンスで反映されます。

コントローラーストラテジーは、クラスターデプロイメントには適していません。OpenShift デプロイメントの場合は、高可用性の Business Central はOpenShift スタートアップストラテジー を使用して KIE Server を管理する必要があります。

KIE Server デプロイメント (スケーリング可能) ごとに、現在の状態を反映する ConfigMap を作成します。Business Central は、ConfigMap を読み込むことで全 KIE Server を検出します。

ユーザーが KIE Server 設定 (例: サービスのデプロイまたはアンデプロイ) で変更を要求した場合に、Business Central は KIE Server への接続を開始し、REST API 要求を送信します。KIE Server は、全インスタンスが再デプロイされ、新規設定が反映されるように、ConfigMap を変更して新しい設定の状態を反映し、独自の再デプロイをトリガーします。

OpenShift 環境で、独立した KIE Server を複数デプロイできます。KIE Server にはそれぞれ、必要な設定が指定された個別の ConfigMap が設定されます。KIE Server は個別にスケーリングできます。

OpenShift デプロイメントに、Smart Router を追加できます。

図2.2 高可用性オーサリング環境のアーキテクチャー図

architecture authoring ha