(57)【要約】  センサノードを配備した後に、個々のセンサノードを収容するブローカノードが高負荷になった場合に、同一の意味情報を受信する低負荷ブローカノードへ負荷を分散する。  センサネットワークシステムは、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、を含んで構成され、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、高負荷ブローカノードから低負荷ブローカノードへセンサノードの収容関係を切り替える。
2010107105.tif 000002
【特許請求の範囲】
【請求項１】
定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、前記センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件を前記ブローカノードに対して登録するサーバノードと、を含んで構成され、
前記センサノードを収容する前記ブローカノードが高負荷状態となった場合に、登録された前記フィルタ条件を用いて、前記高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、前記高負荷ブローカノードから前記低負荷ブローカノードへ前記センサノードの収容関係を切り替えることを特徴とするセンサネットワークシステム。
【請求項２】
前記ブローカノードは、
他のノードから取得した情報の内容を判別する取得情報判別手段と、
前記取得情報判別手段で前記取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合にフィルタ条件の登録を行うフィルタ条件管理手段と、
高負荷状態となった場合に負荷分散に関する制御情報を他のブローカノードに送信し、前記取得情報判別手段で前記取得情報の内容が負荷分散に関する制御情報と判別された場合に、前記フィルタ条件管理手段で登録されたフィルタ条件を用いて、前記高負荷ブローカノードのフィルタ条件と同一のフィルタ条件を持つ前記低負荷ブローカノードを探索し、前記センサノードに生成した意味情報の送信先を切り替えさせる負荷分散処理を行う負荷分散処理手段と、
を有することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項３】
前記ブローカノードは、収容しているセンサノードが一定時間内に発生する意味情報数が多くなり高負荷状態となった場合に、該高負荷状態の要因である意味情報フローおよび前記意味情報フローに対するフィルタ条件を特定し、該フィルタ条件を負荷分散に関する制御情報に含めて他のブローカノードに送信することを特徴とする請求項１又は２に記載のセンサネットワークシステム。
【請求項４】
前記ブローカノードは、他の前記高負荷ブローカノードから負荷分散に関する制御情報を取得し、前記制御情報に含まれるフィルタ条件と合致するフィルタ条件を検索して合致するフィルタ条件が得られた場合に、自ノードの識別情報及び負荷情報を他のブローカノードに送信することを特徴とする請求項１から３のいずれか１項に記載のセンサネットワークシステム。
【請求項５】
前記ブローカノードは、高負荷要因となった意味情報に対するフィルタ条件と同一のフィルタ条件を持つ他のブローカノードから負荷情報を受信し、前記他のブローカノードの中から、前記高負荷要因となった意味情報を生成するセンサノードの新たな収容先となるブローカノードを選択することを特徴とする請求項１から４のいずれか１項に記載のセンサネットワークシステム。
【請求項６】
前記センサノードは、現在の収容先である前記高負荷ブローカノードから、新たな収容先となる前記低負荷ブローカノードへの接続情報および接続先変更の対象となる意味情報を指定された場合に、前記高負荷ブローカノードから前記低負荷ブローカノードへ前記意味情報の送信先を切り替えることを特徴とする請求項１から５のいずれか１項に記載のセンサネットワークシステム。
【請求項７】
定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、ともにセンサネットワークを構成し、
他のノードから取得した情報の内容を判別する取得情報判別手段と、
前記取得情報判別手段で前記取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合にフィルタ条件の登録を行うフィルタ条件管理手段と、
高負荷状態となった場合に負荷分散に関する制御情報を他のブローカノードに送信し、前記取得情報判別手段で前記取得情報の内容が負荷分散に関する制御情報と判別された場合に、前記フィルタ条件管理手段で登録されたフイルタ条件を用いて、高負荷状態のブローカノードのフィルタ条件と同一のフィルタ条件を持ち、かつ、低負荷状態にある他のブローカノードを探索し、前記センサノードに生成した意味情報の送信先を切り替えさせる負荷分散処理を行う負荷分散処理手段と、
を有することを特徴とするブローカノード。
【請求項８】
前記負荷分散処理手段は、収容しているセンサノードが一定時間内に発生する意味情報数が多くなり高負荷状態となった場合に、該高負荷状態の要因である意味情報フローおよび前記意味情報フローに対するフィルタ条件を特定し、該フィルタ条件を負荷分散に関する制御情報に含めて他のブローカノードに送信することを特徴とする請求項７に記載のブローカノード。
【請求項９】
前記負荷分散処理手段は、他の前記高負荷ブローカノードから負荷分散に関する制御情報を取得し、前記制御情報に含まれるフィルタ条件と合致するフィルタ条件を検索して合致するフィルタ条件が得られた場合に、自ノードの識別情報及び負荷情報を他のブローカノードに送信することを特徴とする請求項７又は８に記載のブローカノード。
【請求項１０】
前記負荷分散処理手段は、高負荷要因となった意味情報に対するフィルタ条件と同一のフィルタ条件を持つ他のブローカノードから負荷情報を受信し、前記他のブローカノードの中から、前記高負荷要因となった意味情報を生成するセンサノードの新たな収容先となるブローカノードを選択することを特徴とする請求項７から９のいずれか１項に記載のブローカノード。
【請求項１１】
前記負荷分散処理手段は、収容している前記センサノードに対して、新たな収容先となる前記低負荷ブローカノードへの接続情報および接続先変更の対象となる意味情報を指定し、前記センサノードに前記意味情報の送信先を切り替えさせることを特徴とする請求項７から１０のいずれか１項に記載のブローカノード。
【請求項１２】
定義された情報形式にセンシングした数値データを用いて意味情報を生成し、
生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件を前記ブローカノードに対して登録するサーバノードと、ともにセンサネットワークシステムを構成し、
現在の収容先である高負荷状態のブローカノードから、登録された前記フィルタ条件を用いて探索されたブローカノードで、前記高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態の他のブローカノードへの接続情報、および、接続先変更の対象となる意味情報を指定された場合に、前記高負荷ブローカノードから前記低負荷ブローカノードへ前記意味情報の送信先を切り替えることを特徴とするセンサノード。
【請求項１３】
定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、前記センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件を前記ブローカノードに対して登録するサーバノードと、を含んで構成されるセンサネットワークシステムで用いられ、
前記センサノードを収容する前記ブローカノードが高負荷状態となった場合に、登録された前記フィルタ条件を用いて、前記高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、前記高負荷ブローカノードから前記低負荷ブローカノードへ前記センサノードの収容関係を切り替えることを特徴とする負荷分散方法。
【請求項１４】
前記ブローカノードが、収容しているセンサノードの意味情報生成により高負荷状態となった場合に、負荷分散に関する制御情報を他のブローカノードに送信する負荷分散情報送信ステップと、
前記ブローカノードが、他のノードから取得した情報の内容を判別する取得情報判別ステップと、
前記ブローカノードが、前記取得情報判別ステップで前記取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合に、フィルタ条件の登録を行うフィルタ条件管理ステップと、
前記ブローカノードが、前記取得情報判別ステップで前記取得情報の内容が負荷分散に関する制御情報と判別された場合に、前記フィルタ条件管理ステップで登録されたフィルタ条件を用いて、前記高負荷ブローカノードのフィルタ条件と同一のフィルタ条件を持つ前記低負荷ブローカノードを探索する低負荷ノード探索ステップと、
前記ブローカノードが、前記低負荷ノード探索ステップで探索された前記低負荷ブローカノードを、収容している前記センサノードに通知し、該センサノードに生成した意味情報の送信先を切り替えさせる負荷分散処理ステップと、
を有することを特徴とする請求項１３に記載の負荷分散方法。
【請求項１５】
定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、前記センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件を前記ブローカノードに対して登録するサーバノードと、を含んで構成されるセンサネットワークシステムで用いられ、
前記ブローカノードのコンピュータに、
前記センサノードを収容する前記ブローカノードが高負荷状態となった場合に、登録された前記フィルタ条件を用いて、前記高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索させ、前記高負荷ブローカノードから前記低負荷ブローカノードへ前記センサノードの収容関係を切り替えさせることを特徴とするプログラム。
【請求項１６】
前記ブローカノードのコンピュータに、
収容しているセンサノードの意味情報生成により高負荷状態となった場合に、高負荷状態となった場合に負荷分散に関する制御情報を他のブローカノードに送信する負荷分散情報送信処理と、
他のノードから取得した情報の内容を判別する取得情報判別処理と、
前記取得情報判別処理で前記取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合に、フィルタ条件の登録を行うフィルタ条件管理処理と、
前記取得情報判別処理で前記取得情報の内容が負荷分散に関する制御情報と判別された場合に、前記フィルタ条件管理ステップで登録されたフィルタ条件を用いて、前記高負荷ブローカノードのフィルタ条件と同一のフィルタ条件を持つ前記低負荷ブローカノードを探索する低負荷ノード探索処理と、
前記低負荷ノード探索処理で探索された前記低負荷ブローカノードを、収容している前記センサノードに通知し、該センサノードに生成した意味情報の送信先を切り替えさせる負荷分散処理と、
を実行させることを特徴とする請求項１５に記載のプログラム。
【請求項１７】
請求項１５又は１６に記載のプログラムを記録しコンピュータで読み取り可能なことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークシステムに関し、特に、ネットワークに接続したセンサノードが生成する意味情報を利用するセンサネットワークシステム、ブローカノード、センサノード、負荷分散方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
近年、実空間の様々な状態を、センサノードを用いて可視化する情報処理システムが検討されてきた。このようなシステムでは、多数のセンサノードが実空間に配備され、個々のセンサノードによってセンシングされたデータが、サーバノードに送信される。そしてこのサーバによって、これらのデータ集合が、センシング対象となった実空間の状況を可視化した情報として扱われている。
例えば、特許文献１では、センサノードにおいて、単なる数値的なデータの取得に加えて、意味情報を付加することで、より高度な実空間のセンシングと可視化、およびそれらの技術に基づいた状況依存型サービスの実現が示されている。
さらに、上記のような意味情報を用いた情報ルーティング方式も存在する。特許文献２によれば、あるサービスエンティティが登録した意味情報のフィルタ条件を、意味情報ネットワークを構成する意味情報ルータや意味情報スイッチへ伝播させることで、意味情報を受信するためのパスを設定する。なおフィルタ条件とは、ルータが中継できる意味情報として設定された意味情報であり、多種類のフィルタ条件が設定されたルータは多くの意味情報を中継する。ここで他のサービスエンティティが、ある意味情報を発した場合、前記意味情報ルータや意味情報スイッチにおいて、登録されたフィルタ条件とのフィルタ処理が実行される。そしてフィルタ条件にマッチした意味情報だけが、フィルタ条件を設定したサービスエンティティに配信される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１５６７７９号公報
【特許文献２】特開２００３−２０３０８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
センサネットワークシステムを用いて実空間の事象をセンシングする場合、１つの事象に対して、多地点にセンサノードを設置する場合が想定される。特許文献２のモデルに照らせば、ある１つの事象に対して、１つの意味情報の型（タイプ）が定義され、多数のセンサノードが検出した数値データが前記型に代入されることで、１つの意味情報の実体が構成される。
このようなセンサネットワークシステムでは、個々のセンサノードを収容するエッジノードに対する負荷分散が難しいという問題がある。上記事例では、１つの無線基地局が、複数のセンサノードを収容するモデルが示されている。これら無線基地局とセンサノードは、固定的に配備されており、この２つの関係は固定的である。一方で、センサノードが生成するセンシングデータと付加される意味情報の発生頻度は、そのセンサノードの配備先によって異なる。つまり、１つのセンシング対象と、それに関するセンシングデータ、そして付加される意味情報が規定された場合に、状況変化が多数発生する場所に設置されたセンサノードは、より多くのセンサデータと意味情報を発生する。一方、状況変化が少ない場所に設置されたセンサノードは、前者より少ないセンサデータと意味情報を発生する。その結果、負荷の高くなる基地局もあれば、負荷が比較的低い基地局も存在することになる。
本発明は、上述した事情に鑑みて、ネットワークに接続するセンサノードの発生する意味情報が増加して、当該センサノードを収容するエッジノードの負荷が高くなった場合でも、他の低負荷エッジノードへ負荷を分散できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一側面であるセンサネットワークシステムは、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録する前記サーバノードと、を含んで構成され、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、高負荷ブローカノードから低負荷ブローカノードへセンサノードの収容関係を切り替える。
本発明の一側面であるブローカノードは、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、ともにセンサネットワークを構成し、他のノードから取得した情報の内容を判別する取得情報判別手段と、取得情報判別手段で取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合にフィルタ条件の登録を行うフィルタ条件管理手段と、高負荷状態となった場合に負荷分散に関する制御情報を他のブローカノードに送信し、取得情報判別手段で取得情報の内容が負荷分散に関する制御情報と判別された場合に、フィルタ条件管理手段で登録されたフィルタ条件を用いて、高負荷状態のブローカノードのフィルタ条件と同一のフィルタ条件を持ち、かつ、低負荷状態にある他のブローカノードを探索し、センサノードに生成した意味情報の送信先を切り替えさせる負荷分散処理を行う負荷分散処理手段と、を有する。
本発明の一側面であるセンサノードは、定義された情報形式にセンシングした数値データを用いて意味情報を生成し、生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、ともにセンサネットワークシステムを構成し、現在の収容先である高負荷状態のブローカノードから、登録されたフィルタ条件を用いて探索されたブローカノードで、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態の他のブローカノードへの接続情報、および、接続先変更の対象となる意味情報を指定された場合に、高負荷ブローカノードから低負荷ブローカノードへ意味情報の送信先を切り替える。
本発明の一側面である負荷分散方法は、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、を含んで構成されるセンサネットワークシステムで用いられ、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索し、高負荷ブローカノードから低負荷ブローカノードへセンサノードの収容関係を切り替える。
本発明の一側面であるプログラムは、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノードと、センサノードで生成された意味情報を転送するブローカノードと、取得する意味情報に対するフィルタ条件をブローカノードに対して登録するサーバノードと、を含んで構成されるセンサネットワークシステムで用いられ、ブローカノードのコンピュータに、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、高負荷ブローカノードが転送していた意味情報を転送可能で低負荷状態にある他のブローカノードを探索させ、高負荷ブローカノードから低負荷ブローカノードへセンサノードの収容関係を切り替えさせる。
本発明の一側面である記録媒体は、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【０００６】
本発明によれば、ネットワークに接続するセンサノードの発生する意味情報が増加して当該センサノードを収容するエッジノードの負荷が高くなった場合でも、他の低負荷エッジノードへ負荷を分散することができる。
【図面の簡単な説明】
【０００７】
【図１Ａ】本発明の第１実施形態に係るセンサネットセンサネットワークシステム図である。
【図１Ｂ】本発明の第２実施形態に係るセンサネットセンサネットワークシステムのブローカノードの構成図である。
【図２】本発明の第１実施形態に係るセンサネットワークシステムの構成を示した図である。
【図３】本発明の第１実施形態に係るブローカノードの機能構成を示したブロック図である。
【図４】本発明の第１実施形態においてフィルタ条件を伝播させる動作を示したシーケンス図である。
【図５】本発明の第１実施形態における負荷分散処理の動作を示したシーケンス図である。
【図６】本発明の第２実施形態に係るセンサネットワークシステム（仮想化システム）の構成を示した図である。
【図７】本発明の第２実施形態に係るブローカノード（イベント情報ルータ）の機能構成を示したブロック図である。
【発明を実施するための最良の形態】
【０００８】
本発明は、多数のセンサノードによって測定されたセンシングデータを、ネットワーク上にあるサーバへ集約する場合において、センサノードを収容するブローカノード（エッジノード）の負荷分散を行うセンサネットワークシステムである。
［第１実施形態］
図１Ａは本発明の第１の実施の形態のセンサネットワークシステムを示す構成図である。センサネットワークシステム１は、定義された情報形式にセンシングした数値データを用いて意味情報を生成するセンサノード２ａ〜２ｆと、センサノード２ａ〜２ｆで生成された意味情報を転送するブローカノード３Ａ〜３Ｃを有している。さらにセンサネットワークシステム１は、取得する意味情報に対するフィルタ条件をブローカノード３Ａ〜３Ｃに登録する、サーバノードとしてのサービスノード４を有している。
センサネットワークシステム１は、センサノードを収容するブローカノードが高負荷状態となった場合に、登録されたフィルタ条件を用いて、当該ブローカノードが転送していた意味情報を転送可能で、かつ低負荷状態の他のブローカノードを探索する。そして前記高負荷ブローカノードから前記低負荷ブローカノードへ前記センサノードの収容関係の切り替えを行う。
この実施の形態では、センサノードの発生する意味情報が増加した結果、当該センサノードを収容するエッジノードの負荷が高くなった場合に、当該センサノードが発生する意味情報フローの転送先を別の低負荷のエッジノードへ切り替えている。このため、エッジノード間の負荷が分散され、大量の意味情報を発生するセンサノードを収容するエッジノードの負荷を軽減させることが可能となる。
［第２実施形態］
図１Ｂは、図１Ａに示したセンサネットワークシステム１における、ブローカノード３Ａ〜３Ｃの構成を示す図である。このブローカノードは、取得情報判別部５、フィルタ条件管理部６、負荷分散処理部７を有する。
取得情報判別部５は、他のノードから取得した情報の内容を判別する。フィルタ条件管理部６は、取得情報判別部５で取得情報の内容がフィルタ条件登録に関する制御情報と判別された場合にフィルタ条件の登録を行う。負荷分散処理部７は、自ノードが高負荷状態となった場合に負荷分散に関する制御情報を他のブローカノードに送信する。また取得情報判別部５で取得情報の内容が負荷分散に関する制御情報と判別された場合に、フィルタ条件管理部６に登録されたフィルタ条件を用いて、高負荷ブローカノードと同一のフィルタ条件を持つ低負荷ブローカノードを探索する。そして負荷増加要因となっているセンサノードで生成した意味情報の送信先を、低負荷ブローカノードへ切り替えさせる。
なお、高負荷の要因となっているセンサノードは、個々のセンサノードが発生する意味情報を用いて識別する。また、低負荷のブローカノードは、やはりセンサノードが発生する意味情報に関し、同じ意味情報を発生するセンサノードを収容しているブローカノードを探索することにより検出する。
この実施形態では、ブローカノードは取得情報判別部、フィルタ条件管理部、負荷分散処理部を有し、当該ブローカノードの負荷の状況や、取得する情報の内容に応じて、それぞれ実行する処理を分担させることができる。
［第３実施形態］
図２は、本発明の第３実施形態のセンサネットワークシステムの構成を示した図である。図２において、第３実施形態のセンサネットワークシステムは、センサノード１０〜１５、ブローカノード２０〜２８、そしてサービスノード３０、３１で構成される。センサノード１０〜１５のうち、センサノード１０〜１２は事象Ａについてのセンシングを行っており、センサノード１３〜１５は事象Ｂについてのセンシングを行っている。ここでは、簡単化のためにセンシングする事象とセンサノードの関係は１対１で表現しているが、１つのセンサノードが複数の事象をセンシングしてもよい。
センサノード１０〜１５は、設置先の事象Ａあるいは事象Ｂをセンシングし、そのセンシング対象の数値データを生成する。事象Ａや事象Ｂは、例として、気温、雨量、二酸化炭素濃度などの環境情報や、設置場所を通過する車両数、さらにはコンピュータシステムやネットワークシステムの稼動情報や負荷情報が挙げられる。
事象Ａや事象Ｂには、あらかじめ意味情報テンプレートが用意されており、上記の数値データが意味情報テンプレートに設定されることによって、１つの意味情報が生成される。例えば、毎秒１つの数値データがセンシングされ、このセンシングデータ毎に意味情報が生成される場合、毎秒１つの意味情報が生成される。
また別の意味情報の生成方法もある。センサノード１０〜１２に、あらかじめ事象Ａに関する閾値を設定しておき、閾値以下の状態から閾値以上の状態への変化あるいはその逆があった場合に、意味情報を生成するという場合もある。ここで閾値は、必ずしも１つとは限らない。事象Ｂについても同様である。
サービスノード３０は事象Ａの意味情報の受信者であり、サービスノード３１は事象Ｂの意味情報の受信者である。サービスノード３０、３１は、受信したい意味情報のみを受信するためのフィルタ条件を生成し、ブローカノード２７、２８の各々へ登録する。このフィルタ条件は、例えばフラッディング処理によって、他のブローカノード２０〜２６へも伝播されていく。
ブローカノード２０〜２８は、フィルタ条件を隣接ブローカノードへ転送する場合に、自ノードの情報を付加しておく。この情報は、隣接ブローカノードがフィルタ条件にマッチする意味情報を受信した場合に、その意味情報を転送するための転送先情報として利用される。
意味情報の伝播は、さらに高度な方法として集約型もある。これは、同一事象に対して複数のフィルタ条件が設定された場合、意味情報ルータ２０〜２８は、出力ポート単位で設定されているフィルタ条件を検出する。そして意味情報の伝播は、当該意味情報に対するフィルタ条件を有するポートのうち、フィルタ条件の総数が多い（多種類のイベント情報を転送できる）方のポートを用いることとし、フィルタ条件数が少ない方のポートでの伝播は停止するというモデルである。
以上の処理によって、意味情報を転送する配信パスがブローカノード２０〜２８に設定される。
ブローカノード２０〜２８は、センサノード１０〜１５から送信される意味情報に対して所定の処理を行う各機能を有する。図３は、第１実施形態におけるブローカノードの機能構成を示したブロック図である。図３に示すように、ブローカノード２０〜２８は、メッセージ判別機能４０、マッチング処理機能４１、イベント情報送信機能４２、フィルタ条件管理機能４３、転送先管理機能４４、負荷分散処理機能４５で構成される。
メッセージ判別機能４０は、他のブローカノードやセンサノードからの配信メッセージ、フィルタ条件登録メッセージ、そして負荷分散メッセージについて、メッセージの種類の判別を行う。ここで、配信メッセージは意味情報を配信するためのメッセージ、フィルタ条件登録メッセージはフィルタ条件を伝播するためのメッセージ、負荷分散メッセージは負荷分散プロセスを実施するためのメッセージである。また負荷情報メッセージは個々のブローカノードの負荷情報を通知するためのメッセージである。
このブローカノードがフィルタ条件登録メッセージを受信した場合、フィルタ条件は、フィルタ条件管理機能４３へ渡され、登録される。次に、フィルタ条件管理機能４３は、この登録メッセージの送信元を、イベント情報の転送先として、転送先管理機能４４に登録する。前述したフラッディング処理の場合、このフィルタ条件は登録メッセージとして、イベント情報送信機能４２を介して、次の隣接ブローカノードに転送される。ここで、もし隣接ノードがセンサノードであって、そのセンサノードがフィルタ条件を満足する意味情報を発信しているのであれば、このフィルタ条件が設定される。
ブローカノードが配信メッセージを受信した場合、配信意味情報は、マッチング処理機能４１に転送される。そして、マッチング処理機能４１は、フィルタ条件管理機能４３に、この配信意味情報のフィルタ条件の問い合わせを行う。そして、フィルタ条件管理機能４３は、フィルタ条件の検索を行うとともに、該当フィルタ条件の転送先を転送先管理機能４４から得る。１つ以上のフィルタ条件が検索されれば、マッチング処理機能４１は、照合処理を行う。もしフィルタ条件にマッチすれば、マッチング処理機能４１は、その意味情報を転送先情報とともにイベント情報送信機能４２にデータ転送する。そして、イベント情報送信機能４２は、指定された転送先へ意味情報を配信メッセージとして送信する。
ブローカノードが負荷分散メッセージを受信した場合、負荷分散メッセージは、負荷分散処理機能４５へ渡される。そして、負荷分散処理機能４５は、受信した負荷分散メッセージに記されたフィルタ条件を、自ノードが持っているか否かを判定するために、フィルタ条件管理機能４３に問い合わせる。もし自ノードが受信したフィルタ条件と一致する条件を持ち、そのフィルタ条件が設定されているのであれば、負荷分散処理機能４５は、後述の負荷分散の手順を実行する。もしそのフィルタ条件が設定されていなければ、結果として得られた転送先へ負荷分散メッセージを送信する。
ブローカノードが特定のブローカノードの負荷情報メッセージを受信した場合、負荷分散処理機能４５は、イベント情報送信機能４２を介して、このメッセージが示す転送先へその負荷情報を送信する。
センサノード１０〜１２は事象Ａ、センサノード１３〜１５は事象Ｂに関する意味情報を生成するが、設置場所が異なるために、その生成パターンが異なる。その結果、例えば、センサノード１０が、一定時間内に発生する意味情報数と、センサノード１１、１２が一定時間内に発生する意味情報数に差が生じる場合がある。
ここで、図２においてセンサノード１０が一定時間内に発生する意味情報数が多くなり、その結果、ブローカノード２０が高負荷になったと仮定する。高負荷となったブローカノード２０は、最初に高負荷の要因となっている意味情報配信を特定する。高負荷要因となっている意味情報は、そのテンプレート情報を参照すれば特定できる。次に、高負荷要因となっている意味情報配信に対するフィルタ条件を特定する。なおフィルタ条件は、１つの意味情報配信に対して複数がマッチする場合もある。
その後、高負荷となったブローカノード２０が、負荷分散先を特定する。この負荷分散のための手順について、図４に示す。ブローカノード２０は、特定されたフィルタ条件を、負荷分散メッセージとして隣接ブローカノード２３に転送する。
負荷分散メッセージを受信したブローカノード２３では、負荷分散処理機能４５が上述したように受信した負荷分散メッセージの処理を実行し、さらに隣接ブローカノード２１、２５、２６へ負荷分散メッセージを転送する。以下同様にして、ブローカノード２０が発したフィルタ条件の情報は、ブローカノード２１〜２８に伝播する。図４では、特にブローカノード２０〜２６について示しており、ブローカノード２７、２８についても、ブローカノード２５、２６からフィルタ条件が伝播される。
上記フィルタ条件が伝播されたブローカノード２１〜２８のうち、ブローカノード２３〜２８は、事象Ａに関する意味情報を生成するセンサノード１１、１２を収容していない。これらのブローカノードでは、フィルタ条件の伝播動作だけが実行される。
一方、事象Ａに関する意味情報を生成するセンサノード１１、１２を収容しているブローカノード２１、２２は、自ブローカノードの識別子と、自ノードの負荷情報（例えば平均ＣＰＵ使用率）を、ブローカノード２０に通知する。この通知は、例えば図５に示すような経路で行われる。すなわち、ブローカノード２１が送信した負荷情報は、ブローカノード２３を介して、ブローカノード２０へ通知される。同様に、ブローカノード２２が送信した負荷情報は、ブローカノード２４、２１、２３を介して、ブローカノード２０へ通知される。
以上の処理によって、高負荷となったブローカノード２０には、図２で事象Ａに関する意味情報を受信するブローカノードとしてリストに載っている、ブローカノード２１、２２の負荷情報が集約される。そして、ブローカノード２０は、例えば該リストから最も低負荷のエッジノードを選択して、これを高負荷要因となっている意味情報配信のノード切り替え先と決定することができる。
また別な方法として、複数の低負荷ブローカノードを選択し、さらにそれらへ負荷分散する割合を決定することで、該複数の低負荷ブローカノードへ負荷分散を行うことが可能となる。
そして、ブローカノード２０は、センサノード１０に対して、切り替え先となるブローカノードの情報を伝える。例えば、切り替え先のエッジノードのアドレスを伝える。
ここで、切り替え先をブローカノード２１と仮定すると、センサノード１０は、該切り替え先情報を受信した後、事象Ａに関する意味情報の送信先を、ブローカノード２０からブローカノード２１へ切り替える。
以上の処理を経ることによって、ブローカノード２０は、高負荷要因であったセンサノード１０からの事象Ａに関する意味情報を受信することがなくなり、高負荷状態を回避できるようになる。
［第４実施形態］
昨今では、仮想化技術の導入により、１つの物理機器上で複数の仮想機器を運用することが可能となっている。本発明の第４実施形態として、仮想化システムに本発明を適用した場合のセンサネットワークシステムの事例を説明する。
図６は、第４実施形態のセンサネットワークシステムの構成を示した図である。この第４実施形態は、本発明を特にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率の観測に適用したものである。システム管理クライアント１００〜１５０は、個々の仮想機器をモニタするアプリケーションである。これらのアプリケーションのうち、システム管理クライアント１００〜１２０は、システムＡに属する、異なる３つの仮想機器のＣＰＵ使用率を観測している。また、システム管理クライアント１３０〜１５０は、システムＢに属するＣＰＵ使用率を観測している。
システム管理クライアント１００〜１５０は、インターネット４００を介して、ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ）型オーバレイネットワークへアクセスする。インターネットを介した接続はあくまでも一例であって、他の方法としては、第３世代移動体ネットワーク等が挙げられる。また、ＤＨＴ型オーバレイネットワークへは、例えばＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）やＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）、あるいはＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）によって接続される。
第４実施形態において、意味情報は、状態変化（イベント）の発生した時に発せられるイベント情報としてＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述される。ＸＭＬにおけるスキーマがイベント情報のテンプレートであり、テンプレート内に含まれる個々の要素あるいは属性情報の記述によって、イベント情報の内容が示されていく。例えば、システム状態というスキーマが定義され、そのスキーマ内にシステムＡ、システムＢという要素を用意することで、システムＡ、Ｂ毎のイベント情報が区別される。さらに、ＣＰＵ種別、ＣＰＵ使用率、仮想機器名、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等の要素を追記していくことで、観測対象がより詳細に規定されていく。測定されたＣＰＵ使用率の数値データは、上記ＣＰＵ使用率の要素に含まれるデータとして取り扱われる。図６では、特にＣＰＵ使用率の情報について明示した。
以上の構成によって、個々のＣＰＵ情報に関する意味情報の実体が作られ、さらに、例えば毎秒１つの割合でイベント情報が生成される。
図６におけるイベント情報ルータは、ＤＨＴによって構成されたオーバレイネットワークノード上のアプリケーションとして動作する。個々のイベント情報ルータは、ＤＨＴ上で個々のノードを識別するためのノードＩＤを保有する。そして、ここのイベント情報ルータは、意味情報の具体例としてＸＭＬ形式で記述されたメッセージを、上記のノードＩＤを用いてルーティングする。
システム管理サーバ３００は、システムＡに属する３つの仮想機器で測定されたＣＰＵ使用率情報の受信者である。また、システム管理サーバ３１０は、システムＢに属する３つの仮想機器で測定されたＣＰＵ使用率情報の受信者である。システム管理サーバ３００、３１０は、受信したいイベント情報のみを受信するために、Ｘ−ｐａｔｈ表現によるフィルタ条件を生成し、イベント情報ルータ２７０、２８０の各々へ登録する。このフィルタ条件は、前述した第３の実施の形態と同様の手順で、他のイベント情報ルータに伝播されていく。
イベント情報ルータ２００〜２８０は、Ｘ−ｐａｔｈ形式のフィルタ条件を隣接イベント情報ルータへ転送する場合に、自ノードのＩＤを付加しておく。この情報は、隣接イベント情報ルータがフィルタ条件にマッチするイベント情報を受信した場合の転送先情報として利用される。
イベント情報の伝播は、さらに高度な方法として集約型もある。これは、同一事象に対して複数のフィルタ条件が設定された場合、イベント情報ルータ２００〜２８０は、出力ポート単位で設定されているフィルタ条件を検出する。そしてイベント情報の伝播は、当該イベント情報に対するフィルタ条件を有するポートのうち、フィルタ条件の総数が多い（多種類のイベント情報を転送できる）方のポートを用いることとし、フィルタ条件数が少ない方のポートでの伝播は停止するというモデルである。
以上の処理によって、イベント情報を転送する配信パスがイベント情報ルータ２００〜２８０に設定される。
図７に示すイベント情報ルータ２００〜２８０の構成は、基本的に前述した第３実施形態と同様である。個々の機能は、アプリーケーションプロセスによって実現される。ＸＭＬ  Ｐａｒｓｉｎｇプロセス５００は、受信したＸＭＬメッセージをツリー形式に変換し、個々のメッセージ種別を判定して、適切な処理プロセスへデータ転送を行う。
このイベント情報ルータがＸ−ｐａｔｈフィルタ条件を含む登録メッセージを受信した場合、その条件は、フィルタ条件管理プロセス５０３へ渡され、登録される。次に、フィルタ条件管理プロセス５０３は、この登録メッセージの送信元のＤＨＴノードＩＤを、イベント情報の転送先として、ＤＨＴルーティングテーブル５０４に登録する。これらの処理を終えた後、該Ｘ−ｐａｔｈ条件は、登録メッセージとして、イベント情報送信プロセス５０２を介して、次の隣接イベント情報ルータに転送される。ここで、もし隣接イベント情報ルータがシステム管理クライアントであって、そのクライアントがＸ−ｐａｔｈ条件を満足するイベント情報を発信しているのであれば、このＸ−ｐａｔｈ条件が設定される。
イベント情報ルータがイベント情報を受信した場合、イベント情報は、マッチング処理プロセス５０１にデータ転送される。そして、マッチング処理プロセス５０１は、Ｘ−ｐａｔｈフィルタ条件管理プロセス５０３に、このイベント情報に対するＸ−ｐａｔｈフィルタ条件の問い合わせを行う。そして、Ｘ−ｐａｔｈフィルタ条件管理プロセス５０３は、Ｘ−ｐａｔｈフィルタ条件の検索を行うとともに、上記Ｘ−ｐａｔｈフィルタ条件にマッチするイベント情報の転送先ＤＨＴノードＩＤを、ＤＨＴルーティングテーブル５０４から得る。１つ以上のＸ−ｐａｔｈフィルタ条件が検索されれば、マッチング処理プロセス５０１は照合処理を行う。そして、Ｘ−ｐａｔｈフィルタ条件にマッチすれば、マッチング処理プロセス５０１は、その配信メッセージをイベント情報送信プロセス５０２に渡す。最後に、イベント情報送信プロセス５０２は、指定されたＤＨＴノードへイベント情報を配信メッセージとして送信する。
イベント情報ルータが負荷分散メッセージを受信した場合、負荷分散メッセージは、負荷分散処理プロセス５０５へ渡される。そして、負荷分散処理プロセス５０５は、受信したＸ−ｐａｔｈフィルタ条件を自ノードが持つか否かを判定するために、Ｘ−ｐａｔｈフィルタ条件管理プロセス５０３に問い合わせする。もし自ノードが受信したＸ−ｐａｔｈフィルタ条件と一致するフィルタ条件を持ち、そのフィルタ条件が登録されていれば、負荷分散処理プロセス５０５は、後述の負荷分散の手順を実行する。もし登録されていなければ、結果として得られたＤＨＴノードＩＤを持つイベント情報ルータへ負荷分散メッセージを送信する。
イベント情報ルータが負荷情報メッセージを受信した場合、負荷分散処理プロセス５０５は、イベント情報送信プロセス５０２を介して、ＤＨＴノードＩＤで示されたＤＨＴノードへ負荷情報を送信する。
システム管理クライアント１００〜１２０はシステムＡに属する仮想機器のＣＰＵ使用率に関するイベント情報を生成し、システム管理クライアント１３０〜１５０はシステムＢに属する仮想機器のＣＰＵ使用率に関するイベント情報を生成する。しかし、設置場所が異なるために、その生成パターンが異なる。その結果、例えば、システム管理クライアント１００が一定時間内に発生する意味情報数と、システム管理クライアント１１０、１２０が一定時間内に発生する意味情報数に差が生じる場合がある。
ここで、図６においてシステム管理クライアント１００が一定時間内に発生するイベント情報数が多くなり、その結果、イベント情報ルータ２００が高負荷になったと仮定する。高負荷となったイベント情報ルータ２００は、最初に高負荷の要因となっているイベント情報の送信元を特定する。次に、その要因となっているイベント情報配信に対するＸ−ｐａｔｈフィルタ条件を特定する。１つのイベント情報配信に対して、複数のフィルタ条件がマッチする場合もあるため、特定されるＸ−ｐａｔｈフィルタ条件は、複数になる場合もありえる。そして、イベント情報ルータ２００は、特定されたＸ−ｐａｔｈフィルタ条件を隣接イベント情報ルータ２３０に転送する。
このＸ−ｐａｔｈフィルタ条件の伝播手順は、先に述べた第３実施形態と同様である。つまり、イベント情報ルータ２３０は、該フィルタ条件を隣接イベント情報ルータ２１０、２５０、２６０に転送する。同様にして、イベント情報ルータ２００が発生したフィルタ条件の情報は、イベント情報ルータ２１０〜２８０に伝播する。
イベント情報ルータ２１０〜２８０のうちイベント情報ルータ２３０〜２８０は、システムＡに属する仮想機器のＣＰＵ使用率に関するイベント情報を生成するシステム管理クライアント１１０、１２０を収容しておらず、上記の伝播動作だけを実行する。
一方、イベント情報ルータ２１０、２２０は、システムＡに属する仮想機器のＣＰＵ使用率に関するイベント情報を生成するシステム管理クライアント１１０、１２０を収容している。そこで、イベント情報ルータ２１０、２２０は、自イベント情報ルータのＤＨＴノードＩＤと、自イベント情報ルータの負荷情報（例えば平均ＣＰＵ使用率）をイベント情報ルータ２００に通知する。
以上の処理によって、高負荷となったイベント情報ルータ２００に、システムＡに属する仮想機器のＣＰＵ使用率を受信する意味情報ルータの負荷情報が集約される。図６では、イベント情報ルータ２１０、２２０がイベント情報ルータ２００によって認識される。そして、イベント情報ルータ２００は、例えば集約された負荷情報のリストから最も低負荷のイベント情報ルータを選択することで、これを高負荷要因となっているイベント情報フローの切り替え先と決定することができる。
また別な方法として、複数の低負荷イベント情報ルータを選択し、さらにそれらへ負荷分散する割合を決定することで、該複数の低負荷イベント情報ルータへ負荷分散を行うことが可能となる。
そして、イベント情報ルータ２００は、システム管理クライアント１００に対して、切り替え先となるイベント情報ルータのＩＰアドレス等のアクセス情報を伝える。
ここで、切り替え先をイベント情報ルータ２１０と仮定すると、システム管理クライアント１００は、該切り替え先情報を受信した後、システムＡに属する仮想機器のＣＰＵ使用率の送信先を、イベント情報ルータ２００からイベント情報ルータ２１０へ切り替える。
以上の処理を経ることによって、イベント情報ルータ２００は、高負荷要因であったシステム管理クライアント１００からのシステムＡに属する仮想機器のＣＰＵ使用率を受信することがなくなり、高負荷状態を回避できるようになる。
なお、上述する実施形態は、本発明の好適な実施形態であり、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。例えば大規模ネットワークシステムの稼動状況を監視する用途に適用できる。すなわち、ネットワークシステム内で発生する様々な状態変化を意味情報やイベント情報として記述し、高度なシステム運用情報の活用が実現可能となる。同様にして、他の環境情報の記述化や交通情報の記述化を進めていくことで、実空間を観測する様々なシステムを互いに利用しつつ横断的な情報活用が可能となる。
また、上述した実施形態におけるブローカノードやイベント情報ルータで実行されるプログラムは、先に述べた各部（取得情報判別部５、フィルタ条件管理部６、負荷分散処理部７）を含むモジュール構成となっている。そして実際のハードウエアを用いて、メッセージ判別機能４０、フィルタ条件管理機能４３、負荷分散処理機能４５や、ＸＭＬ  Ｐａｒｓｉｎｇプロセス５００、Ｘ−ｐａｔｈフィルタ条件管理プロセス５０３、負荷分散処理プロセス５０５などを実現する。すなわち、コンピュータ（ＣＰＵ）が所定の記録媒体からプログラムを読み出して実行することにより上記各手段が主記憶装置上にロードされて生成される。
本実施形態におけるブローカノードで実行されるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードさせることにより提供されるように構成してもよい。また、上記プログラムをインターネット等のネットワーク経由で提供あるいは配布するように構成してもよい。
また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルとしてコンピュータで読み取り可能な記録媒体に記録されて提供されるように構成してもよい。記録媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ、不揮発性のメモリカード等があげられる。また、上記プログラムは、ＲＯＭ等にあらかじめ組み込んで提供するように構成してもよい。
この場合、上記記録媒体から読み出された又は通信回線を通じてロードし実行されたプログラムコード自体が前述の実施形態の機能を実現することになる。そして、そのプログラムコードを記録した記録媒体は本発明を構成する。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２００９年３月１９日に出願された日本出願特願２００９−０６８９００を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は上述の実施形態の他、大規模ネットワークシステムの稼動状況を監視する用途にも適用できる。たとえば、ネットワークシステム内で発生する様々な状態変化を意味情報やイベント情報として記述し、高度なシステム運用情報の活用を実現可能とするシステムに利用できる。また、他の環境情報の記述化や交通情報の記述化を進めていくことで、実空間を観測する様々なシステムを互いに利用しつつ横断的な情報活用を可能とするシステムに利用できる。
【符号の説明】
【００１０】
１  センサネットワークシステム
２，１０〜１５  センサノード
３，２０〜２８  ブローカノード
４，３１，３１  サービスノード
５  取得情報判別部
６  フィルタ条件管理部
７  負荷分散処理部
４０  メッセージ判別機能
４１  マッチング処理機能
４２  イベント情報送信機能
４３  フィルタ条件管理機能
４４  転送先管理機能
４５  負荷分散処理機能
１００〜１５０  システム管理クライアント
２００〜２８０  イベント情報ルータ
３００，３１０  システム管理サーバ
５００  ＸＭＬ  Ｐａｒｓｉｎｇプロセス
５１０  マッチング処理プロセス
５２０  イベント情報送信プロセス
５３０  Ｘ−ｐａｔｈフィルタ条件管理プロセス
５４０  ＤＨＴルーティングテーブル
５５０  負荷分散処理プロセス
【図１Ａ】
2010107105.tif 000003
【図１Ｂ】
2010107105.tif 000004
【図２】
2010107105.tif 000005
【図３】
2010107105.tif 000006
【図４】
2010107105.tif 000007
【図５】
2010107105.tif 000008
【図６】
2010107105.tif 000009
【図７】
2010107105.tif 000010
【国際調査報告】
2010107105.tif 000011
2010107105.tif 000012
2010107105.tif 000013