説明

配信方法及び配信システム

【課題】データの配信を効率化すること。
【解決手段】データの配信元装置と複数の配信先装置とを有する配信システムにおける配信方法は、前記配信元装置が、探索範囲を複数の段階に分けて拡張して配信先装置を探索し、前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する処理を実行し、前記配信先装置が、当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知し、配信の許可に応じ、前記他の配信先装置より前記データを取得する処理を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、配信方法及び配信システムに関する。
【背景技術】
【0002】
スマートメータに関して、欧米においては導入が始まっており、日本においても実証実験が開始されている。スマートメータとは、通信機能付きの電力量計をいう。スマートメータは、ネットワークを介して電力利用量等を電力事業者へ報告することができる。スマートメータが各家庭に設置されれば、人手による検針作業を不要とすることができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−242063号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
無線通信機能を有するスマートメータの導入も検討されている。このようなスマートメータに関して、無線通信を利用してファームウェアの配信が可能となれば便利である。例えば、特許文献1に記載された技術を用いて、スマートメータのファームウェアを配信することが考えられる。
【0005】
しかしながら、特許文献1に記載されている技術では、配信順序を指示したテーブルが予め各サーバに設定される必要がある。したがって、スマートメータのように、随時設置又は撤去が行われる可能性の有るノードを含むネットワーク環境に関して、斯かるテーブルが設定されるのは非効率である。
【0006】
そこで、ブロードキャストの多重ホップによって、各スマートメータにファームウェアを配信することが考えられる。ブロードキャストであれば、配信先は特定のノードに限定されず、多重ホップによれば、広範囲のノードにファームウェアを配信可能であると考えられるからである。
【0007】
しかしながら、IEEE802.15.4等の、無線周波数帯域が小さい方式によって、ファームウェアのような比較的大きなサイズのデータをブロードキャストの多重ホップによって転送すると、一時的にネットワークの擾乱が発生する可能性がある。すなわち、通常、大きなサイズのデータは、複数ブロックに分割されて転送される。ブロックごとにブロードキャストの多重ホップが行われる場合、或るブロックに関してネットワークの擾乱が発生すると、該擾乱がおさまるまで次のブロックの配信を待機する必要がある。その待機時間が積み重なることにより、全てのブロックの転送が終了するまでに、長い時間を必要とする可能性がある。
【0008】
そこで、データの配信を効率化することのできる配信方法及び配信システムの提供を目的とする。
【課題を解決するための手段】
【0009】
そこで上記課題を解決するため、データの配信元装置と複数の配信先装置とを有する配信システムにおける配信方法は、前記配信元装置が、探索範囲を複数の段階に分けて拡張して配信先装置を探索し、前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する処理を実行し、前記配信先装置が、当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知し、配信の許可に応じ、前記他の配信先装置より前記データを取得する処理を実行する。
【発明の効果】
【0010】
データの配信を効率化することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態における配信システムの構成例を示す図である。
【図2】第一の実施の形態におけるファームウェアの配信処理の基本的な手順の一例を説明するためのシーケンス図である。
【図3】第一の実施の形態におけるファームウェアの配信処理の基本的な手順の一例を説明するためのシーケンス図である。
【図4】1ホップ区間限定の配信先確認メッセージの送信例を示す図である。
【図5】配信先応答メッセージの送信例を示す図である。
【図6】ダウンロード許可メッセージの第一の送信例を示す図である。
【図7】ダウンロード開始要求メッセージ送信例を示す図である。
【図8】ファームウェアファイルの送信例を示す図である。
【図9】ダウンロード要求待ち通知メッセージの第一の送信例を示す図である。
【図10】受信通知メッセージの第一の送信例を示す図である。
【図11】ダウンロード許可メッセージの第二の送信例を示す図である。
【図12】隣接ノードへのダウンロード開始要求メッセージの送信例を示す図である。
【図13】隣接ノードからのファームウェアファイルの送信例を示す図である。
【図14】ダウンロード要求待ち通知メッセージの第二の送信例を示す図である。
【図15】受信通知メッセージの第二の送信例を示す図である。
【図16】2ホップ区間限定の配信先確認メッセージの送信例を示す図である。
【図17】本発明の実施の形態における配信元装置のハードウェア構成例を示す図である。
【図18】第一の実施の形態の配信元装置の機能構成例を示す図である。
【図19】第一の実施の形態のノードの機能構成例を示す図である。
【図20】第一の実施の形態の配信元装置の処理手順の一例を説明するためのフローチャートである。
【図21】配信先確認メッセージの構成例を示す図である。
【図22】ダウンロード許可メッセージのデータ部の構成例を示す図である。
【図23】第一の実施の形態のファームウェアファイルの送信メッセージのデータ部の構成例を示す図である。
【図24】第一の実施の形態のノードが実行するダウンロード処理の処理手順の一例を説明するためのフローチャートである。
【図25】ダウンロード要求待ちメッセージのデータ部の構成例を示す図である。
【図26】第一の実施の形態のノードが実行する配信処理の処理手順の一例を説明するためのフローチャートである。
【図27】第一の実施の形態においてダウンロード要求待ちメッセージを受信したノードが実行する処理手順の一例を説明するためのフローチャートである。
【図28】リセット日時の到来に応じて各ノードが実行する処理を説明するためのフローチャートである。
【図29】第二の実施の形態のファームウェアファイルの送信メッセージのデータ部の構成例を示す図である。
【図30】第二の実施の形態においてダウンロード許可メッセージを受信していないノードがブロードキャストによるファームウェアファイルを受信した際の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における配信システムの構成例を示す図である。同図の配信システム1において、配信元装置10は、各ノードへのファームウェアの配信元となる通信装置である。配信元装置10は、配信対象のファームウェアを、ネットワーク40を介してダウンロードサーバ30よりダウンロードする。配信元装置10は、ダウンロードしたファームウェアを、無線通信を利用してノードNに配信する。
【0013】
ダウンロードサーバ30は、ファームウェアを記憶し、複数の配信システム1に対してファームウェアのダウンロード元となるコンピュータである。
【0014】
各ノードNは、無線通信機能を有する通信機器である。本実施の形態において、ノードNは、配信先装置の一例である。ノードNの具体例として、スマートメータが挙げられる。この場合、各ノードNの設置位置は、各家庭である。各家庭の間隔は一様ではないため、スマートメータのみによって配信システム1を構成した場合、いずれのノードNからも電波が届かないノードNが存在する可能性がある。したがって、単に無線通信を中継するための中継装置がノードNとして配置されてもよい。
【0015】
なお、本実施の形態の配信方法は、各ノードNの機能には依存しない。したがって、スマートメータ以外の通信機器に、本実施の形態の配信方法が適用されてもよい。
【0016】
本実施の形態において、各ノードNの参照番号は、N[0〜4][a〜h]という形式を有する。[0〜4]は、配信元装置10からのホップ数を示す。ホップ数とは、配信元装置10より送信されたメッセージが当該ノードNに到達するまでに経由する他のノードNの数である。[a〜h]は、同一ホップ数の圏内(同一ホップ区間内)に位置する各ノードNを識別するための符号である。全てのノードNを区別しない場合、上記の通り、単に、「ノードN」という。また、特定のホップ区間内のノードNの集合を限定して説明の対象とする場合、例えば、「ノードN1」のように、Nの後にホップ数が付与される。
【0017】
第一の実施の形態の配信システム1が実行する、ファームウェアの配信処理の基本的な手順について説明する。図2及び図3は、第一の実施の形態におけるファームウェアの配信処理の基本的な手順の一例を説明するためのシーケンス図である。なお、各シーケンス図には、便宜上、一部のノードNのみが示されている。
【0018】
ステップS101において、ダウンロードサーバ30は、FTP(File Transfer Protocol)等を利用して配信対象のファームウェアを格納したファイル(ファームウェアファイル)を配信元装置10に転送する。例えば、新しいバージョンのファームウェアの一部又は全部を含むファームウェアファイルがダウンロードされる。続いて、ダウンロードサーバ30は、ファームウェアの更新開始要求を配信元装置10に送信する(S102)。更新開始要求には、配信開始日時等が指定されている。続いて、配信元装置10は、ダウンロードサーバ30に対して、更新開始要求に対する応答を返信する(S103)。
【0019】
配信開始日時が到来すると、配信元装置10は、ファームウェアファイル配信先を探索するために、配信先確認メッセージを、1ホップ区間限定(すなわち、ホップ数=0)のブロードキャストで送信する(S104a、S104b)。すなわち、探索範囲が1ホップ区間に限定されて、配信先の探索が行われる。
【0020】
図4は、1ホップ区間限定の配信先確認メッセージの送信例を示す図である。同図に示されるように、配信先確認メッセージm1は、1ホップ区間限定であるため、1ホップ区間内の各ノードN0によって受信され、2ホップ区間以上のノードNにはホップされない。なお、配信先確認メッセージm1には、例えば、配信対象のファームウェアの識別情報(バージョン等)が含まれている。
【0021】
配信先確認メッセージm1を受信したノードN0群の中で、配信対象のファームウェアを適用する必要のある各ノードN0は、配信先確認メッセージm1の送信元に、配信先応答メッセージをユニキャストで返信する(S105a、S105b)。配信先確認メッセージm1の送信元とは、配信元装置10である。また、配信先応答メッセージは、自らがファームウェアの配信先であることを示すメッセージである。
【0022】
図5は、配信先応答メッセージの送信例を示す図である。同図では、全てのノードN0より、配信先応答メッセージm2が返信されている例が示されている。
【0023】
配信元装置10は、各配信先応答メッセージm2の受信順に、当該配信先応答メッセージm2の送信元の各ノードN0の識別情報を、配信先リストに追加する。配信先リストとは、配信先として予定されるノードNの一覧情報である。配信元装置10は例えば、最初に受信された配信先応答メッセージm1の送信元のノードN0を最初の配信先(ダウンロード先)として決定する。但し、配信先の順番は、他の方法によって決定されてもよい。
【0024】
図2では、ノードN0aからの配信先応答メッセージm2が最初に受信されている(S105a)。したがって、配信元装置10は、ノードN0aに対して、ダウンロード許可メッセージをユニキャストで送信する(S106)。ダウンロード許可メッセージは、ファームウェアのダウンロードの実行の許可を示すメッセージである。
【0025】
図6は、ダウンロード許可メッセージの第一の送信例を示す図である。同図には、ノードN0aに対して、ダウンロード許可メッセージm3aが送信されている例が示されている。
【0026】
ダウンロード許可メッセージm3aを受信したノードN0aは、ダウンロード開始要求メッセージを配信元装置10にユニキャストで送信する(S107)。ダウンロード開始要求メッセージは、ダウンロードの開始要求を示すメッセージである。
【0027】
図7は、ダウンロード開始要求メッセージ送信例を示す図である。同図には、ノードN0aが、ダウンロード開始要求メッセージm4aを送信している例が示されている。
【0028】
ダウンロード開始要求メッセージm4aを受信した配信元装置10は、メッセージm4aの送信元のノードN0aに、ファームウェアファイルをユニキャストで送信する(S108−1〜S108−n)。図2では、ファームウェアファイルがn個のブロックに分割されて、ブロックごとに送信される例が示されている。
【0029】
図8は、ファームウェアファイルの送信例を示す図である。同図には、配信元装置10からノードN0aに対してファームウェアファイルf1が送信されている例が示されている。
【0030】
このように、ダウンロード許可メッセージm3を受信したノードNのみが、ダウンロードを実行することができる。すなわち、ダウンロード許可メッセージm3によって、配信装置10は、ファームウェアファイルf1のダウンロード(配信)に関して、排他制御を行うことができる。なお、本実施の形態において、配信とは、送信元から見た用語であり、ダウンロードとは、配信先から見た用語である。したがって、配信とダウンロードとは、処理内容としては同じことを意味する。
【0031】
なお、配信元装置10は、ファームウェアファイルf1の送信中に、ダウンロード開始要求メッセージm4aを予想外に重複して受信したとしても、重複受信したダウンロード開始要求メッセージm4aについては無視する。
【0032】
ノードN0aは、ファームウェアファイルダウンロードが完了すると、ダウンロード要求待ち通知メッセージを1ホップ区間限定(すなわち、ホップ数=0)のブロードキャストで送信する(S109)。ダウンロード要求待ち通知メッセージとは、以降において自らがファームウェアファイルの送信元となりうることを隣接ノードに通知するためのメッセージである。なお、本実施の形態において、隣接ノードとは、1ホップ区間内のノードをいう。
【0033】
図9は、ダウンロード要求待ち通知メッセージの第一の送信例を示す図である。同図に示されるように、ダウンロード要求待ち通知メッセージm5aは、1ホップ区間限定であるため、1ホップ区間内のノードN0b、N1h、N2a、及び配信元装置10によって受信され、2ホップ区間以上にはホップされない。
【0034】
ダウンロード要求待ち通知メッセージm5aを受信した各ノードNは、隣接ノードにファームウェアファイルの配信元が存在することを検知し、メッセージm5aの送信元の宛先情報を記憶する。一方、配信元装置10は、ダウンロード要求待ち通知メッセージm5aを受信しても無視する。すなわち、宛先情報を記憶するのは、ノードNのみである。なお、各ノードNにおいて、保持される宛先情報の数に上限が設けられてもよい。例えば、上限が3である場合、各ノードNは、3回目以内のダウンロード要求待ち通知メッセージm5に関しては宛先情報を保持し、4回目以降のダウンロード要求待ち通知メッセージm5については無視する。または、4回目以降のダウンロード要求待ち通知メッセージm5が受信された場合は、古い宛先情報から順に破棄され、新たに受信されたダウンロード要求待ち通知メッセージm5aの送信元の宛先情報が保持されてもよい。
【0035】
ダウンロード要求待ち通知メッセージm5aの送信の成功により、ノードN0aへのファームウェアファイルf1のダウンロード(配信)は終了する。そこで、ノードN0aは、受信通知メッセージを、配信元装置10にユニキャストで送信する(S110)。
【0036】
図10は、受信通知メッセージの第一の送信例を示す図である。同図には、ノードN0aから配信元装置10に対して受信通知メッセージm6aが送信されている例が示されている。
【0037】
受信通知メッセージm6aを受信した配信元装置10は、受信通知メッセージm6aの送信元(ノードN0a)の識別情報を配信先リストより削除する。すなわち、ノードN0aについては、ファームウェアファイルf1を送信済みであることが記録される。
【0038】
続いて、配信元装置10は、配信先リストにおいてノードN0aの次にエントリされているノードN0bに対して、ダウンロード許可メッセージm3bをユニキャストで送信する(図3:S111)。
【0039】
図11は、ダウンロード許可メッセージの第二の送信例を示す図である。同図には、ノードN0bに対して、ダウンロード許可メッセージm3bが送信されている例が示されている。
【0040】
ダウンロード許可メッセージm3bを受信したノードN0bは、ファームウェアファイルf1を保有しているノードN0aの宛先情報を保持している。すなわち、ノードN0bの隣接ノードの中には、配信対象のファームウェアファイルを保有しているノードNが存在する。そこで、ノードN0bは、配信元装置10に対してではなく、当該宛先情報に係るノードN0aに対してダウンロード開始要求メッセージm4bをユニキャストで送信する(S112)。また、ノードN0bは、配信元装置10に対しては、ダウンロード開始通知メッセージをユニキャストで送信する(S113)。ダウンロード開始通知メッセージは、ダウンロード許可メッセージm3bの受信が成功して、隣接ノードからのダウンロードを開始することを示すメッセージである。
【0041】
図12は、隣接ノードへのダウンロード開始要求メッセージの送信例を示す図である。同図には、ノードN0bからノードN0aに対してダウンロード開始要求メッセージm4bが送信されている例が示されている。また、ノードN0bから配信元装置10に対してダウンロード開始通知メッセージm7bが送信されている例が示されている。
【0042】
配信元装置10は、ダウンロード開始通知メッセージm7を受信した場合、隣接ノードからダウンロードが行われるものと判断し、ファームウェアファイルの送信は行わない。なお、仮に、ノードN0bが、ファームウェアファイルを保有している隣接ノードの宛先情報を保持していない場合、ノードN0bは、配信元装置10に対して、ダウンロード開始要求メッセージを送信する。この場合、ノードN0bに関して、ステップS108〜S110と同様の処理が実行される。

