Ensemble の概要
Ensemble の目的は、Ensemble プロダクションの開発、構成、展開、および管理を可能にすることです。この章では、プロダクションと基本的な Ensemble 用語の一部について説明します。この章は以下の節で構成されています。
Ensemble プロダクションの概要
Ensemble の目的は、Ensemble プロダクションの開発、構成、展開、および管理を可能にすることです。
Ensemble プロダクションは、複数の異種ソフトウェア・システムを統合します。プロダクションには、これらの外部システムと通信する要素だけでなく、プロダクション内部の処理を実行する要素も含まれます。
プロダクション内の要素は、ビジネス・ホストと呼ばれています。Ensemble には、3 種類のビジネス・ホストがあり、次のようにそれぞれの用途が異なります。
-
ビジネス・サービスは、プロダクション外部のエンティティから要求を受け取って、それらを Ensemble 内部のホスト・クラスに中継して処理と履行を依頼します。
-
ビジネス・プロセスは、プロダクション内部のホスト・クラス (ビジネス・サービスまたはビジネス・プロセス) から要求を受け取って、その要求を処理するか、Ensemble 内部の他のホスト・クラスに中継して処理を依頼します。
-
ビジネス・オペレーションは、Ensemble 内部のホスト・クラス (ビジネス・サービスまたはビジネス・プロセス) から要求を受け取って、その要求を処理するか、Ensemble 外部のエンティティに中継して処理を依頼します。
下の図は、プロダクションとビジネス・ホストの概念的概要を示しています。
ビジネス・ホストは、Ensemble メッセージを介して相互に通信します。すべての Ensemble メッセージは、Ensemble メッセージ・ウェアハウスに保存されており、管理ポータル経由で確認できます。
ほとんど (ただし全部ではない) の場合、ビジネス・サービスに受信アダプタが関連付けられています。受信アダプタの役割は、プロダクション外部のエンティティから入力を受け取ることです。同様に、多くの場合、ビジネス・オペレーションに送信アダプタが関連付けられています。送信アダプタの役割は、プロダクション外部のエンティティに出力を送信することです。Ensemble には、さまざまなテクノロジを処理するための豊富なアダプタのセットが用意されています。例えば、ファイルには FTP 用とは別のアダプタを使用します。独自のアダプタを定義することもできます。
下の図は、管理ポータルに表示された実際のプロダクションを示しています。
このビューには、1 つのビジネス・ホスト Demo.Loan.FindRateDecisionProcessBPL との間のすべての接続が表示されています。ビジネス・サービスとビジネス・オペレーションの定義に含まれているアダプタは表示されないことに注意してください。
設定
大抵の場合、Ensemble プロダクションには数多くの設定が含まれています。設定は、プロダクションの動作を制御する構成可能な値です。また、設定は、さまざまな方法でプロダクションに影響を与えることができます。例えば、次のような項目を指定できます。
-
ビジネス・サービスでリッスンする TCP ポート
-
新しい入力をチェックする頻度
-
使用する外部データ・ソース名 (DSN)
-
外部エンティティと接続するときに使用する SSL 構成
-
接続を維持する期間
-
その他
Ensemble の重要な特徴は、システム管理者がプロダクションの実行中に設定を変更できることです。変更は即座に反映されます。システム管理者がこのような変更を加えるために使用する Web ページの例を以下に示します。
プロダクションとそのビジネス・ホストには、Ensemble から提供された設定が含まれています。これらは、プロダクション・クラスとビジネス・ホスト・クラスのプロパティに対応しています。Ensemble クラスの独自のサブクラスを定義することによって、全く同様に追加の設定を定義できます。設定を削除することによって、対応するプロパティをハードコードして構成できないようにすることもできます。
プロダクション内のメッセージ・フロー
Ensemble プロダクションは次のように受信イベントを処理します。
-
受信アダプタが、受信イベントを受け取り、それを Ensemble メッセージ・オブジェクトに変換して、関連するビジネス・サービスに渡します。
-
ビジネス・サービスが、後続の要求メッセージを作成し、その新しいメッセージを Ensemble 内のビジネス・プロセスまたはビジネス・オペレーションに渡します。
-
要求メッセージを受け取ったビジネス・プロセスが、事前に定義された一連のアクティビティを順次または並列に実行します。これらのアクティビティに、他のビジネス・ホストへの後続のメッセージの送信が含まれる場合があります。ビジネス・プロセスは、プロダクション内のほとんどのまたはすべてのビジネス・ロジックにも責任があります。次の章で詳しく説明します。
-
ビジネス・オペレーションが、Ensemble 外部のリソース (その多くは外部ソフトウェア・アプリケーション) の機能をカプセル化します。このビジネス・オペレーションは、Ensemble 要求メッセージ・オブジェクトのプロパティを、外部アプリケーション API で使用できる形式に変換します。
-
送信アダプタは、Ensemble 内部からの特定の外部システムまたはアプリケーションとの通信の詳細を管理します。送信アダプタは API 呼び出しを外部エンティティに送信します。
-
外部システムや外部アプリケーションからの応答により、イベントのフローを開始した外部エンティティに対し、連鎖する応答メッセージをトリガして戻すことができます。詳細は、プロダクション開発者がどの設計を選択したかによって異なります。
デモンストレーションとして、下の図は、Ensemble が初期メッセージ (この場合は、外部ソースではなく、Ensemble テスト・サービスから送信される) に応答して送信した関連メッセージのセットのトレースを示しています。
この処理には、自動化されたビジネス・プロセスにユーザ操作を組み込めるようにするワークフローを含めることもできます。企業内でのワークフローの使用例としては、受注、注文調達、契約の承認、およびヘルプ・デスク活動があります。“その他の Ensemble オプション” の章で詳しく説明します。
Ensemble と Caché
Ensemble は、Caché に基づいて構築されています。つまり、Ensemble インストールには Caché のインストール一式が含まれています。
Caché は、フル機能を備えたデータベース・システムです。ミッション・クリティカルなアプリケーションの実行に必要なすべての機能 (ジャーナリング、バックアップとリカバリ、システム管理ツールなど) が含まれています。運用コストを削減するために、Caché は、データベース製品よりもデータベース管理の必要性を大幅に軽減するように設計されています。
Ensemble では、管理ポータルに、Caché インストール内に存在するすべてのオプションだけでなく、Ensemble に固有の追加のメニューも含まれています。
Ensemble は、Caché から提供されているセキュリティ・ツールを使用します。Caché には、認証、許可、監査、およびデータベース暗号化を含む完全なセキュリティ・モデルが用意されています。その他のツールが外部エンティティとのセキュアな通信を可能にします。
Caché には (したがって、Ensemble にも)、クラス定義やルーチンを作成するための組み込み汎用プログラミング言語がいくつか用意されています。これは、Ensemble プロダクションで高度にカスタマイズされた処理が可能なことを意味します。
Caché の概要は、"Caché 入門" を参照してください。
データの永続性とリカバリ
予定の有無にかかわらずシャットダウンが発生した場合に備えて、Ensemble には高度なリカバリ機能が用意されています。つまり、システムを再起動するときに、サービスをほとんど中断することなく実行を再開できます。リカバリの程度を左右する要因には、外部アプリケーションの堅牢さ、各種のビジネス・サービス、ビジネス・プロセス、ビジネス・オペレーションの実装の詳細、および機能停止自体の性質などがあります。
プロダクション定義とすべての補助コードやデータの保存に加えて、Ensemble は、何らかの故障が発生したときにシステムのリカバリを支援するために実行時プロダクション・データを保存します。この実行時データには以下が含まれます。
-
メッセージ。
-
完了までに数日または数週間かかるような長期実行ビジネス・プロセスに関連した状態情報。つまり、この処理はプロダクションの停止と開始の影響を受けません。
-
ビジネス・ルール・ログ・エントリ。
-
イベント・ログ。
このすべてのデータがシステム機能停止を越えて存在し続けます。
通常は、"Ensemble の管理" の説明に従って、データを定期的にパージします。