85.8. イベントストリームとエントリーポイント
デシジョンエンジンは、大量のイベントをイベントストリームの形式で処理できます。DRL ルール宣言では、ストリームは エントリーポイント としても知られています。DRL ルールまたは Java アプリケーションでエントリーポイントを宣言すると、デシジョンエンジンはコンパイル時に適切な内部構造を特定して作成し、そのエントリーポイントのみからのデータを使用してそのルールを評価します。
1 つのエントリーポイント、またはストリームからのファクトは、デシジョンエンジンのワーキングメモリーにすでにあるファクトに加えて、他のエントリーポイントからのファクトに参加できます。ファクトは、常にデシジョンエンジンに入ったエントリーポイントに関連付けられたままとなっています。同じタイプのファクトは、複数のエントリーポイントからデシジョンエンジンに入ることができますが、エントリーポイント A からデシジョンエンジンに入るファクトは、エントリーポイント B からのパターンと一致することはありません。
イベントストリームには、以下の特徴があります。
- ストリーム内のイベントは、タイムスタンプ別に並べられます。タイムスタンプは、ストリームごとにさまざまなセマンティクスを持つ場合もありますが、常に内部で並べ替えが行われます。
- 通常、イベントストリームには大量のイベントがあります。
- 通常、ストリームに含まれるアトミックなイベントは、それだけでは実用的ではなく、ストリームで集合的な場合にのみ実用的です。
- イベントストリームは、同種 (単一タイプのイベントを含む) の場合も、異種 (異るタイプのイベントを含む) の場合もあります。
85.8.1. ルールデータのエントリーポイントの宣言 リンクのコピーリンクがクリップボードにコピーされました!
イベントのエントリーポイント (イベントストリーム) を宣言して、デシジョンエンジンがそのエントリーポイントのみからのデータを使用してルールを評価することが可能です。エントリーポイントは、DRL ルールで参照することで暗黙的に宣言することも、Java アプリケーションで明示的に宣言することもできます。
手順
以下のいずれかの方法を使用して、エントリーポイントを宣言します。
DRL ルールファイルで、挿入されたファクトの
from entry-point "<name>"を指定します。"ATM Stream" エントリーポイントで取り消しルールを認可
Copy to Clipboard Copied! Toggle word wrap Toggle overflow "Branch Stream" エントリーポイントで手数料ルールを適用
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 銀行取引アプリケーションにおける両方の DRL ルールのサンプルは、イベント
WithdrawalRequestにファクトCheckingAccountを挿入しますが、エントリーポイントは異なります。実行時にデシジョンエンジンは、"ATM Stream"エントリーポイントのみからのデータを使用してAuthorize withdrawalルールを評価し、"Branch Stream"エントリーポイントのみからのデータを使用してApply feeルールを評価します。"ATM Stream"に挿入されたイベントは、"Apply fee"ルールのパターンと一致することはありません。また、"Branch Stream"に挿入されたイベントは、"Authorize withdrawal rule"のパターンと一致することはありません。Java アプリケーションコードで、
getEntryPoint()メソッドを使用してEntryPointオブジェクトを指定および取得し、以下に従ってファクトをそのエントリーポイントに挿入します。EntryPoint オブジェクトと挿入されたファクトを持つ Java アプリケーションコード
Copy to Clipboard Copied! Toggle word wrap Toggle overflow from entry-point "ATM Stream"を指定する DRL ルールはすべて、このエントリーポイントのデータのみに基づいて評価されます。