続いて、ダウンロード開始要求メッセージmb4を受信したノードN0aは、ダウンロード開始要求メッセージmb4の送信元のノードN0bに、ファームウェアファイルf1をユニキャストで送信する(S114−1〜S114−n)。
【0043】
図13は、隣接ノードからのファームウェアファイルの送信例を示す図である。同図には、ノードN0aからノードN0bに対してファームウェアファイルf1が送信されている例が示されている。ファームウェアファイルf1は、ノードN0aが、配信元装置10よりダウンロードしたものである。
【0044】
ノードN0bは、ファームウェアファイルf1のダウンロードが完了すると、ダウンロード要求待ち通知メッセージm5bを1ホップ区間限定(すなわち、ホップ数=0)のブロードキャストで送信する(S115)。すなわち、ノードN0bがファームウェアファイルの送信元となりうることが隣接ノードに通知される。
【0045】
図14は、ダウンロード要求待ち通知メッセージの第二の送信例を示す図である。同図に示されるように、ダウンロード要求待ち通知メッセージm5bは、1ホップ区間限定であるため、1ホップ区間内のノードN0a、N1c、N2b、N2a、N2c及び配信元装置10によって受信され、2ホップ区間以上にはホップされない。ダウンロード要求待ち通知メッセージm5bを受信した各ノードNは、隣接ノードにファームウェアファイルf1の配信元が存在することを検知し、ダウンロード要求待ち通知メッセージm5bの送信元の宛先情報を上限の範囲内で記憶する。一方、配信元装置10は、ダウンロード要求待ち通知メッセージm5bを受信しても無視する。
【0046】
ダウンロード要求待ち通知メッセージm5bの送信の成功により、ノードN0bへのファームウェアファイルf1のダウンロード(配信)は終了する。そこで、ノードN0bは、受信通知メッセージm6bを、ファームウェアファイルf1のダウンロード元であるノードN0aと配信元装置10との双方にユニキャストで送信する(S118a、S118b)。
【0047】
図15は、受信通知メッセージの第二の送信例を示す図である。同図には、ノードN0a及び配信元装置10の双方に対してノードN0bから受信通知メッセージm6bが送信されている例が示されている。
【0048】
受信通知メッセージm6bを受信した配信元装置10は、受信通知メッセージm6bの送信元(ノードN0b)の識別情報を配信先リストより削除する。すなわち、ノードN0bについては、ファームウェアファイルf1を送信済みであることが記録される。
【0049】
なお、ファームウェアファイルf1を隣接ノードからダウンロードした場合に、受信通知メッセージm6bを配信元装置10にも送信するのは、配信元装置10に配信済みのノードNを知らせるためである。すなわち、配信元装置10が、未配信又は配信済みのノードNを把握し、配信システム1における配信が、排他的又は選択的に行われるようにするためである。その結果、輻輳による周辺の無線帯域の枯渇を防止することができる。
【0050】
その後、配信元装置10の配信先リストに登録されている、ノードN0c〜N0hに関しても、1ノードNずつ順番に、上記した手順によって配信元装置10又は隣接ノードからファームウェアファイルf1がユニキャストで配信される。
【0051】
配信元装置10は、配信先リストに登録されている全てのノードNに対してファームウェアファイルの配信が終了すると、再確認のために、配信先確認メッセージm1を、1ホップ区間限定のブロードキャストで送信する(S118a、S118b)。既にファームウェアファイルf1を受信している各ノードN0は、配信先確認メッセージm1に対して応答は行わない。なお、配信元装置10は、この後に予想外の受信通知メッセージm6を受信したとしても、当該受信通知メッセージm6を無視して、処理を継続する。
【0052】
配信先確認メッセージm1の送信後、所定時間(例えば、30秒等)が経過すると、配信元装置10は、1ホップ区間内のノードN0群については、ファームウェアファイルf1の配信は完了したと判断する。そこで、配信元装置10は、探索範囲を1段階(すなわち、1ホップ)拡張する。具体的には、配信元装置10は、2ホップ区間限定(すなわち、ホップ数=1)の配信先確認メッセージm1をブロードキャストで送信する(S119a、S119b)。例えば、ステップS119aでは、ノードN0aからのホップによってノードN1aに配信先確認メッセージm1が到達する。また、ステップS119bでは、ノードN0bからのホップによってノードN1bに配信先確認メッセージm1が到達する。
【0053】
図16は、2ホップ区間限定の配信先確認メッセージの送信例を示す図である。同図には、各ノードN0からのホップによって、各ノードN1に対して配信先確認メッセージm1が送信されている例が示されている。但し、2ホップ区間限定であるため、3ホップ区間以上にはホップされない。なお、配信元装置10は、この後に予想外の受信通知メッセージを受信しても、当該メッセージを無視して、処理を継続する。
【0054】
配信先確認メッセージm1を受信したノードN1群の中で、配信対象のファームウェアを適用する必要のある各ノードN1は、配信先確認メッセージm1の送信元に、配信先応答メッセージm2をユニキャストで返信する(S120a、S120b)。
【0055】
以降、ノードN1群に関して、ノードN0群と同様に、ファームウェアファイルの配信が行われる。その後、探索範囲が3ホップ区間内、4ホップ区間内、5ホップ区間内と1ホップずつ拡張され、全ノードNへのファームウェアファイルf1の配信が完了する。探索範囲が拡張されても、配信先確認メッセージm1及びダウンロード許可メッセージm3は配信元装置10から送信される。また、ダウンロード開始通知メッセージm7及び受信通知メッセージm6は、配信元装置10に送信される。
【0056】
なお、探索範囲のホップ数の上限は、例えば、配信元装置10に対する設定によって変更可能とされてもよい。既定値として、例えば、30ホップが設定されていてもよい。
【0057】
上述したように、本実施の形態によれば、配信先のノードNの探索範囲は、段階的に拡張されて、段階ごとに、探索されたノードNに対して配信が行われる。そして、既に配信を受けたノードNは、配信元になることができる。したがって、隣接ノード間でのファームウェアファイルf1の転送(又はダウンロード)を実現することができる。
【0058】
探索範囲の段階的な拡張と隣接ノード間(特に、前の段階の探索範囲に含まれるノードNと次の段階の探索範囲に含まれるノードNとの間)での転送とにより、多重ホップによってファームウェアファイルf1が転送される可能性を低減させることができる。換言すれば、ファームウェアファイルf1の転送に関して、多重度の増加を抑制することができる。
【0059】
また、或る時点において配信元及び配信先となるノードNは、配信元装置10によって排他的に管理される。したがって、複数のノードNに対するダウンロード元が、同時期に一つのノードNに集中することによる、局所的なネットワーク負荷の増加を回避することができる。その結果、無線周波数帯域が小さい通信方式であっても、効率的にファームウェアf1の配信を行うことができる。
【0060】
上記の結果、ネットワークの擾乱の発生を抑制することができ、その結果として、多重ホップのブロードキャストによってファームウェアファイルf1を配信する場合に比べて、短時間での配信の完了が期待できる。
【0061】
続いて、上記した配信方法を実現するための配信元装置10及びノードNに関して更に具体的に説明する。
【0062】
図17は、本発明の実施の形態における配信元装置のハードウェア構成例を示す図である。図17の配信元装置10は、それぞれバスBで相互に接続されているドライブ装置100、不揮発性メモリ102、揮発性メモリ103、CPU104、及びインタフェース装置105等を有する。
【0063】
配信元装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して不揮発性メモリ102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。不揮発性メモリ102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0064】
揮発性メモリ103は、プログラムの起動指示があった場合に、不揮発性メモリ102からプログラムを読み出して格納する。CPU104は、揮発性メモリ103に格納されたプログラムに従って配信元装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0065】
なお、記録媒体101の一例としては、CD−ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、不揮発性メモリ102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び不揮発性メモリ102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。但し、配信元装置10は、必ずしもドライブ装置101を有していなくてもよい。
【0066】
なお、各ノードNは、配信元装置10と同様のハードウェアを有していればよい。
【0067】
図18は、第一の実施の形態の配信元装置の機能構成例を示す図である。同図において、配信元装置10は、ファームウェア受信部11、配信先探索部12、ダウンロード許可部13、配信部14、及び終了検知部15等を有する。これら各部は、配信元装置10にインストールされたプログラムがCPU104に実行させる処理により実現される。また、配信元装置10は、配信先リスト記憶部16を有する。配信先リスト記憶部16は、例えば、揮発性メモリ103又は不揮発性メモリ102を用いて実現可能である。
【0068】
ファームウェア受信部11は、ダウンロードサーバ30よりファームウェアファイルf1を受信する。
【0069】
配信先探索部12は、ファームウェアファイルf1の配信先となるノードNを探索する。配信先探索部12は、探索されたノードNの識別情報を配信先リスト記憶部16に記録する。上記したように、配信先探索部12は、探索範囲を複数段階に拡張させ、各段階においてノードNを探索する。本実施の形態において、探索範囲は、ホップ数によって規定される。但し、探索範囲の基準又は単位は通信方式に応じて適宜変更されてもよい。
【0070】
ダウンロード許可部13は、配信先探索部12によって探索された各ノードNに対して、順番に又は排他的に配信の許可(すなわち、ダウンロード許可メッセージm3)を通知する。配信部14は、ダウンロードファイルf1をノードNに送信する。終了検知部15は、ノードNごとに、ファームウェアファイルf1の送信の終了を検知する。
【0071】
図19は、第一の実施の形態のノードの機能構成例を示す図である。同図において、ノードNは、配信元検知部201、配信要求部202、ダウンロード部203、配信元通知部204、受信通知部205、リセット部206、開始要求受信部207、配信部208、及び終了検知部209等を有する。これら各部は、ノードNにインストールされたプログラム(例えば、ファームウェア)がノードNのCPUに実行させる処理により実現される。また、ノードNは、宛先情報記憶部210を有する。宛先情報記憶部210は、ノードNの揮発性メモリ又は不揮発性メモリを用いて実現可能である。
【0072】
配信元検知部201は、配信先確認メッセージm1又はダウンロード要求待ち通知メッセージm6等の受信に基づいて、ファームウェアファイルf1の配信先の存在を検知する。配信元検知部201は、ダウンロード要求待ち通知メッセージm6が受信された場合は、ダウンロード要求待ち通知メッセージm6の送信元の宛先情報を宛先情報記憶部210に記録する。
【0073】
配信要求部202は、配信対象のファームウェアファイルf1の配信を受けたい場合に、配信確認応答メッセージm2を、配信先確認メッセージm1の送信元に送信する。
【0074】
ダウンロード部203は、配信先確認メッセージm1又はダウンロード要求待ち通知メッセージm6の送信元からファームウェアファイルf1をダウンロードする。宛先情報記憶部210に少なくとも一つの宛先情報が記録されている場合、ダウンロード部203は、当該宛先情報に係るノードNからファームウェアファイルf1をダウンロードする。
【0075】
配信元通知部204は、ファームウェアファイルf1のダウンロードが完了した後、自ノードNが配信元となりうることを隣接ノードに通知するため、ダウンロード要求待ち通知メッセージm6を送信する。
【0076】
受信通知部205は、ファームウェアファイルf1の配信元及び配信元装置10に対して、ファームウェアファイルf1の受信が完了したことを示す受信通知メッセージm6を送信する。
【0077】
リセット部206は、ファームウェアファイルf1に格納されているファームウェアによる更新を有効とするために、ノードNのリセットを実行する。リセットとは、例えば、ノードNの再起動をいう。
【0078】
開始要求受信部207は、他のノードNから、ダウンロード開始要求メッセージm4を受信する。配信部208は、ダウンロード開始要求メッセージm4の送信元に対して、ファームウェアファイルf1を送信する。終了検知部15は、ファームウェアファイルf1の送信の終了を検知する。
【0079】
以下、配信元装置10及びノードNのそれぞれの処理手順について説明する。図20は、第一の実施の形態の配信元装置の処理手順の一例を説明するためのフローチャートである。なお、同図において、配信元装置10は、既にダウンロードサーバ30よりファームウェアファイルf1をダウンロード済みであるとする。すなわち、図2のステップS101〜S103は実行済みの状態であるとする。
【0080】
配信開始日時が到来すると、配信先探索部12は、配信先確認メッセージm1のホップ数Hは、上限値以下であるか否かを判定する(S201)。図20の開始時点にいて、ホップ数Hの初期値は「0」である。また、上限値は、例えば、不揮発性メモリ102に記録されている。
【0081】
ホップ数Hが上限値以下である場合(S201でYes)、配信先探索部12は、配信先確認メッセージm1(図4参照)を、ホップ数Hのホップ区間限定のブロードキャストで送信する(S202)。
【0082】
図21は、配信先確認メッセージの構成例を示す図である。同図において、配信先確認メッセージm3は、ヘッダ部とデータ部とを含む。ヘッダ部は、各メッセージに共通の部分であり、メッセージ種別、データ長、送信元MACアドレス、及び送信先MACアドレス等を含む。
【0083】
メッセージ種別は、メッセージの種別である。配信先確認メッセージm1に関しては、配信先確認メッセージm1であることがメッセージ種別に指定される。データ長は、データ部のデータ長である。送信元MACアドレスは、メッセージの送信元のMACアドレスである。送信先MACアドレスは、メッセージの送信元のMACアドレスである。送信先MACアドレスは、メッセージの送信先のMACアドレスである。配信先確認メッセージm1は、ブロードキャストであるため、送信先MACアドレスには、ブロードキャストアドレスが指定される。
【0084】
一方、データ部は、メーカID、対象ノード識別子、ファーム形式、ファームバージョン、及び対象外ファーム保持要否等を含む。メーカIDは、配信対象のファームウェアの適用対象となるノードNのメーカの識別子である。本実施の形態の配信システム1には、相互に異なるメーカによって製造された装置がノードNとして含まれている場合も想定している。配信対象のファームウェアの適用対象のメーカと異なるメーカのノードNは、当該ファームウェアの適用対象とはならない。
【0085】
対象ノード識別子は、配信対象のファームウェアの適用対象となるノードNの種別の識別子である。ノードNの種別とは、ノードNの機能に基づく種別である。例えば、スマートメータと中継装置とでは、種別が異なる。
【0086】
ファーム形式は、ファームウェアファイルf1の形式を示す情報である。例えば、ファームウェアファイルf1に含まれているデータが、ファームウェア全体であるのか、更新部分のみであるのか、圧縮されているのか、暗号化されているのか等を示す情報である。
【0087】
ファームウェアバージョンとは、ファームウェアファイルf1に含まれているファームウェアのバージョンである。
【0088】
対象外ファーム保持要否は、各ノードNが、当該ノードNにとって適用対象外のファームウェアに係るファームウェアファイルf1を保持する必要が有るか否かを示す情報である。各ノードNにとって適用対象であるか否かは、メーカID、対象ノード識別子、及びファームバージョンによって判定される。なお、ファームウェアファイルf1を保持する必要が有るか否かは、当該ファームウェアファイルf1の配信の中継を行う必要が有るか否かと同義である。
【0089】
なお、ヘッダ部は、各メッセージで共通であるため、以降で説明するメッセージについては、便宜上、データ部のみを示す。また、ホップ数については、より下位のレベル(配信元装置10及び各ノードNが利用する通信プロトコルのレベル)において管理されているため、図21には含まれていない。
【0090】
続いて、配信先探索部12は、配信先応答メッセージm2の受信待ちのタイマを設定する(S203)。例えば、30秒後にタイマが設定される。配信先応答メッセージm2の受信待ちの間(S204でYes)、配信先探索部12は、配信先確認メッセージm1に応じて返信される配信先応答メッセージm2(図5参照)を受信する(S205)。
【0091】
受信された配信先応答メッセージm2の数が、配信先リスト記憶部16の上限以内である場合(S206でYes)、配信先探索部12は、受信された配信先応答メッセージm2に含まれている、送信元MACアドレスを配信先リストのエントリ(配信先情報)として配信先リスト記憶部16に記録する(S207)。一方、受信された配信先応答メッセージm2の数が、配信先リスト記憶部16の上限を超えた場合(S206でNo)、配信先探索部12は、配信先応答メッセージm2の受信待ちタイマを解除して(S208)、ステップS211に進む。
【0092】
配信先応答メッセージの受信待ちの期限が到来すると(S204でNo)、配信先探索部12は、配信先リスト記憶部16に配信先情報が記録されているか否かを判定する(S209)。配信先情報が記録されていない場合(S209でNo)、配信先探索部12は、ホップ数Hに1を加算し(S210)、ステップS201以降を繰り返す。すなわち、配信先となるノードNの探索範囲が拡張される。
【0093】
一方、配信先リスト記憶部16に配信先情報が記録されている場合(S209でYes)、ステップS211に進む。
【0094】
以上で、ホップ数H+1区間内において、配信先となるノードNの探索は終了する。続いて、探索された各ノードNに順番に配信するための処理が行われる。
【0095】
ステップS211において、ダウンロード許可部13は、配信先リスト記憶部16に記録されている配信先情報の中から一つの配信先情報を選択し、当該配信先情報を送信先MACアドレスとするダウンロード許可メッセージm3を送信する。例えば、配信先リスト記憶部16への記録順に一つの配信先情報が選択される。但し、複数の配信先情報が選択され、各配信先情報を送信先MAアドレスとする、複数のダウンロード許可メッセージm3がほぼ同時に送信されてもよい。例えば、配信先リスト記憶部16に記憶されている全ての配信先情報のそれぞれに関して、ダウンロード許可メッセージm3がほぼ同時に送信されてもよい。
【0096】
図22は、ダウンロード許可メッセージのデータ部の構成例を示す図である。同図において、ダウンロード許可メッセージm3は、リセット日時、分割数、ブロック長、ファーム形式、及び対象外ファーム保持要否等を含む。
【0097】
リセット日時は、配信対象のファームウェアを有効にする日時である。例えば、当該ファームウェアを適用したノードNがリセット(又は再起動)する日時である。すなわち、リセット日時は、ファームウェアファイルf1の配信を受けた各ノードNにおいて、新しいファームウェアが有効となる日時を一致させ、ノードN間における不整合の発生を回避するためのパラメータである。
【0098】
分割数は、ファームウェアファイルf1を複数ブロックに分割して配信する際の分割数である。ブロック長は、一ブロックのデータ長(サイズ)である。ファーム形式及び対象外ファーム保持要否の意味は、配信先確認メッセージm1における同一名のパラメータと同じである。
【0099】
続いて、配信部14は、ダウンロード許可メッセージm3を受信したノードNから、ダウンロード開始要求メッセージm4(図7参照)又はダウンロード開始通知メッセージm7(図12参照)を受信する(S212)。ダウンロード開始要求メッセージm4又はダウンロード開始通知メッセージm7のいずれが受信されるかは、ダウンロード許可メッセージm3を受信したノードN(配信先のノードN)のファームウェアファイルf1のダウンロード元(配信元)に応じて異なる。
【0100】
すなわち、ダウンロード開始要求メッセージm4が受信された場合(S213でYes)、当該ダウンロード元は配信元装置10である。そこで、配信部14は、ファームウェアファイルf1(図8参照)を配信先のノードNに送信する(S214)。
【0101】
図23は、第一の実施の形態のファームウェアファイルの送信メッセージのデータ部の構成例を示す図である。同図に示されるように、当該データ部は、ブロック番号、ブロック長、及びブロック等を含む。
【0102】
ブロック番号は、ファームウェアファイルf1がブロック単位に分割された場合の各ブロックの順番を示す。ブロック長は、一ブロックのデータ長である。ブロックは、ブロックの実体である。
【0103】
ステップS214では、ファームウェアファイルf1は、ダウンロード許可メッセージm3に指定されている分割数分のブロックに分割される。そして、分割数分だけ図23に示されるデータ部を有するメッセージが、配信元装置10から配信先のノードNに繰り返し送信される。
【0104】
なお、ダウンロード許可メッセージm3が、複数のノードNに対してほぼ同時に送信されている場合、配信部14は、複数のノードNからダウンロード開始要求メッセージm4を受信する可能性がある。但し、配信部14は、例えば、最初に受信されたダウンロード開始要求メッセージm4の送信元であるノードNにファームウェアファイルf1の送信を行い、他のノードNからのダウンロード開始要求メッセージm4は無視する。すなわち、第一の実施の形態では、一つの配信元(配信元装置10又は配信済みのノードN)から同時に配信先とされるノードNの数は、1である。
【0105】
なお、ダウンロード開始要求メッセージm4を無視されたノードNは、ダウンロード開始要求メッセージm4の送信時から所定時間経過してもファームウェファイルf1が受信されないことに基づいて、タイムアウトを検知する。タイムアウトを検知したノードNは、次回のダウンロード許可メッセージm3の受信を待機する。
【0106】
一方、ダウンロード開始通知メッセージm7が受信された場合(S213でNo)、当該ダウンロード元は、配信元装置10ではない。したがって、配信部14はファームウェアファイルf1の送信は行わない。
【0107】
この場合、複数のノードNに対してダウンロード許可メッセージm3が送信されているときは、複数のノードNのそれぞれが、各ノードの宛先情報記憶部210に記憶している宛先情報に係る他のノードに対してダウンロード開始要求メッセージm3を送信している。並行して送信されたダウンロード開始要求メッセージm3の送信先が相互に重複しない場合、各ノードN間で並列的にファームウェアファイルf1の配信(ダウンロード)が行われる。一方、ダウンロード開始要求メッセージm3を重複して受信したノードNは、例えば、最初に受信されたダウンロード開始要求メッセージm4の送信元であるノードNにファームウェアファイルf1の送信を行い、他のノードNからのダウンロード開始要求メッセージm4は無視する。ダウンロード開始要求メッセージm4を無視されたノードNは、ダウンロード開始要求メッセージm4の送信時から所定時間経過してもファームウェファイルf1が受信されないことに基づいて、タイムアウトを検知する。タイムアウトを検知したノードNの宛先情報記憶部210において、別の宛先情報が記憶されている場合、当該ノードNは、当該別の宛先情報に係るノードNに対して、ダウンロード開始要求メッセージm4を送信する。
【0108】
このように、ダウンロード許可メッセージm3がほぼ同時に複数のノードNに送信されることで、ノードN間におけるファームウェアファイルf1の配信の並列化を可能とすることができる。その結果、ダウンロード許可メッセージm3が一つのノードNにしか送信されない場合に比べて、ファームウェアファイルf1の配信効率を向上させることができる。
【0109】
ステップS214又はS213でNoの場合に続いて、終了検知部15は、受信通知メッセージm6の受信を待機する。受信通知メッセージm6(図10及び図15参照)が受信されると(S215)、終了検知部15は、受信通知メッセージm6の送信元であるノードNに係る配信先情報を配信リスト記憶部より削除する(S216)。
【0110】
続いて、ダウンロード許可部13は、配信先リスト記憶部16に配信先情報が残っているか否かを判定する(S217)。配信先情報が残っている場合(S217でYes)、ステップS211以降が繰り返される。すなわち、ホップ数Hのホップ区間内で探索された他のノードNに対してファームウェアファイルf1の配信が行われる。
【0111】
一方、配信先情報が残っていない場合(S217でNo)、配信先探索部12は、ホップ数Hに1を加算し(S218)、ステップS201以降を繰り返す。すなわち、配信先となるノードNの探索範囲が拡張される。
【0112】
続いて、各ノードNが実行する処理手順について説明する。図24は、第一の実施の形態のノードが実行するダウンロード処理の処理手順の一例を説明するためのフローチャートである。同図では、或る一つのノードNに注目して説明する。
【0113】
配信元検知部201が、配信先確認メッセージm1を受信すると(S301)、配信要求部202は、配信対象のファームウェアが自ノードの適用対象であるか否かを判定する(S302)。すなわち、配信先確認メッセージm1(図21)に含まれている、メーカID及び対象ノード識別子に自ノードが合致するか判定される。合致する場合、配信先確認メッセージm1(図21)に含まれているファームバージョンが、自ノードに適用されているファームウェアのバージョンより新しいかが判定される。
【0114】
配信対象のファームウェアが自ノードの適用対象である場合(S302でYes)、配信要求部202は、既に当該ファームウェアのファームウェアファイルf1を受信済み(ダウンロード済み)であるか否かを判定する(S303)。ファームウェアファイルf1を受信済みである場合(S303でNo)、図24の処理は終了する。一方、ファームウェアファイルf1を受信済みでない場合(S303でYes)、ステップS305に進む。
【0115】
また、配信対象のファームウェアが自ノードの適用対象でない場合(S302でNo)、配信要求部202は、配信先確認メッセージm1に含まれている、対象外ファーム保持要否の値が「要」であるか否かを判定する(S304)。対象外ファーム保持要否の値が「否」である場合(S304でNo)、ファームウェアファイルf1の保持の必要は無いため、図24の処理は終了する。一方、対象外ファーム保持要否の値が「要」である場合(S304でYes)、ステップS305に進む。
【0116】
ステップS305において、配信要求部202は、配信先応答メッセージm2(図5参照)をユニキャストで配信元装置10に送信する(S305)。続いて、ダウンロード部203は、ダウンロード許可メッセージm3の受信を待機する。ダウンロード許可メッセージm3が受信されると(S306)、ダウンロード部203は、宛先情報記憶部210に宛先情報が記録されているか否かを判定する(S307)。すなわち、ファームウェアファイルf1を既にダウンロード済みの隣接ノードの存否が確認される。
【0117】
宛先情報記憶部210に宛先情報が記録されてない場合(S307でNo)、ダウンロード部203は、ダウンロード許可メッセージm3の送信元(すなわち、配信元装置10)に、ダウンロード開始要求メッセージm4(図7参照)をユニキャストで送信する(S308)。
【0118】
一方、宛先情報記憶部210に宛先情報が記録されている場合(S307でYes)、ダウンロード部203は、いずれかの宛先情報に係るノードNに対してダウンロード開始要求メッセージm4(図12参照)をユニキャストで送信する(S309)。続いて、ダウンロード部203は、ダウンロード許可メッセージm3の送信元(すなわち、配信元装置10)に、ダウンロード開始通知メッセージm7(図12参照)をユニキャストで送信する(S310)。
【0119】
ステップS308又はS310に続いて、ダウンロード部203は、配信元装置10又は隣接ノードから送信されるファームウェアファイルf1を受信する(S311)。上記したように、ファームウェアファイルf1は、ブロック単位に分割されて複数回にわたって送信される。なお、受信されたファームウェアファイルf1は、例えば、揮発性のメモリに保持される。
【0120】
なお、ダウンロード部203は、ステップS309において、宛先情報に係るノードNに対してダウンロード開始要求メッセージm4を送信した場合、所定時間待機しても当該送信先からファームウェアファイルf1が送信されてこないときは、タイムアウトを検知する。タイムアウトの検知に応じ、ダウンロード部203は、宛先情報記憶部210に別の宛先情報が記憶されている場合は、当該別の宛先情報に基づいてステップS309以降を繰り返す。ステップS309以降を繰り返した結果、全ての宛先情報に関してタイムアウトを検知した場合、ダウンロード部203は、次回のダウンロード許可メッセージm3の受信を待機する。タイムアウトが検知されるような状況は、例えば、ダウンロード開始要求メッセージm4の送信先のノードNが、他のノードNに対して、ファームウェアファイルf1を送信中である場合に発生する。
【0121】
続いて、ダウンロード部203は、ファームウェアファイルf1に係るファームウェアが自ノードへの適用対象であるか否かを判定する(S312)。当該判定は、ステップS306において受信されたダウンロード許可メッセージm3に含まれている、メーカID、対象ノード識別子、及びファームバージョンに基づいて、ステップS302と同様の処理内容で実行される。
【0122】
当該ファームウェアが適用対象である場合(S312でYes)、ダウンロード部203は、不揮発性メモリにおいて、既にインストールされているファームウェアに対して、ファームウェアファイルf1に格納されているファームウェアを上書き(反映)する(S313)。すなわち、ファームウェアの更新が行われる。上書きは、例えば、ダウンロード許可メッセージm3に含まれていたファーム形式に基づいて行われる。ダウンロード部203は、また、ファームウェアが更新されたことを示す情報(以下、「更新フラグ」という。)を、例えば、揮発性メモリに記録しておく。更新フラグの内容は、例えば、ダウンロード許可メッセージm3に含まれているリセット日時でもよい。
【0123】
なお、揮発性メモリにインストールされているファームウェアは、ノードNの起動時に揮発性メモリにロードされるため、この時点では、上書き前の状態のファームウェアが有効である。したがって、当該ノードNの動作は、直ちに上書き後のファームウェアに応じたものとはならない。
【0124】
続いて、配信元通知部204は、ダウンロード要求待ちメッセージm6(図9又は図14参照)を、1ホップ区間限定(すなわち、ホップ数=0)のブロードキャストで送信する(S314)。
【0125】
図25は、ダウンロード要求待ちメッセージのデータ部の構成例を示す図である。同図において、ダウンロード要求待ちメッセージm6のデータ部は、メーカID、対象ノード識別子、ファーム形式、ファームバージョン、及び対象外ファーム保持要否等を含む。すなわち、ダウンロード要求待ちメッセージm6のデータ部の構成は、配信先確認メッセージm3のデータ部の構成と同様である。また、ダウンロード要求待ちメッセージm6のデータ部の各項目には、配信先確認メッセージm3のデータ部の各項目の値が引き継がれる。
【0126】
続いて、受信通知部205は、配信元装置10がファームウェアファイルf1のダウンロード元であったか否かを判定する(S315)。隣接ノードがダウンロード元であった場合(S315でNo)、受信通知部205は、当該隣接ノードに対して、受信通知メッセージm6(図15参照)をユニキャストで送信する(S316)。
【0127】
ステップS315でYesの場合又はステップS316に続いて、受信通知部205は、配信元装置10に対して、受信通知メッセージm6(図10又は図15参照)をユニキャストで送信する(S317)。
【0128】
続いて、既にダウンロード済みのノードNが、他のノードに対してファームウェアファイルf1の配信を行う際の処理手順について説明する。
【0129】
図26は、第一の実施の形態のノードが実行する配信処理の処理手順の一例を説明するためのフローチャートである。同図においても、或る一つのノードNに注目して説明する。
【0130】
開始要求受信部207が、他のノードNから送信されたダウンロード開始要求メッセージm4を受信すると(S321)、配信部208は、揮発性メモリに記録されているダウンロードファイルf1を、当該他のノードNに送信する(S322)。ファームウェアファイルf1は、ブロック単位に分割されて複数回にわたって送信される。ファームウェアファイルf1の送信が完了すると、終了検知部209は、受信通知メッセージm6(図15参照)を受信する(S323)。
【0131】
なお、複数のノードNに対してダウンロード許可メッセージm3がほぼ同時に送信される場合、開始要求受信部207は、複数のノードNからダウンロード開始要求メッセージm4を受信する可能性がある。この場合、開始要求受信部207は、例えば、最初に受信されたダウンロード開始要求メッセージm4以外は無視する。
【0132】
続いて、各ノードNが、既にダウンロード済みのノードNによるダウンロード要求待ちメッセージm6を受信した際に実行する処理手順について説明する。
【0133】
図27は、第一の実施の形態においてダウンロード要求待ちメッセージを受信したノードが実行する処理手順の一例を説明するためのフローチャートである。同図においても、或る一つのノードNに注目して説明する。
【0134】
配信元検知部201は、ダウンロード要求待ちメッセージm6を受信すると(S331)、自ノードNにおいてファームウェアファイルf1はダウンロード済みであるか否かを判定する(S332)。すなわち、揮発性メモリにファームウェアファイルf1が記録されているか否かが判定される。また、揮発性メモリに記録されているファームウェアファイルf1に関するメーカID、対象ノード識別子、及びファームバージョンと、ダウンロード要求待ちメッセージm6に含まれているメーカID、対象ノード識別子、及びファームバージョンとが一致するか否かが判定されてもよい。
【0135】
ダウンロード済みである場合(S332でNo)、図27の処理は終了する。ダウンロード済みでない場合(S332でYes)、配信元検知部201は、宛先情報記憶部210に既に記録されているエントリ(宛先情報)の数が、上限値未満であるか否か判定する(S333)。当該エントリ数が上限値に達している場合(S333でNo)、図27の処理は終了する。
【0136】
一方、当該エントリ数が上限値未満である場合(S333でYes)、配信元検知部201は、ダウンロード要求待ちメッセージm6に含まれている、送信元MACアドレスを宛先情報として宛先情報記憶部210に記録する(S334)。
【0137】
続いて、ファームウェアファイルf1を受信した各ノードNが、リセット日時の到来に応じて実行する処理について説明する。
【0138】
図28は、リセット日時の到来に応じて各ノードが実行する処理を説明するためのフローチャートである。同図においても、或る一つのノードNに注目して説明する。但し、揮発性メモリに更新フラグが記録されていないノードNは、同図の処理手順は実行しない。更新フラグとは、図24のステップS313において記録される、ファームウェアが更新されたことを示す情報である。
【0139】
リセット部206は、リセット日時の到来を検知すると(S351でYes)、当該ノードNのリセットを実行する(S352)。リセットによって、不揮発性メモリにおいて更新されたファームウェアが揮発性メモリにロードされる。その結果、更新後のファームウェアの制御に基づいて、ノードNは動作する。
【0140】
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、第二の実施の形態において特に言及しない点については、第一の実施の形態と同様でよい。
【0141】
第二の実施の形態では、図8や図13に示される状態(すなわち、ファームウェアファイルf1の送信時)において、送信元(配信元装置10又はノードN)は、ファームウェアファイルf1をブロードキャストで送信する。但し、多重ホップを抑制するため、当該ブロードキャストは、例えば、1ホップ区間限定とされる。その結果、ダウンロード許可メッセージm3を受信したノードN以外のノードも、ファームウェアファイルf1を並行して受信することができる。例えば、図8の状態においては、ノードN0aのみでなく、他のノードN0群もファームウェアファイルf1を並行して受信する。
【0142】
すなわち、そもそもファームウェアファイルf1の送信メッセージは、ユニキャストであろうとブロードキャストであろうと、送信先以外の他のノードNにも到達しているのであるから、他のノードNにも受信させてしまおうという趣旨である。
【0143】
具体的には、第二の実施の形態では、図20のステップS205及び図26のステップS332において、配信元装置10の配信部14又は送信元のノードNの配信部208は、1ホップ区間限定のブロードキャストでファームウェアファイルf1を送信する。
【0144】
図29は、第二の実施の形態のファームウェアファイルの送信メッセージのデータ部の構成例を示す図である。同図に示されるように、当該データ部は、リセット日時、ファーム形式、対象外ファーム保持要否、ブロック番号、ブロック長、及びブロック等を含む。
【0145】
なお、各パラメータの意味は、ダウンロード許可メッセージ(図22)又はユニキャストによるファームウェアファイルの送信メッセージ(図23)において同一名のパラメータの意味と同じである。
【0146】
ダウンロード許可メッセージm3を受信しているノードN(例えば、図8のノードN0a)は、図24のステップS310において、1ホップ区間限定のブロードキャストで送信されたファームウェアファイルf1を受信する。
【0147】
一方、ダウンロード許可メッセージm3を受信していないノードN(例えば、図8のノードN0b〜N0h)は、当該ブロードキャストが受信された際に、図30に示される処理を実行する。
【0148】
図30は、第二の実施の形態においてダウンロード許可メッセージを受信していないノードがブロードキャストによるファームウェアファイルを受信した際の処理手順の一例を説明するためのフローチャートである。同図では、ダウンロード許可メッセージを受信していない或るノードNに注目して説明する。
【0149】
ステップS401において、ダウンロード部203は、ファームウェアファイルf1に係るブロードキャスト検知する。続いて、ダウンロード部203は、ファームウェアファイルf1はダウンロード済みであるか否かを判定する(S402)。判定方法は、図27のステップS332と同様でよい。
【0150】
ダウンロード済みである場合(S402でNo)、図30の処理は終了する。ダウンロード済みでない場合(S402でYes)、ダウンロード部203は、ブロック単位で送信されるファームウェアファイルf1の受信を継続する(S403)。
【0151】
ファームウェアファイルf1の受信が終了すると、ダウンロード部203は、ファームウェアファイルf1に格納されているファームウェアが自ノードの適用対象であるか否かを判定する(S404)。当該判定方法は、図24のステップS302と同様でよい。但し、当該ファームウェアのメーカID、対象ノード識別子、及びファームバージョンは、ファームウェアファイルf1内より取得される。または、ブロードキャスト時のファームウェアファイルf1の送信メッセージのデータ部に、メーカID、対象ノード識別子、及びファームバージョンが含まれていてもよい。この場合、ダウンロード部203は、ファームウェアファイルf1の全ブロックを受信せずとも、一つのブロックを受信することによって、ファームウェアファイルf1に格納されているファームウェアが自ノードの適用対象であるか否かを判定することができる。但し、メーカID、対象ノード識別子、及びファームバージョンの分だけ、各ブロックのデータ量が増加するという不利益はある。
【0152】
当該ファームウェアが自ノードの適用対象である場合(S404でYes)、ダウンロード部203は、不揮発性メモリに既にインストールされているファームウェアを更新する(S405)。すなわち、不揮発性メモリに既にインストールされているファームウェアが、ファームウェアファイルf1に格納されているファームウェアによって上書きされる。ダウンロード部203は、また、更新フラグを、例えば、揮発性メモリに記録しておく。
【0153】
ステップS404でNoの場合又はステップS405に続いて、配信元通知部204は、ダウンロード要求待ちメッセージm6(図9又は図14参照)を、1ホップ区間限定(すなわち、ホップ数=0)のブロードキャストで送信する(S406)。
【0154】
続いて、受信通知部205は、配信元装置10に対して、受信通知メッセージm6(図10又は図15参照)をユニキャストで送信する(S407)。
【0155】
上述したように、第二の実施の形態によれば、ブロードキャストによって、一つのノードNから複数のノードNに対して同時にファームウェアファイルf1を配信することができる。したがって、第一の実施の形態に比べて、配信システム1全体の配信時間の短縮化を期待することができる。
【0156】
また、ファームウェアファイルf1の送信時のブロードキャストのホップ数は限定されているため、ファームウェアファイルf1が、多重ホップによって転送されるのを回避することができる。
【0157】
なお、各実施の形態において、配信先確認メッセージf1やダウンロード要求待ち通知メッセージm5のホップ数は、1以上であってもよい。ホップ数が増加された場合、ファームウェアファイルf1の配信に関して多重ホップが発生する可能性がある。したがって、各実施の形態が適用されるネットワーク環境において、配信処理の効率性に鑑みて、適切なホップ数が選択されればよい。
【0158】
また、ダウンロード済みの隣接ノードの存在の検知は、必ずしも当該隣接ノードにより送信されるダウンロード要求待ち通知メッセージm5の受信に基づいて行われなくてもよい。例えば、ダウンロード許可メッセージm3を受信したノードが、ダウンロード済みの隣接ノードを探索するために、ホップ数が限定されたブロードキャストを送信してもよい。ダウンロード済みの隣接ノードは、当該ブロードキャストに対して応答を行えばよい。当該応答に基づいて、当該ブロードキャストの送信元のノードNは、ダウンロード済みの隣接ノードの存在を検知することができる。
【0159】
また、配信対象とされるデータは、特定の装置のファームウェアでなくてもよい。電子データであれば、あらゆるデータが配信対象となりうる。
【0160】
また、各実施の形態は、有線のネットワーク環境に対して適用されてもよい。
【0161】
なお、本実施の形態において、配信先探索部12は、探索部の一例である。ダウンロード許可部13は、許可部の一例である。配信元検知部201は、検知部の一例である。ダウンロード部202は、取得部の一例である。
【0162】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0163】
以上の説明に関し、更に以下の項を開示する。
(付記1)
データの配信元装置と複数の配信先装置とを有する配信システムにおける配信方法であって、
前記配信元装置が、
探索範囲を複数の段階に分けて拡張して配信先装置を探索し、
前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する処理を実行し、
前記配信先装置が、
当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知し、
配信の許可に応じ、前記他の配信先装置より前記データを取得する処理を実行する配信方法。
(付記2)
前記他の配信先装置が、ホップ数が限定されたブロードキャストによって前記データを送信し、
前記取得する処理は、前記ブロードキャストによって送信される前記データを取得する付記1記載の配信方法。
(付記3)
前記検知する処理は、当該配信先装置が探索された前記段階よりも前の前記段階において前記データを取得した前記他の配信先装置の存在を所定の範囲内において検知する付記1又は2記載の配信方法。
(付記4)
前記検知する処理は、前記他の配信先装置が前記データの取得に応じて送信する、前記所定の範囲内にホップ数が限定されたブロードキャストの受信に基づいて、前記他の配信先装置の存在を検知する付記1乃至3いずれか一項記載の配信方法。
(付記5)
データの配信元装置と複数の配信先装置とを有する配信システムであって、
前記配信元装置は、
探索範囲を複数の段階に分けて拡張して配信先装置を探索する探索部と、
前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する許可部とを有し、
前記配信先装置は、
当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知する検知部と、
配信の許可に応じ、前記他の配信先装置より前記データを取得する取得部とを有する配信システム。
(付記6)
前記他の配信先装置は、ホップ数が限定されたブロードキャストによって前記データを送信し、
前記取得部は、前記ブロードキャストによって送信される前記データを取得する付記5記載の配信システム。
(付記7)
前記検知部は、当該配信先装置が探索された前記段階よりも前の前記段階において前記データを取得した前記他の配信先装置の存在を所定の範囲内において検知する付記5又は6記載の配信システム。
(付記8)
前記検知部は、前記他の配信先装置が前記データの取得に応じて送信する、前記所定の範囲内にホップ数が限定されたブロードキャストの受信に基づいて、前記他の配信先装置の存在を検知する付記5乃至7いずれか一項記載の配信システム。
【符号の説明】
【0164】
1 配信システム
11 ファームウェア受信部
12 配信先探索部
13 ダウンロード許可部
14 配信部
15 終了検知部
16 配信先リスト記憶部
100 ドライブ装置
101 記録媒体
102 不揮発性メモリ
103 揮発性メモリ
104 CPU
105 インタフェース装置
201 配信元検知部
202 配信要求部
203 ダウンロード部
204 配信元通知部
205 受信通知部
206 リセット部
207 開始要求受信部
208 配信部
209 終了検知部
210 宛先情報記憶部
B バス
N ノード

