2008 - 10 - 11T09 : 01:00.011 +02:00
前の投稿 私はポーズをとっている は、次のsceanario :
を考えると、簡単なアプリケーションは以下のとおり:
- ある1つのイベントソースは、 3種類のE1 、 e2のE3は、イベントを生成する(これはクロック同期の問題です) 。
- させるのも、私たちの話では、 (類義語の問題がないように)公開されている各タイプの1つのイベントをしていると、テーブルの発生時間(ときに現実に)が発生したと検出時間を示して(ときに、システムに報告されている) -されており、それぞれの発生後、 1時間単位報告の問題を再発注。
- e2は、 EPAのタイプのための入力としては、 e2 " 、およびこの検出されたときの前に時間的なシーケンスパターン"のE1が検出された"パターンの検出"を果たすイベントのE1 、それはイベントe4派生-のE1とE2のいくつかの関数です。
- イベントe3 (生のイベント) 、 e4 ( )イベントの派生型の別のEPAへの入力としての再e4 " 、もしこのパターンが検出される-は、いくつかのアクションをトリガイベントe5を作成する前に、時間的なシーケンスパターン" e3が検出された"パターンの発見"を提供消費者。
私も-上- e5作用によって発生するトリガされますか、すなわちパターンが与えられる質問- " e3前e4 "がtrueに評価されるか?
これにはいくつかの回答をしたと、元の投稿前に私はこの単純な例の分析にこの投稿の拡充を図っていると約束するコメントを読むことができます:
について話し合うために、まず最初に時間的順序"の意味論"です。私"検出時間の意味"と"発生の時間的意味論"は、通話時間的順序は、意味の2つの種類があります。
- 検出時間の意味を、様々な言語や意味では、時間的順序はタイムスタンプの順序です実装されていますが、このイベントが発生するのは、 "イベント処理プラットフォーム"が検出されたの場合、単一のスレッドがそのような発見をされているイベント完全に、それ以外の順に並んでいますが、同じ"検出のタイムスタンプにはいくつかのイベント"になることがあります。
- 発生時刻の意味も様々な言語で実装は、時間的順序は時間の順序は、イベント情報の一部として提供されています切手、指定-このイベントの時に実際に試していることを意味します。また複数の時刻の同期の一部の生産環境の複雑さは、我々は1つの生産者と仮定しているこの例では(私は複数のケースについて書くよ、プロデューサー別の投稿で) 。
- は、この2つの順序関係を同一でない場合があります。
- また、ハイブリッドなソリューションのようなものです( "全注文セマンティクス" ) -の意味を本当に"検出時間"の意味が、そのためのイベントを適切な役割を担うには少し遅れて到着できるようにすると、イベントは、バッファのキューに入れられます(と以下のように検知)タイムアウトするまで考えていないように"秩序"のイベントが到着すると、バッファを再注文して、バッファの注文に応じてイベントを送信します。
先頭の例に行く-の小テーブルの下に、左の図の上の右側は、発症およびE1 、 e2のE3は、検出回されています。 ( E1の、 e2のE3は、 )という事実には異なっていますe4しか検出時間- e4 、それが由来の原料は、他の3つのイベントのようなイベントです。問題は"何の派生イベントの発生時"とは何ですか? -そこには明確な答えは-いくつかの可能性の答えがある:
- 派生イベントが発生する場合は、時間\u003d検出時間は、このイベントではない本当のイベントは、仮想一、これ以降、そのソースは、 EPAが作成され、作成され、それが発生しました。我々のケースでは、 occurence時間( e4 ) \u003d 4を意味します。
- その最後のイベントの発生時には、パターン- e4の作成に参加するイベントの発生時から完成されている(のE1 、 E2は、最後のe2 )とは、パターン、発生時刻( e4 ) \u003d発生完成しました時間( E2 )の\u003d 2
- 間隔意味:このイベントはe4のすべての参加者は、この事件が発生間隔で発生発生時刻( e4 ) \u003d [ 1 、 2を意味] 。
複数の意味解釈の様々な現象を意味し、イベント処理言語を決定し、推奨ソリューションを意味です意味"罰金は、下には、ユーザが希望の意味を選ぶことができます"政策ではなく、 "チューニングをユーザに提供するためには、適用非常に困難ですので、ハードコード"は、特定の意味を( )は、この1つのイベントを処理するための簡易ベッドを使用する利点は、そのような問題については、従来の言語を使用してmanuaully思うEP開発するためのデフォルトとして1を使用して、最も一般的。
2番目の"時間的なシーケンスの意味論" 』 ( E3 、 e4 )ですので:
- "検出時間"の意味-の両方があるによると検出- 4の時間です。などの条件を満たす配列されていません。もし我々は1つのスレッドによって全命令を課すしかし、これは2つのイベント間の競争条件を創出することがあります。それは一貫優先政策-最初の(常に最初に来るの生のイベント) 、または最初の深さ(常に最初に来るの派生イベント)決定論的結果を確保するためのいずれかの幅を使用することを推奨しますこの場合。
- "発生時に"よれば-それは、政策選択に依存するが、すべてのinterprerationsによると- e4 e3が発生する前に-これは、時間的な順序に満足されていません。
下部ライン:シーケンスの時間』 ( E3 、 e4 )満足されている場合:
- 時間が検出され、時間的意味論
- 全順序で実装されています
- 全体の秩序政策"幅優先" -すなわち生のイベントの優先度です。
シーケンスとは、時間的に満足されずに当然の行動を、他のすべての場合には実行されません。
ソース...