説明

通信装置、通信プログラム、および通信方法

【課題】経路情報の増大を抑制すること。
【解決手段】スマートメータシステム100にて、タスク111が委譲された通信装置102−Aは、タスク111を実行するために、イベント要求メッセージを通信装置102−Cに送信する。通信装置102−Cは、ビルの温度情報を通信装置102−Aに送信する経路情報を経路情報テーブル104−Cに追加する。続けて、通信装置102−Cは、評価値112が“分岐開始”であるかを判断する。通信装置102−Cは、評価値112が“分岐開始”であるため、イベント要求メッセージを通信装置102−Eに送信しないように制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信する通信装置、通信プログラム、および通信方法に関する。
【背景技術】
【0002】
近年、機器の管理機能や通信機能を有する高機能な電力メータであるスマートメータを用いて、電力利用情報をサーバに収集し、課金サービス等に応用するスマートメータシステムの提供が行われつつある。以下の説明において、各スマートメータシステム内の各スマートメータからの電力情報、温度情報等の収集処理、および分析処理をタスクと呼称し、測定対象の属性である電力情報、温度情報、といった各スマートメータが測定可能な情報をイベントと呼称する。スマートメータシステムは、タスクを実行するサーバと、サーバに接続され、階層構造を有する中継器と、中継器に接続されたスマートメータが存在する。
【0003】
イベントを収集する技術として、たとえば、Publish/Subscribeというものがある。具体的に、イベントを要求する送信装置は、イベント要求を送信する。イベント要求を受信した受信装置は、下位の装置から送信されてきたイベントを送信装置に送信する。なお、送信されてきたイベントを送信装置に送信するため、受信装置は、イベントと送信装置の識別情報を含む経路情報を登録しておき、イベントを受信した場合、登録された経路情報に従って、受信したイベントを送信装置に送信する。
【0004】
また、スマートメータシステムは、イベントとタスクの増加に伴って、サーバの負荷が増大する。そこで、スマートメータシステムは、中継器にタスクを委譲することで、サーバの負荷を軽減することができる。タスクを委譲する技術に関連する技術として、たとえば、各中継器が自装置の処理能力に関する情報を登録しておき、タスクを委譲するサーバは、登録された情報のうち、タスクの処理能力等といった条件に合致した中継器にタスクを委譲するといったものがある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−167808号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術において、イベント要求を受けた中継器は、経路情報を登録するが、中継器がイベント要求に対応するイベントを受信しない場合もあり、この場合、使用されることのない経路情報が登録されてしまっていた。イベントが委譲されると各中継器でイベント情報が登録されていくため、登録される経路情報が増大してしまうという問題があった。
【0007】
本発明は、上述した従来技術による問題点を解消するため、経路情報の増大を抑制できる通信装置、通信プログラム、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると測定対象の属性情報と下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、収集要求を上位の装置に送信する通信装置であって、測定対象の属性に関する特徴量を複数の下位の装置から収集する装置のうちネットワーク内で最上位となる装置が自装置であるか否かを示す評価値を設定し、収集要求を受信した場合、設定された評価値が最上位となる装置を示しているか否かを判断し、評価値が最上位となる装置であると判断された場合、収集要求を上位の装置に送信しないように制御する通信装置、通信プログラム、および通信方法が提案される。
【発明の効果】
【0009】
本発明の一側面によれば、経路情報の増大を抑制できるという効果を奏する。
【図面の簡単な説明】
【0010】
【図1−1】図1−1は、スマートメータシステム100の動作例を示す説明図(その1)である。
【図1−2】図1−2は、スマートメータシステム100の動作例を示す説明図(その2)である。
【図2】図2は、実施の形態にかかる通信装置102のハードウェアを示すブロック図である。
【図3】図3は、スマートメータシステム100の機能を示すブロック図である。
【図4】図4は、経路情報テーブル104の記憶内容の一例を示す説明図である。
【図5】図5は、処理分割テーブル311の記憶内容の一例を示す説明図である。
【図6】図6は、メッセージタスク関係テーブル312の記憶内容の一例を示す説明図である。
【図7】図7は、タスク情報313のフォーマット例を示す説明図である。
【図8】図8は、サーバ101におけるタスク情報313の処理例を示す説明図である。
【図9】図9は、メッセージ記憶テーブル331の記憶内容の一例を示す説明図である。
【図10】図10は、イベント要求メッセージ332のフォーマット例を示す説明図である。
【図11】図11は、タスクが委譲される状態を示す説明図(その1)である。
【図12】図12は、タスクが委譲される状態を示す説明図(その2)である。
【図13】図13は、タスクが委譲される状態を示す説明図(その3)である。
【図14】図14は、タスクが委譲される状態を示す説明図(その4)である。
【図15】図15は、イベント要求メッセージ332が送信された状態を示す説明図である。
【図16】図16は、イベント333が収集される状態を示す説明図である。
【図17】図17は、スマートメータシステム100におけるタスク委譲実行処理の一例を示すフローチャートである。
【図18】図18は、サーバ101におけるタスク委譲処理の一例を示すフローチャートである。
【図19】図19は、通信装置タスク委譲処理の一例を示すフローチャートである。
【図20】図20は、通信装置102におけるイベント分岐設定処理の一例を示すフローチャートである。
【図21】図21は、通信装置102におけるイベント要求メッセージ送信処理の一例を示すフローチャートである。
【図22】図22は、通信装置102における経路情報設定処理の一例を示すフローチャートである。
【図23】図23は、通信装置102におけるイベント収集処理の一例を示すフローチャートである。
【図24】図24は、通信装置102におけるタスク完了時処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、開示の通信装置、通信プログラム、および通信方法の実施の形態を詳細に説明する。
【0012】
図1−1、図1−2は、スマートメータシステム100の動作例を示す説明図である。スマートメータシステム100は、タスクを実行するサーバ101と、中継器となる通信装置102と、スマートメータを有する端末103と、を含む。図1−1で示す説明図は、タスクを委譲する場合の動作例を示しており、図1−2で示す説明図は、イベントを収集する場合の動作例を示している。
【0013】
サーバ101は、端末103からの送信されるイベントを用いてタスクを実行する、CEP(Complex Event Processing)という技術が適用されたサーバである。通信装置102は、端末103からのイベントを中継し、サーバ101に送信する。端末103は、測定対象となるビルや家屋に設置されており、周期的に通信装置102にイベントを送信する。
【0014】
サーバ101、通信装置102、端末103の接続関係として、スマートメータシステム100は、木構造のネットワークであり、サーバ101が最上位の装置であり、端末103が末端の装置となる。サーバ101は、下位の装置として通信装置102−Gと接続している。通信装置102−Gは、下位の装置として通信装置102−E、通信装置102−Fと接続している。通信装置102−Fは、下位の装置として家屋に設置された端末103−F1と接続している。
【0015】
通信装置102−Eは、下位の装置として通信装置102−C、通信装置102−Dと接続している。通信装置102−Dは、下位の装置として家屋に設置された端末103−D1、端末103−D2と接続している。通信装置102−Cは、下位の装置として通信装置102−A、通信装置102−Bと接続している。通信装置102−Bは、下位の装置として家屋に設置された端末103−B1およびビルに設置された端末103−B2と接続している。通信装置102−Aは、下位の装置としてビルに設置された端末103−A1と接続している。
【0016】
以下の説明において、ハードウェア、ソフトウェアの符号に“−S”となる接尾記号が付与されている場合は、サーバ101に関するハードウェア、ソフトウェアであることを示す。また、ハードウェア、ソフトウェアの符号に“−A”〜“−G”となる接尾記号が付与されている場合は、通信装置102−A〜通信装置102−Gに関するハードウェア、ソフトウェアであることを示す。
【0017】
また、サーバ101と通信装置102は、経路情報テーブル104を有する。経路情報テーブル104は、タスクを委譲要求するメッセージ、またはイベントを受信したときに、メッセージ、イベントの転送先となる装置を記憶するテーブルである。また、経路情報テーブル104の1レコードを経路情報と定義する。たとえば、経路情報テーブル104−Gは、ビルの温度情報と家屋の温度情報を測定可能である温度センサが通信装置102−Eの方向に、家屋の温度センサが通信装置102−Fの方向に登録されていることが示されている。したがって、通信装置102−Gは、ビルの温度情報を用いるタスクの委譲要求を受信した場合、委譲要求を通信装置102−Eに送信する。
【0018】
図1−1にて、サーバ101は、ビルの平均温度を算出するタスク111を通信装置102のいずれかに委譲要求するメッセージであるタスク委譲要求メッセージを通信装置102−Gに送信する。タスク委譲要求メッセージを受信した通信装置102は、イベントを複数の下位の装置から収集する装置のうち、スマートメータシステム100内で最上位となる装置が自装置であるか否かを示す評価値を設定する。以下の説明では、前述の条件が満たされた場合、通信装置102は、評価値を“分岐開始”として設定する。
【0019】
また、通信装置102は、評価値が“分岐開始”として設定されたかを示す設定情報を下位の装置に送信する。本実施の形態では、通信装置102は、設定情報をタスク委譲要求メッセージに含めて送信する。評価値が“分岐開始”として設定されていない場合、設定情報は“未分岐”であり、設定された場合、“分岐済”であると定義する。
【0020】
初めに、通信装置102−Gは、複数の下位の装置から該当のイベントを収集する装置であるかを判断する。ビルの温度情報は通信装置102−E1つから収集されるため、通信装置102−Gは、評価値を“分岐開始”として設定せずに、経路情報テーブル104−Gに従って設定情報が“未分岐”となるタスク委譲要求メッセージを通信装置102−Eに転送する。同様に、通信装置102−Eも、評価値を“分岐開始”として設定せずに、経路情報テーブル104−Eに従ってタスク委譲要求メッセージを通信装置102−Cに転送する。
【0021】
タスク委譲要求メッセージを受信した通信装置102−Cは、設定情報が“未分岐”であり、ビルの温度情報が通信装置102−A、通信装置102−Bの複数から収集されるため、評価値112を“分岐開始”として設定する。設定後、通信装置102−Cは、通信装置102−Aに設定情報が“分岐済”となるタスク委譲要求メッセージを送信する。通信装置102−Aは、タスク111を実行する。
【0022】
このように、スマートメータシステム100は、複数の下位の装置から該当のイベントを収集する装置のうちスマートメータシステム100内で最上位の装置に評価値を設定することで、イベントの分岐開始点が判断できる。図1−1の例では、通信装置102−D〜通信装置102−F側では、ビルの温度情報を収集しないため、イベントに対応する経路情報が存在しなくてよい。
【0023】
次に、図1−2に示す説明図にて、通信装置102−Aは、タスク111を実行するときに、イベントの収集要求であるイベント要求メッセージを上位の通信装置である通信装置102−Cに送信する。イベント要求メッセージを受信した通信装置102−Cは、ビルの温度情報を通信装置102−Aに送信する経路情報を経路情報テーブル104−Cに追加する。これにより、イベント収集において、通信装置102−Cは、通信装置102−Bからイベントを受信した場合、追加した経路情報に従って、イベントを通信装置102−Aに送信する。
【0024】
また、通信装置102−Cは、評価値112が“分岐開始”であるかを判断する。通信装置102−Cは、評価値112が“分岐開始”であるため、イベント要求メッセージを通信装置102−Eに送信しないように制御する。
【0025】
これにより、通信装置102−Eはイベント要求メッセージを受信しないため、経路情報を追加することがなく、スマートメータシステム100は、経路情報の増大を抑制することができる。続けて、図1−1、図1−2で行った動作を実現するハードウェア、ソフトウェアの説明を図2〜図24を用いて行う。
【0026】
図2は、実施の形態にかかる通信装置102のハードウェアを示すブロック図である。図2において、通信装置102は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、を含む。また、通信装置102は、フラッシュROM204と、I/F(Interface)205と、を含む。また、各部はバス206によってそれぞれ接続されている。
【0027】
ここで、CPU201は、通信装置102の全体の制御を司る。なお、通信装置102は、複数のCPUを含むマルチコアプロセッサシステムであってもよい。ここで、マルチコアプロセッサシステムとは、コアが複数搭載されたプロセッサを含むコンピュータのシステムである。
【0028】
ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。フラッシュROM204は、OS(Operating System)などのシステムソフトウェアやアプリケーションソフトウェア、本実施の形態にかかる通信プログラムなどを記憶している。たとえば、OSを更新する場合、通信装置102は、I/F205によって新しいOSを受信し、フラッシュROM204に格納されている古いOSを、受信した新しいOSに更新する。
【0029】
I/F205は、通信回線を通じてサーバ101、他の通信装置102、端末103といった外部装置に接続されており、外部装置群と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【0030】
なお、サーバ101〜端末103間は、直接接続されていてもよいし、サーバ101〜端末103が同一LAN(Local Area Network)に存在しており、各装置間でL2スイッチ等を経由して接続されていてもよい。また、サーバ101〜端末103間は、WAN(Wide Area Network)、インターネットなどのネットワークを経由して接続してもよい。この場合、情報を暗号化するため、サーバ101〜端末103は、SSL(Secure Socket Layer)やIPsec(security architecture for Internet Protocol)を採用してもよい。また、通信装置102〜端末103間は、電力線搬送通信を介してもよい。
【0031】
また、サーバ101のハードウェアは、たとえば、CPU、ROM、RAMに加え、磁気ディスクドライブ、磁気ディスク、光ディスクドライブ、光ディスクを含む。磁気ディスクドライブは、サーバ101内のCPUの制御に従って磁気ディスクに対するデータのリード/ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。光ディスクドライブは、サーバ101内のCPUの制御に従って光ディスクに対するデータのリード/ライトを制御する。光ディスクは、光ディスクドライブの制御で書き込まれたデータを記憶したり、光ディスクに記憶されたデータをコンピュータに読み取らせたりする。
【0032】
また、端末103のハードウェアは、通信装置102が有するハードウェアに加え、家屋、ビル内の消費電力を測定するセンサを有する。さらに、端末103は、家屋、ビル内の温度を測定するセンサを有し、家屋、ビル内のエアーコンディショナーに接続していてもよい。
【0033】
(スマートメータシステム100の機能)
次に、スマートメータシステム100の機能について説明する。図3は、スマートメータシステム100の機能を示すブロック図である。スマートメータシステム100は、制御部301と、構文解析部302と、生成部303と、送信部304と、を含む。この制御部となる機能(制御部301〜送信部304)は、記憶装置に記憶されたプログラムをサーバ101のCPUが実行することにより、その機能を実現する。記憶装置とは、具体的には、たとえば、サーバ101のROM、RAM、フラッシュROMなどである。または、サーバ101のI/Fを経由して他のCPUが実行することにより、その機能を実現してもよい。
【0034】
また、スマートメータシステム100は、記憶部320と、受信部321と、設定部322と、判断部323と、制御部324と、送信部325と、受信部326と、追加部327と、送信部328と、を含む。この制御部となる機能(受信部321〜送信部328)は、記憶装置に記憶されたプログラムをCPU201が実行することにより、その機能を実現する。
【0035】
記憶装置とは、具体的には、たとえば、図2に示したROM202、RAM203、フラッシュROM204などである。または、I/F205を経由して他のCPUが実行することにより、その機能を実現してもよい。なお、記憶部320は、RAM203、フラッシュROM204といった記憶装置となる。また、図3で示す記憶部320〜送信部328は、通信装置102−Cの機能であるように図示されているが、通信装置102−A〜通信装置102−Gにも含まれる。
【0036】
また、スマートメータシステム100は、経路情報テーブル104と、処理分割テーブル311と、メッセージタスク関係テーブル312と、メッセージ記憶テーブル331にアクセス可能である。また、スマートメータシステム100は、タスク情報313と、タスク委譲要求メッセージ314と、イベント要求メッセージ332と、を生成する。また、スマートメータシステム100は、周期的にイベント333を取得する。
【0037】
なお、経路情報テーブル104は、サーバ101、通信装置102のそれぞれの記憶領域に格納されている。具体的に、サーバ101は、経路情報テーブル104−Sを有しており、通信装置102−A〜通信装置102−Gは、それぞれ、経路情報テーブル104−A〜経路情報テーブル104−Gを有している。処理分割テーブル311、メッセージタスク関係テーブル312は、サーバ101の記憶領域に格納されている。メッセージ記憶テーブル331は、通信装置102のそれぞれの記憶領域に格納されている。また、タスク情報313と、タスク委譲要求メッセージ314は、サーバ101にて生成される。イベント要求メッセージ332は、タスクが委譲された通信装置102にて生成される。
【0038】
また、通信装置102は、木構造となるスマートメータシステム100に存在している。通信装置に接続される下位の装置の数は、1つでもよいし、2以上であってよい。また、通信装置102は、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると測定対象の属性情報と下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、収集要求を上位の装置に送信する。
【0039】
測定対象は、ビル、家屋といった、スマートメータに付随するセンサが測定する対象を示している。測定対象の属性情報とは、測定対象が有している特徴の種別となり、たとえば、温度情報、電力情報、といった種別を示している。測定対象の属性の特徴量とは、属性の具体的な値であり、たとえば、測定対象の属性情報が温度情報であれば、20[度]、といった値となる。また、測定対象の属性の特徴量は、数値でなくてもよく、たとえば、電力情報:高、中、低、といったような情報であってもよい。
【0040】
経路情報テーブル104は、タスク委譲要求メッセージ314、またはイベント333を受信したときに、タスク委譲要求メッセージ314、イベント333の転送先となる装置を記憶するテーブルである。経路情報テーブル104の詳細については、図4にて後述する。処理分割テーブル311は、タスクが実行する処理が複数の通信装置102で分割可能か否かを記憶するテーブルである。処理分割テーブル311の詳細は、詳細については、図5にて後述する。メッセージタスク関係テーブル312は、タスクとタスク委譲要求メッセージ314の関連を記憶するテーブルである。メッセージタスク関係テーブル312の詳細については、図6にて後述する。
【0041】
タスク情報313は、タスクを構文解析して得られるデータである。タスク情報313の詳細については、図7にて後述する。タスク委譲要求メッセージ314は、タスクの委譲を要求するときに下位の通信装置102に送信されるメッセージである。なお、タスク委譲要求メッセージ314の詳細は、図8にて後述する。
【0042】
また、メッセージ記憶テーブル331は、イベントに対応する評価値を記憶する。なお、メッセージ記憶テーブル331の詳細については、図9にて後述する。また、イベント要求メッセージ332は、イベントの収集要求を上位の通信装置102に送信されるメッセージである。なお、イベント要求メッセージ332の詳細については、図10にて後述する。
【0043】
制御部301は、サーバ101を管理しており、たとえば、サーバ101の負荷が増大してきた場合、タスクを通信装置102のいずれかに委譲する機能を有する。たとえば、制御部301は、タスクの一覧が記憶されているタスクキューから一つのタスクを選択し、委譲対象となるタスクに設定する。なお、設定されたタスクの識別情報は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0044】
構文解析部302は、制御部301が選択した、委譲対象となるタスクを構文解析する。具体的には、構文解析部302は、タスクが準拠している規約に従って、構文解析を行う。たとえば、タスクがCEP技術で採用されるCQL(Continuous Query Language)に従って記述されている場合、サーバ101内のCQLパーサが構文解析を行う。構文解析して得られたデータが、タスク情報313である。タスク情報313は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0045】
生成部303は、タスク情報313からタスク委譲要求メッセージ314を生成する機能を有する。たとえば、生成部303は、タスク情報313から、タスク委譲要求メッセージ314に固有なID(IDentification)と、評価値が“分岐開始”として設定されたかを示す設定情報を付与して、タスク委譲要求メッセージ314を生成する。
【0046】
送信部304は、生成されたタスク委譲要求メッセージ314を下位の通信装置102に送信する。たとえば、送信部304は、タスク委譲要求メッセージ314を通信装置102−Gに送信する。
【0047】
記憶部320は、測定対象の属性情報と測定対象の属性の特徴量を取得可能な下位の装置の識別情報との組合せを記憶する。具体的に、記憶部320は、経路情報テーブル104に測定対象の属性情報と測定対象の属性の特徴量を取得可能な下位の装置の識別情報との組合せを記憶する。
【0048】
受信部321は、評価値が“分岐開始”として設定されたか否かを示す設定情報を上位の装置から受信する機能を有する。具体的に、受信部321は、設定情報を通信装置102−Eから受信する。なお、スマートメータシステム100の接続状態が変化しない場合、設定情報が変化する箇所も変化しない。具体的に、図1−1において、イベントがビルの温度情報である場合、設定情報は、通信装置102−Cで常に“分岐済”に設定される。
【0049】
したがって、同じイベントを用いる異なるタスクが委譲される場合、1つ目のタスク委譲要求メッセージ314が設定情報を含んでおり、2つ目のタスク委譲要求メッセージ314には、設定情報を含んでいなくてもよい。また、上位の装置は、設定情報単独で送信してもよい。なお、受信した設定情報は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0050】
設定部322は、測定対象の属性に関する特徴量を複数の下位の装置から収集する装置のうちネットワーク内で最上位となる装置が自装置であるか否かを示す評価値を設定する機能を有する。また、設定部322は、受信部321によって設定情報を受信した場合、記憶部320に記憶された測定対象の属性の特徴量が取得可能な下位の装置の数と設定情報とに基づいて、自装置の評価値を設定してもよい。
【0051】
具体的に、設定部322は、測定対象の属性の特徴量を取得可能な下位の装置が複数であり、設定情報が“未分岐”である場合に、評価値を“分岐開始”として設定する。また、設定部322は、測定対象の属性の特徴量を取得可能な下位の装置が単数である場合、評価値を設定しない。さらに、設定部322は、設定情報が“分岐済”である場合、評価値を設定しない。
【0052】
また、評価値は、スマートメータシステム100の設計時に設定されていてもよい。スマートメータシステム100の接続状態が変化しない場合、評価値が設定される通信装置102も変化しない。具体的に、図1−1において、イベントがビルの温度情報である場合、評価値は、通信装置102−Cで常に“分岐開始”に設定される。したがって、スマートメータシステム100は、設計時に、通信装置102−Cに関してビルの温度情報に対応する評価値が予め設定していてもよい。なお、設定された評価値は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0053】
判断部323は、収集要求を受信した場合、設定部322によって設定された評価値が“分岐開始”を示しているか否かを判断する機能を有する。判断結果は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0054】
制御部324は、判断部323にて評価値が“分岐開始”であると判断された場合、収集要求を上位の装置に送信しないように制御する機能を有する。たとえば、制御部324は、イベント要求メッセージ332を通信装置102−Eに送信しないように制御する。
【0055】
送信部325は、収集要求を上位の装置に送信する機能を有する。たとえば、送信部325は、評価値が設定されていないと判断された場合、イベント要求メッセージ332を通信装置102−Eに送信する。
【0056】
受信部326は、イベントの収集要求を下位の装置から受信する機能を有する。たとえば、受信部326は、イベント要求メッセージ332を通信装置102−Aから受信する。なお、受信したイベント要求メッセージ332は、CPU201の汎用レジスタ、RAM203、フラッシュROM204などの記憶領域に記憶される。
【0057】
追加部327は、受信部326によって収集要求を受信した場合、測定対象の属性情報と下位の装置の識別情報を記憶部320に追加する機能を有する。たとえば、収集対象となるイベントがビルの温度情報であり、通信装置102−Aからイベント要求メッセージ332を受信した場合、追加部327は、ビルの温度情報と通信装置102−Aの識別情報を有する経路情報を経路情報テーブル104−Cに追加する。
【0058】
送信部328は、下位の装置から測定対象の属性の特徴量を受信した場合、追加部327によって追加された記憶部320を参照して、測定対象の属性の特徴量を送信する機能を有する。たとえば、送信部328は、通信装置102−Bからイベント333を受信した場合、経路情報テーブル104−Cに追加された経路情報を参照して、通信装置102−Aにイベント333を送信する。
【0059】
図4は、経路情報テーブル104の記憶内容の一例を示す説明図である。経路情報テーブル104には、下位方向に接続されている端末103、通信装置102の情報が登録されている。経路情報テーブル104は、2つのテーブルを含んでおり、タスクを委譲する場合に参照されるタスク委譲用テーブル401と、イベントを収集する場合に参照されるイベント収集用テーブル402と、を含む。なお、図4で示す経路情報テーブル104は、通信装置102−C内に存在する経路情報テーブル104−Cを例としている。
【0060】
タスク委譲用テーブル401は、センサ種別、測定対象、委譲先識別情報という3つのフィールドを含む。センサ種別フィールドには、タスクの命令によって測定されるセンサの識別子が格納される。センサの識別子は、たとえば、温度を測定する温度センサを示す識別子、電力を測定する電力センサ等を示す識別子である。測定対象フィールドには、センサが測定する対象を示す識別子が格納される。委譲先識別情報フィールドには、タスクの委譲先となる装置の識別情報が格納される。装置の識別情報としては、たとえば、装置のIP(Internet Protcol)アドレスや、MAC(Media Access Control)アドレス等が採用される。
【0061】
次に、タスク委譲用テーブル401にレコードが登録される契機を説明する。通信装置102−Aがスマートメータシステム100に接続された場合、通信装置102−Aは、自身のタスク委譲用テーブル401−Aの内容をSubscribeメッセージとして通信装置102−Cに送信する。続けて、通信装置102−Cは、受信したSubscribeメッセージをタスク委譲用テーブル401−Cに登録する。たとえば、通信装置102−AからのSubscribeメッセージが“センサ種別:温度センサ、測定対象:ビル”であれば、通信装置102−Cは、Subscribeメッセージをレコード401−C−1として登録する。
【0062】
同様に、通信装置102−Cは、通信装置102−BからのSubscribeメッセージをレコード401−C−2、レコード401−C−3として登録する。このように、タスク委譲用テーブル401は、通信装置102、端末103の接続時にレコードが追加され、以後固定である。なお、タスクを委譲する場合の具体的なタスク委譲用テーブル401の参照方法としては、図11〜図14にて後述する。
【0063】
イベント収集用テーブル402は、イベント種別、測定対象、収集先識別情報という3つのフィールドを含む。イベント種別フィールドには、収集対象となるイベントの種別が格納される。たとえば、イベント種別フィールドには、温度情報、電力情報等が格納される。測定対象フィールドには、センサが測定する対象を示す識別子が格納される。収集先識別情報フィールドには、イベント収集先となる通信装置の識別情報が格納される。なお、イベント収集用テーブル402にレコードが登録される契機については、図15にて後述し、イベントを収集する場合の具体的なイベント収集用テーブル402の参照方法としては、図16にて後述する。
【0064】
また、テーブル403は、タスク委譲用テーブル401−Cとイベント収集用テーブル402−Cを結合して表示している。以下の図では、経路情報テーブル104のデータを、テーブル403のように結合して表示する。
【0065】
なお、タスク委譲用テーブル401およびイベント収集用テーブル402の測定対象フィールドは、イベントをクラス分けするために用いられる情報である。図4の例では、温度情報、電力情報といったイベントを、ビルの温度情報、家屋の温度情報、といったようにクラス分けすることができる。他の条件でイベントをクラス分けする場合、タスク委譲用テーブル401およびイベント収集用テーブル402は、他の条件を格納するフィールドを含む。
【0066】
図5は、処理分割テーブル311の記憶内容の一例を示す説明図である。処理分割テーブル311は、処理名称、処理分割フラグという2つのフィールドを含む。処理名称フィールドには、タスクが実行する処理の名称が格納される。処理分割フラグフィールドには、該当の処理が分割可能か否かを示すフラグが格納される。具体的に、処理分割フラグフィールドには、分割可能を示す“可”識別子と、分割不可を示す“不可”識別子のいずれか一方が格納される。
【0067】
たとえば、レコード311−1は、タスクが実行する処理が平均であり、平均を行う処理が分割不可であることを示している。続けて、レコード311−2は、タスクが実行する処理が通知であり、通知を行う処理が分割可能であることを示している。さらに、レコード311−3は、タスクが実行する処理が累積であり、累積を行う処理が分割不可であることを示している。なお、スマートメータシステム100で実行可能な処理は、設計段階で決定されており、どの処理が分割可能か否かは設計段階で決定しておく。
【0068】
図6は、メッセージタスク関係テーブル312の記憶内容の一例を示す説明図である。メッセージタスク関係テーブル312は、通信装置102にタスクを委譲する場合に生成されるタスク委譲要求メッセージ314と委譲元のタスクとの関係を記憶しておくテーブルである。メッセージタスク関係テーブル312は、委譲されるタスクごとに記憶されている。
【0069】
メッセージタスク関係テーブル312は、メッセージID、タスクという2つのフィールドを含む。メッセージIDフィールドには、タスク委譲要求メッセージ314のIDが格納される。メッセージIDは、メッセージを一意で識別可能な値であればよく、たとえば、重複しないランダムの値であってもよい。タスクフィールドには、委譲対象となるタスクが格納される。なお、タスクを一意に識別可能なタスクIDが存在する場合、メッセージタスク関係テーブル312は、タスクフィールドの代わりに、タスクIDを格納するタスクIDフィールドを有していてもよい。
【0070】
たとえば、図6に示すレコード312−1は、メッセージIDが“0x153959b2”であり、タスクが“select 平均(ビルの温度情報) from 地域A and 地域B where X>30”であることを示している。また、レコード312−2は、メッセージIDが“0x15638092”であり、タスクが“select 平均(ビルの温度情報) from 地域A where X>30”であることを示している。
【0071】
図7は、タスク情報313のフォーマット例を示す説明図である。図7で示す説明図は、タスク701と、タスク701を構文解析して得られたタスク情報313を示している。タスク701は、以下に示す情報となる。
【0072】
select 平均(ビルの温度情報) from 地域A and 地域B where X>30
【0073】
サーバ101は、タスク701を構文解析し、タスク情報313を生成する。タスク情報313は、処理名称、イベント、結果通知条件、処理分割フラグという4つのフィールドを含む。
【0074】
処理名称フィールドには、タスクが実行する処理の名称が格納される。イベントフィールドには、タスクが実行する際に要求されるイベントが格納される。また、イベントフィールドにはクラス分けされたイベントが格納されてもよい。クラス分けされたイベントとは、たとえば、スマートメータシステム100内の温度情報に対して、ビルの温度情報、家屋の温度情報、といったように、測定対象でクラス分けされたイベントである。なお、イベントは、ビル、家屋といった建屋以外の情報でクラス分けされていてもよい。たとえば、ビル内にオフィスと店舗や飲食店が入居している場合、スマートメータシステム100は、ビルの温度情報を、オフィスの温度情報、店舗の温度情報、飲食店の温度情報といったようにクラス分けしてもよい。
【0075】
結果通知条件フィールドには、タスクの処理の結果、通知を行う条件が格納される。処理分割フラグフィールドには、該当の処理が分割可能か否かを示すフラグが格納される。たとえば、図7で示すタスク情報313は、タスクが実行する処理が平均であり、タスクが要求するイベントがビルの温度情報であり、結果通知条件が平均温度が30℃以上になったときであり、処理分割不可であることを示している。
【0076】
図8は、サーバ101におけるタスク情報313の処理例を示す説明図である。サーバ101は、タスク情報313からタスク委譲要求メッセージ314を生成する。タスク委譲要求メッセージ314は、タスク情報313に、複数通信装置イベント分岐済フラグフィールドと、メッセージIDフィールドが追加されている。
【0077】
複数通信装置イベント分岐済フラグフィールドは、評価値が“分岐開始”として設定されたかを示す設定情報が格納される。複数通信装置イベント分岐済フラグフィールドは、たとえば、いずれかの通信装置102にて、評価値が“分岐開始”と設定された場合、“分岐済”が格納され、評価値が“分岐開始”と設定されていない場合、“未分岐”が格納される。タスク委譲要求メッセージ314が生成された時点では、複数通信装置イベント分岐済フラグフィールドは、“未分岐”を格納している。メッセージIDフィールドは、タスク委譲要求メッセージ314を特定するIDであり、メッセージタスク関係テーブル312のメッセージIDフィールドの値が格納される。
【0078】
たとえば、図8の例で示すタスク委譲要求メッセージ314は、評価値が“分岐開始”として設定されていない状態であり、また、メッセージIDが“0x153959b2”であることを示している。
【0079】
図9は、メッセージ記憶テーブル331の記憶内容の一例を示す説明図である。メッセージ記憶テーブル331は、メッセージID、イベント状態という2つのフィールドを含む。メッセージIDフィールドには、受信したタスク委譲要求メッセージ314のメッセージIDが格納される。イベント状態フィールドには、イベントを複数の下位の装置から収集する装置のうち、スマートメータシステム100内で最上位となる装置が自装置であるか否かを示す評価値が格納される。具体的に、イベント状態フィールドは、複数の下位の通信装置102からイベントを収集し、かつスマートメータシステム100内の最上位の装置となる場合、識別子として“分岐開始”を格納する。また、該当の通信装置102が端末103に接続されている場合、イベント状態フィールドは、識別子として“末端”を格納する。
【0080】
たとえば、図9で示すレコード331−1は、メッセージID“0x153959b2”で示されるタスク委譲要求メッセージ314のイベントが下位の通信装置102のうち、2以上の通信装置102から収集されることを示している。また、レコード331−2は、メッセージID“0x15638092”で示されるタスク委譲要求メッセージ314を受信した該当の通信装置102が、端末103に接続されていることを示している。
【0081】
図10は、イベント要求メッセージ332のフォーマット例を示す説明図である。テーブルは、イベント、メッセージIDという2つのフィールドを含む。イベントフィールドには、タスク委譲要求メッセージ314にて要求されたイベントが格納される。メッセージIDフィールドには、タスク委譲要求メッセージ314のメッセージIDが格納される。たとえば、図10で示すイベント要求メッセージ332は、要求されるイベントがビルの温度情報であり、メッセージIDが“0x153959b2”であることを示している。
【0082】
本実施の形態にかかるスマートメータシステム100は、図3に示した機能と、図4〜図10にて示したデータによって、タスク委譲、イベント収集を行う。次に、図11〜図16にて、スマートメータシステム100にてタスクが委譲されていく状態と、イベントが収集される状態と、について説明する。
【0083】
図11は、タスクが委譲される状態を示す説明図(その1)である。図11で示すスマートメータシステム100にて、サーバ101は、通信装置102−Gに対してタスク委譲要求メッセージ314を送信する。通信装置102−Gは、タスク委譲要求メッセージ314のイベントフィールドに格納されたイベントを取得可能な通信装置102を、経路情報テーブル104−Gから検出する。ビルの温度情報を取得可能な通信装置102は、経路情報テーブル104−Gより、通信装置102−E1つである。したがって、通信装置102−Gは、メッセージ記憶テーブル331−Gにレコードを追加せず、また、タスク委譲要求メッセージ314を変更しないで通信装置102−Eに送信する。
【0084】
図12は、タスクが委譲される状態を示す説明図(その2)である。図12で示すスマートメータシステム100は、通信装置102−Eが通信装置102−Gからタスク委譲要求メッセージ314を受信した状態である。通信装置102−Eは、タスク委譲要求メッセージ314のイベントフィールドに格納されたイベントを取得可能な通信装置102を、経路情報テーブル104−Eから検出する。ビルの温度情報を取得可能な通信装置102は、経路情報テーブル104−Eより、通信装置102−C1つである。したがって、通信装置102−Eは、メッセージ記憶テーブル331−Eにレコードを追加せず、また、タスク委譲要求メッセージ314を変更しないで通信装置102−Cに送信する。
【0085】
図13は、タスクが委譲される状態を示す説明図(その3)である。図13で示すスマートメータシステム100は、通信装置102−Cが通信装置102−Eからタスク委譲要求メッセージ314を受信した状態である。通信装置102−Cは、タスク委譲要求メッセージ314のイベントフィールドに格納されたイベントを取得可能な通信装置102を、経路情報テーブル104−Cから検出する。ビルの温度情報を取得可能な通信装置102は、経路情報テーブル104−Cより、通信装置102−A、通信装置102−Bの2つである。
【0086】
このように、複数の通信装置102を検出したため、通信装置102−Cは、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグを“未分岐”から“分岐済”に設定する。続けて、通信装置102−Cは、メッセージ記憶テーブル331−Cに新規レコードを追加し、メッセージIDフィールドにタスク委譲要求メッセージ314のメッセージIDフィールドの値を設定し、イベント状態フィールドに“分岐開始”を設定する。設定後、通信装置102−Cは、タスクを委譲する通信装置102として、通信装置102−Aを選択し、フィールドの値が変更されたタスク委譲要求メッセージ314を通信装置102−Aに送信する。
【0087】
図14は、タスクが委譲される状態を示す説明図(その4)である。図14で示すスマートメータシステム100は、通信装置102−Aが通信装置102−Cからタスク委譲要求メッセージ314を受信した状態である。通信装置102−Aは、下位の通信装置102を有しておらず、端末103−A1と接続している状態である。この状態で、通信装置102−Aは、メッセージ記憶テーブル331−Aに新規レコードを追加し、メッセージIDフィールドにタスク委譲要求メッセージ314のメッセージIDフィールドの値を設定し、イベント状態フィールドに“末端”を設定する。また、通信装置102−Aは、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグフィールドの値を判断する。
【0088】
図14の例では、複数通信装置イベント分岐済フラグフィールドが“分岐済”であるため、上位の通信装置102にて、イベントが収集されることを示している。したがって、通信装置102−Aは、イベント要求メッセージ332を通信装置102−Cに送信する。イベント要求メッセージ332が送信された様子については、図15にて後述する。
【0089】
図15は、イベント要求メッセージ332が送信された状態を示す説明図である。図15で示すスマートメータシステム100は、通信装置102−Cが通信装置102−Aからイベント要求メッセージ332を受信した状態である。通信装置102−Cは、イベント要求メッセージ332を受信し、イベント収集用テーブル402−Cに経路情報を追加する。図15の例では、通信装置102−Cは、イベント種別フィールドに“温度情報”、測定対象フィールドに“ビル”、収集先識別情報フィールドに“通信装置102−A”を設定する。
【0090】
また、通信装置102−Cは、イベント要求メッセージ332のメッセージIDフィールドと同一のメッセージIDがメッセージ記憶テーブル331−Cに存在し、かつ、該当のレコードのイベント状態が“分岐開始”であるかを判断する。図15の例では、条件に当てはまるため、通信装置102−Cは、イベント要求メッセージ332を通信装置102−Eに送信しない。
【0091】
図16は、イベント333が収集される状態を示す説明図である。図16で示すスマートメータシステム100は、通信装置102−Bからイベント333が送信され、通信装置102−Cが受信した状態を示している。通信装置102−Cは、受信したイベント333に対応する経路情報がイベント収集用テーブル402−Cに登録されているかを判断する。図16の例では、レコード1601が対応した経路情報であることを想定する。通信装置102−Cは、レコード1601に従って、受信したイベント333を通信装置102−Aに送信する。
【0092】
次に、図17にて図11〜図16で示した動作を行うタスク委譲実行処理のフローチャートについて説明を行う。タスク委譲実行処理は、サーバ101の負荷が増大してきた場合に実行される処理である。
【0093】
図17は、スマートメータシステム100におけるタスク委譲実行処理の一例を示すフローチャートである。タスク委譲実行処理は、タスク委譲処理、経路情報設定処理、イベント収集処理、タスク完了時処理、という5つの処理を実行する。タスク委譲処理には、サーバ101が実行するサーバタスク委譲処理と、通信装置102が実行する通信装置タスク委譲処理が存在する。
【0094】
サーバ101は、サーバタスク委譲処理を実行する(ステップS1701)。次に、通信装置102は、通信装置タスク委譲処理を実行する(ステップS1702)。通信装置タスク委譲処理によりタスクの委託先が決定された後、通信装置102は、経路情報設定処理を実行する(ステップS1703)。経路情報が設定された後、タスクが委譲された通信装置102の上位となる通信装置102は、イベント収集処理を実行する(ステップS1704)。イベントが収集された後、タスクが委譲された通信装置102は、タスク完了時処理を実行し(ステップS1705)、スマートメータシステム100は、タスク委譲実行処理を終了する。
【0095】
図18は、サーバ101におけるタスク委譲処理の一例を示すフローチャートである。サーバ101は、制御部301からタスクを受け付ける(ステップS1801)。なお、タスクにタスクIDが存在する場合、サーバ101は、制御部301からタスクIDを受け付けてもよい。続けて、サーバ101は、下位に通信装置102を有するか否かを判断する(ステップS1802)。通信装置102が無い場合(ステップS1802:No)、サーバ101は、タスクを委譲する通信装置102が無いため、タスク委譲処理を終了する。この場合、サーバ101は、委譲する予定であったタスクをそのまま実行する。
【0096】
通信装置102を有する場合(ステップS1802:Yes)、サーバ101は、受け付けたタスクを構文解析し、タスク情報313を生成する(ステップS1803)。具体的に、サーバ101は、受け付けたタスクから、処理名称、イベント、結果通知条件、処理分割フラグに該当する箇所を構文解析から取得して、タスク情報313を生成する。なお、処理分割フラグは、処理分割テーブル311を参照して設定される。
【0097】
タスク情報313の生成後、サーバ101は、タスク情報313からタスク委譲要求メッセージ314を生成する(ステップS1804)。具体的に、サーバ101は、タスク情報313に対して、複数通信装置イベント分岐済フラグフィールドと、メッセージIDフィールドと、を追加して、タスク委譲要求メッセージ314を生成する。なお、複数通信装置イベント分岐済フラグフィールドは、“未分岐”が設定されており、メッセージIDフィールドは、メッセージタスク関係テーブル312を参照して設定される。
【0098】
タスク委譲要求メッセージ314の生成後、サーバ101は、下位の通信装置102のうち複数の通信装置102が、タスク委譲要求メッセージ314のイベントフィールドに格納されたイベントを取得可能か否かを判断する(ステップS1805)。複数の通信装置102が該当のイベントを取得可能である場合(ステップS1805:Yes)、サーバ101は、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグフィールドフラグを“分岐済”に設定する(ステップS1806)。
【0099】
複数通信装置イベント分岐済フラグフィールドの設定後、または単数の通信装置102が該当のイベントを取得可能である場合(ステップS1805:No)、サーバ101は、タスク委譲要求メッセージ314を下位の通信装置102に送信する(ステップS1807)。送信後、サーバ101は、タスクの終了を受け付ける(ステップS1808)。具体的に、サーバ101は、タスク結果メッセージを受け付けることでタスクの終了を受け付ける。タスクの終了を受け付けた後、サーバ101は、サーバタスク委譲処理を実行する。続けて、タスク委譲要求メッセージ314を受信した通信装置102が、通信装置タスク委譲処理を実行する。
【0100】
図19は、通信装置タスク委譲処理の一例を示すフローチャートである。通信装置タスク委譲処理は、サーバ101で実行されるサーバタスク委譲処理、または、上位の通信装置タスク委譲処理、からのタスク委譲要求メッセージ314を受信したときに実行される。
【0101】
通信装置102は、タスク委譲要求メッセージ314を受信する(ステップS1901)。受信後、通信装置102は、下位に通信装置102を有するか否かを判断する(ステップS1902)。通信装置102が無い場合(ステップS1902:No)、通信装置102は、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグフィールドが“分岐済”か否かを判断する(ステップS1903)。“分岐済”である場合(ステップS1903:Yes)、通信装置102は、イベント要求メッセージ送信処理を実行する(ステップS1904)。イベント要求メッセージ送信処理の詳細については、図21にて後述する。また、イベント要求メッセージを受信した上位の通信装置は、経路情報設定処理を実行する(ステップS1703)。
【0102】
イベント要求メッセージ送信処理の終了後、または“未分岐”である場合(ステップS1903:No)、通信装置102は、タスク委譲要求メッセージ314の処理名称フィールドに対応する処理を実行する(ステップS1905)。処理を実行後、通信装置102は、通信装置タスク委譲処理を終了し、タスク完了時処理を実行する(ステップS1705)。また、経路情報設定処理を実行する(ステップS1703)。
【0103】
通信装置102を有する場合(ステップS1902:Yes)、通信装置102は、下位の通信装置102のうち複数の通信装置102が、タスク委譲要求メッセージ314のイベントフィールドのイベントを取得可能か否かを判断する(ステップS1906)。複数の通信装置102が該当のイベントを取得可能である場合(ステップS1906:Yes)、通信装置102は、処理分割が可能か否かを判断する(ステップS1907)。処理分割が可能か否かの判断については、受信したタスク委譲要求メッセージ314の処理分割フラグフィールドを参照することで判断することができる。
【0104】
処理分割が可能である場合(ステップS1907:Yes)、通信装置102は、イベントを取得可能な下位の通信装置102全てにタスク委譲要求メッセージ314を転送する(ステップS1908)。これにより、タスクは分割されて処理されることになる。
【0105】
処理分割が可能でない場合(ステップS1907:No)、通信装置102は、イベント分岐設定処理を実行する(ステップS1909)。イベント分岐設定処理の詳細については、図20にて後述する。単数の通信装置102が該当のイベントを取得可能である場合(ステップS1906:No)、通信装置102は、イベントを取得可能な下位の通信装置102にタスク委譲要求メッセージ314を送信する(ステップS1910)。
【0106】
ステップS1908〜ステップS1910にてタスク委譲要求メッセージ314を送信した通信装置102は、通信装置タスク委譲処理を終了する。続けて、タスク委譲要求メッセージ314を受信した下位の通信装置102が、通信装置タスク委譲処理を実行する。
【0107】
図20は、通信装置102におけるイベント分岐設定処理の一例を示すフローチャートである。イベント分岐設定処理は、ステップS1907:Noのルートを通ったときに実行される。通信装置102は、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグフィールドが“分岐済”か否かを判断する(ステップS2001)。“未分岐”である場合(ステップS2001:No)、通信装置102は、タスク委譲要求メッセージ314の複数通信装置イベント分岐済フラグフィールドを“分岐済”に設定する(ステップS2002)。
【0108】
続けて、通信装置102は、メッセージ記憶テーブル331に新規レコードを追加し(ステップS2003)、追加されたレコードのメッセージIDフィールドにタスク委譲要求メッセージ314のメッセージIDを設定する(ステップS2004)。記憶後、通信装置102は、追加されたレコードのイベント分岐状態フィールドに“分岐開始”を設定する(ステップS2005)。
【0109】
ステップS2005の処理終了後、または“分岐済”である場合(ステップS2001:Yes)、通信装置102は、下位の通信装置102のうちタスクを委譲する通信装置102を選択する(ステップS2006)。なお、具体的な選択方法としては、下位の通信装置102のうち、ランダムで選択してもよいし、イベントを多く送信する可能性が高い通信装置102を、タスクを委譲する通信装置102に選択してもよい。
【0110】
選択後、通信装置102は、選択された通信装置102にタスク委譲要求メッセージ314を送信する(ステップS2007)。送信後、通信装置102は、イベント分岐設定処理を終了する。選択された通信装置102は、通信装置タスク委譲処理を実行する(ステップS1702)。
【0111】
図21は、通信装置102におけるイベント要求メッセージ送信処理の一例を示すフローチャートである。イベント要求メッセージ送信処理は、ステップS1903:Yesのルートを通ったときに実行される。通信装置102は、受信したタスク委譲要求メッセージ314から、イベント要求メッセージ332を生成する(ステップS2101)。具体的に、通信装置102は、タスク委譲要求メッセージ314のイベントフィールドとメッセージIDフィールドから、イベント要求メッセージ332を生成する。
【0112】
続けて、通信装置102は、メッセージ記憶テーブル331に新規レコードを追加する(ステップS2102)。追加後、通信装置102は、追加されたレコードのメッセージIDフィールドにタスク委譲要求メッセージ314のメッセージIDを設定する(ステップS2103)。設定後、通信装置102は、追加されたレコードのイベント分岐状態フィールドに“末端”を設定する(ステップS2104)。
【0113】
メッセージ記憶テーブル331への設定後、通信装置102は、イベント要求メッセージ332を上位の通信装置102に送信する(ステップS2105)。なお、上位がサーバ101である場合、通信装置102は、イベント要求メッセージ332をサーバ101に送信する。ステップS2105の処理終了後、通信装置102は、ステップS1905の処理を実行する。
【0114】
図22は、通信装置102における経路情報設定処理の一例を示すフローチャートである。経路情報設定処理は、下位の通信装置102が実行し通信装置タスク委譲処理、または、下位の通信装置102が実行した経路情報設定処理から実行される。
【0115】
通信装置102は、イベント要求メッセージ332を受信する(ステップS2201)。続けて、通信装置102は、受信したイベント要求メッセージ332のメッセージIDフィールドと同一のメッセージIDがメッセージ記憶テーブル331に存在するか否かを判断する(ステップS2202)。同一のメッセージIDが存在する場合(ステップS2202:Yes)、通信装置102は、存在したメッセージIDのレコードのイベント分岐状態が“分岐開始”であるか否かを判断する(ステップS2203)。
【0116】
イベント分岐状態が“分岐開始”である場合(ステップS2203:Yes)、通信装置102は、イベント収集用テーブル402に経路情報を設定する(ステップS2204)。具体的に、経路情報として、通信装置102は、イベント要求メッセージ332のイベントフィールドから、イベント種別フィールドと、測定対象フィールドとを設定する。さらに、通信装置102は、イベント要求メッセージ332の送信先となる通信装置102の識別情報から収集先識別情報フィールドを設定する。経路情報の設定後、通信装置102は、イベント収集処理を実行する(ステップS1704)。
【0117】
同一のメッセージIDが存在しない場合(ステップS2202:No)、または、“分岐開始”でない場合(ステップS2203:No)、通信装置102は、イベント収集用テーブル402に経路情報を設定する(ステップS2205)。経路情報の設定後、通信装置102は、受信したイベント要求メッセージ332を上位の通信装置102に送信する(ステップS2206)。イベント要求メッセージ332を送信後、通信装置102は、イベント収集処理を実行する。また、イベント要求メッセージ332を受信した上位の通信装置102は、経路情報設定処理を実行する(ステップS1703)。
【0118】
図23は、通信装置102におけるイベント収集処理の一例を示すフローチャートである。イベント収集処理は、ステップS2204またはステップS2206によって経路情報が設定された後、イベント333を受信したときに実行される。なお、端末103からのイベントの送信については、予め決められた周期で送信される。
【0119】
通信装置102は、下位の通信装置102からイベント333を受信する(ステップS2301)。イベント333の受信後、通信装置102は、受信したイベント333に対応する経路情報がイベント収集用テーブル402に登録されているか否かを判断する(ステップS2302)。具体的な判断方法として、通信装置102は、受信したイベントと、イベント収集用テーブル402のイベント種別フィールドが一致するレコードが存在するか否かを確認することで、受信したイベント333に対応する経路情報が登録されていることを判断する。
【0120】
対応する経路情報が登録されている場合(ステップS2302:Yes)、通信装置102は、受信したイベント333を経路情報に従った通信装置102に送信する(ステップS2303)。イベント333を送信後、通信装置102は、イベント収集処理を終了する。対応する経路情報が登録されていない場合(ステップS2302:No)、通信装置102は、受信したイベント333を上位の通信装置102に送信し(ステップS2304)、イベント収集処理を終了する。
【0121】
図24は、通信装置102におけるタスク完了時処理の一例を示すフローチャートである。タスク完了時処理は、ステップS1905にて処理を実行した後に実行される。通信装置102は、イベント333を受信し、委譲されたタスクに入力する(ステップS2401)。次に、通信装置102は、タスクからの結果があったか否かを判断する(ステップS2402)。タスクから結果がない場合(ステップS2402:No)、通信装置102は、ステップS2401の処理に移行する。
【0122】
タスクから結果がある場合(ステップS2402:Yes)、通信装置102は、タスク結果メッセージを生成する(ステップS2403)。なお、タスク結果メッセージは、メッセージIDとタスク結果を格納する2つのフィールドを含む。生成後、通信装置102は、タスク結果メッセージを上位の通信装置102に送信する(ステップS2404)。なお、上位の通信装置102が存在しなく、サーバ101である場合、通信装置102は、サーバ101にタスク結果メッセージを送信する。送信後、通信装置102はタスク完了時処理を終了する。
【0123】
なお、ステップS1808にてタスク結果メッセージを受け付けたサーバ101は、メッセージタスク関係テーブル312を参照することで、どのタスクが完了したかを判断することができる。また、タスク結果メッセージを受け付けた通信装置102は、タスク結果メッセージのメッセージIDとメッセージ記憶テーブル331のメッセージIDフィールドが一致するレコードを削除してもよい。
【0124】
以上説明したように、通信装置、通信プログラム、および通信方法によれば、イベントの収集要求を下位の装置から受信した場合、イベントを複数の下位の装置から収集する装置のうち最上位の装置が自装置であることを示す評価値が設定されているかを判断する。設定されている場合、通信装置は、収集要求を上位の装置に送信しない。これにより、通信装置は、上位の装置にイベントの収集要求を送信しないため、使用されない経路情報が追加されなくなるため、上位の装置の経路情報の増大を抑制することができる。
【0125】
また、収集要求を送信しないため、通信装置は、ネットワーク内の通信量を削減することができる。さらに、経路情報の増大を抑制することで、通信装置は、タスク委譲、イベント収集における送信先を検索する際に、検索対象となる経路情報の母集団が小さくなるため、検索を高速に行えるようになる。
【0126】
また、通信装置は、イベントとイベントを取得可能な下位の装置の識別情報を記憶し、評価値が設定されたかを示す設定情報を上位の装置から受信した場合、イベントを取得可能な装置の数と設定情報に基づいて、自装置の評価値を設定してもよい。これにより、通信装置は、評価値を予め保持しておかずに、収集されるイベントに応じて評価値を設定することができる。たとえば、イベントを用いるタスクの委譲要求を受信したときに、通信装置は、自装置の評価値を設定することができる。
【0127】
また、通信装置は、上位の装置から設定情報を受信した場合、イベントを取得可能な下位の装置が複数であり、設定情報が設定されていないことを示すときに、評価値を設定してもよい。これにより、通信装置は、上位の装置では自装置以外からイベントを取得しないことが判断できるため、評価値を設定し、経路情報の増大を抑制することができる。
【0128】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0129】
100 スマートメータシステム
101 サーバ
102 通信装置
103 端末
104 経路情報テーブル
301、324 制御部
302 構文解析部
303 生成部
304、325、328 送信部
311 処理分割テーブル
312 メッセージタスク関係テーブル
313 タスク情報
314 タスク委譲要求メッセージ
320 記憶部
321、326 受信部
322 設定部
323 判断部
327 追加部
331 メッセージ記憶テーブル
332 イベント要求メッセージ
333 イベント