【特許請求の範囲】
【請求項1】
データの配信元装置と複数の配信先装置とを有する配信システムにおける配信方法であって、
前記配信元装置が、
探索範囲を複数の段階に分けて拡張して配信先装置を探索し、
前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する処理を実行し、
前記配信先装置が、
当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知し、
配信の許可に応じ、前記他の配信先装置より前記データを取得する処理を実行する配信方法。
【請求項2】
前記他の配信先装置が、ホップ数が限定されたブロードキャストによって前記データを送信し、
前記取得する処理は、前記ブロードキャストによって送信される前記データを取得する請求項1記載の配信方法。
【請求項3】
前記検知する処理は、当該配信先装置が探索された前記段階よりも前の前記段階において前記データを取得した前記他の配信先装置の存在を所定の範囲内において検知する請求項1又は2記載の配信方法。
【請求項4】
前記検知する処理は、前記他の配信先装置が前記データの取得に応じて送信する、前記所定の範囲内にホップ数が限定されたブロードキャストの受信に基づいて、前記他の配信先装置の存在を検知する請求項1乃至3いずれか一項記載の配信方法。
【請求項5】
データの配信元装置と複数の配信先装置とを有する配信システムであって、
前記配信元装置は、
探索範囲を複数の段階に分けて拡張して配信先装置を探索する探索部と、
前記段階ごとに、当該段階において探索された前記各配信先装置に配信を許可する許可部とを有し、
前記配信先装置は、
当該配信先装置よりも前に前記データを取得した他の配信先装置の存在を所定の範囲内において検知する検知部と、
配信の許可に応じ、前記他の配信先装置より前記データを取得する取得部とを有する配信システム。

【図1】
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

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2012−252552(P2012−252552A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−124993(P2011−124993)
【出願日】平成23年6月3日(2011.6.3)
【出願人】(000005223)富士通株式会社 (25,993)
【出願人】(000003687)東京電力株式会社 (2,580)
【Fターム(参考)】