(57)【要約】【課題】  イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適した分散処理装置特定方法を選択することが困難である。【解決手段】  与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持し、装置特定関数それぞれについて、複数の特定の引数に対するキー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出し、第１のデータブロックの入力頻度と第１のデータブロックが特定の第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、分散度と、に基づいて複数の装置特定関数の内のいずれか１つを選択する。【選択図】      図１
2013101446.tif 000002
【特許請求の範囲】
【請求項１】
与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持する装置特定関数保持手段と、
前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出し、出力する装置特定関数分散度算出手段と、
第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択し、選択した前記装置特定関数を出力する装置特定関数決定手段と、
を含む分散処理装置。
【請求項２】
前記装置特定関数は、周期関数であって、前記キー値は特定のキー空間を循環し、
前記装置特定関数分散度算出部は、前記複数の特定の前記引数に対する複数の前記キー値について、前記キー空間の近距離側の平均値を算出し、前記平均値に基づいて前記複数の前記キー値の分散を算出する
ことを特徴とする請求項１記載の分散処理装置。
【請求項３】
前記装置特定関数決定部は、前記第１のデータブロックの入力頻度と前記第２のデータブロックの入力頻度との比の値と、隣接した前記引数に対応する前記キー値の分散度とが最も近い前記装置特定関数を選択し、
前記選択した装置特定関数が複数である場合、予め定められた閾値以下の前記引数に対する前記キー値の分散度が、２以上で最も少ない数の前記引数において出現する前記装置特定関数を選択する
ことを特徴とする請求項１または２記載の分散処理装置。
【請求項４】
前記第１のデータブロックの入力と前記第２のデータブロックの入力とを監視し、
前記第１のデータブロックの入力頻度と前記第２のデータブロックの入力頻度との比を算出し、出力する入力頻度観測部を含む
ことを特徴とする請求項１乃至３のいずれか一項に記載の分散処理装置。
【請求項５】
（元の請求項４：第1データブロックがイベントデータ）
前記第１のデータブロックは、入力される順番に対応して単調増加または単調減少する環境情報を含み、
前記装置特定関数分散度算出手段は、前記環境情報に基づいて決定した連続する値を前記複数の特定の前記引数とする、
ことを特徴とする請求項１乃至４のいずれか一項に記載の分散処理装置。
【請求項６】
コンピュータが、
与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持し、
前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出し、
第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択し、
選択した前記装置特定関数を出力する、
分散処理装置方法。
【請求項７】
前記装置特定関数は、周期関数であって、前記キー値は特定のキー空間を循環し、
前記コンピュータは、前記複数の前記キー値の前記分散を、前記複数の特定の前記引数に対する複数の前記キー値について、前記キー空間の近距離側の平均値を算出し、前記平均値に基づいて算出する
ことを特徴とする請求項６記載の分散処理方法。
【請求項８】
前記コンピュータは、
前記第１のデータブロックの入力頻度と前記第２のデータブロックの入力頻度との比の値と、隣接した前記引数に対応する前記キー値の分散度とが最も近い前記装置特定関数を選択し、
前記選択した装置特定関数が複数である場合、予め定められた閾値以下の前記引数に対する前記キー値の分散度が、２以上で最も少ない数の前記引数において出現する前記装置特定関数を選択する
ことを特徴とする請求項６または７記載の分散処理方法。
【請求項９】
与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持する処理と、
前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出する処理と、
第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択する処理と、
選択した前記装置特定関数を出力する処理とを、
コンピュータに実行させるプログラム。
【請求項１０】
複数の分散処理装置を含み、
前記分散処理装置の内の少なくとも１つは、請求項１乃至５のいずれか１項に記載の前記分散処理装置である分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理制御装置、分散処理制御方法及びそのためのプログラムに関し、特に複数の分散処理装置がイベントデータを処理するイベント処理システムの分散処理制御装置、分散処理制御方法及びそのためのプログラムに関する。
【背景技術】
【０００２】
分散処理に関し、さまざまな関連技術が知られている。
【０００３】
例えば、特許文献１は、分散データベース管理システムの一例を開示する。その分散データベース管理システムは、水平垂直分散を組みあわせて、複数のデータベース管理装置がデータを分散配置する。各データベース管理装置は、データを格納するべきデータベース管理装置を、ハッシュ関数を用いて特定する。
【０００４】
そのハッシュ関数は、特定のデータベース管理装置のハッシュ関数演算部で算出され、他のデータベース管理装置に配布される。ハッシュ関数演算部は、統計情報を用いて、今後入力される断片レコードのキー値の集合を均一に分散するようなハッシュ関数を決定する。ここで、統計情報は、既に入力された断片レコードの、値のヒストグラムなどである。
【０００５】
ハッシュ関数の決定方法については、ＳＨＡ-１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）などが知られている。
【０００６】
また、非特許文献１は、複数のノードでデータを管理する場合の負荷分散方法の一例を開示する。その負荷分散方法は、予め定められた値の範囲を分散処理装置数に分割し、分割した値の範囲と各分散処理装置とを一対一に対応付ける。その対応付けに基づいて、各分散処理装置は、データを転送すべき分散処理装置を特定する。
【０００７】
その分散処理装置により構成されるイベント処理システムについて説明する。
【０００８】
そのイベント処理システムは、複数の分散処理装置と各分散処理装置を互いに接続するLAN（Ｌｏｃａｌ  Area  Ｎｅｔｗｏｒｋ）ケーブルなどの伝送媒体で構成される。例えば、そのイベント処理システムは、位置情報や時間情報など連続した値を扱う場合、非特許文献１の負荷分散方法を用いる。
【０００９】
そのイベント処理システムの入力は、イベントデータとイベント条件である。イベントデータは、イベント処理システムの外部システムで刻一刻と生成され、イベント処理システム上に構築されたアプリケーションで処理されるデータである。イベントデータには、そのイベントデータが生成された時間や、そのイベントデータが生成された場所などの動的に変化する状況情報の値が、記述されている。
【００１０】
イベント条件は、イベント処理システムの外部システムから指定される、あるイベントデータが特定のイベントデータであるか否かを判定する条件である。具体的には、イベント条件は、上述のイベントデータに記述されている状況情報の範囲を指定する値である。
【００１１】
そのイベント処理システムは、イベントデータを受信した際に、そのイベント処理システム内のある特定の分散処理装置において、イベントデータとイベント条件とが合致しているか否かを判定する。ここで、特定の分散処理装置は、前述の対応付けをされた値の範囲に、受信したイベントデータの値を含む、分散処理装置である。
【００１２】
各分散処理装置は、イベントデータやイベント条件を受信すると、イベントデータに記述された値、或いはイベント条件で指定された値に基づいて、そのイベントデータ或いはそのイベント条件を合致判定処理する先の、分散処理装置を特定する。尚、イベントデータやイベント条件を受信した分散処理装置と合致判定処理する先の分散処理装置とが同じ場合もある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−３５０７４１号公報
【非特許文献】
【００１４】
【非特許文献１】Ashwin R. Bharambe, Sanjay Rao, Srinivasan Seshan, “Mercury: Supporting Scalable Multi-Attribute Range Queries”, In Proc. of 1st Workshop on Network and System Support for Games(NetGames2002) ,pp.3-9, 2002.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、上述した文献に記載された技術においては、イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適した分散処理装置特定方法を選択することが困難であるという問題点がある。
【００１６】
その理由は、ユースケースに基づいて分散処理装置特定方法を評価する手段がないためである。
【００１７】
上述の問題点を具体的に説明する。
【００１８】
例えば、特許文献１のデータベース管理装置は、複数の断片レコードが複数のデータベース管理装置に常に均一に格納されるようにするために、断片レコードのキー値の集合を均一に分布するハッシュ値にする、ハッシュ関数を決定する。即ち、そのデータベース管理装置は、複数の断片レコードがどのようなユースケースで発生するかに係わらず、その複数の断片レコードを均一に分布させるような分散処理装置特定方法を、常に選択するという問題点がある。
【００１９】
また、非特許文献１の負荷分散方法は、システム管理者が、固有の評価基準に基づいて、任意に分散処理装置特定方法を選択する。即ち、その負荷分散方法は、必ずしも、ユースケースに適していない分散処理装置特定方法であるとは限らないという問題点がある。
【００２０】
ここで、選択された分散処理装置特定方法がユースケースに適していないことによる問題について説明する。
【００２１】
その問題は、例えば、イベントデータの発生頻度が低いにも拘らず、処理の分散が必要以上に行われる問題である。即ち、処理を分散させすぎる分散処理装置特定方法が選択されると、イベント条件を配置する先の分散処理装置数が不必要に増大する。そして、その分、イベント条件の更新に対する即応性が悪化する。
【００２２】
また、その問題は、イベントデータの発生頻度が高いにも拘らず、処理の分散が不十分であるという問題である。この場合、イベント条件の更新に対する即応性は、保たれる。しかし、処理を十分に分散させない分散処理装置特定方法が選択されると、イベントデータを処理する先の分散処理装置の負荷が高くなる。そして、処理性能が悪化する問題である。
【００２３】
次に、上述の非特許文献１の負荷分散方法を用いたイベント処理システムについて、前述の問題点を具体的に説明する。
【００２４】
まず、非特許文献１の負荷分散方法を用いたイベント処理システムの、基本動作を説明する。
そのイベント処理システムは、予め定められた時間範囲をいくつかの時間範囲に分割すると共に、その分割した時間範囲を各分散処理装置に割り当てる。
【００２５】
そして、外部システムからイベントデータを受信した際、そのイベント処理システムは、複数の分散処理装置の中から処理する先の分散処理装置を１つ特定する。続けて、特定された分散処理装置は、その受信したイベントデータに対する処理を行う。こうして処理を分散することで、そのイベント処理システムは、各分散処理装置あたりの負荷を軽減している。
【００２６】
そのイベント処理システムのいずれかの第１の分散処理装置は、外部システムからイベントデータを受信すると、そのイベントデータを処理する先のいずれかの第２の分散処理装置を特定する。ここで、第１の分散処理装置は、そのイベントデータに記述されている時間を、割り当てられている時間範囲に含む分散処理装置を、第２の分散処理装置として特定する。次に、第１の分散処理装置は、そのイベントデータを第２の分散処理装置へ配送する。
【００２７】
第２の分散処理装置は、配送されたイベントデータをイベントデータ処理手段で処理する。尚、第２の分散処理装置は、第１の分散処理装置であってもよい。この場合、第１の分散処理装置は、そのイベントデータを自身のイベントデータ処理手段で処理する。
【００２８】
また、そのイベント処理システムのいずれかの第１の分散処理装置は、外部システムからイベント条件を受信すると、そのイベント条件を処理する先のいずれかの第２の分散処理装置を特定する。ここで、第１の分散処理装置は、そのイベント条件で指定されている時間範囲にオーバーラップする時間範囲が割り当てられている分散処理装置を、第２の分散処理装置として特定する。次に、第１の分散処理装置は、そのイベント条件を第２の分散処理装置へ配送する。
【００２９】
第２の分散処理装置は、配送されたイベント条件を保持する。尚、第２の分散処理装置は、第１の分散処理装置であってもよい。この場合、第１の分散処理装置は、そのイベント条件を自身で保持する。
【００３０】
分散処理装置のイベントデータ処理手段は、配送されたイベントデータが、保持しているイベント条件に合致しているか否かの判定（合致判定処理）を行う。
【００３１】
例えば、イベント処理システムが、４台の分散処理装置で構成されているとする。 そのイベント処理システムは、４台の分散処理装置それぞれを、０時から６時間ごとに均等に割り当てる。例えば、“２０１１年２月２８日９：００から２０１１年２月２８日１２：００”と指定したイベント条件が、イベント処理システムに入力された場合、イベント処理システム内のある第１の分散処理装置は、そのイベント条件を受信する。次に第１の分散処理装置は、６時から１２時を割り当てられた第２の分散処理装置にイベント条件を送信する。
【００３２】
第２の分散処理装置は、送信されたイベント条件を保持する。
【００３３】
次に、時間情報に“２０１１年２月２８日１０：３０”と記述されたイベントデータが、イベント処理システムに入力された場合、イベント処理システム内のある第１の分散処理装置は、そのイベントデータを受信する。次に、第１の分散処理装置は、６時から１２時を割り当てられた第２の分散処理装置にイベントデータを送信する。
【００３４】
第２の分散処理装置は、受信したイベントデータと保持しているイベント条件との合致判定処理を行う。例えば、イベントデータ（時間情報が“２０１１年２月２８日１０：３０”）は、イベント条件（時間情報が“２０１１年２月２８日９：００から２０１１年２月２８日１２：００”）に、合致する。
【００３５】
次に、イベントデータの発生頻度が低いユースケースにおいて、処理の分散が必要以上に行われる分散処理装置特定方法が選択されることにより、イベント条件の更新（登録、削除、変更）の即応性が悪化する場合の例を、説明する。
【００３６】
そのイベント処理システムは、定められた時間範囲をより細かく分割し、隣り合った時間範囲を別の分散処理装置に割り当てることで、処理の分散を大きくできる。なぜならば、定められた時間範囲をより細かく分割することは、ある時間範囲内に発生したイベントデータが配送される先の、分散処理装置を増加させることになるからである。
【００３７】
例えば、イベント処理システムは、各分散処理装置を、前述の６時間ごとではなく、１時間ごとに均等に割り当てる。この場合、イベント処理システムは、４台の分散処理装置それぞれを、０時から順に、１時間ごとの時間範囲を順に割り当てる。つまり、イベント処理システムは、全ての分散処理装置それぞれを、４時までの時間範囲に割り当てる。更に、イベント処理システムは、４時以降は、再度１台目の分散処理装置から順に１時間の時間範囲を割り当てる。
【００３８】
例えば、６時から１２時に発生するイベントデータは、前述の６時間ごとの例では１台の分散処理装置で処理されていた。しかし、この例では、定められた時間範囲を１時間ごとに分割したことによって、そのイベントデータは、４台の分散処理装置で処理される。従って、この１時間ごとの例では、前述の６時間後との例に比べて、処理の分散がより大きい。
【００３９】
しかし、例えば“２０１１年２月２８日９：００から２０１１年２月２８日１２：００”と指定したイベント条件は、“９：００から“９：５９、“１０：００から“１０：５９、“１１：００から“１１：５９、“１２：００から“１２：５９が割り当てられた４台の分散処理装置で保持される。各分散処理装置で保持されるイベント条件は、同期を取って更新される必要がある。従って、４台の分散処理装置でイベント条件を保持することは、例えば２台の分散処理装置でイベント条件を保持することに比べて、更新時の即応性が悪化する。
【００４０】
次に、イベントデータの発生頻度が高いユースケースにおいて、処理の分散が不十分な分散処理装置特定方法が選択されイベントデータを処理する先の分散処理装置の負荷が高くなり、処理性能が悪化する場合の例を、説明する。
【００４１】
イベント処理システムは、定められた時間範囲をより粗く分割し、隣り合った時間範囲を同じ分散処理装置に割り当てることで、イベント条件を保持する先の分散処理装置を集約できる。なぜならば、定められた時間範囲をより粗く分割することは、ある時間範囲を指定したイベント条件が配送される先の、分散処理装置が減少することになるからである。しかし、イベントデータを処理する先の分散処理装置数も減少し、それらの分散処理装置の負荷が高くなり、処理性能が悪化する。
【００４２】
上述のように、時間情報のように連続する値を、その値の順に従って扱う非特許文献１の負荷分散方法を適用したイベント処理システムは、イベントデータやイベント条件がどの程度分散されるかを評価する指標を得ることができない。そのため、そのイベント処理システムは、ユースケースに適した分散処理装置特定方法を選択することができない。
［目的］
【００４３】
本発明の目的は、上述した問題点を解決する分散処理制御装置、分散処理制御方法及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【００４４】
本発明の分散処理装置は、与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持する装置特定関数保持手段と、前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出し、出力する装置特定関数分散度算出手段と、第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択し、選択した前記装置特定関数を出力する装置特定関数決定手段と、を含む。
【００４５】
本発明の分散処理装置方法は、コンピュータが、与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持し、前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出し、第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択し、選択した前記装置特定関数を出力する。
【００４６】
本発明のプログラムは、与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持する処理と、前記装置特定関数それぞれについて、複数の特定の前記引数に対する前記キー値の分散を算出し、算出した前記分散に基づいて前記装置特定関数の分散度を算出する処理と、第１のデータブロックの入力頻度と前記第１のデータブロックが特定の前記第１のデータブロックであるか否かを判定する条件の情報を含む第２のデータブロックの入力頻度との比と、前記分散度と、に基づいて複数の前記装置特定関数の内のいずれか１つを選択する処理と、選択した前記装置特定関数を出力する処理とを、コンピュータに実行させる。
【発明の効果】
【００４７】
本発明は、イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適した分散処理装置特定方法を選択することを可能にするという効果がある。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明の第１の実施形態の分散処理装置の構成を示すブロック図である。
【図２】図２は、本発明の第１の実施形態の分散処理装置を含むイベント処理システムの構成を示すブロック図である。
【図３】図３は、本発明の第１の実施形態における装置特定関数の一例である。
【図４】図４は、本発明の第１の実施形態における分散処理装置とその周辺装置のハードウェア構成を示す図である。
【図５】図５は、本発明の第１の実施形態における分散処理装置の動作を示すフローチャートである。
【図６】図６は、本発明の第１の実施形態における分散度保持テーブルの一例を示す図である。
【図７】図７は、本発明の第１の実施形態における“ｈ（ｌ）”の算出結果の一例である。
【図８】図８は、本発明の第２の実施形態の分散処理装置の構成を示すブロック図である。
【図９】図９は、本発明の第３の実施形態の分散処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００４９】
次に、本発明の実施形態について図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、本発明の第１の実施形態の分散処理装置１００の構成を示すブロック図である。
【００５０】
図１を参照すると、本実施形態に係る分散処理装置１００は、装置特定関数保持部１１０と装置特定関数分散度算出部１２０と装置特定関数決定部１３０とイベントデータ配信先装置特定部１４０とイベント条件配置先装置特定部１５０と合致判定処理部１６０とを含む。
【００５１】
図２は、分散処理装置１００を含むイベント処理システム５００の構成を示すブロック図である。
【００５２】
図２を参照すると、イベント処理システム５００は、ネットワーク５９０を介して互いに接続された分散処理装置１００、分散処理装置１０１、分散処理装置１０２及び分散処理装置１０３を含む。分散処理装置の台数は、本実施形態の例に係わらず任意の台数であってよい。以後、分散処理装置１０１、分散処理装置１０２及び分散処理装置１０３を総称して、分散処理装置１０１−１０３とも表記する。また、分散処理装置１００及び分散処理装置１０１−１０３を総称して、分散処理装置１００−１０３と表記する。
【００５３】
尚、分散処理装置１０１−１０３それぞれは、少なくともイベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０及び合致判定処理部１６０を含む。
【００５４】
また、分散処理装置１０１−１０３の内の任意のものは、分散処理装置１００と同じ構成であってもよい。そして、分散処理装置１００と同じ構成を含む分散処理装置１０１−１０３は、以下に説明する分散処理装置１００と同様の動作を実行してよい。
【００５５】
また、イベント処理システム５００は、分散処理装置１００に接続された装置特定関数入力装置５１０、初期情報入力装置５２０、イベントデータ入力装置５３０、イベント条件入力装置５４０及び通知情報受信装置５５０を含む。
【００５６】
尚、装置特定関数入力装置５１０、初期情報入力装置５２０、イベントデータ入力装置５３０、イベント条件入力装置５４０及び通知情報受信装置５５０の任意のものは、ネットワーク５９０に接続されてよい。そして、分散処理装置１００−１０３は、ネットワーク５９０に接続された装置特定関数入力装置５１０、初期情報入力装置５２０、イベントデータ入力装置５３０、イベント条件入力装置５４０及び通知情報受信装置５５０と接続されてよい。
【００５７】
装置特定関数入力装置５１０は、分散処理装置１００に、装置特定関数（詳細は後述）を入力する。
【００５８】
初期情報入力装置５２０は、分散処理装置１００−１０３に、初期情報（詳細は後述）を入力する。
【００５９】
イベントデータ入力装置５３０は、分散処理装置１００−１０３に、イベントデータ（第１のデータブロックとも呼ばれる）を入力する。ここで、イベントデータは、そのイベントデータが生成された時間や、そのイベントデータが生成された場所などの動的に変化する、状況情報の値を含む。
【００６０】
イベント条件入力装置５４０は、分散処理装置１００−１０３に、イベント条件（第２のデータブロックとも呼ばれる）を入力する。ここで、イベント条件は、あるイベントデータが特定のイベントデータであるか否かを判定する条件として、イベントデータに記述されている状況情報の範囲を指定する値を含む。
【００６１】
通知情報受信装置５５０は、分散処理装置１００から、合致判定の結果（詳細は後述）を受け取る。
【００６２】
次に、分散処理装置１００−１０３について説明する。
【００６３】
各分散処理装置１００−１０３それぞれは、少なくとも起動時に、各分散処理装置１００−１０３に割り当てられる分担キーを取得する。例えば、各分散処理装置１００−１０３それぞれは、その分担キーの値を自律的に算出する。また、図示しない手段及び予め定められた分散処理装置１００−１０３のいずれかが、その分担キーの値を算出し、他の分散処理装置１００−１０３に通知するようにしてもよい。また、その分担キーは、例えば、初期情報入力装置５２０が入力する初期情報に含まれるようにしてもよい。
【００６４】
ここで、分担キーは、例えば、“０”から“１５”までの整数の１６個である。
【００６５】
この場合、例えば、分散処理装置１００は分担キーの“０”〜“３”を、分散処理装置１０１は分担キーの“４”〜“７”を、分散処理装置１０２は分担キーの“８”〜“１１”を、分散処理装置１０２は分担キーの“１２”〜“１５”を、割り当てられる。
【００６６】
尚、分担キーは、上記以外の任意の連続する整数（例えば、“０”〜“２３”、“０”〜“５９”）であってよい。
【００６７】
また、各分散処理装置１００−１０３それぞれは、イベント処理システム５００において実行する複数の処理それぞれについて、分担キーのいずれかに対応するキー値を算出する。ここで、複数の処理は、例えば、“０:００”から“２３：５９”までに受け取るイベントデータ及びイベント条件に対する処理である。以後、これらの複数の処理を総称して、イベント処理とも呼ぶ。
【００６８】
具体的には、分散処理装置１００−１０３それぞれは、受信したイベントデータやイベント条件のキー値を算出する際に、装置特定関数（詳細は、後述する）“ｆ（ν)”を使用する。
【００６９】
この装置特定関数“ｆ（ν)”は、引数“ν”から、キー値を算出する関数である。ここで、引数“ν”は、イベントデータやイベント条件に記述されている値、またはその値を予め定められた手順で変換した値である。予め定められた手順は、例えば、２４時間制の時刻（例えば、“１５時”）を、９０分単位で１６分割した値（例えば、“１５時”に対して、“１０”）に変換する手順である。
【００７０】
この装置特定関数“ｆ（ν)”は、最小値の“０”及び最大値の“ｆｍａｘ（例えば、“１５”）”を満たす整数値（いずれかの分担キーに対応するキー値）を返す関数である。
【００７１】
尚、“ｆｍａｘ”は、イベント処理システム５００がイベント処理を割り当てるキー空間における、キー値の最大値である。例えば、分担キーが“０”〜“２３”の場合、“ｆｍａｘ”は、“２３”とすることが望ましい。また、例えば、分担キーが“０”〜“５９”の場合、）“ｆｍａｘ”は、“５９”とすることが望ましい。
【００７２】
また、この“ｆｍａｘ”は、例えば、分散処理装置台数より十分大きな値（例えば、分散処理装置台数の数倍）を用いる。
【００７３】
次に、イベント処理システム５００の各分散処理装置１００−１０３それぞれは、算出したキー値に基づいて、受け取ったイベントデータ及びイベント条件を分散処理装置１００−１０３のいずれかに、配送する。即ち、イベント処理システム５００は、算出したキー値に基づいて、分散処理装置１００−１０３のいずれかにイベント処理を割り当てる。
【００７４】
具体的には、分散処理装置１００−１０３は、受け取ったイベントデータから算出したキー値が、自身に割り当てられた分担キーに対応する場合、そのイベントデータの合致判定を行う。また、分散処理装置１００−１０３は、受け取ったイベント条件から算出したキー値が、自身に割り当てられた分担キーに対応する場合、そのイベント条件の保持を行う。
【００７５】
また、分散処理装置１００−１０３は、受け取ったイベントデータ及びイベント条件から算出したキー値が、自身に割り当てられた分担キーに対応しない場合、その算出したキー値に基づいて、受信したイベントデータやイベント条件を配送する分散処理装置１００−１０３を特定する。即ち、分散処理装置１００−１０３は、算出したキー値に対応する分担キーを割り当てられている分散処理装置１００−１０３を特定する。
【００７６】
そして、分散処理装置１００−１０３は、特定した分散処理装置１００−１０３に受信したイベントデータ及びイベント条件を配送する。
【００７７】
分散処理装置１００は、複数の装置特定関数の内から、使用する装置特定関数を決定する。
【００７８】
また、イベント処理システム５００に分散処理装置１００と同様の動作を行わない分散処理装置１０１−１０３が含まれている場合、分散処理装置１００は、その分散処理装置１０１−１０３に、決定した特定装置関数を配布するようにしてよい。
【００７９】
次に、分散処理装置１００−１０３の各構成要素について、詳細に説明する。尚、図１に示す構成要素は、ハードウェア単位の構成要素ではなく、機能単位の構成要素を示している。
【００８０】
装置特定関数保持部１１０は、装置特定関数入力装置５１０から装置特定関数を受け取り、保持する。
【００８１】
図３は、装置特定関数保持部１１０に保持された装置特定関数の一例である。装置特定関数保持部１１０は、関数番号と装置特定関数との組を１以上保持する。
【００８２】
装置特定関数分散度算出部１２０は、装置特定関数それぞれの分散度を算出し、算出結果を保持する。装置特定関数の分散度とは、その装置特定関数に従って分散処理を行った際の分散の大きさを示す値である。例えば、装置特定関数“ｆ０（ν)”の分散度が装置特定関数“ｆ１（ν)”の分散度より大きい場合、装置特定関数“ｆ０（ν)”は、装置特定関数“ｆ１（ν)”に比べて、より多くの分散処理装置にイベント条件を配置する。分散度の算出については後述する。
【００８３】
装置特定関数決定部１３０は、装置特定関数を１つ決定する。上述したように、装置特定関数は、分散処理装置１００−１０３がイベントデータ入力装置５３０からイベントデータを受け取った場合、それを配信する先の分散処理装置１００−１０３を特定するためのキー値を算出する関数である。また、装置特定関数は、分散処理装置１００−１０３がイベント条件入力装置５４０からイベント条件を受け取った場合、それらを配信する先の分散処理装置１００−１０３を特定するためのキー値を算出する関数である。
【００８４】
具体的には、装置特定関数決定部１３０は、起動時に外部のシステムから入力される初期情報と、各装置特定関数の分散度とに基づいて、装置特定関数保持部１１０に格納されている装置特定関数の内の１つを選択する。続けて、装置特定関数決定部１３０は、選択した装置特定関数をイベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０へ通知する。尚、装置特定関数決定部１３０は、分散処理装置１０１−１０３のイベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０へも、選択した装置特定関数を通知するようにしてもよい。
【００８５】
初期情報は、イベント処理システム５００に対するイベントデータの入力頻度であるイベント入力頻度“ｅｆ”とイベント条件の更新頻度であるイベント条件更新頻度“ｒｆ”との比を含む。また、初期情報は、“ｆｍａｘ”及びイベント処理システム５００に含まれる分散処理装置数“Ｕ”、を含む。
【００８６】
イベントデータ配信先装置特定部１４０は、イベント処理システム５００の外部システムからイベントデータを受信した際に、そのイベントデータに記述された値（例えば、イベント発生時刻の“９：５６”）を取得する。続けて、イベントデータ配信先装置特定部１４０は、取得した値に基づいて装置特定関数の引数とする値“νｅ”（例えば、“２”）を決定する。続けて、イベントデータ配信先装置特定部１４０は、その決定した値を引数として装置特定関数を用いてキー値を算出する。更に、イベントデータ配信先装置特定部１４０は、算出したキー値に対応する分担キーを割り当てられた分散処理装置１００−１０３を特定する。続けて、イベントデータ配信先装置特定部１４０は、特定した分散処理装置１００−１０３へイベントデータを配送する。尚、イベントデータ配信先装置特定部１４０は、そのイベントデータに記述された値そのもの（例えば、イベント発生時刻の“９：５６”が記述されている場合、その時間の部分の“９”）を、装置特定関数の引数とする値“νｅ”として決定してもよい。
【００８７】
イベント条件配置先装置特定部１５０は、イベント処理システム５００の外部システムからイベント条件を受信した際に、そのイベント条件で指定された値の範囲の（例えば、“９：００−１３：００”）を取得する。続けて、イベント条件配置先装置特定部１５０は、取得した値の範囲に基づいて、装置特定関数の引数とする値の範囲“［νｒｌ，νｒｈ］（“νｒｌ”から“νｒｈ”まで）”（例えば、“［２，４］（“２”から“４”まで、即ち、“２”、“３”及び“４”）”）を決定する。続けて、イベント条件配置先装置特定部１５０は、その決定した値の範囲に含まれる装置特定関数の引数となりえる各値を引数として装置特定関数を用いてキー値を算出する。更に、イベント条件配置先装置特定部１５０は、算出した各キー値に対応する各分担キーを割り当てられた分散処理装置１００−１０３を特定する。続けて、イベント条件配置先装置特定部１５０は、特定した分散処理装置１００−１０３の全てに対して、イベント条件を配送する。尚、イベントデータ配信先装置特定部１４０は、そのイベント条件で指定された値の範囲そのもの（例えば、“９：００−１３：００”が記述されている場合、その時間の部分の“［９，１３］”）の範囲に含まれる装置特定関数の引数となりえる各値を引数として決定してもよい。
【００８８】
尚、特定した分散処理装置１００−１０３へイベントデータ及びイベント条件を配送する手段は、例えば、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）を用いる。
【００８９】
合致判定処理部１６０は、配送されたイベント条件を保持する。また、合致判定処理部１６０は、配送されたイベントデータが、保持しているイベント条件に合致しているか否かの判定（合致判定処理）を行う。
【００９０】
以上が、分散処理装置１００の機能単位の各構成要素についての説明である。
【００９１】
次に、分散処理装置１００のハードウェア単位の構成要素について説明する。
【００９２】
図４は、本実施形態における分散処理装置１００とその周辺装置のハードウェア構成を示す図である。図４に示されるように、分散処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０７０、記憶部１０７１、記憶装置１０７２、入力部１０７３、出力部１０７４及び通信部１０７５を含む。
【００９３】
ＣＰＵ１０７０は、オペレーティングシステム（不図示）を動作させて、本実施形態に係る分散処理装置１００の全体の動作を制御する。また、ＣＰＵ１０７０は、例えば記憶装置１０７２に装着された不揮発性の記録媒体（不図示）から、記憶部１０７１にプログラムやデータを読み込む。そして、ＣＰＵ１０７０は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図１に示す装置特定関数保持部１１０、装置特定関数分散度算出部１２０、装置特定関数決定部１３０、イベントデータ配信先装置特定部１４０、イベント条件配置先装置特定部１５０及び合致判定処理部１６０として各種の処理を実行する。
【００９４】
尚、ＣＰＵ１０７０は、通信網（不図示）に接続されている外部コンピュータ（不図示）から、記憶部１０７１にプログラムやデータをダウンロードするようにしてもよい。
【００９５】
記憶部１０７１は、プログラムやデータを記憶する。
【００９６】
記憶装置１０７２は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、不揮発性の記憶媒体を含む。記憶装置１０７２は、プログラムをコンピュータ読み取り可能に記録する。また、記憶装置１０７２は、データをコンピュータ読み取り可能に記録してもよい。
【００９７】
入力部１０７３は、装置特定関数入力装置５１０、初期情報入力装置５２０、イベントデータ入力装置５３０及びイベント条件入力装置５４０とのインタフェースを実現する。入力装置１０７３は、装置特定関数保持部１１０、装置特定関数分散度算出部１２０、装置特定関数決定部１３０、イベントデータ配信先装置特定部１４０、イベント条件配置先装置特定部１５０の一部として含まれる。
【００９８】
出力部１０７４は、例えば通知情報受信装置５５０とのインタフェースを実現する。出力部１０７４は、合致判定処理部１６０の一部として含まれる。
【００９９】
通信部１０７５は、ネットワーク５９０とのインタフェースを実現する。通信部１０７５は、装置特定関数決定部１３０、イベントデータ配信先装置特定部１４０、イベント条件配置先装置特定部１５０及び合致判定処理部１６０の一部として含まれる。
【０１００】
以上が、分散処理装置１００のハードウェア単位の各構成要素についての説明である。
【０１０１】
以上説明したように、図１に示す機能単位のブロックは、図４に示すハードウェア構成によって実現される。但し、分散処理装置１００が備える各部の実現手段は、上記に限定されない。すなわち、分散処理装置１００は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した２つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【０１０２】
また、前述のプログラムを記録した記録媒体（または記憶媒体）が分散処理装置１００に供給され、分散処理装置１００は、記録媒体に格納されたプログラムを読み込み、実行してもよい。すなわち、本実施形態は、分散処理装置１００が実行するプログラムを、一時的にまたは非一時的に、記憶する記録媒体の実施形態を含む。
【０１０３】
次に、図面を参照して、分散処理装置１００の動作を説明する。
図５は、分散処理装置１００の動作を示すフローチャートである。分散処理装置１００は、例えば、分散処理装置１００自身が起動されたことを契機に装置特定関数を選択する動作を開始する。
【０１０４】
分散処理装置１００は、初期情報入力装置５２０から初期情報を受け取り、受け取った初期情報を、例えば図４に示す記憶部１０７１に格納する（Ｓ６１０）。
【０１０５】
装置特定関数保持部１１０は、装置特定関数入力装置５１０から装置特定関数を受け取り、保持する（Ｓ６１２）。
【０１０６】
次に、装置特定関数分散度算出部１２０は、特定の値を引数として、装置特定関数が返す値（以後、キー値と呼ぶ）を算出する（Ｓ６２０）。ここで、特定の値は、装置特定関数の引数となりうる値の範囲の“Ｖｍｉｎ〜Ｖｍａｘ”に含まれる値のうち、連続した“ｐ”個の、“ν０”から“νｐ−１”の値である。尚、“Ｖｍｉｎ〜Ｖｍａｘ”は、装置特定関数分散度算出部１２０に予め与えられている。また、“Ｖｍｉｎ〜Ｖｍａｘ”は、初期情報に含まれ、分散処理装置１００の起動時に、初期情報入力装置５２０から入力されるようにしてもよい。
【０１０７】
ここで、この引数となりうる値が、時間情報のような無限に続くような値である場合、“Ｖｍｉｎ〜Ｖｍａｘ”は、実際に扱うことが可能な、ある一定の範囲を繰り返す値である。
【０１０８】
例えば、この引数となりうる値が時間情報である場合、“Ｖｍｉｎ〜Ｖｍａｘ”は、ある一定の範囲（例えば、１日（“００：００”から“２３：５９”まで）を、例えば“０”〜“１５”で繰り返す。即ち、“Ｖｍｉｎ”＝“０”は、“００：００”から“１：２９”までの時刻に対応する引数である。また、“１”は、“１：３０”から“２：５９”までの時刻に対応する引数である。同様にして、“Ｖｍａｘ”＝“１５”は、“２２：３０”から“２３：５９”までの時刻に対応する引数である。
【０１０９】
ここで、上述の時間情報は、イベントデータに含まれる、入力される順番に対応して単調増加する環境情報とも呼ばれる。また、上述の引数の“０”〜“１５”は、その環境情報に基づいて決定された連続する値である。
【０１１０】
“Ｖｍｉｎ〜Ｖｍａｘ”が“０〜１５”である場合、装置特定関数分散度算出部１２０は、“０〜１５”に含まれる値のうち、連続した“ｐ（例えば、“４”）”個のある値“ν０（例えば、２）”から“νｐ−１（例えば、“５”）”までのそれぞれの値を引数として、装置特定関数が返す値（以後、キー値と呼ぶ）を求める。
【０１１１】
次に、装置特定関数分散度算出部１２０は、Ｓ６２２からＳ６２８の処理により、算出したキー値の分散を算出する。
【０１１２】
但し、本実施形態における分散は、一般的な数学で用いられる分散とは求め方が異なる。なぜならば、本実施形態のキー値は、最小値の“０”、最大値の“ｆｍａｘ”を満たす整数値を循環しているとみなすことができ、“０”（“ｆｍｉｎ”）と“ｆｍａｘ”との差を、“１”として算出するためである。
【０１１３】
ここで、キー値（装置特定関数が返す値）を、整数値の“０”〜“ｆｍａｘ”を循環する値である、とみなすことができる理由について説明する。
【０１１４】
前述のように、本実施形態の分散処理装置１００は、キー値（装置特定関数から返された値（“０”から“ｆｍａｘ”）を分散処理装置数で分割し、分割された各範囲と各分散処理装置１００−１０３とを紐付ける。
【０１１５】
例えば、分散処理装置数が“４”であるとし、各分散処理装置（例えば、分散処理装置１００−１０３）に紐付く範囲が等間隔（“（ｆｍａｘ＋１）／４”）であるとする。ここで、“ｆｍａｘ＋１”は、キー値の個数である。
【０１１６】
この場合、キー値（例えば、“ｆ”と呼ぶ）に“（ｆｍａｘ＋１）／４”だけ加算し、“ｆｍａｘ＋１”で除した剰余した値“｛ｆ＋（ｆｍａｘ＋１）／４｝ｍｏｄ（ｆｍａｘ＋１）”は、異なる分散処理装置１００−１０３が管理する、隣の範囲の値である。この関係は、キー値に拘らず成り立つ。つまり、キー値の“ｆ（νｘ）”は、式１に示すように、“０”（“ｆｍｉｎ”）と“ｆｍａｘ”とを循環しているとみなすことができる。
【０１１７】
【数１】
2013101446.tif 000003
【０１１８】
図５に戻り、次に、装置特定関数分散度算出部１２０は、キー値を小さいほうから順に並べ、式２に示すように、“ｇ（０)”から“ｇ（ｐ−１)”までの数列を作成する（Ｓ６２２）。
【０１１９】
【数２】
2013101446.tif 000004
【０１２０】
例えば“２”から“５”までのそれぞれを、引数の値として求めたキー値が、“１５”、“５”、“６”及び“１４”であった場合、“ｇ（０)、ｇ（１)、ｇ（２)、ｇ（３)＝ｇ（ｐ−１)”は、“５、６、１４、１５”である。
【０１２１】
次に、装置特定関数分散度算出部１２０は、求めた“ｇ（ｙ）”と“ｇ（ｙ＋１）”との差が最大である“ｙ”の特定値“Ｍ”（“Ｍ：＝ａｒｇ  ｍａｘ（｜ｇ（ｙ＋１）−ｇ（ｙ）｜）”  但し、“０≦ｙ＜ｐ−１”）を求める（Ｓ６２４）。
【０１２２】
例えば、“ｇ（０)、ｇ（１)、ｇ（２)、ｇ（３)”が“５、６、１４、１５”である場合、“Ｍ”となる“ｙ”は、“２”である。
【０１２３】
次に、装置特定関数分散度算出部１２０は、式３に示すように、平均値“ＡＶＥ（ｆｐ）”を算出する（Ｓ６２６）。尚、本実施形態のキー値は、最小値の“０”、最大値の“ｆｍａｘ”を満たす整数値（キー空間）を循環しているとみなすことができる。装置特定関数分散度算出部１２０は、式３を用いて、平均値を算出する。この平均値は、“ｇ（ｙ＋１）”同士が近い側に位置するように算出された平均値であり、キー空間の近距離側の平均値とも呼ばれる。
【０１２４】
【数３】
2013101446.tif 000005
【０１２５】
例えば、“ｇ（０)、ｇ（１)、ｇ（２)、ｇ（３)”が“５、６、１４、１５”である場合、式３により求めた平均値“ＡＶＥ（ｆｐ）”は、“１８”である。
【０１２６】
次に、装置特定関数分散度算出部１２０は、式４に示すように、分散“σｐ2”を算出し、保持する（Ｓ６２８）。
【０１２７】
【数４】
2013101446.tif 000006
【０１２８】
例えば、“ｇ（０)、ｇ（１)、ｇ（２)、ｇ（３)”が“５、６、１４、１５”である場合、式４により求めた分散“σｐ２”は、“１２．５”である。
【０１２９】
次に、装置特定関数分散度算出部１２０は、上式から求めた分散“σｐ２”を用いて、分散の平均である分散度“ｓｐ２”を算出し、保持する（Ｓ６３０）。
【０１３０】
ここで、分散度“ｓｐ２”について説明する。
【０１３１】
例えば、“ｐ”を“４”とした場合、連続する４個の引数“ν０〜νｐ−１”は、“０〜３”、“１〜４”、“２〜５”、“３〜６”、・・・及び“１５〜２（１５、０、１、２）”の１６組である。
【０１３２】
分散度“ｓｐ２”は、これらの“ν０〜νｐ−１”それぞれについて、上述のようにして求めた分散の“（σｐ２）ｑ”の平均である。ここで、“ｑ”は、“１”から引数の数（ここでは、“１６”）までの整数値、即ち、何個目の引数から連続するｐ個の引数を取るかを示す値である。
【０１３３】
例えば、“ｐ”を“４”とした場合、分散度“ｓｐ２”は、“１４．３７５”である。
【０１３４】
次に、“ｐ”がどのような値を取るかについて説明する。
【０１３５】
例えば、装置特定関数の引数となりうる値の範囲“Ｖｍｉｎ〜Ｖｍａｘ”に含まれる値が“Ｎ”個あるとすると、“Ｖｍｉｎ〜Ｖｍａｘ”に含まれる値から、連続した任意の“ｐ”個の値の“ν０〜νｐ−１”を取る場合の“ｐ”は、Ｎ通り（１〜Ｎ）となる。即ち、“ｐ”が“１”の場合、引数は“ν０”であり、“ｐ”が“２”の場合、引数は“ν０〜ν１”であり、“ｐ”が“３”の場合、引数は“ν０〜ν２”である。以後も同様で、例えば“ｐ”が“Ｎ”の場合、引数は“ν０〜νＮ−１”である。
【０１３６】
このＮ通りのそれぞれの場合における分散の“（σｐ２）ｑ”の平均それぞれは、このＮ通りの各場合の、分散の平均である分散度“ｓｐ２”である。
【０１３７】
装置特定関数分散度算出部１２０は、“ｐ”が“１”から“Ｎ”までの各場合の分散の平均“ｓ１２，ｓ２２，・・・ｓＮ２”を求める。
【０１３８】
図６は、装置特定関数分散度算出部１２０が分散度を保持する分散度保持テーブル６１０の一例を示す図である。図６に示すように、分散度保持テーブル６１０は、“ｆ０（ν）”、“ｆ１（ν）”、“ｆ２（ν）”及び“ｆ３（ν）”それぞれの分散度（“ｓ１２”〜“ｓ１６２”）を含む。
【０１３９】
次に、装置特定関数決定部１３０は、Ｓ６４０からＳ６４４の処理により、装置特定関数分散度算出部１２０が保持している分散度と初期情報とに基づいて、装置特定関数を一意に決定する。
【０１４０】
初期情報は、上述したように、イベント処理システム５００に対するイベント入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比、“ｆｍａｘ”及びイベント処理システム５００に含まれる分散処理装置数“Ｕ”を含む。
【０１４１】
まず、装置特定関数決定部１３０は、イベント入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比から、比の値“ｐｆ＝ｅｆ／ｒｆ”を算出する（Ｓ６４０）。
【０１４２】
次に、装置特定関数決定部１３０は、分散度の“ｓ２２”と、上記の“ｐｆ”と、を比較し、差が最も小さい装置特定関数を選択する（Ｓ６４２）。
【０１４３】
尚、この処理は、元々近い（隣接する）イベントデータが、適切に離れた分担キーを割り当てられた分散処理装置１００−１０３に配送されるような装置特定関数を選択する処理である。
【０１４４】
まず、分散の平均の“ｓ２２”は、連続する２つのイベントデータが装置特定関数による変換後のキー空間でどれだけ離れているかを示す。即ち、隣接するイベントデータの配送先を特定するキー値は、“ｓ２２”が大きければ大きいほど、遠くに分散する。
【０１４５】
一方、“ｐｆ”は、イベント条件の更新に対して、イベントデータの発生がどのぐらい多いかを示す。イベントデータの発生が多ければ多いほど（“ｐｆ”が大きければ大きいほど)、大きく分散するほうがよい。即ち、“ｐｆ”は、適切な分散の大きさを示す値である。
【０１４６】
従って、分散の平均の“ｓ２２”と“ｐｆ”との差が最も小さくなる装置特定関数を選択することは、元々近い（隣接する）イベントデータが、適切に離れた分担キーを割り当てられた分散処理装置１００−１０３に配送されるような装置特定関数を選択することである。
【０１４７】
次に、装置特定関数決定部１３０は、“ｓ２２”と“ｐｆ”との差が最も小さくなる装置特定関数が複数ある場合、“ｓ３２”（引数が３個の場合の分散度）以降がより小さい装置特定関数を選択する（Ｓ６４４）。
【０１４８】
尚、この処理は、元々広い範囲を指定するイベント条件が、より少ない分散処理装置１００−１０３に配送されるような装置特定関数を選択する処理である。
【０１４９】
例えば、分散の平均の“ｓ９２”は、イベント条件に含まれる範囲（９個の引数で特定される範囲）の指定が、装置特定関数による変換後のキー空間でどれだけ離れているかを示す。例えば分散の平均の“ｓ９２”が小さい装置特定関数は、“ｓ９２”が大きい装置特定関数に比べて、分散が小さい。
【０１５０】
従って、Ｓ６４２で選択された装置特定関数の内から、“ｓ２２”以降がより小さい装置特定関数を選択することは、元々広い範囲を指定するイベント条件が、より少ない分散処理装置１００−１０３に配送されるような装置特定関数を選択することである。
【０１５１】
具体的には、装置特定関数決定部１３０は、分散度に基づいて、分散処理装置数の“Ｕ”を用いて、Ｓ６４２で選択した装置特定関数のうち、式５に示す条件を満たす“ｌ”が最も小さい装置特定関数を選択する。式５に示す条件を満たす“ｌ”が最も小さい装置特定関数は、予め定められた閾値以下の分散度“ｓｐ２”が、２以上で最も少ない数の引数において出現する装置特定関数である。
【０１５２】
【数５】
2013101446.tif 000007
【０１５３】
更に、“ｌ”が最も小さい装置特定関数が複数ある場合、装置特定関数決定部１３０は、その“ｓｌ２”が最も小さい装置特定関数を選択する。また、“ｓｌ２”が最も小さい装置特定関数が複数ある場合は、装置特定関数決定部１３０は、“ｓｌ＋１２”が最も小さい装置特定関数を選択する。装置特定関数決定部１３０は、この動作を、全ての“ｓｐ２”が同じであると判定するまで継続する。全ての“ｓｐ２”が同じであると判定した場合、装置特定関数決定部１３０は、予められた基準（例えば、装置特定関数保持部１１０における格納順）に従って、装置特定関数を選択する。
【０１５４】
次に、装置特定関数決定部１３０は、選択した装置特定関数を、分散処理装置１００−１０３のイベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０へ通知する（Ｓ６４６）。
【０１５５】
次に、具体的な数値を示して、分散処理装置１００の動作の例を説明する。
【０１５６】
装置特定関数保持部１１０は、装置特定関数入力装置５１０から、式６〜式９に示すような装置特定関数の“ｆ０（ν)”、“ｆ１（ν)”、“ｆ２（ν)”及び“ｆ３（ν)”を取得し、それらを保持する。尚、式６〜式９において、
“ν＝１６・ｈ／２４  （ｈは、時刻“時：分：秒”の内の“時”）”である。
【０１５７】
【数６】
2013101446.tif 000008
【０１５８】
【数７】
2013101446.tif 000009
【０１５９】
【数８】
2013101446.tif 000010
【０１６０】
【数９】
2013101446.tif 000011
【０１６１】
装置特定関数分散度算出部１２０は、装置特定関数ごとに分散度を算出し、例えば、図６に示すように分散度保持テーブル６１０に保持する。
【０１６２】
装置特定関数決定部１３０は、記憶部１０７１から、イベントデータ入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比“ｅｆ：ｒｆ＝１５７：１６”、及び分散処理装置数“Ｕ”の“４”を取得する。
【０１６３】
装置特定関数決定部１３０は、取得した情報に基づいて、“ｐｆ＝ｅｆ／ｒｆ＝９．８１２５”を算出する。装置特定関数決定部１３０は、算出した“ｐｆ”と、分散度保持テーブル６１０に保持されている分散度から求めた“ｓ２２”の値と、が近い装置特定関数を選択する。ここでは、４つ装置特定関数のうち、“ｆ０（ν)”の“ｓ２２（１３．３７５）”と“ｆ１（ν)”の“ｓ２２（６．２５）”とは、“ｐｆ”との差が等しい。従って、装置特定関数決定部１３０は、“ｆ０（ν)”と“ｆ１（ν)”とを選択する。
【０１６４】
次に、装置特定関数決定部１３０は、“ｆ０（ν)”と“ｆ１（ν)”とについて、各“ｓｐ2”について、式１０の値を算出し、式５を満たす“ｌ”を決定する。
【０１６５】
【数１０】
2013101446.tif 000012
【０１６６】
図７は、装置特定関数決定部１３０の図示しない記憶手段に保持された、“ｈ（ｌ）”の算出結果の一例である。図７に示すように、“ｈ０（ｌ）”及び“ｈ１（ｌ）”それぞれは、“ｆ０（ν)”及び“ｆ１（ν)”それぞれに対応する式１０の値である。
【０１６７】
図７に示す算出結果の場合、装置特定関数決定部１３０は、式５を満たす値の“ｌ”として、“ｆ０（ν)”について“４”を、“ｆ１（ν)”について“４”を、決定する。
【０１６８】
次に、装置特定関数決定部１３０は、“ｌ”が“４”である式１０の値が小さいほうの“ｆ０（ν)”を選択する。
【０１６９】
次に、装置特定関数決定部１３０は、選択した装置特定関数“ｆ０（ν)”をイベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０へ通知する。
【０１７０】
以上が、分散処理装置１００における装置特定関数の選択と通知の動作の説明である。
【０１７１】
次に上述のようにして通知された装置特定関数を用いて、イベント処理システム５００がイベント条件及びイベントデータを受け取った場合の動作について説明する。
【０１７２】
以下の説明において、イベント処理システム５００は、４台の分散処理装置１００−１０３を含むものとする。また、キー値の最大値“ｆｍａｘ”は“１５”であるものとする。
【０１７３】
前述したように、４台の分散処理装置１００−１０３それぞれは、割り当てられた分担キーと紐付けられている。そして、イベントデータ配信先装置特定部１４０は、イベントデータに基づいて算出したキー値と各分散処理装置１００−１０３に紐付けられている分担キーとを比較することによって、イベントデータを配布する先の分散処理装置１００−１０３を特定する。同様に、イベント条件配置先装置特定部１５０は、イベント条件に基づいて算出したキー値と各分散処理装置１００−１０３に紐付けられている分担キーとを比較することによって、イベント条件を配布する先の分散処理装置１００−１０３を特定する。
【０１７４】
ここでは、４台の分散処理装置１００−１０３それぞれは、分担キー“０〜３”、“４〜７”、“８〜１１”及び“１２〜１５”それぞれと紐付けられている。従って、イベントデータ配信先装置特定部１４０及びイベント条件配置先装置特定部１５０それぞれは、キー値が“０”〜“３”ならば分散処理装置１００、キー値が“４”〜“７”ならば分散処理装置１０１、キー値が“８”〜“１１”ならば分散処理装置１０２、キー値が“１２”〜“１５”ならば分散処理装置１０３を特定する。
【０１７５】
まず、イベント条件入力装置５４０により、イベント処理システム５００へイベント条件が入力された場合を説明する。
分散処理装置１００−１０３の内のいずれかが、入力されたイベント条件（例えば、“２０１１年２月２８日９：００から２０１１年２月２８日１３：００”）を受け取る。
【０１７６】
次に、そのイベント条件を受け取った分散処理装置１００−１０３のイベント条件配置先装置特定部１５０は、“２０１１年２月２８日９：００から２０１１年２月２８日１３：００”に基づいて、引数となる値を決定する。この場合、そのイベント条件配置先装置特定部１５０は、“００：００”から“２３：５９”までを１６分割して、“０”から“１６”に変換した値を取得する。即ち、そのイベント条件配置先装置特定部１５０は、“９：００”から“１０：２９”までについて“６”を、“１０：３０”から“１１：５９”までについて“７”を、“１２：００”から“１３：００”までについて“８”を、引数となる値として決定する。
【０１７７】
尚、イベント条件配置先装置特定部１５０は、“００：００”から“２３：５９”までを２４分割して、“０”から“２３”に変換した値を取得するようにしてもよい。この場合、そのイベント条件配置先装置特定部１５０は、“９：００”から“９：５９”までについて“９”を、“１０：００”から“１０：５９”までについて“１０”を、以後も同様に、引数となる値として決定する。
【０１７８】
次に、そのイベント条件配置先装置特定部１５０は、取得した値の“６”、“７”及び“８”それぞれを引数とし、装置特定関数の“ｆ０（ν)”を使用してキー値の“ｆ０（６)”、“ｆ０（７)”及び“ｆ０（８)”を算出する。この場合、“ｆ０（６)”、“ｆ０（７)”及び“ｆ０（８)”は、“１３”、“４”、“１２”である。
【０１７９】
次に、そのイベント条件配置先装置特定部１５０は、“ｆ０（６)”、“ｆ０（７)”、“ｆ０（８)”（“１３”、“４”、“１２”）から、そのイベント条件を配送する先の分散処理装置として分散処理装置１０１及び分散処理装置１０３を特定する。
【０１８０】
次に、そのイベント条件配置先装置特定部１５０は、特定した分散処理装置１０１及び分散処理装置１０３にそのイベント条件を配送する。分散処理装置１０１及び分散処理装置１０３は、配送されたイベント条件を保持する。
【０１８１】
以上が、イベント条件入力装置５４０から、イベント処理システム５００へイベント条件が入力された場合の説明である。
【０１８２】
次に、イベントデータ入力装置５３０により、イベント処理システム５００へイベントデータが入力された場合を説明する。
【０１８３】
分散処理装置１００−１０３の内のいずれかが、入力されたイベントデータ（例えば、時間情報が“２０１１年２月２８日１０：２９”）を受け取る。
【０１８４】
次に、そのイベント条件を受け取った分散処理装置１００−１０３のイベントデータ配信先装置特定部１４０は、“２０１１年２月２８日１０：２９”に対応する、引数となる値を決定する。そのイベントデータ配信先装置特定部１４０は、“００：００”から“２３：５９”までを１６分割して、“０”から“１６”に変換した値を取得する。即ち、そのイベントデータ配信先装置特定部１４０は、“１０：２９”について“６”を、引数になる値として決定する。
【０１８５】
尚、イベント条件配置先装置特定部１５０が“００：００”から“２３：５９”までを２４分割して“０”から“２３”に変換した値を取得するようにした場合、イベントデータ配信先装置特定部１４０は、同様に、“００：００”から“２３：５９”までを２４分割して“０”から“２３”に変換した値を取得する。即ち、この場合、そのイベントデータ配信先装置特定部１４０は、“１０：２９”について“１０”を、引数になる値として決定する。
【０１８６】
次に、そのイベントデータ配信先装置特定部１４０は、決定した値の“６”を引数として、装置特定関数の“ｆ０（ν)”を使用してキー値の“ｆ０（６)”である“１３”を算出する。
【０１８７】
次に、そのイベントデータ配信先装置特定部１４０は、キー値の“１３”に基づいて、そのイベントデータを配送する先の分散処理装置１０３を特定する。
【０１８８】
次に、そのイベントデータ配信先装置特定部１４０は、特定した分散処理装置１０３にそのイベントデータを配送する。分散処理装置１０３は、配送されたイベントデータの合致判定処理を行う。
【０１８９】
同様に、分散処理装置１００−１０３の内のいずれかが、入力されたイベントデータ（例えば、時間情報が“２０１１年２月２８日１１：３０”）を受け取る。
【０１９０】
次に、そのイベント条件を受け取った分散処理装置１００−１０３のイベントデータ配信先装置特定部１４０は、“２０１１年２月２８日１１：３０”に対応する、引数となる値“７”を決定する。
【０１９１】
次に、そのイベントデータ配信先装置特定部１４０は、キー値の“ｆ０（７)”である“４”を算出し、算出したキー値の“４”に基づいて、そのイベントデータを配送する先の分散処理装置１０１を特定する。
【０１９２】
次に、そのイベントデータ配信先装置特定部１４０は、特定した分散処理装置１０１にそのイベントデータを配送する。分散処理装置１０１は、配送されたイベントデータの合致判定処理を行う。
【０１９３】
以上が、イベントデータ入力装置５３０から、イベント処理システム５００へイベントデータが入力された場合の説明である。
【０１９４】
以上説明したように、装置特定関数が“ｆ０（ν)”の場合、イベント処理システム５００は、４時間の範囲指定をしたイベント条件を２台の分散処理装置で保持する。そして、イベント処理システム５００は、連続する１．５時間の範囲ごとに発生したイベントデータを２台の分散処理装置で処理する。
【０１９５】
これに対して、非特許文献１の負荷分散方法を用いるイベント処理システムは、例えば“２０１１年２月２８日９：００から２０１１年２月２８日１３：００”と指定するイベント条件を、６：００から１１：５９までと１２：００から１８：００までとを割り当てられた２台の分散処理で保持する。
【０１９６】
そして、例えば時間情報それぞれが“２０１１年２月２８日１０：２９”及び“２０１１年２月２８日１１：３０”（イベント条件で指定された時間の、最初の３時間に含まれる）の２つのイベントデータは同じ分散処理装置が処理する。即ち、これらのイベントデータの処理は、分散されない。
【０１９７】
また、装置特定関数決定部１３０において、ステップＳ６４４に示す動作を行わず、装置特定関数の“ｆ１（ν)”のほうが選択された場合、イベント条件配置先装置特定部１５０は、以下のように動作する。その同じイベント条件を受け取ったイベント条件配置先装置特定部１５０は、同じく“６”、“７”及び“８”それぞれを引数として、装置特定関数の“ｆ１（ν)”を使用してキー値の“ｆ０（６)”（“１４”）、“ｆ０（７)”（“３”）及び“ｆ０（８)”（“８”）を得る。
【０１９８】
次に、そのイベント条件配置先装置特定部１５０は、“ｆ０（６)”、“ｆ０（７)”、“ｆ０（８)”（“１４”、“３”、“８”）から、そのイベント条件を配送する先の分散処理装置として分散処理装置１００、分散処理装置１０２及び分散処理装置１０３を特定する。
【０１９９】
次に、そのイベント条件配置先装置特定部１５０は、特定した分散処理装置１００、分散処理装置１０２及び分散処理装置１０３に、そのイベント条件を配送する。
【０２００】
従って、このような場合、イベント条件を保持する先の分散処理装置１００−１０３が冗長となる場合がある。
【０２０１】
また、上述の実施形態の分散処理装置１００は、よりイベントデータの入力頻度が高い場合、より処理を分散させるような装置特定関数を選択する。
【０２０２】
例えば、初期情報として、イベントデータの入力頻度“ｅｆ”とイベント条件の更新頻度“ｒｆ”との比を“ｅｆ：ｒｆ＝１４４：１６”とすると、分散処理装置１００は、装置特定関数“ｆ１（ν)”を選択する。
【０２０３】
この場合、装置特定関数“ｆ０（ν)”を選択した場合に比べ、イベント条件を保持する先の分散処理装置数は増加する。しかし、同時にイベントデータの処理は、より多くの分散処理装置に分散される。
【０２０４】
逆に、上述の実施形態の分散処理装置１００は、よりイベント条件の更新頻度が高い場合、よりイベント条件を集約させるような装置特定関数を選択する。
例えば、初期情報として、イベントデータの入力頻度“ｅｆ”とイベント条件の更新頻度“ｒｆ”との比を“ｅｆ：ｒｆ＝１５６：３２”とすると、分散処理装置１００は、装置特定関数“ｆ２（ν)”を選択する。
【０２０５】
この場合、装置特定関数“ｆ０（ν)”を選択した場合に比べ、イベントデータの処理は、より少ない分散処理装置に集約される。しかし、同時にイベント条件を保持する先の分散処理装置数は減少する。
【０２０６】
上述した本実施形態における第１の効果は、各ユースケースにおけるイベント条件の更新頻度に対するイベントデータの発生頻度の割合の、高さに適応して、イベントデータの処理を各分散処理装置へ分散させる装置特定関数を選択することが可能になる点である。
【０２０７】
その理由は、以下のような構成を含むからである。即ち、第１に装置特定関数分散度算出部１２０が、装置特定関数ごとの、連続する引数の数ごとの、分散の平均である分散度を算出する。第２に、装置特定関数決定部１３０が連続する２つの引数の対応するキー値の分散度と、イベントデータ入力頻度“ｅｆ”及びイベント条件更新頻度“ｒｆ”の比とが最も近い、装置特定関数を選択する。
【０２０８】
上述した本実施形態における第２の効果は、連続する２つの引数の分散の平均と、イベントデータ入力頻度“ｅｆ”及びイベント条件更新頻度“ｒｆ”の比とが最も近い、装置特定関数が複数ある場合、イベント条件をより少ない分散処理装置に配置するようにさせる装置特定関数を選択することが可能になる点である。
【０２０９】
その理由は、装置特定関数決定部１３０が、上述の複数の装置特定関数の内、連続する３つ以上の引数の分散の平均が相対的に小さい、装置特定関数を選択するようにしたからである。
【０２１０】
上述のように、分散処理装置１００は、イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適応して、イベントデータ及びイベント条件を配送する先の分散処理装置を決定する装置特定関数を選択する。
【０２１１】
即ち、本実施形態は、イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適した分散処理装置特定方法を選択することを可能にするという効果がある。
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０２１２】
図８は、本発明の第２の実施形態に係る分散処理装置２００の構成を示すブロック図である。図８を参照すると、本実施形態における分散処理装置２００は、第１の実施形態の分散処理装置１００比べて、入力頻度観測部２７０を更に含む。
【０２１３】
入力頻度観測部２７０は、イベントデータの入力回数とイベント条件の入力回数とからイベントデータの発生頻度とイベント条件の更新頻度との比を算出し、この算出した比を例えば記憶装置１０７２に記録する。そして、分散処理装置２００は、装置特定関数の選択する処理において、この記録した比を初期情報（イベント入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比）として使用する。
【０２１４】
入力頻度観測部２７０は、イベントデータ用のカウンタと、イベント条件用のカウンタを含む。そして、入力頻度観測部２７０は、それぞれのカウンタのカウント値に基づいて、単位時間当たりのイベントデータの発生頻度及びイベント条件の更新頻度を算出する。例えば、入力頻度観測部２７０は、分散処理装置２００に対してイベントデータが１秒間に１００回入力された場合、イベントデータの発生頻度が１００回／秒であることを算出する。
【０２１５】
そして、入力頻度観測部２７０は、イベントデータの発生頻度とイベント条件の更新頻度との比を算出する。
【０２１６】
分散処理装置２００の入力頻度観測部２７０は、他の分散処理装置からイベントデータ及びイベント条件それぞれの入力頻度を取得する手段を有していてもよい。この場合、入力頻度観測部２７０は、分散処理装置２００における入力頻度と他の分散処理装置における入力頻度とを合算し、イベントデータの発生頻度とイベント条件の更新頻度との比を算出するようにしてもよい。
【０２１７】
上述した本実施形態における効果は、第１の実施形態の効果に加え、装置特定関数の特定において使用する、イベントデータ入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比を、現実のユースケースに即して得ることを可能にする点である。
【０２１８】
その理由は、入力頻度観測部２７０が、分散処理装置２００に入力されるイベントデータとイベント条件との入力回数を測定し、測定した入力回数に基づいて、イベントデータ入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比を算出するようにしたからである。
【０２１９】
例えば、第１の実施形態において、イベント処理システム５００の運用を開始したところ、初期情報として入力したイベントデータ発生頻度とイベント条件の更新頻度の比が、実際の入力頻度と大きく異なっている場合がある。このような場合、ユースケースに適していない装置特定関数を使用している可能性がある。
【０２２０】
これに対し、本実施形態は、入力頻度観測部２７０が算出したイベントデータ入力頻度“ｅｆ”とイベント条件更新頻度“ｒｆ”との比に基づいて、ユースケースに適した装置特定関数を選択することができる。
［第３の実施形態］
次に、本発明の第３の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【０２２１】
図９は、本発明の第３の実施形態の分散処理装置３００の構成を示すブロック図である。
【０２２２】
図９を参照すると、本実施形態に係る分散処理装置３００は、装置特定関数保持部１１０と装置特定関数分散度算出部１２０と装置特定関数決定部１３０とを含む。
【０２２３】
装置特定関数保持部１１０は、与えられた引数に対して特定のキー空間のキー値を返す装置特定関数を複数保持する。
【０２２４】
装置特定関数分散度算出部１２０は、装置特定関数保持部１１０が保持する装置特定関数それぞれについて、複数の特定の引数に対するキー値の分散を算出する。続けて、装置特定関数分散度算出部１２０は、算出した分散に基づいて、それらの装置特定関数の分散度を算出し、出力する。
【０２２５】
装置特定関数決定部１３０は、イベントデータの入力頻度とイベント条件の入力頻度との比とから、比の値を算出する。続けて、装置特定関数決定部１３０は、それらの装置特定関数の内から、算出した比の値と、装置特定関数分散度算出部１２０が算出した分散度とに基づいて、いずれか１つの装置特定関数を選択し、出力する。
【０２２６】
上述した本実施形態における効果は、イベントデータの発生頻度やイベント条件の更新頻度などが異なる、それぞれのユースケースに適した分散処理装置特定方法を選択することを可能にする点である。
【０２２７】
その理由は、装置特定関数分散度算出部１２０が各装置特定関数の分散度を算出し、装置特定関数決定部１３０が、イベントデータの入力頻度とイベント条件の入力頻度との比と、各装置特定関数の分散度とに基づいて、それらの装置特定関数の内のいずれか１つを選択するようにしたからである。
【０２２８】
以上、各実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。
【０２２９】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が１個のモジュールとして実現されたり、１つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【０２３０】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ可能であれば、ハードウェア的に実現されても良いし、コンピュータ及びプログラムで実現されても良いし、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されても良い。プログラムは、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【０２３１】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【０２３２】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【０２３３】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【符号の説明】
【０２３４】
１００    分散処理装置
１０１    分散処理装置
１０２    分散処理装置
１０３    分散処理装置
１１０    装置特定関数保持部
１２０    装置特定関数分散度算出部
１３０    装置特定関数決定部
１４０    イベントデータ配信先装置特定部
１５０    イベント条件配置先装置特定部
１６０    合致判定処理部
２００    分散処理装置
２７０    入力頻度観測部
５００    イベント処理システム
５１０    装置特定関数入力装置
５２０    初期情報入力装置
５３０    イベントデータ入力装置
５４０    イベント条件入力装置
５５０    通知情報受信装置
５９０    ネットワーク
６１０    分散度保持テーブル
１０７０    ＣＰＵ
１０７１    記憶部
１０７２    記憶装置
１０７３    入力部
１０７３    入力装置
１０７４    出力部
１０７５    通信部
【図１】
2013101446.tif 000013
【図２】
2013101446.tif 000014
【図３】
2013101446.tif 000015
【図４】
2013101446.tif 000016
【図５】
2013101446.tif 000017
【図６】
2013101446.tif 000018
【図７】
2013101446.tif 000019
【図８】
2013101446.tif 000020
【図９】
2013101446.tif 000021