4

ルール エンジンを設計する必要があるとします。静的な構成ルールに応じて、一連の責任が実行時に変化します。この問題を実装するための最適な設計パターンは何ですか?

たとえば、一部の構成に応じて、ストリーム内の一連のイベントを (1) フィルタリングする、(2) サブセットに分割する、(3) 変更することができます。

ストリームごとに、顧客は 3 つすべてを選択するか、3 つのうちのいくつかを選択するか、3 つのいずれも選択しないことができます。

したがって、アセンブリ パイプラインは、各ストリームの構成に基づいて実行時に構成する必要があります。

これを達成するための最適な設計パターンはどれですか?

4

1 に答える 1

5

あなたのユースケースを理解しているかどうかはわかりませんが、必要なことを正確に実行しているように見えるオープンソースプロジェクトがあります.

まず第一に、ルートを (静的および/または動的に) 構成できるApache Camelがあります。このようにして、構成されたルートに従って、パイプラインの各コンポーネントを介してイベント ストリームをルーティングできます。

Camel の代わりに、または Camel に加えて、Drools FusionEsperは、複雑なイベント処理 (つまり、イベントのフィルタリング、相関、分離など) を行う 2 つのオープン ソース プロジェクトです。どちらも、ルール/クエリの動的な追加/削除をサポートしています。そのため、ルートを変更する代わりに、たとえば、Drools/Esper セッションへの単一のルートを設定し、代わりに必要なことを行うために構成に従ってルール/クエリを追加/削除することができます。

「ルールエンジン」を作成する必要はないように思えます。そこにあるものをそのまま使うことができます。

于 2012-02-24T18:10:38.723 に答える