(57)【要約】  通信装置（１００）は、マルチホップネットワークに含まれ、マルチホップネットワークにおける上位装置および下位装置と通信を行う通信部（１０２）と、上位装置から、プログラムの配信通知を受信する配信通知受信部（１０４）と、配信通知を受信した後に、上位装置からプログラムを受信するプログラム受信部（１０６）と、受信したプログラムを自装置にインストールするプログラム導入部（１０８）と、プログラムのインストール完了後に、下位装置に配信通知を送信する通知部（１１０）と、を備える。
2016039039.tif 000002
【特許請求の範囲】
【請求項１】
マルチホップネットワークにおける上位装置および下位装置と通信を行う通信装置において、
前記上位装置から、プログラムの配信通知を受信する配信通知受信手段と、
受信した前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する通知手段と、
を備える通信装置。
【請求項２】
前記配信通知受信手段は、前記上位装置から受信したブロードキャストメッセージが前記配信通知か否かを判定し、
前記配信通知である場合に、前記通知手段は前記下位装置に前記配信通知をブロードキャスト転送する、
請求項１に記載の通信装置。
【請求項３】
前記配信通知を受信すると、自装置の動作状況または動作スケジュールに基づいて決定した受信タイミングで、前記プログラムの配信要求を前記上位装置に送信する配信要求手段を備える、
請求項１または２に記載の通信装置。
【請求項４】
前記配信要求手段は、自装置の動作負荷に基づいて前記受信タイミングを決定する、
請求項３に記載の通信装置。
【請求項５】
前記配信要求手段は、検針データの送信処理時以外に前記受信タイミングを決定する、
請求項３に記載の通信装置。
【請求項６】
複数の前記下位装置の中のいずれか１つから前記プログラムの配信要求を受信する配信要求受信手段と、
前記配信要求を受信すると、複数のブロックに分割した前記プログラムを前記下位装置にブロードキャスト送信するプログラム送信手段と、を備える、
請求項１から５いずれか１項に記載の通信装置。
【請求項７】
前記複数のブロックに分割されたプログラムを受信すると、前記複数のブロックが前記プログラム全体に対する不足が無いかを判定する不足判定手段と、
不足ブロックがあると判定された場合、前記不足ブロックの指定を含む配信要求を前記上位装置に送信する配信要求手段と、を備える、
請求項１から６いずれか１項に記載の通信装置。
【請求項８】
前記通知手段は、前記下位装置に送信する前記配信通知に複数に分割したプログラムのブロック総数を含める、
請求項７に記載の通信装置。
【請求項９】
前記通知手段が前記配信通知を送信後、所定の時間経過するまでに自身の配下の前記下位装置から前記プログラムの配信要求を受信しない場合、前記下位装置の前記プログラムの受信が完了したと判定する完了判定手段を備える、
請求項１から８いずれか１項に記載の通信装置。
【請求項１０】
前記通知手段は、前記マルチホップネットワークにおける同一階層の他の通信装置と異なるタイミングで設定された送信タイミングで前記配信通知を送信する、
請求項１から９いずれか１項に記載の通信装置。
【請求項１１】
前記プログラムを複数のブロックに分けて前記下位装置に送信するプログラム送信手段と、
前記下位装置から不足ブロックの指定を含む配信要求を受信する配信要求受信手段と、
前記配信要求に呼応して、前記不足ブロックを前記下位装置にブロードキャスト送信するプログラム送信手段と、を備える、
請求項１から１０いずれか１項に記載の通信装置。
【請求項１２】
前記配信通知受信手段は、前記プログラムの属性情報を含む配信通知を受信し、
前記配信通知に含まれる属性情報と、自装置のプログラムに関する属性情報とに基づいて、受信した前記プログラムをインストールするか否かを判定する対象判定手段と、を備える、
請求項１から１１いずれか１項に記載の通信装置。
【請求項１３】
他の装置から、プログラムの配信通知を受信する配信通知受信手段と、
前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記他の装置以外の装置に対して、前記配信通知を送信する通知手段と、
を備える通信装置。
【請求項１４】
配信起点装置と、
マルチホップネットワークにおける上位装置および下位装置と通信を行う、複数の通信装置と、を備え、
前記配信起点装置および前記複数の通信装置は、マルチホップネットワークに含まれ、
前記通信装置は、
前記上位装置から、プログラムの配信通知を受信する配信通知受信手段と、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信するプログラム受信手段と、
受信した前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する通知手段と、を有する、
通信システム。
【請求項１５】
コンピュータに、
マルチホップネットワークにおける上位装置および下位装置と通信を行う手順、
前記上位装置から、プログラムの配信通知を受信する手順、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信する手順、
受信した前記プログラムを自装置にインストールする手順、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する手順、
を実行させるためのプログラム。
【請求項１６】
通信装置が、
マルチホップネットワークにおける上位装置および下位装置と通信を行い、
前記上位装置から、プログラムの配信通知を受信し、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信し、
受信した前記プログラムを自装置にインストールし、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する、
通信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、その制御方法、通信システム、およびプログラムに関し、特に、マルチホップネットワークを構成する通信装置、その制御方法、通信システム、およびプログラムに関する。
【背景技術】
【０００２】
検針メータなどに接続された通信装置のファームウェアのアップデート方法の一例が特許文献１に記載されている。この特許文献１のファームウェアのアップデート方法は、保守端末がファームウェアを分割した複数の分割ブロックに識別情報を付し、保守端末と複数の通信ユニットとの間で無線リンクを確立して、分割ブロックを同報通信により各通信ユニットに送信する。通信ユニットは受信した分割ブロックの識別情報に基づいて分割ブロックの抜けを管理する。保守端末は、各通信ユニットにブロックの抜けの有無を確認し、ブロックの抜けが存在する通信ユニットに対して分割ブロックを再送する。
また、特許文献２には、同様のファームウェアのアップデート方法において、マルチホップによりパケットが送信されていることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−６６５２９号公報
【特許文献２】特開２００９−２０６７２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した文献記載の技術においては、プログラムを分割した分割ブロックを、マルチホップネットワークで同報通信により順次子局に送信し、子局はさらにその配下の子局に同報通信により順次転送を繰り返し、ネットワークの末端の子局まで連鎖的に到達させていた。また、親局が、ネットワーク内の全子局について抜けブロックの存在の有無を確認して再送処理を行っていた。この再送処理時にも、ネットワークの末端の子局から抜けブロックの情報を送信する場合には、中継局を介して順次転送を繰り返し親局まで連鎖的に到達させ、親局からブロックを再送する場合も同様に中継局を介して順次転送を繰り返して末端の子局まで連鎖的に到達させていた。
そのため、中継局でブロックの抜けがあった場合に、その影響が中継局以降の子局にも波及してしまうし、抜けブロックの情報収集と再送がマルチホップネットワーク内の中継局を介した複数の子局との間で多重に行われるため、通信トラフィック量が増大するという問題点があった。【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、マルチホップネットワークにおける効率のよいプログラム配信が可能な通信装置、その制御方法、通信システム、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。【０００７】
第一の側面は、通信装置に関する。第一の側面に係る通信装置は、
マルチホップネットワークにおける上位装置および下位装置と通信を行う通信装置であって、
前記上位装置から、プログラムの配信通知を受信する配信通知受信手段と、
前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する通知手段と、
を有する。【０００８】
第二の側面は、通信装置に関する。第二の側面に係る通信装置は、
他の装置から、プログラムの配信通知を受信する配信通知受信手段と、
前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記他の装置以外の装置に対して、前記配信通知を送信する通知手段と、
を有する。【０００９】
第三の側面は、少なくとも１つのコンピュータにより実行される通信装置の制御方法に関する。第三の側面に係る通信装置の制御方法は、
通信装置が、
マルチホップネットワークにおける上位装置および下位装置と通信を行い、
前記上位装置から、プログラムの配信通知を受信し、
前記プログラムを自装置にインストールし、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する、
ことを含む。【００１０】
第四の側面は、通信システムに関する。第四の側面に係る通信システムは、
配信起点装置と、
マルチホップネットワークにおける上位装置および下位装置と通信を行う、複数の通信装置と、を備え、
前記配信起点装置および前記複数の通信装置は、マルチホップネットワークに含まれ、
前記通信装置は、
前記上位装置から、プログラムの配信通知を受信する配信通知受信手段と、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信するプログラム受信手段と、
受信した前記プログラムを自装置にインストールするプログラム導入手段と、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する通知手段と、
を有する。【００１１】
なお、本発明の他の側面としては、上記第三の側面の方法を少なくとも１つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、上記第一の側面の通信装置または上記第二の側面の通信装置上で、その制御方法を実施させるコンピュータプログラムコードを含む。【００１２】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。【００１３】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。【００１４】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。【００１５】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１６】
上記各側面によれば、マルチホップネットワークにおける効率のよいプログラム配信が可能な通信装置、その制御方法、通信システム、およびプログラムを提供することができる。
【図面の簡単な説明】
【００１７】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１８】
【図１】本発明の実施の形態に係る通信システムのシステム構成を概念的に示す図である。
【図２】本実施形態の通信装置を適用するスマートメーターの構成例を示すブロック図である。
【図３】本実施形態の通信装置を適用するゲートウェイの構成例を示すブロック図である。
【図４】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図５】本実施形態の通信装置の動作の一例を示すフローチャートである。
【図６】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図７】本実施形態の通信装置の動作の一例を示すフローチャートである。
【図８】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図９】本実施形態の通信装置の動作の一例を示すフローチャートである。
【図１０】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図１１】本実施形態の通信装置の動作の一例を示すフローチャートである。
【図１２】本発明の他の実施形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図１３】本発明の他の実施形態に係る通信装置の動作の一例を示すフローチャートである。
【図１４】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図１５】本発明の実施例１の通信システムの動作フローを示す図である。
【図１６】本発明の比較例１の通信システムの動作フローを示す図である。
【図１７】本発明の比較例１の通信システムの動作フローを示す図である。
【図１８】本発明の実施例２の通信システムの動作フローを示す図である。
【図１９】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【図２０】本実施形態の通信装置の動作の一例を示すフローチャートである。
【図２１】本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
（第１の実施の形態）
本発明の第１の実施の形態に係る通信装置、その制御方法およびプログラムについて、以下説明する。
まず、本発明の通信装置を含む通信システムについて説明する。
図１は、本発明の実施の形態に係る通信システム１のシステム構成を概念的に示す図である。
本発明において、通信システム１は、サーバ１０（図中「ＳＶｎ」と示す。）とネットワーク１２を介して接続されるゲートウェイ１４（図中「ＧＷｎ」と示す。）と、複数のノード１６（図中、Ａ１〜Ａｎ、Ｂ１１〜Ｂｎｎ、Ｃ１１１〜Ｃ２ｎ１と示す。）とを含む。ゲートウェイ１４はサーバ１０と複数のノード１６の通信を中継する。ゲートウェイ１４と複数のノード１６は、マルチホップネットワークを構成する。すなわち、ゲートウェイ１４は、本発明のマルチホップネットワークの配信起点装置となる。なお、図１において、ｎは同じ数を示しているのでなく、自然数を取り得ることを示す。
【００２１】
図１において、サーバ１０とゲートウェイ１４は、１台ずつ示されているが、複数台でもよい。また、ノード１６の台数も図１の台数に限定されない。
【００２２】
ネットワーク１２は、特に限定されず、公衆回線網、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット等、様々な形態の通信網を含む。また、ネットワーク１２は、無線、有線、およびそれらの組み合わせのいずれの通信形態であってもよい。図１で破線は、ゲートウェイ１４とノード１６の間、およびノード１６同士の間の通信経路を模式的に示している。これらの装置間の通信方式は、無線、有線、およびそれらの組み合わせのいずれの形態であってもよいが、本明細書では、ゲートウェイ１４とノード１６との間、および、ノード１６同士の間は、無線通信として説明する。
【００２３】
本実施形態において、各ノード１６は、コンピュータによりプログラムを実行することにより、複数台がマルチホップネットワークを形成して互いに通信する通信機能と、さらに何らかの機能を実現する装置である。通信機能以外に装置が実現する機能は特に限定されない。
【００２４】
本発明は、ノードの機能を実現するためのプログラムを、マルチホップネットワークで各ノードに配信し、各ノードにインストールさせる、通信装置、その制御方法、およびプログラムを提供する。本発明におけるプログラムは、ファームウェア、ＯＳ（Operating System）プログラム、ＯＳ上で動作する各種アプリケーションプログラム等、各ノードにインストールされているプログラムであり、プログラムの種類や内容は制限されない。また、サーバ１０と各ノード１６の間に介在するゲートウェイ１４の機能の一部も、本発明の通信装置、その制御方法、およびプログラムにより実現することができる。本発明の通信装置は、ノードに含まれる通信モジュールや、１つのチップとして実現されてもよく、さらに、他の装置に装着するような形態で実現されてもよい。
【００２５】
本明細書では、スマートメーターに本発明の通信装置を適用する例を説明する。本発明の通信装置の適用例はスマートメーターに限定されない。本発明は、マルチホップネットワークを構成し得る通信機能、および、通信を介して受信されたプログラムで自装置にインストールされているプログラムを自動で更新する機能を有していれば、どのような装置にも適用可能である。また、本明細書では、スマートメーターは、電力量を検針する機能を有しているが、ガス使用量、水道使用量等を検針する機能を有してもよい。
本実施形態のスマートメーターは、消費電力量を検針してサーバ１０に定期的に送信する機能を有する。サーバ１０への消費電力量に関する情報の送信方法は様々な方式のものが検討されているが、特に、都市部の住宅密集地帯などでは、無線マルチホップ方式による通信が適しているとされている。
【００２６】
無線マルチホップ方式の通信では、複数のスマートメーターを経由しながらデータを目的の宛先まで転送する。各スマートメーターの情報は、バケツリレー方式で複数のスマートメーターを経由しながら、コンセントレータに集約されてセンタ側のサーバに転送される。また、サーバからの情報や指示は、コンセントレータから複数のスマートメーターを経由して、ルートを拡散させながら、マルチホップネットワーク内の複数のスマートメーターに転送される。
図１のようなマルチホップネットワークにおいて、スマートメーターは各ノード１６に相当し、コンセントレータはゲートウェイ１４に相当する。
【００２７】
複数のノード１６は、ゲートウェイ１４を起点とするツリー構造のマルチホップネットワークで互いに通信し、最上位のノードＡ１〜Ａｎがゲートウェイ１４と通信する。マルチホップネットワークのツリー構造は、固定的に決められていてもよいし、周知のルーティングプロトコルにより動的に形成されてもよい。各ノード１６は、上記ツリー構造上での自ノードの上位ノードおよび下位ノードを区別してそれぞれ認識し、上位ノードおよび下位ノードと無線チャネルをそれぞれ確立する。これにより、たとえば、最上位のノードＡ１と、次の下位階層のノードＢ１１〜Ｂ１ｎとが通信し、さらに、たとえば、ノードＢ１１は、次の下位階層のノードＣ１１１〜Ｃ１１ｎと通信する。
【００２８】
各ノード１６は、マルチホップネットワークの周知のプロトコルで規定されているように、上位ノードからブロードキャストメッセージを受信した場合には、下位ノードにブロードキャストメッセージを転送する。これにより、ゲートウェイ１４から送信されたブロードキャストメッセージは、マルチホップネットワークを形成する各ノード１６にそれぞれ届けられる。一方、各ノード１６は、上位ノードまたは下位ノードから他ノード宛のユニキャストメッセージを受信した場合には、そのメッセージの宛先に基づいて、上位ノードまたは下位ノードにユニキャストメッセージを転送する。
【００２９】
図２は、通信装置１００を適用するスマートメーター５０の構成例を示すブロック図である。
スマートメーター５０は、ＣＰＵ（Central Processing Unit）４２と、ＲＯＭ（Read Only Memory）４４と、ＲＡＭ（Random Access Memory）４６と、Ｉ／Ｏ（Input/Output）４８とを含むコンピュータ４０により実現される。
コンピュータ４０は、ＣＰＵ４２、メモリ（ＲＡＭ４６）、メモリにロードされた、スマートメーター５０の機能を実現するプログラム６０、そのプログラム６０を格納するストレージ（ＲＯＭ４４）、および、データおよび制御信号を入出力するＩ／Ｏ４８を備える。
【００３０】
ＲＯＭ４４、ＲＡＭ４６、およびＩ／Ｏ４８は、バス４９を介して互いに接続され、ＣＰＵ４２により各要素とともにコンピュータ４０全体が制御される。なお、本図のＲＯＭ４４およびＲＡＭ４６は、フラッシュメモリやディスクドライブなどの不揮発性メモリ、プログラム６０が動作するための設定データや一時保存データ、ユーザデータなどを記憶するための機能を有する他のメモリやストレージデバイスであってもよい。また、本発明において、ＲＯＭ４４は書き換え可能な不揮発性メモリとし、ＲＯＭ４４に記憶されたプログラム６０は、センタ側のサーバから更新できる。
【００３１】
スマートメーター５０は、たとえば、負荷装置２０の消費電力量を検針する電力量計５２と、９２０ＭＨｚ帯を使用する特定小電力無線方式で通信する第１通信部５４と、３Ｇ（3rd Generation）やＬＴＥ（Long Term Evolution）等の携帯電話通信方式を利用した携帯電話通信網３０に基地局（不図示）を介して接続して通信する第２通信部５６と、を備える。スマートメーター５０は、電力量計５２で検針された消費電力量の情報を第１通信部５４（９２０ＭＨｚ）により他のスマートメーター５０を介してサーバ１０に３０分毎に送信する機能を有する。
【００３２】
さらに、マルチホップネットワークにおけるスマートメーター５０は、電力計５２で検針された消費電力量の情報を第１通信部５４（９２０ＭＨｚ）により他のスマートメーター５０とコンセントレータを介して、サーバ１０に３０分毎に送信する機能を有する。
なお、図２において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００３３】
コンピュータ４０のＣＰＵ４２が、ＲＯＭ４４に記憶されるプログラム６０をＲＡＭ４６に読み出して実行することにより、スマートメーター５０の上記各ユニットの各機能を実現することができる。なお、本発明では、スマートメーター５０の機能自体は特に限定されず、上記機能は一例に過ぎない。
【００３４】
また、本実施形態の通信装置１００は、スマートメーター５０のマルチホップネットワークの起点となるコンセントレータにも、その親ノードとしての機能の一部を適用できる。コンセントレータは、たとえば、配下のスマートメーター５０の検針データを収集し、サーバ１０に送信する機能、およびサーバ１０からスマートメーター５０への指示等を配信する機能等を有する。本発明では、コンセントレータの機能自体は特に限定されない。コンセントレータは、少なくともゲートウェイ１４としての機能を有し、特に、配下のスマートメーター５０に、スマートメーター５０のプログラム６０を配信する機能を有する。
【００３５】
図３は、ゲートウェイ１４の構成例を示すブロック図である。本実施形態のゲートウェイ１４は、図２のスマートメーター５０と同様な、コンピュータ４０と、第１通信部５４とを備え、さらに、第２通信部５８を備える。
第２通信部５８は、ＬＡＮ（Local Area Network）またはＷＡＮ（Wide Area Network）に有線または無線で接続し、通信する機能を有する。ゲートウェイ１４は、第２通信部５８により、ネットワーク１２に接続し、サーバ１０と通信できる。あるいは、第２通信部５８は、図２の第２通信部５６と同様に３ＧやＬＴＥ等の携帯電話通信方式を利用した携帯電話通信網に基地局を介して接続して、携帯電話通信網を経由してネットワーク１２に接続し、サーバ１０と通信してもよい。
ゲートウェイ１４のコンピュータ４０のＣＰＵ４２は、ＲＯＭ４４に記憶される、ゲートウェイ１４の機能を実現するプログラム６２をＲＡＭ４６に読み出して実行することにより、ゲートウェイ１４の各機能を実現することができる。
【００３６】
次に、本実施形態の通信装置１００の構成について説明する。
図４は、本発明の実施の形態に係る通信装置１００の論理的な構成を示す機能ブロック図である。
通信装置１００は、マルチホップネットワークに含まれる。
上位装置から、プログラム６０の配信通知８０を受信する配信通知受信部１０４と、配信通知８０を受信した後に、上位装置からプログラム６０を受信するプログラム受信部１０６と、プログラム６０を自装置（通信装置１００）にインストールするプログラム導入部１０８と、プログラム６０のインストール完了後に、下位装置に配信通知８０を送信する通知部１１０と、を備える。
【００３７】
また、図１では、通信装置１００は、マルチホップネットワークにおける上位装置および下位装置と通信を行う通信部１０２をさらに備えている。本発明の通信装置は、図１の通信部１０２を含む構成に限定されず、通信部１０２の機能を有する他の装置の通信機能を利用する形態であってもよい。
【００３８】
ここで、通信装置１００が図１のノードＡ１である場合、上位装置とはゲートウェイ１４であり、下位装置とはノードＢ１１〜ノードＢ１ｎである。通信装置１００が図１のノードＢ１１である場合、上位装置とは、ノードＡ１であり、下位ノードとはノードＣ１１１〜Ｃ１１ｎである。本明細書では、上位装置のことを、上位ノードまたは親ノードとも呼ぶ。また、下位装置のことを、下位ノードまたは子ノードとも呼ぶ。
【００３９】
図４の本実施形態の通信装置１００の各構成要素は、図２または図３のコンピュータ４０のハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各実施形態の通信装置を示す機能ブロック図は、ハードウェア単位の構成ではなく、論理的な機能単位のブロックを示している。
【００４０】
また、本実施形態では、図２に示すように、スマートメーター５０本来の機能を実現するプログラム６０に加え、さらに、図４の本発明の通信装置１００の各ユニットの各機能を実現するプログラム７０が、ＲＯＭ４４に記憶される。コンピュータ４０のＣＰＵ４２が、ＲＯＭ４４に記憶されるプログラム７０をＲＡＭ４６に読み出して実行することにより、図４の本発明の通信装置１００の各ユニットの各機能を実現することができる。なお、プログラム６０とプログラム７０は、１つのプログラムであってもよい。
【００４１】
また、本実施形態では、図３に示すように、ゲートウェイ１４が有するコンピュータ４０のＣＰＵ４２が、ＲＯＭ４４に記憶されるプログラム７２をＲＡＭ４６に読み出して実行することにより、図４の本発明の通信装置１００の各ユニットの各機能の一部を実現することができる。なお、プログラム６２とプログラム７２は１つのプログラムであってもよい。
【００４２】
図４の通信装置１００の各構成要素について、以下詳細に説明する。
通信部１０２は、図１に示すようなマルチホップネットワークにおける、上位ノードおよび下位ノードと通信を確立する。本実施形態では、ノード間のルート検索により、各ノードは宛先情報等を取得済みとする。通信部１０２は、この宛先情報に従い、他のノードと通信する。通信装置１００がゲートウェイ１４の場合は、通信部１０２が通信を確立する上位ノードは、サーバ１０である。ゲートウェイ１４の場合には、サーバ１０とゲートウェイ１４間の通信は、マルチホップネットワークでなく、たとえば第２通信部５６により、３ＧやＬＴＥ等の携帯電話通信方式を利用した携帯電話通信網に基地局を介して接続して通信する。また、サーバ１０とゲートウェイ１４間は、無線または有線でＬＡＮ、またはＷＡＮ等のネットワークに接続して通信が行われてもよい。ゲートウェイ１４と下位ノードのスマートメーター５０、および、スマートメーター５０間は、第１通信部５４により、９２０ＭＨｚを使用する特定小電力無線方式で通信してマルチホップネットワークを確立する。
【００４３】
配信通知受信部１０４は、通信部１０２により確立されている通信ルートに従い、上位ノードから、プログラム６０の配信通知８０を受信する。配信通知８０は、サーバ１０からプログラム６０が配信される前に、事前に配信される。配信通知８０配信の大元は、サーバ１０またはゲートウェイ１４のいずれでもよく、特に限定されない。通信装置１００がゲートウェイ１４の場合、配信通知受信部１０４は、サーバ１０から配信通知８０を受信してもよい。あるいは、通信装置１００がゲートウェイ１４の場合には、配信通知受信部１０４による配信通知８０の受信は省略して、プログラム受信部１０６が任意のタイミングでサーバ１０からプログラム６０を受信してもよい。
【００４４】
サーバ１０から配信されるプログラムは、スマートメーター５０の機能を実現するプログラム６０の一部または全部である。たとえば、当該プログラムは、スマートメーター５０のファームウェアである。本発明の通信装置１００は、サーバ１０から配信されるプログラム６０の一部または全部を、各スマートメーター５０のコンピュータ４０にインストールする機能を有する。
サーバ１０から配信されるプログラムは、本発明のプログラム７０を含んでもよいが、その場合には、プログラムのインストールの前後で、本発明の通信装置の機能が適切に動作するような工夫が必要となる。この工夫自体は、本発明の本質には関わらないので詳細な説明は省略する。以下、サーバ１０から配信されるプログラムは、「プログラム６０」と呼ぶ。
【００４５】
プログラム受信部１０６は、配信通知８０を受信した後に、上位ノード（ゲートウェイ１４の場合はサーバ１０）からプログラム６０を受信する。受信したプログラム６０は、図２のＲＡＭ４６またはストレージ（不図示）に一時的に格納される。
【００４６】
プログラム導入部１０８は、プログラム受信部１０６が受信したプログラム６０を自装置（通信装置１００）にインストールする。ここで、プログラム６０は、通信装置１００のファームウェアの一部または全部である。更新プログラムであってもよいし、新規のプログラムであってもよい。ここで、「更新」とは、プログラム６０の新しいバージョンへのアップグレードだけではなく、以前のバージョンに戻すダウングレードも含む。プログラム導入部１０８は、図２のＲＡＭ４６またはストレージに一時的に格納されたプログラム６０を、ＲＯＭ４４に書き込む。そして、新しいプログラム６０が書き込まれた後、通信装置１００が必要に応じて再起動され、ＲＡＭ４６にロードされ、ＣＰＵ４２が実行可能な形式で展開され、ＣＰＵ４２により実行されて、プログラム６０のインストールが完了する。
【００４７】
通知部１１０は、プログラム６０のインストール完了後に、下位ノードに配信通知８０を送信する。なお、通信装置１００がゲートウェイ１４であって、プログラム６０が自身の対象のプログラムを含まない場合には、プログラム導入部１０８は動作せず、通知部１１０が下位ノードに配信通知８０を送信する。
【００４８】
配信通知受信部１０４、プログラム受信部１０６、およびプログラム導入部１０８は、子ノードとしての機能を実現する構成であり、通知部１１０は、親ノードとしての機能を実現する構成である。通信部１０２は、子ノードおよび親ノードに共通の機能を実現する構成である。このように、通信装置１００は、子ノードとしての機能と、親ノードとしての機能の両方を備えることができる。本実施形態のマルチホップネットワークにおいて、子ノードは、プログラムを受信してインストールすると、次は親ノードとなって次の階層（ホップ）の子ノードにプログラムを配信する。
なお、マルチホップネットワークの構成上（たとえば、最上位または最下位の階層のノード等）、親ノードと子ノードのどちらか一方にしかなり得ない通信装置は、その一方の機能のみを備えてもよい。
【００４９】
また、本実施形態において、配信通知受信部１０４は、上位ノードから受信したブロードキャストメッセージが配信通知８０か否かを判定する。
配信通知８０である場合に、通知部１１０は、配信通知８０をブロードキャスト転送する。
【００５０】
本実施形態では、上位ノードから下位ノードに配信通知８０がブロードキャスト送信されるが、配信通知８０を受信した下位ノードは、受信した配信通知８０を、さらなる下位のノードに対し、直ぐには送信しない。つまり、通信装置１００は、ブロードキャスト処理を一時的に中断する。通信装置１００は、プログラム６０を受信した後に、自装置（通信装置１００）におけるプログラム６０のインストールを行い、インストール処理が完了するまで待った後、配信通知８０をさらに下位のノードに対しブロードキャスト送信する。
【００５１】
プログラム受信部１０６は、ブロードキャスト送信された配信通知８０を受信した後、ブロードキャストの発信元である上位ノード宛てに、プログラムの配信要求をユニキャストで送信してもよい。ブロードキャストの発信元である上位ノードは、自身の配下にある複数のノードから、配信要求を受信することになる。発信元の上位ノードは、少なくとも１つのノードから配信要求を受信したら、プログラム６０の配信を開始してよく、全ての下位ノードからの配信要求を受信するまで待つ必要はない。この理由は、発信元の上位ノードの配下にある下位ノードは、動的に変更になる場合があり、その場合には「全て」の下位ノードを特定できないためでもある。後で詳細に説明するように、プログラム６０を受信できなかった下位ノードは、後で再送要求を行えばよい。
【００５２】
なお、上記構成は、通信装置１００をゲートウェイ１４に適用した場合、以下の点でスマートメーター５０に適用した場合と異なる。
ゲートウェイ１４の上位装置は、サーバ１０となり、マルチホップネットワークではなく、ネットワーク１２を介してサーバ１０と通信する。ゲートウェイ１４は、通信装置１００のプログラム導入部１０８を含まなくてよい。ただし、更新対象となるプログラムが、ゲートウェイ１４の通信機能にも適用される場合には、プログラム導入部１０８によりプログラムをインストールし、完了した後、配信通知を送信してもよい。
配信通知受信部１０４は、サーバ１０から配信通知を受信する。プログラム受信部１０６は、サーバ１０にアクセスし、スマートメーター５０のプログラム６０をダウンロードする。通知部１１０は、プログラム受信部１０６がサーバ１０からスマートメーター５０のプログラム６０を受信した後に、下位ノード（図１のノードＡ１〜Ａｎ）に配信通知を送信する。
【００５３】
次に、本発明の通信装置１００を実現するプログラム７０またはプログラム７２について、以下説明する。
本実施形態のプログラム７０またはプログラム７２は、通信装置１００を実現するコンピュータ４０により実行されることにより、通信装置１００の各ユニットの各機能を実現する。
【００５４】
本実施形態のコンピュータプログラム７０は、通信装置１００（スマートメータ５０）を実現させるためのコンピュータ４０に、マルチホップネットワークにおける上位装置（ゲートウェイ１４または上位のスマートメーター５０）および下位装置（下位のスマートメータ５０）と通信を行う手順、上位装置から、プログラム６０の配信通知８０を受信する手順、配信通知８０を受信した後に、上位装置からプログラム６０を受信する手順、受信したプログラム６０を自装置（通信装置１００（コンピュータ４０））にインストールする手順、プログラム６０のインストール完了後に、下位装置に配信通知８０を送信する手順、を実行させるように記述されている。
【００５５】
また、本実施形態のコンピュータプログラム７２は、通信装置１００（ゲートウェイ１４）を実現させるためのコンピュータ４０に、マルチホップネットワークにおける下位装置（下位のスマートメータ５０）と通信を行う手順、サーバ１０から、プログラム６０の配信通知８０を受信する手順、配信通知８０を受信した後に、サーバ１０からプログラム６０を受信する手順、プログラム６０を受信した後に、下位装置に配信通知８０を送信する手順、を実行させるように記述されている。
【００５６】
本実施形態のコンピュータプログラム７０またはプログラム７２は、コンピュータ４０で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム７０またはプログラム７２は、記録媒体からコンピュータ４０のメモリにロードされてもよいし、ネットワークを通じてコンピュータ４０にダウンロードされ、メモリにロードされてもよい。
【００５７】
コンピュータプログラム７０またはプログラム７２を記録する記録媒体は、非一時的な有形のコンピュータ４０が使用可能な媒体を含み、その媒体に、コンピュータ４０が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム７０またはプログラム７２が、コンピュータ４０上で実行されたとき、コンピュータ４０に、通信装置１００を実現する以下の制御方法を実行させる。
【００５８】
次に、本実施形態の通信装置１００の制御方法について、以下説明する。
図５は、本実施形態の通信装置１００の動作の一例を示すフローチャートである。
本発明の実施の形態に係る制御方法は、通信装置１００の制御方法であり、通信装置１００を実現するコンピュータ４０により実行される制御方法である。
本実施形態の制御方法は、通信装置１００が、マルチホップネットワークにおける上位装置および下位装置と通信を行い（ステップＳ１０１）、上位装置から、プログラムの配信通知を受信し（ステップＳ１０３）、配信通知を受信した後に（ステップＳ１０３のＹＥＳ）、上位装置からプログラムを受信し（ステップＳ１０５）、受信したプログラムを自装置にインストールし（ステップＳ１０７）、プログラムのインストール完了後に（ステップＳ１０９のＹＥＳ）、下位装置に配信通知を送信する（ステップＳ１１１）。
【００５９】
たとえば、本実施形態では、配信通知８０は、ブロードキャストメッセージに含まれる。この例では、上記ステップＳ１０３において、配信通知受信部１０４が、上位装置から受信したブロードキャストメッセージが配信通知８０か否かを判定する。配信通知８０である場合に（ステップＳ１０３のＹＥＳ）、ステップＳ１０７でプログラム導入部１０８がプログラムを自装置にインストールする。そして、プログラムのインストールの完了後に（ステップＳ１０９のＹＥＳ）、ステップＳ１１１で通知部１１０が下位装置に配信通知８０を転送する。
【００６０】
本実施形態の通信装置１００において、通信部１０２がマルチホップネットワークにおける上位装置と下位装置と通信を確立している状況で、通信装置１００は、通常の動作、たとえば、スマートメーター５０であれば、検針データをサーバ１０に定期的に送信する処理を行っている。このような状況下で、サーバ１０からスマートメーター５０のプログラム６０がゲートウェイ１４に送信されると、ゲートウェイ１４は受信したプログラム６０をＲＡＭ４６またはストレージ（不図示）に記憶する。
【００６１】
ゲートウェイ１４は、サーバ１０から受信したスマートメーター５０のプログラム６０を、マルチホップネットワークを介して各ノード１６に配信する処理を開始する。
具体的には、ゲートウェイ１４は、まず、下位ノードにプログラム６０の配信通知８０を送信する。そして、この配信通知８０を、各ノードの配信通知受信部１０４が受信する。各ノードにおいて、プログラム受信部１０６が、配信通知８０を受信した後に、上位装置（ここでは、ゲートウェイ１４）からプログラム６０を受信し、ＲＡＭ４６またはストレージ（不図示）に一時的に記憶する。このとき、通知部１１０は、配信通知８０を下位装置に直ぐには送信しない。プログラム導入部１０８が、受信したプログラム６０を自装置（通信装置１００）にインストールし、通知部１１０がプログラム６０のインストールが完了した後に、さらに下位階層の複数のノードに配信通知８０を送信する。
【００６２】
すると、下位階層の各ノードの配信通知受信部１０４が、この配信通知８０を受信し、以後、同様にプログラム６０の受信とインストールを行い、さらに下位の階層の複数のノードへ配信通知８０を送信する。このようにして、プログラム６０がゲートウェイ１４からマルチホップネットワークで順次下位階層のノードへと拡散されながら転送されていく。
【００６３】
以上説明したように、本実施形態の通信装置１００によれば、マルチホップネットワークで、プログラム６０を上位ノードから下位ノードに転送する際に、ゲートウェイ１４（またはサーバ１０）が下位ノード全ての管理をするのではなく、直近の親子関係にあるノード間でデータ配信を完了させて、次の下位階層に順次転送を繰り返していくことができる。これにより、本実施形態の通信装置１００は、マルチホップネットワーク内の複数階層のノードを跨ぐような不要なトラフィックの発生を抑制できるとともに、上位側の管理負荷を軽減でき、効率のよいプログラム配信が可能になる。また、本実施形態の通信装置１００は、プログラムの配信処理を階層毎に自律的に管理できる。
【００６４】
また、通信装置１００では、上位ノードからブロードキャストメッセージを受信したとき、配信通知８０か否かを判定し、配信通知８０の場合には、直ぐにはブロードキャストメッセージを転送せず、プログラム６０のインストールの完了後まで待ってから転送する。これにより、ブロードキャストメッセージによる簡易な配信手法での通知を可能にしつつ、直近の親子関係にあるノード間で、プログラムの配信処理を完結させることができるので、マルチホップネットワーク内の複数階層のノードを跨ぐような不要なトラフィックの発生を抑制できるとともに、上位側の管理負荷を軽減でき、効率のよいプログラム配信が可能になる。また、本実施形態の通信装置１００は、プログラムの配信処理を階層毎に自律的に管理できる。
【００６５】
（第１の実施の形態の変形態様１）
第１の実施の形態の変形態様１の通信装置について以下説明する。
図６は、本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
図６は、通信装置の要部構成のみ示してある。図６では、通信装置が子ノード１２０として機能する場合の構成例と、親ノード１３０として機能する場合の構成例を区別してそれぞれ示している。通信装置は、子ノード１２０と親ノード１３０の両方になり得るので、両方の機能を実現する構成要素を全て備えることができる。ここでは、説明上、各ノードが必要な構成のみ示してある。
【００６６】
本発明の通信装置は、プログラムを配信する親ノード１３０としての機能と、プログラムを受信してインストールする子ノード１２０としての機能の少なくともいずれか一方の機能を備えることができる。本実施形態のマルチホップネットワークにおいて、子ノード１２０は、プログラムを受信してインストールすると、次は親ノード１３０となって次の階層（ホップ）の子ノード１２０にプログラムを配信する。
なお、マルチホップネットワークの構成上（たとえば、最上位または最下位の階層のノード等）、親ノードと子ノードのどちらか一方にしかなり得ない通信装置は、その一方の機能のみを備えてもよい。
【００６７】
親ノードおよび子ノードの各機能は、プログラムにより実現でき、各機能を実現するプログラムを選択的に実行することで、対応する機能を実現することができる。これらの手法は、本発明の本質には関わらず、当業者にとって自明であるので、詳細な説明は省略する。
【００６８】
本実施形態の通信装置は、図４の上記実施形態の通信装置１００とは、子ノード１２０が自身の都合のよいタイミングでプログラムを受信できるように配信要求を親ノード１３０に送信する点で相違する。
本実施形態の通信装置は、子ノード１２０の場合、図４の上記実施形態の通信装置１００と同様な構成を備えるとともに、さらに、配信要求部１２２を備える。親ノード１３０の場合、通信装置は、図４の上記実施形態の通信装置１００と同様な構成を備えるとともに、さらに、配信要求受信部１３２と、プログラム送信部１３４と、を備える。
【００６９】
通信装置（子ノード１２０）において、配信要求部１２２は、配信通信受信部１０４により配信通知８０が受信されると、自装置の動作状況または動作スケジュールに基づいて決定した受信タイミングで、プログラムの配信要求８２を上位装置（親ノード１３０）に送信する。
【００７０】
配信要求部１２２は、通信装置自身の動作状況や、動作スケジュールに基づいて、プログラム６０の受信処理を行うのに適した都合のよいタイミングを受信タイミングとして決定できる。配信要求部１２２は、自装置の動作負荷に基づいて、たとえば、通信装置本来の動作処理の負荷が高い時間は避けて、比較的負荷が低い時間を選んで、受信タイミングを決定してもよい。また、スマートメーター５０であれば、配信要求部１２２は、検針データの送信処理時以外に受信タイミングを決定してもよい。
【００７１】
通信装置（親ノード１３０）において、配信要求受信部１３２は、複数の下位装置（子ノード１２０）の中のいずれか１つからプログラム６０の配信要求８２を受信する。プログラム送信部１３４は、配信要求受信部１３２により、複数の下位装置（子ノード１２０）の中のいずれか１つから配信要求８２が得られた後に、プログラム６０を下位装置（子ノード１２０）にブロードキャスト送信する。
【００７２】
配信通知８０を受信した子ノード１２０は、配信要求部１２２により、自身の動作スケジュール等に応じて、都合のよい受信タイミングを決定し、プログラム６０の配信要求８２を親ノード１３０に送信する。親ノード１３０は、配信通知８０を子ノード１２０に送信した後、子ノード１２０からの配信要求８２を受信するまで、プログラム６０の送信を待機する。そして、親ノード１３０は、配信要求受信部１３２により、子ノード１２０の中のいずれか１つからプログラム６０の配信要求８２を受信した後に、プログラム送信部１３４により、プログラム６０を子ノード１２０にブロードキャスト送信するとよい。
【００７３】
発信元の上位ノードは、少なくとも１つのノードから配信要求を受信したら、プログラム６０の配信を開始してよく、全ての下位ノードからの配信要求を受信するまで待つ必要はない。この理由は、発信元の上位ノードの配下にある下位ノードは、動的に変更になる場合があり、その場合には「全て」の下位ノードを特定できないためでもある。後で詳細に説明するように、プログラム６０を受信できなかった下位ノードは、後で再送要求を行えばよい。
【００７４】
この構成によれば、親ノード１３０から配信通知８０を受信した後、配信要求部１２２により、子ノード１２０の動作スケジュールなどに応じて、子ノード１２０自身の都合のよいタイミングで、親ノード１３０にプログラム６０の配信要求８２を送信でき、結果として、自身の都合のよいタイミングでプログラム６０を受信できる。
【００７５】
また、親ノード１３０は、配信要求受信部１３２が子ノード１２０の中のいずれか１つから配信要求８２を受信した後、プログラム送信部１３４が配下の複数の子ノード１２０にプログラム６０をブロードキャスト送信する。これにより、配下の子ノード１２０は、ブロードキャスト送信されたプログラム６０を受信できる。なお、子ノード１２０において、受信タイミングが合わず、送信されたプログラム６０を受信できなかった場合には、後述するように、後で親ノード１３０に再送要求を行うことで、受信できなかったプログラム６０を受信できる。
【００７６】
本実施形態において、プログラム６０を子ノード１２０に配信する際、そのまま送信するのではなく、複数のブロックに分割して送信するのが好ましい。以下、複数のブロックに分割したプログラム６０を送信する構成について説明する。この構成において、図６の子ノード１２０は、プログラム受信部１０６に替えて、プログラム受信部１２４を有する。
【００７７】
本実施形態の親ノード１３０において、プログラム送信部１３４は、配信要求８２を受信すると、複数のブロックに分割したプログラム６０を下位装置（子ノード１２０）にブロードキャスト送信する。
【００７８】
ここで、ブロックは、所謂パケットに相当する。
さらに、子ノード１２０において、プログラム受信部１２４は、親ノード１３０からブロードキャスト送信された各ブロックを順次受信する。
【００７９】
図７は、本実施形態の通信装置の動作の一例を示すフローチャートである。
図７では、通信装置１３０の構成を有する親ノードＡ１と、親ノードＡ１からプログラムを受信する、通信装置１２０の構成を有する子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎの動作を示す。ここで、ｎは自然数である。
このフローは、上記実施形態の図５のフローチャートのステップＳ１０３の配信通知の受信から開始する、ステップＳ１０５のプログラム受信処理の手順の詳細を示している。各子ノードは、既に図５のステップＳ１０１の通信の確立は終了している状態であるとする。また、親ノードＡ１では、図５のフローチャートのステップＳ１０７におけるプログラムのインストールが完了し（図５のステップＳ１０９のＹＥＳ）、通知部１１０が配信通知８０をブロードキャスト送信するところ（ステップＳ１１１）から、本フローは示してある。
【００８０】
図５のステップＳ１０３と同様に、親ノードＡ１の配下にある複数の子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎがブロードキャスト送信された配信通知８０をそれぞれ受信すると（ステップＳ１０３のＹＥＳ）、子ノードは、配信要求部１２２により自身の動作スケジュールに応じて、都合のよいタイミングでプログラム６０の配信要求８２を親ノードＡ１にユニキャスト送信する（ステップＳ１２３）。
【００８１】
図７では、子ノードＢ１１の配信要求８２が最も早く親ノードＡ１に到達している。その後、親ノードＡ１に発信された他の子ノードＢ１２、．．．、Ｂ１ｎの配信要求８２は、親ノードＡ１が受信し、配信要求８２を受信した子ノードの情報を記録しておいてもよい。しかし、配信要求８２が不要な構成においては、破棄してもよい。
【００８２】
親ノードＡ１において、配信要求受信部１３２により、複数の下位装置（子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎ）の中のいずれか１つから配信要求８２が得られた後に（ステップＳ１２５のＹＥＳ）、プログラム送信部１３４が、プログラム６０を分割した複数のブロック（ここでは、Ｍ個のブロック）を下位装置（子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎ）にブロードキャスト送信する（ステップＳ１３１〜ステップＳ１３７）。Ｍは２以上の整数とする。ここでは、たとえば、Ｍ＝１００とする。
【００８３】
ここで、複数の子ノード１２０の中のいずれか１つから配信要求８２が得られた時に、プログラム６０の配信が開始されるので、配信要求８２を送信する前に、ブロードキャスト送信されたプログラムを受信する子ノード１２０も存在することになる。この場合、プログラムを受信できる状態になっていれば、子ノード１２０は、そのままブロードキャスト送信されたプログラムを受信できる。
【００８４】
詳細には、まず、プログラム送信部１３４は、ブロック番号ｉに１をセットし（ステップＳ１３１）、ブロック送信開始を準備する。ここで、ｉは自然数である。そして、プログラム送信部１３４は、ブロック番号１のブロック（１）を子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎにブロードキャスト送信する（ステップＳ１３３）。子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎは、プログラム受信部１２４によりそれぞれブロック（１）を受信する（ステップＳ１４１）。そして、プログラム送信部１３４は、ブロック番号ｉをインクリメントする（ステップＳ１３５）。
【００８５】
ブロック番号ｉ＝２となり、ｉ＞Ｍではないので（ステップＳ１３７のＮＯ）、ステップＳ１３３に戻り、次のブロック（２）を子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎにブロードキャスト送信する。ここで、ブロック（ｉ）とブロック（ｉ＋１）の間の送信間隔は、少なくとも、子ノード側でブロック（ｉ）の受信処理を行う時間分（ｔ秒）空けるのが好ましい。子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎは、それぞれブロック（２）を受信する（ステップＳ１４１）。以降、プログラム６０のブロックを順次ブロードキャスト送信し、ｉ＞Ｍとなった時（ステップＳ１３７のＹＥＳ）、全てのブロックの送信が完了したことになるので、プログラムの送信処理を終了する。
このようにして、子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎはプログラム受信部１２４によりプログラム６０の全てのブロックを受信した後、本処理を終了する。
【００８６】
その後、各子ノードは、図５のステップＳ１０７以降の処理に進む。各子ノードは、プログラム導入部１０８により、それぞれプログラム６０のインストールを行う（図５のステップＳ１０７）。そして、プログラム６０のインストールが完了したら（ステップＳ１０９のＹＥＳ）、通知部１１０により、さらに下位のノード（たとえば、図１のノードＣ１１１〜Ｃ１１ｎ）に配信通知８０をブロードキャスト送信して通知する（ステップＳ１１１）。
【００８７】
このように、本実施形態の構成によれば、子ノードからプログラムの配信要求８２を受けた後に、プログラム６０を複数のブロックに分割して送信するので、子ノードの受信体勢が整った後に順次ブロックを受信させることができる。また、ブロードキャスト送信された配信通知８０に呼応した子ノードの配信要求８２を、１つでも受信すればプログラムの配信を開始するので、たとえ自身が配信要求８２を送信する前であっても他ノードが送信した配信要求８２によりプログラムの配信が始まれば、ブロードキャスト送信されたプログラムを受信できるので、配信要求８２を全ての子ノードが送信する必要がなく、通信負荷をより低減できる。
【００８８】
また、プログラム送信部１３４は、プログラム６０をそのまま送信するのではなく、サイズの小さいブロックに分けて送信するので、サイズが大きいプログラム６０の送信により、通信経路が占有されてしまうのを防ぐことができる。また、後述するように、ブロック単位で送受信すれば、通信障害などによりパケットロスが発生した場合にも、プログラム６０全体を再送するのではなく、不足するパケット（ブロック）のみ再送すればよいので、効率がよい。また、ブロックの送信は、各ノード（スマートメータ５０）が検針データをサーバ１０に送信する等の通常の処理の合間に細切れに行うことができ、各ノードの通常の処理を停滞させることもない。
【００８９】
（第１の実施の形態の変形態様２）
第１の実施の形態の変形態様２の通信装置について以下説明する。
図８は、本発明の実施の形態に係る通信装置の論理的な構成を示す機能ブロック図である。
図８は、通信装置の要部構成のみ示してある。図８では、通信装置が子ノード１５０として機能する場合の構成例と、親ノード１７０として機能する場合の構成例を区別してそれぞれ示している。本発明の通信装置は、子ノードと親ノードの両方になり得るので、たとえば、図１４に示すように、通信装置１８０として、両方の機能（親ノード１８２および子ノード１８４）を実現する構成要素を全て備えてもよい。図８では、説明上、各ノードが必要な構成のみ示してある。
【００９０】
本発明の通信装置は、プログラムを配信する親ノード１７０としての機能と、プログラムを受信してインストールする子ノード１５０としての機能の両方を備えることができる。本実施形態のマルチホップネットワークにおいて、子ノード１５０は、プログラムを受信してインストールすると、次は親ノード１７０となって次の階層（ホップ）の子ノード１５０にプログラムを配信する。
マルチホップネットワークの構成上（たとえば、最上位または最下位の階層のノード等）、親ノードと子ノードのどちらか一方にしかなり得ない通信装置は、その一方の機能のみを備えてもよい。
【００９１】
親ノードおよび子ノードの各機能は、プログラムにより実現でき、各機能を実現するプログラムを選択的に実行することで、対応する機能を実現することができる。これらの手法は、本発明の本質には関わらず、当業者にとって自明であるので、詳細な説明は省略する。
【００９２】
本実施形態の通信装置は、図６の通信装置とは、さらに、子ノード１５０が、受信した複数のブロックが、プログラム６０全体に対応する不足がないかを検出し、不足ブロックを親ノード１７０に再送させる点で相違する。
本実施形態において、通信装置の子ノード１５０は、図４の通信装置１００の通信部１０２と、配信通知受信部１０４と、プログラム導入部１０８と、通知部１１０（いずれも図８には図示しない）を備えるとともに、さらに、プログラム受信部１２４と、不足判定部１５４と、配信要求部１５６と、を備える。さらに、通信装置の親ノード１７０は、図４の通信装置１００の構成要素（図８には図示しない）と、図６の通信装置１３０のプログラム送信部１３４と、を備えるとともに、さらに、配信要求受信部１７２を備える。さらに、親ノード１７０は、後述する完了判定部１７４を備えてもよい。
【００９３】
図８に戻り、通信装置（子ノード１５０）において、プログラム受信部１２４は、プログラムを分割したブロードキャスト送信された複数のブロックを受信する。
不足判定部１５４は、複数ブロックに分割されたプログラム６０を受信すると、複数のブロックがプログラム全体に対する不足が無いかを判定する。
配信要求部１５６は、不足ブロックがあると判定された場合、不足ブロックの指定を含む配信要求８３を上位装置（親ノード１７０）に送信する。
なお、不足ブロックの受信タイミングは、上記実施形態の配信要求部１２２と同様に、自装置の動作状況または動作スケジュールに基づいて決定することができる。
【００９４】
ブロックの不足の判定方法は様々考えられるが、本実施形態では、以下に例示される方法で判定する。
たとえば、通知部１１０が、子ノード１５０に送信する配信通知に、送信対象の複数に分割したプログラムのブロック総数を予め含めて通知する。
また、親ノード１７０は、各ブロックに、ブロックの識別子を付して送信する。本実施形態では、ブロックには、１から順に整数の番号が付されるものとする。そして、子ノード１５０は、受信したブロックの識別子と、ブロック総数に基づいて、不足ブロックを特定すればよい。なお、データをブロック分割して送受信する方法は、本発明の本質に関わらず、当業者にとって自明であるので、詳細な説明は省略する。
【００９５】
通信装置（親ノード１７０）において、配信要求受信部１７２は、下位装置（子ノード１５０）から不足ブロックの指定を含む配信要求８３を受信する。
プログラム送信部１３４は、配信要求８３に呼応して、不足ブロックを下位装置（子ノード１５０）にブロードキャスト送信する。
【００９６】
プログラム送信部１３４は、不足ブロックをブロードキャスト送信してよい。親ノード１７０の配下の複数の子ノード１５０では、プログラム受信部１２４が、不足ブロックがなければ（配信要求８３を送信していなければ）、ブロードキャスト送信されたブロックを受信せずに無視すればよい。あるいは、子ノード１５０のプログラム受信部１２４が、一旦ブロックを受信した後、受信した不足ブロックの要否を判定し、必要なブロックをＲＡＭ４６に一時的に記憶し、不要なブロックは破棄する構成としてもよい。
【００９７】
なお、親ノード１７０において、配信要求受信部１７２が、配下の子ノード１５０の中のいずれか１つから配信要求８３を受信したとき、プログラム送信部１３４は、配信要求８３で指定された不足ブロックを配下の複数の子ノード１５０に対してブロードキャスト送信する。このとき、指定された不足ブロックのみを送信してもよいし、指定された不足ブロック以降のブロックを全て送信してもよい。
【００９８】
指定された不足ブロック以降のブロックを全て送信する構成とすれば、複数のブロックが受信できなかった場合に、子ノード１５０が配信要求８３を親ノード１７０に一度送信するだけで、不足ブロックを続けて受信できるので、効率がよい。配信要求８３に、不足ブロックのみの送信か、不足ブロック以降の全てのブロックの送信かを指定する情報をさらに含めてもよい。あるいは、配信要求８３に不足ブロックの範囲の指定を含めてもよい。
【００９９】
さらに、親ノード１７０において、通知部１１０が配信通知８０を送信後、所定の時間経過するまでに自身の配下の下位装置（子ノード１５０）からプログラム６０の配信要求８３（または配信要求８２）を受信しない場合、下位装置（子ノード１５０）のプログラム６０の受信が完了したと判定する完了判定部１７４を備える。
【０１００】
なお、完了の判定は、配信通知８０の送信後から所定時間経過後以外にも考えられ、たとえば、最初の配信要求８２（または配信要求８３）を子ノード１５０から受信した後から所定時間経過後でもよいし、プログラム６０の全てのブロックの最初の送信が完了した後から所定時間経過後でもよいし、最後のブロック送信（再送も含む）後から所定時間経過後でもよく、また、これらの少なくとも２つの組み合わせでもよく、特に限定されない。
【０１０１】
図９は、本実施形態の通信装置の動作の一例を示すフローチャートである。
図９のフローチャートは、図７のフローチャートと同様な手順に加え、さらに、ステップＳ１５１〜ステップＳ１５５を含む。以下、図７と異なる手順についてのみ説明する。
各子ノード１５０は、ステップＳ１４１で、プログラム受信部１２４によりブロック（Ｍ）まで受信した後（不図示）、不足判定部１５４により、受信したブロック番号を確認し、プログラム６０全体に対応するブロックが全て受信できたか否かを判定し、不足がないか否かを判定する（ステップＳ１５１）。不足があった場合（ステップＳ１５１のＹＥＳ）、ステップＳ１２３に戻り、自身のスケジュールに基づいて受信タイミングを決定し、決定したタイミングで、配信要求部１５６により、不足ブロックの指定を含む配信要求８３を親ノード１３０に送信する。
【０１０２】
このとき、親ノード１７０は、複数の子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎの中のいずれか１つから配信要求８３が得られた後に（ステップＳ１２５のＹＥＳ）、ブロックの再送処理を行う。
そして、配信要求８３を送信した子ノード１５０は、親ノード１７０からブロードキャスト送信されたブロックをプログラム受信部１２４により受信する（ステップＳ１４１）。不足ブロックがなくなるまでブロック受信を繰り返し、不足ブロックがなくなったとき（ステップＳ１５１のＮＯ）、本処理を終了する。
なお、不足ブロックがなかった子ノード１５０は、親ノード１７０からブロードキャスト送信されたブロックを破棄する（不図示）。
【０１０３】
なお、不足ブロックの指定を含む配信要求８３では、たとえば、ブロック番号ｊが指定されているものとする。ここでｊは自然数である。そこで、配信要求受信部１３２により、複数の下位装置（子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎ）の中のいずれか１つから配信要求８３を受信した場合（ステップＳ１２５のＹＥＳ）、ステップＳ１３１では、ブロック番号ｉにｊを設定する。そして、プログラム送信部１３４が、ブロック番号ｊのブロック（ｊ）を下位装置（子ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎ）にブロードキャスト送信する（ステップＳ１３１〜ステップＳ１３７）。この例では、ブロック番号ｊ以降のブロックについて、ブロックの再送処理がｉ＝Ｍになるまで、繰り返される。
【０１０４】
また、親ノード１７０は、ステップＳ１３７で、プログラム６０の全ブロックの送信が終了した（ｉ＞Ｍ）と判定されたとき（ステップＳ１３７のＹＥＳ）、配信通知８０送信後から所定時間が経過しているか否かを判定する（ステップＳ１５３）。所定時間が経過した場合（ステップＳ１５３のＹＥＳ）、完了判定部１７４が、プログラムの配信が完了したと判定し（ステップＳ１５５）、本処理を終了する。
所定時間が経過しない間は（ステップＳ１５３のＮＯ）、ステップＳ１２５に戻り、配下の子ノード１５０からの配信要求８２を待つ。この配信要求８２の受信の待機状態（ステップＳ１２５）は、所定時間が経過するまでの間（ステップＳ１５３のＮＯ）、持続される。
【０１０５】
この構成によれば、ブロック分割されて送信されたブロックが、プログラム全体に対応する不足があった場合にも、不足ブロックを再送要求できる。このとき、本実施形態では、ブロックを送信した直近の親ノードに対して配信要求を行えばよい。本実施形態では、直近の親ノードがブロードキャスト送信により不足ブロックの再送処理を行うことができるので、複数の階層（ホップ）にまたがってやりとりする必要がなく、通信負荷を軽減できる。
【０１０６】
また、本実施形態では、配信通知８０を送信後、送信後から所定時間経過した後、配信要求８３を受信しなくなったときに、下位装置のプログラムの受信が完了したものと判断し、処理を終了する。
本実施形態では、親ノードがその配下のノードのプログラム受信完了の判断を行うので、管理が簡単で効率がよい。
【０１０７】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係る通信装置およびその制御方法について、以下説明する。なお、本実施形態のプログラムは、上記実施形態と同様に、通信装置の制御方法を少なくとも１つのコンピュータに実行させるものであり、本実施形態での詳細な説明は省略する。
図１０は、本発明の実施の形態に係る通信装置２００の論理的な構成を示す機能ブロック図である。
本実施形態の通信装置２００は、上記実施形態の通信装置とは、プログラムのインストール後に子ノードへ送信する配信通知の送信タイミングを、同じ階層のノード間でずらす点で相違する。
【０１０８】
図１０の通信装置２００は、図４の上記実施形態の通信装置１００と同様な通信部１０２と、配信通知受信部１０４と、プログラム受信部１０６と、プログラム導入部１０８と、図６の通信装置１３０と同様な配信要求受信部１３２と、プログラム送信部１３４とを備えるとともに、さらに、通知部２１０を備える。
図１０では、図４の通信装置１００と図６の通信装置１３０の構成に通知部２１０を備える構成としているが、他の実施形態の構成に通知部２１０を備える構成とすることもできる。各構成は、矛盾のない範囲で組み合わせることができる。
【０１０９】
通信装置２００において、通知部２１０は、プログラム６０のインストール完了後に、下位装置に配信通知８０を送信する際、マルチホップネットワークにおける同一階層の他の通信装置と異なるタイミングで設定された送信タイミングで配信通知を送信する。
【０１１０】
具体的には、たとえば、図１の同一階層のノードＢ１１、Ｂ１２、．．．、Ｂ１ｎが、それぞれ親ノードＡ１から受信したプログラム６０をインストールした後、各ノードＢ１１、Ｂ１２、．．．、Ｂ１ｎは、異なるタイミングで次の階層の子ノードＣ１ｎｎに配信通知８０をブロードキャスト送信する。
【０１１１】
配信通知８０の送信タイミングは、ノード毎に決定すればよく、たとえば、通知部２１０が、ノードの識別子、またはＭＡＣ（Media Access Control）アドレス等を元に、所定の関数を用いて送信タイミングを算出してもよい。送信タイミングは、インストール完了後から送信までの待ち時間Ｔ（秒）等で設定できる。あるいは、１台のゲートウェイ１４、または親ノードの配下に含まれる子ノードの台数の上限をｎ台（ｎは自然数）とし、通知部２１０が単純に各ノードに０〜（ｎ−１）の範囲で番号ｍを割り振り（ｍは整数）、ｍ番目のノードの待ち時間をＴ×ｍ（秒）として求めてもよい。
【０１１２】
あるいは、１台のゲートウェイ１４、または親ノードの配下に含まれる子ノードの台数の上限をｎ台（ｎは自然数）とし、通知部２１０が０〜（ｎ−１）の範囲で乱数を生成し（ｍは整数）、得られた値ｍを元に、待ち時間をＴ×ｍ（秒）を求め、各ノードに割り振ってもよい。送信タイミングが偶然一致する可能性もあるが、本発明では、そのような偶然の一致は許容してよい。
【０１１３】
次に、本実施形態の通信装置２００の制御方法について、以下説明する。
図１１は、本実施形態の通信装置２００の動作の一例を示すフローチャートである。
本発明の実施の形態に係る制御方法は、通信装置２００の制御方法であり、通信装置２００を実現するコンピュータ４０（図２または図３）により実行される制御方法である。
本実施形態の通信装置２００の動作は、図５の上記実施形態のフローチャートと同様なステップＳ１０１〜ステップＳ１１１を含むとともに、さらに、ステップＳ２０１を有する。
プログラムのインストール完了した後（ステップＳ１０９のＹＥＳ）、通知部２１０が、送信イミングまで待機する（ステップＳ２０１）。そして、送信タイミングになったとき、通知部２１０が配信通知８０をブロードキャスト送信する（ステップＳ１１１）。
【０１１４】
この構成によれば、プログラムを受信し、インストールしたノードが、次の階層の子ノードにプログラムを転送する際、配信通知を同一階層の他のノードと異なるタイミングで送信することができるので、各ノード間の無線トラフィックの輻輳を、簡単な構成で低減できる。無線トラフィックの輻輳を防止するために、たとえば、電波の干渉状況等の情報から送信タイミングを決めることも可能であるが、演算処理が煩雑なため、本実施形態では、簡単な構成で送信タイミングを決定し、無線トラフィックの輻輳の低減を図ることができる。
【０１１５】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
（他の実施形態１：通信経路の変更に対応した形態）
上記実施形態では、マルチホップネットワークのルートが配信途中で変更にならないケースについて説明した。以下に、マルチホップネットワークのルートが配信途中で変更について説明する。
他の実施形態１の通信装置は、プログラムを配信している途中で、マルチホップネットワークのルートの変更が発生した場合に対応できる構成を有する。
【０１１６】
ルート変更（親子関係の変更）が起こる原因は、たとえば、ネットワーク内の電波状況の悪化、ノードの故障、ノードの新設等が考えられる。
たとえば、電波状況が悪化すると、ブロックを受信していた子ノードは、（Ａ）そのまま孤立する、（Ｂ）電波状況のよりよい他の親ノードの配下に変更になる。（Ｂ）のケースにおいては、新たに配下に入った、他の親ノードからブロックを受信すればよい。最初の親ノードから受信したブロックと、新たな親ノードから受信したブロックを合わせてもなおプログラム全体を構成するブロックに不足がある場合には、上記第１実施形態２の構成のように、新たな親ノードに不足ブロックの配信要求をすればよい。なお、重複しているブロックは破棄すればよい。
【０１１７】
また、他のケースとして、（Ｃ）配下の子ノードが故障した場合には、その子ノードが復旧した後に、故障中に受信できなかった不足分を親ノードに再送要求すればよい。これは、上記第１実施形態の変形態様２の構成で対応できる。
【０１１８】
（他の実施形態２：異なるプログラムを配信する形態）
上記実施形態では、配信されるプログラムは、マルチホップネットワーク内で共通のものとして説明してきた。ここでは、マルチホップネットワーク内で、ノードの機器の種類が違っていたり、ノードによってインストール対象のプログラムが異なる場合の構成について説明する。
【０１１９】
図１２は、本発明の他の実施の形態に係る通信装置４００の論理的な構成を示す機能ブロック図である。
なお、図１２は、通信装置４００の要部構成のみを示してある。通信装置４００は、図示していない他の実施形態の少なくともいずれか１つと同様な構成をさらに含んでもよく、各構成は矛盾のない範囲で組み合わせることができる。たとえば、通信装置４００は、図８のプログラム受信部１２４を備える（図１２には不図示）。
【０１２０】
通信装置４００において、配信通知受信部４０２は、プログラムの属性情報を含む配信通知８６を受信する。
そして、通信装置４００は、受信された配信通知８６に含まれる属性情報と自装置のプログラムに関する属性情報とに基づいて、プログラム受信部１２４により受信されたプログラムをインストールするか否かを判定する対象判定部４０８と、を備える。
【０１２１】
通知部４０４は、対象判定部４０８による判定結果に基づいて、プログラムのインストールの完了後に、属性情報を含む配信通知８６を送信するか、プログラムのインストールの完了に関わらず、属性情報を含む配信通知８６を送信するかを切り替える。
なお、本実施形態の通信装置４００は、自装置のプログラムの属性情報を記憶する記憶部４０６をさらに含む。記憶部４０６は、図２のＲＯＭ４４、ＲＡＭ４６、またはストレージ（不図示）、あるいは、ＣＰＵ４２内の所定のレジスタ（不図示）に相当する。
【０１２２】
属性情報は、更新対象となるプログラムの種別とバージョンの情報の少なくとも一方を含む。さらに、属性情報に、配信される更新後のプログラムの種別とバージョンの情報の少なくとも一方を含んでもよい。さらに、この属性情報は、プログラムを分割して配信される各ブロックにも分割して送信されるのが好ましい。プログラムの種別は、更新対象となる対応機器の型名、プログラムの名称などを含む。
【０１２３】
このように構成された本実施形態の通信装置４００の動作について、以下説明する。
図１３は、本実施形態の通信装置４００の動作の一例を示すフローチャートである。
まず、配信通知受信部４０２が、プログラムの属性情報を含む配信通知８６を受信する（ステップＳ４０１）。そして、図５の上記実施形態のフローチャートと同様なステップＳ１０５で、プログラム受信部１２４が上位ノードからプログラム６０を受信する（ステップＳ１０５）。
【０１２４】
そして、対象判定部４０８が、記憶部４０６に記憶されているプログラムの属性情報を参照し、ステップＳ４０１で受信した配信通知８６に含まれる属性情報と比較し、配信されるプログラム６０を、自装置にインストールするか否かを判定する（ステップＳ４０３）。
【０１２５】
たとえば、更新対象のプログラムの種別（たとえば、対応機器）の情報のみで判定する場合には、自装置のプログラムの種別と、更新対象のプログラムの種別（たとえば、対応機器）の情報が同じで、かつ、更新対象のバージョンが自装置のバージョンより新しい場合にインストール対象と判定することができる。また、マルチホップネットワーク内の機器が全て同じ種別の場合には、更新対象のプログラムのバージョン情報のみで判定でき、更新対象のバージョンの情報と自装置のバージョンの情報が一致した場合にインストール対象と判定することができる。ただし、更新対象のバージョンが自装置のバージョンより古い場合にインストール対象と判定することは排除されず、強制的に以前のバージョンに戻す場合も含んでよい。
【０１２６】
判定結果が、プログラムを自装置にインストールするとの判定であった場合は（ステップＳ４０３のＹＥＳ）、図５のフローチャートのステップＳ１０７〜ステップＳ１１１と同様に、プログラム導入部４１０が、受信したプログラム６０を自身にインストールする（ステップＳ１０７）。そして、プログラムのインストールが完了したら（ステップＳ１０９のＹＥＳ）、通知部４０４が、下位ノードに配信情報を含む配信通知８６を通知する（ステップＳ１１１）。
【０１２７】
一方、判定結果が、プログラムを自装置にインストールしないとの判定であった場合は（ステップＳ４０３のＮＯ）、ステップＳ１０７とステップＳ１０９のプログラムのインストール処理は行わずに、ステップＳ１１１に進む。通知部４０４が、下位ノードに属性情報を含む配信通知８６を送信し、ステップＳ１０５で受信したプログラム６０を転送する処理に進む。インストール対象でないノードでは、プログラムのインストールは行わないが、プログラムデータは受信して保存し、配下のノードへの配信は行う。
【０１２８】
以上説明したように、本実施形態の通信装置４００では、配信通知８６に、配信されるプログラム６０の種別やバージョン情報を含めて送信し、自装置のプログラム情報と比較して、受信したプログラム６０を自装置にインストールするか否かを判定する。そして、インストール対象外の場合は、通信装置４００は、受信したプログラム６０をインストールせずに、そのままプログラム６０を下位ノードに転送すべく、下位ノードに対して配信通知８６を送信する。
【０１２９】
これにより、本実施形態の通信装置４００は、マルチホップネットワーク内に異なる種別の機器や、異なるバージョンのプログラム６０がインストールされている機器が混在しているような場合であっても、効率よく適切なプログラム６０を自装置にインストールし、かつ他の装置用のプログラムは転送することができる。
【０１３０】
（他の実施形態３）
図１９は、本発明の実施の形態に係る通信装置５００の論理的な構成を示す機能ブロック図である。
本実施形態の通信装置５００は、他の上記実施形態とは、自装置にインストールされるプログラム６０を上位装置から受信することに限定されない点で相違する。
本実施形態の通信装置５００は、図４の上記実施形態の通信装置１００と同様な、通信部１０２と、配信通知受信部１０４と、プログラム導入部１０８と、通知部１１０とを備える。
【０１３１】
具体的には、通信装置５００は、マルチホップネットワークにおける上位装置および下位装置と通信を行う通信部１０２と、上位装置から、プログラム６０の配信通知８０を受信する配信通知受信部１０４と、プログラム６０を自装置（通信装置５００）にインストールするプログラム導入部１０８と、プログラム６０のインストール完了後に、下位装置に配信通知を送信する通知部１１０と、を備える。
【０１３２】
本発明において、上位装置から、プログラム６０の配信通知８０は、プログラム６０より前に配信されるが、通信装置における配信通知８０とプログラム６０の受信タイミングは、配信タイミング（配信通知８０の後にプログラム６０を受信）と同じになるとは限らない。通信経路の状況によっては、配信通知８０とプログラム６０が同時またはプログラム６０を配信通知８０より前に受信するケースも考えられ、本発明ではそのようなケースも排除されない。
【０１３３】
また、たとえば、複数のブロックに分割して配信されるプログラム６０の先頭のブロックの前に配信通知８０を付加して配信する形態も排除されない。また、本発明において、マルチホップネットワークの複数のノード（通信装置５００）の中に、配信通知８０を受信する以前に、直近の上位装置、または他の通信装置、サーバ、あるいは、外部メディアからプログラム６０を取得し、自装置（図２のコンピュータ４０）のＲＡＭ４６（図２）またはストレージ（不図示）に格納されているノード（通信装置５００）が含まれていることも排除されない。その場合、そのノードは、配信通知８０を受信後に、既に取得済みのプログラム６０をインストールしてもよい。そして、プログラム６０のインストール完了後に、下位装置に配信通知８０を送信し、その後、下位装置にプログラム６０を送信してもよい。
【０１３４】
本実施形態のコンピュータプログラム７０は、通信装置５００（スマートメータ５０）を実現させるためのコンピュータ４０に、マルチホップネットワークにおける上位装置（ゲートウェイ１４または上位のスマートメーター５０）および下位装置（下位のスマートメータ５０）と通信を行う手順、上位装置から、プログラム６０の配信通知８０を受信する手順、プログラム６０を自装置（通信装置５００（コンピュータ４０））にインストールする手順、プログラム６０のインストール完了後に、下位装置に配信通知８０を送信する手順、を実行させるように記述されている。
【０１３５】
図２０は、本実施形態の通信装置５００の動作の一例を示すフローチャートである。
本発明の実施の形態に係る制御方法は、通信装置５００の制御方法であり、通信装置５００を実現するコンピュータ４０により実行される制御方法である。
本実施形態の制御方法は、通信装置５００が、マルチホップネットワークにおける上位装置および下位装置と通信を行い（ステップＳ１０１）、上位装置から、プログラム６０の配信通知８０を受信し（ステップＳ１０３）、プログラム６０を自装置にインストールし（ステップＳ１０７）、プログラムのインストール完了後に（ステップＳ１０９のＹＥＳ）、下位装置に配信通知８０を送信する（ステップＳ１１１）。
【０１３６】
本実施形態の通信装置５００によれば、上記実施形態と同様に、マルチホップネットワークで、プログラム６０のインストールを行う場合に、ゲートウェイ１４（またはサーバ１０）が下位ノード全ての管理をするのではなく、直近の親子関係にあるノード間でデータ配信を完了させて、次の下位階層に順次転送を繰り返していくことができる。
これにより、本実施形態の通信装置５００は、マルチホップネットワーク内の複数階層のノードを跨ぐような不要なトラフィックの発生を抑制できるとともに、上位側の管理負荷を軽減でき、効率のよいプログラムの配信が可能になる。また、本実施形態の通信装置５００は、プログラムの配信処理を階層毎に自律的に管理できる。
【０１３７】
（他の実施形態４）
図２１は、本発明の実施の形態に係る通信装置６００の論理的な構成を示す機能ブロック図である。
本実施形態の通信装置６００は、他の上記実施形態の通信装置とは、プログラム６０の転送が、上位装置から下位装置への転送に限定されない点で相違する。
【０１３８】
通信装置６００は、他の装置から、プログラム６０の配信通知８０を受信する配信通知受信部６０４と、プログラム６０を自装置にインストールするプログラム導入部１０８と、プログラム６０のインストール完了後に、他の装置以外の装置に対して、配信通知８０を送信する通知部６１０と、を備える。
【０１３９】
本実施形態の通信装置６００の制御方法は、少なくとも１つのコンピュータにより実行される通信装置６００が、他の装置から、プログラム６０の配信通知８０を受信し、プログラム６０を自装置にインストールし、プログラム６０のインストール完了後に、他の装置以外の装置に対して、配信通知８０を送信することを含む。
【０１４０】
本実施形態のコンピュータプログラムは、通信装置６００の制御方法を少なくとも１つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、通信装置６００上で、その制御方法を実施させるコンピュータプログラムコードを含む。
【０１４１】
本実施形態の通信装置６００によれば、プログラム６０をある他のノードから別の他のノードに順次転送していく際に、ゲートウェイ１４（またはサーバ１０）が全てのノードの管理をするのではなく、直近のノード間でデータ配信を完了させて、次の別の他のノードに順次転送を繰り返していくことができる。
これにより、本実施形態の通信装置６００は、複数のノードを跨ぐような不要なトラフィックの発生を抑制できるとともに、プログラム配信側の管理負荷を軽減でき、効率のよいプログラム配信が可能になる。また、本実施形態の通信装置６００は、プログラムの配信処理を直近のノード間毎に自律的に管理できる。
【実施例】
【０１４２】
以下、本発明の上記実施形態の実施例について、比較例と比較しながら説明する。
（実施例１）
本実施例は、第１の実施形態の実施例であり、各ノードは、図１４の第１実施形態の通信装置１８０の構成を有するものとする。また、各通信装置１８０は、スマートメーター５０であるとする。
図１５は、本発明の実施例１の通信システムの動作フローを示す図である。なお、図中、破線の矢印は、メッセージをユニキャスト送信していることを示し、二重線の矢印は、メッセージをブロードキャスト送信していることを示している。【０１４３】
まず、サーバ１０（ＳＶ１）が、プログラム６０の更新通知をゲートウェイ１４（ＧＷ１）に送信する（ステップＳ５０１）。ここで、「更新通知」は、上記実施形態で説明した「配信通知」に相当する。ゲートウェイ１４は、更新通知に呼応して、プログラム受信部１２４により、サーバ１０にＦＴＰ（File Transfer Protocol）でアクセスし、プログラムをダウンロードする（ステップＳ５０３）。そして、ゲートウェイ１４は、プログラムのダウンロードが終了すると、通知部１１０により、ダウンロードが済んだことをサーバ１０に応答をする（ステップＳ５０５）。【０１４４】
そして、ゲートウェイ１４は、親ノード（図中、「Ｐ（Parent）」と示す）として、通知部１１０により、配下の複数の子ノードＡ１、Ａ２、．．．、Ａｎ（図中、「Ｃ（Child）」と示す）に、プログラムの更新通知をブロードキャスト送信する（ステップＳ５０７）。子ノードＡ１、Ａ２、．．．、Ａｎは、各自のスケジュールを確認し（ステップＳ５０９）、都合のよいタイミングで、プログラムの配信要求をゲートウェイ１４に送信する（ステップＳ５１１）。ゲートウェイ１４は、配信要求受信部１３２により、少なくとも１つの子ノードから配信要求を受信すると、プログラム送信部１３４によりプログラムの配信を開始する。プログラムは、複数のブロックに分割して、順に複数の子ノードにブロードキャスト送信される（ステップＳ５１３）。このとき、各ブロック（ｉ）は、ｔ秒間隔で送信される。各子ノードは、プログラム受信部１２４により、ブロックを順に受信し、ＲＡＭ４６に一時的に記憶する。ここで、ｉは１〜Ｍの自然数である。【０１４５】
子ノードは、不足判定部１５４により、プログラム配信通知に含まれるブロック総数と、受信したブロック数とブロック番号から、不足ブロックを検出する（ステップＳ５１５）。不足ブロックがあれば（ステップＳ５１５のＹ）、スケジュールを確認し（ステップＳ５０９）、都合のよいタイミングで再送要求をゲートウェイ１４に送信する（ステップＳ５１１）。【０１４６】
ゲートウェイ１４は、配信要求受信部１７２により、子ノードから不足ブロックの指定を含む配信要求を受信すると、プログラム送信部１３４により、配信要求で指定された不足ブロックをブロードキャスト送信する（ステップＳ５１３）。
子ノードは、プログラム受信部１２４により、再送されたブロックを受信し、ＲＡＭ４６に一時的に記憶する。また、子ノードは、受信したブロックが不要であれば破棄する。【０１４７】
そして、各子ノードは、全てのブロックがそろったら（ステップＳ５１５のＮ）、プログラム導入部１０８によりプログラムをインストールして更新する（ステップＳ５１７）。インストールが完了したら、各子ノードＡ１、Ａ２、．．．、Ａｎは、次は、親ノードとして、通信部１０２により、更新通知を配下の子ノードＢ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、．．．、Ｂｎ１〜Ｂｎｎ等にそれぞれブロードキャスト送信する（ステップＳ５１９）。【０１４８】
なお、ゲートウェイ１４は、完了判定部１７４により、配信通知を送信した後、所定時間経過しても配信要求が受信されなくなった場合（ステップＳ５２１のＹ）、配下（子ノードＡ１〜Ａｎ）へのプログラム配信処理が完了したと判定し、処理を終了する。所定時間が経過するまでは（ステップＳ５２１のＮ）、下位ノード（子ノードＡ１〜Ａｎ）から配信要求が来るのを待つ。【０１４９】
配信通知受信部１０４により配信通知を受信した子ノードＢ１１〜Ｂ１ｎ等は、それぞれ上記ノードＡ１〜Ａｎと同様に動作する。そして、階層毎に、プログラムの配信とインストールが行われ、インストールが完了すると、次の下位階層へと、さらに進んでいく。このようにして、マルチホップネットワーク内の全てのノードにプログラムが配信される。【０１５０】
（比較例１）
図１６および図１７は、本発明の比較例１の通信システムの動作フローを示す図である。
まず、サーバ１０（ＳＶ１）が、プログラム６０の更新通知をゲートウェイ１４（ＧＷ１）に送信し（ステップＳ５０１）、ゲートウェイ１４がプログラムをダウンロードし（ステップＳ５０３）、サーバ１０に応答をする（ステップＳ５０５）手順までは図１５の実施例１と同様である。【０１５１】
その後、ゲートウェイ１４が、プログラムを下位ノードに配信する手順が実施例１とは異なる。比較例１では、ゲートウェイ１４のプログラム送信部は、プログラムをＭ個のブロック（ｉ）に分割して子ノードＡ１〜Ａｎに順次ブロードキャスト送信する（ステップＳ５３１）。ここで、ｉは、１〜Ｍの自然数である。また、ここで、ブロック（ｉ）は、所定の時間間隔（たとえば、（ｔ＋Ｔ）秒）で順次送信される。【０１５２】
各子ノードＡ１〜Ａｎは、受信したブロック（ｉ）を、さらに、ｔ秒後に、その配下の下位ノードＢ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、Ｂｎ１〜Ｂｎｎ等にそれぞれブロードキャスト送信する（ステップＳ５３３）。上位ノードからブロック（ｉ）を受信する毎に、ｔ秒後に、その配下の下位ノードにそれぞれブロードキャスト送信する。【０１５３】
さらに、各子ノードＢ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、Ｂｎ１〜Ｂｎｎが、受信したブロック（ｉ）を、その配下の下位ノードＣ１１１〜Ｃ１１ｎ、Ｃ１２１〜Ｃ１２ｎ、Ｃ１ｎ１〜Ｃ１ｎｎ、Ｃ２１１〜Ｃ２１ｎ、．．．、Ｃｎｎ１〜Ｃｎｎｎ等に、それぞれブロードキャスト送信する（ステップＳ５３５）。【０１５４】
そして、各ノードＡ１〜Ａｎ、Ｂ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、Ｂｎ１〜Ｂｎｎ等は、それぞれ全ブロックの受信および送信が完了した後、プログラムを自身にインストールして更新する（ステップＳ５３７）。そして、インストールしたプログラムのバージョン情報を、各ノードＡ１〜Ａｎ、Ｂ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、Ｂｎ１〜Ｂｎｎ等はそれぞれ上位ノードに応答メッセージとして送信する（ステップＳ５３９）。このバージョン応答メッセージは、さらに、上位ノードへ転送され、最終的にゲートウェイ１４まで送信される。【０１５５】
そして、ゲートウェイ１４は、バージョン応答メッセージが返信されないノードが存在するか否かを判定する。そして、ゲートウェイ１４は、応答のないノードが存在する場合には、図１７に示すように、そのノードに対して、不足ブロックを問合せる（ステップＳ５４１）。たとえば、ここでは、図１６に示すように、ノードＣ１１１が応答していなかったものとする。
不足ブロック問合せメッセージは、該当するノードＣ１１１まで転送され、該当するノードＣ１１１が応答し、不足ブロックの情報を上位ノードに送信し、中間のノードが中継して、ゲートウェイ１４まで転送する（ステップＳ５４３）。【０１５６】
そして、ゲートウェイ１４は、応答された情報に基づいて、不足ブロックをノードＣ１１１に送信する（ステップＳ５４５）。このブロックは、ノードＡ１およびノードＢ１１が中継してノードＣ１１１まで転送される。そして、ノードＣ１１１は、不足ブロックを全て受信し終わると、プログラムを自身にインストールして更新する（ステップＳ５３７）。そして、インストールしたプログラムのバージョン情報を、ノードＣ１１１が応答メッセージとして送信する（ステップＳ５３９）。このバージョン応答メッセージは、ノードＢ１１およびノードＡ１が中継して、最終的にゲートウェイ１４まで送信される。【０１５７】
そして、ゲートウェイ１４は、全てのノードからバージョン応答メッセージが返信されるまで、不足ブロック問合せと送信の処理を繰り返す。そして、ゲートウェイ１４は、全てのノードからバージョン応答メッセージが返信された場合、プログラムの更新が正常に終了したと判定し、プログラムの更新処理を完了する。【０１５８】
比較例１では、もし、ノードＡ２等の比較的上位のノードで不足ブロックが生じた場合、その下位のノードＢ２１〜Ｂ２ｎ、Ｃ２１１〜Ｃ２１ｎ、．．．、Ｃ２ｎ１〜Ｃ２ｎｎ等、多数の下位ノードでも当該ブロックを受信できない状態となる。つまり、あるノードでの受信エラーの影響は、その配下の複数の下位ノードにも次々と波及してしまう。さらに、ゲートウェイ１４が一括して各ノードの更新状態を管理しているため、不足ブロックの再送処理時には、不足ブロックの問合せ、応答、および送信等のメッセージを、途中のノードが中継しながら、該当する下位ノードとゲートウェイ１４間でやり取りしなければならない。【０１５９】
上述した実施例１では、プログラムの不足ブロックがあった場合にも、比較例１のように、下位ノードとゲートウェイ１４がメッセージをやり取りする必要がない。実施例１では、プログラムの配信処理を階層毎に自律的に管理できる。そして、実施例１では、直近の親子関係にあるノード間でデータ配信を完了させることができるので、比較例１に比べて、不要なトラフィックの発生を抑制できるとともに、上位側の管理負荷を軽減でき、効率のよいプログラム配信が可能になることが分かる。【０１６０】
（実施例２）
本実施例は、第２の実施形態の実施例である。各ノードは、図１４の第１実施形態の通信装置１８０の通知部１１０以外の構成と、さらに、図１０の通信装置２００の通知部２１０を有するものとする。実施例２は、プログラムのインストール後に子ノードへ送信する配信通知の送信タイミングを、同じ階層のノード間でずらす構成を有する。また、本実施例でも、各通信装置１８０は、スマートメーター５０であるとする。
図１８は、本発明の実施例２の通信システムの動作フローを示す図である。なお、図中、破線の矢印は、ユニキャストでメッセージを送信していることを示し、二重線の矢印は、メッセージをブロードキャスト送信していることを示している。【０１６１】
実施例２において、サーバ１０からプログラム６０の更新通知がゲートウェイ１４に送信され（ステップＳ５０１）、ノードＡ１〜Ａｎに配信されて、それぞれプログラム６０がインストールされる（ステップＳ５１７）までの手順は、実施例１と同じである。
そして、インストールが完了した各子ノードＡ１〜Ａｎは、次は、親ノードとして、通信部１０２により、更新通知を配下の子ノードＢ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、．．．、Ｂｎ１〜Ｂｎｎ等にブロードキャスト送信するが、その送信タイミングが通知部２１０によりノード毎に異なる値（たとえば、Ｔ１、Ｔ２、．．．、Ｔｎ）に設定される。【０１６２】
図１８の例では、ノードＡ１は、インストール完了後Ｔ１秒経過後に、通知部２１０により配下の子ノードＢ１１〜Ｂ１ｎに配信通知を送信する（ステップＳ５５１）。ノードＡ２は、インストール完了後Ｔ２秒経過後に、通知部２１０により配下の子ノードＢ２１〜Ｂ２ｎ（図１８には不図示）に配信通知を送信する（ステップＳ５５３）。ノードＡｎは、インストール完了後Ｔｎ秒経過後に、通知部２１０により配下の子ノードＢｎ１〜Ｂｎｎ（図１８には不図示）に配信通知を送信する（ステップＳ５５５）。このように、本実施例では、各ノードＡ１〜Ａｎから下位ノードに配信通知が同じタイミングで送信されないようになっている。【０１６３】
配信通知受信部１０４により配信通知を受信した子ノードＢ１１〜Ｂ１ｎ、Ｂ２１〜Ｂ２ｎ、Ｂｎ１〜Ｂｎｎ等は、それぞれ上記ノードＡ１〜Ａｎと同様に動作する。そして、階層毎に、プログラムの配信とインストールが行われ、インストールが完了すると、次の下位階層に、さらにそれぞれ異なる送信タイミングで配信通知を送信し、本プログラム更新処理が各ノードで行われる。このようにして、マルチホップネットワーク内の全てのノードにプログラムが配信される。【０１６４】
本実施例では、プログラムを受信してインストールしたノードが、次の階層の子ノードにプログラムを転送する際、配信通知を同一階層の他のノードと異なるタイミングで送信することができるので、下位ノードへのプログラムの配信タイミングをずらすことができ、各ノード間の無線トラフィックの輻輳を、簡単な構成で低減できる。【０１６５】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。【０１６６】
以下、参考形態の例を付記する。
１．  コンピュータに、
マルチホップネットワークにおける上位装置および下位装置と通信を行う手順、
前記上位装置から、プログラムの配信通知を受信する手順、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信する手順、
受信した前記プログラムを自装置にインストールする手順、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する手順、
を実行させるためのプログラム。
２．  前記配信通知を受信する手順で、前記上位装置から受信したブロードキャストメッセージが前記配信通知か否かを判定する手順、
前記配信通知である場合に、前記配信通知を前記下位装置にブロードキャスト転送する手順、
をコンピュータに実行させるための、１．に記載のプログラム。
３．  前記配信通知を受信すると、自装置の動作状況または動作スケジュールに基づいて決定した受信タイミングで、前記プログラムの配信要求を前記上位装置に送信する手順、
をコンピュータに実行させるための、１．または２．に記載のプログラム。
４．  前記配信要求を前記上位装置に送信する際、自装置の動作負荷に基づいて前記受信タイミングを決定する手順、
をコンピュータに実行させるための、３．に記載のプログラム。
５．  前記配信要求を前記上位装置に送信する際、検針データの送信処理時以外に前記受信タイミングを決定する手順、
をコンピュータに実行させるための、３．に記載のプログラム。
６．  複数の前記下位装置の中のいずれか１つから前記プログラムの配信要求を受信する手順、
前記配信要求を受信すると、複数のブロックに分割した前記プログラムを前記下位装置にブロードキャスト送信する手順、
をコンピュータに実行させるための、１．から５．いずれか１つに記載のプログラム。
７．  前記複数のブロックに分割されたプログラムを受信すると、前記複数のブロックが前記プログラム全体に対する不足が無いかを判定する手順、
不足ブロックがあると判定された場合、前記不足ブロックの指定を含む配信要求を前記上位装置に送信する手順、
をコンピュータに実行させるための、１．から６．いずれか１つに記載のプログラム。
８．  前記下位装置に前記配信通知を送信する際、前記下位装置に送信する前記配信通知に複数に分割したプログラムのブロック総数を含める手順、
をコンピュータに実行させるための、７．に記載のプログラム。
９．  前記配信通知を送信後、所定の時間経過するまでに自身の配下の前記下位装置から前記プログラムの配信要求を受信しない場合、前記下位装置の前記プログラムの受信が完了したと判定する手順、
をコンピュータに実行させるための、１．から８．いずれか１つに記載のプログラム。
１０．  前記マルチホップネットワークにおける同一階層の他の通信装置と異なるタイミングで設定された送信タイミングで前記配信通知を送信する手順、
をコンピュータに実行させるための、１．から９．いずれか１つに記載のプログラム。
１１．  前記プログラムを複数のブロックに分けて前記下位装置に送信する手順、
前記下位装置から不足ブロックの指定を含む配信要求を受信する手順、
前記配信要求に呼応して、前記不足ブロックを前記下位装置にブロードキャスト送信する手順、
をコンピュータに実行させるための、１．から１０．いずれか１つに記載のプログラム。
１２．  前記配信通知を受信する際、前記プログラムの属性情報を含む配信通知を受信する手順、
前記配信通知に含まれる属性情報と、自装置のプログラムに関する属性情報とに基づいて、受信した前記プログラムをインストールするか否かを判定する手順、
をコンピュータに実行させるための、１．から１１．いずれか１つに記載のプログラム。【０１６７】
１３．  通信装置が、
マルチホップネットワークにおける上位装置および下位装置と通信を行い、
前記上位装置から、プログラムの配信通知を受信し、
前記配信通知を受信した後に、前記上位装置から前記プログラムを受信し、
受信した前記プログラムを自装置にインストールし、
前記プログラムのインストール完了後に、前記下位装置に前記配信通知を送信する、
通信装置の制御方法。
１４．  前記通信装置が、
前記配信通知を受信した際、前記上位装置から受信したブロードキャストメッセージが前記配信通知か否かを判定し、
前記配信通知である場合に、前記下位装置に前記配信通知をブロードキャスト転送する、
１３．に記載の通信装置の制御方法。
１５．  前記通信装置が、
前記配信通知を受信すると、自装置の動作状況または動作スケジュールに基づいて決定した受信タイミングで、前記プログラムの配信要求を前記上位装置に送信する、
１３．または１４．に記載の通信装置の制御方法。
１６．  前記通信装置が、
前記配信要求を前記上位装置に送信する際、自装置の動作負荷に基づいて前記受信タイミングを決定する、
１５．に記載の通信装置の制御方法。
１７．  前記通信装置が、
前記配信要求を前記上位装置に送信する際、検針データの送信処理時以外に前記受信タイミングを決定する、
１５．に記載の通信装置の制御方法。
１８．  前記通信装置が、
複数の前記下位装置の中のいずれか１つから前記プログラムの配信要求を受信し、
前記配信要求を受信すると、複数のブロックに分割した前記プログラムを前記下位装置にブロードキャスト送信する、
１３．から１７．いずれか１つに記載の通信装置の制御方法。
１９．  前記通信装置が、
前記複数のブロックに分割されたプログラムを受信すると、前記複数のブロックが前記プログラム全体に対する不足が無いかを判定し、
不足ブロックがあると判定された場合、前記不足ブロックの指定を含む配信要求を前記上位装置に送信する、
１３．から１８．いずれか１つに記載の通信装置の制御方法。
２０．  前記通信装置が、
前記配信要求を送信する際、前記下位装置に送信する前記配信通知に複数に分割したプログラムのブロック総数を含める、
１９．に記載の通信装置の制御方法。
２１．  前記通信装置が、
前記配信通知を送信後、所定の時間経過するまでに自身の配下の前記下位装置から前記プログラムの配信要求を受信しない場合、前記下位装置の前記プログラムの受信が完了したと判定する、
１３．から２０．いずれか１つに記載の通信装置の制御方法。
２２．  前記通信装置が、
前記マルチホップネットワークにおける同一階層の他の通信装置と異なるタイミングで設定された送信タイミングで前記配信通知を送信する、
１３．から２１．いずれか１つに記載の通信装置の制御方法。
２３．  前記通信装置が、
前記プログラムを複数のブロックに分けて前記下位装置に送信し、
前記下位装置から不足ブロックの指定を含む配信要求を受信し、
前記配信要求に呼応して、前記不足ブロックを前記下位装置にブロードキャスト送信する、
１３．から２２．いずれか１つに記載の通信装置の制御方法。
２４．  前記通信装置が、
前記上位装置から、前記プログラムの属性情報を含む配信通知を受信し、
前記配信通知に含まれる属性情報と、自装置のプログラムに関する属性情報とに基づいて、受信された前記プログラムをインストールするか否かを判定する、
１３．から２３．いずれか１つに記載の通信装置の制御方法。【０１６８】
この出願は、２０１４年９月１０日に出願された日本出願特願２０１４−１８４０１４号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2016039039.tif 000003
【図２】
2016039039.tif 000004
【図３】
2016039039.tif 000005
【図４】
2016039039.tif 000006
【図５】
2016039039.tif 000007
【図６】
2016039039.tif 000008
【図７】
2016039039.tif 000009
【図８】
2016039039.tif 000010
【図９】
2016039039.tif 000011
【図１０】
2016039039.tif 000012
【図１１】
2016039039.tif 000013
【図１２】
2016039039.tif 000014
【図１３】
2016039039.tif 000015
【図１４】
2016039039.tif 000016
【図１５】
2016039039.tif 000017
【図１６】
2016039039.tif 000018
【図１７】
2016039039.tif 000019
【図１８】
2016039039.tif 000020
【図１９】
2016039039.tif 000021
【図２０】
2016039039.tif 000022
【図２１】
2016039039.tif 000023
【国際調査報告】
2016039039.tif 000024
2016039039.tif 000025
2016039039.tif 000026
2016039039.tif 000027