(57)【特許請求の範囲】
【請求項１】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信する通信装置であって、
前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部と、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記自装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信する受信部と、
前記受信部によって前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定する設定部と、
前記収集要求を受信した場合、前記設定部によって設定された前記評価値が前記最上位となる装置を示しているか否かを判断する判断部と、
前記判断部にて前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する制御部と、
を備えることを特徴とする通信装置。
【請求項２】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを特定の装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信し、前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部を有する通信装置に実行させる通信プログラムであって、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記特定の装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信し、
前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定し、
前記収集要求を受信した場合、設定された前記評価値が前記最上位となる装置を示しているか否かを判断し、
前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する、
処理を前記特定の装置に実行させる通信プログラム。
【請求項３】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを特定の装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信し、前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部を有する通信装置が実行する通信方法であって、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記特定の装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信し、
前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定し、
前記収集要求を受信した場合、設定された前記評価値が前記最上位となる装置を示しているか否かを判断し、
前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する、
処理を前記特定の装置が実行する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信する通信装置、通信プログラム、および通信方法に関する。
【背景技術】
【０００２】
近年、機器の管理機能や通信機能を有する高機能な電力メータであるスマートメータを用いて、電力利用情報をサーバに収集し、課金サービス等に応用するスマートメータシステムの提供が行われつつある。以下の説明において、各スマートメータシステム内の各スマートメータからの電力情報、温度情報等の収集処理、および分析処理をタスクと呼称し、測定対象の属性である電力情報、温度情報、といった各スマートメータが測定可能な情報をイベントと呼称する。スマートメータシステムは、タスクを実行するサーバと、サーバに接続され、階層構造を有する中継器と、中継器に接続されたスマートメータが存在する。
【０００３】
イベントを収集する技術として、たとえば、Ｐｕｂｌｉｓｈ／Ｓｕｂｓｃｒｉｂｅというものがある。具体的に、イベントを要求する送信装置は、イベント要求を送信する。イベント要求を受信した受信装置は、下位の装置から送信されてきたイベントを送信装置に送信する。なお、送信されてきたイベントを送信装置に送信するため、受信装置は、イベントと送信装置の識別情報を含む経路情報を登録しておき、イベントを受信した場合、登録された経路情報に従って、受信したイベントを送信装置に送信する。
【０００４】
また、スマートメータシステムは、イベントとタスクの増加に伴って、サーバの負荷が増大する。そこで、スマートメータシステムは、中継器にタスクを委譲することで、サーバの負荷を軽減することができる。タスクを委譲する技術に関連する技術として、たとえば、各中継器が自装置の処理能力に関する情報を登録しておき、タスクを委譲するサーバは、登録された情報のうち、タスクの処理能力等といった条件に合致した中継器にタスクを委譲するといったものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１６７８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術において、イベント要求を受けた中継器は、経路情報を登録するが、中継器がイベント要求に対応するイベントを受信しない場合もあり、この場合、使用されることのない経路情報が登録されてしまっていた。イベントが委譲されると各中継器でイベント情報が登録されていくため、登録される経路情報が増大してしまうという問題があった。
【０００７】
本発明は、上述した従来技術による問題点を解消するため、経路情報の増大を抑制できる通信装置、通信プログラム、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると測定対象の属性情報と下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、収集要求を上位の装置に送信する通信装置であって、測定対象の属性に関する特徴量を複数の下位の装置から収集する装置のうちネットワーク内で最上位となる装置が自装置であるか否かを示す評価値を設定し、収集要求を受信した場合、設定された評価値が最上位となる装置を示しているか否かを判断し、評価値が最上位となる装置であると判断された場合、収集要求を上位の装置に送信しないように制御する通信装置、通信プログラム、および通信方法が提案される。
【発明の効果】
【０００９】
本発明の一側面によれば、経路情報の増大を抑制できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１−１】図１−１は、スマートメータシステム１００の動作例を示す説明図（その１）である。
【図１−２】図１−２は、スマートメータシステム１００の動作例を示す説明図（その２）である。
【図２】図２は、実施の形態にかかる通信装置１０２のハードウェアを示すブロック図である。
【図３】図３は、スマートメータシステム１００の機能を示すブロック図である。
【図４】図４は、経路情報テーブル１０４の記憶内容の一例を示す説明図である。
【図５】図５は、処理分割テーブル３１１の記憶内容の一例を示す説明図である。
【図６】図６は、メッセージタスク関係テーブル３１２の記憶内容の一例を示す説明図である。
【図７】図７は、タスク情報３１３のフォーマット例を示す説明図である。
【図８】図８は、サーバ１０１におけるタスク情報３１３の処理例を示す説明図である。
【図９】図９は、メッセージ記憶テーブル３３１の記憶内容の一例を示す説明図である。
【図１０】図１０は、イベント要求メッセージ３３２のフォーマット例を示す説明図である。
【図１１】図１１は、タスクが委譲される状態を示す説明図（その１）である。
【図１２】図１２は、タスクが委譲される状態を示す説明図（その２）である。
【図１３】図１３は、タスクが委譲される状態を示す説明図（その３）である。
【図１４】図１４は、タスクが委譲される状態を示す説明図（その４）である。
【図１５】図１５は、イベント要求メッセージ３３２が送信された状態を示す説明図である。
【図１６】図１６は、イベント３３３が収集される状態を示す説明図である。
【図１７】図１７は、スマートメータシステム１００におけるタスク委譲実行処理の一例を示すフローチャートである。
【図１８】図１８は、サーバ１０１におけるタスク委譲処理の一例を示すフローチャートである。
【図１９】図１９は、通信装置タスク委譲処理の一例を示すフローチャートである。
【図２０】図２０は、通信装置１０２におけるイベント分岐設定処理の一例を示すフローチャートである。
【図２１】図２１は、通信装置１０２におけるイベント要求メッセージ送信処理の一例を示すフローチャートである。
【図２２】図２２は、通信装置１０２における経路情報設定処理の一例を示すフローチャートである。
【図２３】図２３は、通信装置１０２におけるイベント収集処理の一例を示すフローチャートである。
【図２４】図２４は、通信装置１０２におけるタスク完了時処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、開示の通信装置、通信プログラム、および通信方法の実施の形態を詳細に説明する。
【００１２】
図１−１、図１−２は、スマートメータシステム１００の動作例を示す説明図である。スマートメータシステム１００は、タスクを実行するサーバ１０１と、中継器となる通信装置１０２と、スマートメータを有する端末１０３と、を含む。図１−１で示す説明図は、タスクを委譲する場合の動作例を示しており、図１−２で示す説明図は、イベントを収集する場合の動作例を示している。
【００１３】
サーバ１０１は、端末１０３からの送信されるイベントを用いてタスクを実行する、ＣＥＰ（Ｃｏｍｐｌｅｘ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）という技術が適用されたサーバである。通信装置１０２は、端末１０３からのイベントを中継し、サーバ１０１に送信する。端末１０３は、測定対象となるビルや家屋に設置されており、周期的に通信装置１０２にイベントを送信する。
【００１４】
サーバ１０１、通信装置１０２、端末１０３の接続関係として、スマートメータシステム１００は、木構造のネットワークであり、サーバ１０１が最上位の装置であり、端末１０３が末端の装置となる。サーバ１０１は、下位の装置として通信装置１０２−Ｇと接続している。通信装置１０２−Ｇは、下位の装置として通信装置１０２−Ｅ、通信装置１０２−Ｆと接続している。通信装置１０２−Ｆは、下位の装置として家屋に設置された端末１０３−Ｆ１と接続している。
【００１５】
通信装置１０２−Ｅは、下位の装置として通信装置１０２−Ｃ、通信装置１０２−Ｄと接続している。通信装置１０２−Ｄは、下位の装置として家屋に設置された端末１０３−Ｄ１、端末１０３−Ｄ２と接続している。通信装置１０２−Ｃは、下位の装置として通信装置１０２−Ａ、通信装置１０２−Ｂと接続している。通信装置１０２−Ｂは、下位の装置として家屋に設置された端末１０３−Ｂ１およびビルに設置された端末１０３−Ｂ２と接続している。通信装置１０２−Ａは、下位の装置としてビルに設置された端末１０３−Ａ１と接続している。
【００１６】
以下の説明において、ハードウェア、ソフトウェアの符号に“−Ｓ”となる接尾記号が付与されている場合は、サーバ１０１に関するハードウェア、ソフトウェアであることを示す。また、ハードウェア、ソフトウェアの符号に“−Ａ”〜“−Ｇ”となる接尾記号が付与されている場合は、通信装置１０２−Ａ〜通信装置１０２−Ｇに関するハードウェア、ソフトウェアであることを示す。
【００１７】
また、サーバ１０１と通信装置１０２は、経路情報テーブル１０４を有する。経路情報テーブル１０４は、タスクを委譲要求するメッセージ、またはイベントを受信したときに、メッセージ、イベントの転送先となる装置を記憶するテーブルである。また、経路情報テーブル１０４の１レコードを経路情報と定義する。たとえば、経路情報テーブル１０４−Ｇは、ビルの温度情報と家屋の温度情報を測定可能である温度センサが通信装置１０２−Ｅの方向に、家屋の温度センサが通信装置１０２−Ｆの方向に登録されていることが示されている。したがって、通信装置１０２−Ｇは、ビルの温度情報を用いるタスクの委譲要求を受信した場合、委譲要求を通信装置１０２−Ｅに送信する。
【００１８】
図１−１にて、サーバ１０１は、ビルの平均温度を算出するタスク１１１を通信装置１０２のいずれかに委譲要求するメッセージであるタスク委譲要求メッセージを通信装置１０２−Ｇに送信する。タスク委譲要求メッセージを受信した通信装置１０２は、イベントを複数の下位の装置から収集する装置のうち、スマートメータシステム１００内で最上位となる装置が自装置であるか否かを示す評価値を設定する。以下の説明では、前述の条件が満たされた場合、通信装置１０２は、評価値を“分岐開始”として設定する。
【００１９】
また、通信装置１０２は、評価値が“分岐開始”として設定されたかを示す設定情報を下位の装置に送信する。本実施の形態では、通信装置１０２は、設定情報をタスク委譲要求メッセージに含めて送信する。評価値が“分岐開始”として設定されていない場合、設定情報は“未分岐”であり、設定された場合、“分岐済”であると定義する。
【００２０】
初めに、通信装置１０２−Ｇは、複数の下位の装置から該当のイベントを収集する装置であるかを判断する。ビルの温度情報は通信装置１０２−Ｅ１つから収集されるため、通信装置１０２−Ｇは、評価値を“分岐開始”として設定せずに、経路情報テーブル１０４−Ｇに従って設定情報が“未分岐”となるタスク委譲要求メッセージを通信装置１０２−Ｅに転送する。同様に、通信装置１０２−Ｅも、評価値を“分岐開始”として設定せずに、経路情報テーブル１０４−Ｅに従ってタスク委譲要求メッセージを通信装置１０２−Ｃに転送する。
【００２１】
タスク委譲要求メッセージを受信した通信装置１０２−Ｃは、設定情報が“未分岐”であり、ビルの温度情報が通信装置１０２−Ａ、通信装置１０２−Ｂの複数から収集されるため、評価値１１２を“分岐開始”として設定する。設定後、通信装置１０２−Ｃは、通信装置１０２−Ａに設定情報が“分岐済”となるタスク委譲要求メッセージを送信する。通信装置１０２−Ａは、タスク１１１を実行する。
【００２２】
このように、スマートメータシステム１００は、複数の下位の装置から該当のイベントを収集する装置のうちスマートメータシステム１００内で最上位の装置に評価値を設定することで、イベントの分岐開始点が判断できる。図１−１の例では、通信装置１０２−Ｄ〜通信装置１０２−Ｆ側では、ビルの温度情報を収集しないため、イベントに対応する経路情報が存在しなくてよい。
【００２３】
次に、図１−２に示す説明図にて、通信装置１０２−Ａは、タスク１１１を実行するときに、イベントの収集要求であるイベント要求メッセージを上位の通信装置である通信装置１０２−Ｃに送信する。イベント要求メッセージを受信した通信装置１０２−Ｃは、ビルの温度情報を通信装置１０２−Ａに送信する経路情報を経路情報テーブル１０４−Ｃに追加する。これにより、イベント収集において、通信装置１０２−Ｃは、通信装置１０２−Ｂからイベントを受信した場合、追加した経路情報に従って、イベントを通信装置１０２−Ａに送信する。
【００２４】
また、通信装置１０２−Ｃは、評価値１１２が“分岐開始”であるかを判断する。通信装置１０２−Ｃは、評価値１１２が“分岐開始”であるため、イベント要求メッセージを通信装置１０２−Ｅに送信しないように制御する。
【００２５】
これにより、通信装置１０２−Ｅはイベント要求メッセージを受信しないため、経路情報を追加することがなく、スマートメータシステム１００は、経路情報の増大を抑制することができる。続けて、図１−１、図１−２で行った動作を実現するハードウェア、ソフトウェアの説明を図２〜図２４を用いて行う。
【００２６】
図２は、実施の形態にかかる通信装置１０２のハードウェアを示すブロック図である。図２において、通信装置１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、を含む。また、通信装置１０２は、フラッシュＲＯＭ２０４と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０５と、を含む。また、各部はバス２０６によってそれぞれ接続されている。
【００２７】
ここで、ＣＰＵ２０１は、通信装置１０２の全体の制御を司る。なお、通信装置１０２は、複数のＣＰＵを含むマルチコアプロセッサシステムであってもよい。ここで、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。
【００２８】
ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。フラッシュＲＯＭ２０４は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などのシステムソフトウェアやアプリケーションソフトウェア、本実施の形態にかかる通信プログラムなどを記憶している。たとえば、ＯＳを更新する場合、通信装置１０２は、Ｉ／Ｆ２０５によって新しいＯＳを受信し、フラッシュＲＯＭ２０４に格納されている古いＯＳを、受信した新しいＯＳに更新する。
【００２９】
Ｉ／Ｆ２０５は、通信回線を通じてサーバ１０１、他の通信装置１０２、端末１０３といった外部装置に接続されており、外部装置群と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【００３０】
なお、サーバ１０１〜端末１０３間は、直接接続されていてもよいし、サーバ１０１〜端末１０３が同一ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に存在しており、各装置間でＬ２スイッチ等を経由して接続されていてもよい。また、サーバ１０１〜端末１０３間は、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークを経由して接続してもよい。この場合、情報を暗号化するため、サーバ１０１〜端末１０３は、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）やＩＰｓｅｃ（ｓｅｃｕｒｉｔｙ  ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を採用してもよい。また、通信装置１０２〜端末１０３間は、電力線搬送通信を介してもよい。
【００３１】
また、サーバ１０１のハードウェアは、たとえば、ＣＰＵ、ＲＯＭ、ＲＡＭに加え、磁気ディスクドライブ、磁気ディスク、光ディスクドライブ、光ディスクを含む。磁気ディスクドライブは、サーバ１０１内のＣＰＵの制御に従って磁気ディスクに対するデータのリード／ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。光ディスクドライブは、サーバ１０１内のＣＰＵの制御に従って光ディスクに対するデータのリード／ライトを制御する。光ディスクは、光ディスクドライブの制御で書き込まれたデータを記憶したり、光ディスクに記憶されたデータをコンピュータに読み取らせたりする。
【００３２】
また、端末１０３のハードウェアは、通信装置１０２が有するハードウェアに加え、家屋、ビル内の消費電力を測定するセンサを有する。さらに、端末１０３は、家屋、ビル内の温度を測定するセンサを有し、家屋、ビル内のエアーコンディショナーに接続していてもよい。
【００３３】
（スマートメータシステム１００の機能）
次に、スマートメータシステム１００の機能について説明する。図３は、スマートメータシステム１００の機能を示すブロック図である。スマートメータシステム１００は、制御部３０１と、構文解析部３０２と、生成部３０３と、送信部３０４と、を含む。この制御部となる機能（制御部３０１〜送信部３０４）は、記憶装置に記憶されたプログラムをサーバ１０１のＣＰＵが実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、サーバ１０１のＲＯＭ、ＲＡＭ、フラッシュＲＯＭなどである。または、サーバ１０１のＩ／Ｆを経由して他のＣＰＵが実行することにより、その機能を実現してもよい。
【００３４】
また、スマートメータシステム１００は、記憶部３２０と、受信部３２１と、設定部３２２と、判断部３２３と、制御部３２４と、送信部３２５と、受信部３２６と、追加部３２７と、送信部３２８と、を含む。この制御部となる機能（受信部３２１〜送信部３２８）は、記憶装置に記憶されたプログラムをＣＰＵ２０１が実行することにより、その機能を実現する。
【００３５】
記憶装置とは、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、フラッシュＲＯＭ２０４などである。または、Ｉ／Ｆ２０５を経由して他のＣＰＵが実行することにより、その機能を実現してもよい。なお、記憶部３２０は、ＲＡＭ２０３、フラッシュＲＯＭ２０４といった記憶装置となる。また、図３で示す記憶部３２０〜送信部３２８は、通信装置１０２−Ｃの機能であるように図示されているが、通信装置１０２−Ａ〜通信装置１０２−Ｇにも含まれる。
【００３６】
また、スマートメータシステム１００は、経路情報テーブル１０４と、処理分割テーブル３１１と、メッセージタスク関係テーブル３１２と、メッセージ記憶テーブル３３１にアクセス可能である。また、スマートメータシステム１００は、タスク情報３１３と、タスク委譲要求メッセージ３１４と、イベント要求メッセージ３３２と、を生成する。また、スマートメータシステム１００は、周期的にイベント３３３を取得する。
【００３７】
なお、経路情報テーブル１０４は、サーバ１０１、通信装置１０２のそれぞれの記憶領域に格納されている。具体的に、サーバ１０１は、経路情報テーブル１０４−Ｓを有しており、通信装置１０２−Ａ〜通信装置１０２−Ｇは、それぞれ、経路情報テーブル１０４−Ａ〜経路情報テーブル１０４−Ｇを有している。処理分割テーブル３１１、メッセージタスク関係テーブル３１２は、サーバ１０１の記憶領域に格納されている。メッセージ記憶テーブル３３１は、通信装置１０２のそれぞれの記憶領域に格納されている。また、タスク情報３１３と、タスク委譲要求メッセージ３１４は、サーバ１０１にて生成される。イベント要求メッセージ３３２は、タスクが委譲された通信装置１０２にて生成される。
【００３８】
また、通信装置１０２は、木構造となるスマートメータシステム１００に存在している。通信装置に接続される下位の装置の数は、１つでもよいし、２以上であってよい。また、通信装置１０２は、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると測定対象の属性情報と下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、収集要求を上位の装置に送信する。
【００３９】
測定対象は、ビル、家屋といった、スマートメータに付随するセンサが測定する対象を示している。測定対象の属性情報とは、測定対象が有している特徴の種別となり、たとえば、温度情報、電力情報、といった種別を示している。測定対象の属性の特徴量とは、属性の具体的な値であり、たとえば、測定対象の属性情報が温度情報であれば、２０［度］、といった値となる。また、測定対象の属性の特徴量は、数値でなくてもよく、たとえば、電力情報：高、中、低、といったような情報であってもよい。
【００４０】
経路情報テーブル１０４は、タスク委譲要求メッセージ３１４、またはイベント３３３を受信したときに、タスク委譲要求メッセージ３１４、イベント３３３の転送先となる装置を記憶するテーブルである。経路情報テーブル１０４の詳細については、図４にて後述する。処理分割テーブル３１１は、タスクが実行する処理が複数の通信装置１０２で分割可能か否かを記憶するテーブルである。処理分割テーブル３１１の詳細は、詳細については、図５にて後述する。メッセージタスク関係テーブル３１２は、タスクとタスク委譲要求メッセージ３１４の関連を記憶するテーブルである。メッセージタスク関係テーブル３１２の詳細については、図６にて後述する。
【００４１】
タスク情報３１３は、タスクを構文解析して得られるデータである。タスク情報３１３の詳細については、図７にて後述する。タスク委譲要求メッセージ３１４は、タスクの委譲を要求するときに下位の通信装置１０２に送信されるメッセージである。なお、タスク委譲要求メッセージ３１４の詳細は、図８にて後述する。
【００４２】
また、メッセージ記憶テーブル３３１は、イベントに対応する評価値を記憶する。なお、メッセージ記憶テーブル３３１の詳細については、図９にて後述する。また、イベント要求メッセージ３３２は、イベントの収集要求を上位の通信装置１０２に送信されるメッセージである。なお、イベント要求メッセージ３３２の詳細については、図１０にて後述する。
【００４３】
制御部３０１は、サーバ１０１を管理しており、たとえば、サーバ１０１の負荷が増大してきた場合、タスクを通信装置１０２のいずれかに委譲する機能を有する。たとえば、制御部３０１は、タスクの一覧が記憶されているタスクキューから一つのタスクを選択し、委譲対象となるタスクに設定する。なお、設定されたタスクの識別情報は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００４４】
構文解析部３０２は、制御部３０１が選択した、委譲対象となるタスクを構文解析する。具体的には、構文解析部３０２は、タスクが準拠している規約に従って、構文解析を行う。たとえば、タスクがＣＥＰ技術で採用されるＣＱＬ（Ｃｏｎｔｉｎｕｏｕｓ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）に従って記述されている場合、サーバ１０１内のＣＱＬパーサが構文解析を行う。構文解析して得られたデータが、タスク情報３１３である。タスク情報３１３は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００４５】
生成部３０３は、タスク情報３１３からタスク委譲要求メッセージ３１４を生成する機能を有する。たとえば、生成部３０３は、タスク情報３１３から、タスク委譲要求メッセージ３１４に固有なＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）と、評価値が“分岐開始”として設定されたかを示す設定情報を付与して、タスク委譲要求メッセージ３１４を生成する。
【００４６】
送信部３０４は、生成されたタスク委譲要求メッセージ３１４を下位の通信装置１０２に送信する。たとえば、送信部３０４は、タスク委譲要求メッセージ３１４を通信装置１０２−Ｇに送信する。
【００４７】
記憶部３２０は、測定対象の属性情報と測定対象の属性の特徴量を取得可能な下位の装置の識別情報との組合せを記憶する。具体的に、記憶部３２０は、経路情報テーブル１０４に測定対象の属性情報と測定対象の属性の特徴量を取得可能な下位の装置の識別情報との組合せを記憶する。
【００４８】
受信部３２１は、評価値が“分岐開始”として設定されたか否かを示す設定情報を上位の装置から受信する機能を有する。具体的に、受信部３２１は、設定情報を通信装置１０２−Ｅから受信する。なお、スマートメータシステム１００の接続状態が変化しない場合、設定情報が変化する箇所も変化しない。具体的に、図１−１において、イベントがビルの温度情報である場合、設定情報は、通信装置１０２−Ｃで常に“分岐済”に設定される。
【００４９】
したがって、同じイベントを用いる異なるタスクが委譲される場合、１つ目のタスク委譲要求メッセージ３１４が設定情報を含んでおり、２つ目のタスク委譲要求メッセージ３１４には、設定情報を含んでいなくてもよい。また、上位の装置は、設定情報単独で送信してもよい。なお、受信した設定情報は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００５０】
設定部３２２は、測定対象の属性に関する特徴量を複数の下位の装置から収集する装置のうちネットワーク内で最上位となる装置が自装置であるか否かを示す評価値を設定する機能を有する。また、設定部３２２は、受信部３２１によって設定情報を受信した場合、記憶部３２０に記憶された測定対象の属性の特徴量が取得可能な下位の装置の数と設定情報とに基づいて、自装置の評価値を設定してもよい。
【００５１】
具体的に、設定部３２２は、測定対象の属性の特徴量を取得可能な下位の装置が複数であり、設定情報が“未分岐”である場合に、評価値を“分岐開始”として設定する。また、設定部３２２は、測定対象の属性の特徴量を取得可能な下位の装置が単数である場合、評価値を設定しない。さらに、設定部３２２は、設定情報が“分岐済”である場合、評価値を設定しない。
【００５２】
また、評価値は、スマートメータシステム１００の設計時に設定されていてもよい。スマートメータシステム１００の接続状態が変化しない場合、評価値が設定される通信装置１０２も変化しない。具体的に、図１−１において、イベントがビルの温度情報である場合、評価値は、通信装置１０２−Ｃで常に“分岐開始”に設定される。したがって、スマートメータシステム１００は、設計時に、通信装置１０２−Ｃに関してビルの温度情報に対応する評価値が予め設定していてもよい。なお、設定された評価値は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００５３】
判断部３２３は、収集要求を受信した場合、設定部３２２によって設定された評価値が“分岐開始”を示しているか否かを判断する機能を有する。判断結果は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００５４】
制御部３２４は、判断部３２３にて評価値が“分岐開始”であると判断された場合、収集要求を上位の装置に送信しないように制御する機能を有する。たとえば、制御部３２４は、イベント要求メッセージ３３２を通信装置１０２−Ｅに送信しないように制御する。
【００５５】
送信部３２５は、収集要求を上位の装置に送信する機能を有する。たとえば、送信部３２５は、評価値が設定されていないと判断された場合、イベント要求メッセージ３３２を通信装置１０２−Ｅに送信する。
【００５６】
受信部３２６は、イベントの収集要求を下位の装置から受信する機能を有する。たとえば、受信部３２６は、イベント要求メッセージ３３２を通信装置１０２−Ａから受信する。なお、受信したイベント要求メッセージ３３２は、ＣＰＵ２０１の汎用レジスタ、ＲＡＭ２０３、フラッシュＲＯＭ２０４などの記憶領域に記憶される。
【００５７】
追加部３２７は、受信部３２６によって収集要求を受信した場合、測定対象の属性情報と下位の装置の識別情報を記憶部３２０に追加する機能を有する。たとえば、収集対象となるイベントがビルの温度情報であり、通信装置１０２−Ａからイベント要求メッセージ３３２を受信した場合、追加部３２７は、ビルの温度情報と通信装置１０２−Ａの識別情報を有する経路情報を経路情報テーブル１０４−Ｃに追加する。
【００５８】
送信部３２８は、下位の装置から測定対象の属性の特徴量を受信した場合、追加部３２７によって追加された記憶部３２０を参照して、測定対象の属性の特徴量を送信する機能を有する。たとえば、送信部３２８は、通信装置１０２−Ｂからイベント３３３を受信した場合、経路情報テーブル１０４−Ｃに追加された経路情報を参照して、通信装置１０２−Ａにイベント３３３を送信する。
【００５９】
図４は、経路情報テーブル１０４の記憶内容の一例を示す説明図である。経路情報テーブル１０４には、下位方向に接続されている端末１０３、通信装置１０２の情報が登録されている。経路情報テーブル１０４は、２つのテーブルを含んでおり、タスクを委譲する場合に参照されるタスク委譲用テーブル４０１と、イベントを収集する場合に参照されるイベント収集用テーブル４０２と、を含む。なお、図４で示す経路情報テーブル１０４は、通信装置１０２−Ｃ内に存在する経路情報テーブル１０４−Ｃを例としている。
【００６０】
タスク委譲用テーブル４０１は、センサ種別、測定対象、委譲先識別情報という３つのフィールドを含む。センサ種別フィールドには、タスクの命令によって測定されるセンサの識別子が格納される。センサの識別子は、たとえば、温度を測定する温度センサを示す識別子、電力を測定する電力センサ等を示す識別子である。測定対象フィールドには、センサが測定する対象を示す識別子が格納される。委譲先識別情報フィールドには、タスクの委譲先となる装置の識別情報が格納される。装置の識別情報としては、たとえば、装置のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）アドレスや、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス等が採用される。
【００６１】
次に、タスク委譲用テーブル４０１にレコードが登録される契機を説明する。通信装置１０２−Ａがスマートメータシステム１００に接続された場合、通信装置１０２−Ａは、自身のタスク委譲用テーブル４０１−Ａの内容をＳｕｂｓｃｒｉｂｅメッセージとして通信装置１０２−Ｃに送信する。続けて、通信装置１０２−Ｃは、受信したＳｕｂｓｃｒｉｂｅメッセージをタスク委譲用テーブル４０１−Ｃに登録する。たとえば、通信装置１０２−ＡからのＳｕｂｓｃｒｉｂｅメッセージが“センサ種別：温度センサ、測定対象：ビル”であれば、通信装置１０２−Ｃは、Ｓｕｂｓｃｒｉｂｅメッセージをレコード４０１−Ｃ−１として登録する。
【００６２】
同様に、通信装置１０２−Ｃは、通信装置１０２−ＢからのＳｕｂｓｃｒｉｂｅメッセージをレコード４０１−Ｃ−２、レコード４０１−Ｃ−３として登録する。このように、タスク委譲用テーブル４０１は、通信装置１０２、端末１０３の接続時にレコードが追加され、以後固定である。なお、タスクを委譲する場合の具体的なタスク委譲用テーブル４０１の参照方法としては、図１１〜図１４にて後述する。
【００６３】
イベント収集用テーブル４０２は、イベント種別、測定対象、収集先識別情報という３つのフィールドを含む。イベント種別フィールドには、収集対象となるイベントの種別が格納される。たとえば、イベント種別フィールドには、温度情報、電力情報等が格納される。測定対象フィールドには、センサが測定する対象を示す識別子が格納される。収集先識別情報フィールドには、イベント収集先となる通信装置の識別情報が格納される。なお、イベント収集用テーブル４０２にレコードが登録される契機については、図１５にて後述し、イベントを収集する場合の具体的なイベント収集用テーブル４０２の参照方法としては、図１６にて後述する。
【００６４】
また、テーブル４０３は、タスク委譲用テーブル４０１−Ｃとイベント収集用テーブル４０２−Ｃを結合して表示している。以下の図では、経路情報テーブル１０４のデータを、テーブル４０３のように結合して表示する。
【００６５】
なお、タスク委譲用テーブル４０１およびイベント収集用テーブル４０２の測定対象フィールドは、イベントをクラス分けするために用いられる情報である。図４の例では、温度情報、電力情報といったイベントを、ビルの温度情報、家屋の温度情報、といったようにクラス分けすることができる。他の条件でイベントをクラス分けする場合、タスク委譲用テーブル４０１およびイベント収集用テーブル４０２は、他の条件を格納するフィールドを含む。
【００６６】
図５は、処理分割テーブル３１１の記憶内容の一例を示す説明図である。処理分割テーブル３１１は、処理名称、処理分割フラグという２つのフィールドを含む。処理名称フィールドには、タスクが実行する処理の名称が格納される。処理分割フラグフィールドには、該当の処理が分割可能か否かを示すフラグが格納される。具体的に、処理分割フラグフィールドには、分割可能を示す“可”識別子と、分割不可を示す“不可”識別子のいずれか一方が格納される。
【００６７】
たとえば、レコード３１１−１は、タスクが実行する処理が平均であり、平均を行う処理が分割不可であることを示している。続けて、レコード３１１−２は、タスクが実行する処理が通知であり、通知を行う処理が分割可能であることを示している。さらに、レコード３１１−３は、タスクが実行する処理が累積であり、累積を行う処理が分割不可であることを示している。なお、スマートメータシステム１００で実行可能な処理は、設計段階で決定されており、どの処理が分割可能か否かは設計段階で決定しておく。
【００６８】
図６は、メッセージタスク関係テーブル３１２の記憶内容の一例を示す説明図である。メッセージタスク関係テーブル３１２は、通信装置１０２にタスクを委譲する場合に生成されるタスク委譲要求メッセージ３１４と委譲元のタスクとの関係を記憶しておくテーブルである。メッセージタスク関係テーブル３１２は、委譲されるタスクごとに記憶されている。
【００６９】
メッセージタスク関係テーブル３１２は、メッセージＩＤ、タスクという２つのフィールドを含む。メッセージＩＤフィールドには、タスク委譲要求メッセージ３１４のＩＤが格納される。メッセージＩＤは、メッセージを一意で識別可能な値であればよく、たとえば、重複しないランダムの値であってもよい。タスクフィールドには、委譲対象となるタスクが格納される。なお、タスクを一意に識別可能なタスクＩＤが存在する場合、メッセージタスク関係テーブル３１２は、タスクフィールドの代わりに、タスクＩＤを格納するタスクＩＤフィールドを有していてもよい。
【００７０】
たとえば、図６に示すレコード３１２−１は、メッセージＩＤが“０ｘ１５３９５９ｂ２”であり、タスクが“ｓｅｌｅｃｔ  平均（ビルの温度情報）  ｆｒｏｍ  地域Ａ  ａｎｄ  地域Ｂ  ｗｈｅｒｅ  Ｘ＞３０”であることを示している。また、レコード３１２−２は、メッセージＩＤが“０ｘ１５６３８０９２”であり、タスクが“ｓｅｌｅｃｔ  平均（ビルの温度情報）  ｆｒｏｍ  地域Ａ  ｗｈｅｒｅ  Ｘ＞３０”であることを示している。
【００７１】
図７は、タスク情報３１３のフォーマット例を示す説明図である。図７で示す説明図は、タスク７０１と、タスク７０１を構文解析して得られたタスク情報３１３を示している。タスク７０１は、以下に示す情報となる。
【００７２】
ｓｅｌｅｃｔ  平均（ビルの温度情報）  ｆｒｏｍ  地域Ａ  ａｎｄ  地域Ｂ  ｗｈｅｒｅ  Ｘ＞３０
【００７３】
サーバ１０１は、タスク７０１を構文解析し、タスク情報３１３を生成する。タスク情報３１３は、処理名称、イベント、結果通知条件、処理分割フラグという４つのフィールドを含む。
【００７４】
処理名称フィールドには、タスクが実行する処理の名称が格納される。イベントフィールドには、タスクが実行する際に要求されるイベントが格納される。また、イベントフィールドにはクラス分けされたイベントが格納されてもよい。クラス分けされたイベントとは、たとえば、スマートメータシステム１００内の温度情報に対して、ビルの温度情報、家屋の温度情報、といったように、測定対象でクラス分けされたイベントである。なお、イベントは、ビル、家屋といった建屋以外の情報でクラス分けされていてもよい。たとえば、ビル内にオフィスと店舗や飲食店が入居している場合、スマートメータシステム１００は、ビルの温度情報を、オフィスの温度情報、店舗の温度情報、飲食店の温度情報といったようにクラス分けしてもよい。
【００７５】
結果通知条件フィールドには、タスクの処理の結果、通知を行う条件が格納される。処理分割フラグフィールドには、該当の処理が分割可能か否かを示すフラグが格納される。たとえば、図７で示すタスク情報３１３は、タスクが実行する処理が平均であり、タスクが要求するイベントがビルの温度情報であり、結果通知条件が平均温度が３０℃以上になったときであり、処理分割不可であることを示している。
【００７６】
図８は、サーバ１０１におけるタスク情報３１３の処理例を示す説明図である。サーバ１０１は、タスク情報３１３からタスク委譲要求メッセージ３１４を生成する。タスク委譲要求メッセージ３１４は、タスク情報３１３に、複数通信装置イベント分岐済フラグフィールドと、メッセージＩＤフィールドが追加されている。
【００７７】
複数通信装置イベント分岐済フラグフィールドは、評価値が“分岐開始”として設定されたかを示す設定情報が格納される。複数通信装置イベント分岐済フラグフィールドは、たとえば、いずれかの通信装置１０２にて、評価値が“分岐開始”と設定された場合、“分岐済”が格納され、評価値が“分岐開始”と設定されていない場合、“未分岐”が格納される。タスク委譲要求メッセージ３１４が生成された時点では、複数通信装置イベント分岐済フラグフィールドは、“未分岐”を格納している。メッセージＩＤフィールドは、タスク委譲要求メッセージ３１４を特定するＩＤであり、メッセージタスク関係テーブル３１２のメッセージＩＤフィールドの値が格納される。
【００７８】
たとえば、図８の例で示すタスク委譲要求メッセージ３１４は、評価値が“分岐開始”として設定されていない状態であり、また、メッセージＩＤが“０ｘ１５３９５９ｂ２”であることを示している。
【００７９】
図９は、メッセージ記憶テーブル３３１の記憶内容の一例を示す説明図である。メッセージ記憶テーブル３３１は、メッセージＩＤ、イベント状態という２つのフィールドを含む。メッセージＩＤフィールドには、受信したタスク委譲要求メッセージ３１４のメッセージＩＤが格納される。イベント状態フィールドには、イベントを複数の下位の装置から収集する装置のうち、スマートメータシステム１００内で最上位となる装置が自装置であるか否かを示す評価値が格納される。具体的に、イベント状態フィールドは、複数の下位の通信装置１０２からイベントを収集し、かつスマートメータシステム１００内の最上位の装置となる場合、識別子として“分岐開始”を格納する。また、該当の通信装置１０２が端末１０３に接続されている場合、イベント状態フィールドは、識別子として“末端”を格納する。
【００８０】
たとえば、図９で示すレコード３３１−１は、メッセージＩＤ“０ｘ１５３９５９ｂ２”で示されるタスク委譲要求メッセージ３１４のイベントが下位の通信装置１０２のうち、２以上の通信装置１０２から収集されることを示している。また、レコード３３１−２は、メッセージＩＤ“０ｘ１５６３８０９２”で示されるタスク委譲要求メッセージ３１４を受信した該当の通信装置１０２が、端末１０３に接続されていることを示している。
【００８１】
図１０は、イベント要求メッセージ３３２のフォーマット例を示す説明図である。テーブルは、イベント、メッセージＩＤという２つのフィールドを含む。イベントフィールドには、タスク委譲要求メッセージ３１４にて要求されたイベントが格納される。メッセージＩＤフィールドには、タスク委譲要求メッセージ３１４のメッセージＩＤが格納される。たとえば、図１０で示すイベント要求メッセージ３３２は、要求されるイベントがビルの温度情報であり、メッセージＩＤが“０ｘ１５３９５９ｂ２”であることを示している。
【００８２】
本実施の形態にかかるスマートメータシステム１００は、図３に示した機能と、図４〜図１０にて示したデータによって、タスク委譲、イベント収集を行う。次に、図１１〜図１６にて、スマートメータシステム１００にてタスクが委譲されていく状態と、イベントが収集される状態と、について説明する。
【００８３】
図１１は、タスクが委譲される状態を示す説明図（その１）である。図１１で示すスマートメータシステム１００にて、サーバ１０１は、通信装置１０２−Ｇに対してタスク委譲要求メッセージ３１４を送信する。通信装置１０２−Ｇは、タスク委譲要求メッセージ３１４のイベントフィールドに格納されたイベントを取得可能な通信装置１０２を、経路情報テーブル１０４−Ｇから検出する。ビルの温度情報を取得可能な通信装置１０２は、経路情報テーブル１０４−Ｇより、通信装置１０２−Ｅ１つである。したがって、通信装置１０２−Ｇは、メッセージ記憶テーブル３３１−Ｇにレコードを追加せず、また、タスク委譲要求メッセージ３１４を変更しないで通信装置１０２−Ｅに送信する。
【００８４】
図１２は、タスクが委譲される状態を示す説明図（その２）である。図１２で示すスマートメータシステム１００は、通信装置１０２−Ｅが通信装置１０２−Ｇからタスク委譲要求メッセージ３１４を受信した状態である。通信装置１０２−Ｅは、タスク委譲要求メッセージ３１４のイベントフィールドに格納されたイベントを取得可能な通信装置１０２を、経路情報テーブル１０４−Ｅから検出する。ビルの温度情報を取得可能な通信装置１０２は、経路情報テーブル１０４−Ｅより、通信装置１０２−Ｃ１つである。したがって、通信装置１０２−Ｅは、メッセージ記憶テーブル３３１−Ｅにレコードを追加せず、また、タスク委譲要求メッセージ３１４を変更しないで通信装置１０２−Ｃに送信する。
【００８５】
図１３は、タスクが委譲される状態を示す説明図（その３）である。図１３で示すスマートメータシステム１００は、通信装置１０２−Ｃが通信装置１０２−Ｅからタスク委譲要求メッセージ３１４を受信した状態である。通信装置１０２−Ｃは、タスク委譲要求メッセージ３１４のイベントフィールドに格納されたイベントを取得可能な通信装置１０２を、経路情報テーブル１０４−Ｃから検出する。ビルの温度情報を取得可能な通信装置１０２は、経路情報テーブル１０４−Ｃより、通信装置１０２−Ａ、通信装置１０２−Ｂの２つである。
【００８６】
このように、複数の通信装置１０２を検出したため、通信装置１０２−Ｃは、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグを“未分岐”から“分岐済”に設定する。続けて、通信装置１０２−Ｃは、メッセージ記憶テーブル３３１−Ｃに新規レコードを追加し、メッセージＩＤフィールドにタスク委譲要求メッセージ３１４のメッセージＩＤフィールドの値を設定し、イベント状態フィールドに“分岐開始”を設定する。設定後、通信装置１０２−Ｃは、タスクを委譲する通信装置１０２として、通信装置１０２−Ａを選択し、フィールドの値が変更されたタスク委譲要求メッセージ３１４を通信装置１０２−Ａに送信する。
【００８７】
図１４は、タスクが委譲される状態を示す説明図（その４）である。図１４で示すスマートメータシステム１００は、通信装置１０２−Ａが通信装置１０２−Ｃからタスク委譲要求メッセージ３１４を受信した状態である。通信装置１０２−Ａは、下位の通信装置１０２を有しておらず、端末１０３−Ａ１と接続している状態である。この状態で、通信装置１０２−Ａは、メッセージ記憶テーブル３３１−Ａに新規レコードを追加し、メッセージＩＤフィールドにタスク委譲要求メッセージ３１４のメッセージＩＤフィールドの値を設定し、イベント状態フィールドに“末端”を設定する。また、通信装置１０２−Ａは、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグフィールドの値を判断する。
【００８８】
図１４の例では、複数通信装置イベント分岐済フラグフィールドが“分岐済”であるため、上位の通信装置１０２にて、イベントが収集されることを示している。したがって、通信装置１０２−Ａは、イベント要求メッセージ３３２を通信装置１０２−Ｃに送信する。イベント要求メッセージ３３２が送信された様子については、図１５にて後述する。
【００８９】
図１５は、イベント要求メッセージ３３２が送信された状態を示す説明図である。図１５で示すスマートメータシステム１００は、通信装置１０２−Ｃが通信装置１０２−Ａからイベント要求メッセージ３３２を受信した状態である。通信装置１０２−Ｃは、イベント要求メッセージ３３２を受信し、イベント収集用テーブル４０２−Ｃに経路情報を追加する。図１５の例では、通信装置１０２−Ｃは、イベント種別フィールドに“温度情報”、測定対象フィールドに“ビル”、収集先識別情報フィールドに“通信装置１０２−Ａ”を設定する。
【００９０】
また、通信装置１０２−Ｃは、イベント要求メッセージ３３２のメッセージＩＤフィールドと同一のメッセージＩＤがメッセージ記憶テーブル３３１−Ｃに存在し、かつ、該当のレコードのイベント状態が“分岐開始”であるかを判断する。図１５の例では、条件に当てはまるため、通信装置１０２−Ｃは、イベント要求メッセージ３３２を通信装置１０２−Ｅに送信しない。
【００９１】
図１６は、イベント３３３が収集される状態を示す説明図である。図１６で示すスマートメータシステム１００は、通信装置１０２−Ｂからイベント３３３が送信され、通信装置１０２−Ｃが受信した状態を示している。通信装置１０２−Ｃは、受信したイベント３３３に対応する経路情報がイベント収集用テーブル４０２−Ｃに登録されているかを判断する。図１６の例では、レコード１６０１が対応した経路情報であることを想定する。通信装置１０２−Ｃは、レコード１６０１に従って、受信したイベント３３３を通信装置１０２−Ａに送信する。
【００９２】
次に、図１７にて図１１〜図１６で示した動作を行うタスク委譲実行処理のフローチャートについて説明を行う。タスク委譲実行処理は、サーバ１０１の負荷が増大してきた場合に実行される処理である。
【００９３】
図１７は、スマートメータシステム１００におけるタスク委譲実行処理の一例を示すフローチャートである。タスク委譲実行処理は、タスク委譲処理、経路情報設定処理、イベント収集処理、タスク完了時処理、という５つの処理を実行する。タスク委譲処理には、サーバ１０１が実行するサーバタスク委譲処理と、通信装置１０２が実行する通信装置タスク委譲処理が存在する。
【００９４】
サーバ１０１は、サーバタスク委譲処理を実行する（ステップＳ１７０１）。次に、通信装置１０２は、通信装置タスク委譲処理を実行する（ステップＳ１７０２）。通信装置タスク委譲処理によりタスクの委託先が決定された後、通信装置１０２は、経路情報設定処理を実行する（ステップＳ１７０３）。経路情報が設定された後、タスクが委譲された通信装置１０２の上位となる通信装置１０２は、イベント収集処理を実行する（ステップＳ１７０４）。イベントが収集された後、タスクが委譲された通信装置１０２は、タスク完了時処理を実行し（ステップＳ１７０５）、スマートメータシステム１００は、タスク委譲実行処理を終了する。
【００９５】
図１８は、サーバ１０１におけるタスク委譲処理の一例を示すフローチャートである。サーバ１０１は、制御部３０１からタスクを受け付ける（ステップＳ１８０１）。なお、タスクにタスクＩＤが存在する場合、サーバ１０１は、制御部３０１からタスクＩＤを受け付けてもよい。続けて、サーバ１０１は、下位に通信装置１０２を有するか否かを判断する（ステップＳ１８０２）。通信装置１０２が無い場合（ステップＳ１８０２：Ｎｏ）、サーバ１０１は、タスクを委譲する通信装置１０２が無いため、タスク委譲処理を終了する。この場合、サーバ１０１は、委譲する予定であったタスクをそのまま実行する。
【００９６】
通信装置１０２を有する場合（ステップＳ１８０２：Ｙｅｓ）、サーバ１０１は、受け付けたタスクを構文解析し、タスク情報３１３を生成する（ステップＳ１８０３）。具体的に、サーバ１０１は、受け付けたタスクから、処理名称、イベント、結果通知条件、処理分割フラグに該当する箇所を構文解析から取得して、タスク情報３１３を生成する。なお、処理分割フラグは、処理分割テーブル３１１を参照して設定される。
【００９７】
タスク情報３１３の生成後、サーバ１０１は、タスク情報３１３からタスク委譲要求メッセージ３１４を生成する（ステップＳ１８０４）。具体的に、サーバ１０１は、タスク情報３１３に対して、複数通信装置イベント分岐済フラグフィールドと、メッセージＩＤフィールドと、を追加して、タスク委譲要求メッセージ３１４を生成する。なお、複数通信装置イベント分岐済フラグフィールドは、“未分岐”が設定されており、メッセージＩＤフィールドは、メッセージタスク関係テーブル３１２を参照して設定される。
【００９８】
タスク委譲要求メッセージ３１４の生成後、サーバ１０１は、下位の通信装置１０２のうち複数の通信装置１０２が、タスク委譲要求メッセージ３１４のイベントフィールドに格納されたイベントを取得可能か否かを判断する（ステップＳ１８０５）。複数の通信装置１０２が該当のイベントを取得可能である場合（ステップＳ１８０５：Ｙｅｓ）、サーバ１０１は、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグフィールドフラグを“分岐済”に設定する（ステップＳ１８０６）。
【００９９】
複数通信装置イベント分岐済フラグフィールドの設定後、または単数の通信装置１０２が該当のイベントを取得可能である場合（ステップＳ１８０５：Ｎｏ）、サーバ１０１は、タスク委譲要求メッセージ３１４を下位の通信装置１０２に送信する（ステップＳ１８０７）。送信後、サーバ１０１は、タスクの終了を受け付ける（ステップＳ１８０８）。具体的に、サーバ１０１は、タスク結果メッセージを受け付けることでタスクの終了を受け付ける。タスクの終了を受け付けた後、サーバ１０１は、サーバタスク委譲処理を実行する。続けて、タスク委譲要求メッセージ３１４を受信した通信装置１０２が、通信装置タスク委譲処理を実行する。
【０１００】
図１９は、通信装置タスク委譲処理の一例を示すフローチャートである。通信装置タスク委譲処理は、サーバ１０１で実行されるサーバタスク委譲処理、または、上位の通信装置タスク委譲処理、からのタスク委譲要求メッセージ３１４を受信したときに実行される。
【０１０１】
通信装置１０２は、タスク委譲要求メッセージ３１４を受信する（ステップＳ１９０１）。受信後、通信装置１０２は、下位に通信装置１０２を有するか否かを判断する（ステップＳ１９０２）。通信装置１０２が無い場合（ステップＳ１９０２：Ｎｏ）、通信装置１０２は、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグフィールドが“分岐済”か否かを判断する（ステップＳ１９０３）。“分岐済”である場合（ステップＳ１９０３：Ｙｅｓ）、通信装置１０２は、イベント要求メッセージ送信処理を実行する（ステップＳ１９０４）。イベント要求メッセージ送信処理の詳細については、図２１にて後述する。また、イベント要求メッセージを受信した上位の通信装置は、経路情報設定処理を実行する（ステップＳ１７０３）。
【０１０２】
イベント要求メッセージ送信処理の終了後、または“未分岐”である場合（ステップＳ１９０３：Ｎｏ）、通信装置１０２は、タスク委譲要求メッセージ３１４の処理名称フィールドに対応する処理を実行する（ステップＳ１９０５）。処理を実行後、通信装置１０２は、通信装置タスク委譲処理を終了し、タスク完了時処理を実行する（ステップＳ１７０５）。また、経路情報設定処理を実行する（ステップＳ１７０３）。
【０１０３】
通信装置１０２を有する場合（ステップＳ１９０２：Ｙｅｓ）、通信装置１０２は、下位の通信装置１０２のうち複数の通信装置１０２が、タスク委譲要求メッセージ３１４のイベントフィールドのイベントを取得可能か否かを判断する（ステップＳ１９０６）。複数の通信装置１０２が該当のイベントを取得可能である場合（ステップＳ１９０６：Ｙｅｓ）、通信装置１０２は、処理分割が可能か否かを判断する（ステップＳ１９０７）。処理分割が可能か否かの判断については、受信したタスク委譲要求メッセージ３１４の処理分割フラグフィールドを参照することで判断することができる。
【０１０４】
処理分割が可能である場合（ステップＳ１９０７：Ｙｅｓ）、通信装置１０２は、イベントを取得可能な下位の通信装置１０２全てにタスク委譲要求メッセージ３１４を転送する（ステップＳ１９０８）。これにより、タスクは分割されて処理されることになる。
【０１０５】
処理分割が可能でない場合（ステップＳ１９０７：Ｎｏ）、通信装置１０２は、イベント分岐設定処理を実行する（ステップＳ１９０９）。イベント分岐設定処理の詳細については、図２０にて後述する。単数の通信装置１０２が該当のイベントを取得可能である場合（ステップＳ１９０６：Ｎｏ）、通信装置１０２は、イベントを取得可能な下位の通信装置１０２にタスク委譲要求メッセージ３１４を送信する（ステップＳ１９１０）。
【０１０６】
ステップＳ１９０８〜ステップＳ１９１０にてタスク委譲要求メッセージ３１４を送信した通信装置１０２は、通信装置タスク委譲処理を終了する。続けて、タスク委譲要求メッセージ３１４を受信した下位の通信装置１０２が、通信装置タスク委譲処理を実行する。
【０１０７】
図２０は、通信装置１０２におけるイベント分岐設定処理の一例を示すフローチャートである。イベント分岐設定処理は、ステップＳ１９０７：Ｎｏのルートを通ったときに実行される。通信装置１０２は、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグフィールドが“分岐済”か否かを判断する（ステップＳ２００１）。“未分岐”である場合（ステップＳ２００１：Ｎｏ）、通信装置１０２は、タスク委譲要求メッセージ３１４の複数通信装置イベント分岐済フラグフィールドを“分岐済”に設定する（ステップＳ２００２）。
【０１０８】
続けて、通信装置１０２は、メッセージ記憶テーブル３３１に新規レコードを追加し（ステップＳ２００３）、追加されたレコードのメッセージＩＤフィールドにタスク委譲要求メッセージ３１４のメッセージＩＤを設定する（ステップＳ２００４）。記憶後、通信装置１０２は、追加されたレコードのイベント分岐状態フィールドに“分岐開始”を設定する（ステップＳ２００５）。
【０１０９】
ステップＳ２００５の処理終了後、または“分岐済”である場合（ステップＳ２００１：Ｙｅｓ）、通信装置１０２は、下位の通信装置１０２のうちタスクを委譲する通信装置１０２を選択する（ステップＳ２００６）。なお、具体的な選択方法としては、下位の通信装置１０２のうち、ランダムで選択してもよいし、イベントを多く送信する可能性が高い通信装置１０２を、タスクを委譲する通信装置１０２に選択してもよい。
【０１１０】
選択後、通信装置１０２は、選択された通信装置１０２にタスク委譲要求メッセージ３１４を送信する（ステップＳ２００７）。送信後、通信装置１０２は、イベント分岐設定処理を終了する。選択された通信装置１０２は、通信装置タスク委譲処理を実行する（ステップＳ１７０２）。
【０１１１】
図２１は、通信装置１０２におけるイベント要求メッセージ送信処理の一例を示すフローチャートである。イベント要求メッセージ送信処理は、ステップＳ１９０３：Ｙｅｓのルートを通ったときに実行される。通信装置１０２は、受信したタスク委譲要求メッセージ３１４から、イベント要求メッセージ３３２を生成する（ステップＳ２１０１）。具体的に、通信装置１０２は、タスク委譲要求メッセージ３１４のイベントフィールドとメッセージＩＤフィールドから、イベント要求メッセージ３３２を生成する。
【０１１２】
続けて、通信装置１０２は、メッセージ記憶テーブル３３１に新規レコードを追加する（ステップＳ２１０２）。追加後、通信装置１０２は、追加されたレコードのメッセージＩＤフィールドにタスク委譲要求メッセージ３１４のメッセージＩＤを設定する（ステップＳ２１０３）。設定後、通信装置１０２は、追加されたレコードのイベント分岐状態フィールドに“末端”を設定する（ステップＳ２１０４）。
【０１１３】
メッセージ記憶テーブル３３１への設定後、通信装置１０２は、イベント要求メッセージ３３２を上位の通信装置１０２に送信する（ステップＳ２１０５）。なお、上位がサーバ１０１である場合、通信装置１０２は、イベント要求メッセージ３３２をサーバ１０１に送信する。ステップＳ２１０５の処理終了後、通信装置１０２は、ステップＳ１９０５の処理を実行する。
【０１１４】
図２２は、通信装置１０２における経路情報設定処理の一例を示すフローチャートである。経路情報設定処理は、下位の通信装置１０２が実行し通信装置タスク委譲処理、または、下位の通信装置１０２が実行した経路情報設定処理から実行される。
【０１１５】
通信装置１０２は、イベント要求メッセージ３３２を受信する（ステップＳ２２０１）。続けて、通信装置１０２は、受信したイベント要求メッセージ３３２のメッセージＩＤフィールドと同一のメッセージＩＤがメッセージ記憶テーブル３３１に存在するか否かを判断する（ステップＳ２２０２）。同一のメッセージＩＤが存在する場合（ステップＳ２２０２：Ｙｅｓ）、通信装置１０２は、存在したメッセージＩＤのレコードのイベント分岐状態が“分岐開始”であるか否かを判断する（ステップＳ２２０３）。
【０１１６】
イベント分岐状態が“分岐開始”である場合（ステップＳ２２０３：Ｙｅｓ）、通信装置１０２は、イベント収集用テーブル４０２に経路情報を設定する（ステップＳ２２０４）。具体的に、経路情報として、通信装置１０２は、イベント要求メッセージ３３２のイベントフィールドから、イベント種別フィールドと、測定対象フィールドとを設定する。さらに、通信装置１０２は、イベント要求メッセージ３３２の送信先となる通信装置１０２の識別情報から収集先識別情報フィールドを設定する。経路情報の設定後、通信装置１０２は、イベント収集処理を実行する（ステップＳ１７０４）。
【０１１７】
同一のメッセージＩＤが存在しない場合（ステップＳ２２０２：Ｎｏ）、または、“分岐開始”でない場合（ステップＳ２２０３：Ｎｏ）、通信装置１０２は、イベント収集用テーブル４０２に経路情報を設定する（ステップＳ２２０５）。経路情報の設定後、通信装置１０２は、受信したイベント要求メッセージ３３２を上位の通信装置１０２に送信する（ステップＳ２２０６）。イベント要求メッセージ３３２を送信後、通信装置１０２は、イベント収集処理を実行する。また、イベント要求メッセージ３３２を受信した上位の通信装置１０２は、経路情報設定処理を実行する（ステップＳ１７０３）。
【０１１８】
図２３は、通信装置１０２におけるイベント収集処理の一例を示すフローチャートである。イベント収集処理は、ステップＳ２２０４またはステップＳ２２０６によって経路情報が設定された後、イベント３３３を受信したときに実行される。なお、端末１０３からのイベントの送信については、予め決められた周期で送信される。
【０１１９】
通信装置１０２は、下位の通信装置１０２からイベント３３３を受信する（ステップＳ２３０１）。イベント３３３の受信後、通信装置１０２は、受信したイベント３３３に対応する経路情報がイベント収集用テーブル４０２に登録されているか否かを判断する（ステップＳ２３０２）。具体的な判断方法として、通信装置１０２は、受信したイベントと、イベント収集用テーブル４０２のイベント種別フィールドが一致するレコードが存在するか否かを確認することで、受信したイベント３３３に対応する経路情報が登録されていることを判断する。
【０１２０】
対応する経路情報が登録されている場合（ステップＳ２３０２：Ｙｅｓ）、通信装置１０２は、受信したイベント３３３を経路情報に従った通信装置１０２に送信する（ステップＳ２３０３）。イベント３３３を送信後、通信装置１０２は、イベント収集処理を終了する。対応する経路情報が登録されていない場合（ステップＳ２３０２：Ｎｏ）、通信装置１０２は、受信したイベント３３３を上位の通信装置１０２に送信し（ステップＳ２３０４）、イベント収集処理を終了する。
【０１２１】
図２４は、通信装置１０２におけるタスク完了時処理の一例を示すフローチャートである。タスク完了時処理は、ステップＳ１９０５にて処理を実行した後に実行される。通信装置１０２は、イベント３３３を受信し、委譲されたタスクに入力する（ステップＳ２４０１）。次に、通信装置１０２は、タスクからの結果があったか否かを判断する（ステップＳ２４０２）。タスクから結果がない場合（ステップＳ２４０２：Ｎｏ）、通信装置１０２は、ステップＳ２４０１の処理に移行する。
【０１２２】
タスクから結果がある場合（ステップＳ２４０２：Ｙｅｓ）、通信装置１０２は、タスク結果メッセージを生成する（ステップＳ２４０３）。なお、タスク結果メッセージは、メッセージＩＤとタスク結果を格納する２つのフィールドを含む。生成後、通信装置１０２は、タスク結果メッセージを上位の通信装置１０２に送信する（ステップＳ２４０４）。なお、上位の通信装置１０２が存在しなく、サーバ１０１である場合、通信装置１０２は、サーバ１０１にタスク結果メッセージを送信する。送信後、通信装置１０２はタスク完了時処理を終了する。
【０１２３】
なお、ステップＳ１８０８にてタスク結果メッセージを受け付けたサーバ１０１は、メッセージタスク関係テーブル３１２を参照することで、どのタスクが完了したかを判断することができる。また、タスク結果メッセージを受け付けた通信装置１０２は、タスク結果メッセージのメッセージＩＤとメッセージ記憶テーブル３３１のメッセージＩＤフィールドが一致するレコードを削除してもよい。
【０１２４】
以上説明したように、通信装置、通信プログラム、および通信方法によれば、イベントの収集要求を下位の装置から受信した場合、イベントを複数の下位の装置から収集する装置のうち最上位の装置が自装置であることを示す評価値が設定されているかを判断する。設定されている場合、通信装置は、収集要求を上位の装置に送信しない。これにより、通信装置は、上位の装置にイベントの収集要求を送信しないため、使用されない経路情報が追加されなくなるため、上位の装置の経路情報の増大を抑制することができる。
【０１２５】
また、収集要求を送信しないため、通信装置は、ネットワーク内の通信量を削減することができる。さらに、経路情報の増大を抑制することで、通信装置は、タスク委譲、イベント収集における送信先を検索する際に、検索対象となる経路情報の母集団が小さくなるため、検索を高速に行えるようになる。
【０１２６】
また、通信装置は、イベントとイベントを取得可能な下位の装置の識別情報を記憶し、評価値が設定されたかを示す設定情報を上位の装置から受信した場合、イベントを取得可能な装置の数と設定情報に基づいて、自装置の評価値を設定してもよい。これにより、通信装置は、評価値を予め保持しておかずに、収集されるイベントに応じて評価値を設定することができる。たとえば、イベントを用いるタスクの委譲要求を受信したときに、通信装置は、自装置の評価値を設定することができる。
【０１２７】
また、通信装置は、上位の装置から設定情報を受信した場合、イベントを取得可能な下位の装置が複数であり、設定情報が設定されていないことを示すときに、評価値を設定してもよい。これにより、通信装置は、上位の装置では自装置以外からイベントを取得しないことが判断できるため、評価値を設定し、経路情報の増大を抑制することができる。
【０１２８】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１２９】
１００  スマートメータシステム
１０１  サーバ
１０２  通信装置
１０３  端末
１０４  経路情報テーブル
３０１、３２４  制御部
３０２  構文解析部
３０３  生成部
３０４、３２５、３２８  送信部
３１１  処理分割テーブル
３１２  メッセージタスク関係テーブル
３１３  タスク情報
３１４  タスク委譲要求メッセージ
３２０  記憶部
３２１、３２６  受信部
３２２  設定部
３２３  判断部
３２７  追加部
３３１  メッセージ記憶テーブル
３３２  イベント要求メッセージ
３３３  イベント
【図１−１】
0005678819.tif 000002
【図１−２】
0005678819.tif 000003
【図２】
0005678819.tif 000004
【図３】
0005678819.tif 000005
【図４】
0005678819.tif 000006
【図５】
0005678819.tif 000007
【図６】
0005678819.tif 000008
【図７】
0005678819.tif 000009
【図８】
0005678819.tif 000010
【図９】
0005678819.tif 000011
【図１０】
0005678819.tif 000012
【図１１】
0005678819.tif 000013
【図１２】
0005678819.tif 000014
【図１３】
0005678819.tif 000015
【図１４】
0005678819.tif 000016
【図１５】
0005678819.tif 000017
【図１６】
0005678819.tif 000018
【図１７】
0005678819.tif 000019
【図１８】
0005678819.tif 000020
【図１９】
0005678819.tif 000021
【図２０】
0005678819.tif 000022
【図２１】
0005678819.tif 000023
【図２２】
0005678819.tif 000024
【図２３】
0005678819.tif 000025
【図２４】
0005678819.tif 000026