4

CEP エンジンを探していますが、要件を満たすエンジンがあるかどうかわかりません。私のシステムは、イベント データの複数のストリームを処理し、複雑なイベントを生成する必要があります。これは、ほぼすべての CEP エンジン (ESPER、Drools) に完全に適合します。

すべての生のイベントをデータベースに保存し (CEP の部分ではありませんが、これを行います)、ルール (または継続的なクエリなど) を使用して、複雑なイベントに対するカスタム アクションを生成します。しかし、私のルールのいくつかは、過去の出来事に依存しています。たとえば、配偶者が家に出入りするたびにセンサー送信イベントを設定できます。私の車と好きな女性の車の両方が家の近くにある場合、SMS 'Dangerous' を受け取ります。

問題は、イベント処理サービスを再起動すると、システムの状態に関するすべての情報が失われ (妻は家にいますか?)、それを復元するには、不明な期間イベントを再生する必要があることです。システム状態は、生のイベントだけでなく、複雑なイベントにも依存する可能性があります。

過去の複雑なイベントに関するレポートが必要な場合も、同じ問題が発生します。生のイベント データをデータベースに保存しており、生のイベントを再生するこれらの複雑なイベントを生成できますが、それらを再生する正確な期間がわかりません。

同時に、ほとんどのルールでは、システム状態を復元するために、過去から処理されるイベントの数 (または処理されるイベントをロードする期間) を自動的に見つけることができることは明らかです。与えられたアクションが家にいる妻の存在に依存する場合、CEP システムは最後のステータス変更を要求する必要があります。複雑なイベントに関するレポートが要求され、複雑なイベントが前の期間内の平均価格に依存する場合、この期間のすべての価格変更イベントを再生する必要があります。等々...

何か見逃したら?

4

3 に答える 3

3

私の記憶が正しければ、 RuleCore CEP サーバーが問題を解決するかもしれません。再起動しても状態が失われることはなく、仮想論理クロックが含まれているため、任意の時間の概念を使用してイベントを再生できます。

于 2011-03-31T22:00:59.233 に答える
0

現在のCEP製品が履歴データとライブイベントの結合を提供しているかどうかはわかりませんが、それが必要な場合は、Esperを使用してJDBCソース(履歴データをライブイベントに接続する)からデータをプルして反映することができますEPLステートメントでそれらを使用します。すでにEsperのWebサイトをチェックしていると思いますが、そうでない場合は、Esperにクックブックの例がたくさんある優れたドキュメントがあることがわかります。

ただし、ライブイベントの後に履歴イベントをモデル化したとしても、正しい時間枠を選択する際の問題は解決されません。また、あなたが書いたように、この時間枠はユースケースに依存します。

于 2011-02-23T11:01:04.970 に答える
0

前の人が言ったように、あなたの問題は実際にはエンジンの問題ではなく、ユースケースの問題だと思います。Drools Fusion や Esper など、私がよく知っているすべてのエンジンは、外部ソース (データベースなど) から要求に応じて照会された履歴データや状態データを使用して着信イベントに参加できます。関連する変更が発生したときに状態(または「タイムスタンプチェックポイント」)を永続化し、不明な時間枠のイベントを再生するのではなく、再起動時に状態を再ロードする必要があるようです。

または、Drools を使用している場合は、既存のルール (ルール/クエリの一種のリフレクション) を調べて、ルールが必要とするイベントのタイプを特定し、すべての要件が満たされ、ロード/再生される時点までイベント ログをバックトラックできます。セッション クロックを使用して、そこからのイベント。

最後に、クラスターを使用して再起動を減らすことができますが、それでは説明した問題は解決しません。

それが役に立てば幸い。

于 2012-06-12T16:08:06.753 に答える