(57)【特許請求の範囲】
【請求項１】
分散演算システム（３００；７００）の第１のノード（７０４−１）の第１のイベント検出器プロセスを、上記第１のノード（７０４−１）とは異なる上記分散演算システム（３００；７００）の第２のノード（７０４−２）の第２のイベント検出器プロセスに転送する装置（８００）であって、
上記第１および第２のイベント検出器プロセスは、規定の幾何学的領域内にあるオブジェクトを追跡するための場所追跡システムからの少なくとも１つのセンサデータストリーム（７０２）に基づきイベントを検出するために動作可能であり、上記センサデータストリーム（７０２）は、少なくとも１つのオブジェクトに関連した幾何学的位置または運動学的データを示す生のセンサデータを有し、上記イベントは、上記生のセンサデータに直接基づく基本イベント、または以前に検出された他のイベントに基づく合成イベントであり、
繰り返される複数のコピー手続きにおいて、上記第１のイベント検出器プロセスのプロセス内容を上記第２のイベント検出器プロセスにコピーするための手段（８０２）であって、現在の上記コピー手続きにおいて、それ以降に繰り返される各上記コピー手続きの間に変化しない上記第１のイベント検出器プロセスのプロセス内容をコピーするように構成されているコピーするための手段（８０２）と、
上記第１のイベント検出器プロセスの入力イベントが上記第１および上記第２のイベント検出器プロセスの双方において並行して処理されるように、上記第１のイベント検出器プロセスの上記入力イベントを調停するための手段（８０４）と、
上記第１および上記第２のイベント検出器プロセスの双方において並行して処理される上記第１のイベント検出器プロセスの上記入力イベントによって、上記第１および第２のイベント検出器プロセスにおける同一の出力イベントが起こったか否かを検証するための手段（８０６）であって、上記第１および第２のイベント検出器プロセスの双方における上記出力イベントが同一である場合に上記第１のイベント検出器プロセスをシャットダウンするか、または、上記第１および第２のイベント検出器プロセスにおける上記出力イベントが同一ではない場合に上記第２のイベント検出器プロセスをシャットダウンするように構成されている検証するための手段（８０６）とを備えている装置（８００）。
【請求項２】
最適なイベント検出器プロセス分布基準に基づき、一群のノード候補から上記第２のノード（７０４−２）を決定するための手段（８０８）をさらに備えている請求項１に記載の装置（８００）。
【請求項３】
上記最適なイベント検出器プロセス分布基準によって、上記分散演算システムのすべてのイベントにおける最小の全体的な遅延、上記分散演算システムにおける最小の数の安全なイベント契約、上記分散演算システムの任意のノードの最小の負荷変動、または、分散演算システムの最小の全体的な負荷のうちの一つが得られる請求項２に記載の装置（８００）。
【請求項４】
上記第２のイベント検出器プロセスを得るために、上記第１のイベント検出器プロセスに対応するインスタンスを上記第２のノードに生成するための手段（８１０）をさらに備えている請求項１〜３のいずれか１項に記載の装置（８００）。
【請求項５】
上記第２のノード（７０４−２）において上記第２のイベント検出器プロセスをインスタンス化した後、上記インスタンスを生成するための手段（８１０）は、同一の入力イベントのために上記第２のイベント検出器プロセスを上記第１のイベント検出器プロセスとして利用する請求項４に記載の装置（８００）。
【請求項６】
コピーするための上記手段（８０２）は、上記第１のイベント検出器プロセスの上記プロセス内容を規定の時点で凍結し、かつ上記凍結された上記プロセス内容を、上記第１のイベント検出器プロセスから上記第２のイベント検出器プロセスにコピーするように動作可能である請求項１〜５のいずれか１項に記載の装置（８００）。
【請求項７】
上記入力イベントを並行して調停するための上記手段（８０４）は、上記規定の時点で開始しかつ上記コピーされたプロセス内容に基づき、上記第１および第２のイベント検出器プロセスの双方において、上記第１のイベント検出器プロセスの上記入力イベントを同時に処理するように動作可能である請求項６に記載の装置（８００）。
【請求項８】
コピーするための上記手段（８０２）は、上記プロセス内容のコピー中に上記第１のイベント検出器プロセスの上記入力イベントをバッファするように動作可能である請求項１〜７のいずれか１項に記載の装置（８００）。
【請求項９】
イベント検出器プロセスは、状態機械を備え、
上記プロセス内容は、上記状態機械の現在の状態を反映する請求項１〜８のいずれか１項に記載の装置（８００）。
【請求項１０】
少なくとも１つのセンサデータストリーム（７０２）に基づきイベントを決定する分散演算システム（３００；７００）であって、
複数の分散演算ノード（７０４）と、
上記分散演算システム（７００）の第１のノード（７０４−１）の第１のイベント検出器プロセスを、上記分散演算システム（７００）の第２のノード（７０４−２）の第２のイベント検出器プロセスに転送するための請求項１〜９のいずれか１項に記載の装置（８００）とを備え、
上記複数の分散演算ノード（７０４）のそれぞれは、共通クロック信号に基づく第１のイベントタイミング値に関する第１のイベント（２０２）と、上記共通クロック信号に基づく第２のイベントタイミング値に関する第２のイベント（２０４）とを同期させるための装置（２００）を備え、上記第１および第２のイベント（２０２；２０４）は、分散演算システム（７００）の異なる経路を通過する際に異なる遅延を発生させ、少なくとも１つの出力イベント（２０６）は、上記第１および第２のイベント（２０２；２０４）に基づきイベント検出器（２０８）によって決定され、
同期させるための上記装置（２００）は、上記第１および第２のイベント（２０２；２０４）を受信するための入力部（２１２）と、上記第１および第２のイベントの中継版（２０２’；２０４’）を、関連する上記イベント検出器（２０８）に転送する出力部（２１４）とを有する遅延補償器（２１０）を備え、
上記遅延補償器（２１０）は、上記第１および第２のイベント（２０２；２０４）を、生じた上記遅延および関係する上記第１および第２のイベントタイミング値に基づき、関係する上記イベント検出器に中継するように動作可能である分散演算システム（３００；７００）。
【請求項１１】
上記遅延補償器（２１０）は、上記第１および第２のイベント（２０２；２０４）の上記中継版の時間順が、上記第１および第２のイベントの元の時間順に対応するように、上記第１および第２のイベント（２０２；２０４）を、関連する上記イベント検出器に中継するように動作可能である請求項１０に記載の分散演算システム（３００；７００）。
【請求項１２】
上記遅延補償器（２１０）は、上記第１および第２のイベントの上記中継版（２０２’；２０４’）間の相対的時間差が、上記第１および第２のイベント（２０２；２０４）の元の相対的時間差に対応するように、上記第１および第２のイベントをそれぞれ中継するように動作可能である請求項１０または１１に記載の分散演算システム（７００）。
【請求項１３】
上記遅延補償器（２１０）は、第１および第２のイベントタイミング値と共通遅延値とに基づき、上記第１および第２のイベント（２０２；２０４）を、関連する上記イベント検出器（２０８）に中継するための出力時点を決定するように動作可能である請求項１０〜１２のいずれか１項に記載の分散演算システム（７００）。
【請求項１４】
上記遅延補償器（２１０）は、上記第１および第２のイベントタイミング値と、上記第１および第２のイベントの最大イベント遅延とに基づき、上記第１および第２のイベント（２０２；２０４）を、関連する上記イベント検出器（２０８）に中継するための出力時間を決定するように動作可能である請求項１０〜１３のいずれか１項に記載の分散演算システム（７００）。
【請求項１５】
上記遅延補償器（２１０）は、上記遅延補償器における上記第１および第２のイベント（２０２；２０４）の受信時間と、それらのそれぞれの関連する元のイベントタイミング値とに基づき上記第１および第２のイベント（２０２；２０４）のイベント遅延をそれぞれ決定する請求項１０〜１４のいずれか１項に記載の分散演算システム（７００）。
【請求項１６】
分散演算システム（３００；７００）の第１のノード（７０４−１）の第１のイベント検出器プロセスを、上記第１のノード（７０４−１）とは異なる上記分散演算システム（３００；７００）の第２のノード（７０４−２）の第２のイベント検出器プロセスに転送する方法（９００）であって、
上記第１および第２のイベント検出器プロセスは、規定の幾何学的領域内にあるオブジェクトを追跡するための場所追跡システムからの少なくとも１つのセンサデータストリーム（７０２）に基づきイベントを検出するために動作可能であり、上記センサデータストリーム（７０２）は、少なくとも１つのオブジェクトに関連した幾何学的位置または運動学的データを示す生のセンサデータを有し、上記イベントは、上記生のセンサデータに直接基づく基本イベント、または以前に検出された他のイベントに基づく合成イベントであり、
繰り返される複数のコピー手続きにおいて、上記第１のイベント検出器プロセスのプロセス内容を上記第２のイベント検出器プロセスにコピーする工程（９０２）であって、現在の上記コピー手続きにおいて、それ以降に繰り返される上記コピー手続きの間に変化しない、上記第１のイベント検出器プロセスのプロセス内容をコピーするように構成されているコピーする工程（９０２）と、
上記第１のイベント検出器プロセスの入力イベントが上記第１および上記第２のイベント検出器プロセスの双方において並行して処理されるように、上記第１のイベント検出器プロセスの上記入力イベントを調停する工程（９０４）と、
上記第１および上記第２のイベント検出器プロセスの双方において並行して処理される上記第１のイベント検出器プロセスの上記入力イベントによって、上記第１および第２のイベント検出器プロセスにおける同一の出力イベントが起こったか否かを検証する工程（９０６）であって、上記第１および第２のイベント検出器プロセスの双方における上記出力イベントが同一である場合に上記第１のイベント検出器プロセスをシャットダウンするか、または、上記第１および第２のイベント検出器プロセスにおける上記出力イベントが同一ではない場合に上記第２のイベント検出器プロセスをシャットダウンするように構成されている検証する工程（９０６）とを備えている方法（９００）。
【請求項１７】
コンピュータまたはプロセッサにおいて実行されるときに、請求項１６に記載の方法（９００）を実行するためのプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明の実施形態は、一般に、データネットワークに関し、特には、分散演算システムの異なるノード間においてイベント検出器プロセスを転送するための装置および方法に関する。
【０００２】
（背景）
たとえば無線センサネットワークなどのセンサネットワークには、幅広い用途がある。たとえば様々な技術の無線センサネットワークは、人および／または他のオブジェクトの位置決めなどの位置決めの目的に用いられうる。ここで「位置決め」とは、幾何学的位置または場所の検出または決定を意味する。いくつかの専門化された位置決めシステムまたは場所追跡システムは、たとえば、サッカー、アメリカンフットボール、ラグビー、テニスなどのスポーツイベントにおいて、選手または他のオブジェクト（たとえばボール）の位置決めに用いられうる。
【０００３】
選手および／またはボールの集められた幾何学的位置または場所データを用いることによって、スポーツイベント全体、たとえばサッカーの試合、または、関連する個々のチームまたは選手の統計的情報を得ることができる。そのような得られた統計的情報は、様々な理由のため興味深い。一方では、特定の統計としての様々な商業上の関心があり、その解析は、スタジアムおよび／または家のテレビセットの前にいる観戦者に特に関連しうる。それゆえ、特定の解析を提供すれば、スポーツイベントにおいてより一層の関心を引き起こしうる。他方では、生の場所データから得られる統計的データは、同様に、訓練の目的のためにも用いられうる。それゆえ、相手、および／または、自チームの挙動は、個々の選手のパフォーマンスおよび／または健康状態と同様に解析されうる。
【０００４】
上述した位置決めシステムまたは場所追跡システムは、様々な技術に基づきうる。たとえば位置決め情報は、無線ラジオ信号および／または磁場に基づき決定されうる。この目的のため、一般にはセンサとも表記される送信機および／または受信機は、システムによって位置決めされる個々のオブジェクト（たとえば選手、ボールなど）に配置されうる。対応する受信／送信装置もまた、関心のある幾何学的領域、たとえばサッカー場、の周囲の規定の位置に取り付けられうる。技術的な選択肢候補の例を挙げれば、信号強度、信号伝播時間、および／または信号位相の測定によって、それから、異なる時点における選手またはオブジェクトの幾何学的位置を示すセンサデータストリームが生ずる。典型的には、幾何学的位置データサンプルは、どの幾何学的場所にどの時間にオブジェクトが配置されたかを示すタイムスタンプに関連している。この組み合わせ情報と共に、速度、加速度などのような運動学的データが、たとえばｘ軸、ｙ軸、およびｚ軸を有する位置決めデータに加えて、同様に提供されうる。この明細書の続きでは、位置決めセンサシステムによって与えられる位置決めデータおよび運動学的データは、（生の）センサデータとしても表記される。
【０００５】
特に、無線追跡システムの例では、人またはオブジェクトには、履物、ユニフォーム、およびボールに埋め込まれ、かつその信号が、観察下の領域周辺に配置される多数のアンテナによって検出されうる小型の送信機が取り付けられうる。受信ユニットは、集められた信号を処理し、その到達時間（ＴｏＡ）を決定する。伝播遅延の相違の算出に基づき、各送信機の場所が次に継続的に決定される。加えて、無線追跡システムが組み込まれたコンピュータネットワークが、特定のイベントを検出するように、場所またはセンサデータを解析しうる。２．４ＧＨｚ帯で動作する場合、追跡システムは広くライセンスフリーである。
【０００６】
位置決めまたは場所追跡システムから出力された生のセンサデータストリームに基づき、いわゆる「イベント」が検出されうる。これによりイベントは、ある時点での瞬間的な対象の発生として定義されうる。一般に、イベントは、検出されることができる関連する量の分散の変化に関連している。イベントは、追跡システムのセンサデータ（運動学的データ）に直接基づく基本イベント、または、その代わりに、以前に検出された他のイベントに基づく合成イベントでありうる。すなわち合成イベントは、生のセンサデータに直接基づかず、他のイベントに直接基づいている。球技の例では、イベントは、たとえば、「選手Ｘがボールを蹴る」、または「選手Ｘがボールを持つ」でありうる。より複雑なイベントは、たとえば、「オフサイド」または「ファウル」でありうる。
【０００７】
基礎となるセンサデータストリームに基づくイベントの検出は、過去の数年において、データベースおよび分散システムコミュニティに、多大な関心を引き起こしている。ネットワーク監視、ｅ−ビジネス、ヘルスケア、金融解析、およびセキュリティまたは上述したスポーツイベントの監督としての用途を含む、今日における幅広くかつ増大する数の用途は、理想的にはイベントの時系列の形態をとるデータストリームに渡ってクエリを処理する能力に依存している。多くの用途では、数多くの供給されたセンサデータおよび／またはイベント検出器が、人間によってはそれ以上取得したり処理したりすることができないので、イベント検出は、人間の介入を受けることなく、生のセンサデータおよび／またはイベントを完全に自動的に処理することを意味する。たとえば、選手またはスポーツオブジェクトたとえばボールが高速で変化することが期待される場合、生のセンサ（位置決めまたは場所追跡）データは、基本の（無線）センサネットワークによって充分に高いデータ率で決定しなければならない。加えて、追跡すべき多くの数の選手および／またはオブジェクト（たとえばサッカーでは２２人の選手とボールがある）、一秒ごとの幾何学的位置決めおよび運動学的データ全体の数は、特にリアルタイムのイベント検出器処理が必要となる場合には、法外に大きくなりうる。
【０００８】
それゆえ、生のセンサおよび／またはイベントデータストリームが解析されかつ完全に自動的に信号化されたとしても、依然として、おそらくは全体として何の関心にもなりさえしない、多すぎるほど多い情報が存在しうる。より多くの装置にセンサが取り付けられ、かつ、決定されたセンサデータがインターネットなどの公衆ネットワークに提供される可能性（たとえば、スマートフォンなどの無線装置によって決定される気象または温度データ）があるので、将来、この問題は一層悪化する。この理由のため、関心のある特定のイベントに対して処理されるセンサデータの量は、急速に拡大する。自動化検出は、生のセンサデータを個々に集め、かつ、生のセンサデータ自体よりもさらに多くの情報を転送しうるより抽象的かつ相互に依存するイベントを検出する試みによって、これに対する解決策を提供しうる。たとえば、上述したサッカー関連の例に加えて、そのような決定されるイベントには、「車Ｘが横断歩道Ｙに位置する」または「通路Ｘにおける交通渋滞」が含まれうる。
【０００９】
自動的イベント検出において生じる問題は、おそらくは大量に並行のセンサおよび／またはイベントデータストリームに対するイベント検出を行うための計算能力が必要であり、かつ、少なくともリアルタイムに近い処理が必要な状況下で行われることにある。この問題は、たとえばイーサネットを通じて通信しうるコンピュータネットワークの異なるネットワークノードにおいてたとえば実行されうるイベント検出の並行化によって、解決されうる。これにより、イベント検出器は、ユーザが指定したイベント検出器に対応するイベントまたはセンサデータストリームから、関心のある特定のイベントを自動的に抽出する。個々のイベント検出器は、データネットワークの異なるネットワークノードに分散されうる。異なるイベント検出器は、端末装置のネットワーク通路および分岐を用いてネットワークを通過するイベントおよび／またはセンサデータを用いて通信する。これにより、生のセンサデータおよび／またはイベントは、たとえばＵＤＰ（ユーザデータグラムプロトコル）、ＴＣＰ（トランスミッションコントロールプロトコル）／ＩＰ（インターネットプロトコル）などのような何らかの配送プロトコルに基づき、データパケット内において配送されうる。しかし、この構成によって、異なるネットワークノード間におけるアンバランスな計算負荷、および、ネットワーク内のイベントデータストリームの同期に関連する新たな問題が生じる。適切な対抗策がなければ、異なるネットワークノード間の計算負荷はアンバランスになり、ネットワーク内の個々のセンサおよび／またはイベントデータストリーム互いに時間同期されず、このことは、個々のイベントがイベント検出器に管理する時間順から外れて到達し、これにより誤った検出結果を引き起こしたことを意味する。
【００１０】
並行して自動的に動作する複数のイベント検出器が選手Ａから選手Ｂへのパスを検出することが想定されるサッカーの例を見てみよう。上記「パス」イベントを検出するために、以下の前述したイベント順序が必要になる。
【００１１】
１．選手Ａはボールを所持している。
【００１２】
２．選手Ａはボールを蹴る。
【００１３】
３．ボールは選手Ａから離れる。
【００１４】
４．ボールは選手Ｂの近くに来る。
【００１５】
５．選手Ｂがボールに当たる。
【００１６】
「選手Ｘがボールを蹴る」というイベントのイベント検出は、「ボールの近くの選手Ｘ」というイベント順序および検出されたボールの加速度ピークに基づきうる。「選手Ｘがボールを蹴る」という上記イベントのための自動化されたイベント検出器をセットアップするためには、以下の代替物がある。
【００１７】
我々は、個々の必要なイベントを１つずつ待ちうる。我々がすべての必要なイベントを正しい（時間）順で見たとき（ここで、簡潔さのために如何なる中止基準をも無視する）、パスを見たまたは経験したと言うことができる。しかし、イベント検出器の並行化のために、複雑な用途では、必要なすべてのイベントの検出が単一のネットワークノードまたはＣＰＵ（中央演算装置）において必ずしも生じるとは限らない。この理由のため、必要な個々のイベントが必要な正しい順番でイベント検出器に到達することは、必ずしも保証されない。この原因は、たとえば、ネットワークジッタ、変動するおよび／またはアンバランスのＣＰＵ負荷、または増加するネットワーク負荷が原因でありうる。
【００１８】
それゆえ、イベントをバッファし、それからイベントを正しいパターンにするためにバッファを探索することを試みることができる。しかし、幾らのバッファサイズが必要になるだろうか？パスが最大で５秒以内に発生しなければならない場合、パスを検出するかまたは中止するまで、第１の関連イベントの後の５秒の期間以内にイベントを考慮しなければならない。しかし、最後の関連イベントが計算上極めて複雑であり、小さな追加のバッファを必要とすることもありうる。しかし、この追加のバッファするサイズは幾らだろうか？また、「パス」イベントを入力イベントとして必要とする合成イベント検出器に関連するバッファサイズは幾らだろうか？イベント信号伝達遅延は、システム／ネットワークの全体構成、すなわち、イベント検出器の分布、ならびにネットワーク負荷およびＣＰＵ負荷に依存する。構築時には、最終的なシステム構成または負荷状況は予知しえない。
【００１９】
多くの場合、イベント処理または伝播遅延は関連していないため、大半の既存のイベント検出システムは、上述したイベント信号伝達遅延および／または負荷バランス問題を考慮していない。しかし、特に、金融事例または場所追跡事例などの高度に複雑なリアルタイムイベント検出システムでは、このことは当てはまらない。
【００２０】
以下のサッカー関連例では、図１に模式的に示す、頻繁に必要な「オフサイド」イベント検出事例に基づくイベント遅延を例示する。
【００２１】
選手１００は、ボール１１０を前方のチームメイト１２０にパスする。パスの正しい（実際の）時間、すなわちボール１１０に加速的な揺れまたはピークが生じた時間（図１の左を参照）に、選手１２０は、オフサイドの位置に数センチメール入っている。それゆえ、試合は中断されなければならない。
【００２２】
しかし、選手１００の直接のパスまたはドリブルを区別できるようにするために、選手１００から選手１２０へのパスは、ボール１２０が実際に選手１００から離れたときにのみ検出されうる。センサデータのデータレートが限られているので、このように区別する決定によって、少なくとも数ミリ秒の追加の「自然な」遅延が起こりうる。しかし、この自然の遅延の後では、選手１２０はもはやオフサイド位置にいないかもしれない（図１の右を参照）。
【００２３】
ここで、関係する自動的に生成されたイベントの時系列をただ考慮するだけでは、オフサイドを決定するのは十分ではない。さらには、それらを並び替えなければならない。イベント算出時間またはネットワーク伝播遅延のみならず、考慮すべき偶然のリアルタイムの変動も関連する。検出されたパスイベントのタイムスタンプを、過去、すなわちボールに加速ピークが生じた時点にリセットしなければならない。
【００２４】
求められる一般的なシステム安定性に加え、引き続く正しい決定またはイベントのための時間順の重要性のためにも、分散演算システムにおける計算負荷分散を可能な限り同一にすることを保証することが望ましい。
【００２５】
（まとめ）
基本イベントおよび／または合成イベントなどのイベントを検出するために、様々なイベント検出器が、分散演算システムの異なるノードにおいて動作しうる。これにより、基本イベントは、典型的に単独に、（生の）センサデータに基づくかまたは（生の）センサデータから得られ、一方、合成イベントは、典型的に、基本イベントまたは他の先行する合成イベントに基づいている。センサデータは、分散システムに結合したセンサネットワークから得られうる。いくつかの実施形態によれば、センサネットワークは、特に、無線位置決め追跡ネットワークまたはシステムでありうる。この場合、センサデータは、幾何学的位置データサンプル、速度データサンプル、および／または加速度データサンプルを含む運動学的データを含みうる。個々のデータサンプルは、規定のサンプルデータ間隔にそれぞれ対応している。それゆえ、イベントを、幾何学的位置決めシステムから生じた前のイベントおよび／または並行センサデータストリームに基づきイベント検出器によって検出しうる。
【００２６】
そのようなイベント検出器は、システムの状態および／またはイベント検出器のアルゴリズムおよび／または解析されるセンサデータを算出する際の複雑さに基づき、異なる負荷を、対応する関連ノードおよび／または分散演算システム全体に引き起こしうる。それゆえ、元のシステム構成の前提または状態を変更するケースでは、様々なネットワークノードにおけるイベント検出器の元の分散は、算出負荷バランスに対して下限の最適状態になりうるか、または、分散演算システムをクラッシュさせることさえありうる。
【００２７】
そのような望ましくない負荷アンバランスは、本発明の実施形態によって打ち消される。もし、たとえば、少なくとも１つのイベント遅延が法外に高い値に到達した場合、これは、対応するイベントが目的のイベント検出器プロセスに到達するソースイベント検出器プロセスが過負荷になったか、またはそれに何らかの他の問題が生じたかという事実を示すものでありうる。そのようなケースでは、悪質なソースイベント検出器プロセスを、分散演算システムの何らかのハードウェア資源に転送または再配置することが望ましいかもしれない。たとえば、悪質なソースイベント検出器プロセスは、現在のノードから、もう１つの、利用可能なより一層のハードウェア資源を有する、分散演算システムの物理的に分離されかつ異なるノードに転送されうる。
【００２８】
この目的のため、本発明の実施形態は、分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための装置を提供する。第２のノードは第１のノードと物理的に異なる。この装置は、第１のイベント検出器プロセスのプロセス内容を第２のイベント検出器プロセスにコピーするための手段と、第１のノードの入力イベントが第１および第２のイベント検出器プロセスの双方において並行して処理されるように、第１のイベント検出器プロセスの入力イベントを調停するための手段と、第１および第２のイベント検出器プロセスの双方において並行して処理される第１のイベント検出器プロセスの入力イベントによって、第１および第２のイベント検出器プロセスにおける同一の出力イベントが起こったか否かを検証するための手段とを備えている。
【００２９】
いくつかの実施形態によれば、イベント検出器プロセスは、分散演算システムのネットワークノードにおいて実行されるコンピュータプログラムのインスタンスとして理解されるべきである。イベント検出器プロセスは、コンピュータプログラムのプログラムコードおよびその現在の活動を備えている。分散システムは、たとえば、分散演算ネットワークまたはマルチコアプロセッサでありうる。コンピュータネットワークの場合、ノード、すなわち演算ノードは、たとえばイーサネット、または何らかの他の形態のネットワーク技術を通じて相互通信するコンピュータ装置または演算ユニット（たとえばＣＰＵ）を備えうる。
【００３０】
いくつかの実施形態によれば、イベント検出器プロセスは、コンピュータプログラムを設計するために用いられる挙動モデルとして理解されうる状態機械を備えうる。状態機械は、１つの状態から開始しもう１つ（または同じ）状態に終了する一組の活動である遷移に関連する（有限の）多くの状態によって構成される。遷移は、たとえばプロセスに対する初期または合成イベントの入力でありうるトリガによって開始する。それゆえ、本発明の局面によれば、イベント検出器プロセスは、状態機械を備えていればよく、イベント検出器プロセスの内容またはメモリは、上記状態機械の現在の状態を、たとえば、個々の変数または変数の組として反映しうる。イベント検出器プロセスにとって、状態機械は、ソフトウェアベースの状態機械、たとえば統合モデリング言語（ＵＭＬ）状態機械でありうる。
【００３１】
転送装置としても記述されうる転送するための装置は、分散演算システムの中央エンティティとしてたとえば実装されうる。上記中央エンティティは、分散システムにおける異なる経路を通過するイベントシグナルのより多くのまたはすべての遅延についての情報を有しうる。これにより、イベントの遅延は、たとえば、異なるジッタ、異なる処理能力、および／または、異なるネットワーク行路または通路の異なる信号伝播時間が原因となって発生しうる。代わりにまたは追加的に、中央転送装置は、個々のノードのより多くのまたはすべての負荷状況（ＣＰＵ負荷）についての情報、および／または、全体システム負荷を示す情報を有しうる。さらに他の実施形態によれば、転送装置は、非中央的でありえる、すなわち複数のネットワークノードに分散されうる。この場合、ネットワークノードは、それ自体の負荷またはイベント遅延状況を示す限られた情報を有しうる。それゆえ、全体システムパラメータ情報は、いくつかの実施形態では利用可能ではないかもしれない。
【００３２】
システムのイベント検出器プロセスは、転送装置の全体システムパラメータまたはシステム状況情報レベルに基づきある程度最適である特定のイベント検出器プロセス分散基準に基づき、ネットワークノード間に分散されうる。少なくとも複数のネットワークノードに結合される中央転送装置は、単独または少ないネットワークノードに結合される転送装置の実施形態よりもより多くのシステム情報を有しうる。
【００３３】
転送装置の実施形態は、（最適な）イベント検出器プロセス分散基準に基づき、複数の第２のノード候補から第２のノードを決定するための手段を備えうる。「最適」として何が考慮されるかに基づき、最適なイベント検出器プロセス分布基準によって、分散演算システムのすべてのイベントにおける最小の全体的な遅延、分散演算システムにおける最小の数の安全なイベント契約、分散演算システムの任意のノードの最小の負荷変動、または、分散演算システムの最小の全体的な負荷のうちの一つが得られる。これにより、イベント検出器プロセス、またはこれに関連するイベントスケジューラは、出力イベントを決定するためにイベント検出器プロセスによって必要とされるイベントを利用しうる。特定の入力イベントがイベント検出器に対して絶対に義務である場合、それは上記入力イベントを「安全に利用」する。この場合、争点のイベントは、エラー制御伝達概念（たとえば自動再送要求（たとえばＡＲＱ））を通じて、イベント検出器／スケジューラに送られる。
【００３４】
いくつかの実施形態によれば、転送装置は、第２のイベント検出器プロセスを取得するために第１のイベント検出器プロセスに対応するプロセスインスタンスを第２のノードに生成するための手段を備えうる。インスタンスは、現在実行されているか否かに関わらず、オブジェクトの発生またはコピーとして理解されるべきである。クラスまたはプロセスのインスタンスは、同一組の属性を共有するが、これらの属性が何を含むかについては典型的に異なる。イベント検出器プロセス転送手続きは、たとえば、分散演算システムを制御するオペレーティングシステム（ＯＳ）の助けによって実行されうる。そのため、ＯＳは、分散システムのコンピュータハードウェア資源を管理し、たとえばイベント検出器プロセスのようなアプリケーションソフトウェアのための共通サービスを提供する一組のプログラムとして理解されるものである。そのようなＯＳサービスは、インスタンス化機能、すなわち、プロセス内容をコピーするための手段がアクセスする、プロセスインスタンスを生成する機能を備えうる。すなわち、生成手段は、分散システムを制御するオペレーティングシステムのプロセスインスタンス化機能にアクセスするための手段を備えうる。
【００３５】
第１のイベント検出器プロセスのインスタンスである第２のイベント検出器プロセスがインスタンス化されるとすぐに、入力信号として分散システムから同一のイベントまたはイベントストリームを受信するために、第１のノードの第１第２のイベント検出器プロセスが利用したものと同一のイベントを利用しうる。言い換えると、インスタンスを生成するための手段は第２のノードに第２のイベント検出器プロセスをインスタンス化した後、第２のイベント検出器プロセスを同一の入力イベントにまたは同一の入力イベントのために、第１のイベント検出器プロセスとして利用するように動作可能でありうる。
【００３６】
オペレーティングシステムサービスは、さらに、プロセス内容をコピーするためのコピー手段がアクセスしうるコピー機能を備えうる。すなわち、コピー手段は、分散システム演算ノードまたは何らかの他の制御エンティティにおいて実行されるオペレーティングシステムのプロセスコピー機能にアクセスするための手段を備えうる。コピー手段はまた、第１のイベント検出器プロセスの規定された状態を取得するために、第１のイベント検出器プロセスのプロセス内容を規定の時点で「凍結」するように動作可能でありうる。ここで「凍結」とは、イベント検出器プロセスがその入力に対して応答することを停止することを意味する。言い換えると、第１のイベント検出器プロセスは、その内容を、インスタンス化された第２のイベント検出器プロセスにコピーするために、凍結時点において停止しうる。
【００３７】
それゆえコピー手段は、第２のイベント検出器プロセスにおける同一の規定された状態を取得するために、凍結されたプロセス内容を第１のイベント検出器プロセスから第２のイベント検出器プロセスにコピーするように適合しうる。これにより、コピーするための手段は、コピー手順の残りの間に変わらない内容が先にコピーされるように、プロセス内容を第１のイベント検出器プロセスから第２のイベント検出器プロセスに繰り返しコピーするように動作可能でありうる。すなわち、個々の繰り返しでは、プロセス内容のみがコピーされ、これは残りのコピー手続き中に変化しない。これにより、コピー中にイベント検出器プロセスを完全に停止させることなくプロセス内容をコピーすることが可能になる。それゆえ、第１のイベント検出器プロセスに含まれるデータは、第１のノードから第２のノードに複数回繰り返してコピーされうる。これにより、どのデータがイベント検出器の状態情報に属するかが規定されるべきである。プロセスの場合、たとえば、これはプロセスメモリである。プロセス内容を繰り返しコピーする間、コピーされるプロセス内容の相違またはギャップ（すなわちデルタ）は徐々に小さくなるが、相違は依然として小さいまま残り、しかし零ではない。すなわち、非凍結イベント検出器がその状態を継続的に変更しうるので、プロセス内容デルタコピーは零ではない。したがって、最後の内容デルタをコピーする前に、イベント検出器プロセスは有利的に凍結されうる。
【００３８】
新たにインスタンス化されるすなわち第２のイベント検出器プロセスが、第２のノードにおいて開始されるかまたは切り替えられる前に、双方のイベント検出器プロセスの（同一の）入力データをコピーによって、同一の規定された内部状態を理想的にすでに有する双方のイベント検出器プロセスもまた、事前に規定された時点、すなわち凍結点から開始する同一の外部入力データを取得するように、バッファされうる。それゆえ、コピーするための手段はまた、第１のイベント検出器プロセスから第２のイベント検出器プロセスにプロセス内容をコピーする間および／または前に第１のイベント検出器プロセスの入力イベントをバッファするように動作可能でありうる。
【００３９】
関連する内容のすべてが、第１の（すなわち古いインスタンス）イベント検出器プロセスから第２の（すなわち新しいインスタンス）イベント検出器プロセスにコピーされ、かつ、入力データがバッファされたとき、第１および第２のイベント検出器プロセスが同一の内部状況または状態にあれば、双方のイベント検出器プロセスは、（理想的には同一の）バッファされた入力データ（イベント）の並行処理のために起動しうる。すなわち双方のイベント検出器は、コピーおよびバッファ手続きの後に入れ替わり、分岐されたそれゆえ同一の入力データを並行して処理しうる。この目的のため、調停するための手段は、第１および第２のイベント検出器プロセスの双方が、規定の（凍結）時点から開始しかつコピーされたプロセス内容に基づき並行して動作しているように、プロセス内容コピー、バッファ、および第１のイベント検出器プロセスの入力イベントの処理をスケジューリングするように動作可能でありうる。このようにして、異なるネットワークノードにおいて動作しているプロセスインスタンスの双方は、同一の出力を生成しうる。同様に、調停するための手段は、たとえばこの目的のためにＯＳにアクセスしうる。
【００４０】
たとえば比較器を備えうる検証するための手段は、それから、双方のイベント検出器プロセスが、同一の出力にそれぞれ実際に至ったか否かを検証する。これがそうである場合、古いすなわち第１のイベント検出器プロセスは切り替わりうる。これにより、第１のノードの負荷は減少する。双方のイベント検出器プロセスが同一の出力に至らない場合、先行するコピーおよび／またはバッファ手続きはおそらく失敗しており、新しい（すなわち第２の）イベント検出器プロセスは、全体のイベント検出器転送手続きを最初から開始するためにシャットダウンしうる。それゆえ、いくつかの実施形態によれば、検証するための手段は、第１および第２のイベント検出器プロセスの双方における出力イベントが同一である場合に第１のイベント検出器プロセスをシャットダウンするように、または、第１および第２のイベント検出器プロセスの双方における出力イベントが同一ではない場合に第２のイベント検出器プロセスをシャットダウンするように動作可能でありうる。
【００４１】
本発明のさらなる局面によれば、少なくとも１つの（生の）センサデータストリームに基づきイベントを決定する分散演算システムもまた提供される。コンピュータネットワークでありうる提供された分散演算システムは、関連するイベント検出器プロセスをそれぞれが有する複数の分散ノードと、イベント検出器プロセスを分散演算システムの分散ノード間において転送する装置の少なくとも１つの実施形態とを備えている。
【００４２】
いくつかの実施形態では、分散演算システムは、規定の幾何学的領域内にあるオブジェクトおよびすべての人を位置決めおよび／または追跡するためのそのような無線追跡システムまたは位置決めシステムに結合されうる。本明細書の導入部分ですでに説明したように、位置決めシステムは、無線センサネットワークに基づきうる。
【００４３】
イベント検出器プロセスを転送するにも関わらず、イベント検出器が、分散システムにおいて（ほぼ）最適に分散されているときでさえも、分散システムを通じた異なる行路または通路を通るイベントには、異なる遅延が依然として生じる。これは、異なる伝播遅延、信号処理時間装置、および／またはネットワークジッタが原因でありうる。イベント検出器が、入力イベントを、元の発生順に対応しない時間順に推定しうるので、イベント遅延における相違によって、望まない誤り合成イベント検出が発生しうる。したがって、様々なネットワークノード間に最適に分散したイベント検出器に加えて、異なるネットワーク経路を通じてイベント検出器に到達し、それゆえ異なる処理遅延および／または伝播遅延が生じたイベントの元の時間順の回復が、最適な結果のためには、望ましいかもしれない。
【００４４】
これは、後続のイベント検出器にイベントを転送または中継するちょうど前にイベントを遅延することによって、達成しうる。後続のイベント検出器にイベントが中継される時間は、個々のイベント元のタイムスタンプと、出力イベントを決定するために後続のイベント検出器が必要とするすべての入力イベントの処理遅延および／または伝播遅延とに基づきうる。
【００４５】
この目的のため、本発明の実施形態は、第１のイベントを第２のイベントに同期する装置もまた提供する。第１のイベントは、共通クロック信号に基づき第１のイベントタイミング値に関連し、一方、第２のイベントは、共通クロック信号に基づき第２のイベントタイミング値に関連している。分散演算システムの異なる通路を通過する間、第１および第２のイベントにはそれぞれ異なる遅延が生じる。少なくとも１つ出力イベントは、イベント検出器によって第１および第２のイベントに基づき決定されるものである。実施形態によれば、同期するための装置は、第１および第２のイベントを受信するための入力部と、受信した第１および第２のイベントの中継版を、関連するイベント検出器に転送するための出力部とを備えた、イベント検出器に関連する遅延補償器を備えている。遅延補償器は、生じた遅延と、元のイベント発生時間をそれぞれ反映するイベントタイムスタンプとして参照されうる、関連する第１および第２のイベントタイミング値とに基づき、第１および第２のイベントを、関連するイベント検出器に中継または転送するように動作可能である。
【００４６】
本発明のさらにもう１つの局面によれば、第１のイベント検出器プロセスを転送する装置は、好ましくは、しかし排他的ではなく、第１および第２のイベントを同期するための装置と組み合わせて、分散演算システムに統合されうる。そのような分散演算システムは、それゆえ、本発明の実施形態に係る同期するための装置と、上述した特性を備えた、分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための装置とを備えている複数の分散ノードを備えている。
【００４７】
言い換えれば、実施形態は、少なくとも１つの（生の）センサデータストリームに基づきイベントを決定する分散演算システムを提供する。コンピュータネットワークでありうる分散演算システムは、複数の分散ノードを備えている。分散演算システムは、本発明に係る転送装置の実施形態を備えている。加えて、複数の分散演算ノードのそれぞれは、共通クロック信号に基づき第１のイベントタイミング値に関連する第１のイベントと、共通クロック信号に基づき第２のイベントタイミング値に関連する第２のイベントとを同期するための、分散演算システムの異なる経路を通過する間に、第１および第２のイベントには異なる遅延が生じる装置を備えうる。少なくとも１つ出力イベントは、第１および第２のイベントに基づきイベント検出器によって決定されるものである。同期するための装置は、第１および第２のイベントを受信するための入力部と、受信した第１および第２のイベントの中継版を、関連するイベント検出器に転送するための出力部とを備えた、イベント検出器に関連する遅延補償器を備えている。遅延補償器は、生じた遅延と、元のイベント発生時間をそれぞれ反映するイベントタイムスタンプとして参照されうる、関連する第１および第２のイベントタイミング値とに基づき、第１および第２のイベントを、関連するイベント検出器に中継または転送するように動作可能である。
【００４８】
異なるノード間における上述した望ましくない負荷アンバランスは、たとえば、同期装置の実施形態またはその遅延補償器によって検出されうる。もし、たとえば、少なくとも１つのイベント遅延が法外に高い値に到達した場合、これは、対応するイベントが目的のイベント検出器プロセスに到達するソースイベント検出器プロセスが過負荷になったか、またはそれに何らかの他の問題が生じたかという事実を示すものでありうる。そのようなケースでは、悪質なソースイベント検出器プロセスを、分散演算システムの何らかのハードウェア資源に転送または再配置することが望ましかもしれない。たとえば、悪質なソースイベント検出器プロセスを、現在のノードから、もう１つの、分散演算システムの物理的に分離されかつ異なる、利用可能なより一層のハードウェア資源を有するノードに転送しうる。イベントを転送するための装置およびイベントを同期するための装置は、それゆえ、記述した様式で双方とも相乗効果的に協働しうる。すなわち、同期するための装置は、遅延および、それゆえ、分散演算システム内の負荷異常を検出することができ、一方、転送するための装置はイベント検出器の分散をよりよく均衡させ、より小さい全体遅延およびより低い負荷を実現するためにイベント検出器プロセスを転送しうる。
【００４９】
本発明のよりさらなる局面はまた、分散演算システムの第１のノードの第１のイベント検出器プロセスを、第１のノードとは異なる分散演算システムの第２のノードの第２のイベント検出器プロセスに転送する方法を提供する。この方法は、第１のイベント検出器プロセスのプロセス内容を第２のイベント検出器プロセスにコピーする工程と、第１のイベント検出器プロセスの入力イベントが第１および第２のイベント検出器プロセスの双方において並行して処理されるように、第１のイベント検出器プロセスの入力イベントを調停する工程と、第１および第２のイベント検出器プロセスの双方において並行して処理される第１のイベント検出器プロセスの入力イベントによって、第１および第２のイベント検出器プロセスにおける同一の出力イベントが起こったか否かを検証する工程とを含んでいる。
【００５０】
いくつかの実施形態は、第１のイベントおよび第２のイベントを転送する方法を実行するための装置にインストールされたデジタル制御回路を備えている。そのようなデジタル制御回路、たとえばデジタルシグナルプロセッサ（ＤＳＰ）は、それなりにプログラムされる必要がある。それゆえ、コンピュータプログラムがコンピュータまたはデジタルプロセッサにおいて実行される場合、より一層のさらなる実施形態もまた、方法の実施形態を実行するためのプログラムコードを有するコンピュータプログラムを提供する。
【００５１】
本発明に係る実施形態の１つの利点は、最小の遅延のみを伴って、イベントが認識／検出されかつ後続のイベント検出器に転送されうることである。本発明の実施形態は、イベントの転送時に遅延がより小さくなることが、不適切な後続のイベント検出器を危険にさらすことなく容易にはできないように、実装されうる。また、分散システムの実施形態が特定のイベント遅延を自動的に測定しかつ管理するので、本発明の実施形態を用いることによって、イベント検出器の開発者は、特定のイベント検出器遅延に対する如何なる特別な知識をも持たずに済む。
【００５２】
もう１つの利点は、本発明の実施形態に係る分散演算システムの自己組織化において見られ得る。そのような分散演算システムは、分散システムまたはネットワークが、頑強かつ効率的なイベント信号処理を常に行えるように、イベント検出器プロセスをネットワークノード間に転送することによってシステム状態を変更しうる。
【００５３】
〔図面の簡単な説明〕
装置および／または方法のいくつかの実施形態を、添付図面を参照して例示のみを通じて以下に説明する。
【００５４】
図１は、サッカー特有のオフサイドイベントの検出事例を示す。
【００５５】
図２は、本発明の実施形態に係る、第１のイベントを第２のイベントに同期させるための装置のブロック図を模式的に示す。
【００５６】
図３は、第１のイベントを第２のイベントに同期させるための装置が、分散ネットワークと、関連するイベント検出器ソフトウェアとの間におけるミドルウェアとして実装される本発明の実施形態を模式的に示す。
【００５７】
図４は、イベント検出器が必要とする４つのイベントＡ、Ｂ、Ｃ、およびＤのタイミングテーブルを示す。
【００５８】
図５は、本発明の実施形態に係るイベントスケジューリングを模式的に図示する。
【００５９】
図６は、第１のイベントを第２のイベントに同期させるための方法の一例のフローチャートを模式的に示す。
【００６０】
図７は、イベントを同期するための装置の実施形態を備えている複数の分散演算ノードを備えている、少なくとも１つのセンサデータストリームに基づきイベントを決定するための分散演算システムの実施形態を示す。
【００６１】
図８は、分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための装置の実施形態を模式的に図示する。
【００６２】
図９は、分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための方法の実施形態のフローチャートを模式的に図示する。
【００６３】
〔実施形態の記述〕
いくつかの実施形態を図示した添付図面を参照することによって、様々な実施形態例をより十分に説明する。図では、明瞭化のために、層および／または領域の厚さを誇張している。
【００６４】
したがって、実施形態例には様々な改変および代替形態が可能であるが、実施形態を図の例を通じて示し、ここに詳細に記述する。しかし、実施形態例を特定の開示された型に限定する意図はないが、しかしその逆に、実施形態例が、本発明の範囲内にあるすべての改変物、同等物、および代替物に及ぶことが理解されるべきである。図面の記述全体を通じて、同一の数字は、同一または類似の要素を示す。
【００６５】
ある要素がもう１つの要素に対して「接続される」または「結合される」と記述されるとき、それが他の要素に直接的に接続または結合されることが可能であるか、または、間に入る要素が存在しうる。対照的に、ある要素がもう１つの要素に「直接接続される」または「直接結合される」と記述されるとき、間に入る要素は存在しない。要素間の関係を記述する他の用語が用いられるときも、同様に解釈されるべきである（たとえば、「間に」に対する「直接的な間に」、「隣接する」に対する「直接的に隣接する」など）。
【００６６】
ここに用いられる用語は、特定の実施形態のみを記述する目的のためのものであり、実施形態例を限定することを意図しない。ここで用いられるように、文脈によってその他の場合が示される場合を除き、単数形は複数も同様に含む。「備える」、「備えている」、「含む」、および／または「含んでいる」という用語は、ここに用いられるとき、言及された特性、整数、工程、動作、要素、および／または部品を特定するが、１つまたはそれ以上の他の特性、整数、工程、動作、要素、部品、および／またはグループの存在を除外しないことがさらに理解される。
【００６７】
他に規定されない限り、ここに用いられるすべての用語（技術用語および科学用語を含む）は、実施形態例が属する業界における当業者の一人によって共通に理解される意味と同じ意味を有する。さらに、たとえば、共通して用いられる辞書に定義された用語は、関連する技術の文脈におけるその意味に一致する意味を有し、かつ、理想的または極端に形式的な意味に定義されるように表現されない限り、そのように解釈されはしないことが理解される。
【００６８】
図２は、第１のイベント２０２を第２のイベント２０４に同期させるための装置２００の実施形態を図示する。
【００６９】
第１のイベント２０２は、共通クロック参照信号に基づく第１の元のイベントタイミング値またはタイムスタンプに関連している。第２のイベント２０４もまた、共通クロック信号に基づく第２の元のイベントタイミング値またはタイムスタンプに関連している。第１および第２の元のイベントタイミング値は、元のイベント発生時点を表す。共通クロック信号は、分散演算システムにおけるすべての別個のノードに対して有効な全体システム時刻を生成する。イベントを同期するための装置２００に到達する前に、第１および第２のイベント２０２，２０４には、分散演算システムの異なる通路または経路を通る間に、それぞれ異なる遅延が生じる（図２には示さない）。２つのイベント２０２，２０４に基づき、少なくとも１つの出力イベント２０６がイベント２０２，２０４を同期する装置２００の後に位置する（に後続する）またはその下流に位置するように配置されるイベント検出器２０８によって決定される。
【００７０】
いくつかの実施形態ではイベント検出器２０８のためのイベントスケジューラであるとも見做される同期装置２００は、後段のイベント検出器２０８に関連するかまたは関する、遅延補償手段とも表記される遅延補償器２１０を備えている。遅延補償器２１０は、分散ネットワークから第１および第２のイベント２０２，２０４を受信するための入力部２１２−１，２１２を有する。さらに、遅延補償器２１０は、受信した第１および第２のイベント２０２，２０４の中継版を、関連するイベント検出器２０８に中継または転送するための出力部２１４−１，２１４−２を有する。遅延補償器２１０は、イベント２０２，２０４に生じた遅延と、２つのイベント２０２，２０４に関連する第１および第２のイベントタイミング値またはタイムスタンプとに基づき、関連するイベント検出器２０８に第１および第２のイベント２０２，２０４を中継するように動作可能である。
【００７１】
分散演算システム３００（ネットワーク形態）のセットアップ例、様々なイベント検出器２０８、および複数のイベントを同期するための装置２００の実施形態を、図３に模式的に図示する。
【００７２】
図３は、「イベントコア」として例示的に示される同期装置２００に出力イベント２０６および生センサデータ３０４が到達する分散ネットワーク３００を模式的に図示する。同期装置２００は、一方では、出力イベント２０６および／または生センサデータ３０４を、下のネットワーク３００から受信することによって、他方では、一定の必要な出力または中継時点において、同期装置２００に結合した複数のイベント検出器２０８にそれらを転送することによって、イベントスケジューラとして動作しうる。同期装置２００は、後続のイベント検出器２０８に必要な異なる出力イベント２０６および／またはセンサデータ３０４を同期するように適合されうる。これにより、同期装置２００は、後続のそれぞれのイベント検出器２０８に必要な出力イベント３０２または３０４を個別に同期することができるように、分散様式で実装されうる。すなわち、イベントコア装置２００は、後続の複数の検出器２０８の１つにそれぞれが関連する複数の遅延補償器２１０またはそのインスタンスを備えうる。これにより、遅延補償器インスタンス２１０および関連するイベント検出器２０８を、好ましくは、１つの共通ネットワークノードに実装しうる。いくつかの実施形態によれば、同期装置２００およびその遅延補償器インスタンス２１０を、ネットワーク３００とイベント検出器２０８との間のミドルウェアとして実装しうる。
【００７３】
同期装置２００またはその異なるインスタンスに共通クロック信号３０６が提供され、これにより、図３に示す分散システム設計のすべての遅延補償器および／またはイベント検出器インスタンス２１０，２０８の時間同期が可能になる。それゆえ、どの遅延補償器２１０も、共通時間基準へのアクセス権利を有する。言い換えれば、すべての（分散された）同期装置または遅延補償器インスタンス２００，２１０は、与えられた如何なる時刻においても同一のシステムタイムスタンプを取得しうる。遅延補償器インスタンス２１０がイベント３０２または３０４を受信する場合、関連する後続のイベント検出器インスタンス２０８のための上記イベントを、必要な時間量の分だけバッファしうる。この時間量は、イベント検出器インスタンス２０８が必要としかつより速いタイムスタンプを運ぶイベントが受信されない充分に高い確率に対応する。
【００７４】
より詳細に、次の例を見てみよう：入力イベントに基づき複合的な出力イベントＥを正しく決定または検出することができるために、任意のイベント検出器２０８が、イベントＡ、Ｂ、Ｃ、Ｄを必要とする。どのネットワークインスタンスも全体の共通クロック信号３０６によって同期されるので、イベントごとに検出時間を関連させることができる（図４の中央カラム）。これにより、限定的な処理速度のせいで、イベントの検出時点は、イベントの実際の発生時点よりも必然的に遅れる（図４の左カラムを参照）。
【００７５】
この例では、イベントＡの発生時間ｔイベント，Ａは１０であるが、しかし、検出時間ｔ検出，Ａ＝１４のときにイベント検出器によって検出されるのみである。合成イベントＥを検出するための後続の合成イベント検出器は、ｔＥＤ，Ａ＝１５の時点でイベントＢを取得する。すなわち、イベントＥのための合成イベント検出器は、イベントＡを受信する前にイベントＢを受信するが、しかしイベントＡはイベントＢよりも実際には早く発生している。処理遅延およびネットワーク電波遅延のために、イベントＡよりも後に現れるイベントＣもまた、後続の合成イベント検出器によって早く受信される。
【００７６】
この例から、本発明の実施形態を用いなければ、イベントＥのための後続の合成イベント検出器は、必要なイベントＡ、Ｂ、Ｃ、およびＤを時間順（図４の最も右のカラムを参照）に受信するが、これは、元の通常順または時間順（図４の最も左のカラムを参照）とは異なることが分かりうる。それゆえ、必要なイベントＡ、Ｂ、Ｃ、およびＤを後続の合成イベント検出器に転送する前の元の時間順に対応する時間順を回復させるために、必要なイベントＡ、Ｂ、Ｃ、およびＤを適切に並び替えることが、本発明の実施形態の課題である。この目的のため、合成同期装置２００のインスタンスを、関連するイベント検出器と共に各ネットワークノードに実装しうる。
【００７７】
実施形態によれば、（分散された可能性のある）同期装置２００の遅延補償器２１０は、遅延補償器２１０において受信された必要なイベントＡ、Ｂ、Ｃ、およびＤの中継版の時間順が、複数の必要なイベントＡ、Ｂ、Ｃ、およびＤの元の時間順に対応するように、必要な複数のイベントを、関連するイベント検出器に中継するように動作可能でありうる。この目的のため、遅延補償器２１０は、中継された個々のイベント間の相対的時間差が、個々のイベントＡ、Ｂ、Ｃ、およびＤ間の元の相対的時間差にそれぞれ対応するように、複数のイベントＡ、Ｂ、Ｃ、およびＤのそれぞれを中継しうる。遅延補償器２１０は、元の時間的イベント順を回復させるために、複数のイベントＡ、Ｂ、Ｃ、およびＤのそれぞれに対する出力時点を決定しうる。これにより、イベントが、関連するイベント検出器に、その対応する出力時点で中継される。イベントの出力時点は、共通遅延値とイベントＡ、Ｂ、Ｃ、およびＤの元の発生時点とに基づき決定しうる。
【００７８】
上記の例を考慮すると、同期装置インスタンス２００、および、それゆえ、これに備えられる遅延補償器インスタンス２１０は、以下のイベント遅延を、実際の発生を反映するそれらの各受信時間とそれらのそれぞれに関連する元のイベントタイミング値とに基づき測定または決定しうる。
【００７９】
【表１】
0005847953.tif 000002
【００８０】
明らかに、遅延補償器２１０におけるイベントＡの受信は、後続の合成イベント検出器によって必要な他のイベントＢ、Ｃ、およびＤに比べて、実質的により長い。この原因は、たとえば、ネットワーク３００を通じた伝播時間をより長くする遠くのリモート演算ノードにおけるイベントＡの検出、または、より長い計算時間が必要なより複雑な計算アルゴリズムによって検出されるイベントＡでありうる。例示の場合では、イベントＡの長い遅延の原因は、おそらく、４つのクロックサイクルまたは時間間隔を要するイベント検出である。
【００８１】
関心のあるすべてのイベントのすべての遅延を充分頻繁に測定または検出し、かつ、次の状態にあると仮定する：時点ｔＤＣ，ＣにおいてイベントＣが遅延補償器２１０を備えている同期装置２００に到達する。イベントＣは、イベントＣが時点９９９において生じたことを示すイベントタイミング値Ｉイベント，Ｃ＝９９９を有する。遅延補償器２１０は、関心のあるすべてのイベント、すなわち、関連する後続の合成イベント検出器２０８が必要とするイベントＡ、Ｂ、Ｃ、およびＤの遅延を見て、イベントＣが、関連する後続の合成イベント検出器に転送されるまでにどのくらいの長さ遅延しなければならないのかを決定する。なお、遅延補償器２１０は、関連する後続のイベント検出器２０８によってイベントＡ、Ｂ、Ｃ、およびＤが必要とされることのみを知り、どの程度またはどの目的のためなのかは知らない。
【００８２】
関連する後続のイベント検出器２０８にイベントＣを中継するための出力時点は、次の式（１）によって決定しうる。
【００８３】
【数１】
0005847953.tif 000003
【００８４】
式（１）において、Ａ、Ｂ、Ｃ、およびＤは、第１〜第４のイベントをそれぞれ示し、Δ（．）は、イベントが起こってから、関連する後続のイベント検出器２０８に関連する遅延補償器２１０の入力部までのイベントの遅延を示し、ｍａｘ（．）は、最大値演算子を示し、ｔ出力，Ｃは、中継されたイベントＣの出力時点を示す。
【００８５】
一般に、遅延補償器２１０は、Ｋ組の必要なイベントからイベントｅｊを中継する出力時点を、次の式（２）によって決定するように動作可能でありうる。
【００８６】
【数２】
0005847953.tif 000004
【００８７】
ネットワーク３００の負荷状況が変化する動的な分散演算システムでは、個々のノードの処理能力が変化する可能性、および／または、ネットワーク経路が動的に変化する可能性があるので、遅延補償器インスタンス２１０に到達するイベントの伝播または処理遅延には、静的である代わりに、時間に渡って変化する可能がある。遅延補償器２１０は、上記ｅｊに対して以前に測定または決定された現在のおよび複数のイベント遅延に基づき、Ｋ組のイベントからイベント遅延値Δ（ｅｊ）を決定することによって、これを算出する。これにより、より最近のイベント遅延は、先行するイベント遅延よりも重みづけされうる。特定の実施形態では、遅延補償器２１０は、次の式（３）によって、イベントｅｊのイベント遅延Δ（ｅｊ）を決定するように適合されうる。
【００８８】
【数３】
0005847953.tif 000005
【００８９】
ここで、ｋは、ｋ組の決定済みのイベント遅延を示し、Δ（ｅｊ）（ｉ）は、イベントイベント検出器２０８のｉ番目に決定された遅延を示し、ｉ＝１は直近に決定された遅延に対応し、σ（ｅｊ）は、直近に決定された遅延Δ（ｅｊ）の標準偏差を示し、θは、セキュリティ係数を示す。いくつかの実施形態では、係数θは、イベントｊのイベント遅延Δ（ｅｊ）の算出をより容易にしかつより複雑さを低減するために、零に設定しうる。式３の個々の被加数は、幾何学的列に応じて重みづけされる。充分に大きな「ｋ」に対しては幾何学的列は２つに収束するので、係数１÷２は、正規化係数として機能する。θ・σ（ｅｊ）は、直近の測定値の標準偏差を考慮して、セキュリティバッファとして機能しうる。たとえばθ＝３の場合、たとえば、９９．９７５％のセキュリティとして機能しうる。これにより、９９．９７５％のセキュリティは、式３に応じて算出または予測された遅延が、対応する実際のまたは現実のネットワーク遅延よりも９９．９７５％の確率で小さくないことを意味する。セキュリティバッファθ・σ（ｅｊ）は、たとえば、遅延変動に対するネットワークの安定性を適合されうる。
【００９０】
上記の単純な例に戻り、イベントＣを、出力時点ｔ出力，Ｃ＝１００５において、関連する後続のイベント検出器２０８に転送しうる。これは確かに、イベントＡ、Ｂ、およびＤがイベントＣの前に偶然に生じなかったと言いうる時点である。我々の例では、関連する後続のイベント検出器２０８は、以下の表に示す中継時点または出力時点において以下のイベントを転送するようになっている。
【００９１】
【表２】
0005847953.tif 000006
【００９２】
上記の表から理解できるように、イベントＡ、Ｂ、Ｃ、およびＤは、遅延補償器２１０によって、関連する後続のイベント検出器２０８に、元の発生時間順に応じた正しい順で転送されている。
【００９３】
遅延補償器２１０を備えた同期装置２００の動作原理を、図５に模式的に図示する。
【００９４】
参照番号５０２で示す入力イベントは、元のイベントタイミング値ｔイベントおよびイベント識別子（イベントＩＤ）を含んでいる。さらに、出力時間値ｔ出力はイベント５０２に関連している。イベントの出力または遅延時間ｔ出力は、元のイベント時間ｔイベント、および図５の例では７９である共通遅延係数δに基づき決定されうる。調停遅延値の可能な算出方法は上記に記述されている。後続のまたは下流のイベント検出器２０８に中継されるイベント５０２は、次に、同期装置２００の中継またはスケジューリングバッファ５０４に挿入されうる。入力イベントのバッファ５０４への挿入は、関連する後続のイベント検出器２０８にイベントが転送される、その決定された出力時点ｔ出力に基づきうる。遅延補償器２１０の入力部２１２にちょうど到達した例示のイベント５０２では、出力時点ｔ出力は３６７であると算出されている。この理由のため、それはそれぞれ出力時間３６４および３６９にスケジュール（すなわち転送）される２つのバッファされたイベント間に挿入される。図示の例では７９である現在の共通遅延値δに応じてイベントが遅延した後、イベントバッファ５０４におけるイベントは、後続のイベント検出器２０８にスケジューリングまたは通知、すなわち転送される。関連するイベント検出器２０８にイベントが転送された後、イベントは、バッファ５０３における次のイベントがスケジューリングされる前に削除されうる。
【００９５】
図６は、本発明の実施形態に基づく、イベントＡおよびイベントＢを同期するための方法６００のフローチャートを模式的に図示する。
【００９６】
上に言及したように、２つのイベント２０２，２０４は、共通クロック信号３０６に基づく第１および第２のタイムスタンプｔイベント，ｅ１，ｔイベント，ｅ２に関連する。さらに、分散演算システム３００における異なる経路を通過する間、第１および第２のイベントの双方において、異なる遅延Δ（ｅ１），Δ（ｅ２）が生じる。イベント２０２，２０４を同期するために、同期方法６００は、遅延補償器２１０において、第１および第２のイベント２０２，２０４を、関連するイベント検出器２０８に中継する工程６０２を含んでいる。この工程において、第１および第２のイベント２０２，２０４は、生じた遅延Δ（ｅ１），Δ（ｅ２）および関連する第１および第２のタイムスタンプｔイベント，ｅ２，ｔイベント，ｅ２に基づき中継される。さらに同期方法６００は、遅延補償器２１０に関連するイベント検出器２０８において、中継された第１および第２の入力イベント２０２’，２０４’に基づき少なくとも１つの出力イベント２０６を検出する工程６０４を含んでいる。中継された第１および第２の入力イベント２０２’，２０４’は第１および第２の入力イベントの中継版とも表記されうる。典型的にはこれらの中継版はそれぞれ第１および第２のイベント２０２，２０４に等しい。しかしこれらは同期装置２００または遅延補償器２１０によって時間的に遅延されうる。
【００９７】
記述した概念は、決定または測定されたイベント遅延が利用可能である場合に限り正しく機能する。システムの開始直後、イベント遅延は未知である。しかし、システムの開始後、初期のイベント遅延を遅延補償器２１０に提供することは可能である。そのような初期のイベント遅延は、それぞれのイベントの最悪の場合に基づきうる。あるいは、遅延装置は、どの同期装置インスタンス２００も皆、以前のネットワーク状態の設定を取得し、分散演算システムのどのノードにおいてどのイベントが実行されたかの情報をそれが有するので、それゆえ、現在のネットワーク設定の遅延を見積もりうるように、シャットダウンする前におけるイベント遅延に対する知見を保存しうる。
【００９８】
測定された遅延値は、異なるネットワークおよび／またはＣＰＵ負荷状況において測定されうる。これは、測定されたそれぞれの遅延値の適切な正規化によって説明されうる。たとえば、現在の負荷状況を反映する正規化係数は、上記した現在負荷状況において測定された遅延値に対して適用されうる９０。たとえば、正規化負荷状況に対応する正規化係数はその１つでありうる。高負荷状況において遅延値が決定される場合、これは、１よりも大きい正規化係数によって反映されうる。対照的に、低負荷状況における遅延値が決定される場合、これは１よりも小さい正規化係数によって反映されうる。たとえば式（３）において各遅延値に対して適用される実際の重みづけは、測定された遅延の正規化係数と、現在の負荷状況に関連する現在の正規化係数との関係に依存しうる。遅延値が決定される負荷状況よりも現在の負荷状況が小さい場合、このようなアプローチによって、より小さいまたはより低い負荷状況を説明するために、実際に測定された遅延値よりも小さい正規化遅延値が得られる。
【００９９】
図７は、本発明のさらなる実施形態を模式的に図示する。
【０１００】
図７は、少なくとも１つのセンサまたはデータストリーム７０２−１，７０２−２に基づきイベントを決定するための分散演算システム７００を模式的に示す。たとえば分散演算ネットワークまたはマルチコアプロセッサでありうる分散演算システム７００は、本発明の実施形態に基づく同期するための装置２００を備えている複数の分散演算ノード７０４を備えている。
【０１０１】
本発明の実施形態によれば、演算ノード７０４はそれゆえ遅延補償器２１０と共に同期装置２００を備えうる。また、同期装置２００を備えている各ノード７００は、また、関連するイベント検出器２０８を備えている。例示の実施形態によれば、演算ノード７０４は分散信号プロセッサまたはコンピュータでありうる。いくつかの他の実施形態では、ノード７０４はまた、同じコンピュータ装置に実装されているマルチコアプロセッサユニットの異なる過程でありえ、それゆえ、本質的に同じ幾何学的位置に位置しうる。
【０１０２】
本発明の実施形態は、たとえばサッカー、アメリカンフットボール、ラグビー、テニスなどの球技イベントの選手およびすべての位置の追跡に用いられうる無線追跡システムから生じるイベントの検出に特に関連している。それゆえ、分散演算システム７００は、たとえばサッカー場でありうる規定の幾何学的領域内にあるオブジェクトおよびすべての人を位置決めおよび／または追跡するためのそのような無線追跡システムまたは位置決めシステムに結合されうる。位置決めシステムは、位置決めされたオブジェクトの幾何学的位置を示すデータを有する少なくとも１つのセンサデータストリーム７０２−１，７０２−２を分散演算システム７００に入力する。さらに、センサデータストリームは、位置決めされたオブジェクトの他の運動学的データを有しうる。
【０１０３】
基本イベントおよび／または合成イベントなどのイベントを検出するために、様々な遅延補償器２１０が、分散演算システム７００の異なるノード７０４において動作している。そのようなイベント検出器またはイベント検出器インスタンス２０８は、それらのそれぞれのノード７０４および／または分散演算システム７００全体において、システム７００の現在の状態に基づき、または、解析されるイベント検出器２０８および／またはセンサデータストリーム７０２−１，７０２−２に基づき、異なる負荷を引き起こしうる。それゆえ、元のシステム構成、すなわち様々なネットワークノード７０４におけるイベント検出器２０８の分散、の前提または状態を変更するケースでは、現在のシステム設定は、下限の最適状態になりうるか、または、分散演算システム７００をクラッシュさせることさえありうる。
【０１０４】
後にアンバランスなイベント遅延をももたらすそのような望ましくない負荷アンバランスは、同期装置２００、または特にその遅延補償器または遅延補償器インスタンス２１０の実施形態によって、検出されうる。少なくとも１つの測定または検出されたイベント検出器２０８Δ（．）が、法外に高い値に到達したとき、これは、対応するイベントを運びかつ遅延補償器２１０の上流に位置するイベント検出器プロセスが負荷過剰になりうるかまたはいくつかの他の問題に遭遇しうることを示しうる。そのようなケースでは、悪質さを起こしつつあるイベント検出装器プロセスを、分散演算システム７００の他のハードウェア資源またはノード７０４に転送または再配置することが望ましいかもしれない。たとえば、悪質なイベント検出器プロセスは、その現在のノード７０４から、もう一つの、分散演算システム７００の物理的に分離された異なるノード７０４に転送されうる。この目的のため、本発明のさらなる局面によれば、異なるノード７０４間においてイベント検出器インスタンス２０８を転送するための装置８００もまた提供される。転送するための装置８００の実施形態は、同期装置２００および／または分散演算システム７００の実施形態と組み合わせうる。
【０１０５】
図８は、転送装置としても記述されうる、転送するための装置８００の実施形態の模式的なブロック図を模式的に図示する。
【０１０６】
転送装置８００は、分散演算システム７００の第１のノード７０４−１の第１のイベント検出器プロセスを、分散演算システム７００の第２のノード７０４−２の第２のイベント検出器プロセスに転送する役割を果たす。これにより、第２のノード７０４−２は、たとえばその幾何学的位置またはマルチコアプロセッサの異なるプロセスユニットのいずれかに関して第１のノード７０４−１とは異なる。転送装置８００は、第１のイベント検出器プロセスのプロセス内容を第２のイベント検出器プロセスにコピーするための手段８０２を備えている。さらに転送装置８００は、第１のイベント検出器プロセスの入力イベントが、第１および第２のイベント検出器プロセスの双方において並行して処理されるように、第１のイベント検出器プロセスの入力イベントを調停するための手段８０４を備えている。さらに転送装置８００は、第１および第２のイベント検出器プロセスの双方において並行して処理される第１のイベント検出器プロセスの入力イベントによって、第１および第２のイベント検出器プロセスの双方において同一の出力イベントが生じたかを検証するための手段８０６を備えている。
【０１０７】
プロセスは、通常、ネットワークノードによって備えられうる、コンピュータ装置において実行されるコンピュータプログラムのインスタンスとして理解されるものである。プロセスは、コンピュータプログラムのプログラムコードおよびその現在の機能を備えている。イベント検出器プロセスは、コンピュータプログラムを設計するために用いられる挙動モデルとして理解されうる状態機械を備えうる。状態機械は、遷移に関連する（有限の）多くの状態を含んでいる。遷移は、１つの状態から開始しもう１つの（または同じ）状態に終了する一組の活動である。遷移は、たとえばプロセスに対する初期または合成イベントの入力でありうるトリガによって開始される。それゆえ、本発明の局面によれば、イベント検出器プロセスは、状態機械を備えることができ、イベント検出器プロセスの内容または記憶は、上記状態機械の現在の状態を、たとえば、個々の変数または変数の組として反映しうる。
【０１０８】
第１のノード７０４−１の第１のイベント検出器プロセスを引き継ぐための一組の可能なまたは代替の第２のノード７０４−２が存在する実施形態では、転送装置８００は、さらに、最適なイベント検出器プロセス分布基準に基づき、一群のノード候補から第２のノード７０４−２を決定するための手段８０８を備えうる。これにより、最適なイベント検出器プロセス分布基準によって、分散演算システム７００のすべてのイベントにおける最小の全体的な遅延、分散演算システム７００における最小の数の安全なイベント契約、分散演算システム７００の任意のノードの最小の負荷変動、または、分散演算システムの最小の全体的な負荷のうちの一つが得られる。
【０１０９】
決定するための手段８０８のための手段は、たとえば、個々のノード７０４の負荷および全体システム７００の負荷を含む全体ネットワーク状態の情報を有する中央ネットワークエンティティを備えうる。そのような中央ネットワークエンティティは、分散ネットワーク７００を通過するイベントのすべての遅延時間Δ（．）の情報もまた有しうる。そのような場合、中央ネットワークエンティティは、より負荷が重いノード７０４−１からより負荷が軽いノード７０４−２へのイベント検出器プロセスの転送を開始しうる。または、分散演算システム７００における１つまたはそれ以上のイベント遅延を低減するために、異なるノード７０４−２，７０４−２間のイベント検出器プロセス転送を開始しうる。
【０１１０】
もう１つの実施形態によれば、決定するための手段８０８は、同期装置２００または遅延補償器インスタンス２１０をも備えうるか、または、同期装置２００または遅延補償器インスタンス２１０によって備えられうる。遅延補償器インスタンス２１０は、関連する後続のまたは下流のイベント検出器プロセスに遅延補償器インスタンス２１０が中継するイベントの遅延を知っている。たとえば、遅延補償器インスタンス２１０が、元のまたは上流のイベント検出器から起こるイベントの法外に高い遅延を測定する場合、遅延補償器インスタンス２１０は、イベント遅延を低減するために、その現在のネットワークノードからもう１つのネットワークノードへの上記の上流イベント検出器プロセスの転送を開始しうる。遅延補償器インスタンス２１０が、分散システム７００における個々のノード７０４の負荷状況についてさらに知らない場合、これはたとえば単純な試みかつエラー処置になりうる。
【０１１１】
いくつかの実施形態によれば、転送装置８００はさらに、第２のイベント検出器プロセスを得るために、第１のイベント検出器プロセスに対応するプロセスインスタンスを第２のノード７０４−２に生成するための手段８１０を備えうる。全体のプロセス転送手順は、たとえば、コンピュータハードウェア資源を管理し、共通サービスをたとえばイベント検出器プロセスなどのアプリケーションソフトウェアに提供する一組のプログラムとして理解されるオペレーティングシステム（ＯＳ）の助けによって行われうる、そのようなＯＳサービスは、プロセス内容をコピーする手段８０２がアクセスしうるインスタンス化機能をも備えうる。すなわち、生成するための手段８１０は、個々の演算ノード７０４−１，７０４−２において実行されているオペレーティングシステムのプロセスインスタンス化機能にアクセスするための手段を備えうる。第２のノード７０４−２の第２のイベント検出器プロセスがインスタンス化されるとすぐに、入力信号として分散システムから同一のイベントまたはイベントストリームを受信するために、第１のノード７０４−１の第１第２のイベント検出器プロセスが利用したものと同一のイベントを利用しうる。言い換えると、インスタンスを生成するための手段８１０は第２のノード７０４−２に第２のイベント検出器プロセスをインスタンス化した後、第２のイベント検出器プロセスを同一入力イベントのための第２のイベント検出器プロセスを、第１のイベント検出器プロセスとして利用するように動作可能でありうる。
【０１１２】
ＯＳサービスは、さらに、プロセス内容をコピーするためのコピー手段８０２がアクセスしうるコピー機能を備えうる。すなわち、コピー手段８０２は、分散システム７００の演算ノード７０４−１，７０４−２または何らかの他の制御エンティティにおいて実行されるオペレーティングシステムのプロセスコピー機能にアクセスするための手段を備えうる。コピーする手段８０２は、第１のイベント検出器プロセスの規定された状態を取得するために、第１のイベント検出器プロセスのプロセス内容を規定の時点で「凍結」するように動作可能でありうる。ここで「凍結」とは、イベント検出器プロセスがその入力に対して応答することを停止することを意味する。コピー手段８０２はさらに、第２のイベント検出器プロセスにおいて同一の規定された状態を取得するために、凍結されたプロセス内容を第１のイベント検出器プロセスから第２のイベント検出器プロセスにコピーするように適合されうる。これによりコピー手段８０２は、コピー手順の残りの間に変わらない内容が先にコピーされるように、プロセス内容を第１のイベント検出器プロセスから第２のイベント検出器プロセスに繰り返しコピーするように動作可能でありうる。それゆえ、第１のイベント検出器プロセスに含まれるデータは、第１のノード７０４−１から第２のノード７０４−２に複数回繰り返してコピーされうる。これにより、どのデータがイベント検出器２０８の状態情報に属するかが規定されるべきである。たとえば、プロセスの場合これはプロセスメモリである。プロセス内容を繰り返しコピーする間、コピーされるプロセス内容の相違またはギャップ（すなわちデルタ）は徐々に小さくなるが、相違は依然として小さいまま残り、しかし零ではない。
【０１１３】
新しいすなわち第２のイベント検出器プロセスが第２のノード７０４−２において開始されるかまたは切り替わる前に、双方のイベント検出器プロセスの（同一の）入力データは、同一の規定された内部状態を理想的にはすでに有する双方のイベント検出器プロセスもまた、事前に規定された時点すなわち「凍結」点から開始される同一の外部入力データを取得するように、バッファされうる。それゆえ、コピーするための手段８０２はまた、第１のイベント検出器プロセスから第２のイベント検出器プロセスにプロセス内容をコピーする間およびコピーした後、第１のイベント検出器プロセスの入力イベントをバッファするように動作可能でありうる。
【０１１４】
関連する内容のすべてが第１の（古い）イベント検出器プロセスから第２の（新しい）イベント検出器プロセスにコピーされ、かつ入力データがバッファされたとき、双方のイベント検出器プロセスは、第１および第２のイベント検出器プロセスの内部状況または状態が同一であれば、（理想的には同一の）バッファされた入力データ（イベント）の並行処理のために起動しうる。すなわち、双方のイベント検出器は、コピーおよびバッファ手続きの後、入れ替わり、分岐され、それゆえ同一の入力データを並行して処理する。この目的のため、調停するための手段８０４は、規定の（凍結）時点からかつコピーされたプロセス内容に基づき、第１および第２のイベント検出器プロセスの双方において並行して第１のイベント検出器プロセスの入力イベントを処理するように動作可能でありうる。同様に、調停する手段８０４は、たとえば、この目的のためにＯＳにアクセスしうる。
【０１１５】
検証するための手段８０６、たとえば比較器は、それから、双方のイベント検出器プロセスが、同一の出力にそれぞれ至ったか否かを検証する。これがそうである場合、古いすなわち第１のイベント検出器プロセスは切り替わりうる。これがそうではない場合、コピーおよび／またはバッファ手続きは、おそらく失敗しており、新しい（すなわち第２の）イベント検出器プロセスは、全体の転送手続きを最初から開始するためにシャットダウンしうる。それゆえ、いくつかの実施形態によれば、検証するための手段８０６は、第１および第２のイベント検出器プロセスの双方における出力イベントが同一である場合、第１のイベント検出器プロセスをシャットダウンするか、または、第１および第２のイベント検出器プロセスの双方における出力イベントが同一ではない場合に第２のイベント検出器プロセスをシャットダウンするように動作可能でありうる。
【０１１６】
上に言及したように、転送装置８００の実施形態は、同期装置２００の実施形態と相乗効果的に補完し合うので、両者を組み合わせうる。それゆえ、本発明のいくつかの局面はまた、複数の分散演算ノード７０４と、分散演算システム７００の第１のノード７０４−１の第１のイベント検出器プロセスを、分散演算システム７００の第２のノード７０４−２の第２のイベント検出器プロセスに転送するためのイベントプロセス転送装置８００の実施形態とを備えている、１つのセンサデータストリームに基づきイベントを決定するための分散演算システム７００を提供する。さらに、複数の分散演算ノード７０４のそれぞれは、共通クロック信号に基づき第１のイベント時間ｔイベント，ｅ１に関連する第１のイベント２０２と、共通クロック信号に基づき第２のイベント時間ｔイベント，ｅ２に関連する第２のイベント２０４とを同期するための、第１および第２のイベント２０２，２０４（またはｅ１およびｅ２）には、分散演算システム７００の異なる行路または通路を通る間に異なる遅延Δ（ｅ１），Δ（ｅ２）が発生し、少なくとも１つの出力イベント２０６が、第１および第２のイベント２０２，２０４（またはｅ１およびｅ２）に基づきイベント検出器（プロセス）２０８によって決定される装置２００を備えている。図２を参照してすでに説明したように、イベント２０２，２０４を同期するための装置２００は、第１および第２のイベント２０２，２０４を受信するための入力部２１２−１，２１２−２と、受信した第１および第２のイベントの中継版２０２’，２０４’を関連するイベント検出器２０８に転送するための出力部２１４−１，２１４−２とを有し、かつイベント検出器２０８に関連する遅延補償器２１０を備えている。より詳しく上に説明しているように、遅延補償器２１０の実施形態は、生じた遅延Δ（ｅ１），Δ（ｅ２）と、関連する第１および第２のイベント時間ｔイベント，ｅ１，ｔイベント，ｅ２とに基づき、第１および第２のイベント２０２，２０４を、関連するイベント検出器２０８に中継するように動作可能である。
【０１１７】
イベント検出器が、好ましくは実行中または動作中に、１つのノードからもう１つのノードに転送されうる本発明の局面もまた、分散演算システム７００の第１のノード７０４−１の第１のイベント検出器プロセスを、分散演算システム７００の第２のノード７０４−２の第２のイベント検出器プロセスに転送するための方法を備えている。そのような転送方法９００の模式的なフローチャートを図９に図示する。
【０１１８】
転送方法９００は、第１のイベント検出器プロセスのプロセス内容を、第２のイベント検出器プロセスにコピーする工程９０２を含んでいる。その前に、どの演算ノードまたは管理プロセスが、過負荷のイベント検出器プロセス／スレッドのプロセスを扱うかを決定しうる。上述したように、いくつかの実施形態では、コピー工程９０２は、イベント検出器プロセスを備えているデータを、第１のノード７０４−１から第２のノード７０４−２に複数回繰り返しコピーすることを含みうる。これにより、コピー工程９０２は、どのデータがイベント検出器２０８の状態情報に属しているか定義することを含んでいる。プロセスの場合、たとえばこれはプロセスメモリである。コピーされるプロセス内容のデルタは、変化がゼロではなく小さいままになるまで、コピー中に徐々に小さくなる。
【０１１９】
方法９００は、さらに、第１のイベント検出器プロセスの入力イベントを、第１および第２のイベント検出器プロセスの双方において並行して処理する工程９０４を含んでいる。その目的のため、双方の検出器が同一の入力データストリームを処理しうるように、第１のイベント検出器の入力データを双方のイベント検出器にバッファおよび／またはコピーしうる。双方のイベント検出器は、次に、上記入力データを並行して処理するために切り替えられうる。
【０１２０】
さらなる工程９０６では、第１および第２のイベント検出器プロセスの双方において並行に処理される第１のイベント検出器プロセスの入力イベントによって、第１および第２のイベント検出器プロセスの双方において同一の出力イベントが生じた否かを検証する。これがそうである場合、すなわち、第１および第２のイベント検出器プロセスの双方における出力イベント２０６が同一である場合、第１のイベント検出器プロセスはシャットダウンされうる（工程９０８を参照）。これがそうではない場合、すなわち、第１および第２のイベント検出器プロセスの双方における出力イベント２０６が同一ではない場合、その代りに第２のイベント検出器プロセスをシャットダウンし、工程９０２において転送方法９００が再度開始されうる。
【０１２１】
それゆえ、分散ネットワークノード間におけるイベント検出器プロセスの転送は、たとえば、相互通信する異なるノード７０４に関連する、スケジューラ（イベントコアプロセスとしても参照される）のような管理インスタンスを有することによって行われうる。この通信に基づき、それらはシステム７００の１つのノードからもう１つのノードにイベント検出器プロセスまたはアルゴリズムを渡すことを決定しうる。
【０１２２】
上記の記述および図面は、本発明の原理を単に説明するに過ぎない。それゆえ、ここには明確には記述されていないが本発明の原理を体現しかつその精神および範囲内に含まれる様々な構成を当業者が考案することができることが、評価される。さらに、ここに列挙されたすべての例は、本発明の原理および技術を推進するために発明者が貢献した概念に対する読者の理解を助けるためのはっきりとした教育的目的のみであることと、特別に列挙された例および条件に対する限定なしに解釈されるべきであることを、主に意図している。さらに、本発明の原理、局面、および実施形態、ならびに特定の例示を列挙するすべての言明は、それと同等なものを含むことが意図される。
【０１２３】
「〜ための手段」（特定の機能を実行する）として示される機能的ブロックは、特定の機能を実行するためにそれぞれ適合され、構成され、または動作可能である回路を備えている機能ブロックとして理解されるべきである。それゆえ、「何かのための手段」は、同様に、「何かを行うために適合され、構成され、または動作可能である手段」としても理解されうる。特定の機能を実行するために適合された手段は、それゆえ、そのような手段が上記機能を（所望の時点において）必ず実行していることを意図はしない。
【０１２４】
任意の機能的ブロックを含む図面に示す様々な要素の機能は、専用のハードウェア、たとえばプロセッサを通じて、さらに、適切なソフトウェアに関連するソフトウェアを実行することができるハードウェアを通じて、提供されうる。プロセッサによって提供されるとき、機能は、単一の専用プロセッサ、単一の共用プロセッサ、または、いくつかの個別プロセッサが共用されうる複数の個別プロセッサによって提供されうる。さらに、「プロセッサ」または「コントローラ」という用語の明示的な利用は、ソフトウェアを実行することができるハードウェアを排他的に意味すると解釈されるべきではなく、暗黙的に、制限することなく、デジタルシグナルプロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、アプリケーション特異的集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを格納するためのリードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、および非揮発性記憶媒体を含めうる。他のハードウェア、従来品および／または改良品もまた、含まれうる。
【０１２５】
如何なるブロック図も、本発明の原理を具現化する説明的な回路の概念的な図を表すことが、当業者によって評価されるべきである。同様に、如何なるフローチャート、フロー図、状態遷移図、疑似コード、およびその他が、コンピュータまたはプロセッサが明示的に示されているか否かに関わらず、コンピュータ読み取り可能な媒体において実質的に表され、それゆえコンピュータまたはプロセッサによって実行されうる様々なプロセスを表すことが評価される。
【０１２６】
さらに、以下の請求項が、個々の請求項のそれ自身が別々の実施形態として含まれうる詳細な説明に組み込まれる。個々の請求項のそれ自身が別々の実施形態として含まれうるとはいえ、従属請求項が、請求項において、１つまたはそれ以上の他の請求項との特定の組み合わせとして言及されるとはいえ、他の実施形態もまた、従属請求項と、個々の他の従属請求項の発明特定事項との組み合わせを含みうることが注意される。そのような組み合わせは、特定の組み合わせが意図されないことが述べられない限り、ここに提案される。さらに、請求項が独立請求項に直接には従属していないとしても、この請求項の特徴を如何なる他の請求項に含めることもまた意図される。
【０１２７】
明細書または請求項に開示された方法が、これらの方法の個々の工程を実行するための手段を有する装置によって実装されうることがさらに意図される。
【０１２８】
さらに、明細書または請求項に開示された複数の工程または機能の開示が、特定の順の範囲内にあると解釈されえないことが理解される。したがって、複数の工程または機能の開示は、複数の工程または機能が技術的理由によって入れ替え可能ではない限り、これらを特定の順には限定しない。
【０１２９】
さらに、いくつかの実施形態では、単一の工程は、複数の副次工程を含みうるか、複数の副次工程に分解されうる。そのような副次工程は、明示的に除外されない限り、この単一の工程に含まれるか、その一部でありうる。
【図面の簡単な説明】
【０１３０】
【図１】サッカー特有のオフサイドイベントの検出事例を示す。
【図２】本発明の実施形態に係る、第１のイベントを第２のイベントに同期させるための装置のブロック図を模式的に示す。
【図３】第１のイベントを第２のイベントに同期させるための装置が、分散ネットワークと、関連するイベント検出器ソフトウェアとの間におけるミドルウェアとして実装される本発明の実施形態を模式的に示す。
【図４】イベント検出器が必要とする４つのイベントＡ、Ｂ、Ｃ、およびＤのタイミングテーブルを示す。
【図５】本発明の実施形態に係るイベントスケジューリングを模式的に図示する。
【図６】第１のイベントを第２のイベントに同期させるための方法の一例のフローチャートを模式的に示す。
【図７】イベントを同期するための装置の実施形態を備えている複数の分散演算ノードを備えている、少なくとも１つのセンサデータストリームに基づきイベントを決定するための分散演算システムの実施形態を示す。
【図８】分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための装置の実施形態を模式的に図示する。
【図９】分散演算システムの第１のノードの第１のイベント検出器プロセスを、分散演算システムの第２のノードの第２のイベント検出器プロセスに転送するための方法の実施形態のフローチャートを模式的に図示する。
【図１】
0005847953.tif 000007
【図２】
0005847953.tif 000008
【図３】
0005847953.tif 000009
【図４】
0005847953.tif 000010
【図５】
0005847953.tif 000011
【図６】
0005847953.tif 000012
【図７】
0005847953.tif 000013
【図８】
0005847953.tif 000014
【図９】
0005847953.tif 000015