(57)【要約】イベント処理システムにおいて、適切な負荷分散を実現する負荷分散装置等を提供する。負荷分散装置は、振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況を取得する取得手段と、受信状況に基づいて、振り分け装置がイベント生成源から処理装置へとイベントを転送する際に振り分け装置にかかる負荷が、複数の振り分け装置の間で平準化されるように、送信先決定ルールを更新する更新手段を備える。
2014199606.tif 000002
【特許請求の範囲】
【請求項１】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続され、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、
を備える負荷分散装置。
【請求項２】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて前記負荷を算出する算出手段を更に備え、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項１に記載の負荷分散装置。
【請求項３】
前記受信状況は、前記振り分け装置が所定期間内に受信するイベントの、数量を表す情報および情報サイズを表す情報を含み、
前記送信状況は、前記振り分け装置が所定期間内に送信するイベントの、情報サイズを表す情報を含み、
前記算出手段は、
前記受信したイベントの情報サイズに、情報を受信する際に前記振り分け装置にかかる単位情報サイズあたりの負荷を乗じた値と、
前記受信したイベントの数量に、前記イベントと前記振り分けルールとのマッチングの際に前記振り分け装置にかかるイベント１つ当たりの負荷を乗じた値と、
前記送信したイベントの情報サイズに、情報を送信する際に前記振り分け装置にかかる単位情報サイズあたりの負荷を乗じた値と、
の和に基づいて、前記振り分け装置がイベントを転送する際に前記振り分け装置にかかる負荷を算出する、
請求項２に記載の負荷分散装置。
【請求項４】
前記イベント処理システムは、複数の前記イベント送信源を含み、
前記システムに含まれるイベント送信源は、イベントを生成し、前記生成したイベントを振り分け装置に送信し、
前記送信先決定ルールは、前記イベント送信源ごとにあらかじめ送信先の振り分け装置が関連づけされたルールであり、
前記システムに含まれる振り分け装置は、一つまたは複数の前記イベント送信源からイベントを受信し、
前記受信状況は、前記複数のイベント送信源のうち特定のイベント送信源から前記振り分け装置が所定期間内に受信するイベントの受信状況であり、
前記送信状況は、前記複数のイベント送信源のうち特定のイベント送信源から前記振り分け装置が所定期間内に受信し前記処理装置に送信したイベントの送信状況である、請求項１に記載の負荷分散装置。
【請求項５】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて、前記特定のイベント送信源から所定期間内に受信するイベントを前記処理装置に転送する際に、前記の振り分け装置に発生する負荷を算出する算出手段を更に備え、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項４に記載の負荷分散装置。
【請求項６】
前記送信先決定ルールは、送信するイベントの内容と送信先の振り分け装置とが関連づけされたルールであり、
前記受信状況は、前記振り分け装置が所定期間内に受信した、特定の内容のイベントの受信状況であり、
前記送信状況は、前記振り分け装置が所定期間内に送信した、前記特定の内容のイベントの送信状況である、
請求項１に記載の負荷分散装置。
【請求項７】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて、前記イベント送信源から所定期間内に受信する特定の内容のイベントを前記処理装置に転送する際に、前記振り分け装置に発生する負荷を算出し、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項６に記載の負荷分散装置。
【請求項８】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続されるコンピュータが、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得し、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する、
負荷分散方法。
【請求項９】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続されるコンピュータに、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する処理と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する処理と
を実行させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源とを含み、更に、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、
を備える負荷分散装置を含む、
イベント処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント処理システムにおいて用いられる負荷分散装置、負荷分散方法および記憶媒体ならびにイベント処理システム等に関する。
【背景技術】
【０００２】
近年では、大量のセンサーが、通信ネットワーク（以下、「ネットワーク」と記載）に接続されている。これらセンサーは、例えば電力消費量、交通情報、気温、株価の変動または位置情報など、様々な情報（イベント）を収集する。【０００３】
また、近年では、大量のアプリケーションが、ネットワークに接続されている。これらアプリケーションは、ネットワークを介して、オペレータから、または、外部装置からの操作を受け付ける。【０００４】
このような背景に基づいて、M2M (Machine to Machine)という技術が注目を集めている。M2Mという技術によれば、アプリケーションは、センサーが収集したイベントをネットワークを介して受信する。そして、アプリケーションは、受信したイベントに基づいて状況を判断したり、処理を実行したりする。このようにM2Mという技術によれば、アプリケーションは、センサーが収集したイベントに基づいて人手を介することなく自律的に制御される。【０００５】
通信ネットワークに接続されるセンサーの数量の増加に伴い、M2Mサービスは、今後更に大規模化することが予想される。そのため、サービスの大規模化に対応可能なイベント処理システムが求められる。【０００６】
特許文献１は、イベント処理システムの一例を開示する。図３３は、特許文献１が開示するイベント処理システムの概要を示す図である。【０００７】
図３３に示すように、特許文献１が開示するイベント処理システムは、アプリケーション（ＡＰ）５０００と、処理サーバ４０００と、コンテキスト依存振り分け器３０００と、デバイス２０００と、イベント処理分散制御装置６０００と、コンテキスト非依存振り分け器７０００と、を含む。【０００８】
処理サーバ４０００は、コンテキスト依存振り分け器３０００からイベントを受信し、受信したイベントを処理し、アプリケーション５０００にイベントの処理結果を通知する。コンテキスト依存振り分け器３０００は、デバイス２０００が生成したイベントを処理サーバ４０００に振り分ける。デバイス２０００は、イベントを生成する。【０００９】
イベント処理分散制御装置６０００は、アプリケーション５０００からの要求に基づき以下の処理を行う。すなわちイベント処理分散制御装置６０００は、イベントの内容（コンテキスト）に基づく処理を示す処理ルールを、処理サーバ４０００に設定する。イベント処理分散制御装置６０００は、更に、処理ルールを実行するために必要なイベントが、処理サーバ４０００に適切に分配されるように、振り分けルールをコンテキスト依存振り分け器３０００に設定する。【００１０】
コンテキスト依存振り分け器３０００には、イベント処理分散制御装置６０００により、振り分けルールがあらかじめ設定されている。コンテキスト依存振り分け器３０００は、イベントを受信する。そして、コンテキスト依存振り分け器３０００は、受信したイベントの内容（コンテキスト）と振り分けルールとに基づいて、受信したイベントを、複数の処理サーバ４０００のうちいずれの処理サーバ４０００に転送するかを決定する。【００１１】
処理サーバ４０００には、イベント処理分散制御装置６０００により、処理ルールが、あらかじめ設定されている。処理サーバ４０００は、転送されたイベントを、処理ルールに基づいて処理し、イベント処理結果をアプリケーション５０００に送信する。【００１２】
特許文献１が開示するコンテキスト非依存振り分け器７０００は、複数のコンテキスト依存振り分け器３０００の間で負荷分散を実現するための構成である。コンテキスト非依存振り分け器７０００は、デバイス２０００からイベントを受信し、コンテキスト依存振り分け器３０００に受信したイベントをランダムに転送する。このように、デバイス２０００とコンテキスト依存振り分け器３０００との間にコンテキスト非依存振り分け器７０００が介在することにより、コンテキスト依存振り分け器３０００が受信するイベントの数量が平準化される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特許第４１６１９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
コンテキスト依存振り分け器３０００が受信するイベントの数量が平準化されたとしても、コンテキスト依存振り分け器３０００の負荷分散が適切になされない場合がある。コンテキスト非依存振り分け器７０００は、イベント処理システムにおいて、精度の高い負荷分散を実現することができない。【００１５】
本発明は、イベント処理システムにおいて、精度の高い負荷分散を実現することが可能な、負荷分散装置、負荷分散方法および記憶媒体等を提供することを主たる目的とする。【００１６】
また、本発明は、精度の高い負荷分散を実現可能なイベント処理システム等を提供することを主たる目的とする。
【課題を解決するための手段】
【００１７】
本発明の第１の側面は、イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、を含むシステムと通信可能に接続され、前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、を備える負荷分散装置である。【００１８】
本発明の第２の側面は、イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、を含むシステムと通信可能に接続されるコンピュータが、前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得し、前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する、負荷分散方法である。【００１９】
本発明の第３の側面は、イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、を含むシステムと通信可能に接続されるコンピュータに、前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する処理と、前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する処理とを実行させるプログラムを記録したコンピュータ読み取り可能な記憶媒体である。【００２０】
本発明の第４の側面は、イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源とを含み、更に、前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、を備える負荷分散装置を含む、イベント処理システムである。【００２１】
また、本発明の目的は、上記のプログラムが格納されたコンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００２２】
本発明によれば、イベント処理システムにおいて、精度の高い負荷分散を実現することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態にかかるイベント処理システム１０００の構成を示す図である。
【図２】本発明の第１の実施形態にかかる送信先決定ルールの一例を説明する図である。
【図３】本発明の第１の実施形態にかかるイベント送信源２００の構成を示す図である。
【図４】本発明の第１の実施形態にかかる振り分け装置３０２の構成を示す図である。
【図５】本発明の第１の実施形態にかかる振り分けルールの一例を説明する図である。
【図６】本発明の第１の実施形態にかかる転送状況の一例を説明する図である。
【図７】本発明の第１の実施形態にかかる処理装置４００の構成を示す図である。
【図８】本発明の第１の実施形態にかかる負荷分散装置１００の構成を示す図である。
【図９】本発明の第１の実施形態にかかるフローテーブル記憶部１２０が記憶する情報の一例を示す図である。
【図１０】本発明の第１の実施形態にかかる負荷情報の一例を説明する図である。
【図１１】本発明の第１の実施形態にかかる更新された送信先決定ルールの一例を説明する図である。
【図１２】本発明の第１の実施形態にかかる負荷調整後の負荷情報の一例を説明する図である。
【図１３】本発明の第１の実施形態にかかる負荷分散装置１００のＨＷ（Ｈａｒｄｗａｒｅ）構成の一例を示す図である。
【図１４】本発明の第１の実施形態にかかる負荷分散装置１００の動作の一例を説明するフローチャートである。
【図１５】本発明の第１の実施形態にかかる算出部１３０の動作を説明するフローチャートである。
【図１６】本発明の第１の実施形態にかかる更新部１４０の動作を説明するフローチャートである。
【図１７】本発明の第２の実施形態にかかるイベント処理システム１００１の構成を示す図である。
【図１８】本発明の第２の実施形態にかかる負荷分散装置１０１の構成を示す図である。
【図１９】本発明の第２の実施形態にかかるイベント送信源２０１の構成を示す図である。
【図２０】本発明の第３の実施形態にかかるイベント処理システム１００２の構成を示す図である。
【図２１】本発明の第３の実施形態にかかるイベント送信源２０２の構成を示す図である。
【図２２】本発明の第３の実施形態にかかる送信先決定ルールの一例を説明する図である。
【図２３】本発明の第３の実施形態にかかる振り分け装置３０２の構成を示す図である。
【図２４】本発明の第３の実施形態にかかる転送状況の一例を説明する図である。
【図２５】本発明の第３の実施形態にかかる負荷分散装置１０２の構成を示す図である。
【図２６】本発明の第３の実施形態にかかるフローテーブル記憶部１２０が記憶する情報の一例を示す図である。
【図２７】本発明の第３の実施形態にかかる算出部１３２の動作を説明するフローチャートである。
【図２８】本発明の第３の実施形態にかかるフローテーブル記憶部１２０が記憶する情報の一例を示す図である。
【図２９】本発明の第３の実施形態にかかる更新部１４２の動作を説明するフローチャートである。
【図３０】本発明の第３の実施形態にかかる更新後の送信先決定ルールの一例を説明する図である。
【図３１】本発明の第３の実施形態にかかるフローテーブル記憶部１２０が記憶する情報の一例を示す図である。
【図３２】本発明の第４の実施形態にかかるイベント処理システム１００３の構成を示す図である。
【図３３】特許文献１が開示するイベント処理システムの概要を説明する図である。
【発明を実施するための形態】
【００２４】
＜第１の実施形態＞
第１の実施形態にかかる負荷分散装置１００について、図面を参照して詳細に説明する。
【００２５】
図１は、負荷分散装置１００を含むイベント処理システム１０００の構成を示すブロック図である。図１に示すように、イベント処理システム１０００は、複数のイベント送信源２００と、複数の振り分け装置３００と、複数の処理装置４００と、複数のアプリケーション（ＡＰ）５００と、ルール設定装置６００と、負荷分散装置１００と、を含む。
【００２６】
以下、複数のイベント送信源２００を互いに区別する必要がある場合は、イベント送信源２００Ａ、イベント送信源２００Ｂ・・・と記載する。同様に、複数の振り分け装置３００を互いに区別する必要がある場合は、振り分け装置３００Ａ、振り分け装置３００Ｂ…と記載する。そして、複数の処理装置４００を互いに区別する必要がある場合は、処理装置４００Ａ、処理装置４００Ｂ・・・と記載する。以下、複数のアプリケーション５００を互いに区別する必要がある場合は、アプリケーション５００Ａ、アプリケーション５００Ｂ・・・と記載する。
【００２７】
イベント送信源２００の数（すなわち数量）、振り分け装置３００の数、処理装置４００の数およびアプリケーション５００の数は、図１に示した数には限定されない。イベント送信源２００の数、振り分け装置３００の数、処理装置４００の数およびアプリケーション５００の数の大小関係は、図１に示した関係には限定されない。
【００２８】
イベント送信源２００は、イベントを生成する。イベントは、例えば、当該イベントを生成したイベント送信源２００の識別子（ＩＤ）と、測定値とを含む情報である。イベント送信源２００は、生成したイベントを、振り分け装置３００に送信する。イベント送信源２００がイベントを送信する送信先の振り分け装置３００は、送信先決定ルールに基づいて、あらかじめ指定されている。
【００２９】
図２は、送信先決定ルールの一例を示す図である。図２には、送信先決定ルール１〜４が示されている。図２に示す送信先決定ルール１は、イベント送信源２００Ａが、振り分け装置３００Ａにイベントを送信することを示している。図２に示す送信先決定ルール２は、イベント送信源２００Ｂが、振り分け装置３００Ａにイベントを送信することを示している。図２に示す送信先決定ルール３は、イベント送信源２００Ｃが、振り分け装置３００Ａにイベントを送信することを示している。図２に示す送信先決定ルール４は、イベント送信源２００Ｄが、振り分け装置３００Ｂにイベントを送信することを示している。
【００３０】
第１の実施形態における送信先決定ルールは、各イベント送信源２００の間で必ずしも共有されている必要はない。各イベント送信源２００は、少なくとも自装置に関係する送信先決定ルールを参照できればよい。例えば、イベント送信源２００Ａは、自装置に関する送信先決定ルール１のみを参照できればよい。イベント送信源２００Ａは、他のイベント送信源２００に関する送信先決定ルール２〜４を参照可能である必要はない。
【００３１】
振り分け装置３００は、１つまたは複数のイベント送信源２００からイベントを受信する。図１に示す例では、例えば振り分け装置３００Ａは、イベント送信源２００Ａ、２００Ｂおよび２００Ｃからそれぞれイベントを受信する。振り分け装置３００は、イベント送信源２００から受信したイベントを処理装置４００に送信する。以下、この処理を「イベントの転送」と記載する。
【００３２】
振り分け装置３００には、ルール設定装置６００により、あらかじめ振り分けルールが設定されている。振り分け装置３００は、イベントを受信すると、振り分けルールを参照する。振り分け装置３００は、イベントの内容と振り分けルールとに基づいて、イベントを処理装置４００に送信するか否かを決定する。また、振り分け装置３００は、複数の処理装置４００のうちいずれの処理装置４００にイベントを送信するかを決定する。また、振り分け装置３００は、負荷分散装置１００に、転送状況を送信する。転送状況の詳細は後述する。
【００３３】
処理装置４００は、振り分け装置３００からイベントを受信する。処理装置４００には、ルール設定装置６００により、あらかじめ処理ルールが設定されている。処理装置４００は、イベントを受信すると、処理ルールを参照してイベントを処理する。処理装置４００は、イベント処理結果をアプリケーション５００に送信する。
【００３４】
アプリケーション５００は、処理装置４００からイベント処理結果を受信する。アプリケーション５００は、受信したイベント処理結果に基づいて、アプリケーションの利用者にサービスを提供する。アプリケーション５００は、所望のイベント処理結果が生成されるような処理ルールを作成する。アプリケーション５００は、処理ルールを、ルール設定装置６００に送信する。
【００３５】
ルール設定装置６００は、アプリケーション５００から処理ルールを受信する。ルール設定装置６００は、複数の処理装置４００の間の負荷が均等あるいは略均等になるように、かつ、同じイベント送信源２００が生成したイベントが同じ処理装置４００で処理されるように、処理ルールを処理装置４００に設定する。ルール設定装置６００は、処理ルールを実行するために必要なイベントが、当該処理を実行する処理装置４００に適切に分配されるように、振り分けルールを振り分け装置３００に設定する。ルール設定装置６００は、例えば特許文献１が開示する方法によって、処理ルールを設定するとともに振り分けルールを設定する。
【００３６】
負荷分散装置１００は、振り分け装置３００から、転送状況を受信する。転送状況の詳細は後述する。負荷分散装置１００は、受信した転送状況に基づいて、送信先決定ルールを更新する。すなわち、負荷分散装置１００は、転送状況に基づいて、どのイベント送信源２００が、どの振り分け装置３００にイベントを送信するかを決定する。負荷分散装置１００は、イベント送信源２００に、更新された送信先決定ルールを通知する。
【００３７】
図３は、図１に示すイベント送信源２００の構成を示すブロック図である。図３に示すように、イベント送信源２００は、センサー２１０と、送信先決定ルール記憶部２２０と、送信部２３０とを有する。
【００３８】
センサー２１０は、イベントを生成する。センサー２１０が生成するイベントには、例えば、電力消費量の値、交通情報、気温の値、株価の変動または位置情報などが含まれる。
【００３９】
送信先決定ルール記憶部２２０は、自装置に関係のある送信先決定ルールを記憶している。送信先決定ルール記憶部２２０は、送信先決定ルールとして、送信先決定ルールに基づいて決定される送信先である振り分け装置３００のアドレスを記憶していてもよい。例えば、イベント送信源２００Ａが有する送信先決定ルール記憶部２２０Ａは、図２に示す送信先決定ルール１を記憶している。送信先決定ルール記憶部２２０Ａは、送信先決定ルール１として、振り分け装置３００Ａのアドレスを記憶していてもよい。
【００４０】
送信部２３０は、送信先決定ルール記憶部２２０が記憶している送信先決定ルールに基づいて、振り分け装置３００にセンサー２１０が生成したイベントを送信する。
【００４１】
図４は、図１に示す振り分け装置３００の構成を示すブロック図である。図４に示すように、振り分け装置３００は、受信部３１０と、振り分けルール検索部３２０と、送信部３３０と、振り分けルール記憶部３４０と、フロー計測部３５０と、処理量計測部３６０と、処理量ウェイト計算部３７０と、を有する。
【００４２】
受信部３１０は、イベント送信源２００からイベントを受信する。
【００４３】
振り分けルール検索部３２０は、受信部３１０が受信したイベントと、振り分けルール記憶部３４０が記憶している振り分けルールとのマッチング処理を行う。振り分けルール検索部３２０は、マッチングの結果に基づいて、受信したイベントを破棄するか、あるいは、受信したイベントを処理装置４００に送信するかを判断する。振り分けルール検索部３２０は更に、マッチングの結果に基づいて、複数の処理装置４００のうち、いずれの処理装置４００にイベントを送信するかを判断する。
【００４４】
送信部３３０は、振り分けルール検索部３２０の判断に基づいて、受信部３１０が受信したイベントを処理装置４００に送信する。
【００４５】
振り分けルール記憶部３４０は、振り分けルールを記憶する。振り分けルール記憶部３４０に振り分けルールが記憶されることを、以下、「振り分けルールが設定される」と記載する。振り分けルールは、ルール設定装置６００により設定される。
【００４６】
図５は、振り分けルール記憶部３４０が記憶している振り分けルールの一例を示す図である。図５に示す例では、振り分けルール記憶部３４０は、振り分けルール１〜４を記憶している。
【００４７】
図５に示す振り分けルール１〜４によれば、振り分け装置３００が受信したイベントは、当該イベントに含まれる緯度と経度の値に応じて、処理装置４００Ａ〜Ｄのいずれかに転送される。
【００４８】
振り分けルール検索部３２０は、イベントにマッチングする振り分けルールを検索できなかった場合、当該イベントを破棄する。
【００４９】
例えば受信部３１０が、（緯度35.600,経度140.000）という値を含むイベントを受信した場合を想定する。振り分けルール検索部３２０は、受信したイベントと、振り分けルール記憶部３４０が記憶している振り分けルールとのマッチング処理を行う。しかし、緯度と経度の値が（緯度35.600,経度140.000）であるイベントにマッチングする振り分けルールは、図４に示す振り分けルール記憶部３４０には記憶されていない。このような場合、振り分けルール検索部３２０は、当該イベントを破棄する。
【００５０】
図４を参照する説明に戻る。フロー計測部３５０は、転送状況を計測し、計測した転送状況を負荷分散装置１００に送信する。転送状況は、振り分け装置３００がイベントを転送する際に振り分け装置３００にかかる負荷を算出するために必要な情報である。転送状況は、受信状況および送信状況を含む情報である。受信状況は、振り分け装置３００が、特定のイベント送信源２００から受信したイベントの、数量または情報の量（データサイズ等）に関する情報である。送信状況は、振り分け装置３００が、特定のイベント送信源２００から受信し、処理装置４００に送信したイベントの、数量または情報の量に関する情報である。
【００５１】
なお、上記受信したイベント、または、送信したイベントに関する情報の量は、当該イベントのデータの量（データサイズ）を表す。本願においては、係る情報の量を単に「情報サイズ」と称する場合がある。
【００５２】
フロー計測部３５０は、自装置（振り分け装置３００）が受信するイベントの送信元である、１つまたは複数のイベント送信源２００のそれぞれについて、転送状況を計測する。
【００５３】
振り分け装置３００Ａが有するフロー計測部３５０Ａが計測する転送状況を例に、転送状況をより詳細に説明する。図１に示すように、振り分け装置３００Ａは、イベント送信源２００Ａ、２００Ｂおよび２００Ｃからそれぞれイベントを受信する。振り分け装置３００Ａが有するフロー計測部３５０Ａは、イベント送信源２００Ａから受信するイベントについて、転送状況を計測する。また、フロー計測部３５０Ａは、同様に、イベント送信源２００Ｂから受信するイベントおよびイベント送信源２００Ｃから受信するイベントのそれぞれについて、転送状況を計測する。
【００５４】
図６は、振り分け装置３００Ａが有するフロー計測部３５０Ａが計測する転送状況の一例を示す図である。図６に示すように、転送状況は、振り分け装置３００を識別する情報（振り分け装置ＩＤ）と、イベントの送信元であるイベント送信源２００を識別する情報（イベント送信源ＩＤ）と、受信状況を示す情報と、送信状況を示す情報とが関連づけされた情報である。
【００５５】
受信状況は、振り分け装置３００が所定の期間内にイベントを受信した回数に関する値を含む。受信状況は、さらに、振り分け装置３００が所定の期間内に受信したイベントの情報サイズに関する値を含んでいてもよい。送信状況は、振り分け装置３００が所定の期間内にイベントを送信した回数に関する値を含む。送信状況は、さらに、振り分け装置３００が所定の期間内に送信したイベントの情報サイズに関する値を含んでいてもよい。
【００５６】
転送状況はマッチング率を含んでいてもよい（例えば、図６に例示する「マッチ率」）。マッチング率は、振り分け装置３００がイベント送信源２００から受信したイベントの数量に対する、処理装置４００に送信したイベントの数量の割合である。
【００５７】
図６に示す転送状況は、振り分け装置３００Ａが、所定の期間内にイベント送信源２００Ａから２００回イベントを受信し、所定の期間内にイベント送信源２００Ａから受信したイベントの情報サイズの総量は５０ＭＢ(メガバイト)であり、所定の期間内にイベント送信源２００Ａから受信したイベントを１００回、処理装置４００に送信したことを示す。イベント送信源２００Ａから受信したイベントのマッチング率は、１００×（１００（送信回数）／２００（受信回数））＝５０％である。ここで記号"×"は乗算を表す記号である。ここで記号"／"は除算を表す記号である。
【００５８】
図６に示す転送状況は、振り分け装置３００Ａが、所定の期間内にイベント送信源２００Ｂから１００回イベントを受信し、所定の期間内にイベント送信源２００Ｂから受信したイベントの情報サイズの総量は３０ＭＢであり、所定の期間内にイベント送信源２００Ｂから受信したイベントを１００回、処理装置４００に送信したことを示す。イベント送信源２００Ｂから受信したイベントのマッチング率は、１００×（１００（送信回数）／１００（受信回数））＝１００％である。
【００５９】
図６に示す転送状況は、振り分け装置３００Ａが、所定の期間内にイベント送信源２００Ｃから５０回イベントを受信し、所定の期間内にイベント送信源２００Ｃから受信したイベントの情報サイズの総量１５ＭＢであり、所定の期間内にイベント送信源２００Ｃから受信したイベントを０回、処理装置４００に送信したことを示す。イベント送信源２００Ｃから受信したイベントのマッチング率は、１００×（０（送信回数）／５０（受信回数））＝０％である。
【００６０】
図４を参照する説明に戻る。処理量計測部３６０は、受信部３１０がイベントを受信する際にかかる１イベントあたりの処理量を計測する。処理量計測部３６０は、受信部３１０がイベントを受信する際にかかる単位情報サイズあたりの処理量を計測してもよい。
【００６１】
処理量計測部３６０はさらに、振り分けルール検索部３２０が、イベントと振り分けルールとのマッチングによりイベントの送信先を決定する処理を行う際にかかる、１イベントあたりの処理量を計測する。
【００６２】
処理量計測部３６０は、さらに、送信部３３０がイベントを送信する際にかかる１イベント当たりの処理量を計測する。処理量計測部３６０は、送信部３３０がイベントを送信する際にかかる単位情報サイズあたりの処理量を計測してもよい。
【００６３】
処理量計測部３６０は、例えばSocket API(Application Programming Interface)を呼び出し前後の時刻を比較するなどの方法により、上記処理量を計測することができる。
【００６４】
処理量ウェイト計算部３７０は、処理量計測部３６０が計測した１イベントあたり、または単位情報サイズあたりの処理量を、負荷分散装置１００に送信する。
【００６５】
図７は、図１に示す処理装置４００の構成を示すブロック図である。図７に示すように、処理装置４００は、処理部４１０と、処理ルール記憶部４２０とを含む。処理部４１０は、振り分け装置３００からイベントを受信する。処理部４１０は、イベントを受信すると、処理ルール記憶部４２０が記憶している処理ルールを参照し、受信したイベントを処理ルールに基づいて処理する。処理部４１０は、イベント処理結果をアプリケーション５００に送信する。
【００６６】
処理ルール記憶部４２０は、処理ルールを記憶する。処理ルール記憶部４２０に処理ルールが記憶されることを、以下、「処理ルールが設定される」と記載する。処理ルールは、ルール設定装置６００により設定される。
【００６７】
処理装置４００に設定される処理ルールは、例えば、”処理ルール１：「受信したイベントに含まれる温度の値が３０℃（セ氏、以下同様）を超えていたら、冷房（アプリケーション５００）に対して起動命令を出す」”というような単純なルールである。処理ルールは、処理装置４００に複合イベント処理（CEP: Complex Event Processing）の実行を要求するものであってもよい。複合イベント処理とは、複数のイベントのパターンを検出し、それら複数のイベントの情報に基づいて行う処理である。発明の理解を容易にするため、このような処理ルールの具体例を下記に２つ示す。なお、処理ルール２と処理ルール３において、DevIDは、イベント送信源２００の識別子を示す。
【００６８】
・処理ルール２：「IF (DevID=11) and (DevID=12) THEN 温度の平均値を算出」、処理ルール２によれば、処理装置４００は、DevID=11のイベントとDevID=12のイベントとを受信したら、それらのイベントに含まれる温度の平均値を算出する。
【００６９】
・処理ルール３：「IF (DevID=11) → (DevID=12) within 10s THEN 電流値の平均値を算出」、
処理ルール３によれば、処理装置４００は、DevID=11のイベントとDevID=12のイベントとをこの順番で１０秒以内に受信したら、それらのイベントに含まれる電流値の平均値を算出する。
【００７０】
処理装置４００は、このような複雑な処理ルールに基づいた処理を実行するために、処理ルールとイベントとのマッチングの中間状態（ステート）を管理する機能を具備していてもよい。中間状態（ステート）とは、例えば処理ルール２または処理ルール３における、DevID=11のイベントを検出したあと、DevID=12のイベントの検出を待っているような状態である。
【００７１】
図８は、図１に示す負荷分散装置１００の構成を示すブロック図である。図８に示すように、負荷分散装置１００は、取得部１１０と、フローテーブル記憶部１２０と、算出部１３０と、更新部１４０とを備える。
【００７２】
取得部１１０は、振り分け装置３００から転送状況を取得する。
【００７３】
フローテーブル記憶部１２０は、取得部１１０が取得した転送状況を記憶する。
【００７４】
算出部１３０は、フローテーブル記憶部１２０を参照し、振り分け装置３００がイベントを転送する際に、振り分け装置３００に発生する負荷を算出する。振り分け装置３００の負荷を示す情報を、以降負荷情報と記載する。算出部１３０の動作の詳細は後述する。算出部１３０が算出する負荷は、例えば、振り分け装置３００のＣＰＵ（Central Processing Unit）負荷、メモリの負荷またはネットワーク負荷などである。
【００７５】
更新部１４０は、算出部１３０が算出した負荷に基づいて、送信先決定ルールを更新する。更新部１４０は、更新された送信先決定ルールを、イベント送信源２００が有する送信先決定ルール記憶部２２０に上書き（更新）する。
【００７６】
図９は、フローテーブル記憶部１２０が記憶しているフローテーブルの一例を示す図である。図９に示すように、係るフローテーブルには、それぞれの振り分け装置３００（図９に示す例では、振り分け装置３００Ａと３００Ｂ）から受信した転送状況が記憶される。
【００７７】
図１０は、算出部１３０が算出する負荷の一例を示す図である。
【００７８】
算出部１３０は、受信状況と送信状況との両方を用いて、振り分け装置３００の負荷を算出する。
【００７９】
振り分け装置３００がイベント送信源２００から処理装置４００へとイベントを転送する際に、振り分け装置３００に発生する負荷は、下記の３つに分けて考えられる。
【００８０】
１）イベントを受信する際にかかる負荷、
２）イベントと振り分けルールとをマッチングする際にかかる負荷、
３）イベントを送信する際にかかる負荷。
【００８１】
算出部１３０は、振り分け装置３００の負荷を、例えば以下のように算出する。
【００８２】
（振り分け装置３００が特定のイベント送信源２００から受信したイベントを転送する際に、振り分け装置３００にかかる負荷）＝受信イベント数×（イベント単位受信負荷＋イベント単位検索負荷）＋送信イベント数×（イベント単位送信負荷）
イベント単位受信負荷は、例えば、一つのイベントを受信する処理に関する処理負荷である。また、イベント単位検索負荷は、例えば、一つのイベントに対する検索処理に関する処理負荷である。また、イベント単位送信負荷は、例えば、一つのイベントに対する送信処理に関する処理負荷である。
具体例を用いて説明する。イベント単位受信負荷＝１０、イベント単位検索負荷＝１０、イベント単位送信負荷＝１０とする。図６または図９に示した転送状況に基づいて、算出部１３０が振り分け装置３００Ａの負荷を算出すると、下記のようになる。
【００８３】
振り分け装置３００Ａが、イベント送信源２００Ａから受信したイベントを処理装置４００に転送する負荷（負荷Ａ）：負荷Ａ＝２００×（１０＋１０）＋１００×（１０）＝５０００。
【００８４】
振り分け装置３００Ａが、イベント送信源２００Ｂから受信したイベントを処理装置４００に転送する負荷（負荷Ｂ）：負荷Ｂ＝１００×（１０＋１０）＋１００×（１０）＝３０００。
【００８５】
振り分け装置３００Ａが、イベント送信源２００Ｃから受信したイベントを処理装置４００に転送する負荷（負荷Ｃ）：負荷Ｃ＝５０×（１０＋１０）＋０×（１０）＝１０００。
【００８６】
なお、算出部１３０は、転送状況に含まれる受信状況または送信状況と、マッチング率とに基づいて、振り分け装置３００の負荷を算出してもよい。
算出部１３０は例えば、振り分け装置３００の負荷を、以下のように算出してもよい。
【００８７】
（振り分け装置３００が特定のイベント送信源２００から受信したイベントを転送する際に、振り分け装置３００にかかる負荷）=（ルールマッチ時の処理負荷×ルールマッチ率+ルールアンマッチ時の処理負荷×（１−ルールマッチ率））×イベント量。
【００８８】
図１０に示すように、振り分け装置３００Ａには、イベント送信源２００Ａから受信したイベントを転送するために、負荷の値として５０００なる負荷がかかっていることが算出される。振り分け装置３００Ａには、イベント送信源２００Ｂから受信したイベントを転送するために、負荷の値として３０００なる負荷がかかっていることが算出される。振り分け装置３００Ａには、イベント送信源２００Ｃから受信したイベントを転送するために、負荷の値として１０００なる負荷がかかっていることが算出される。振り分け装置３００Ｂには、イベント送信源２００Ｄから受信したイベントを転送するために、負荷の値として１４００なる負荷がかかっていることが算出される。
【００８９】
振り分け装置３００Ａにかかる負荷の値の合計は、イベント送信源２００Ａによる負荷の値と、イベント送信源２００Ｂによる負荷の値と、イベント送信源２００Ｃによる負荷の値との和に基づいて算出される。すなわち、振り分け装置３００Ａにかかる負荷の値の合計は、５０００＋３０００＋１０００＝９０００と算出される。同様に、振り分け装置３００Ｂにかかる負荷の値の合計は、イベント送信源２００Ｄによる負荷の値に基づいて、１４００と算出される。
【００９０】
負荷分散装置１００が行う負荷分散を説明する。図１１は、更新後の送信先決定ルールの一例を示す図である。図２と図１１とを比較するとわかるように、送信先決定ルール２が更新されている。すなわち、イベント送信源２００Ｂから発生したイベントの送信先が、振り分け装置３００Ａから振り分け装置３００Ｂに更新されている。
【００９１】
図１２は、負荷分散装置１００が送信先決定ルールを更新した後の、負荷の状況を説明するための図である。図１０と図１２とを比較するとわかるように、イベント送信源２００Ｂから発生したイベントの送信先が、振り分け装置３００Ａから振り分け装置３００Ｂに更新されている。これにより、振り分け装置３００Ａにかかる負荷の合計は、イベント送信源２００Ａによる負荷と、イベント送信源２００Ｃによる負荷との合計、すなわち５０００＋１０００＝６０００と算出される。振り分け装置３００Ｂにかかる負荷の合計は、イベント送信源２００Ｂによる負荷と、イベント送信源２００Ｄによる負荷との合計、すなわち、３０００＋１４００＝４４００と算出される。
【００９２】
図１０に示す負荷調整前の状況と比較して、図１２に示す負荷調整後の状況においては、振り分け装置３００Ａと振り分け装置３００Ｂとの負荷が平準化されている。
【００９３】
図１３は、負荷分散装置１００のハードウェア構成の一例を示す図である。
【００９４】
図１３に示した負荷分散装置（コンピュータ）１００のハードウェアは、ＣＰＵ１、メモリ２、記憶装置３、通信インタフェース（Ｉ／Ｆ）４を備える。負荷分散装置１００は、入力装置５または出力装置６を備えていてもよい。負荷分散装置１００の機能は、例えばＣＰＵ１が、メモリ２に読み出されたコンピュータプログラム（ソフトウェアプログラム、以下単に「プログラム」と記載する）を実行することにより実現される。実行に際して、ＣＰＵ１は、通信インタフェース４、入力装置５および出力装置６を適宜制御する。
【００９５】
尚、本実施形態および後述する各実施形態を例として説明される本発明は、係るプログラムが格納されたコンパクトディスク等の不揮発性の記憶媒体８によっても構成される。記憶媒体８が格納するプログラムは、例えばドライブ装置７により読み出される。
【００９６】
負荷分散装置１００が実行する通信は、例えばＯＳ（Operating System）が提供する機能を使ってアプリケーションプログラムが通信インタフェース４を制御することによって実現される。入力装置５は、例えばキーボード、マウスまたはタッチパネルである。出力装置６は、例えばディスプレイである。負荷分散装置１００は、２つ以上の物理的に分離した装置が有線または無線で接続されることによって構成されていてもよい。
【００９７】
図１３に示すハードウェア構成例は、後述する各実施形態にも適用可能である。なお、負荷分散装置１００は専用の装置であってもよい。
【００９８】
次に、第１の実施形態にかかる負荷分散装置１００の動作を、図面を用いて説明する。
【００９９】
図１４は、第１の実施形態にかかる負荷分散装置１００の動作の一例を示すフローチャートである。取得部１１０は、個々の振り分け装置（３００Ａ、３００Ｂ…）から転送状況を取得する（Ｓ１０１）。取得部１１０は、取得した転送状況を、フローテーブル記憶部１２０に記憶する（Ｓ１０２）。算出部１３０は、フローテーブル記憶部１２０を参照し、イベントを転送する際に振り分け装置３００に発生する負荷を算出する（Ｓ１０３）。更新部１４０は、算出部が算出した負荷に基づいて、送信先決定ルールを更新する（Ｓ１０４）。更新部１４０は、更新された送信先決定ルールをイベント送信源２００に上書きする（Ｓ１０５）。
【０１００】
図１４を用いて説明した負荷分散装置１００の動作は、あくまで一例に過ぎない。例えば、図１４に示すフローチャートにより表される処理の一部について、実行される順序の一部を、可能な範囲で入れ替えてもよい。
【０１０１】
図１５は、図８に示す算出部１３０の動作の一例を示すフローチャートである。算出部１３０は、定期的に、あるいは、更新部１４０からの要求を受け付けて、負荷の算出を開始する（Ｓ２０１）。算出部１３０は、負荷算出の対象となる振り分け装置３００iに着目する（Ｓ２０２）。算出部１３０は、振り分け装置３００iが受信するイベントの送信元であるイベント送信源２００jに着目する（Ｓ２０３）。算出部１３０は、フローテーブル記憶部１２０を参照し、振り分け装置３００iがイベント送信源２００jから受信したイベントに関する行を読み出す。算出部１３０は、読み出した行に基づいて、振り分け装置３００iがイベント送信源２００jから受信したイベントを転送する際にかかる負荷を算出する（Ｓ２０４）。算出部１３０は、振り分け装置３００iが受信したイベントの送信源である全てのイベント送信源２００について、負荷を算出する（Ｓ２０５）。算出部１３０は、フローテーブル記憶部１２０が記憶している全ての振り分け装置３００に対して負荷を算出する（Ｓ２０６）。
【０１０２】
図１５を用いて説明した算出部１３０の動作は、あくまで一例に過ぎない。例えば、どの振り分け装置３００の負荷が重いか予めわかっている場合には、算出部１３０は、最も負荷が重い振り分け装置３００の負荷のみ算出する、としてもよい。
【０１０３】
図１６は、図８に示す更新部１４０の動作の一例を説明するフローチャートである。
【０１０４】
更新部１４０は、定期的に、または負荷調整の要求を受けて、負荷調整の動作を開始する（Ｓ３０１）。更新部１４０は、現状、振り分け装置３００の負荷が十分に分散されているかどうかを判断する（Ｓ３０２）。Ｓ３０２のステップにおける判断基準は、たとえば、最も負荷が重い振り分け装置３００の負荷が、所定の閾値を超えているか否かとしてもよい。また、Ｓ３０２のステップにおける判断基準は、たとえば、最も負荷が重い振り分け装置３００の負荷と、最も負荷が軽い振り分け装置３００の負荷との差分が、所定の閾値を超えているか否かとしてもよい。上記２つの条件が共に満たされていることを、Ｓ３０２のステップにおける判断基準としてもよい。  更新部１４０が、現状、負荷が十分に分散されていないと判断した場合（Ｓ３０２においてＮＯ）、更新部１４０は、負荷調整の際の基準値を算出する（Ｓ３０３）。負荷調整の際の基準値は例えば、以下のように算出される。
【０１０５】
（基準値）＝（最も負荷が重い振り分け装置の負荷＋最も負荷が軽い振り分け装置の負荷）／２。
【０１０６】
更新部１４０は、最も負荷が重い振り分け装置３００について、当該振り分け装置３００が受信するイベントの送信元であるイベント送信源２００のそれぞれに対して、当該イベント送信源２００から受信するイベントを処理装置４００に転送する負荷を算出する（Ｓ３０４）。Ｓ３０４のステップにおいて、更新部１４０は、算出部１３０により既に算出された値を取得してもよいし、算出部１３０に算出要求を出してもよい。
【０１０７】
更新部１４０は、最も負荷が重い振り分け装置３００において、最も重い負荷を発生させるイベント送信源の負荷の値が、Ｓ３０３で算出した基準値の値を超えているか否かを判定する（Ｓ３０５）。Ｓ３０５においてＮＯである場合、更新部１４０は、当該最も重い負荷を発生させるイベント送信源のイベント送信先が、最も負荷が重い振り分け装置３００から、最も負荷が軽い振り分け装置３００へと変更されるよう、送信先決定ルールを更新する（Ｓ３０６）。
【０１０８】
なお、Ｓ３０２においてＹＥＳである場合、更新部１４０は一定時間待機する（Ｓ３０７）。また、Ｓ３０５においてＹＥＳである場合、更新部１４０は負荷調整の動作を終了する。
【０１０９】
図１６を用いて説明した更新部１４０の動作は、あくまで更新部１４０の動作の一例に過ぎない。
【０１１０】
第１の実施形態にかかる負荷分散装置１００が奏する効果を説明する。
【０１１１】
第１の実施形態にかかる負荷分散装置１００は、取得部１１０と更新部１４０とを備える。取得部１１０は、イベント送信源２００から振り分け装置３００が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、イベント送信源２００から振り分け装置３００が所定期間内に受信して処理装置４００に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する。更新部１４０は、受信状況および送信状況に基づいて、振り分け装置３００がイベント送信源２００から処理装置４００へイベントを転送する際に振り分け装置３００にかかる負荷が、複数の振り分け装置３００の間で平準化されるように、送信先決定ルールを更新する。
【０１１２】
かかる構成により、第１の実施形態にかかる負荷分散装置１００は、精度の高い負荷分散を実現することができる。
【０１１３】
その理由は、算出部１３０が、振り分け装置３００の負荷を、受信状況と送信状況との両方に基づいて算出するからである。
【０１１４】
振り分け装置３００は、イベント送信源２００から受信したイベントのうち、振り分けルールにマッチングしたイベントは処理装置４００に送信し、振り分けルールにマッチングしないイベントは破棄する。これにより、振り分け装置３００が受信するイベントが同一であっても、振り分け装置３００が当該イベントを破棄する場合と、振り分け装置３００が当該イベントを転送する場合とでは、振り分け装置３００にかかる負荷は異なる。
【０１１５】
なぜならば、振り分け装置３００がイベントを転送する場合、振り分け装置３００には、イベント受信処理にかかる負荷、ルールマッチング処理にかかる負荷、および、イベント送信処理にかかる負荷の３つの負荷がかかる。それに対し、振り分け装置３００がイベントを破棄する場合、振り分け装置３００には、イベントを受信する負荷と、ルールマッチング処理にかかる負荷の２つの負荷しかかからないためである。
【０１１６】
このように、第１の実施形態にかかる負荷分散装置１００は、算出部１３０が、受信状況と送信状況との両方を考慮して振り分け装置３００の負荷を算出するので、より精度の高い負荷分散を実現することができる。言い換えると、第１の実施形態にかかる負荷分散装置１００は、イベントのマッチング率を考慮して振り分け装置３００の負荷を算出するので、より精度の高い負荷分散を実現することができる。
【０１１７】
[変形例その１]
振り分け装置３００が有する振り分けルール記憶部３４０は、例えば以下のような振り分けルールを記憶していてもよい。
【０１１８】
振り分けルール：振り分け装置３００が受信したイベントに含まれる緯度と経度の値が、所定の範囲内にある場合、振り分け装置３００は、当該イベントを処理装置４００Ｃおよび処理装置４００Ｄに送信する。
【０１１９】
このような振り分けルールによって、振り分け装置３００は、イベント送信源２００から受信した一つのイベントを、複数の処理装置４００に送信する。このような振り分けルールが設定されている場合、振り分け装置３００が、受信した１つのイベントをいくつの処理装置４００に転送するかに応じて、振り分け装置３００にかかる負荷は異なる。
【０１２０】
このような振り分けルールが振り分け装置３００に設定されていても、算出部１３０は、振り分け装置３００の負荷を高い精度で算出することができる。その理由は、算出部１３０は、振り分け装置３００の受信状況と送信状況との両方を考慮して振り分け装置３００の負荷を算出するからである。
【０１２１】
[変形例その２]
算出部１３０は、振り分け装置３００から、単位情報サイズあたり受信する際にかかる負荷（以下、情報サイズ単位受信負荷と記載）と、単位情報サイズあたり送信する際にかかる負荷（以下、情報サイズ単位送信負荷と記載）を取得してもよい。
【０１２２】
算出部１３０は、例えば下記に示すような方法で、振り分け装置３００の負荷を算出してもよい。
【０１２３】
（振り分け装置の負荷）＝（受信したイベントの情報サイズ×情報サイズ単位受信負荷）＋（受信したイベント数×イベント単位検索負荷）＋（送信したイベントの情報サイズ×情報サイズ単位送信負荷）。
【０１２４】
振り分け装置３００の受信処理および送信処理にかかる負荷は、イベント数よりもむしろイベントの情報サイズに依存する場合が多い。算出部１３０がこのように振り分け装置３００の負荷を算出することで、第１の実施形態にかかる負荷分散装置１００は、さらに精度の高い負荷分散を実現できる。
【０１２５】
＜第２の実施形態＞
次に、上述した第１の実施形態に係る負荷分散装置１００およびイベント処理システム１０００を基本とする第２の実施形態について説明する。
【０１２６】
図１７は、第２の実施形態にかかる負荷分散装置１０１を含むイベント処理システム１００１の構成を示すブロック図である。図１に示した構成と実質的に同一の構成には同一の符号が付されているので説明は省略する。図１７に示すように、第２の実施形態にかかるイベント処理システム１００１は、負荷分散装置１００に代えて負荷分散装置１０１を含む。また、第２の実施形態にかかるイベント処理システム１００１は、送信先管理装置７００を更に含み、イベント送信源２００に代えてイベント送信源２０１を含む。
【０１２７】
送信先管理装置７００は、図２に示すような送信先決定ルールを記憶する。送信先管理装置７００は、イベント処理システム１００１が含むイベント送信源２０１全てに関する送信先決定ルールを記憶していることが好ましい。例えば、送信先管理装置７００は、図２に示す送信先決定ルール１〜４を記憶している。
【０１２８】
送信先管理装置７００は、イベント送信源２０１からの要求に応じて、当該イベント送信源２０１がイベントを送信する振り分け装置３００のアドレスを返答する。
【０１２９】
図１８は、図１７に示す負荷分散装置１０１の構成を示すブロック図である。
【０１３０】
負荷分散装置１０１は、更新部１４０に代えて更新部１４１を備える。更新部１４１は、図１６に示すような方法で送信先決定ルールを更新する。更新部１４１は、例えば、送信先決定ルールを、図２に示した例から図１１に示した例へと更新する。更新部１４１は、更新した決定先送信ルールを、送信先管理装置７００に上書きする。
【０１３１】
図１９は、図１７に示すイベント送信源２０１の構成を示すブロック図である。図１９に示すように、イベント送信源２０１は、送信先決定ルール記憶部２２０に代えて、送信先取得部２４０を有する。送信先取得部２４０は、送信先管理装置７００のアドレスを記憶している。送信先取得部２４０は、イベントの送信先を、送信先管理装置７００に問い合わせる。送信先取得部２４０は、送信先管理装置７００から取得したアドレスに、生成したイベントを送信する。
【０１３２】
第２の実施形態にかかる負荷分散装置１０１が奏する効果を説明する。
【０１３３】
第２の実施形態にかかる負荷分散装置１０１は、イベント送信源２０１が記憶する情報を直接書き換えることなく、振り分け装置３００の負荷分散を実現することができる。
【０１３４】
第２の実施形態にかかる負荷分散装置１０１は、送信先管理装置７００が記憶している情報を更新するだけで、すべてのイベント送信源２０１のイベントの送信先を一括で更新できる。よって、第２の実施形態にかかる負荷分散装置１０１は、イベント処理システム１００１に含まれるイベント送信源２０１の数量が多い場合には特に、イベント送信源２０１のイベント送信先を更新する手間を省くことができる。
【０１３５】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする第３の実施形態について説明する。第３の実施形態は、第２の実施形態に対しても適用可能である。
【０１３６】
図２０は、第３の実施形態にかかる負荷分散装置１０２を含むイベント処理システム１００２の構成を示すブロック図である。図１に示した構成と実質的に同一の構成には同一の符号が付されているので説明は省略する。図２０に示すように、第３の実施形態にかかるイベント処理システム１００２は、負荷分散装置１００に代えて負荷分散装置１０２を含む。また、第３の実施形態にかかるイベント処理システム１００２は、イベント送信源２００に代えてイベント送信源２０２を含む。また、第３の実施形態にかかるイベント処理システム１００２は、振り分け装置３００に代えて振り分け装置３０２を含む。イベント処理システム１００２は、更に、複数のセンサー８００を含んでいてもよい。
【０１３７】
図２１は、図２０に示すイベント送信源２０２の構成を示すブロック図である。図２１に示すように、イベント送信源２０２は、受信部２５０を更に有する。また、イベント送信源２０２は、送信先決定ルール記憶部２２０に代えて送信先決定ルール記憶部２２２を有し、送信部２３０に代えて送信部２３２を有する。第３の実施形態にかかるイベント送信源２０２は、第１の実施形態にかかるイベント送信源２００とは異なり、必ずしもセンサー２１０を有している必要はない。イベント送信源２０２は、受信部２５０を有さずに、センサー２１０を有していてもよい。
【０１３８】
受信部２５０は、１つまたは複数のセンサー８００から複数のイベントを受信する。
【０１３９】
イベント送信源２０２は、自装置が有するセンサーにより、自らイベントを生成してもよい。
【０１４０】
送信先決定ルール記憶部２２２は、送信先決定ルールを記憶する。
【０１４１】
送信部２３２は、イベントの内容と送信先決定ルールとに基づいて、当該イベントを振り分け装置３０２に送信する。
【０１４２】
第３の実施形態にかかる送信先決定ルール記憶部２２２が記憶する送信先決定ルールの一例を、図２２に示す。
【０１４３】
図２２に示すように、送信先決定ルール記憶部２２２は、送信先決定ルール５〜８を記憶している。図２２に示すように、第３の実施形態にかかる送信先決定ルールは、送信するイベントの内容（属性値）と送信先の振り分け装置とを関連付けたルールである。
【０１４４】
発明の理解を容易にするため、第３の実施形態にかかるイベントは、位置情報と、当該位置情報が表す位置における気温と、を含む情報とした場合について、以下、具体的に説明する。
【０１４５】
図２２に示す送信先決定ルールは、イベントに含まれる第１の属性値（気温の値）と、第２の属性値（緯度の値および経度の値）とに基づいて、送信先の振り分け装置３０２を決定するルールである。図２２に示す記号"＊"は、ワイルドカードを示す。例えば図２２に示す送信先決定ルール５は、イベントに含まれる緯度の値と経度の値とに関わらず、イベントに含まれる気温の値が１０℃（摂氏）〜１５℃であるイベントは、振り分け装置３０２Ａに送信されることを表している。
【０１４６】
図２３は、図２０に示す振り分け装置３０２の構成を示すブロック図である。図４に示した構成と実質的に同一の構成には同一の符号が付されているので説明は省略する。図２３に示すように、振り分け装置３０２は、フロー計測部３５０に代えて、フロー計測部３５２を有する。
【０１４７】
フロー計測部３５２は、自装置（振り分け装置３０２）が所定時間内に受信する、特定の内容のイベントの、転送状況を計測する。ここで、「特定の内容」とは、イベントに含まれる属性値が特定の条件を満たしていることをいう。「特定の内容」とは、例えば、イベントに含まれる属性値が、送信先決定ルールが規定する所定の範囲に含まれていることをいう。「特定の内容」とは、例えば、イベントに含まれる属性値が、送信先決定ルールが規定する所定の値と一致していることをいう。「特定の内容」とは、例えば、イベントに含まれる属性値が、送信先決定ルールが規定する所定の値と所定の関係（例えば大小関係など）を有していることをいう。振り分け装置３０２Ａが有するフロー計測部３５２Ａが計測する転送状況を例に、転送状況をより詳細に説明する。
【０１４８】
図２４は、振り分け装置３０２Ａが有するフロー計測部３５２Ａが計測する転送状況の一例を示す図である。図２４に示すように、第３の実施形態にかかる転送状況は、振り分け装置３０２を識別する情報と、受信したイベントの特定の内容（属性値）を表す情報と、受信状況を示す情報と、送信状況を示す情報とが関連づけされた情報である。
【０１４９】
図２４に示す転送状況は、振り分け装置３０２Ａが、所定の期間内に、１０℃〜１５℃の範囲に属する値を含むイベントを２００回受信し、当該受信したイベントの情報サイズの総量は５０ＭＢであることを示す。また、図２４に示す転送状況は、振り分け装置３０２Ａが、所定の期間内に、１０℃〜１５℃の範囲に属する値を含むイベントを処理装置４００に１００回送信したことを示す。１０℃〜１５℃の範囲に属する値を含むイベントのマッチング率は、１００×（１００（送信回数）／２００（受信回数））＝５０％である。
【０１５０】
図２４に示す転送状況は、フロー計測部３５２が、送信先決定ルール５〜８と同じ温度幅（１０℃から３０℃まで５℃単位）で計測した場合の転送状況である。フロー計測部３５２は、任意の属性値幅で転送状況を計測してもよい。例えばフロー計測部３５２は、２℃単位で、転送状況を測定してもよい。
【０１５１】
図２５は、図２０に示す負荷分散装置１０２の構成を示すブロック図である。図８に示した構成と実質的に同一の構成には同一の符号が付されているので説明は省略する。図２５に示すように、負荷分散装置１０２は、算出部１３０に代えて算出部１３２を、更新部１４０に代えて更新部１４２を備える。
【０１５２】
図２６は、第３の実施形態におけるフローテーブル記憶部１２０が記憶する情報の一例を示す図である。図２６に示すように、フローテーブルは、それぞれの振り分け装置３０２（図２６に示す例では、振り分け装置３０２Ａと３０２Ｂ）から受信した転送状況を記憶している。
【０１５３】
算出部１３２は、フローテーブル記憶部１２０を参照し、振り分け装置３０２がイベントを転送する際に、振り分け装置３０２に発生する負荷を算出する。第３の実施形態にかかる算出部１３２を、第１の実施形態にかかる算出部１３０と比較して説明する。
【０１５４】
第１の実施形態にかかる算出部１３０は、振り分け装置３０２が、特定のイベント送信源（例えばイベント送信源２００Ａ）から所定期間内に受信するイベントを処理装置４００に転送する際に、当該振り分け装置に発生する負荷を算出する。
【０１５５】
これに対し第３の実施形態にかかる算出部１３２は、振り分け装置３０２が所定期間内に受信した特定の内容のイベント（例えば温度の値が１０℃〜１５℃であるイベント）を、イベント送信源２０２から処理装置４００に転送する際に、当該振り分け装置に発生する負荷を算出する。
【０１５６】
図２７は、算出部１３２の動作を説明するためのフローチャートである。算出部１３２は、定期的に、あるいは、更新部１４２からの要求を受け付けて、負荷の算出を開始する（Ｓ４０１）。算出部１３２は、負荷算出の対象となる振り分け装置３０２iに着目する（Ｓ４０２）。算出部１３２は、振り分け装置３０２iが受信する、特定の内容jを含むイベントに注目する（Ｓ４０３）。算出部１３２は、フローテーブル１２０を参照し、振り分け装置３０２iが受信した特定の内容ｊを含むイベントに関する行を読み出す。算出部１３２は、読み出した行に基づいて、振り分け装置３０２iが、特定の内容ｊを含むイベントを転送する際にかかる負荷を算出する（Ｓ４０４）。Ｓ４０４における算出部１３２の動作は、第１の実施形態で説明した算出部１３０の動作と同様である。算出部１３２は、振り分け装置３０２iに対して、フローテーブル１２０が記憶している全ての「特定の内容」の行について負荷を算出する（Ｓ４０５）。算出部１３２は、フローテーブル記憶部１２０が記憶している全ての振り分け装置３０２に対して負荷を算出する（Ｓ４０６）。
【０１５７】
図２７を用いて説明した算出部１３２の動作は、あくまで一例に過ぎない。例えば、どの振り分け装置３０２の負荷が重いか予め分かっている場合には、算出部１３２は、最も負荷が重い振り分け装置３０２の負荷のみ算出する、としてもよい。
【０１５８】
図２８は、算出部１３２が、図２６に示す情報に基づいて算出した負荷の一例である。
【０１５９】
図２９は、更新部１４２の動作を説明するためのフローチャートである。第１の実施形態と実質的に同一のステップには同一の符号を付して、説明を省略する。更新部１４２は、最も負荷が重い振り分け装置３０２について、当該振り分け装置３０２が受信する特定の内容（特定の範囲の属性値）のイベントのそれぞれに対して、当該イベント送信源２０２から受信するイベントを処理装置４００に転送する負荷を算出する（Ｓ５０４）。更新部１４２は、最も負荷が重い振り分け装置３０２において、最も重い負荷を発生させる特定の内容（特定の範囲の属性値）のイベントの負荷の値が、Ｓ３０３で算出した基準値の値を超えているか否かを判定する（Ｓ５０５）。Ｓ５０５においてＮＯである場合、更新部１４２は、当該最も重い負荷を発生させる特定の内容（特定の範囲の属性値）のイベントの送信先が、最も負荷が重い振り分け装置３０２から、最も負荷が軽い振り分け装置３０２へと変更されるよう、送信先決定ルールを更新する（Ｓ５０６）。
【０１６０】
図３０は、負荷分散装置１０２が更新した、送信先決定ルールの一例を示す図である。図２２と図３０とを比較するとわかるように、送信先決定ルール６が更新されている。すなわち、１５℃〜２０℃の範囲の温度の値を有するイベントの送信先が、振り分け装置３０２Ａから振り分け装置３０２Ｂに更新されている。
【０１６１】
図３１は、負荷分散装置１０２が負荷調整を行った後の、負荷の状況を説明するための図である。図２６と図３１とを比較するとわかるように、図２６に示す負荷調整前の状況と比較して、図３１に示す負荷調整後の状況は、振り分け装置３０２Ａと振り分け装置３０２Ｂとの負荷が平準化されている。
【０１６２】
第３の実施形態にかかる負荷分散装置１００が奏する効果を説明する。
【０１６３】
第３の実施形態にかかる負荷分散装置１０２は、第１の実施形態にかかる負荷分散装置１００と同様、精度の高い負荷分散を実現することができる。
【０１６４】
＜第４の実施形態＞
次に、上述した第１の実施形態を基本とする第４の実施形態について説明する。第４の実施形態は、第１ないし第３の実施形態に対しても適用可能である。
【０１６５】
図３２は、第４の実施形態にかかる負荷分散装置１０３を含むイベント処理システム１００３の構成を示すブロック図である。図３２に示すように、イベント処理システム１００３は、１つまたは複数のイベント送信源２０３と、複数の振り分け装置３０３と、負荷分散装置１０３とを含む。
【０１６６】
振り分け装置３０３は、イベント送信源２０３から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置４００に転送する。
【０１６７】
イベント送信源２０３は、複数の振り分け装置３０３のうち、送信先決定ルールに基づいて決定される振り分け装置３０３に、イベントを送信する。
【０１６８】
負荷分散装置１０３は、取得部１１３と、更新部１４３とを備える。
【０１６９】
取得部１１３は、振り分け装置３０３が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況を取得する。取得部１１３は、また、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する。
【０１７０】
更新部１４３は、受信状況および送信状況に基づいて、振り分け装置３０３がイベント生成源２０３から処理装置４００へとイベントを転送する際に当該振り分け装置３０３にかかる負荷が、複数の振り分け装置３０３の間で平準化されるように、送信先決定ルールを更新する。
【０１７１】
第４の実施形態にかかる負荷分散装置１０３によれば、イベント処理システム１００３において、精度の高い負荷分散を実現することができる。
【０１７２】
[各実施形態の変形例]
アプリケーション５００は、イベントの処理結果を受けて物理的な動作を行うアクチュエーター(Actuator)であっても構わない。アプリケーション５００は、コンピュータにインストールされたソフトウェアであってもよい。
【０１７３】
イベント送信源２００、振り分け装置３００、処理装置４００、アプリケーション５００、ルール設定装置６００、送信先管理装置７００、負荷分散装置１００は、それぞれ専用の装置であってもよいし、ソフトウェアによって実現される機能であってもよい。
【０１７４】
振り分けルール記憶部３４０は、必ずしも振り分け装置３００の内部に実装される必要はない。振り分け装置３００と振り分けルール記憶部３４０とが互いに対応していれば、振り分けルール記憶部３４０は振り分け装置３００とネットワークを介して接続された装置に実装されていてもよい。
【０１７５】
処理ルール記憶部４２０は、必ずしも処理装置４００の内部に実装される必要はない。処理装置４００と処理ルール記憶部４２０とが互いに対応していれば、処理ルール記憶部４２０は処理装置４００とネットワークを介して接続された装置に実装されていてもよい。
【０１７６】
フローテーブル記憶部１２０は、必ずしも負荷分散装置１００の内部に実装される必要はない。フローテーブル記憶部１２０は、負荷分散装置１００とネットワークを介して接続された装置に実装されていてもよい。
【０１７７】
取得部１１０は、必ずしも振り分け装置３００から転送状況を直接取得する必要はない。例えば、振り分け装置３００のオペレータが、それぞれの振り分け装置３００から、転送状況を手動で、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等に収集したとする。取得部１１０は、当該ＵＳＢメモリから転送状況を読み込んでもよい。取得部１１０は、負荷分散装置１００が備える図示しない記憶装置から転送状況を読み込んでもよい。取得部１１０は、振り分け装置３００から転送状況を受動的に受信してもよいし、定期的に振り分け装置３００から転送状況をプルしてもよい。
【０１７８】
上述の変形例は、他の実施形態にも適用可能である。
【０１７９】
各ブロック図に示したブロック分けは、説明の便宜上から表された構成である。各実施形態を例に説明された本発明は、その実装に際して、各ブロック図に示した構成には限定されない。
【０１８０】
以上、本発明を実施するための形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【０１８１】
この出願は、２０１３年６月１３日に出願された日本出願特願２０１３−１２４８１２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１８２】
本発明は、イベント処理システムの負荷分散に用いることができる。
【符号の説明】
【０１８３】
１  ＣＰＵ
２  メモリ
３  記憶部
４  通信インタフェース
５  入力装置
６  出力装置
７  ドライブ装置
８  記憶媒体
１００  負荷分散装置
１０１  負荷分散装置
１０２  負荷分散装置
１０３  負荷分散装置
１１０  取得部
１１３  取得部
１２０  フローテーブル記憶部
１３０  算出部
１３２  算出部
１４０  更新部
１４１  更新部
１４２  更新部
１４３  更新部
２００  イベント送信源
２０１  イベント送信源
２０２  イベント送信源
２０３  イベント送信源
２１０  センサー
２２０  送信先決定ルール記憶部
２２２  送信先決定ルール記憶部
２３０  送信部
２３２  送信部
２４０  送信先取得部
２５０  受信部
３００  振り分け装置
３０２  振り分け装置
３０３  振り分け装置
３１０  受信部
３２０  振り分けルール検索部
３３０  送信部
３４０  振り分けルール記憶部
３５０  フロー計測部
３５２  フロー計測部
３６０  処理量計測部
３７０  処理量ウェイト計算部
４００  処理装置
４１０  処理部
４２０  処理ルール記憶部
５００  アプリケーション
６００  ルール設定装置
７００  送信先管理装置
８００  センサー
１０００  イベント処理システム
１００１  イベント処理システム
１００２  イベント処理システム
１００３  イベント処理システム
２０００  デバイス
３０００  コンテキスト依存振り分け器
４０００  処理サーバ
５０００  アプリケーション
６０００  イベント処理分散制御装置
７０００  コンテキスト非依存振り分け器
【図１】
2014199606.tif 000003
【図２】
2014199606.tif 000004
【図３】
2014199606.tif 000005
【図４】
2014199606.tif 000006
【図５】
2014199606.tif 000007
【図６】
2014199606.tif 000008
【図７】
2014199606.tif 000009
【図８】
2014199606.tif 000010
【図９】
2014199606.tif 000011
【図１０】
2014199606.tif 000012
【図１１】
2014199606.tif 000013
【図１２】
2014199606.tif 000014
【図１３】
2014199606.tif 000015
【図１４】
2014199606.tif 000016
【図１５】
2014199606.tif 000017
【図１６】
2014199606.tif 000018
【図１７】
2014199606.tif 000019
【図１８】
2014199606.tif 000020
【図１９】
2014199606.tif 000021
【図２０】
2014199606.tif 000022
【図２１】
2014199606.tif 000023
【図２２】
2014199606.tif 000024
【図２３】
2014199606.tif 000025
【図２４】
2014199606.tif 000026
【図２５】
2014199606.tif 000027
【図２６】
2014199606.tif 000028
【図２７】
2014199606.tif 000029
【図２８】
2014199606.tif 000030
【図２９】
2014199606.tif 000031
【図３０】
2014199606.tif 000032
【図３１】
2014199606.tif 000033
【図３２】
2014199606.tif 000034
【図３３】
2014199606.tif 000035
【手続補正書】
【提出日】平成27年12月11日(2015.12.11)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続され、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、
を備える負荷分散装置。
【請求項２】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて前記負荷を算出する算出手段を更に備え、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項１に記載の負荷分散装置。
【請求項３】
前記受信状況は、前記振り分け装置が所定期間内に受信するイベントの、数量を表す情報および情報サイズを表す情報を含み、
前記送信状況は、前記振り分け装置が所定期間内に送信するイベントの、情報サイズを表す情報を含み、
前記算出手段は、
前記受信したイベントの情報サイズに、情報を受信する際に前記振り分け装置にかかる単位情報サイズあたりの負荷を乗じた値と、
前記受信したイベントの数量に、前記イベントと前記振り分けルールとのマッチングの際に前記振り分け装置にかかるイベント１つ当たりの負荷を乗じた値と、
前記送信したイベントの情報サイズに、情報を送信する際に前記振り分け装置にかかる単位情報サイズあたりの負荷を乗じた値と、
の和に基づいて、前記振り分け装置がイベントを転送する際に前記振り分け装置にかかる負荷を算出する、
請求項２に記載の負荷分散装置。
【請求項４】
前記イベント処理システムは、複数の前記イベント送信源を含み、
前記システムに含まれるイベント送信源は、イベントを生成し、前記生成したイベントを振り分け装置に送信し、
前記送信先決定ルールは、前記イベント送信源ごとにあらかじめ送信先の振り分け装置が関連づけされたルールであり、
前記システムに含まれる振り分け装置は、一つまたは複数の前記イベント送信源からイベントを受信し、
前記受信状況は、前記複数のイベント送信源のうち特定のイベント送信源から前記振り分け装置が所定期間内に受信するイベントの受信状況であり、
前記送信状況は、前記複数のイベント送信源のうち特定のイベント送信源から前記振り分け装置が所定期間内に受信し前記処理装置に送信したイベントの送信状況である、請求項１に記載の負荷分散装置。
【請求項５】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて、前記特定のイベント送信源から所定期間内に受信するイベントを前記処理装置に転送する際に、前記の振り分け装置に発生する負荷を算出する算出手段を更に備え、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項４に記載の負荷分散装置。
【請求項６】
前記送信先決定ルールは、送信するイベントの内容と送信先の振り分け装置とが関連づけされたルールであり、
前記受信状況は、前記振り分け装置が所定期間内に受信した、特定の内容のイベントの受信状況であり、
前記送信状況は、前記振り分け装置が所定期間内に送信した、前記特定の内容のイベントの送信状況である、
請求項１に記載の負荷分散装置。
【請求項７】
前記負荷分散装置は、
前記受信状況および前記送信状況に基づいて、前記イベント送信源から所定期間内に受信する特定の内容のイベントを前記処理装置に転送する際に、前記振り分け装置に発生する負荷を算出し、
前記更新手段は、前記負荷に基づいて前記送信先決定ルールを更新する
請求項６に記載の負荷分散装置。
【請求項８】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続されるコンピュータが、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得し、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する、
負荷分散方法。
【請求項９】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源と、
を含むシステムと通信可能に接続されるコンピュータに、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する処理と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する処理と
を実行させるプログラム。
【請求項１０】
イベント送信源から複数のイベントを受信し、前記受信した個々のイベントについて、当該イベントに含まれる情報と振り分けルールとに基づいて、当該イベントを破棄するか、あるいは、当該イベントを１つまたは複数の処理装置に転送する、複数の振り分け装置と、
前記複数の振り分け装置のうち、送信先決定ルールに基づいて決定される振り分け装置に、イベントを送信する１つまたは複数のイベント送信源とを含み、更に、
前記振り分け装置が所定期間内に受信するイベントの、数量または情報サイズを表す情報である受信状況、および、前記イベント送信源が所定期間内に送信するイベントの、数量または情報サイズを表す情報である送信状況を取得する取得手段と、
前記受信状況および送信状況に基づいて、前記振り分け装置が前記イベント生成源から前記処理装置へとイベントを転送する際に前記振り分け装置にかかる負荷が、前記複数の振り分け装置の間で平準化されるように、前記送信先決定ルールを更新する更新手段と、
を備える負荷分散装置を含む、
イベント処理システム。
【国際調査報告】
2014199606.tif 000036
2014199606.tif 000037
2014199606.tif 000038