(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行されるイベント収集方法であって、
コンピュータが、
イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの種別に対応した圧縮アルゴリズムと、送信間隔とを含むポリシーをもとに、前記送信イベントの種別に対応した圧縮アルゴリズムを適用し、前記送信間隔で送信する場合のデータを用いて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
ことを特徴とするイベント収集方法。
【請求項２】
前記コンピュータが、
前記送信イベントが参照された参照時刻と、当該送信イベントが受信された受信時刻との差分に応じて、前記ポリシーを生成し、
生成した前記ポリシーに応じて、前記第１トラフィック量を推定することを特徴とする請求項１に記載のイベント収集方法。
【請求項３】
前記コンピュータが、
受信したイベントに応じて前記ポリシーを更新し、
更新した前記ポリシーに応じてイベントを送信するノードに当該ポリシーを送信することを特徴とする請求項１または２に記載のイベント収集方法。
【請求項４】
コンピュータに、
イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの種別に対応した圧縮アルゴリズムと、送信間隔とを含むポリシーをもとに、前記送信イベントの種別に対応した圧縮アルゴリズムを適用し、前記送信間隔で送信する場合のデータを用いて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
各処理を実行させることを特徴とするイベント収集プログラム。
【請求項５】
イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの種別に対応した圧縮アルゴリズムと、送信間隔とを含むポリシーをもとに、前記送信イベントの種別に対応した圧縮アルゴリズムを適用し、前記送信間隔で送信する場合のデータを用いて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
各処理を実行する処理部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント収集方法、イベント収集プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
センサノードによってセンシングされたセンシングデータをイベントとして採取するセンサネットワークが知られている。かかるセンサネットワークを介してサーバノードに採取されたイベントに応じて各種のサービス、例えばアラートの発信や機器の制御などが提供される。
【０００３】
このように、センサノードからのイベントをサーバノードに収集させる場合には、全てのイベントがサーバノードに集中して通知されることになる。このため、サーバノードの負荷が増大するとともに、ネットワークのトラフィックの増加に伴ってネットワーク帯域も逼迫する。
【０００４】
かかるサーバノードの負荷とネットワークトラフィックとを抑制する技術の一例として、次のような技術が提案されている。一例としては、データをフィルタリングするフィルタエージェントを消費ノードからデータ生産ノードへ転送することによってシステムパフォーマンスおよび／またはリソース消費を改善するシステムが挙げられる。他の一例としては、スクリプトを入れ子構造とし、スクリプトの一部を下位ノードである中間ノードやセンサノードに実行させるセンサネットワークシステムが挙げられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−９７６０３号公報
【特許文献２】特開２００６−３４４０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、サーバノードの負荷とネットワークトラフィックとを抑制する技術の一例として、次のような技術が考えられる。すなわち、イベントの発生状況やセンサネットワークのトポロジに応じてイベントの収集経路を決定しておき、その収集経路に基づいて、中間ノードやセンサノードなどの下位ノードにイベントを処理するモジュールを分散配備する技術が一例として考えられる。
【０００７】
しかしながら、上記の考案技術では、かえってトラフィック量が増大してしまう場合がある。一例としては、閾値を超えたセンシングデータをアラートとして出力するモジュールが下位ノードに分散配備され、アラートのみならず処理前のセンシングデータも参照用のデータとしてサーバノードへ送信される場合が挙げられる。この場合、サーバノードでアラートを抽出していた場合と比較すると、アラートの送信にかかるトラフィック量が増大してしまう。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、確実にトラフィック量を抑制することができるイベント収集方法、イベント収集プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するイベント処理方法は、コンピュータによって実行されるイベント処理方法であって、一つの態様において、イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの種別に対応した圧縮アルゴリズムと、送信間隔とを含むポリシーをもとに、送信イベントの種別に対応した圧縮アルゴリズムを適用し、送信間隔で送信する場合のデータを用いて推定する。また、イベント処理方法は、一つの態様において、推定した前記第１トラフィック量と、モジュールをノードに配備しない場合に当該ノードから送信されるイベントの第２トラフィック量とを比較する。また、イベント処理方法は、一つの態様において、第１トラフィック量が第２トラフィック量以下であれば、モジュールをノードに配備する。
【発明の効果】
【００１０】
本願の開示する技術の一つの態様によれば、確実にトラフィック量を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るセンサネットワークシステムのシステム構成を示す図である。
【図２】図２は、実施例１に係るサーバノードの機能的構成を示すブロック図である。
【図３】図３は、モジュール記憶部に記憶される情報の構成例を示す図である。
【図４】図４は、モジュール定義記憶部に記憶される情報の構成例を示す図である。
【図５】図５は、ポリシー記憶部に記憶される情報の構成例を示す図である。
【図６】図６は、トポロジ記憶部に記憶される情報の構成例を示す図である。
【図７】図７は、イベント記憶部に記憶される情報の構成例を示す図である。
【図８】図８は、発生イベント情報記憶部に記憶される情報の構成例を示す図である。
【図９】図９は、トラフィック記憶部に記憶される情報の構成例を示す図である。
【図１０】図１０は、推定トラフィック記憶部に記憶される情報の構成例を示す図である。
【図１１】図１１は、配備先情報記憶部に記憶される情報の構成例を示す図である。
【図１２】図１２は、図１１に示した配備先情報記憶部からの配備状況の遷移を示す図である。
【図１３】図１３は、図１２に示した配備先情報記憶部からの配備状況の遷移を示す図である。
【図１４】図１４は、実施例１に係るセンサノードの機能的構成を示すブロック図である。
【図１５】図１５は、実施例１に係るＧＷノードの機能的構成を示すブロック図である。
【図１６】図１６は、実施例１に係るセンサノードにおける全体処理の手順を示すフローチャートである。
【図１７】図１７は、実施例１に係るモジュール配備処理の手順を示すフローチャートである。
【図１８】図１８は、実施例２に係るサーバノードの機能的構成を示すブロック図である。
【図１９】図１９は、実施例３に係るセンサネットワークシステムのシステム構成を示す図である。
【図２０】図２０は、実施例３に係るサーバノードの機能的構成を示すブロック図である。
【図２１】図２１は、ポリシー記憶部に記憶される情報の構成例を示す図である。
【図２２】図２２は、トポロジ記憶部に記憶される情報の構成例を示す図である。
【図２３】図２３は、イベント記憶部に記憶される情報の構成例を示す図である。
【図２４】図２４は、発生イベント情報記憶部に記憶される情報の構成例を示す図である。
【図２５】図２５は、トラフィック記憶部に記憶される情報の構成例を示す図である。
【図２６】図２６は、推定トラフィック記憶部に記憶される情報の構成例を示す図である。
【図２７】図２７は、配備先情報記憶部に記憶される情報の構成例を示す図である。
【図２８】図２８は、図２７に示した配備先情報記憶部からの配備状況の遷移を示す図である。
【図２９】図２９は、図２８に示した配備先情報記憶部からの配備状況の遷移を示す図である。
【図３０】図３０は、図２１に示したポリシー記憶部からの送信ポリシーの遷移を示す図である。
【図３１】図３１は、実施例３に係るポリシー更新処理の手順を示すフローチャートである。
【図３２】図３２は、イベント収集プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するイベント収集方法、イベント収集プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
まず、本実施例に係るセンサネットワークシステムのシステム構成について説明する。図１は、実施例１に係るセンサネットワークシステムのシステム構成を示す図である。図１に示すセンサネットワークシステム１は、センサノード２１０によってセンシングされたセンシングデータをイベントとして収集し、収集したイベントに応じて各種のサービスを提供するものである。
【００１４】
図１に示すように、センサネットワークシステム１には、サーバノード１１０と、センサノード２１０Ｘ及び２１０Ｙと、ＧＷ（gateway）ノード３１０とが収容される。この図１の例では、ある１つの家に収容されたセンサノード２１０Ｘ及び２１０Ｙと、ＧＷノード３１０とから、イベントデータがサーバノード１１０へ収集される。なお、以下では、センサノード２１０Ｘ及び２１０Ｙを区別なく総称する場合に「センサノード２１０」と記載する。
【００１５】
サーバノード１１０とＧＷノード３１０との間は、ネットワーク５を介して通信可能に接続される。かかるネットワーク５の一例としては、有線または無線を問わず、インターネット、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの通信網が挙げられる。なお、センサネットワークシステム１に収容されるセンサノード２１０及びＧＷノード３１０の数は図示の例に限定されるものではなく、任意の数のセンサノード２１０及びＧＷノード３１０を収容する場合に適用することができる。以下では、ルートノードであるサーバノード１１０以外のセンサノード２１０やＧＷノード３１０のことを「下位ノード」と総称する。また、センサノード２１０、ＧＷノード３１０及びサーバノード１１０のことを単に「ノード」と総称する。
【００１６】
サーバノード１１０は、センサネットワークのルートノードとして機能し、イベントに応じて各種のサービスを提供するサーバ装置である。例えば、サーバノード１１０は、センサノード２１０やＧＷノード３１０から受信したイベントを加工する加工処理を実行するモジュールを自装置よりも下位に位置するノードに配備することによってイベントを分散処理させる。かかるモジュールには、サービス提供用のアプリケーションによって実行されるサービス提供処理のトリガーとなるイベントのフィルタリング処理や集約処理が組み込まれる。
【００１７】
センサノード２１０は、センサ付きの通信端末である。センサノード２１０の一例としては、パーソナルコンピュータやその周辺機器、音響機器、スマートフォンや携帯電話機、ＰＨＳ（Personal  Handyphone  System）などの携帯端末、家電製品などの各種の機器が挙げられる。また、センサノード２１０に搭載されるセンサの一例としては、電力を計測する電力センサ、温度を計測する温度センサ、湿度を計測する湿度センサなどが挙げられる。なお、ここでは、センサノード２１０に搭載されるセンサの例として電力を計測する電力センサを例示するが、これに限定されるものではない。例えば、センサノード２１０には、ＧＰＳ（Global  Positioning  System）センサ、加速度センサやジャイロセンサなどの任意のセンサを搭載できる。
【００１８】
例えば、センサノード２１０は、ある機器が消費した電力をイベントとして収集する。そして、収集したイベントを自装置よりも上位に位置するノードに送信する。また、例えば、センサノード２１０は、収集したイベントの処理を実行するモジュールが自装置に配備されている場合には、収集したイベントの処理を実行し、処理により生成された出力イベントを自装置よりも上位に位置するノードに送信する。
【００１９】
ＧＷノード３１０は、サーバノード１１０とセンサノード２１０との間の通信を中継するゲートウェイである。ＧＷノード３１０の一例としては、ある家に設置されたホームゲートウェイが挙げられる。
【００２０】
例えば、ＧＷノード３１０は、自装置よりも下位に位置する他のＧＷノード３１０又はセンサノード２１０からイベントを受信し、受信したイベントを自装置よりも上位に位置するノードに送信する。また、例えば、ＧＷノード３１０は、受信したイベントの処理を実行するモジュールが自装置に配備されている場合には、受信したイベントの処理を実行し、処理により生成されたイベントを自装置よりも上位に位置するノードに送信する。
【００２１】
ここで、本実施例に係るサーバノード１１０は、イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントのトラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定する。続いて、サーバノード１１０は、推定したトラフィック量と、モジュールをノードに配備しない場合に当該ノードから送信されるイベントのトラフィック量とを比較する。そして、サーバノード１１０は、モジュールをノードに配備した場合のトラフィック量が、配備しない場合のトラフィック量以下であれば、モジュールをノードに配備する。このため、サーバノード１１０は、確実にトラフィック量を抑制することができる。
【００２２】
［サーバノードの構成］
次に、本実施例に係るサーバノードの機能的構成について説明する。図２は、実施例１に係るサーバノードの機能的構成を示すブロック図である。なお、サーバノード１１０は、図２に示す機能部以外にも既知のサーバ装置が有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能を有するものとする。
【００２３】
図２に示すように、サーバノード１１０は、モジュール登録部１１１と、モジュール記憶部１１１Ａと、モジュール定義記憶部１１１Ｂと、ポリシー登録部１１２と、ポリシー記憶部１１２Ａと、トポロジ取得部１１３と、トポロジ記憶部１１３Ａとを有する。さらに、サーバノード１１０は、イベント受信部１１４と、イベント記憶部１１４Ａと、モジュール実行部１１４Ｂと、発生イベント登録部１１４Ｃと、発生イベント情報記憶部１１４Ｄとを有する。さらに、サーバノード１１０は、トラフィック集計部１１５と、トラフィック記憶部１１５Ａと、トラフィック推定部１１６と、推定トラフィック記憶部１１６Ａと、配備先情報記憶部１１７Ａと、配備先決定部１１７とを有する。さらに、サーバノード１１０は、モジュール送信部１１８と、ポリシー送信部１１９とを有する。
【００２４】
モジュール登録部１１１は、モジュールを登録する処理部である。一態様としては、モジュール登録部１１１は、モジュールの開発者によって各種のサービス提供処理のトリガーとなるイベントをフィルタリングまたは集約するようにプログラミングされたモジュールのアップロードを受け付ける。すると、モジュール登録部１１１は、サーバノード１１０にアップロードされたモジュールを後述のモジュール記憶部１１１Ａに登録する。さらに、モジュール登録部１１１は、アップロードされたモジュールに関する定義を開発者が使用する端末装置を介して受け付け、受け付けたモジュールに関する定義を後述のモジュール定義記憶部１１１Ｂに登録する。
【００２５】
モジュール記憶部１１１Ａは、モジュールを記憶する記憶部である。一例としては、モジュール記憶部１１１Ａは、モジュールがアップロードされた場合に、モジュール登録部１１１によってモジュールが登録される。他の一例としては、モジュール記憶部１１１Ａは、センサノード２１０や後述のＧＷノード３１０などの下位ノードにモジュールを配備する場合に、後述のモジュール送信部１１８によって参照される。
【００２６】
一態様としては、モジュール記憶部１１１Ａは、モジュール識別子とバイナリコードが対応付けられたデータを記憶する。ここで言う「モジュール識別子」は、モジュールを識別するための識別子を指す。例えば、Ｃ言語でプログラミングされたモジュールには関数名を付与したり、Ｊａｖａ（登録商標）言語でプログラミングされたモジュールにはクラス名を付与したりするなど、開発に使用されたプログラム言語に応じて識別子を付与することができる。また、「バイナリコード」は、モジュール本体となるコンパイル済みのバイナリデータを指す。
【００２７】
図３は、モジュール記憶部１１１Ａに記憶される情報の構成例を示す図である。図３の例では、モジュール識別子「電力集計」とそのバイナリコードとが対応付けられた例を示している。この「電力集計」は、機器によって消費された電力を示す機器消費電力を入力イベントとして処理するモジュールのクラス名を指す。
【００２８】
なお、図３の例では、モジュールのバイナリコードを記憶する場合を例示したが、必ずしもバイナリ形式でモジュールを記憶する必要はなく、バイナリ形式以外のデータを記憶することとしてもかまわない。例えば、モジュールがスクリプト言語である場合には、スクリプトが記述されたテキストデータを記憶することとしてもよい。また、コンパイル前のソースコードを記憶することとしてもかまわない。この場合には、モジュールがセンサノード２１０等の下位ノードに配備される段階でコンパイルするか、あるいは配備先の下位ノードでコンパイルさせることとすればよい。
【００２９】
モジュール定義記憶部１１１Ｂは、モジュールに関する定義を記憶する記憶部である。一例としては、モジュール定義記憶部１１１Ｂは、モジュールとともにモジュールに関する定義がアップロードされた場合に、モジュール登録部１１１によってモジュールの定義が登録される。他の一例としては、モジュール定義記憶部１１１Ｂは、モジュールの配備先を決定するために、後述の配備先決定部１１７によって参照される。
【００３０】
一態様としては、モジュール定義記憶部１１１Ｂは、モジュール識別子、入力イベント型、出力イベント型及び集約属性名が対応付けられたデータを記憶する。ここで言う「入力イベント型」とは、モジュールによって実行される処理の入力となるイベントの型を指す。また、「出力イベント型」とは、モジュールによって実行された処理の出力となるイベントの型を指す。また、「集約属性名」とは、複数のノードを集約する枠組みである集約属性の名称を指す。
【００３１】
図４は、モジュール定義記憶部１１１Ｂに記憶される情報の構成例を示す図である。図４に示すモジュール識別子「電力集計」の例では、機器消費電力イベントが入力されて、ユーザごとに集計処理された人消費電力イベントが出力されることを示す。また、この「電力集計」の例では、機器消費電力イベントが入力されて、電力使用量が超過しているか否かを、閾値、例えば３００Ｗを用いて判定し、電力使用量超過イベントが出力されることを示す。また、この「電力集計」の例では、入力された機器消費電力イベントがそのまま参照用のデータとして出力されることを示す。すなわち、この「電力集計」の例では、機器消費電力イベントが入力されて、機器消費電力イベント、人消費電力イベント及び電力使用量超過イベントが出力されることとなる。また、この「電力集計」の例では、１度の処理で機器消費電力イベントが入力され、同一のユーザＩＤに対応付けられた機器消費電力イベントが集約対象となるので、集約属性名としてユーザＩＤが付与されている。
【００３２】
ポリシー登録部１１２は、ノードから送信されるイベントの送信ポリシーを登録する処理部である。一態様としては、ポリシー登録部１１２は、モジュールによって出力されるイベントを、モジュールが配備されたノードに所定の送信間隔で送信させるよう、モジュールの開発者によって定義された送信ポリシーのアップロードを受け付ける。すると、ポリシー登録部１１２は、サーバノード１１０にアップロードされた送信ポリシーを後述のポリシー記憶部１１２Ａに登録する。なお、この送信ポリシーには、送信間隔の間に送信されるイベントを圧縮するよう、所定の圧縮アルゴリズムが送信イベント型ごとに定義されても良い。
【００３３】
ポリシー記憶部１１２Ａは、ノードから送信されるイベントの送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部１１２Ａは、送信ポリシーがアップロードされた場合に、ポリシー登録部１１２によって送信ポリシーが登録される。他の一例としては、ポリシー記憶部１１２Ａは、トラフィック量を推定するために、後述のトラフィック推定部１１６によって参照される。
【００３４】
一態様としては、ポリシー記憶部１１２Ａは、送信元ノードＩＤ、送信イベント型及びイベント送信周期が対応付けられたデータを記憶する。ここで言う「送信元ノードＩＤ」とは、イベントを送信するノードを識別するための識別子を指す。また、「送信イベント型」とは、ノードから送信されるイベントの型を指す。また、「イベント送信周期」とは、イベントが送信される送信間隔を指す。
【００３５】
図５は、ポリシー記憶部１１２Ａに記憶される情報の構成例を示す図である。図５に示す例では、図１に示したＧＷノード３１０が、ある家に収容されたホームＧＷ「ＧＷ−Ａ」である。図５に示す１番目のレコードは、送信元ノードであるＧＷ−Ａから電力使用量超過イベントが送信される場合には、電力使用量超過イベントが０秒間保留、つまりリアルタイムで送信されることを示す。また、図５に示す２番目のレコードは、送信元ノードであるＧＷ−Ａから人消費電力イベントが送信される場合には、人消費電力イベントが１０分間保留された後に送信されることを示す。このとき、保留状態にある人消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。また、図５に示す３番目のレコードは、送信元ノードであるＧＷ−Ａから機器消費電力イベントが送信される場合には、機器消費電力イベントが６０分間保留された後に送信されることを示す。このとき、保留状態にある機器消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。
【００３６】
トポロジ取得部１１３は、センサネットワークの接続形態、いわゆるトポロジを取得する処理部である。一態様としては、トポロジ取得部１１３は、センサネットワークに収容されたセンサノード２１０や後述のＧＷノード３１０を含む下位ノードから、当該下位ノードがどの上位ノードに接続されているかを表すノード間の接続情報を取得する。その上で、トポロジ取得部１１３は、下位ノードから取得したノード間の接続情報を後述のトポロジ記憶部１１３Ａに登録する。なお、以下では、下位ノードがＵＰｎＰ（Universal  Plug  and  Play）プロトコル等を用いて上位ノードを自動認識することによって検出した接続情報を取得する場合を想定するが、サーバノード１１０が下位ノードとの接続状況を認識することとしてもよい。
【００３７】
トポロジ記憶部１１３Ａは、センサネットワークのトポロジを記憶する記憶部である。一例としては、トポロジ記憶部１１３Ａは、下位ノードからノード間の接続情報が取得された場合に、トポロジ取得部１１３によってノード間の接続情報がトポロジとして登録される。他の一例としては、トポロジ記憶部１１３Ａは、モジュールの配備先を決定するために、後述の配備先決定部１１７によって参照される。
【００３８】
一態様としては、トポロジ記憶部１１３Ａは、下位ノードＩＤ及び上位ノードＩＤが対応付けられたデータを記憶する。ここで言う「下位ノードＩＤ」は、下位ノードを識別するための識別子を指す。また、「上位ノードＩＤ」は、下位ノードに接続される上位ノードを識別するための識別子を指す。
【００３９】
図６は、トポロジ記憶部１１３Ａに記憶される情報の構成例を示す図である。図６の例では、図１に示したセンサノード２１０Ｘがある家に収容された電力センサＸであり、センサノード２１０Ｙが同じ家に収容された電力センサＹである。図６に示す例では、電力センサＸ及び電力センサＹの上位ノードがＧＷ−ＡであるＧＷノード３１０であり、ＧＷ−Ａの上位ノードがクラウドであるサーバノード１１０である。
【００４０】
イベント受信部１１４は、イベントを受信する処理部である。一態様としては、イベント受信部１１４は、センサノード２１０や後述のＧＷノード３１０などの下位ノードからイベントを受信すると、当該イベントを後述のイベント記憶部１１４Ａに格納する。このとき、イベント受信部１１４は、下位ノードから受信したイベントを後述の発生イベント登録部１１４Ｃにも出力する。なお、イベント受信部１１４では、必ずしもセンサノード２１０によってセンシングされた未処理のイベントが受信されるとは限らず、下位ノードに配備されたモジュールによって処理が実行されることにより、処理済みのイベントが受信される場合もある。
【００４１】
イベント記憶部１１４Ａは、イベントを記憶する記憶部である。このイベント記憶部１１４Ａは、イベントの発生をトリガーとしてサービスを提供するサービス提供用のアプリケーションに参照させるために設けられる。
【００４２】
一例としては、イベント記憶部１１４Ａは、下位ノードからイベントが受信された場合に、イベント受信部１１４によってイベントが登録される。他の一例としては、イベント記憶部１１４Ａは、モジュールによってイベントが処理された場合に、後述のモジュール実行部１１４Ｂによって処理実行後のイベントが登録される。
【００４３】
一態様としては、イベント記憶部１１４Ａは、イベント型名、イベント発生時刻、イベント属性及びイベントデータ量が対応付けられたデータを記憶する。ここで言う「イベント型」は、イベントの種類を識別するための識別子を指す。また、「イベント発生時刻」は、イベントが発生した時刻、すなわちセンサノード２１０によってセンシングされた時刻を指す。また、「イベント属性」とは、イベントの性質や由来を指す。例えば、「イベント属性」は、イベントとして採取されるセンシングデータ又はそれが処理されたデータの種類、イベントが発生した発生ノードや発生ノードを含む複数のノードを集約する集約属性などの属性データの集合を指す。また、「イベントデータ量」とは、イベント受信部１１４によって受信されたイベントのデータ量を指す。なお、以下では、イベント属性に含まれる各属性データが属性名と属性値のペアを含んで構成される場合を示す。
【００４４】
図７は、イベント記憶部１１４Ａに記憶される情報の構成例を示す図である。図７に示す１番目のレコードは、２０１１年７月１３日の１２時にユーザＡによって使用された機器Ａで１００Ｗの消費電力が計測されたという機器消費電力イベントを示し、さらに、このイベントのデータ量が１００バイトであることを示す。図７に示す２番目のレコードは、２０１１年７月１３日の１２時００分１０秒にユーザＡによって３００Ｗの電力が消費されたという人消費電力イベントを示し、さらに、このイベントのデータ量が１００バイトであることを示す。図７に示す３番目のレコードは、２０１１年７月１３日の１２時００分１０秒にユーザＡによって３００Ｗの電力が消費されたという電力使用量超過イベントを示し、さらに、このイベントのデータ量が１００バイトであることを示す。なお、図７に示す例では、所定の時刻に発生したイベントが登録される場合を例示したが、これに限定されるものではなく、例えば、所定の時間間隔で発生するイベントについてはイベントが時系列データとして登録される場合もある。
【００４５】
このように、イベント記憶部１１４Ａに記憶されたイベントは、サービス提供用のアプリケーションによってサービス提供処理を実行するトリガーとして参照される。なお、図７に示す１番目のレコードは、発生イベントとしてセンサノード２１０によってセンシングされた未処理のイベントを例示し、２番目及び３番目のレコードは、モジュールによって集約処理されたイベントを例示する。
【００４６】
モジュール実行部１１４Ｂは、サーバノード１１０に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部１１４Ｂは、イベント受信部１１４によってイベントが受信された場合に、受信されたイベントを入力イベント型とするモジュールがサーバノード１１０に配備されているか否かを判定する。このとき、モジュール実行部１１４Ｂは、モジュールがサーバノード１１０に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部１１４Ｂは、モジュールによって処理が実行されたデータを新たなイベントとしてイベント記憶部１１４Ａに格納する。
【００４７】
発生イベント登録部１１４Ｃは、センサノード２１０やＧＷノード３１０などの下位ノードで発生した発生イベントを登録する処理部である。一態様としては、発生イベント登録部１１４Ｃは、イベント受信部１１４によってイベントが受信された場合に、受信されたイベントが発生イベントとして後述の発生イベント情報記憶部１１４Ｄに既に登録されているか否かを判定する。このとき、発生イベント登録部１１４Ｃは、発生イベントとして未だ登録されていない場合には、下位ノードから受信したイベントを後述の発生イベント情報記憶部１１４Ｄに登録する。
【００４８】
発生イベント情報記憶部１１４Ｄは、発生イベントに関する情報を記憶する記憶部である。この発生イベント情報記憶部１１４Ｄは、センサノード２１０またはＧＷノード３１０などの下位ノードでどのようなイベントが発生しているのかを管理するために設けられる。
【００４９】
一例としては、発生イベント情報記憶部１１４Ｄは、下位ノードからイベントが受信された場合に、発生イベント登録部１１４Ｃによって発生イベントが登録される。他の一例としては、発生イベント情報記憶部１１４Ｄは、モジュールの配備先を決定するために、後述の配備先決定部１１７によって参照される。
【００５０】
一態様としては、発生イベント情報記憶部１１４Ｄは、発生ノードＩＤ、発生イベント型及び発生イベント属性が対応付けられたデータを記憶する。ここで言う「発生ノードＩＤ」は、発生ノードを識別するための識別子を指す。また、「発生イベント型」は、発生イベントの種類を識別するための識別子を指す。また、「発生イベント属性」は、発生ノードのイベント属性を指す。
【００５１】
図８は、発生イベント情報記憶部１１４Ｄに記憶される情報の構成例を示す図である。図８に示す１番目のレコードは、電力センサＸで機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＡによって使用された機器Ａで１００Ｗの電力が消費されたことを示す。図８に示す２番目のレコードは、電力センサＹで機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＡによって使用された機器Ｂで１００Ｗの電力が消費されたことを示す。なお、図８の例では、発生イベントとしてセンサノード２１０によってセンシングされた未加工のイベントを例示したが、モジュールが下位ノードに配備された場合には、モジュールによって処理がなされた新たなイベントも発生イベントとして格納される。
【００５２】
トラフィック集計部１１５は、イベントの送信にかかるトラフィック量を集計する処理部である。一例としては、トラフィック集計部１１５は、イベント記憶部１１４Ａに記憶されたイベント発生時刻及びイベントデータ量から、単位時間あたりに送信されるイベントのデータ量を示すトラフィック量をイベントごとに算出する。トラフィック集計部１１５は、トラフィック量を後述のトラフィック記憶部１１５Ａに格納する。
【００５３】
トラフィック記憶部１１５Ａは、イベントの送信にかかるトラフィック量を記憶する記憶部である。一例としては、トラフィック記憶部１１５Ａは、イベント記憶部１１４Ａにイベントが登録された場合に、トラフィック集計部１１５によって集計されたトラフィック量が格納される。また、他の一例としては、トラフィック記憶部１１５Ａは、トラフィック量を推定するために、後述のトラフィック推定部１１６によって参照される。また、他の一例としては、トラフィック記憶部１１５Ａは、モジュールの配備先を決定するために、後述の配備先決定部１１７によって参照される。
【００５４】
一態様としては、トラフィック記憶部１１５Ａは、イベント型及びトラフィック量が対応付けられたデータを記憶する。ここで言う「トラフィック量」とは、単位時間あたりに送信されるイベントのデータ量を指す。
【００５５】
図９は、トラフィック記憶部１１５Ａに記憶される情報の構成例を示す図である。図９に示す１番目のレコードは、１時間当たりに送信される電力使用量超過イベントのデータ量が１０キロバイトであることを示す。また、図９に示す２番目のレコードは、１時間当たりに送信される人消費電力イベントのデータ量が１００キロバイトであることを示す。また、図９に示す３番目のレコードは、１時間当たりに送信される機器消費電力イベントのデータ量が１メガバイトであることを示す。
【００５６】
トラフィック推定部１１６は、送信ポリシーに応じてイベントが送信される場合のトラフィック量を推定する処理部である。一態様としては、トラフィック推定部１１６は、送信ポリシーに定義された送信間隔の間に適用可能な圧縮アルゴリズムによって圧縮されたイベントの送信にかかるトラフィック量を推定トラフィック量として推定する。また、他の態様としては、トラフィック推定部１１６は、同一の送信イベント型となるイベントが過去に圧縮して送信された場合の統計データを用いてトラフィック量を推定しても良い。
【００５７】
ここで、イベントを圧縮するために適用される圧縮アルゴリズムとしては、ランレングス法やハフマン法など、既存の圧縮アルゴリズムが適用される。一例としては、送信イベントに適用される圧縮アルゴリズムは、送信イベント型ごとに送信ポリシーとして設定されても良い。また、他の例としては、送信イベントに適用される圧縮アルゴリズムは、送信元ノードごとに設定されても良く、あるいは、送信間隔の間に適用可能な圧縮アルゴリズムが適宜選択されても良い。
【００５８】
推定トラフィック記憶部１１６Ａは、推定トラフィック量を記憶する記憶部である。一例としては、推定トラフィック記憶部１１６Ａは、トラフィック推定部１１６によって推定された推定トラフィック量が格納される。また、他の例としては、推定トラフィック記憶部１１６Ａは、モジュールの配備先を決定するために、後述の配備先決定部１１７によって参照される。
【００５９】
一態様としては、推定トラフィック記憶部１１６Ａは、送信元ノードＩＤ、送信イベント型及び推定トラフィック量が対応付けられたデータを記憶する。ここで言う「推定トラフィック量」とは、送信ポリシーに応じてイベントが送信される場合に、単位時間あたりに送信されるイベントのデータ量を指す。
【００６０】
図１０は、推定トラフィック記憶部１１６Ａに記憶される情報の構成例を示す図である。図１０に示す１番目のレコードは、図５の送信ポリシーに応じてＧＷ−Ａから電力使用量超過イベントが送信される場合に、１時間当たりに送信されるデータ量が１０キロバイトであることを示す。ここで、電力使用量超過イベントの推定トラフィック量が図９のトラフィック量と同じデータ量となるのは、電力使用量超過イベントがリアルタイムで送信されるからである。また、図１０に示す２番目のレコードは、図５の送信ポリシーに応じてＧＷ−Ａから人消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が５０キロバイトであることを示す。ここで、人消費電力イベントの推定トラフィック量が図９のトラフィック量より小さいデータ量となるのは、人消費電力イベントが１０分間保留される間に適用可能な圧縮アルゴリズムによって圧縮されるからである。また、図１０に示す３番目のレコードは、図５の送信ポリシーに応じてＧＷ−Ａから機器消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が１００キロバイトであることを示す。ここで、機器消費電力イベントの推定トラフィック量が図９のトラフィック量より小さいデータ量となるのは、機器消費電力イベントが６０分間保留される間に適用可能な圧縮アルゴリズムによって圧縮されるからである。
【００６１】
配備先情報記憶部１１７Ａは、モジュールの配備先に関する情報を記憶する記憶部である。一例としては、配備先情報記憶部１１７Ａは、センサネットワークのトポロジに変化があった場合に、後述の配備先決定部１１７によってアクセスされる。
【００６２】
一態様としては、配備先情報記憶部１１７Ａは、モジュール識別子、入力イベント型、集約属性名、発生イベント属性、発生ノードＩＤ、入力総トラフィック量、推定出力総トラフィック量及び配備先ノードＩＤが対応付けられたデータを記憶する。ここで言う「入力総トラフィック量」は、モジュールが配備されるセンサノード２１０、後述のＧＷノード３１０またはサーバノード１１０に入力されるイベントの送信にかかるトラフィック量の総和を指す。また、「推定出力総トラフィック量」モジュールが配備されるセンサノード２１０、後述のＧＷノード３１０またはサーバノード１１０から出力されるイベントの送信にかかる推定トラフィック量の総和を指す。また、「配備先ノードＩＤ」は、モジュールが配備されるセンサノード２１０、後述のＧＷノード３１０またはサーバノード１１０を識別するための識別子を指す。なお、推定出力総トラフィック量は、第１トラフィック量の一例であり、入力総トラフィック量は、第２トラフィック量の一例である。
【００６３】
図１１は、配備先情報記憶部１１７Ａに記憶される情報の構成例を示す図である。この図１１の例では、センサネットワークのトポロジに変化が検出されて後述の配備先決定部１１７によるモジュールの配備先の決定が開始された段階のテーブル例を図示している。すなわち、図１１に示すように、全カラムのうちモジュール識別子、入力イベント型及び集約属性名がモジュール定義記憶部１１１Ｂから複写された段階のテーブル例が図示されている。以降の配備先ノードＩＤを始めとする残りのカラムが埋められる遷移については、図１２や図１３などを用いて後述する。
【００６４】
配備先決定部１１７は、モジュールの配備先を決定する処理部である。一態様としては、配備先決定部１１７は、トポロジ記憶部１１３Ａが更新された場合、すなわちセンサネットワークのトポロジに変化があった場合に、以下に説明する処理を実行する。
【００６５】
これを説明すると、配備先決定部１１７は、モジュール定義記憶部１１１Ｂに記憶されたモジュールの定義のうちモジュール識別子、入力イベント型及び集約属性名のカラムデータを配備先情報記憶部１１７Ａの該当カラムに書き込む。このとき、配備先情報記憶部１１７Ａは、図１１に示すように、発生イベント属性、発生ノードＩＤ及び配備先ノードＩＤのカラムがブランクの状態となる。
【００６６】
続いて、配備先決定部１１７は、発生イベント情報記憶部１１４Ｄに記憶された発生ノードＩＤのうち、発生イベント型が未配備のモジュールの入力イベント型に含まれる発生ノードＩＤを抽出する。さらに、配備先決定部１１７は、前述のように抽出した発生ノードＩＤ間で未配備のモジュールに定義された集約属性の属性名と同一の集約属性に属する属性値が同一であるノードを抽出する。その後、配備先決定部１１７は、抽出結果として得られた発生ノードＩＤ及び発生ノードＩＤに対応付けられた発生イベント属性を配備先情報記憶部１１７Ａに書き込む。
【００６７】
このとき、配備先決定部１１７は、発生ノードＩＤが配備先情報記憶部１１７Ａに複数登録された場合には、次のような処理を実行する。すなわち、配備先決定部１１７は、トポロジ記憶部１１３Ａに記憶された上位ノードＩＤのうち各発生ノードＩＤに対応するセンサノード２１０又は後述のＧＷノード３１０が下位ノードとして全て収容され、かつ最も下位ノード側であるノードＩＤを抽出する。
【００６８】
続いて、配備先決定部１１７は、入力イベント型と一致するトラフィック量をトラフィック記憶部１１５Ａから抽出し、配備先情報記憶部１１７Ａの「入力総トラフィック量」に格納する。このとき、トラフィック記憶部１１５Ａから複数のトラフィック量が抽出される場合には、配備先決定部１１７は、抽出された複数のトラフィック量の総和を「入力総トラフィック量」として格納する。
【００６９】
続いて、配備先決定部１１７は、モジュールの出力イベント型と一致する送信イベントが、抽出したノードＩＤと一致する送信元ノードＩＤのノードから送信される場合の推定トラフィック量を推定トラフィック記憶部１１６Ａから抽出する。そして、配備先決定部１１７は、抽出した推定トラフィック量を配備先情報記憶部１１７Ａの「推定出力総トラフィック量」に格納する。このとき、推定トラフィック記憶部１１６Ａから複数の推定トラフィック量が抽出される場合には、配備先決定部１１７は、抽出された複数の推定トラフィック量の総和を「推定出力総トラフィック量」として格納する。
【００７０】
続いて、配備先決定部１１７は、入力総トラフィック量と推定出力総トラフィック量とを比較し、推定出力総トラフィック量が入力総トラフィック量以下である場合には、抽出したノードＩＤを配備先ノードＩＤのカラムに格納する。
【００７１】
一方、推定出力総トラフィック量が入力総トラフィック量より大きい場合には、注したノードの上位ノードについて入力総トラフィック量と推定出力総トラフィック量とを比較する。そして、推定出力総トラフィック量が入力総トラフィック量以下となるノードを抽出するまで同様の処理を繰り返し、当該ノードが存在しない場合には、クラウドを配備先ノードＩＤのカラムに格納する。
【００７２】
このようにして配備先情報記憶部１１７Ａに配備先ノードＩＤが格納されると、モジュール記憶部１１１Ａに記憶されたモジュールが後述のモジュール送信部１１８によって配備先ノードＩＤに対応するノードへ送信される。また、配備先ノードＩＤを送信元ノードＩＤとする送信ポリシーがポリシー記憶部１１２Ａから抽出され、抽出された送信ポリシーが後述のポリシー送信部１１９によって配備先ノードＩＤに対応するノードへ送信される。
【００７３】
その後、配備先決定部１１７は、モジュールの配備によって下位ノードから新たに取得される発生イベントが発生イベント情報記憶部１１４Ｄに更新されるまで待機してから、未配備のモジュールがなくなるまでモジュールの配備を繰り返し実行する。
【００７４】
図２の説明に戻る。モジュール送信部１１８は、センサノード２１０または後述のＧＷノード３１０などの下位ノードにモジュールを送信する処理部である。一態様としては、モジュール送信部１１８は、配備先決定部１１７によって配備先ノードＩＤが配備先情報記憶部１１７Ａに登録されると、モジュール記憶部１１１Ａに記憶されたモジュールを配備先ノードＩＤに対応するノードへ送信する。
【００７５】
ポリシー送信部１１９は、センサノード２１０または後述のＧＷノード３１０などの下位ノードに送信ポリシーを送信する処理部である。一態様としては、ポリシー送信部１１９は、配備先決定部１１７によって配備先ノードＩＤが配備先情報記憶部１１７Ａに登録されると、登録された配備先ノードＩＤを送信元ノードＩＤとする送信ポリシーをポリシー記憶部１１２Ａから抽出する。そして、ポリシー送信部１１９は、抽出した送信ポリシーを配備先ノードＩＤに対応するノードへ送信する。
【００７６】
ここで、図１１〜図１３を用いて、モジュール配備の具体例について説明する。図１２は、図１１に示した配備先情報記憶部１１７Ａからの配備状況の遷移を示す図である。図１３は、図１２に示した配備先情報記憶部１１７Ａからの配備状況の遷移を示す図である。
【００７７】
モジュールの配備が開始されると、図８に示した発生イベント情報記憶部１１４Ｄと図１１に示した配備先情報記憶部１１７Ａとの間で発生イベント型及び入力イベント型のカラムが配備先決定部１１７によって比較される。このとき、モジュール「電力集計」の入力イベント型と発生ノードＩＤ「電力センサＸ」及び発生ノードＩＤ「電力センサＹ」の発生イベント型が「機器消費電力」で一致する。よって、モジュール「電力集計」に関し、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」が配備先決定部１１７によって抽出される。
【００７８】
さらに、未配備のモジュール「電力集計」に定義された集約属性と、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」に対応付けられた発生イベント属性とが配備先決定部１１７によって比較される。
【００７９】
モジュール「電力集計」は、イベントの集約処理を実行するモジュールであるので、図４に示すように、モジュール「電力集計」に集約属性の属性名「ユーザＩＤ」が定義されている。一方、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」の発生イベント属性には、図８に示すように、属性名「ユーザＩＤ」及び属性値「ユーザＡ」のペアを含んで構成される集約属性の属性データが含まれる。したがって、図１２に示す網掛け部分のように、モジュール「電力集計」に発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」とその発生イベント属性とが配備先情報記憶部１１７Ａの該当カラムに書き込まれる。
【００８０】
このモジュール「電力集計」は、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」の２つの発生ノードが存在する。このため、図６に示したトポロジ記憶部１１３Ａに記憶された上位ノードＩＤのうち発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」の両方の発生ノードが下位ノードとして全て収容され、かつ最も下位ノード側であるノードＩＤを抽出する。図６の例で言えば、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」の発生ノードは、いずれもＧＷ−ＡであるＧＷノード３１０に接続されている。このため、配備先ノードの候補ノードとして「ＧＷ−Ａ」が抽出される。
【００８１】
ここで、配備先ノードの候補ノードである「ＧＷ−Ａ」にモジュール「電力集計」が配備される場合と配備されない場合とでそれぞれトラフィック量が算出され、比較される。すなわち、モジュール「電力集計」が配備されない場合のトラフィック量としては、モジュール「電力集計」の入力イベント型「機器消費電力」と一致するトラフィック量がトラフィック記憶部１１５Ａから抽出される。図９の例で言えば、イベント型「機器消費電力」のトラフィック量は「１ＭＢ／ｈ」である。このため、図１３に示す網掛け部分のように、配備先情報記憶部１１７Ａの「入力総トラフィック量」に「１ＭＢ／ｈ」が格納される。
【００８２】
続いて、モジュール「電力集計」が配備される場合のトラフィック量としては、モジュール「電力集計」の出力イベント型「電力使用量超過」、「人消費電力」及び「機器消費電力」とそれぞれ一致する送信イベント型の推定トラフィック量が抽出される。図１０の例で言えば、送信イベント型「電力使用量超過」の推定トラフィック量は「１０ＫＢ／ｈ」であり、「人消費電力」の推定トラフィック量は「５０ＫＢ／ｈ」であり、「機器消費電力」の推定トラフィック量は「１００ＫＢ／ｈ」である。このように、複数の推定トラフィック量が抽出される場合には、それらの総和である「１６０ＫＢ／ｈ」が「推定出力総トラフィック量」として算出される。このため、図１３に示す網掛け部分のように、配備先情報記憶部１１７Ａの「推定出力総トラフィック量」に「１６０ＫＢ／ｈ」が格納される。
【００８３】
この場合、配備先情報記憶部１１７Ａに格納された推定出力総トラフィック量「１６０ＫＢ／ｈ」が入力総トラフィック量「１ＭＢ／ｈ」以下である。このため、図１３に示す網掛け部分のように、先に候補ノードとして抽出された「ＧＷ−Ａ」が配備先ノードＩＤのカラムに格納される。これによって、モジュール「電力集計」が「ＧＷ−Ａ」であるＧＷノード３１０に配備されることになる。
【００８４】
このようにして配備先情報記憶部１１７Ａに配備先ノードＩＤ「ＧＷ−Ａ」が格納されると、モジュール「電力集計」が配備先ノードＩＤ「ＧＷ−Ａ」であるＧＷノード３１０へ送信される。また、送信元ノードＩＤ「ＧＷ−Ａ」に対応する送信ポリシーがポリシー記憶部１１２Ａから抽出され、抽出された送信ポリシーもＧＷノード３１０へ送信される。
【００８５】
なお、モジュール登録部１１１、ポリシー登録部１１２、トポロジ取得部１１３と、イベント受信部１１４、モジュール実行部１１４Ｂ、発生イベント登録部１１４Ｃには、各種の集積回路や電子回路を採用できる。また、トラフィック集計部１１５、トラフィック推定部１１６、配備先決定部１１７、モジュール送信部１１８、ポリシー送信部１１９には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００８６】
また、モジュール記憶部１１１Ａ、モジュール定義記憶部１１１Ｂ、ポリシー記憶部１１２Ａ、トポロジ記憶部１１３Ａには、半導体メモリ素子や記憶装置を採用できる。また、イベント記憶部１１４Ａ、発生イベント情報記憶部１１４Ｄ、トラフィック記憶部１１５Ａ、推定トラフィック記憶部１１６Ａ、配備先情報記憶部１１７Ａには、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子としては、ＶＲＡＭ（Video  Random  Access  Memory）、ＲＡＭ（Random  Access  Memory)やフラッシュメモリ（flash  memory）などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【００８７】
［センサノードの構成］
次に、本実施例に係るセンサノードの機能的構成について説明する。図１４は、実施例１に係るセンサノード２１０の機能的構成を示すブロック図である。図１４に示すセンサノード２１０は、センサ情報受信部２１１と、モジュール受信部２１２と、モジュール実行部２１３と、ポリシー受信部２１４と、ポリシー記憶部２１４Ａと、ポリシー制御部２１５と、イベント送信部２１６とを有する。さらに、図１４に示すセンサノード２１０は、トポロジ検出部２１７と、トポロジ送信部２１８とを有する。
【００８８】
センサ情報受信部２１１は、センサノード２１０に内蔵または付設されたセンサデバイスからセンサ情報を受信する処理部である。一態様としては、センサ情報受信部２１１は、センサノード２１０に温度センサが内蔵されている場合には、温度センサによって計測された温度を受信する。他の一態様としては、センサ情報受信部２１１は、センサノード２１０に湿度センサが内蔵されている場合には、湿度センサによって計測された湿度を受信する。なお、センサノード２１０に複数のセンサデバイスが内蔵されている場合には、各々のセンサデバイスに対応してセンサ情報受信部２１１が設けられる。
【００８９】
モジュール受信部２１２は、サーバノード１１０からモジュールを受信する処理部である。このモジュール受信部２１２によって受信されたモジュールは、モジュールの実行制御を行うモジュール実行部２１３に出力される。
【００９０】
モジュール実行部２１３は、センサノード２１０に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部２１３は、センサ情報受信部２１１によってセンサ情報が受信された場合に、受信されたセンサ情報を入力イベント型とするモジュールがセンサノード２１０に配備されているか否かを判定する。このとき、モジュール実行部２１３は、モジュールがセンサノード２１０に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部２１３は、モジュールによって処理が実行されたデータを、上位ノードへ送信されるイベントを表す送信イベントとして後述のポリシー制御部２１５へ出力する。なお、モジュールがセンサノード２１０に配備されていない場合には、モジュール実行部２１３は、センサ情報を処理せずにそのまま送信イベントとして後述のポリシー制御部２１５へ出力する。
【００９１】
ポリシー受信部２１４は、サーバノード１１０から送信ポリシーを受信する処理部である。一態様としては、ポリシー受信部２１４は、ノードから送信されるイベントの送信ポリシーをサーバノード１１０から受信する。そして、ポリシー受信部２１４は、受信した送信ポリシーを後述のポリシー記憶部２１４Ａに格納する。
【００９２】
ポリシー記憶部２１４Ａは、送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部２１４Ａは、ノードから送信されるイベントの送信ポリシーを記憶する。また、他の態様としては、ポリシー記憶部２１４Ａは、送信ポリシーに応じて送信イベントを送信するために、後述のポリシー制御部２１５によって参照される。一態様としては、ポリシー記憶部２１４Ａは、図５に示したポリシー記憶部１１２Ａのうち自装置のノードＩＤを送信元ノードＩＤとする送信ポリシーを記憶する。
【００９３】
ポリシー制御部２１５は、送信ポリシーに応じて送信イベントの送信を制御する処理部である。一態様としては、ポリシー制御部２１５は、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合に、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する。そして、サーバノード１１０は、保留状態にある送信イベントを圧縮する。
【００９４】
ここで、送信イベントを圧縮するために適用される圧縮アルゴリズムとしては、ランレングス法やハフマン法など、既存の圧縮アルゴリズムが適用される。一例としては、送信イベントに適用される圧縮アルゴリズムは、送信イベント型ごとに送信ポリシーとして設定されても良い。また、他の例としては、送信イベントに適用される圧縮アルゴリズムは、送信元ノードごとに設定されても良く、あるいは、送信間隔の間に適用可能な圧縮アルゴリズムが適宜選択されても良い。
【００９５】
そして、ポリシー制御部２１５は、保留時間が経過した場合に、圧縮した送信イベントをイベント送信部２１６へ出力する。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがない場合には、ポリシー制御部２１５は、モジュール実行部２１３から出力された送信イベントをそのままイベント送信部２１６へ出力する。
【００９６】
イベント送信部２１６は、イベントを上位ノードに送信する処理部である。一態様としては、イベント送信部２１６は、ポリシー制御部２１５によって出力された送信イベントを上位ノードに送信する。このとき、イベント送信部２１６は、センサ情報を上位ノードに送信する場合には、発生ノードであるセンサノード２１０のノードＩＤ、自装置を含む複数のノードを集約する集約属性の属性名及び属性値をセンサ情報に付加する。その上で、イベント送信部２１６は、センサ情報とともに発生ノードのノードＩＤ及び集約属性を含むイベントを上位ノードに送信する。
【００９７】
ここで、上記の「集約属性」の属性名及び属性値は、センサノード２１０の製造段階でデバイスドライバなどに組み込んでおくことができる。例えば、センサデバイスが温度センサ、湿度センサや温湿度センサである場合には、温度や湿度が計測される枠組みである「家ＩＤ」を始め、「部屋ＩＤ」や「階ＩＤ」などの集約属性をイベントに付加するようにデバイスドライバを構成しておく。その上で、センサノード２１０がサーバノード１１０との間で通信コネクションが確立された段階で、既にサービスに加入している他のセンサノード２１０に先だって付与されている家ＩＤの属性値をサーバノード１１０から自動的に取得することもできる。なお、サーバノード１１０にＸ家またはＹ家の間取り等が登録されている場合には、「家ＩＤ」の他、「部屋ＩＤ」や「階ＩＤ」などの集約属性の属性値をサーバノード１１０から自動的に取得することもできる。
【００９８】
トポロジ検出部２１７は、センサノード２１０がどの上位ノードに接続されているかを表すノード間の接続情報をトポロジとして検出する処理部である。一態様としては、トポロジ検出部２１７は、ＵＰｎＰプロトコル等を用いて、センサノード２１０と同一のローカルネットワーク内に存在するＧＷノード３１０を認識したり、サーバノード１１０からＧＷノード３１０の存在の通知を受けたりすることによってトポロジを検出する。なお、サーバノード１１０とのネットワーク接続の確立は、サーバノード１１０のＵＲＬ等のアドレスを設定しておくことにより実現できる。
【００９９】
トポロジ送信部２１８は、トポロジ検出部２１７によって検出されたトポロジをサーバノード１１０に送信する処理部である。一態様としては、トポロジ送信部２１８は、センサノード２１０が接続されている上位ノードのノードＩＤをサーバノード１１０に送信する。
【０１００】
［ＧＷノードの構成］
次に、本実施例に係るセンサノードの機能的構成について説明する。図１５は、実施例１に係るＧＷノード３１０の機能的構成を示すブロック図である。図１５に示すＧＷノード３１０は、イベント受信部３１１と、モジュール受信部３１２と、モジュール実行部３１３と、ポリシー受信部３１４と、ポリシー記憶部３１４Ａと、ポリシー制御部３１５と、イベント送信部３１６とを有する。さらに、図１５に示すＧＷノード３１０は、トポロジ検出部３１７と、トポロジ送信部３１８とを有する。
【０１０１】
イベント受信部３１１は、イベントを受信する処理部である。一態様としては、イベント受信部３１１は、下位ノードであるセンサノード２１０や他のＧＷノード３１０からイベントを受信する。
【０１０２】
モジュール受信部３１２は、サーバノード１１０からモジュールを受信する処理部である。このモジュール受信部３１２によって受信されたモジュールは、モジュールの実行制御を行うモジュール実行部３１３に出力される。
【０１０３】
モジュール実行部３１３は、ＧＷノード３１０に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部３１３は、イベント受信部３１１によってイベントが受信された場合に、受信されたイベントを入力イベント型とするモジュールがＧＷノード３１０に配備されているか否かを判定する。このとき、モジュール実行部３１３は、モジュールがＧＷノード３１０に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部３１３は、モジュールによって処理が実行されたデータを、上位ノードへ送信されるイベントを表す送信イベントとして後述のポリシー制御部３１５へ出力する。なお、モジュールがＧＷノード３１０に配備されていない場合には、モジュール実行部３１３は、イベントを処理せずにそのまま送信イベントとして後述のポリシー制御部３１５へ出力する。
【０１０４】
ポリシー受信部３１４は、サーバノード１１０から送信ポリシーを受信する処理部である。一態様としては、ポリシー受信部３１４は、ノードから送信されるイベントの送信ポリシーをサーバノード１１０から受信する。そして、ポリシー受信部３１４は、受信した送信ポリシーを後述のポリシー記憶部３１４Ａに格納する。
【０１０５】
ポリシー記憶部３１４Ａは、送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部３１４Ａは、ノードから送信されるイベントの送信ポリシーを記憶する。また、他の態様としては、ポリシー記憶部３１４Ａは、送信ポリシーに応じて送信イベントを送信するために、後述のポリシー制御部３１５によって参照される。一態様としては、ポリシー記憶部３１４Ａは、図５に示したポリシー記憶部１１２Ａのうち自装置のノードＩＤを送信元ノードＩＤとする送信ポリシーを記憶する。
【０１０６】
ポリシー制御部３１５は、送信ポリシーに応じて送信イベントの送信を制御する処理部である。一態様としては、ポリシー制御部３１５は、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合に、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する。そして、サーバノード１１０は、保留状態にある送信イベントを圧縮する。
【０１０７】
そして、ポリシー制御部３１５は、保留時間が経過した場合に、圧縮した送信イベントをイベント送信部３１６へ出力する。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがない場合には、ポリシー制御部３１５は、モジュール実行部３１５から出力された送信イベントをそのままイベント送信部３１６へ出力する。
【０１０８】
イベント送信部３１６は、イベントを上位ノードに送信する処理部である。一態様としては、イベント送信部３１６は、ポリシー制御部３１５によって出力された送信イベントを上位ノードに送信する。
【０１０９】
トポロジ検出部３１７は、ＧＷノード３１０がどの上位ノードに接続されているかを表すノード間の接続情報をトポロジとして検出する処理部である。一態様としては、トポロジ検出部３１７は、ＵＰｎＰプロトコル等を用いて、ＧＷノード３１０と同一のローカルネットワーク内に存在するＧＷノード３１０を認識したり、サーバノード１１０からＧＷノード３１０の存在の通知を受けたりすることによってトポロジを検出する。なお、サーバノード１１０とのネットワーク接続の確立は、サーバノード１１０のＵＲＬ等のアドレスを設定しておくことにより実現できる。
【０１１０】
トポロジ送信部３１８は、トポロジ検出部３１７によって検出されたトポロジをサーバノード１１０に送信する処理部である。一態様としては、トポロジ送信部３１８は、ＧＷノード３１０が接続されている上位ノードのノードＩＤをサーバノード１１０に送信する。
【０１１１】
［処理の流れ］
次に、本実施例に係るセンサネットワークシステムの処理の流れについて説明する。なお、ここでは、センサノード２１０によって実行される（１）全体処理を説明した後に、サーバノード１１０によって実行される（２）モジュール配備処理を説明することとする。
【０１１２】
（１）全体処理
図１６は、実施例１に係るセンサノード２１０における全体処理の手順を示すフローチャートである。この全体処理は、センサノード２１０の電源がＯＮ状態である限り、繰り返し実行される。
【０１１３】
図１６に示すように、新たな上位ノードを検出した場合（ステップＳ１０１肯定）には、センサノード２１０は、当該上位ノードのノードＩＤをサーバノード１１０へ送信する（ステップＳ１０２）。なお、新たな上位ノードを検出しなかった場合（ステップＳ１０１否定）には、ステップＳ１０２の処理を実行せずにステップＳ１０３の処理へ移行する。
【０１１４】
送信ポリシーを受信した場合（ステップＳ１０３肯定）には、センサノード２１０は、送信ポリシーを登録する（ステップＳ１０４）。なお、送信ポリシーを受信しなかった場合（ステップＳ１０３否定）には、センサノード２１０は、ステップＳ１０４の処理を実行せずにステップＳ１０５の処理へ移行する。
【０１１５】
続いて、サーバノード１１０からモジュールを受信した場合（ステップＳ１０５肯定）には、センサノード２１０は、サーバノード１１０から受信したモジュールを配備する（ステップＳ１０６）。なお、モジュールを受信しなかった場合（ステップＳ１０５否定）には、サーバノード１１０は、ステップＳ１０６の処理を実行せずにステップＳ１０７の処理へ移行する。
【０１１６】
そして、センサデバイスからセンサ情報を受信した場合（ステップＳ１０７肯定）には、センサノード２１０は、受信したセンサ情報を入力イベント型とするモジュールが配備されているか否かを判定する（ステップＳ１０８）。なお、センサ情報を受信しなかった場合（ステップＳ１０７否定）には、ステップＳ１０１の処理に戻る。
【０１１７】
モジュールが配備されている場合（ステップＳ１０８肯定）には、センサノード２１０は、モジュールを実行することによってイベントを処理する（ステップＳ１０９）。そして、センサノード２１０は、処理結果を送信イベントとする（ステップＳ１１０）。
【０１１８】
一方、モジュールが配備されていない場合（ステップＳ１０８否定）には、センサノード２１０は、センサデバイスから受信したセンサ情報に発生ノードＩＤや集約属性などを付加した上で送信イベントとする（ステップＳ１１１）。そして、センサノード２１０は、ステップＳ１１２の処理へ移行する。
【０１１９】
続いて、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合（ステップＳ１１２肯定）には、サーバノード１１０は、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する（ステップＳ１１３）。そして、サーバノード１１０は、保留状態にある送信イベントを圧縮する（ステップＳ１１４）。
【０１２０】
そして、サーバノード１１０は、送信イベントを上位ノードへ送信する（ステップＳ１１５）。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがなかった場合（ステップＳ１１２否定）には、サーバノード１１０は、ステップＳ１１３及びステップＳ１１４の処理を実行せずにステップＳ１１５の処理へ移行する。
【０１２１】
このようにして、センサノード２１０は、上記のステップＳ１０１〜ステップＳ１１５までの処理を電源がＯＦＦ状態になるまで繰り返し実行する。
【０１２２】
なお、ここでは、センサノード２１０の全体処理について説明したが、中継ノードであるＧＷノード３１０によって実行される全体処理も一部を除き同様である。すなわち、ＧＷノード３１０の場合には、上記のステップＳ１０７においてセンサ情報の代わりにイベントが受信される点が相違する点を除き、センサノード２１０と同様である。
【０１２３】
（２）モジュール配備処理
図１７は、実施例１に係るモジュール配備処理の手順を示すフローチャートである。このモジュール配備処理は、一例としては、センサネットワークのトポロジが変化した場合に処理が起動される。
【０１２４】
図１７に示すように、サーバノード１１０は、発生イベント情報記憶部１１４Ｄが更新されるのを待機する（ステップＳ２０１）。そして、発生イベント情報記憶部１１４Ｄが更新されると、全てのモジュールの配備が終了したか否かが判断されるが（ステップＳ２０２）、ここではいずれのモジュールについても処理が終了していないので（ステップＳ２０２否定）、ステップＳ２０３の処理へ移行する。
【０１２５】
続いて、サーバノード１１０は、トラフィック量を集計し、トラフィック記憶部１１５Ａに格納する（ステップＳ２０３）。そして、サーバノード１１０は、送信ポリシーに応じてイベントが送信される場合の推定トラフィック量を推定する（ステップＳ２０４）。
【０１２６】
続いて、サーバノード１１０は、モジュール定義記憶部１１１Ｂに記憶されたモジュールの定義のうちモジュール識別子、入力イベント型及び集約属性名のカラムデータを配備先情報記憶部１１７Ａの該当カラムに格納する（ステップＳ２０５）。
【０１２７】
そして、サーバノード１１０は、ステップＳ２０５の処理を実行後に、下記に説明するステップＳ２０６の処理を実行する。すなわち、サーバノード１１０は、発生イベント情報記憶部１１４Ｄに記憶された発生ノードＩＤのうち、発生イベント型が未配備のモジュールの入力イベント型に含まれる発生ノードＩＤを抽出する。さらに、サーバノード１１０は、前述のように抽出した発生ノードＩＤ間で未配備のモジュールに定義された集約属性の属性名と同一の集約属性に属する属性値が同一であるノードを抽出する。
【０１２８】
その後、サーバノード１１０は、抽出結果として得られた発生ノードＩＤ及び発生ノードＩＤに対応付けられた発生イベント属性を配備先情報記憶部１１７Ａに書き込む（ステップＳ２０７）。
【０１２９】
このとき、発生ノードＩＤの数が「０」である場合（ステップＳ２０８肯定）には、下位ノードから通知される発生イベントが発生イベント情報記憶部１１４Ｄに登録し切れていない可能性がある。この場合には、ステップＳ２０１の処理に移行する。
【０１３０】
ここで、発生ノードＩＤの数が複数である場合（ステップＳ２０９肯定）には、下記に説明するステップＳ２１０の処理を実行する。すなわち、サーバノード１１０は、トポロジ記憶部１１３Ａに記憶された上位ノードＩＤのうち各発生ノードＩＤに対応するセンサノード２１０又はＧＷノード３１０が下位ノードとして全て収容され、かつ最も下位ノード側であるノードＩＤを候補ノードＩＤとして抽出する。なお、発生ノードＩＤの数が１つである場合（ステップＳ２０９否定）には、サーバノード１１０は、モジュールを配備するノードに選択の余地がないので、先に抽出結果として得られた発生ノードＩＤを候補ノードＩＤとして抽出する。そして、サーバノード１１０は、ステップＳ２１１の処理に移行する。
【０１３１】
続いて、サーバノード１１０は、モジュールの入力イベント型と一致するトラフィック量をトラフィック記憶部１１５Ａから抽出し、配備先情報記憶部１１７Ａの「入力総トラフィック量」に格納する（ステップＳ２１１）。
【０１３２】
そして、サーバノード１１０は、ステップＳ２１１の処理を実行後に、下記に説明するステップＳ２１２の処理を実行する。すなわち、サーバノード１１０は、モジュールの出力イベント型と一致する送信イベントが、候補ノードＩＤと一致する送信元ノードＩＤのノードから送信される場合の推定トラフィック量を推定トラフィック記憶部１１６Ａから抽出する。そして、サーバノード１１０は、抽出した推定トラフィック量を配備先情報記憶部１１７Ａの「推定出力総トラフィック量」に格納する。このとき、推定トラフィック記憶部１１６Ａから複数の推定トラフィック量が抽出される場合には、サーバノード１１０は、抽出された複数の推定トラフィック量の総和を「推定出力総トラフィック量」として格納する。
【０１３３】
続いて、サーバノード１１０は、入力総トラフィック量と推定出力総トラフィック量とを比較し、推定出力総トラフィック量が入力総トラフィック量より大きい場合（ステップＳ２１３肯定）には、次のように処理する。すなわち、サーバノード１１０は、候補ノードＩＤの上位ノードＩＤを新たな候補ノードＩＤとし（ステップＳ２１４）、ステップＳ２１２の処理に移行する。
【０１３４】
一方、推定出力総トラフィック量が入力総トラフィック量以下である場合（ステップＳ２１３否定）には、サーバノード１１０は、候補ノードＩＤを配備先ノードＩＤのカラムに格納する（ステップＳ２１５）。
【０１３５】
続いて、サーバノード１１０は、配備先ノードＩＤを送信元ノードＩＤとする送信ポリシーをポリシー記憶部１１２Ａから抽出し、抽出した送信ポリシーを配備先ノードＩＤに対応するノードへ送信する（ステップＳ２１６）。そして、サーバノード１１０は、モジュール記憶部１１１Ａに記憶されたモジュールを配備先ノードＩＤに対応するノードへ送信し（ステップＳ２１７）、ステップＳ２０１の処理へ戻る。
【０１３６】
その後、サーバノード１１０は、全てのモジュールの配備が終了するまで（ステップＳ２０２否定）、上記のステップＳ２０１〜ステップＳ２１７までの処理を繰り返し実行する。そして、全てのモジュールの配備が終了すると（ステップＳ２０２肯定）、処理を終了する。
【０１３７】
［実施例１の効果］
次に、本実施例に係るサーバノード１１０の効果について説明する。サーバノード１１０は、イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定する。サーバノード１１０は、推定した前記第１トラフィック量と、モジュールをノードに配備しない場合に当該ノードから送信されるイベントの第２トラフィック量とを比較する。サーバノード１１０は、第１トラフィック量が第２トラフィック量以下であれば、モジュールをノードに配備する。このため、サーバノード１１０は、確実にトラフィック量を抑制することができる。一例としては、サーバノード１１０は、モジュールによって処理された処理結果のみならず、処理前のセンシングデータも参照用のデータとして収集する場合においても、確実にトラフィック量を抑制することができる。また、他の例としては、サーバノード１１０は、モジュールを分散配備するので、サーバノード１１０に負荷が集中することも防止できる。
【０１３８】
また、例えば、サーバノード１１０は、ポリシーとして、送信イベントの送信間隔を用い、当該送信間隔の間に当該送信イベントを圧縮した場合のデータ量を算出することで第１トラフィック量を推定する。このため、サーバノード１１０は、モジュールをノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を正確に算出することができる。
【実施例２】
【０１３９】
ところで、上記の実施例１では、送信ポリシーがモジュールの開発者によって定義される場合を説明したが、本発明はこれに限定されるものではなく、例えば、送信イベントがサーバノード１１０にて参照された履歴に基づいて定義されても良い。そこで、本実施例では、送信ポリシーが送信イベントの履歴に基づいて定義される場合を説明する。
【０１４０】
［サーバノードの構成］
図１８は、実施例２に係るサーバノード１２０の機能的構成を示すブロック図である。図１８に示すサーバノード１２０は、図２に示したサーバノード１１０に比べて、ポリシー生成部１２１を有する点が相違する。なお、以下では、上記の実施例１と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。
【０１４１】
ポリシー生成部１２１は、イベントが参照された参照時刻と、イベントが受信された受信時刻との差分に応じて、送信ポリシーを生成する。一態様としては、ポリシー生成部１２１は、図示しない内部メモリを有し、下位ノードからイベントが受信された場合に、当該イベントが受信された受信時刻をイベント型ごとに内部メモリに格納する。ポリシー生成部１２１は、受信されたイベントが、サーバノード１１０によって提供されるサービスの利用者やモジュールの開発者によって参照された参照時刻をイベント型ごとに内部メモリに格納する。続いて、ポリシー生成部１２１は、受信されたイベントの受信時刻及び参照時刻を内部メモリから読み出し、受信時刻及び参照時刻の差分に応じて送信間隔を生成する。一例としては、ポリシー生成部１２１は、受信されたイベントの受信時刻及び参照時刻の差分を算出し、算出した差分を送信元ノードＩＤ及び送信イベント型ごとに集計して平均値を算出する。そして、ポリシー生成部１２１は、算出した平均値を送信間隔として送信ポリシーを生成する。そして、ポリシー生成部１２１は、生成した送信ポリシーをポリシー記憶部１１２Ａに登録する。なお、ここでは、集計した差分の平均値を送信間隔とする例を示したが、これに限定されるものではない。他の例としては、集計した差分のうち最大値を抽出して送信間隔としても良い。
【０１４２】
［実施例２の効果］
このように、本実施例に係るサーバノード１２０は、イベントが参照された参照時刻と、イベントが受信された受信時刻との差分に応じて、送信ポリシーを生成する。そして、サーバノード１２０は、生成した送信ポリシーに応じて、第１トラフィック量を推定する。このため、サーバノード１２０は、サーバノード１２０に収集されたイベントが参照されるまでの時間に基づいて送信ポリシーを定義することができる。
【実施例３】
【０１４３】
上記の実施例では、送信ポリシーによって定義された送信間隔で下位ノードにイベントを送信させる場合を説明したが、本発明はこれに限定されるものではない。例えば、イベントの発生状況に応じて送信ポリシーを適宜更新することで、下位ノードにイベントを送信させる送信間隔を適宜変更しても良い。そこで、本実施例では、イベントの発生状況に応じて送信ポリシーを更新する場合を説明する。
【０１４４】
［システム構成］
本実施例に係るセンサネットワークシステムのシステム構成について説明する。図１９は、実施例３に係るセンサネットワークシステムのシステム構成を示す図である。図１９に示すように、センサネットワークシステム３には、サーバノード１３０と、センサノード２１０Ｘ１，２１０Ｘ２，２１０Ｙ１及び２１０Ｙ２と、ＧＷノード３１０とが収容される。なお、図１９に示すセンサノード２１０Ｘ１，２１０Ｘ２，２１０Ｙ１及び２１０Ｙ２の機能は、図１に示したセンサノード２１０の機能と同様である。また、以下では、上記の実施例１と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。
【０１４５】
ここで、図１９に示すセンサノード２１０Ｘ１は、ユーザＡによって使用される機器Ａで消費された電力を検知するものとする。また、図１９に示すセンサノード２１０Ｘ２は、ユーザＡによって使用される機器Ｂで消費された電力を検知するものとする。また、図１９に示すセンサノード２１０Ｙ１は、ユーザＢによって使用される機器Ｃで消費された電力を検知するものとする。また、図１９に示すセンサノード２１０Ｙ２は、ユーザＢによって使用される機器Ｄで消費された電力を検知するものとする。
【０１４６】
［サーバノードの構成］
図２０は、実施例３に係るサーバノード１３０の機能的構成を示すブロック図である。図２０に示すサーバノード１３０は、図２に示したサーバノード１１０に比べて、アラート抽出部１３１及びポリシー更新部１３２を有する点が相違する。また、図２０に示すサーバノード１３０は、図２に示したサーバノード１１０に比べて、記憶部に記憶される情報の一部が相違する。一例としては、ポリシー記憶部１１２Ａ、トポロジ記憶部１１３Ａ、イベント記憶部１１４Ａ、発生イベント情報記憶部１１４Ｄ、トラフィック記憶部１１５Ａ及び推定トラフィック記憶部１１６Ａに記憶される情報の一部が相違する。なお、以下では、上記の実施例１と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。
【０１４７】
ポリシー記憶部１１２Ａは、一例として、送信元ノードＩＤ、送信イベント型、イベント送信属性条件及びイベント送信周期が対応付けられたデータを記憶する。ここで言う「イベント送信属性条件」とは、受信したイベントに応じて更新される送信ポリシーをフィルタリングするために指定される属性の条件を指す。なお、このイベント送信属性条件は、ポリシー登録部１１２によって登録される。一例としては、イベント送信属性条件は、モジュールの開発者によって定義され、ポリシー登録部１１２によって登録される。
【０１４８】
図２１は、ポリシー記憶部１１２Ａに記憶される情報の構成例を示す図である。図２１に示す例では、図５に示した送信ポリシーがユーザＩＤごとに定義された場合を示す。なお、図２１に示す１番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＡに関する電力使用量超過イベントが送信される場合には、電力使用量超過イベントが０秒間保留、つまりリアルタイムで送信されることを示す。また、図２１に示す２番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＢに関する電力使用量超過イベントが送信される場合には、電力使用量超過イベントが０秒間保留、つまりリアルタイムで送信されることを示す。また、図２１に示す３番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＡに関する人消費電力イベントが送信される場合には、人消費電力イベントが１０分間保留された後に送信されることを示す。また、図２１に示す４番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＢに関する人消費電力イベントが送信される場合には、人消費電力イベントが１０分間保留された後に送信されることを示す。また、図２１に示す５番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＡに関する機器消費電力イベントが送信される場合には、機器消費電力イベントが６０分間保留された後に送信されることを示す。また、図２１に示す６番目のレコードは、送信元ノードであるＧＷ−ＡからユーザＢに関する機器消費電力イベントが送信される場合には、機器消費電力イベントが６０分間保留された後に送信されることを示す。なお、保留状態にある人消費電力イベント及び機器消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。
【０１４９】
トポロジ記憶部１１３Ａは、一態様としては、図１９に示したセンサネットワークシステム３のトポロジを記憶する。図２２は、トポロジ記憶部１１３Ａに記憶される情報の構成例を示す図である。図２２の例では、図１９に示したセンサノード２１０Ｘ１が電力センサＸ１であり、センサノード２１０Ｘ２が電力センサＸ２である。また、図２２の例では、図１９に示したセンサノード２１０Ｙ１が電力センサＹ１であり、センサノード２１０Ｙ２が電力センサＹ２である。図２２に示す例では、電力センサＸ１、電力センサＸ２、電力センサＹ１及び電力センサＹ２の上位ノードがＧＷ−ＡであるＧＷノード３１０であり、ＧＷ−Ａの上位ノードがクラウドであるサーバノード１３０である。
【０１５０】
イベント記憶部１１４Ａは、一態様として、図２３に示すイベントを記憶する。図２３は、イベント記憶部１１４Ａに記憶される情報の構成例を示す図である。図２３に示す１番目のレコードは、２０１１年７月１３日の１２時にユーザＡによって使用された機器Ａで１００Ｗの消費電力が計測されたという機器消費電力イベントを示し、さらに、このイベントのデータ量が１００バイトであることを示す。また、図２３に示す例では、イベント受信部１１４によって受信された他のイベントについても同様に、イベント型名、イベント発生時刻、イベント属性及びイベントデータ量が対応付けられたデータを記憶する。さらに、図２３に示す６番目のレコードは、２０１１年７月１３日の１２時３０分にユーザＢによって使用された電力量が所定の値を超過したことを示す電力使用量超過イベントを示し、さらに、このイベントのデータ量が１００バイトであることを示す。
【０１５１】
発生イベント情報記憶部１１４Ｄは、一態様として、図２４に示す発生イベントに関する情報を記憶する。図２４は、発生イベント情報記憶部１１４Ｄに記憶される情報の構成例を示す図である。図２４に示す１番目のレコードは、電力センサＸ１で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＡによって使用された機器Ａで１００Ｗの電力が消費されたことを示す。図２４に示す２番目のレコードは、電力センサＸ２で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＡによって使用された機器Ｂで１００Ｗの電力が消費されたことを示す。図２４に示す３番目のレコードは、電力センサＹ１で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＢによって使用された機器Ｃで１００Ｗの電力が消費されたことを示す。図２４に示す４番目のレコードは、電力センサＹ２で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザＢによって使用された機器Ｄで１００Ｗの電力が消費されたことを示す。
【０１５２】
トラフィック記憶部１１５Ａは、一態様としては、図２５に示したイベントの送信にかかるトラフィック量を記憶する。図２５は、トラフィック記憶部１１５Ａに記憶される情報の構成例を示す図である。図２５に示す１番目のレコードは、１時間当たりに送信されるユーザＡに関する電力使用量超過イベントのデータ量が５キロバイトであることを示す。また、図２５に示す２番目のレコードは、１時間当たりに送信されるユーザＡに関する人消費電力イベントのデータ量が５０キロバイトであることを示す。また、図２５に示す３番目のレコードは、１時間当たりに送信されるユーザＡに関する機器消費電力イベントのデータ量が５００キロバイトであることを示す。また、図２５に示す４番目のレコードは、１時間当たりに送信されるユーザＢに関する電力使用量超過イベントのデータ量が５キロバイトであることを示す。また、図２５に示す５番目のレコードは、１時間当たりに送信されるユーザＢに関する人消費電力イベントのデータ量が５０キロバイトであることを示す。また、図２５に示す６番目のレコードは、１時間当たりに送信されるユーザＢに関する機器消費電力イベントのデータ量が５００キロバイトであることを示す。
【０１５３】
推定トラフィック記憶部１１６Ａは、一例としては、発生イベント属性、送信元ノードＩＤ、送信イベント型及び推定トラフィック量が対応付けられたデータを記憶する。図２６は、推定トラフィック記憶部１１６Ａに記憶される情報の構成例を示す図である。図２６に示す１番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＡに関する電力使用量超過イベントが送信される場合に、１時間当たりに送信されるデータ量が５キロバイトであることを示す。また、図２６に示す２番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＡに関する人消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が２５キロバイトであることを示す。また、図２６に示す３番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＡに関する機器消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が５０キロバイトであることを示す。また、図２６に示す４番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＢに関する電力使用量超過イベントが送信される場合に、１時間当たりに送信されるデータ量が５キロバイトであることを示す。また、図２６に示す５番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＢに関する人消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が２５キロバイトであることを示す。また、図２６に示す６番目のレコードは、図２１の送信ポリシーに応じてＧＷ−ＡからユーザＢに関する機器消費電力イベントが送信される場合に、１時間当たりに送信されるデータ量が５０キロバイトであることを示す。
【０１５４】
配備先情報記憶部１１７Ａは、一態様としては、図２７に示すモジュールの配備先に関する情報を記憶する。図２７は、配備先情報記憶部１１７Ａに記憶される情報の構成例を示す図である。この図２７の例では、センサネットワークのトポロジに変化が検出されて後述の配備先決定部１１７によるモジュールの配備先の決定が開始された段階のテーブル例を図示している。すなわち、図２７に示すように、全カラムのうちモジュール識別子、入力イベント型及び集約属性名がモジュール定義記憶部１１１Ｂから複写された段階のテーブル例が図示されている。
【０１５５】
ここで、図２７〜図２９を用いて、本実施例におけるモジュール配備の具体例について説明する。図２８は、図２７に示した配備先情報記憶部１１７Ａからの配備状況の遷移を示す図である。図２９は、図２８に示した配備先情報記憶部１１７Ａからの配備状況の遷移を示す図である。
【０１５６】
モジュールの配備が開始されると、図２４に示した発生イベント情報記憶部１１４Ｄと図２７に示した配備先情報記憶部１１７Ａとの間で発生イベント型及び入力イベント型のカラムが配備先決定部１１７によって比較される。このとき、モジュール「電力集計」の入力イベント型と発生ノードＩＤ「電力センサＸ１」、「電力センサＸ２」、「電力センサＹ１」及び「電力センサＹ２」の発生イベント型が「機器消費電力」で一致する。よって、モジュール「電力集計」に関し、発生ノードＩＤ「電力センサＸ１」、「電力センサＸ２」、「電力センサＹ１」及び「電力センサＹ２」が配備先決定部１１７によって抽出される。
【０１５７】
さらに、未配備のモジュール「電力集計」に定義された集約属性と、発生ノードＩＤ「電力センサＸ」及び「電力センサＹ」に対応付けられた発生イベント属性とが配備先決定部１１７によって比較される。
【０１５８】
モジュール「電力集計」は、イベントの集約処理を実行するモジュールであるので、図４に示すように、モジュール「電力集計」に集約属性の属性名「ユーザＩＤ」が定義されている。一方、図２４に示すように、発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」の発生イベント属性には、属性名「ユーザＩＤ」及び属性値「ユーザＡ」のペアを含んで構成される集約属性の属性データが含まれる。また、図２４に示すように、発生ノードＩＤ「電力センサＹ１」及び「電力センサＹ２」の発生イベント属性には、属性名「ユーザＩＤ」及び属性値「ユーザＢ」のペアを含んで構成される集約属性の属性データが含まれる。
【０１５９】
これら発生ノードＩＤ「電力センサＸ１」、「電力センサＸ２」、「電力センサＹ１」及び「電力センサＹ２」の発生ノードは、いずれも集約属性の属性名が「ユーザＩＤ」である。その一方で、発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」は、集約属性の属性値「ユーザＡ」であるのに対し、発生ノードＩＤ「電力センサＹ１」及び「電力センサＹ２」は、集約属性の属性値「ユーザＢ」である。
【０１６０】
したがって、モジュール「電力集計」は、ユーザＡ用及びユーザＢ用のモジュールとして独立に配備される。すなわち、図２８に示す網掛け部分のように、ユーザＡ用のモジュール「電力集計」に発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」とその発生イベント属性「ユーザＡ」とが配備先情報記憶部１１７Ａの該当カラムに書き込まれる。さらに、図２８に示す網掛け部分のように、ユーザＢ用のモジュール「電力集計」に発生ノードＩＤ「電力センサＹ１」及び「電力センサＹ２」とその発生イベント属性「ユーザＢ」とが配備先情報記憶部１１７Ａの該当カラムに書き込まれる。
【０１６１】
これら２つのモジュール「電力集計」のうち、ユーザＡ用のモジュール「電力集計」には、発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」の２つの発生ノードが存在する。このため、図２２に示したトポロジ記憶部１１３Ａに記憶された上位ノードＩＤのうち発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」の両方の発生ノードが下位ノードとして全て収容され、かつ最も下位ノード側であるノードＩＤを抽出する。図２２の例で言えば、発生ノードＩＤ「電力センサＸ１」及び「電力センサＸ２」の発生ノードは、いずれもＧＷ−ＡであるＧＷノード３１０に接続されている。このため、ユーザＡ用のモジュール「電力集計」の配備先ノードの候補ノードとして「ＧＷ−Ａ」が抽出される。また、ユーザＢ用のモジュール「電力集計」についても同様の処理を行うことで、ユーザＢ用のモジュール「電力集計」の配備先ノードの候補ノードとしても「ＧＷ−Ａ」が抽出される。
【０１６２】
ここで、配備先ノードの候補ノードである「ＧＷ−Ａ」にモジュール「電力集計」が配備される場合と配備されない場合とでそれぞれトラフィック量が算出され、比較される。すなわち、ユーザＡ用のモジュール「電力集計」が配備されない場合のトラフィック量としては、モジュール「電力集計」の入力イベント型「機器消費電力」と一致するトラフィック量がトラフィック記憶部１１５Ａから抽出される。図２５の例で言えば、イベント型「機器消費電力」のトラフィック量は「５００ＫＢ／ｈ」である。このため、図２９に示す網掛け部分のように、配備先情報記憶部１１７Ａの「入力総トラフィック量」に「５００ＫＢ／ｈ」が格納される。また、ユーザＢ用のモジュール「電力集計」についても同様の処理を行うことで、配備先情報記憶部１１７Ａの「入力総トラフィック量」に「５００ＫＢ／ｈ」が格納される。
【０１６３】
続いて、ユーザＡ用のモジュール「電力集計」が配備される場合のトラフィック量としては、モジュール「電力集計」の出力イベント型「電力使用量超過」、「人消費電力」及び「機器消費電力」とそれぞれ一致する送信イベント型の推定トラフィック量が抽出される。図２６の例で言えば、送信イベント型「電力使用量超過」の推定トラフィック量は「５ＫＢ／ｈ」であり、「人消費電力」の推定トラフィック量は「２５ＫＢ／ｈ」であり、「機器消費電力」の推定トラフィック量は「５０ＫＢ／ｈ」である。このように、複数の推定トラフィック量が抽出される場合には、それらの総和である「８０ＫＢ／ｈ」が「推定出力総トラフィック量」として算出される。このため、図２９に示す網掛け部分のように、配備先情報記憶部１１７Ａの「推定出力総トラフィック量」に「８０ＫＢ／ｈ」が格納される。また、ユーザＢ用のモジュール「電力集計」についても同様の処理を行うことで、配備先情報記憶部１１７Ａの「推定出力総トラフィック量」に「８０ＫＢ／ｈ」が格納される。
【０１６４】
この場合、ユーザＡ用のモジュール「電力集計」について、配備先情報記憶部１１７Ａに格納された推定出力総トラフィック量「８０ＫＢ／ｈ」が入力総トラフィック量「５００ＫＢ／ｈ」以下である。このため、図２９に示す網掛け部分のように、先に候補ノードとして抽出された「ＧＷ−Ａ」が配備先ノードＩＤのカラムに格納される。これによって、ユーザＡ用のモジュール「電力集計」が「ＧＷ−Ａ」であるＧＷノード３１０に配備されることになる。また、ユーザＢ用のモジュール「電力集計」についても同様の処理を行うことで、ユーザＢ用のモジュール「電力集計」が「ＧＷ−Ａ」であるＧＷノード３１０に配備されることになる。
【０１６５】
このようにして配備先情報記憶部１１７Ａに配備先ノードＩＤ「ＧＷ−Ａ」が格納されると、ユーザＡ及びユーザＢの両者のモジュール「電力集計」が配備先ノードＩＤ「ＧＷ−Ａ」であるＧＷノード３１０へ送信される。また、送信元ノードＩＤ「ＧＷ−Ａ」に対応する送信ポリシーがポリシー記憶部１１２Ａから抽出され、抽出された送信ポリシーもＧＷノード３１０へ送信される。
【０１６６】
図２０の説明に戻る。アラート抽出部１３１は、受信したイベントからアラートイベントを抽出する処理部である。一例としては、アラート抽出部１３１は、イベント記憶部１１４Ａにイベントが登録されると、登録されたイベントがアラートイベントか否かを判定する。そして、アラート抽出部１３１は、登録されたイベントがアラートイベントであった場合には、当該イベントのレコードをイベント記憶部１１４Ａから抽出する。アラート抽出部１３１は、抽出したイベントのレコードをポリシー更新部１３２に出力する。なお、アラート抽出部１３１には、抽出対象であるアラートイベントがモジュールの開発者によって予め登録されているものとする。
【０１６７】
一態様としては、アラート抽出部１３１は、図２３の６番目のレコードに示すように、ユーザＢに関する電力使用量超過イベントがイベント記憶部１１４Ａに登録されると、登録された電力使用量超過イベントのレコードをイベント記憶部１１４Ａから抽出する。アラート抽出部１３１は、抽出したユーザＢに関する電力使用量超過イベントのレコードをポリシー更新部１３２に出力する。
【０１６８】
ポリシー更新部１３２は、受信したイベントに応じてポリシーを更新する処理部である。一例としては、ポリシー更新部１３２は、ポリシー記憶部１１２Ａを参照し、アラート抽出部１３１によって抽出されたアラートイベントとイベント送信属性条件が一致する送信ポリシーを特定する。ポリシー更新部１３２は、特定した送信ポリシーのイベント送信周期を０秒に変更する。そして、ポリシー更新部１３２は、変更した送信ポリシーを送信元ノードＩＤに対応するノードへ送信させる。なお、ポリシー更新部１３２は、変更前の送信ポリシーを一時的に記憶しておき、所定の時間が経過した場合に、変更後の送信ポリシーを変更前の送信ポリシーに戻すこととしても良い。
【０１６９】
一態様としては、ポリシー更新部１３２は、アラート抽出部１３１によってユーザＢに関する電力使用量超過イベントが抽出されると、電力使用量超過イベントとイベント送信属性条件「ユーザＢ」が一致する送信ポリシーをポリシー記憶部１１２Ａから特定する。図２１に示した例では、ポリシー更新部１３２は、４番目のレコードに示した送信イベント型「人消費電力」に関する送信ポリシーと、６番目のレコードに示した送信イベント型「機器消費電力」に関する送信ポリシーとを特定する。ポリシー更新部１３２は、図３０に示すように、特定した２つの送信ポリシーのイベント送信周期を「０秒」に変更する。そして、ポリシー更新部１３２は、変更した２つの送信ポリシーを送信元ノードＩＤ「ＧＷ−Ａ」に対応するノードへ送信させる。なお、図３０は、図２１に示したポリシー記憶部１１２Ａからの送信ポリシーの遷移を示す図である。
【０１７０】
［処理の流れ］
次に、本実施例に係るセンサネットワークシステムの処理の流れについて説明する。ここでは、受信したイベントに応じて送信ポリシーを更新するポリシー更新処理について説明する。なお、センサノード２１０又はＧＷノード３１０によって実行される全体処理と、サーバノード１３０によって実行されるモジュール配備処理については、上記の実施例と同様であるので説明を省略する。
【０１７１】
図３１は、実施例３に係るポリシー更新処理の手順を示すフローチャートである。このポリシー更新処理は、サーバノード１３０の電源がＯＮ状態である限り、繰り返し実行される。
【０１７２】
図３１に示すように、サーバノード１３０は、アラートイベントを抽出すると（ステップＳ３０１肯定）、抽出したアラートイベントとイベント送信属性条件が一致する送信ポリシーをポリシー記憶部１１２Ａから特定する（ステップＳ３０２）。
【０１７３】
続いて、サーバノード１３０は、特定した送信ポリシーのイベント送信周期を「０秒」に変更する（ステップＳ３０３）。サーバノード１３０は、変更した送信ポリシーを送信元ノードＩＤに対応するノードへ送信する（ステップＳ３０４）。なお、サーバノード１３０は、アラートイベントを抽出するまでは（ステップＳ３０１否定）、待機状態である。
【０１７４】
［実施例３の効果］
このように、本実施例に係るサーバノード１３０は、受信したイベントに応じて前記ポリシーを更新する。そして、サーバノード１３０は、更新したポリシーに応じてイベントを送信するノードに、更新したポリシーを送信する。このため、サーバノード１３０は、受信したイベントに応じて、そのイベントに関連するイベントの送信間隔を変更することができる。
【０１７５】
一例としては、サーバノード１３０は、送信ポリシーによって下位ノードに一時的に蓄積させた送信イベントを、その送信イベントに関連するアラートイベントの受信に応じて、リアルタイムに送信させることができる。
【０１７６】
なお、本実施例では、イベント送信属性条件としてユーザＩＤが指定される場合を説明したが、本発明はこれに限定されるものではなく、イベントの属性に含まれる情報を適宜指定しても良い。例えば、イベント送信属性条件として機器ＩＤが指定された場合には、所定の機器に関するアラートイベントに応じて、その機器に関連する送信イベントをリアルタイムに取得することができる。
【実施例４】
【０１７７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。
【０１７８】
一例としては、上記の実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１７９】
また、図２，１８，２０に示したサーバノード１１０，１２０，１３０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、サーバノード１１０，１２０，１３０の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１８０】
［プログラム］
図３２は、イベント収集プログラムを実行するコンピュータの一例を示す図である。図３２に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからデータの入力を受け付ける入力装置４０２と、モニタ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る媒体読み取り装置４０４と、他の装置と接続するためのインターフェース装置４０５と、他の装置と無線により接続するための無線通信装置４０６とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）４０７と、ハードディスク装置４０８とを有する。また、各装置４０１〜４０８は、バス４０９に接続される。
【０１８１】
ハードディスク装置４０８には、上記の図２，１８に示したトラフィック推定部１１６及び配備先決定部１１７の各処理部と同様の機能を有するイベント収集プログラムが記憶される。また、ハードディスク装置４０８には、イベント収集プログラムを実現するための各種データが記憶される。
【０１８２】
ＣＰＵ４０１は、ハードディスク装置４０８に記憶された各プログラムを読み出して、ＲＡＭ４０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータを上記の図２，１８に示したトラフィック推定部１１６及び配備先決定部１１７として機能させることができる。
【０１８３】
なお、上記のイベント収集プログラムは、必ずしもハードディスク装置４０８に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ４００が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ４００がこれらからプログラムを読み出して実行するようにしても良い。
【０１８４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１８５】
（付記１）コンピュータによって実行されるイベント収集方法であって、
コンピュータが、
イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
ことを特徴とするイベント収集方法。
【０１８６】
（付記２）前記コンピュータが、
前記ポリシーとして、前記送信イベントの送信間隔を用い、当該送信間隔の間に当該送信イベントを圧縮した場合のデータ量を算出することで、前記第１トラフィック量を推定することを特徴とする付記１に記載のイベント収集方法。
【０１８７】
（付記３）前記コンピュータが、
前記送信イベントが参照された参照時刻と、当該送信イベントが受信された受信時刻との差分に応じて、前記ポリシーを生成し、
生成した前記ポリシーに応じて、前記第１トラフィック量を推定することを特徴とする付記１または２に記載のイベント収集方法。
【０１８８】
（付記４）前記コンピュータが、
受信したイベントに応じて前記ポリシーを更新し、
更新した前記ポリシーに応じてイベントを送信するノードに当該ポリシーを送信することを特徴とする付記１〜３のいずれか一つに記載のイベント収集方法。
【０１８９】
（付記５）コンピュータに、
イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
各処理を実行させることを特徴とするイベント収集プログラム。
【０１９０】
（付記６）前記推定する処理は、前記ポリシーとして、前記送信イベントの送信間隔を用い、当該送信間隔の間に当該送信イベントを圧縮した場合のデータ量を算出することで、前記第１トラフィック量を推定することを特徴とする付記５に記載のイベント収集プログラム。
【０１９１】
（付記７）前記コンピュータに、
前記送信イベントが参照された参照時刻と、当該送信イベントが受信された受信時刻との差分に応じて、前記ポリシーを生成する処理をさらに実行させ、
前記推定する処理は、生成した前記ポリシーに応じて、前記第１トラフィック量を推定することを特徴とする付記５または６に記載のイベント収集プログラム。
【０１９２】
（付記８）前記コンピュータに、
受信したイベントに応じて前記ポリシーを更新し、
更新した前記ポリシーに応じてイベントを送信するノードに当該ポリシーを送信する処理をさらに実行させることを特徴とする付記５〜７のいずれか一つに記載のイベント収集プログラム。
【０１９３】
（付記９）イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第１トラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定し、
推定した前記第１トラフィック量と、前記モジュールを前記ノードに配備しない場合に当該ノードから送信される前記イベントの第２トラフィック量とを比較し、
前記第１トラフィック量が前記第２トラフィック量以下であれば、前記モジュールを前記ノードに配備する
各処理を実行する処理部を有することを特徴とする情報処理装置。
【０１９４】
（付記１０）前記推定する処理は、前記ポリシーとして、前記送信イベントの送信間隔を用い、当該送信間隔の間に当該送信イベントを圧縮した場合のデータ量を算出することで、前記第１トラフィック量を推定する各処理を実行する処理部を有することを特徴とする付記９に記載の情報処理装置。
【０１９５】
（付記１１）前記送信イベントが参照された参照時刻と、当該送信イベントが受信された受信時刻との差分に応じて、前記ポリシーを生成する処理をさらに実行し、
前記推定する処理は、生成した前記ポリシーに応じて、前記第１トラフィック量を推定する各処理を実行する処理部を有することを特徴とする付記９または１０に記載の情報処理装置。
【０１９６】
（付記１２）受信したイベントに応じて前記ポリシーを更新し、
更新した前記ポリシーに応じてイベントを送信するノードに当該ポリシーを送信する処理をさらに実行することを特徴とする付記９〜１１のいずれか一つに記載の情報処理装置。
【符号の説明】
【０１９７】
１１０，１２０，１３０      サーバノード
１１１      モジュール登録部
１１１Ａ      モジュール記憶部
１１１Ｂ      モジュール定義記憶部
１１２      ポリシー登録部
１１２Ａ      ポリシー記憶部
１１３      トポロジ取得部
１１３Ａ      トポロジ記憶部
１１４      イベント受信部
１１４Ａ      イベント記憶部
１１４Ｂ      モジュール実行部
１１４Ｃ      発生イベント登録部
１１４Ｄ      発生イベント情報記憶部
１１５      トラフィック集計部
１１５Ａ      トラフィック記憶部
１１６      トラフィック推定部
１１６Ａ      推定トラフィック記憶部
１１７      配備先決定部
１１７Ａ      配備先情報記憶部
１１８      モジュール送信部
１１９      ポリシー送信部
１２１      ポリシー生成部
１３１      アラート抽出部
１３２      ポリシー更新部
４００      コンピュータ
４０１      ＣＰＵ
４０２      入力装置
４０３      モニタ
４０４      媒体読み取り装置
４０５      インターフェース装置
４０６      無線通信装置
４０７      ＲＡＭ
４０８      ハードディスク装置
４０９      バス
【図１】
0005835007.tif 000002
【図２】
0005835007.tif 000003
【図３】
0005835007.tif 000004
【図４】
0005835007.tif 000005
【図５】
0005835007.tif 000006
【図６】
0005835007.tif 000007
【図７】
0005835007.tif 000008
【図８】
0005835007.tif 000009
【図９】
0005835007.tif 000010
【図１０】
0005835007.tif 000011
【図１１】
0005835007.tif 000012
【図１２】
0005835007.tif 000013
【図１３】
0005835007.tif 000014
【図１４】
0005835007.tif 000015
【図１５】
0005835007.tif 000016
【図１６】
0005835007.tif 000017
【図１７】
0005835007.tif 000018
【図１８】
0005835007.tif 000019
【図１９】
0005835007.tif 000020
【図２０】
0005835007.tif 000021
【図２１】
0005835007.tif 000022
【図２２】
0005835007.tif 000023
【図２３】
0005835007.tif 000024
【図２４】
0005835007.tif 000025
【図２５】
0005835007.tif 000026
【図２６】
0005835007.tif 000027
【図２７】
0005835007.tif 000028
【図２８】
0005835007.tif 000029
【図２９】
0005835007.tif 000030
【図３０】
0005835007.tif 000031
【図３１】
0005835007.tif 000032
【図３２】
0005835007.tif 000033