以下に、本願の開示するイベント収集方法、イベント収集プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
まず、本実施例に係るセンサネットワークシステムのシステム構成について説明する。図1は、実施例1に係るセンサネットワークシステムのシステム構成を示す図である。図1に示すセンサネットワークシステム1は、センサノード210によってセンシングされたセンシングデータをイベントとして収集し、収集したイベントに応じて各種のサービスを提供するものである。
図1に示すように、センサネットワークシステム1には、サーバノード110と、センサノード210X及び210Yと、GW(gateway)ノード310とが収容される。この図1の例では、ある1つの家に収容されたセンサノード210X及び210Yと、GWノード310とから、イベントデータがサーバノード110へ収集される。なお、以下では、センサノード210X及び210Yを区別なく総称する場合に「センサノード210」と記載する。
サーバノード110とGWノード310との間は、ネットワーク5を介して通信可能に接続される。かかるネットワーク5の一例としては、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)などの通信網が挙げられる。なお、センサネットワークシステム1に収容されるセンサノード210及びGWノード310の数は図示の例に限定されるものではなく、任意の数のセンサノード210及びGWノード310を収容する場合に適用することができる。以下では、ルートノードであるサーバノード110以外のセンサノード210やGWノード310のことを「下位ノード」と総称する。また、センサノード210、GWノード310及びサーバノード110のことを単に「ノード」と総称する。
サーバノード110は、センサネットワークのルートノードとして機能し、イベントに応じて各種のサービスを提供するサーバ装置である。例えば、サーバノード110は、センサノード210やGWノード310から受信したイベントを加工する加工処理を実行するモジュールを自装置よりも下位に位置するノードに配備することによってイベントを分散処理させる。かかるモジュールには、サービス提供用のアプリケーションによって実行されるサービス提供処理のトリガーとなるイベントのフィルタリング処理や集約処理が組み込まれる。
センサノード210は、センサ付きの通信端末である。センサノード210の一例としては、パーソナルコンピュータやその周辺機器、音響機器、スマートフォンや携帯電話機、PHS(Personal Handyphone System)などの携帯端末、家電製品などの各種の機器が挙げられる。また、センサノード210に搭載されるセンサの一例としては、電力を計測する電力センサ、温度を計測する温度センサ、湿度を計測する湿度センサなどが挙げられる。なお、ここでは、センサノード210に搭載されるセンサの例として電力を計測する電力センサを例示するが、これに限定されるものではない。例えば、センサノード210には、GPS(Global Positioning System)センサ、加速度センサやジャイロセンサなどの任意のセンサを搭載できる。
例えば、センサノード210は、ある機器が消費した電力をイベントとして収集する。そして、収集したイベントを自装置よりも上位に位置するノードに送信する。また、例えば、センサノード210は、収集したイベントの処理を実行するモジュールが自装置に配備されている場合には、収集したイベントの処理を実行し、処理により生成された出力イベントを自装置よりも上位に位置するノードに送信する。
GWノード310は、サーバノード110とセンサノード210との間の通信を中継するゲートウェイである。GWノード310の一例としては、ある家に設置されたホームゲートウェイが挙げられる。
例えば、GWノード310は、自装置よりも下位に位置する他のGWノード310又はセンサノード210からイベントを受信し、受信したイベントを自装置よりも上位に位置するノードに送信する。また、例えば、GWノード310は、受信したイベントの処理を実行するモジュールが自装置に配備されている場合には、受信したイベントの処理を実行し、処理により生成されたイベントを自装置よりも上位に位置するノードに送信する。
ここで、本実施例に係るサーバノード110は、イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントのトラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定する。続いて、サーバノード110は、推定したトラフィック量と、モジュールをノードに配備しない場合に当該ノードから送信されるイベントのトラフィック量とを比較する。そして、サーバノード110は、モジュールをノードに配備した場合のトラフィック量が、配備しない場合のトラフィック量以下であれば、モジュールをノードに配備する。このため、サーバノード110は、確実にトラフィック量を抑制することができる。
[サーバノードの構成]
次に、本実施例に係るサーバノードの機能的構成について説明する。図2は、実施例1に係るサーバノードの機能的構成を示すブロック図である。なお、サーバノード110は、図2に示す機能部以外にも既知のサーバ装置が有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能を有するものとする。
図2に示すように、サーバノード110は、モジュール登録部111と、モジュール記憶部111Aと、モジュール定義記憶部111Bと、ポリシー登録部112と、ポリシー記憶部112Aと、トポロジ取得部113と、トポロジ記憶部113Aとを有する。さらに、サーバノード110は、イベント受信部114と、イベント記憶部114Aと、モジュール実行部114Bと、発生イベント登録部114Cと、発生イベント情報記憶部114Dとを有する。さらに、サーバノード110は、トラフィック集計部115と、トラフィック記憶部115Aと、トラフィック推定部116と、推定トラフィック記憶部116Aと、配備先情報記憶部117Aと、配備先決定部117とを有する。さらに、サーバノード110は、モジュール送信部118と、ポリシー送信部119とを有する。
モジュール登録部111は、モジュールを登録する処理部である。一態様としては、モジュール登録部111は、モジュールの開発者によって各種のサービス提供処理のトリガーとなるイベントをフィルタリングまたは集約するようにプログラミングされたモジュールのアップロードを受け付ける。すると、モジュール登録部111は、サーバノード110にアップロードされたモジュールを後述のモジュール記憶部111Aに登録する。さらに、モジュール登録部111は、アップロードされたモジュールに関する定義を開発者が使用する端末装置を介して受け付け、受け付けたモジュールに関する定義を後述のモジュール定義記憶部111Bに登録する。
モジュール記憶部111Aは、モジュールを記憶する記憶部である。一例としては、モジュール記憶部111Aは、モジュールがアップロードされた場合に、モジュール登録部111によってモジュールが登録される。他の一例としては、モジュール記憶部111Aは、センサノード210や後述のGWノード310などの下位ノードにモジュールを配備する場合に、後述のモジュール送信部118によって参照される。
一態様としては、モジュール記憶部111Aは、モジュール識別子とバイナリコードが対応付けられたデータを記憶する。ここで言う「モジュール識別子」は、モジュールを識別するための識別子を指す。例えば、C言語でプログラミングされたモジュールには関数名を付与したり、Java(登録商標)言語でプログラミングされたモジュールにはクラス名を付与したりするなど、開発に使用されたプログラム言語に応じて識別子を付与することができる。また、「バイナリコード」は、モジュール本体となるコンパイル済みのバイナリデータを指す。
図3は、モジュール記憶部111Aに記憶される情報の構成例を示す図である。図3の例では、モジュール識別子「電力集計」とそのバイナリコードとが対応付けられた例を示している。この「電力集計」は、機器によって消費された電力を示す機器消費電力を入力イベントとして処理するモジュールのクラス名を指す。
なお、図3の例では、モジュールのバイナリコードを記憶する場合を例示したが、必ずしもバイナリ形式でモジュールを記憶する必要はなく、バイナリ形式以外のデータを記憶することとしてもかまわない。例えば、モジュールがスクリプト言語である場合には、スクリプトが記述されたテキストデータを記憶することとしてもよい。また、コンパイル前のソースコードを記憶することとしてもかまわない。この場合には、モジュールがセンサノード210等の下位ノードに配備される段階でコンパイルするか、あるいは配備先の下位ノードでコンパイルさせることとすればよい。
モジュール定義記憶部111Bは、モジュールに関する定義を記憶する記憶部である。一例としては、モジュール定義記憶部111Bは、モジュールとともにモジュールに関する定義がアップロードされた場合に、モジュール登録部111によってモジュールの定義が登録される。他の一例としては、モジュール定義記憶部111Bは、モジュールの配備先を決定するために、後述の配備先決定部117によって参照される。
一態様としては、モジュール定義記憶部111Bは、モジュール識別子、入力イベント型、出力イベント型及び集約属性名が対応付けられたデータを記憶する。ここで言う「入力イベント型」とは、モジュールによって実行される処理の入力となるイベントの型を指す。また、「出力イベント型」とは、モジュールによって実行された処理の出力となるイベントの型を指す。また、「集約属性名」とは、複数のノードを集約する枠組みである集約属性の名称を指す。
図4は、モジュール定義記憶部111Bに記憶される情報の構成例を示す図である。図4に示すモジュール識別子「電力集計」の例では、機器消費電力イベントが入力されて、ユーザごとに集計処理された人消費電力イベントが出力されることを示す。また、この「電力集計」の例では、機器消費電力イベントが入力されて、電力使用量が超過しているか否かを、閾値、例えば300Wを用いて判定し、電力使用量超過イベントが出力されることを示す。また、この「電力集計」の例では、入力された機器消費電力イベントがそのまま参照用のデータとして出力されることを示す。すなわち、この「電力集計」の例では、機器消費電力イベントが入力されて、機器消費電力イベント、人消費電力イベント及び電力使用量超過イベントが出力されることとなる。また、この「電力集計」の例では、1度の処理で機器消費電力イベントが入力され、同一のユーザIDに対応付けられた機器消費電力イベントが集約対象となるので、集約属性名としてユーザIDが付与されている。
ポリシー登録部112は、ノードから送信されるイベントの送信ポリシーを登録する処理部である。一態様としては、ポリシー登録部112は、モジュールによって出力されるイベントを、モジュールが配備されたノードに所定の送信間隔で送信させるよう、モジュールの開発者によって定義された送信ポリシーのアップロードを受け付ける。すると、ポリシー登録部112は、サーバノード110にアップロードされた送信ポリシーを後述のポリシー記憶部112Aに登録する。なお、この送信ポリシーには、送信間隔の間に送信されるイベントを圧縮するよう、所定の圧縮アルゴリズムが送信イベント型ごとに定義されても良い。
ポリシー記憶部112Aは、ノードから送信されるイベントの送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部112Aは、送信ポリシーがアップロードされた場合に、ポリシー登録部112によって送信ポリシーが登録される。他の一例としては、ポリシー記憶部112Aは、トラフィック量を推定するために、後述のトラフィック推定部116によって参照される。
一態様としては、ポリシー記憶部112Aは、送信元ノードID、送信イベント型及びイベント送信周期が対応付けられたデータを記憶する。ここで言う「送信元ノードID」とは、イベントを送信するノードを識別するための識別子を指す。また、「送信イベント型」とは、ノードから送信されるイベントの型を指す。また、「イベント送信周期」とは、イベントが送信される送信間隔を指す。
図5は、ポリシー記憶部112Aに記憶される情報の構成例を示す図である。図5に示す例では、図1に示したGWノード310が、ある家に収容されたホームGW「GW−A」である。図5に示す1番目のレコードは、送信元ノードであるGW−Aから電力使用量超過イベントが送信される場合には、電力使用量超過イベントが0秒間保留、つまりリアルタイムで送信されることを示す。また、図5に示す2番目のレコードは、送信元ノードであるGW−Aから人消費電力イベントが送信される場合には、人消費電力イベントが10分間保留された後に送信されることを示す。このとき、保留状態にある人消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。また、図5に示す3番目のレコードは、送信元ノードであるGW−Aから機器消費電力イベントが送信される場合には、機器消費電力イベントが60分間保留された後に送信されることを示す。このとき、保留状態にある機器消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。
トポロジ取得部113は、センサネットワークの接続形態、いわゆるトポロジを取得する処理部である。一態様としては、トポロジ取得部113は、センサネットワークに収容されたセンサノード210や後述のGWノード310を含む下位ノードから、当該下位ノードがどの上位ノードに接続されているかを表すノード間の接続情報を取得する。その上で、トポロジ取得部113は、下位ノードから取得したノード間の接続情報を後述のトポロジ記憶部113Aに登録する。なお、以下では、下位ノードがUPnP(Universal Plug and Play)プロトコル等を用いて上位ノードを自動認識することによって検出した接続情報を取得する場合を想定するが、サーバノード110が下位ノードとの接続状況を認識することとしてもよい。
トポロジ記憶部113Aは、センサネットワークのトポロジを記憶する記憶部である。一例としては、トポロジ記憶部113Aは、下位ノードからノード間の接続情報が取得された場合に、トポロジ取得部113によってノード間の接続情報がトポロジとして登録される。他の一例としては、トポロジ記憶部113Aは、モジュールの配備先を決定するために、後述の配備先決定部117によって参照される。
一態様としては、トポロジ記憶部113Aは、下位ノードID及び上位ノードIDが対応付けられたデータを記憶する。ここで言う「下位ノードID」は、下位ノードを識別するための識別子を指す。また、「上位ノードID」は、下位ノードに接続される上位ノードを識別するための識別子を指す。
図6は、トポロジ記憶部113Aに記憶される情報の構成例を示す図である。図6の例では、図1に示したセンサノード210Xがある家に収容された電力センサXであり、センサノード210Yが同じ家に収容された電力センサYである。図6に示す例では、電力センサX及び電力センサYの上位ノードがGW−AであるGWノード310であり、GW−Aの上位ノードがクラウドであるサーバノード110である。
イベント受信部114は、イベントを受信する処理部である。一態様としては、イベント受信部114は、センサノード210や後述のGWノード310などの下位ノードからイベントを受信すると、当該イベントを後述のイベント記憶部114Aに格納する。このとき、イベント受信部114は、下位ノードから受信したイベントを後述の発生イベント登録部114Cにも出力する。なお、イベント受信部114では、必ずしもセンサノード210によってセンシングされた未処理のイベントが受信されるとは限らず、下位ノードに配備されたモジュールによって処理が実行されることにより、処理済みのイベントが受信される場合もある。
イベント記憶部114Aは、イベントを記憶する記憶部である。このイベント記憶部114Aは、イベントの発生をトリガーとしてサービスを提供するサービス提供用のアプリケーションに参照させるために設けられる。
一例としては、イベント記憶部114Aは、下位ノードからイベントが受信された場合に、イベント受信部114によってイベントが登録される。他の一例としては、イベント記憶部114Aは、モジュールによってイベントが処理された場合に、後述のモジュール実行部114Bによって処理実行後のイベントが登録される。
一態様としては、イベント記憶部114Aは、イベント型名、イベント発生時刻、イベント属性及びイベントデータ量が対応付けられたデータを記憶する。ここで言う「イベント型」は、イベントの種類を識別するための識別子を指す。また、「イベント発生時刻」は、イベントが発生した時刻、すなわちセンサノード210によってセンシングされた時刻を指す。また、「イベント属性」とは、イベントの性質や由来を指す。例えば、「イベント属性」は、イベントとして採取されるセンシングデータ又はそれが処理されたデータの種類、イベントが発生した発生ノードや発生ノードを含む複数のノードを集約する集約属性などの属性データの集合を指す。また、「イベントデータ量」とは、イベント受信部114によって受信されたイベントのデータ量を指す。なお、以下では、イベント属性に含まれる各属性データが属性名と属性値のペアを含んで構成される場合を示す。
図7は、イベント記憶部114Aに記憶される情報の構成例を示す図である。図7に示す1番目のレコードは、2011年7月13日の12時にユーザAによって使用された機器Aで100Wの消費電力が計測されたという機器消費電力イベントを示し、さらに、このイベントのデータ量が100バイトであることを示す。図7に示す2番目のレコードは、2011年7月13日の12時00分10秒にユーザAによって300Wの電力が消費されたという人消費電力イベントを示し、さらに、このイベントのデータ量が100バイトであることを示す。図7に示す3番目のレコードは、2011年7月13日の12時00分10秒にユーザAによって300Wの電力が消費されたという電力使用量超過イベントを示し、さらに、このイベントのデータ量が100バイトであることを示す。なお、図7に示す例では、所定の時刻に発生したイベントが登録される場合を例示したが、これに限定されるものではなく、例えば、所定の時間間隔で発生するイベントについてはイベントが時系列データとして登録される場合もある。
このように、イベント記憶部114Aに記憶されたイベントは、サービス提供用のアプリケーションによってサービス提供処理を実行するトリガーとして参照される。なお、図7に示す1番目のレコードは、発生イベントとしてセンサノード210によってセンシングされた未処理のイベントを例示し、2番目及び3番目のレコードは、モジュールによって集約処理されたイベントを例示する。
モジュール実行部114Bは、サーバノード110に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部114Bは、イベント受信部114によってイベントが受信された場合に、受信されたイベントを入力イベント型とするモジュールがサーバノード110に配備されているか否かを判定する。このとき、モジュール実行部114Bは、モジュールがサーバノード110に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部114Bは、モジュールによって処理が実行されたデータを新たなイベントとしてイベント記憶部114Aに格納する。
発生イベント登録部114Cは、センサノード210やGWノード310などの下位ノードで発生した発生イベントを登録する処理部である。一態様としては、発生イベント登録部114Cは、イベント受信部114によってイベントが受信された場合に、受信されたイベントが発生イベントとして後述の発生イベント情報記憶部114Dに既に登録されているか否かを判定する。このとき、発生イベント登録部114Cは、発生イベントとして未だ登録されていない場合には、下位ノードから受信したイベントを後述の発生イベント情報記憶部114Dに登録する。
発生イベント情報記憶部114Dは、発生イベントに関する情報を記憶する記憶部である。この発生イベント情報記憶部114Dは、センサノード210またはGWノード310などの下位ノードでどのようなイベントが発生しているのかを管理するために設けられる。
一例としては、発生イベント情報記憶部114Dは、下位ノードからイベントが受信された場合に、発生イベント登録部114Cによって発生イベントが登録される。他の一例としては、発生イベント情報記憶部114Dは、モジュールの配備先を決定するために、後述の配備先決定部117によって参照される。
一態様としては、発生イベント情報記憶部114Dは、発生ノードID、発生イベント型及び発生イベント属性が対応付けられたデータを記憶する。ここで言う「発生ノードID」は、発生ノードを識別するための識別子を指す。また、「発生イベント型」は、発生イベントの種類を識別するための識別子を指す。また、「発生イベント属性」は、発生ノードのイベント属性を指す。
図8は、発生イベント情報記憶部114Dに記憶される情報の構成例を示す図である。図8に示す1番目のレコードは、電力センサXで機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザAによって使用された機器Aで100Wの電力が消費されたことを示す。図8に示す2番目のレコードは、電力センサYで機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザAによって使用された機器Bで100Wの電力が消費されたことを示す。なお、図8の例では、発生イベントとしてセンサノード210によってセンシングされた未加工のイベントを例示したが、モジュールが下位ノードに配備された場合には、モジュールによって処理がなされた新たなイベントも発生イベントとして格納される。
トラフィック集計部115は、イベントの送信にかかるトラフィック量を集計する処理部である。一例としては、トラフィック集計部115は、イベント記憶部114Aに記憶されたイベント発生時刻及びイベントデータ量から、単位時間あたりに送信されるイベントのデータ量を示すトラフィック量をイベントごとに算出する。トラフィック集計部115は、トラフィック量を後述のトラフィック記憶部115Aに格納する。
トラフィック記憶部115Aは、イベントの送信にかかるトラフィック量を記憶する記憶部である。一例としては、トラフィック記憶部115Aは、イベント記憶部114Aにイベントが登録された場合に、トラフィック集計部115によって集計されたトラフィック量が格納される。また、他の一例としては、トラフィック記憶部115Aは、トラフィック量を推定するために、後述のトラフィック推定部116によって参照される。また、他の一例としては、トラフィック記憶部115Aは、モジュールの配備先を決定するために、後述の配備先決定部117によって参照される。
一態様としては、トラフィック記憶部115Aは、イベント型及びトラフィック量が対応付けられたデータを記憶する。ここで言う「トラフィック量」とは、単位時間あたりに送信されるイベントのデータ量を指す。
図9は、トラフィック記憶部115Aに記憶される情報の構成例を示す図である。図9に示す1番目のレコードは、1時間当たりに送信される電力使用量超過イベントのデータ量が10キロバイトであることを示す。また、図9に示す2番目のレコードは、1時間当たりに送信される人消費電力イベントのデータ量が100キロバイトであることを示す。また、図9に示す3番目のレコードは、1時間当たりに送信される機器消費電力イベントのデータ量が1メガバイトであることを示す。
トラフィック推定部116は、送信ポリシーに応じてイベントが送信される場合のトラフィック量を推定する処理部である。一態様としては、トラフィック推定部116は、送信ポリシーに定義された送信間隔の間に適用可能な圧縮アルゴリズムによって圧縮されたイベントの送信にかかるトラフィック量を推定トラフィック量として推定する。また、他の態様としては、トラフィック推定部116は、同一の送信イベント型となるイベントが過去に圧縮して送信された場合の統計データを用いてトラフィック量を推定しても良い。
ここで、イベントを圧縮するために適用される圧縮アルゴリズムとしては、ランレングス法やハフマン法など、既存の圧縮アルゴリズムが適用される。一例としては、送信イベントに適用される圧縮アルゴリズムは、送信イベント型ごとに送信ポリシーとして設定されても良い。また、他の例としては、送信イベントに適用される圧縮アルゴリズムは、送信元ノードごとに設定されても良く、あるいは、送信間隔の間に適用可能な圧縮アルゴリズムが適宜選択されても良い。
推定トラフィック記憶部116Aは、推定トラフィック量を記憶する記憶部である。一例としては、推定トラフィック記憶部116Aは、トラフィック推定部116によって推定された推定トラフィック量が格納される。また、他の例としては、推定トラフィック記憶部116Aは、モジュールの配備先を決定するために、後述の配備先決定部117によって参照される。
一態様としては、推定トラフィック記憶部116Aは、送信元ノードID、送信イベント型及び推定トラフィック量が対応付けられたデータを記憶する。ここで言う「推定トラフィック量」とは、送信ポリシーに応じてイベントが送信される場合に、単位時間あたりに送信されるイベントのデータ量を指す。
図10は、推定トラフィック記憶部116Aに記憶される情報の構成例を示す図である。図10に示す1番目のレコードは、図5の送信ポリシーに応じてGW−Aから電力使用量超過イベントが送信される場合に、1時間当たりに送信されるデータ量が10キロバイトであることを示す。ここで、電力使用量超過イベントの推定トラフィック量が図9のトラフィック量と同じデータ量となるのは、電力使用量超過イベントがリアルタイムで送信されるからである。また、図10に示す2番目のレコードは、図5の送信ポリシーに応じてGW−Aから人消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が50キロバイトであることを示す。ここで、人消費電力イベントの推定トラフィック量が図9のトラフィック量より小さいデータ量となるのは、人消費電力イベントが10分間保留される間に適用可能な圧縮アルゴリズムによって圧縮されるからである。また、図10に示す3番目のレコードは、図5の送信ポリシーに応じてGW−Aから機器消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が100キロバイトであることを示す。ここで、機器消費電力イベントの推定トラフィック量が図9のトラフィック量より小さいデータ量となるのは、機器消費電力イベントが60分間保留される間に適用可能な圧縮アルゴリズムによって圧縮されるからである。
配備先情報記憶部117Aは、モジュールの配備先に関する情報を記憶する記憶部である。一例としては、配備先情報記憶部117Aは、センサネットワークのトポロジに変化があった場合に、後述の配備先決定部117によってアクセスされる。
一態様としては、配備先情報記憶部117Aは、モジュール識別子、入力イベント型、集約属性名、発生イベント属性、発生ノードID、入力総トラフィック量、推定出力総トラフィック量及び配備先ノードIDが対応付けられたデータを記憶する。ここで言う「入力総トラフィック量」は、モジュールが配備されるセンサノード210、後述のGWノード310またはサーバノード110に入力されるイベントの送信にかかるトラフィック量の総和を指す。また、「推定出力総トラフィック量」モジュールが配備されるセンサノード210、後述のGWノード310またはサーバノード110から出力されるイベントの送信にかかる推定トラフィック量の総和を指す。また、「配備先ノードID」は、モジュールが配備されるセンサノード210、後述のGWノード310またはサーバノード110を識別するための識別子を指す。なお、推定出力総トラフィック量は、第1トラフィック量の一例であり、入力総トラフィック量は、第2トラフィック量の一例である。
図11は、配備先情報記憶部117Aに記憶される情報の構成例を示す図である。この図11の例では、センサネットワークのトポロジに変化が検出されて後述の配備先決定部117によるモジュールの配備先の決定が開始された段階のテーブル例を図示している。すなわち、図11に示すように、全カラムのうちモジュール識別子、入力イベント型及び集約属性名がモジュール定義記憶部111Bから複写された段階のテーブル例が図示されている。以降の配備先ノードIDを始めとする残りのカラムが埋められる遷移については、図12や図13などを用いて後述する。
配備先決定部117は、モジュールの配備先を決定する処理部である。一態様としては、配備先決定部117は、トポロジ記憶部113Aが更新された場合、すなわちセンサネットワークのトポロジに変化があった場合に、以下に説明する処理を実行する。
これを説明すると、配備先決定部117は、モジュール定義記憶部111Bに記憶されたモジュールの定義のうちモジュール識別子、入力イベント型及び集約属性名のカラムデータを配備先情報記憶部117Aの該当カラムに書き込む。このとき、配備先情報記憶部117Aは、図11に示すように、発生イベント属性、発生ノードID及び配備先ノードIDのカラムがブランクの状態となる。
続いて、配備先決定部117は、発生イベント情報記憶部114Dに記憶された発生ノードIDのうち、発生イベント型が未配備のモジュールの入力イベント型に含まれる発生ノードIDを抽出する。さらに、配備先決定部117は、前述のように抽出した発生ノードID間で未配備のモジュールに定義された集約属性の属性名と同一の集約属性に属する属性値が同一であるノードを抽出する。その後、配備先決定部117は、抽出結果として得られた発生ノードID及び発生ノードIDに対応付けられた発生イベント属性を配備先情報記憶部117Aに書き込む。
このとき、配備先決定部117は、発生ノードIDが配備先情報記憶部117Aに複数登録された場合には、次のような処理を実行する。すなわち、配備先決定部117は、トポロジ記憶部113Aに記憶された上位ノードIDのうち各発生ノードIDに対応するセンサノード210又は後述のGWノード310が下位ノードとして全て収容され、かつ最も下位ノード側であるノードIDを抽出する。
続いて、配備先決定部117は、入力イベント型と一致するトラフィック量をトラフィック記憶部115Aから抽出し、配備先情報記憶部117Aの「入力総トラフィック量」に格納する。このとき、トラフィック記憶部115Aから複数のトラフィック量が抽出される場合には、配備先決定部117は、抽出された複数のトラフィック量の総和を「入力総トラフィック量」として格納する。
続いて、配備先決定部117は、モジュールの出力イベント型と一致する送信イベントが、抽出したノードIDと一致する送信元ノードIDのノードから送信される場合の推定トラフィック量を推定トラフィック記憶部116Aから抽出する。そして、配備先決定部117は、抽出した推定トラフィック量を配備先情報記憶部117Aの「推定出力総トラフィック量」に格納する。このとき、推定トラフィック記憶部116Aから複数の推定トラフィック量が抽出される場合には、配備先決定部117は、抽出された複数の推定トラフィック量の総和を「推定出力総トラフィック量」として格納する。
続いて、配備先決定部117は、入力総トラフィック量と推定出力総トラフィック量とを比較し、推定出力総トラフィック量が入力総トラフィック量以下である場合には、抽出したノードIDを配備先ノードIDのカラムに格納する。
一方、推定出力総トラフィック量が入力総トラフィック量より大きい場合には、注したノードの上位ノードについて入力総トラフィック量と推定出力総トラフィック量とを比較する。そして、推定出力総トラフィック量が入力総トラフィック量以下となるノードを抽出するまで同様の処理を繰り返し、当該ノードが存在しない場合には、クラウドを配備先ノードIDのカラムに格納する。
このようにして配備先情報記憶部117Aに配備先ノードIDが格納されると、モジュール記憶部111Aに記憶されたモジュールが後述のモジュール送信部118によって配備先ノードIDに対応するノードへ送信される。また、配備先ノードIDを送信元ノードIDとする送信ポリシーがポリシー記憶部112Aから抽出され、抽出された送信ポリシーが後述のポリシー送信部119によって配備先ノードIDに対応するノードへ送信される。
その後、配備先決定部117は、モジュールの配備によって下位ノードから新たに取得される発生イベントが発生イベント情報記憶部114Dに更新されるまで待機してから、未配備のモジュールがなくなるまでモジュールの配備を繰り返し実行する。
図2の説明に戻る。モジュール送信部118は、センサノード210または後述のGWノード310などの下位ノードにモジュールを送信する処理部である。一態様としては、モジュール送信部118は、配備先決定部117によって配備先ノードIDが配備先情報記憶部117Aに登録されると、モジュール記憶部111Aに記憶されたモジュールを配備先ノードIDに対応するノードへ送信する。
ポリシー送信部119は、センサノード210または後述のGWノード310などの下位ノードに送信ポリシーを送信する処理部である。一態様としては、ポリシー送信部119は、配備先決定部117によって配備先ノードIDが配備先情報記憶部117Aに登録されると、登録された配備先ノードIDを送信元ノードIDとする送信ポリシーをポリシー記憶部112Aから抽出する。そして、ポリシー送信部119は、抽出した送信ポリシーを配備先ノードIDに対応するノードへ送信する。
ここで、図11〜図13を用いて、モジュール配備の具体例について説明する。図12は、図11に示した配備先情報記憶部117Aからの配備状況の遷移を示す図である。図13は、図12に示した配備先情報記憶部117Aからの配備状況の遷移を示す図である。
モジュールの配備が開始されると、図8に示した発生イベント情報記憶部114Dと図11に示した配備先情報記憶部117Aとの間で発生イベント型及び入力イベント型のカラムが配備先決定部117によって比較される。このとき、モジュール「電力集計」の入力イベント型と発生ノードID「電力センサX」及び発生ノードID「電力センサY」の発生イベント型が「機器消費電力」で一致する。よって、モジュール「電力集計」に関し、発生ノードID「電力センサX」及び「電力センサY」が配備先決定部117によって抽出される。
さらに、未配備のモジュール「電力集計」に定義された集約属性と、発生ノードID「電力センサX」及び「電力センサY」に対応付けられた発生イベント属性とが配備先決定部117によって比較される。
モジュール「電力集計」は、イベントの集約処理を実行するモジュールであるので、図4に示すように、モジュール「電力集計」に集約属性の属性名「ユーザID」が定義されている。一方、発生ノードID「電力センサX」及び「電力センサY」の発生イベント属性には、図8に示すように、属性名「ユーザID」及び属性値「ユーザA」のペアを含んで構成される集約属性の属性データが含まれる。したがって、図12に示す網掛け部分のように、モジュール「電力集計」に発生ノードID「電力センサX」及び「電力センサY」とその発生イベント属性とが配備先情報記憶部117Aの該当カラムに書き込まれる。
このモジュール「電力集計」は、発生ノードID「電力センサX」及び「電力センサY」の2つの発生ノードが存在する。このため、図6に示したトポロジ記憶部113Aに記憶された上位ノードIDのうち発生ノードID「電力センサX」及び「電力センサY」の両方の発生ノードが下位ノードとして全て収容され、かつ最も下位ノード側であるノードIDを抽出する。図6の例で言えば、発生ノードID「電力センサX」及び「電力センサY」の発生ノードは、いずれもGW−AであるGWノード310に接続されている。このため、配備先ノードの候補ノードとして「GW−A」が抽出される。
ここで、配備先ノードの候補ノードである「GW−A」にモジュール「電力集計」が配備される場合と配備されない場合とでそれぞれトラフィック量が算出され、比較される。すなわち、モジュール「電力集計」が配備されない場合のトラフィック量としては、モジュール「電力集計」の入力イベント型「機器消費電力」と一致するトラフィック量がトラフィック記憶部115Aから抽出される。図9の例で言えば、イベント型「機器消費電力」のトラフィック量は「1MB/h」である。このため、図13に示す網掛け部分のように、配備先情報記憶部117Aの「入力総トラフィック量」に「1MB/h」が格納される。
続いて、モジュール「電力集計」が配備される場合のトラフィック量としては、モジュール「電力集計」の出力イベント型「電力使用量超過」、「人消費電力」及び「機器消費電力」とそれぞれ一致する送信イベント型の推定トラフィック量が抽出される。図10の例で言えば、送信イベント型「電力使用量超過」の推定トラフィック量は「10KB/h」であり、「人消費電力」の推定トラフィック量は「50KB/h」であり、「機器消費電力」の推定トラフィック量は「100KB/h」である。このように、複数の推定トラフィック量が抽出される場合には、それらの総和である「160KB/h」が「推定出力総トラフィック量」として算出される。このため、図13に示す網掛け部分のように、配備先情報記憶部117Aの「推定出力総トラフィック量」に「160KB/h」が格納される。
この場合、配備先情報記憶部117Aに格納された推定出力総トラフィック量「160KB/h」が入力総トラフィック量「1MB/h」以下である。このため、図13に示す網掛け部分のように、先に候補ノードとして抽出された「GW−A」が配備先ノードIDのカラムに格納される。これによって、モジュール「電力集計」が「GW−A」であるGWノード310に配備されることになる。
このようにして配備先情報記憶部117Aに配備先ノードID「GW−A」が格納されると、モジュール「電力集計」が配備先ノードID「GW−A」であるGWノード310へ送信される。また、送信元ノードID「GW−A」に対応する送信ポリシーがポリシー記憶部112Aから抽出され、抽出された送信ポリシーもGWノード310へ送信される。
なお、モジュール登録部111、ポリシー登録部112、トポロジ取得部113と、イベント受信部114、モジュール実行部114B、発生イベント登録部114Cには、各種の集積回路や電子回路を採用できる。また、トラフィック集計部115、トラフィック推定部116、配備先決定部117、モジュール送信部118、ポリシー送信部119には、各種の集積回路や電子回路を採用できる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
また、モジュール記憶部111A、モジュール定義記憶部111B、ポリシー記憶部112A、トポロジ記憶部113Aには、半導体メモリ素子や記憶装置を採用できる。また、イベント記憶部114A、発生イベント情報記憶部114D、トラフィック記憶部115A、推定トラフィック記憶部116A、配備先情報記憶部117Aには、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
[センサノードの構成]
次に、本実施例に係るセンサノードの機能的構成について説明する。図14は、実施例1に係るセンサノード210の機能的構成を示すブロック図である。図14に示すセンサノード210は、センサ情報受信部211と、モジュール受信部212と、モジュール実行部213と、ポリシー受信部214と、ポリシー記憶部214Aと、ポリシー制御部215と、イベント送信部216とを有する。さらに、図14に示すセンサノード210は、トポロジ検出部217と、トポロジ送信部218とを有する。
センサ情報受信部211は、センサノード210に内蔵または付設されたセンサデバイスからセンサ情報を受信する処理部である。一態様としては、センサ情報受信部211は、センサノード210に温度センサが内蔵されている場合には、温度センサによって計測された温度を受信する。他の一態様としては、センサ情報受信部211は、センサノード210に湿度センサが内蔵されている場合には、湿度センサによって計測された湿度を受信する。なお、センサノード210に複数のセンサデバイスが内蔵されている場合には、各々のセンサデバイスに対応してセンサ情報受信部211が設けられる。
モジュール受信部212は、サーバノード110からモジュールを受信する処理部である。このモジュール受信部212によって受信されたモジュールは、モジュールの実行制御を行うモジュール実行部213に出力される。
モジュール実行部213は、センサノード210に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部213は、センサ情報受信部211によってセンサ情報が受信された場合に、受信されたセンサ情報を入力イベント型とするモジュールがセンサノード210に配備されているか否かを判定する。このとき、モジュール実行部213は、モジュールがセンサノード210に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部213は、モジュールによって処理が実行されたデータを、上位ノードへ送信されるイベントを表す送信イベントとして後述のポリシー制御部215へ出力する。なお、モジュールがセンサノード210に配備されていない場合には、モジュール実行部213は、センサ情報を処理せずにそのまま送信イベントとして後述のポリシー制御部215へ出力する。
ポリシー受信部214は、サーバノード110から送信ポリシーを受信する処理部である。一態様としては、ポリシー受信部214は、ノードから送信されるイベントの送信ポリシーをサーバノード110から受信する。そして、ポリシー受信部214は、受信した送信ポリシーを後述のポリシー記憶部214Aに格納する。
ポリシー記憶部214Aは、送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部214Aは、ノードから送信されるイベントの送信ポリシーを記憶する。また、他の態様としては、ポリシー記憶部214Aは、送信ポリシーに応じて送信イベントを送信するために、後述のポリシー制御部215によって参照される。一態様としては、ポリシー記憶部214Aは、図5に示したポリシー記憶部112Aのうち自装置のノードIDを送信元ノードIDとする送信ポリシーを記憶する。
ポリシー制御部215は、送信ポリシーに応じて送信イベントの送信を制御する処理部である。一態様としては、ポリシー制御部215は、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合に、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する。そして、サーバノード110は、保留状態にある送信イベントを圧縮する。
ここで、送信イベントを圧縮するために適用される圧縮アルゴリズムとしては、ランレングス法やハフマン法など、既存の圧縮アルゴリズムが適用される。一例としては、送信イベントに適用される圧縮アルゴリズムは、送信イベント型ごとに送信ポリシーとして設定されても良い。また、他の例としては、送信イベントに適用される圧縮アルゴリズムは、送信元ノードごとに設定されても良く、あるいは、送信間隔の間に適用可能な圧縮アルゴリズムが適宜選択されても良い。
そして、ポリシー制御部215は、保留時間が経過した場合に、圧縮した送信イベントをイベント送信部216へ出力する。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがない場合には、ポリシー制御部215は、モジュール実行部213から出力された送信イベントをそのままイベント送信部216へ出力する。
イベント送信部216は、イベントを上位ノードに送信する処理部である。一態様としては、イベント送信部216は、ポリシー制御部215によって出力された送信イベントを上位ノードに送信する。このとき、イベント送信部216は、センサ情報を上位ノードに送信する場合には、発生ノードであるセンサノード210のノードID、自装置を含む複数のノードを集約する集約属性の属性名及び属性値をセンサ情報に付加する。その上で、イベント送信部216は、センサ情報とともに発生ノードのノードID及び集約属性を含むイベントを上位ノードに送信する。
ここで、上記の「集約属性」の属性名及び属性値は、センサノード210の製造段階でデバイスドライバなどに組み込んでおくことができる。例えば、センサデバイスが温度センサ、湿度センサや温湿度センサである場合には、温度や湿度が計測される枠組みである「家ID」を始め、「部屋ID」や「階ID」などの集約属性をイベントに付加するようにデバイスドライバを構成しておく。その上で、センサノード210がサーバノード110との間で通信コネクションが確立された段階で、既にサービスに加入している他のセンサノード210に先だって付与されている家IDの属性値をサーバノード110から自動的に取得することもできる。なお、サーバノード110にX家またはY家の間取り等が登録されている場合には、「家ID」の他、「部屋ID」や「階ID」などの集約属性の属性値をサーバノード110から自動的に取得することもできる。
トポロジ検出部217は、センサノード210がどの上位ノードに接続されているかを表すノード間の接続情報をトポロジとして検出する処理部である。一態様としては、トポロジ検出部217は、UPnPプロトコル等を用いて、センサノード210と同一のローカルネットワーク内に存在するGWノード310を認識したり、サーバノード110からGWノード310の存在の通知を受けたりすることによってトポロジを検出する。なお、サーバノード110とのネットワーク接続の確立は、サーバノード110のURL等のアドレスを設定しておくことにより実現できる。
トポロジ送信部218は、トポロジ検出部217によって検出されたトポロジをサーバノード110に送信する処理部である。一態様としては、トポロジ送信部218は、センサノード210が接続されている上位ノードのノードIDをサーバノード110に送信する。
[GWノードの構成]
次に、本実施例に係るセンサノードの機能的構成について説明する。図15は、実施例1に係るGWノード310の機能的構成を示すブロック図である。図15に示すGWノード310は、イベント受信部311と、モジュール受信部312と、モジュール実行部313と、ポリシー受信部314と、ポリシー記憶部314Aと、ポリシー制御部315と、イベント送信部316とを有する。さらに、図15に示すGWノード310は、トポロジ検出部317と、トポロジ送信部318とを有する。
イベント受信部311は、イベントを受信する処理部である。一態様としては、イベント受信部311は、下位ノードであるセンサノード210や他のGWノード310からイベントを受信する。
モジュール受信部312は、サーバノード110からモジュールを受信する処理部である。このモジュール受信部312によって受信されたモジュールは、モジュールの実行制御を行うモジュール実行部313に出力される。
モジュール実行部313は、GWノード310に配備されたモジュールの実行制御を行う処理部である。一態様としては、モジュール実行部313は、イベント受信部311によってイベントが受信された場合に、受信されたイベントを入力イベント型とするモジュールがGWノード310に配備されているか否かを判定する。このとき、モジュール実行部313は、モジュールがGWノード310に配備されている場合には、当該モジュールを実行することによってイベントの処理を実行する。その後、モジュール実行部313は、モジュールによって処理が実行されたデータを、上位ノードへ送信されるイベントを表す送信イベントとして後述のポリシー制御部315へ出力する。なお、モジュールがGWノード310に配備されていない場合には、モジュール実行部313は、イベントを処理せずにそのまま送信イベントとして後述のポリシー制御部315へ出力する。
ポリシー受信部314は、サーバノード110から送信ポリシーを受信する処理部である。一態様としては、ポリシー受信部314は、ノードから送信されるイベントの送信ポリシーをサーバノード110から受信する。そして、ポリシー受信部314は、受信した送信ポリシーを後述のポリシー記憶部314Aに格納する。
ポリシー記憶部314Aは、送信ポリシーを記憶する記憶部である。一例としては、ポリシー記憶部314Aは、ノードから送信されるイベントの送信ポリシーを記憶する。また、他の態様としては、ポリシー記憶部314Aは、送信ポリシーに応じて送信イベントを送信するために、後述のポリシー制御部315によって参照される。一態様としては、ポリシー記憶部314Aは、図5に示したポリシー記憶部112Aのうち自装置のノードIDを送信元ノードIDとする送信ポリシーを記憶する。
ポリシー制御部315は、送信ポリシーに応じて送信イベントの送信を制御する処理部である。一態様としては、ポリシー制御部315は、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合に、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する。そして、サーバノード110は、保留状態にある送信イベントを圧縮する。
そして、ポリシー制御部315は、保留時間が経過した場合に、圧縮した送信イベントをイベント送信部316へ出力する。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがない場合には、ポリシー制御部315は、モジュール実行部315から出力された送信イベントをそのままイベント送信部316へ出力する。
イベント送信部316は、イベントを上位ノードに送信する処理部である。一態様としては、イベント送信部316は、ポリシー制御部315によって出力された送信イベントを上位ノードに送信する。
トポロジ検出部317は、GWノード310がどの上位ノードに接続されているかを表すノード間の接続情報をトポロジとして検出する処理部である。一態様としては、トポロジ検出部317は、UPnPプロトコル等を用いて、GWノード310と同一のローカルネットワーク内に存在するGWノード310を認識したり、サーバノード110からGWノード310の存在の通知を受けたりすることによってトポロジを検出する。なお、サーバノード110とのネットワーク接続の確立は、サーバノード110のURL等のアドレスを設定しておくことにより実現できる。
トポロジ送信部318は、トポロジ検出部317によって検出されたトポロジをサーバノード110に送信する処理部である。一態様としては、トポロジ送信部318は、GWノード310が接続されている上位ノードのノードIDをサーバノード110に送信する。
[処理の流れ]
次に、本実施例に係るセンサネットワークシステムの処理の流れについて説明する。なお、ここでは、センサノード210によって実行される(1)全体処理を説明した後に、サーバノード110によって実行される(2)モジュール配備処理を説明することとする。
(1)全体処理
図16は、実施例1に係るセンサノード210における全体処理の手順を示すフローチャートである。この全体処理は、センサノード210の電源がON状態である限り、繰り返し実行される。
図16に示すように、新たな上位ノードを検出した場合(ステップS101肯定)には、センサノード210は、当該上位ノードのノードIDをサーバノード110へ送信する(ステップS102)。なお、新たな上位ノードを検出しなかった場合(ステップS101否定)には、ステップS102の処理を実行せずにステップS103の処理へ移行する。
送信ポリシーを受信した場合(ステップS103肯定)には、センサノード210は、送信ポリシーを登録する(ステップS104)。なお、送信ポリシーを受信しなかった場合(ステップS103否定)には、センサノード210は、ステップS104の処理を実行せずにステップS105の処理へ移行する。
続いて、サーバノード110からモジュールを受信した場合(ステップS105肯定)には、センサノード210は、サーバノード110から受信したモジュールを配備する(ステップS106)。なお、モジュールを受信しなかった場合(ステップS105否定)には、サーバノード110は、ステップS106の処理を実行せずにステップS107の処理へ移行する。
そして、センサデバイスからセンサ情報を受信した場合(ステップS107肯定)には、センサノード210は、受信したセンサ情報を入力イベント型とするモジュールが配備されているか否かを判定する(ステップS108)。なお、センサ情報を受信しなかった場合(ステップS107否定)には、ステップS101の処理に戻る。
モジュールが配備されている場合(ステップS108肯定)には、センサノード210は、モジュールを実行することによってイベントを処理する(ステップS109)。そして、センサノード210は、処理結果を送信イベントとする(ステップS110)。
一方、モジュールが配備されていない場合(ステップS108否定)には、センサノード210は、センサデバイスから受信したセンサ情報に発生ノードIDや集約属性などを付加した上で送信イベントとする(ステップS111)。そして、センサノード210は、ステップS112の処理へ移行する。
続いて、送信イベントのイベント型を送信イベント型とする送信ポリシーがある場合(ステップS112肯定)には、サーバノード110は、送信イベントの送信を、イベント送信周期に対応する送信間隔の間だけ保留する(ステップS113)。そして、サーバノード110は、保留状態にある送信イベントを圧縮する(ステップS114)。
そして、サーバノード110は、送信イベントを上位ノードへ送信する(ステップS115)。なお、送信イベントのイベント型を送信イベント型とする送信ポリシーがなかった場合(ステップS112否定)には、サーバノード110は、ステップS113及びステップS114の処理を実行せずにステップS115の処理へ移行する。
このようにして、センサノード210は、上記のステップS101〜ステップS115までの処理を電源がOFF状態になるまで繰り返し実行する。
なお、ここでは、センサノード210の全体処理について説明したが、中継ノードであるGWノード310によって実行される全体処理も一部を除き同様である。すなわち、GWノード310の場合には、上記のステップS107においてセンサ情報の代わりにイベントが受信される点が相違する点を除き、センサノード210と同様である。
(2)モジュール配備処理
図17は、実施例1に係るモジュール配備処理の手順を示すフローチャートである。このモジュール配備処理は、一例としては、センサネットワークのトポロジが変化した場合に処理が起動される。
図17に示すように、サーバノード110は、発生イベント情報記憶部114Dが更新されるのを待機する(ステップS201)。そして、発生イベント情報記憶部114Dが更新されると、全てのモジュールの配備が終了したか否かが判断されるが(ステップS202)、ここではいずれのモジュールについても処理が終了していないので(ステップS202否定)、ステップS203の処理へ移行する。
続いて、サーバノード110は、トラフィック量を集計し、トラフィック記憶部115Aに格納する(ステップS203)。そして、サーバノード110は、送信ポリシーに応じてイベントが送信される場合の推定トラフィック量を推定する(ステップS204)。
続いて、サーバノード110は、モジュール定義記憶部111Bに記憶されたモジュールの定義のうちモジュール識別子、入力イベント型及び集約属性名のカラムデータを配備先情報記憶部117Aの該当カラムに格納する(ステップS205)。
そして、サーバノード110は、ステップS205の処理を実行後に、下記に説明するステップS206の処理を実行する。すなわち、サーバノード110は、発生イベント情報記憶部114Dに記憶された発生ノードIDのうち、発生イベント型が未配備のモジュールの入力イベント型に含まれる発生ノードIDを抽出する。さらに、サーバノード110は、前述のように抽出した発生ノードID間で未配備のモジュールに定義された集約属性の属性名と同一の集約属性に属する属性値が同一であるノードを抽出する。
その後、サーバノード110は、抽出結果として得られた発生ノードID及び発生ノードIDに対応付けられた発生イベント属性を配備先情報記憶部117Aに書き込む(ステップS207)。
このとき、発生ノードIDの数が「0」である場合(ステップS208肯定)には、下位ノードから通知される発生イベントが発生イベント情報記憶部114Dに登録し切れていない可能性がある。この場合には、ステップS201の処理に移行する。
ここで、発生ノードIDの数が複数である場合(ステップS209肯定)には、下記に説明するステップS210の処理を実行する。すなわち、サーバノード110は、トポロジ記憶部113Aに記憶された上位ノードIDのうち各発生ノードIDに対応するセンサノード210又はGWノード310が下位ノードとして全て収容され、かつ最も下位ノード側であるノードIDを候補ノードIDとして抽出する。なお、発生ノードIDの数が1つである場合(ステップS209否定)には、サーバノード110は、モジュールを配備するノードに選択の余地がないので、先に抽出結果として得られた発生ノードIDを候補ノードIDとして抽出する。そして、サーバノード110は、ステップS211の処理に移行する。
続いて、サーバノード110は、モジュールの入力イベント型と一致するトラフィック量をトラフィック記憶部115Aから抽出し、配備先情報記憶部117Aの「入力総トラフィック量」に格納する(ステップS211)。
そして、サーバノード110は、ステップS211の処理を実行後に、下記に説明するステップS212の処理を実行する。すなわち、サーバノード110は、モジュールの出力イベント型と一致する送信イベントが、候補ノードIDと一致する送信元ノードIDのノードから送信される場合の推定トラフィック量を推定トラフィック記憶部116Aから抽出する。そして、サーバノード110は、抽出した推定トラフィック量を配備先情報記憶部117Aの「推定出力総トラフィック量」に格納する。このとき、推定トラフィック記憶部116Aから複数の推定トラフィック量が抽出される場合には、サーバノード110は、抽出された複数の推定トラフィック量の総和を「推定出力総トラフィック量」として格納する。
続いて、サーバノード110は、入力総トラフィック量と推定出力総トラフィック量とを比較し、推定出力総トラフィック量が入力総トラフィック量より大きい場合(ステップS213肯定)には、次のように処理する。すなわち、サーバノード110は、候補ノードIDの上位ノードIDを新たな候補ノードIDとし(ステップS214)、ステップS212の処理に移行する。
一方、推定出力総トラフィック量が入力総トラフィック量以下である場合(ステップS213否定)には、サーバノード110は、候補ノードIDを配備先ノードIDのカラムに格納する(ステップS215)。
続いて、サーバノード110は、配備先ノードIDを送信元ノードIDとする送信ポリシーをポリシー記憶部112Aから抽出し、抽出した送信ポリシーを配備先ノードIDに対応するノードへ送信する(ステップS216)。そして、サーバノード110は、モジュール記憶部111Aに記憶されたモジュールを配備先ノードIDに対応するノードへ送信し(ステップS217)、ステップS201の処理へ戻る。
その後、サーバノード110は、全てのモジュールの配備が終了するまで(ステップS202否定)、上記のステップS201〜ステップS217までの処理を繰り返し実行する。そして、全てのモジュールの配備が終了すると(ステップS202肯定)、処理を終了する。
[実施例1の効果]
次に、本実施例に係るサーバノード110の効果について説明する。サーバノード110は、イベントを処理するモジュールをネットワークに接続されたノードに配備した場合に当該ノードから送信される送信イベントの第1トラフィック量を、予め定義された当該送信イベントの送信に関連するポリシーに応じて推定する。サーバノード110は、推定した前記第1トラフィック量と、モジュールをノードに配備しない場合に当該ノードから送信されるイベントの第2トラフィック量とを比較する。サーバノード110は、第1トラフィック量が第2トラフィック量以下であれば、モジュールをノードに配備する。このため、サーバノード110は、確実にトラフィック量を抑制することができる。一例としては、サーバノード110は、モジュールによって処理された処理結果のみならず、処理前のセンシングデータも参照用のデータとして収集する場合においても、確実にトラフィック量を抑制することができる。また、他の例としては、サーバノード110は、モジュールを分散配備するので、サーバノード110に負荷が集中することも防止できる。
また、例えば、サーバノード110は、ポリシーとして、送信イベントの送信間隔を用い、当該送信間隔の間に当該送信イベントを圧縮した場合のデータ量を算出することで第1トラフィック量を推定する。このため、サーバノード110は、モジュールをノードに配備した場合に当該ノードから送信される送信イベントの第1トラフィック量を正確に算出することができる。
上記の実施例では、送信ポリシーによって定義された送信間隔で下位ノードにイベントを送信させる場合を説明したが、本発明はこれに限定されるものではない。例えば、イベントの発生状況に応じて送信ポリシーを適宜更新することで、下位ノードにイベントを送信させる送信間隔を適宜変更しても良い。そこで、本実施例では、イベントの発生状況に応じて送信ポリシーを更新する場合を説明する。
[システム構成]
本実施例に係るセンサネットワークシステムのシステム構成について説明する。図19は、実施例3に係るセンサネットワークシステムのシステム構成を示す図である。図19に示すように、センサネットワークシステム3には、サーバノード130と、センサノード210X1,210X2,210Y1及び210Y2と、GWノード310とが収容される。なお、図19に示すセンサノード210X1,210X2,210Y1及び210Y2の機能は、図1に示したセンサノード210の機能と同様である。また、以下では、上記の実施例1と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。
ここで、図19に示すセンサノード210X1は、ユーザAによって使用される機器Aで消費された電力を検知するものとする。また、図19に示すセンサノード210X2は、ユーザAによって使用される機器Bで消費された電力を検知するものとする。また、図19に示すセンサノード210Y1は、ユーザBによって使用される機器Cで消費された電力を検知するものとする。また、図19に示すセンサノード210Y2は、ユーザBによって使用される機器Dで消費された電力を検知するものとする。
[サーバノードの構成]
図20は、実施例3に係るサーバノード130の機能的構成を示すブロック図である。図20に示すサーバノード130は、図2に示したサーバノード110に比べて、アラート抽出部131及びポリシー更新部132を有する点が相違する。また、図20に示すサーバノード130は、図2に示したサーバノード110に比べて、記憶部に記憶される情報の一部が相違する。一例としては、ポリシー記憶部112A、トポロジ記憶部113A、イベント記憶部114A、発生イベント情報記憶部114D、トラフィック記憶部115A及び推定トラフィック記憶部116Aに記憶される情報の一部が相違する。なお、以下では、上記の実施例1と同様の機能を発揮する機能部については同一の符号を付し、その説明を省略することとする。
ポリシー記憶部112Aは、一例として、送信元ノードID、送信イベント型、イベント送信属性条件及びイベント送信周期が対応付けられたデータを記憶する。ここで言う「イベント送信属性条件」とは、受信したイベントに応じて更新される送信ポリシーをフィルタリングするために指定される属性の条件を指す。なお、このイベント送信属性条件は、ポリシー登録部112によって登録される。一例としては、イベント送信属性条件は、モジュールの開発者によって定義され、ポリシー登録部112によって登録される。
図21は、ポリシー記憶部112Aに記憶される情報の構成例を示す図である。図21に示す例では、図5に示した送信ポリシーがユーザIDごとに定義された場合を示す。なお、図21に示す1番目のレコードは、送信元ノードであるGW−AからユーザAに関する電力使用量超過イベントが送信される場合には、電力使用量超過イベントが0秒間保留、つまりリアルタイムで送信されることを示す。また、図21に示す2番目のレコードは、送信元ノードであるGW−AからユーザBに関する電力使用量超過イベントが送信される場合には、電力使用量超過イベントが0秒間保留、つまりリアルタイムで送信されることを示す。また、図21に示す3番目のレコードは、送信元ノードであるGW−AからユーザAに関する人消費電力イベントが送信される場合には、人消費電力イベントが10分間保留された後に送信されることを示す。また、図21に示す4番目のレコードは、送信元ノードであるGW−AからユーザBに関する人消費電力イベントが送信される場合には、人消費電力イベントが10分間保留された後に送信されることを示す。また、図21に示す5番目のレコードは、送信元ノードであるGW−AからユーザAに関する機器消費電力イベントが送信される場合には、機器消費電力イベントが60分間保留された後に送信されることを示す。また、図21に示す6番目のレコードは、送信元ノードであるGW−AからユーザBに関する機器消費電力イベントが送信される場合には、機器消費電力イベントが60分間保留された後に送信されることを示す。なお、保留状態にある人消費電力イベント及び機器消費電力イベントは、所定の圧縮アルゴリズムによって圧縮されても良い。
トポロジ記憶部113Aは、一態様としては、図19に示したセンサネットワークシステム3のトポロジを記憶する。図22は、トポロジ記憶部113Aに記憶される情報の構成例を示す図である。図22の例では、図19に示したセンサノード210X1が電力センサX1であり、センサノード210X2が電力センサX2である。また、図22の例では、図19に示したセンサノード210Y1が電力センサY1であり、センサノード210Y2が電力センサY2である。図22に示す例では、電力センサX1、電力センサX2、電力センサY1及び電力センサY2の上位ノードがGW−AであるGWノード310であり、GW−Aの上位ノードがクラウドであるサーバノード130である。
イベント記憶部114Aは、一態様として、図23に示すイベントを記憶する。図23は、イベント記憶部114Aに記憶される情報の構成例を示す図である。図23に示す1番目のレコードは、2011年7月13日の12時にユーザAによって使用された機器Aで100Wの消費電力が計測されたという機器消費電力イベントを示し、さらに、このイベントのデータ量が100バイトであることを示す。また、図23に示す例では、イベント受信部114によって受信された他のイベントについても同様に、イベント型名、イベント発生時刻、イベント属性及びイベントデータ量が対応付けられたデータを記憶する。さらに、図23に示す6番目のレコードは、2011年7月13日の12時30分にユーザBによって使用された電力量が所定の値を超過したことを示す電力使用量超過イベントを示し、さらに、このイベントのデータ量が100バイトであることを示す。
発生イベント情報記憶部114Dは、一態様として、図24に示す発生イベントに関する情報を記憶する。図24は、発生イベント情報記憶部114Dに記憶される情報の構成例を示す図である。図24に示す1番目のレコードは、電力センサX1で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザAによって使用された機器Aで100Wの電力が消費されたことを示す。図24に示す2番目のレコードは、電力センサX2で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザAによって使用された機器Bで100Wの電力が消費されたことを示す。図24に示す3番目のレコードは、電力センサY1で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザBによって使用された機器Cで100Wの電力が消費されたことを示す。図24に示す4番目のレコードは、電力センサY2で機器消費電力が計測されるというイベントが発生していることを示す。この機器消費電力イベントは、ユーザBによって使用された機器Dで100Wの電力が消費されたことを示す。
トラフィック記憶部115Aは、一態様としては、図25に示したイベントの送信にかかるトラフィック量を記憶する。図25は、トラフィック記憶部115Aに記憶される情報の構成例を示す図である。図25に示す1番目のレコードは、1時間当たりに送信されるユーザAに関する電力使用量超過イベントのデータ量が5キロバイトであることを示す。また、図25に示す2番目のレコードは、1時間当たりに送信されるユーザAに関する人消費電力イベントのデータ量が50キロバイトであることを示す。また、図25に示す3番目のレコードは、1時間当たりに送信されるユーザAに関する機器消費電力イベントのデータ量が500キロバイトであることを示す。また、図25に示す4番目のレコードは、1時間当たりに送信されるユーザBに関する電力使用量超過イベントのデータ量が5キロバイトであることを示す。また、図25に示す5番目のレコードは、1時間当たりに送信されるユーザBに関する人消費電力イベントのデータ量が50キロバイトであることを示す。また、図25に示す6番目のレコードは、1時間当たりに送信されるユーザBに関する機器消費電力イベントのデータ量が500キロバイトであることを示す。
推定トラフィック記憶部116Aは、一例としては、発生イベント属性、送信元ノードID、送信イベント型及び推定トラフィック量が対応付けられたデータを記憶する。図26は、推定トラフィック記憶部116Aに記憶される情報の構成例を示す図である。図26に示す1番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザAに関する電力使用量超過イベントが送信される場合に、1時間当たりに送信されるデータ量が5キロバイトであることを示す。また、図26に示す2番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザAに関する人消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が25キロバイトであることを示す。また、図26に示す3番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザAに関する機器消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が50キロバイトであることを示す。また、図26に示す4番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザBに関する電力使用量超過イベントが送信される場合に、1時間当たりに送信されるデータ量が5キロバイトであることを示す。また、図26に示す5番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザBに関する人消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が25キロバイトであることを示す。また、図26に示す6番目のレコードは、図21の送信ポリシーに応じてGW−AからユーザBに関する機器消費電力イベントが送信される場合に、1時間当たりに送信されるデータ量が50キロバイトであることを示す。
配備先情報記憶部117Aは、一態様としては、図27に示すモジュールの配備先に関する情報を記憶する。図27は、配備先情報記憶部117Aに記憶される情報の構成例を示す図である。この図27の例では、センサネットワークのトポロジに変化が検出されて後述の配備先決定部117によるモジュールの配備先の決定が開始された段階のテーブル例を図示している。すなわち、図27に示すように、全カラムのうちモジュール識別子、入力イベント型及び集約属性名がモジュール定義記憶部111Bから複写された段階のテーブル例が図示されている。
ここで、図27〜図29を用いて、本実施例におけるモジュール配備の具体例について説明する。図28は、図27に示した配備先情報記憶部117Aからの配備状況の遷移を示す図である。図29は、図28に示した配備先情報記憶部117Aからの配備状況の遷移を示す図である。
モジュールの配備が開始されると、図24に示した発生イベント情報記憶部114Dと図27に示した配備先情報記憶部117Aとの間で発生イベント型及び入力イベント型のカラムが配備先決定部117によって比較される。このとき、モジュール「電力集計」の入力イベント型と発生ノードID「電力センサX1」、「電力センサX2」、「電力センサY1」及び「電力センサY2」の発生イベント型が「機器消費電力」で一致する。よって、モジュール「電力集計」に関し、発生ノードID「電力センサX1」、「電力センサX2」、「電力センサY1」及び「電力センサY2」が配備先決定部117によって抽出される。
さらに、未配備のモジュール「電力集計」に定義された集約属性と、発生ノードID「電力センサX」及び「電力センサY」に対応付けられた発生イベント属性とが配備先決定部117によって比較される。
モジュール「電力集計」は、イベントの集約処理を実行するモジュールであるので、図4に示すように、モジュール「電力集計」に集約属性の属性名「ユーザID」が定義されている。一方、図24に示すように、発生ノードID「電力センサX1」及び「電力センサX2」の発生イベント属性には、属性名「ユーザID」及び属性値「ユーザA」のペアを含んで構成される集約属性の属性データが含まれる。また、図24に示すように、発生ノードID「電力センサY1」及び「電力センサY2」の発生イベント属性には、属性名「ユーザID」及び属性値「ユーザB」のペアを含んで構成される集約属性の属性データが含まれる。
これら発生ノードID「電力センサX1」、「電力センサX2」、「電力センサY1」及び「電力センサY2」の発生ノードは、いずれも集約属性の属性名が「ユーザID」である。その一方で、発生ノードID「電力センサX1」及び「電力センサX2」は、集約属性の属性値「ユーザA」であるのに対し、発生ノードID「電力センサY1」及び「電力センサY2」は、集約属性の属性値「ユーザB」である。
したがって、モジュール「電力集計」は、ユーザA用及びユーザB用のモジュールとして独立に配備される。すなわち、図28に示す網掛け部分のように、ユーザA用のモジュール「電力集計」に発生ノードID「電力センサX1」及び「電力センサX2」とその発生イベント属性「ユーザA」とが配備先情報記憶部117Aの該当カラムに書き込まれる。さらに、図28に示す網掛け部分のように、ユーザB用のモジュール「電力集計」に発生ノードID「電力センサY1」及び「電力センサY2」とその発生イベント属性「ユーザB」とが配備先情報記憶部117Aの該当カラムに書き込まれる。
これら2つのモジュール「電力集計」のうち、ユーザA用のモジュール「電力集計」には、発生ノードID「電力センサX1」及び「電力センサX2」の2つの発生ノードが存在する。このため、図22に示したトポロジ記憶部113Aに記憶された上位ノードIDのうち発生ノードID「電力センサX1」及び「電力センサX2」の両方の発生ノードが下位ノードとして全て収容され、かつ最も下位ノード側であるノードIDを抽出する。図22の例で言えば、発生ノードID「電力センサX1」及び「電力センサX2」の発生ノードは、いずれもGW−AであるGWノード310に接続されている。このため、ユーザA用のモジュール「電力集計」の配備先ノードの候補ノードとして「GW−A」が抽出される。また、ユーザB用のモジュール「電力集計」についても同様の処理を行うことで、ユーザB用のモジュール「電力集計」の配備先ノードの候補ノードとしても「GW−A」が抽出される。
ここで、配備先ノードの候補ノードである「GW−A」にモジュール「電力集計」が配備される場合と配備されない場合とでそれぞれトラフィック量が算出され、比較される。すなわち、ユーザA用のモジュール「電力集計」が配備されない場合のトラフィック量としては、モジュール「電力集計」の入力イベント型「機器消費電力」と一致するトラフィック量がトラフィック記憶部115Aから抽出される。図25の例で言えば、イベント型「機器消費電力」のトラフィック量は「500KB/h」である。このため、図29に示す網掛け部分のように、配備先情報記憶部117Aの「入力総トラフィック量」に「500KB/h」が格納される。また、ユーザB用のモジュール「電力集計」についても同様の処理を行うことで、配備先情報記憶部117Aの「入力総トラフィック量」に「500KB/h」が格納される。
続いて、ユーザA用のモジュール「電力集計」が配備される場合のトラフィック量としては、モジュール「電力集計」の出力イベント型「電力使用量超過」、「人消費電力」及び「機器消費電力」とそれぞれ一致する送信イベント型の推定トラフィック量が抽出される。図26の例で言えば、送信イベント型「電力使用量超過」の推定トラフィック量は「5KB/h」であり、「人消費電力」の推定トラフィック量は「25KB/h」であり、「機器消費電力」の推定トラフィック量は「50KB/h」である。このように、複数の推定トラフィック量が抽出される場合には、それらの総和である「80KB/h」が「推定出力総トラフィック量」として算出される。このため、図29に示す網掛け部分のように、配備先情報記憶部117Aの「推定出力総トラフィック量」に「80KB/h」が格納される。また、ユーザB用のモジュール「電力集計」についても同様の処理を行うことで、配備先情報記憶部117Aの「推定出力総トラフィック量」に「80KB/h」が格納される。
この場合、ユーザA用のモジュール「電力集計」について、配備先情報記憶部117Aに格納された推定出力総トラフィック量「80KB/h」が入力総トラフィック量「500KB/h」以下である。このため、図29に示す網掛け部分のように、先に候補ノードとして抽出された「GW−A」が配備先ノードIDのカラムに格納される。これによって、ユーザA用のモジュール「電力集計」が「GW−A」であるGWノード310に配備されることになる。また、ユーザB用のモジュール「電力集計」についても同様の処理を行うことで、ユーザB用のモジュール「電力集計」が「GW−A」であるGWノード310に配備されることになる。
このようにして配備先情報記憶部117Aに配備先ノードID「GW−A」が格納されると、ユーザA及びユーザBの両者のモジュール「電力集計」が配備先ノードID「GW−A」であるGWノード310へ送信される。また、送信元ノードID「GW−A」に対応する送信ポリシーがポリシー記憶部112Aから抽出され、抽出された送信ポリシーもGWノード310へ送信される。
図20の説明に戻る。アラート抽出部131は、受信したイベントからアラートイベントを抽出する処理部である。一例としては、アラート抽出部131は、イベント記憶部114Aにイベントが登録されると、登録されたイベントがアラートイベントか否かを判定する。そして、アラート抽出部131は、登録されたイベントがアラートイベントであった場合には、当該イベントのレコードをイベント記憶部114Aから抽出する。アラート抽出部131は、抽出したイベントのレコードをポリシー更新部132に出力する。なお、アラート抽出部131には、抽出対象であるアラートイベントがモジュールの開発者によって予め登録されているものとする。
一態様としては、アラート抽出部131は、図23の6番目のレコードに示すように、ユーザBに関する電力使用量超過イベントがイベント記憶部114Aに登録されると、登録された電力使用量超過イベントのレコードをイベント記憶部114Aから抽出する。アラート抽出部131は、抽出したユーザBに関する電力使用量超過イベントのレコードをポリシー更新部132に出力する。
ポリシー更新部132は、受信したイベントに応じてポリシーを更新する処理部である。一例としては、ポリシー更新部132は、ポリシー記憶部112Aを参照し、アラート抽出部131によって抽出されたアラートイベントとイベント送信属性条件が一致する送信ポリシーを特定する。ポリシー更新部132は、特定した送信ポリシーのイベント送信周期を0秒に変更する。そして、ポリシー更新部132は、変更した送信ポリシーを送信元ノードIDに対応するノードへ送信させる。なお、ポリシー更新部132は、変更前の送信ポリシーを一時的に記憶しておき、所定の時間が経過した場合に、変更後の送信ポリシーを変更前の送信ポリシーに戻すこととしても良い。
一態様としては、ポリシー更新部132は、アラート抽出部131によってユーザBに関する電力使用量超過イベントが抽出されると、電力使用量超過イベントとイベント送信属性条件「ユーザB」が一致する送信ポリシーをポリシー記憶部112Aから特定する。図21に示した例では、ポリシー更新部132は、4番目のレコードに示した送信イベント型「人消費電力」に関する送信ポリシーと、6番目のレコードに示した送信イベント型「機器消費電力」に関する送信ポリシーとを特定する。ポリシー更新部132は、図30に示すように、特定した2つの送信ポリシーのイベント送信周期を「0秒」に変更する。そして、ポリシー更新部132は、変更した2つの送信ポリシーを送信元ノードID「GW−A」に対応するノードへ送信させる。なお、図30は、図21に示したポリシー記憶部112Aからの送信ポリシーの遷移を示す図である。
[処理の流れ]
次に、本実施例に係るセンサネットワークシステムの処理の流れについて説明する。ここでは、受信したイベントに応じて送信ポリシーを更新するポリシー更新処理について説明する。なお、センサノード210又はGWノード310によって実行される全体処理と、サーバノード130によって実行されるモジュール配備処理については、上記の実施例と同様であるので説明を省略する。
図31は、実施例3に係るポリシー更新処理の手順を示すフローチャートである。このポリシー更新処理は、サーバノード130の電源がON状態である限り、繰り返し実行される。
図31に示すように、サーバノード130は、アラートイベントを抽出すると(ステップS301肯定)、抽出したアラートイベントとイベント送信属性条件が一致する送信ポリシーをポリシー記憶部112Aから特定する(ステップS302)。
続いて、サーバノード130は、特定した送信ポリシーのイベント送信周期を「0秒」に変更する(ステップS303)。サーバノード130は、変更した送信ポリシーを送信元ノードIDに対応するノードへ送信する(ステップS304)。なお、サーバノード130は、アラートイベントを抽出するまでは(ステップS301否定)、待機状態である。
[実施例3の効果]
このように、本実施例に係るサーバノード130は、受信したイベントに応じて前記ポリシーを更新する。そして、サーバノード130は、更新したポリシーに応じてイベントを送信するノードに、更新したポリシーを送信する。このため、サーバノード130は、受信したイベントに応じて、そのイベントに関連するイベントの送信間隔を変更することができる。
一例としては、サーバノード130は、送信ポリシーによって下位ノードに一時的に蓄積させた送信イベントを、その送信イベントに関連するアラートイベントの受信に応じて、リアルタイムに送信させることができる。
なお、本実施例では、イベント送信属性条件としてユーザIDが指定される場合を説明したが、本発明はこれに限定されるものではなく、イベントの属性に含まれる情報を適宜指定しても良い。例えば、イベント送信属性条件として機器IDが指定された場合には、所定の機器に関するアラートイベントに応じて、その機器に関連する送信イベントをリアルタイムに取得することができる。