【特許請求の範囲】
【請求項1】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを自装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信する通信装置であって、
前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部と、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記自装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信する受信部と、
前記受信部によって前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定する設定部と、
前記収集要求を受信した場合、前記設定部によって設定された前記評価値が前記最上位となる装置を示しているか否かを判断する判断部と、
前記判断部にて前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する制御部と、
を備えることを特徴とする通信装置。
【請求項2】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを特定の装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信し、前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部を有する通信装置に実行させる通信プログラムであって、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記特定の装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信し、
前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定し、
前記収集要求を受信した場合、設定された前記評価値が前記最上位となる装置を示しているか否かを判断し、
前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する、
処理を前記特定の装置に実行させる通信プログラム。
【請求項3】
木構造のネットワーク内に存在し、下位の装置から測定対象の属性に関する特徴量の収集要求を受信すると前記測定対象の属性情報と前記下位の装置の識別情報とを特定の装置の記憶領域に記憶しつつ、前記収集要求を上位の装置に送信し、前記測定対象の属性情報と前記測定対象の属性の特徴量を取得可能な前記下位の装置の識別情報との組合せを記憶する記憶部を有する通信装置が実行する通信方法であって、
前記測定対象の属性に関する特徴量を複数の前記下位の装置から収集する装置のうち前記ネットワーク内で最上位となる装置が前記特定の装置であるか否かを示す評価値が最上位となる装置として設定されたか否かを示す設定情報を前記上位の装置から受信し、
前記設定情報を受信した場合、前記記憶部に記憶された前記測定対象の属性の特徴量を取得可能な前記下位の装置が複数であり、前記設定情報が前記最上位となる装置に設定されていないことを示すときに、前記評価値を前記最上位となる装置として設定し、
前記収集要求を受信した場合、設定された前記評価値が前記最上位となる装置を示しているか否かを判断し、
前記評価値が前記最上位となる装置であると判断された場合、前記収集要求を前記上位の装置に送信しないように制御する、
処理を前記特定の装置が実行する通信方法。

【図1−1】
image rotate

【図1−2】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2013−12853(P2013−12853A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143395(P2011−143395)
【出願日】平成23年6月28日(2011.6.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】