(57)【特許請求の範囲】
【請求項１】
ファームウェアを記憶する宅内通信装置と、前記宅内通信装置のファームウェアの更新を管理する管理計算機と、前記宅内通信装置と前記管理計算機とを接続するネットワークを備えるファームウェア更新システムにおいて、
前記宅内通信装置は、自身のファームウェアのバージョン情報を含む更新確認要求を所定のタイミングで前記管理計算機に送信し、
前記管理計算機は、
最新のファームウェアを提供可能なファームウェア提供可能装置と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の数を示す現在取得数と、前記ファームウェア提供可能装置から前記ファームウェアを同時に取得可能な宅内通信装置の最大数と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の識別子と、を管理するファームウェア提供可能テーブルを保持し、
受信した前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であるか否かに基づいて、前記ファームウェアを更新するか否かを判定し、
前記更新確認要求に含まれるバージョン情報が最新のバージョン情報でないと判定された場合、前記ファームウェア提供可能テーブルを参照し、前記現在取得数が前記最大数に達していない前記ファームウェア提供可能装置を一つ選択し、前記選択された装置をダウンロード先装置として、当該更新確認要求を送信した宅内通信装置に通知し、前記ダウンロード先装置の現在取得数を更新し、
前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であると判定された場合、当該更新確認要求を送信した宅内通信装置を前記ファームウェア提供可能装置として前記ファームウェア提供可能テーブルに記憶し、当該更新確認要求を送信した宅内通信装置が前記ファームウェアを取得していたファームウェア提供可能装置の現在取得数を更新し、
前記宅内通信装置は、前記ダウンロード先装置が通知された場合、前記通知されたダウンロード先装置から、前記ファームウェアを取得することを特徴とするファームウェア更新システム。
【請求項２】
前記管理計算機は、前記ダウンロード先装置を前記宅内通信装置に通知してから、所定時間経過しても、当該宅内通信装置から前記最新のバージョン情報を含む前記更新確認要求を受信しない場合、当該宅内通信装置は当該ダウンロード先装置から前記ファームウェアを取得していないと判定し、当該ダウンロード先装置の現在取得数を更新することを特徴とする請求項１に記載のファームウェア更新システム。
【請求項３】
前記ファームウェア更新システムは、前記最新のファームウェアを提供するためのファームウェア提供計算機を備え、
前記ファームウェア提供可能テーブルには、前記ファームウェア提供計算機が前記ファームウェア提供可能装置として予め登録され、前記ファームウェア提供計算機の前記最大数は、前記ダウンロード先装置として登録された前記宅内通信装置の前記最大数よりも大きく設定され、
前記管理計算機は、
前記ファームウェア提供計算機を優先して前記ファームウェア提供可能装置として選択し、
前記ファームウェア提供計算機の前記現在取得数が前記最大数に達した場合、前記ファームウェア提供可能装置として登録された前記宅内通信装置を選択することを特徴とする請求項１及び請求項２に記載のファームウェア更新システム。
【請求項４】
前記宅内通信装置は、他の宅内通信装置との通信が禁止されており、
前記管理計算機は、前記ダウンロード先装置を選択した場合、前記他の宅内通信装置との通信を許可する通信許可要求を前記ダウンロード先装置に送信し、
前記ダウンロード先装置は、
前記通信許可要求を受信した場合、前記他の宅内通信装置との通信を許可し、
前記更新確認要求を送信した宅内通信装置の前記ファームウェアの更新情報の取得が完了した場合、前記他の宅内通信装置との通信を禁止することを特徴とする請求項１から請求項３のいずれか一つに記載のファームウェア更新システム。
【請求項５】
ファームウェアを記憶する宅内通信装置と、前記宅内通信装置のファームウェアの更新を管理する管理計算機と、前記宅内通信装置と前記管理計算機とを接続するネットワークと、を備えるファームウェア更新システムにおけるファームウェア更新方法において、
前記管理計算機は、
最新のファームウェアを提供可能なファームウェア提供可能装置と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の数を示す現在取得数と、前記ファームウェア提供可能装置から前記ファームウェアを同時に取得可能な宅内通信装置の最大数と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の識別子と、を管理するファームウェア提供可能テーブルを保持し、
前記方法は、
前記宅内通信装置が、自身のファームウェアのバージョン情報を含む更新確認要求を所定のタイミングで前記管理計算機に送信するステップと、
前記管理計算機が、受信した前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であるか否かに基づいて、前記ファームウェアを更新するか否かを判定するステップと、
前記管理計算機が、前記更新確認要求に含まれるバージョン情報が最新のバージョン情報でないと判定された場合、前記ファームウェア提供可能テーブルを参照し、前記現在取得数が前記最大数に達していない前記ファームウェア提供可能装置を一つ選択し、前記選択された装置をダウンロード先装置として、当該更新確認要求を送信した宅内通信装置に通知し、前記ダウンロード先装置の現在取得数を更新するステップと、
前記管理計算機が、前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であると判定された場合、当該更新確認要求を送信した宅内通信装置を前記ファームウェア提供可能装置として前記ファームウェア提供可能テーブルに記憶し、当該更新確認要求を送信した宅内通信装置が前記ファームウェアを取得していたファームウェア提供可能装置の現在取得数を更新するステップと、
前記宅内通信装置が、前記ダウンロード先装置が通知された場合、前記通知されたダウンロード先装置から、前記ファームウェアを取得するステップと、を含むことを特徴とするファームウェア更新方法。
【請求項６】
前記管理計算機が、前記ダウンロード先装置を前記宅内通信装置に通知してから、所定時間経過しても、当該宅内通信装置から前記最新のバージョン情報を含む前記更新確認要求を受信しない場合、当該宅内通信装置は当該ダウンロード先装置から前記ファームウェアを取得していないと判定し、当該ダウンロード先装置の現在取得数を更新するステップを含むことを特徴とする請求項５に記載のファームウェア更新方法。
【請求項７】
前記ファームウェア更新システムは、前記最新のファームウェアを提供するためのファームウェア提供計算機を備え、
前記ファームウェア提供可能テーブルには、前記ファームウェア提供計算機が前記ファームウェア提供可能装置として予め登録され、前記ファームウェア提供計算機の前記最大数は、前記ダウンロード先装置として登録された前記宅内通信装置の前記最大数よりも大きく設定され、
前記方法は、
前記管理計算機が、前記ファームウェア提供計算機を優先して前記ファームウェア提供可能装置として選択するステップと、
前記管理計算機が、前記ファームウェア提供計算機の前記現在取得数が前記最大数に達した場合、前記ファームウェア提供可能装置として登録された前記宅内通信装置を選択するステップと、を含むことを特徴とする請求項５及び請求項６に記載のファームウェア更新方法。
【請求項８】
前記宅内通信装置は、他の宅内通信装置との通信が禁止されており、
前記方法は、
前記管理計算機が、前記ダウンロード先装置を選択した場合、前記他の宅内通信装置との通信を許可する通信許可要求を前記ダウンロード先装置に送信するステップと、
前記ダウンロード先装置が、前記通信許可要求を受信した場合、前記他の宅内通信装置との通信を許可するステップと、
前記ダウンロード先装置が、前記更新確認要求を送信した宅内通信装置の前記ファームウェアの更新情報の取得が完了した場合、前記他の宅内通信装置との通信を禁止することを特徴とする請求項５から請求項７のいずれか一つに記載のファームウェア更新方法。
【請求項９】
ファームウェアを記憶する宅内通信装置とネットワークを介して接続され、前記宅内通信装置のファームウェアの更新を管理する管理計算機において、
前記管理計算機は、
最新のファームウェアを提供可能なファームウェア提供可能装置と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の数を示す現在取得数と、前記ファームウェア提供可能装置から前記ファームウェアを取得可能な宅内通信装置の最大数と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の識別子と、を管理するファームウェア提供可能テーブルを保持し、
前記宅内通信装置のファームウェアのバージョン情報を含む更新確認要求を前記宅内通信装置から受信した場合、前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であるか否かに基づいて、前記ファームウェアを更新するか否かを判定する更新確認判定部と、
前記更新確認要求に含まれるバージョン情報が最新のバージョン情報でないと判定された場合、前記ファームウェア提供可能テーブルを参照し、前記現在取得数が前記最大数に達していない前記ファームウェア提供可能装置をダウンロード先装置として一つ選択し、当該更新確認要求を送信した宅内通信装置に当該ダウンロード先装置から前記ファームウェアを取得するように通知し、前記ダウンロード先装置の現在取得数を更新するダウロード先装置提供部と、
前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であると判定された場合、当該更新確認要求を送信した宅内通信装置を前記ファームウェア提供可能装置として前記ファームウェア提供可能テーブルに記憶し、当該更新確認要求を送信した宅内通信装置が前記ファームウェアを取得していたファームウェア提供可能装置の現在取得数を更新しダウンロード先装置登録部と、を備えることを特徴とする管理計算機。
【請求項１０】
前記管理計算機は、前記ダウンロード先装置を前記宅内通信装置に通知してから、所定時間経過しても、当該宅内通信装置から前記最新のバージョン情報を含む前記更新確認要求を受信しない場合、当該宅内通信装置は当該ダウンロード先装置から前記ファームウェアを取得していないと判定し、当該ダウンロード先装置の現在取得数を更新する強制更新部を備えることを特徴とする請求項９に記載の管理計算機。
【請求項１１】
前記管理計算機は、前記最新のファームウェアを提供するためのファームウェア提供計算機に前記ネットワークを介して接続され、
前記ファームウェア提供可能テーブルには、前記ファームウェア提供計算機が前記ファームウェア提供可能装置として予め登録され、前記ファームウェア提供計算機の前記最大数は、前記ダウンロード先装置として登録された前記宅内通信装置の前記最大数よりも大きく設定され、
前記ダウロード先装置提供部は、
前記ファームウェア提供計算機を優先して前記ファームウェア提供可能装置として選択し、
前記ファームウェア提供計算機の前記現在取得数が前記最大数に達した場合、前記ファームウェア提供可能装置として登録された前記宅内通信装置を選択することを特徴とする請求項９及び請求項１０に記載の管理計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続した宅内通信装置のファームウェア更新を可能とした通信システム及びファームウェア更新時におけるファームウェア配布方法に関する。
【背景技術】
【０００２】
宅内のパソコン等の情報通信機器は、宅内通信装置（BBR（BroadBand Router）及びHGW（Home GateWay）等）を介してインターネット及び通信キャリアによって提供されるネットワークに接続する。
【０００３】
宅内通信装置は、ルータ機能、VoIP（Voice over Internet Protocol）の終端機能、及び暗号化通信機能等を備えるものであって、近年高機能化が進んでいる。宅内通信装置に搭載されるファームウェアは、機能追加、性能改善、及び問題改修等のために、更新が必要となる。
【０００４】
宅内通信装置は宅内に設置され、設置された宅内通信装置の数も多いことから、宅内通信装置は遠隔によるファームウェア更新機能を備えることが一般的である。このファームウェアを遠隔から更新する方法は種々提案されている。
【０００５】
このファームウェアの遠隔更新方法については、例えば、宅内端末装置のファームウェアのバージョンアップを可能とした通信システム及びバージョン管理方法に関し、システムのコスト及び処理負担を増大しない方法として、複数の端末装置のファームウェアを更新するための情報管理サーバとファームウェアファイル格納サーバとをネットワークに接続し、情報管理サーバは、ファームウェアのバージョン情報を含む情報ファイルを、アクセスした宅内端末装置に送出し、ファームウェアファイル格納サーバは、アクセスした宅内端末装置に更新したファームウェアを送出し、宅内端末装置は、電源投入又はネットワークへの接続を契機に、情報管理サーバへアクセスして情報ファイルを取得し、ファームウェアの更新の要否を判定し、要する場合は、ファームウェアファイル格納サーバへアクセスして、ファームウェアのダウンロードを行う通信システム及び方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２２５９６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載された方法を用いた場合であっても、宅内端末装置の台数が多ければ、ファームウェアのダウンロード要求が増え、ファームウェア提供サーバから同時にファームウェアをダウンロードする機会が増え、ファームウェア提供サーバへの負荷が大きくなる。
【０００８】
このため、ファームウェア提供サーバは、ダウンロード要求に応答できなくなり、ファームウェアの更新に失敗するケースが増加することが考えられる。この問題を解決する一つの方法は、ファームウェア提供サーバの台数を増やし、バージョン管理サーバがファームウェアのダウンロード要求を増設したサーバに振り分けることである。しかしながら、この方法には、一般に多数のダウンロード要求を同時に処理するファームウェア提供サーバの設置には多くのコストがかかるという問題がある。
【０００９】
本発明は、新たなファームウェアダウンロード提供サーバの設置コストをかけることなく、ファームウェアのダウンロード要求の負荷分散を図るファームウェア更新システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一例を示せば、ファームウェアを記憶する宅内通信装置と、前記宅内通信装置のファームウェアの更新を管理する管理計算機と、前記宅内通信装置と前記管理計算機とを接続するネットワークを備えるファームウェア更新システムにおいて、前記宅内通信装置は、自身のファームウェアのバージョン情報を含む更新確認要求を所定のタイミングで前記管理計算機に送信し、前記管理計算機は、最新のファームウェアを提供可能なファームウェア提供可能装置と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の数を示す現在取得数と、前記ファームウェア提供可能装置から前記ファームウェアを同時に取得可能な宅内通信装置の最大数と、前記ファームウェア提供可能装置から前記ファームウェアを取得中の宅内通信装置の識別子と、を管理するファームウェア提供可能テーブルを保持し、受信した前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であるか否かに基づいて、前記ファームウェアを更新するか否かを判定し、前記更新確認要求に含まれるバージョン情報が最新のバージョン情報でないと判定された場合、前記ファームウェア提供可能テーブルを参照し、前記現在取得数が前記最大数に達していない前記ファームウェア提供可能装置を一つ選択し、前記選択された装置をダウンロード先装置として、当該更新確認要求を送信した宅内通信装置に通知し、前記ダウンロード先装置の現在取得数を更新し、前記更新確認要求に含まれるバージョン情報が最新のバージョン情報であると判定された場合、当該更新確認要求を送信した宅内通信装置を前記ファームウェア提供可能装置として前記ファームウェア提供可能テーブルに記憶し、当該更新確認要求を送信した宅内通信装置が前記ファームウェアを取得していたファームウェア提供可能装置の現在取得数を更新し、前記宅内通信装置は、前記ダウンロード先装置が通知された場合、前記通知されたダウンロード先装置から、前記ファームウェアを取得することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、新たなファームウェアダウンロード提供サーバの設置コストをかけることなく、ファームウェアのダウンロード要求の負荷分散を図るファームウェア更新システムを提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態のファームウェア更新システムの説明図である。
【図２】本発明の第１の実施形態の宅内通信装置のブロック図である。
【図３】本発明の第１の実施形態のバージョン管理サーバのブロック図である。
【図４】本発明の第１の実施形態のファームウェア提供可能サーバリストの説明図である。
【図５】本発明の第１の実施形態のバージョン管理サーバによるファームウェア更新確認要求受信処理のフローチャートである。
【図６】本発明の第１の実施形態のバージョン管理サーバのタイムアウトエントリ削除機能によるタイムアウトエントリ削除処理のフローチャートである。
【図７】本発明の第１の実施形態の宅内通信装置によって実行されるファームウェア更新確認処理のフローチャートである。
【図８】本発明の第１の実施形態の二台の宅内通信装置がファームウェアを更新する場合のシーケンス図である。
【図９】本発明の第１の実施形態のファームウェアのダウンロードが失敗した場合のシーケンス図である。
【図１０】本発明の第２の実施形態の宅内通信装置がファームウェアを更新する場合のシーケンス図である。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
以下、本発明の第１の実施形態を図１〜図９を用いて説明する。
【００１４】
図１は、本発明の第１の実施形態のファームウェア更新システムの説明図である。
【００１５】
本ファームウェア更新システムは、バージョン管理サーバ１０１、ファームウェア（ＦＷ）提供サーバ１０２、及び複数の宅内通信装置１０３Ａ〜宅内通信装置１０３Ｎ（以下、総称して、宅内通信装置１０３）を備える。バージョン管理サーバ１０１、ファームウェア提供サーバ１０２、及び宅内通信装置１０３は、同じネットワークに接続され、相互に通信可能である。
【００１６】
宅内通信装置１０３は、図示しないプロセッサ、プロセッサに接続されるメモリ、及びプロセッサに接続され、ネットワークに接続されるインタフェースを備える。宅内通信装置１０３は、宅内のパソコン等の計算機に接続され、接続された計算機を、インターネットや通信キャリアによって提供されるネットワークに接続する。宅内通信装置１０３は、自身の基本的な制御を行うためのファームウェアを図示しない記憶領域に記憶しており、当該ファームウェアは更新が必要となるものである。
【００１７】
バージョン管理サーバ１０１は、図示しないプロセッサ、プロセッサに接続されるメモリ、及びプロセッサに接続され、ネットワークに接続されるインタフェースを備え、各宅内通信装置１０３のファームウェアに更新が必要か否か、及びファームウェアの更新情報を提供可能なファームウェア提供可能サーバ（ファームウェア提供可能装置）を管理する。なお、ここで、ファームウェア提供可能サーバは、ファームウェア提供サーバ１０２、及び最新のファームウェアを記憶する宅内通信装置１０３を含む。
【００１８】
ファームウェア提供サーバ１０２は、図示しないプロセッサ、プロセッサに接続されるメモリ、及びプロセッサに接続され、ネットワークに接続されるインタフェースを備え、ファームウェアの更新情報を宅内通信装置１０３に送信する。
【００１９】
本発明の概略について図１を用いて説明する。
【００２０】
まず、宅内通信装置１０３Ａは、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（１１）。なお、ファームウェアの更新確認要求には、自身のファームウェアのバージョン情報、及び、自身の識別子が含まれる。
【００２１】
バージョン管理サーバ１０１は、ファームウェアの更新確認要求に含まれるバージョン情報が最新のバージョン情報であるか否かを判定することによって、ファームウェアの更新が必要か否かを判定する。
【００２２】
ファームウェアの更新確認要求に含まれるバージョン情報が最新のバージョン情報でないと判定された場合、つまり、ファームウェアの更新が必要となった場合、バージョン管理サーバ１０１は、ファームウェア提供可能サーバから一つの装置をファームウェアダウンロード先の装置として選択し、選択した装置のアドレスを通知する。ここでは、いずれの宅内通信装置１０３にも最新のファームウェアが記憶されておらず、ファームウェアダウンロード先の装置としてファームウェア提供サーバ１０２が選択されたとする。
【００２３】
ファームウェアの更新確認要求を送信した宅内通信装置１０３Ａは、ファームウェアダウンロード先の装置（ファームウェア提供サーバ１０２）のアドレスが通知された場合、宅内通信装置１０３は、通知されたアドレスのファームウェア提供サーバ１０２にファームウェアダウンロード要求を送信し、ファームウェアの更新情報をダウンロードする（１２）。
【００２４】
そして、宅内通信装置１０３Ａは、この一連の処理によってファームウェアの更新情報を取得し、最新のファームウェアに更新する。最新のファームウェアに更新が完了した宅内通信装置１０３Ａは、自身が最新のファームウェアを提供可能であることをバージョン管理サーバ１０１に通知する。バージョン管理サーバ１０１は、宅内通信装置１０３Ａから最新のファームウェアを提供可能であることを通知された場合、宅内通信装置１０３Ａをファームウェア提供可能装置として登録する。
【００２５】
この後、バージョン管理サーバ１０１は、他の宅内通信装置１０３Ｂからのファームウェアの更新確認要求を受信した場合（１３）、宅内通信装置１０３Ａをファームウェアのダウンロード先の装置として選択し、選択された宅内通信装置１０３Ａのアドレスを宅内通信装置１０３Ｂに通知する。
【００２６】
宅内通信装置１０３Ｂは、通知されたアドレスの宅内通信装置１０３Ａにファームウェアダウンロード要求を送信し、ファームウェアの更新情報をダウンロードする（１４）。
【００２７】
これによって、バージョン管理サーバ１０１は、ファームウェアの更新要求を振り分けることができ、負荷を分散できる。
【００２８】
図２は、本発明の第１の実施形態の宅内通信装置１０３のブロック図である。
【００２９】
宅内通信装置１０３は、起動時実行処理呼出機能２０１、定期実行処理呼出機能２０２、ファームウェア（ＦＷ）更新要否確認機能２０３、ファームウェア（ＦＷ）ダウンロード（ＤＬ）機能２０４、ファームウェア（ＦＷ）更新機能２０５、装置再起動機能２０６、配布形式ファームウェア（ＦＷ）格納部２０７、起動形式ファームウェア（ＦＷ）格納部２０８、ファームウェア（ＦＷ）ダウンロード（ＤＬ）要求受信部２０９、及び、ファームウェア（ＦＷ）送信機能２１０を備える。
【００３０】
起動時実行処理呼出機能２０１は、宅内通信装置１０３の起動時にファームウェア更新要否確認機能２０３を呼び出す機能である。定期実行処理呼出機能２０２は、周期的にファームウェア更新要否確認機能２０３を呼び出す機能である。
【００３１】
ファームウェア更新要否確認機能２０３は、自身のファームウェアのバージョン情報を含む更新確認要求をバージョン管理サーバ１０１に送信し、バージョン管理サーバ１０１にファームウェアの更新が必要であるか否かを判定させる機能である。
【００３２】
ファームウェアの更新が必要であると判定された場合、バージョン管理サーバ１０１は、ファームウェアのダウンロード先の装置のアドレスを宅内通信装置１０３に通知する。
【００３３】
ファームウェア更新要否確認機能２０３がバージョン管理サーバ１０１からのファームウェアのダウンロード先の装置のアドレスの通知を受け付けた場合、ファームウェアダウンロード機能（２０４）を実行する。
【００３４】
ファームウェアダウンロード機能２０４は、通知されたファームウェアのダウンロード先の装置のアドレスにファームウェアのダウンロード要求を送信し、ファームウェアをダウンロードすることによって、ファームウェアを取得する。
【００３５】
ファームウェアダウンロード機能２０４は、ダウンロードされたファームウェアを、ダウンロードしたままの形式で、配布形式ファームウェア格納部２０７に格納する。
【００３６】
なお、ダウンロードしたままの形式でファームウェアを格納するのは、通常ネットワークを介して取得されたファームウェアには改ざん防止のために暗号化されているためである。配布形式ファームウェア格納部２０７に格納されるファームウェアは、他の宅内通信装置１０３に配布されるので、配布形式ファームウェア格納部２０７には暗号化されたままファームウェアが格納される。
【００３７】
次に、ファームウェア更新機能２０５が実行される。ファームウェア更新機能２０５は、配布形式ファームウェア格納部２０７に格納されたファームウェアを読み込み、読み込んだファームウェアを実行可能な形式に変換し、実行可能な形式に変換したファームウェアを起動形式ファームウェア格納部２０８に格納する。
【００３８】
起動形式ファームウェア格納部２０８は、宅内通信装置１０３が起動された場合に実行されるプログラムを格納する記憶領域である。
【００３９】
最後に、装置再起動機能２０６が実行される。装置再起動機能２０６は、宅内通信装置１０３を再起動させる。
【００４０】
宅内通信装置１０３は、装置再起動機能２０６によって再起動された起動形式ファームウェア格納部２０８に格納された更新されたファームウェアを起動する。また、この場合、起動時実行処理呼出機能２０１によってファームウェア更新要否確認機能２０３が呼び出され、更新されたファームウェアのバージョン情報を含む更新確認要求がバージョン管理サーバ１０１に送信される。
【００４１】
バージョン管理サーバ１０１は、当該更新確認要求を受信した場合、当該宅内通信装置１０３をファームウェア提供可能サーバとして登録する。これによって、宅内通信装置１０３は、ファームウェアを提供する機能を備えることになる。
【００４２】
ファームウェアダウンロード要求受信部２０９が、他の宅内通信装置１０３のファームウェアのダウンロード要求を受信した場合、ファームウェア送信機能２１０を実行する。ファームウェア送信機能２１０は、配布形式ファームウェア格納部２０７に格納されたファームウェアを、ダウンロード要求を送信した宅内通信装置１０３に送信する。
【００４３】
図３は、本発明の第１の実施形態のバージョン管理サーバ１０１のブロック図である。
【００４４】
バージョン管理サーバ１０１は、ファームウェア（ＦＷ）更新要否確認受信機能３０１、更新要否判定機能３０２、ファームウェア（ＦＷ）提供サーバ探索機能３０３、ファームウェア（ＦＷ）更新情報送信機能３０４、最新バージョン情報３０５、ファームウェア（ＦＷ）提供可能サーバリスト３０６、及びタイムアウトエントリ削除機能３０７を備える。
【００４５】
ファームウェア更新要否確認受信機能３０１は、宅内通信装置１０３から送信されたファームウェアの更新確認要求を受信し、更新要否判定機能３０２を実行する。
【００４６】
更新要否判定機能３０２は、図示しない記憶領域に記憶された最新バージョン情報３０５を参照し、受信した更新確認要求に含まれるファームウェアのバージョン情報と最新バージョン情報３０５とを比較する。更新要否判定機能３０２は、最新バージョン情報３０５が受信した更新確認要求に含まれるファームウェアのバージョン情報よりも新しいと判定した場合、ファームウェアの更新が必要と判定し、ファームウェア提供サーバ探索機能３０３を実行する。
【００４７】
ファームウェア提供サーバ探索機能３０３は、ファームウェア提供可能サーバリスト３０６（図４参照）に登録されたファームウェア提供可能サーバから一つサーバをファームウェアのダウンロード先として選択し、ファームウェア更新情報送信機能３０４を実行する。
【００４８】
ファームウェア更新情報送信機能３０４は、ファームウェアの更新が必要な場合には、選択したダウンロード先のアドレスとファームウェアの更新要情報とを更新確認要求の応答として宅内通信装置１０３に送信し、ファームウェアの更新が不要な場合には、ファームウェアの更新不要情報を更新確認要求の応答として宅内通信装置１０３に送信する。
【００４９】
タイムアウトエントリ削除機能３０７は、周期的にファームウェア提供可能サーバリスト３０６を監視し、期限切れのエントリを削除する機能である。
【００５０】
なお、最新バージョン情報３０５が更新された場合、ファームウェア提供可能サーバリスト３０６に登録されたファームウェア提供可能サーバを、ファームウェア提供サーバ１０２のみを残してすべて削除される。
【００５１】
図４は、本発明の第１の実施形態のファームウェア提供可能サーバリスト３０６の説明図である。
【００５２】
ファームウェア提供可能サーバリスト３０６は、エントリの識別子（＃）４０１、ファームウェア（ＦＷ）提供可能サーバアドレス４０２、最大同時ダウンロード（ＤＬ）可能数４０３、現ダウンロード（ＤＬ）可能数４０４、ダウンロード（ＤＬ）中端末ＩＤ４０５、及び、ファームウェア（ＦＷ）提供タイムアウト時刻４０６を含む。
【００５３】
エントリの識別子４０１には、ファームウェア提供可能サーバリスト３０６に登録された各エントリの識別子が登録される。
【００５４】
ファームウェア提供可能サーバアドレス４０２には、ファームウェア提供可能サーバのアドレスが登録される。図４では、サーバアドレスＡは、ファームウェア提供サーバ１０２のアドレスであり、サーバアドレスＢ〜Ｄは、宅内通信装置１０３のアドレスである。
【００５５】
最大同時ダウンロード可能数４０３には、ファームウェア提供可能サーバからファームウェアをダウンロード可能な宅内通信装置１０３の最大数が登録される。なお、最大同時ダウンロード可能数４０３はユーザが設定可能な値である。
【００５６】
また、宅内通信装置１０３の最大同時ダウンロード可能数４０３には、宅内通信装置１０３のデータ転送機能に影響を与えない値が登録される。このため、ファームウェア提供サーバ１０２は、データ転送機能を備えないので、ファームウェア提供サーバ１０２の最大同時ダウンロード可能数４０３は、宅内通信装置１０３の最大同時ダウンロード可能数４０３よりも大きな値が設定されている。
【００５７】
現ダウンロード可能数４０４には、最大同時ダウンロード可能数４０３から、ファームウェア提供可能サーバから現在ダウンロードしているセッション数（宅内通信装置１０３の数）を減算した値が登録される。現ダウンロード可能数４０４に「０」が登録されているファームウェア提供可能サーバはダウンロード要求に応じることができない。
【００５８】
ダウンロード中端末ＩＤ４０５には、各ファームウェア可能サーバからファームウェアをダウンロードしている宅内通信装置１０３の識別子が登録される。なお、宅内通信装置１０３がファームウェアのダウンロードが完了した場合には、当該宅内通信装置１０３の識別子は、ダウンロード中端末ＩＤ４０５から削除される。
【００５９】
ファームウェア提供タイムアウト時刻４０６には、ダウンロード中端末ＩＤ４０５から宅内通信装置１０３の識別子を削除する時刻が登録される。これは、宅内通信装置１０３のファームウェアのダウンロードが失敗する場合もあり、この場合にいつまでもダウンロード中であることが残らないように、ダウンロードの開始から所定時間経過すると強制的にダウンロード中端末ＩＤ４０５から宅内通信装置１０３の識別子を削除する。これによって、ダウンロードが失敗した宅内通信装置１０３はファームウェア提供可能サーバのダウンロード中端末ＩＤ４０５から削除され、ファームウェア提供可能サーバのダウンロード中の宅内通信装置の数が更新（デクリメント）され、現ダウンロード可能数４０４も更新（インクリメント）される。
【００６０】
なお、ファームウェア提供タイムアウト時刻４０６は、タイムアウトエントリ削除機能３０７によって周期的に監視され、現在の時刻がファームウェア提供タイムアウト時刻４０６を過ぎている場合にはエントリが削除される。
【００６１】
図５は、本発明の第１の実施形態のバージョン管理サーバ１０１によるファームウェア更新確認要求受信処理のフローチャートである。
【００６２】
バージョン管理サーバ１０１は、宅内通信装置１０３からファームウェアの更新確認要求を受信した場合、受信した更新確認要求に含まれるファームウェアのバージョン情報と、バージョン管理サーバ１０１が管理する最新バージョン情報とを比較する（Ｓ５０１）。
【００６３】
次に、バージョン管理サーバ１０１は、Ｓ５０１の比較の結果に基づいて、更新確認要求を送信した宅内通信装置１０３のファームウェアは更新される必要があるか否かを判定する（Ｓ５０２）。
【００６４】
バージョン管理サーバ１０１は、受信した更新確認要求に含まれるファームウェアのバージョン情報が最新バージョン情報よりも古い場合、Ｓ５０２で、更新確認要求を送信した宅内通信装置１０３のファームウェアは更新される必要があると判定し、ファームウェア提供可能サーバリスト３０６を参照し、ファームウェアを提供可能なサーバを検索する（Ｓ５０３）。
【００６５】
具体的には、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のファームウェア提供可能サーバアドレス４０２に登録されたアドレスのうち、現ダウンロード可能数４０４に「０」が登録されていないアドレスを検索する。
【００６６】
換言すれば、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のファームウェア提供可能サーバアドレス４０２に登録されたアドレスのうち、現在のダウンロード数が、最大同時ダウンロード可能数４０３よりも小さいアドレスを検索する。
【００６７】
なお、現在のダウンロード数は、各ファームウェア提供可能サーバのダウンロード中端末ＩＤ４０５に登録された宅内通信装置１０３の識別子の数を集計することによって算出される。
【００６８】
次に、バージョン管理サーバ１０１は、Ｓ５０３でファームウェアを提供可能なサーバの検索が成功したか否かを判定する（Ｓ５０４）。
【００６９】
Ｓ５０３でファームウェアを提供可能なサーバの検索が失敗したとＳ５０４で判定された場合、ファームウェアを提供可能なサーバが存在しないので、バージョン管理サーバ１０１は、ファームウェア提供不可通知を更新確認要求の応答として宅内通信装置１０３に送信し（Ｓ５０５）、ファームウェア更新確認受信処理を終了する。
【００７０】
一方、Ｓ５０３でファームウェアを提供可能なサーバの検索が成功したとＳ５０４で判定された場合、バージョン管理サーバ１０１は、ファームウェアを提供可能なサーバとして検索されたファームウェア提供可能サーバから一つのファームウェア提供可能サーバをダウンロード先として選択し、ファームウェア提供可能サーバリスト３０６のエントリのうち選択したダウンロード先に対応するエントリの現ＤＬ可能数４０４をデクリメントする（Ｓ５０６）。
【００７１】
また、バージョン管理サーバ１０１は、選択したダウンロード先に対応するエントリのダウンロード中端末ＩＤ４０５に更新確認要求を送信した宅内通信装置１０３の識別子を登録する。これによって、当該ダウンロード先の現在のダウンロード数をインクリメントされる。
【００７２】
なお、ファームウェア提供サーバ１０２の最大同時ダウンロード可能数４０３は、宅内通信装置１０３の最大同時ダウンロード可能数４０３よりも大きく設定されており、宅内通信装置１０３はデータ転送をしながら、ファームウェアのダウンロード先となるため、宅内通信装置１０３のデータ転送機能にできるだけ影響しないようにするために、バージョン管理サーバ１０１は、ファームウェア提供サーバ１０２から優先して、ダウンロード先として選択してもよい。
【００７３】
そして、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のエントリのうち選択したダウンロード先に対応するエントリのファームウェア提供可能サーバアドレス４０２に登録されたアドレスを含むダウンロード要通知を更新確認要求の応答として宅内通信装置１０３に送信し（Ｓ５０７）、ファームウェア更新確認受信処理を終了する。
【００７４】
一方、バージョン管理サーバ１０１は、受信した更新確認要求に含まれるファームウェアのバージョン情報が最新バージョン情報と同じである場合、Ｓ５０２で、更新確認要求を送信した宅内通信装置１０３のファームウェアは更新される必要がないと判定し、ダウンロード不要通知を更新確認要求の応答として宅内通信装置１０３に送信する（Ｓ５０８）。
【００７５】
次に、バージョン管理サーバ１０１は、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバリスト３０６のダウンロード中端末ＩＤ４０５に登録されているか否かを判定する（Ｓ５０９）。
【００７６】
Ｓ５０９で、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバリスト３０６のダウンロード中端末ＩＤ４０５に登録されていないと判定された場合、Ｓ５１１に進む。
【００７７】
Ｓ５０９で、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバリスト３０６のダウンロード中端末ＩＤ４０５に登録されていると判定された場合、更新確認要求はファームウェアのダウンロードが完了したことを示すものであるため、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６から当該更新確認要求を送信した宅内通信装置１０３の識別子をダウンロード中端末ＩＤ４０５から削除し、現ＤＬ可能数４０４をインクリメントし（Ｓ５１０）、Ｓ５１１に進む。
【００７８】
Ｓ５１０では、ファームウェア提供可能サーバリスト３０６から当該更新確認要求を送信した宅内通信装置１０３の識別子がダウンロード中端末ＩＤ４０５から削除されるので、更新確認要求を送信した宅内通信装置１０３がファームウェアをダウンロードしていたファームウェア提供可能サーバの現在のダウンロード数はデクリメントされる。
【００７９】
次に、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６に、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバとして登録されているか否かを判定する（Ｓ５１１）。
【００８０】
具体的には、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のファームウェア提供可能サーバアドレス４０２に更新確認要求を送信した宅内通信装置１０３のアドレスが登録されているか否かを判定する。
【００８１】
Ｓ５１１で、ファームウェア提供可能サーバリスト３０６に、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバとして登録されていないと判定された場合、更新確認要求を送信した宅内通信装置１０３をファームウェア提供可能サーバとしてファームウェア提供可能サーバリスト３０６に登録し（Ｓ５１２）、ファームウェア更新確認受信処理を終了する。
【００８２】
具体的には、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のファームウェア提供可能サーバアドレス４０２に更新確認要求を送信した宅内通信装置１０３のアドレスを登録する。
【００８３】
一方、Ｓ５１１で、ファームウェア提供可能サーバリスト３０６に、更新確認要求を送信した宅内通信装置１０３がファームウェア提供可能サーバとして登録されていると判定された場合、ファームウェア更新確認受信処理を終了する。
【００８４】
図６は、本発明の第１の実施形態のバージョン管理サーバ１０１のタイムアウトエントリ削除機能３０７によるタイムアウトエントリ削除処理のフローチャートである。
【００８５】
タイムアウトエントリ削除機能３０７はバージョン管理サーバ１０１の起動時から動作するため、タイムアウトエントリ削除処理はバージョン管理サーバ１０１の起動時から実行される。
【００８６】
バージョン管理サーバ１０１は、Ｓ６０２及び６０３をファームウェア提供可能サーバリスト３０６の最初のエントリから最後のエントリまで繰り返し実行する（Ｓ６０１）。
【００８７】
バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６の各エントリのファームウェア提供タイムアウト時刻４０６を参照し、現在時刻よりも前の時刻が登録されたファームウェア提供タイムアウト時刻４０６を含むエントリが存在するか否かを判定する（Ｓ６０２）。
【００８８】
Ｓ６０２で、現在時刻よりも前の時刻が登録されたファームウェア提供タイムアウト時刻４０６を含むエントリが存在すると判定された場合、バージョン管理サーバ１０１は、当該エントリのダウンロード中端末ＩＤ４０５をクリアし、当該エントリのファームウェア提供可能サーバの現ダウンロード可能数４０４をインクリメントする（Ｓ６０３）。このとき、ダウンロード中端末ＩＤ４０５がクリアされたエントリのファームウェア提供可能サーバの現在のダウンロード数はデクリメントされる。
【００８９】
そして、Ｓ６０２及び６０３がファームウェア提供可能サーバリスト３０６の最後のエントリまで実行されると、バージョン管理サーバ１０１は、次回の監視時刻まで処理を待機し（Ｓ６０４）、次回の監視時刻になるとＳ６０１から実行する。
【００９０】
図７は、本発明の第１の実施形態の宅内通信装置１０３によって実行されるファームウェア更新確認処理のフローチャートである。
【００９１】
ファームウェア更新確認処理は、宅内通信装置１０３の起動時又は所定周期で実行される。
【００９２】
まず、宅内通信装置１０３は、自身のファームウェアのバージョン情報を含む更新確認要求をバージョン管理サーバ１０１に送信する（Ｓ７０１）。
【００９３】
次に、宅内通信装置１０３は、Ｓ７０１で送信した更新確認要求の応答をバージョン管理サーバ１０１から受信する（Ｓ７０２）。なお、更新確認要求の応答は、図５に示すＳ５０５で送信されるファームウェア提供不可通知、Ｓ５０７で送信されるダウンロード要通知、及びＳ５０８で送信されるダウンロード不要通知のいずれかである。
【００９４】
次に、宅内通信装置１０３は、Ｓ７０２で受信した更新確認要求の応答はダウンロード要通知であるか否かを判定する（Ｓ７０３）。
【００９５】
Ｓ７０２で受信した更新確認要求の応答はダウンロード要通知であると、Ｓ７０３で判定された場合、宅内通信装置１０３は、ダウンロード先のアドレスも通知されるので、ダウンロード先のファームウェア提供可能サーバからファームウェアをダウンロードする（Ｓ７０４）。
【００９６】
そして、宅内通信装置１０３は、ファームウェアのダウンロードは成功したか否かを判定する（Ｓ７０５）。
【００９７】
Ｓ７０５で、ファームウェアのダウンロードが成功したと判定された場合、宅内通信装置１０３は、ファームウェア更新機能２０５によってダウンロードしたファームウェアを更新し（Ｓ７０６）、自身を再起動する。
【００９８】
一方、Ｓ７０５で、ファームウェアのダウンロードが失敗したと判定された場合、ファームウェア更新確認処理を終了する。この場合、次のファームウェア更新確認処理で再度ファームウェアのダウンロードが実行される。
【００９９】
Ｓ７０２で受信した更新確認要求の応答はダウンロード要通知でない、すなわちファームウェア提供不可通知又はダウンロード不要通知であると、Ｓ７０３で判定された場合、ファームウェア更新確認処理を終了する。
【０１００】
図８は、本発明の第１の実施形態の二台の宅内通信装置１０３がファームウェアを更新する場合のシーケンス図である。
【０１０１】
前提として、宅内通信装置１０３Ａ及び宅内通信装置１０３Ｂはバージョン「００１」のファームウェアを記憶しており、バージョン管理サーバ１０１には、最新のバージョン「００２」を示す情報が保持され、ファームウェア提供サーバ１０２には、最新のバージョン「００２」のファームウェアが配布可能に記憶されているものとする。
【０１０２】
図８では、宅内通信装置１０３Ａは、ファームウェア提供サーバ１０２からファームウェアをダウンロードして、ファームウェアを更新した後、宅内通信装置１０３Ｂは、宅内通信装置１０３Ａからファームウェアをダウンロードして、ファームウェアを更新する。
【０１０３】
以下に、シーケンスの順番に詳細に説明する。
【０１０４】
まず、宅内通信装置１０３Ａは、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（８０１）。この更新確認要求には、宅内通信装置１０３Ａの装置ＩＤ「Ｂ」及び自身のファームウェアのバージョン「００１」が含まれる。
【０１０５】
バージョン管理サーバ１０１は、ステップ８０１の処理で送信された更新確認要求を受信した場合、受信した更新確認要求に含まれるバージョンと最新のバージョンとを比較し、更新が必要か否かを判定する。ここでは、更新確認要求に含まれるバージョン「００１」が最新のバージョン「００２」よりも古いので、更新が必要であると判定される。バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６を参照し、ファームウェアを提供可能なサーバを検索する（８０２）。
【０１０６】
ここでは、ファームウェア提供サーバ１０２（ＩＤ：Ａ）が宅内通信装置１０３Ａのファームウェアのダウンロード先として選択され、バージョン管理サーバ１０１は、ファームウェア提供サーバ１０２（ＩＤ：Ａ）の現ダウンロード可能数をデクリメントし、ファームウェア提供サーバ１０２のダウンロード中端末ＩＤ４０５に宅内通信装置１０３Ａの識別子（Ｂ）を登録する（８０３）。
【０１０７】
次に、バージョン管理サーバ１０１は、更新確認要求の応答としてダウンロード要通知を宅内通信装置１０３Ａに送信する（８０４）。このダウンロード要通知には、ダウンロード先のアドレス、すなわち、ファームウェア提供サーバ１０２のアドレスが含まれる。
【０１０８】
宅内通信装置１０３Ａは、ダウンロード要通知を受信した場合、ダウンロード要通知に含まれるダウンロード先（ファームウェア提供サーバ１０２）のアドレスに、ファームウェアダウンロード要求を送信し（８０５）、ファームウェアをダウンロードする（８０６）。
【０１０９】
宅内通信装置１０３Ａは、ファームウェアのダウンロードが完了すると、ファームウェアを更新し（８０７）、自身を再起動する（８０８）。宅内通信装置１０３Ａは、更新されたファームウェア（バージョン「００２」）で再起動する。宅内通信装置１０３Ａは、再起動すると、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（８０９）。更新確認要求には、自身の装置ＩＤ「Ｂ」及び自身の更新されたファームウェアのバージョン「００２」が含まれる。
【０１１０】
バージョン管理サーバ１０１は、更新確認要求を受信した場合、受信した更新確認要求に含まれるファームウェアのバージョン「００２」は最新のバージョン「００２」と同じであるので、宅内通信装置１０３Ａのファームウェア提供サーバ１０２からのダウンロードが完了したと判断する。そして、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のダウンロード中端末ＩＤ４０５から宅内通信装置１０３Ａの識別子（Ｂ）を削除し、ファームウェア提供サーバ１０２の現ダウンロード可能数をインクリメントする（８１０）。
【０１１１】
また、バージョン管理サーバ１０１は、受信した更新確認要求に含まれるファームウェアのバージョン「００２」は最新のバージョン「００２」と同じであるので、ダウンロード不要通知を宅内通信装置１０３Ａに送信する（８１１）。
【０１１２】
また、バージョン管理サーバ１０１は、宅内通信装置１０３Ａは最新のファームウェアを保持しているので、宅内通信装置１０３Ａをファームウェア提供可能サーバとして、ファームウェア提供可能サーバリスト３０６に登録する（８１２）。
【０１１３】
次に、宅内通信装置１０３Ｂは、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（８１３）。この更新確認要求には、宅内通信装置１０３Ｂの装置ＩＤ「Ｃ」及び自身のファームウェアのバージョン「００１」が含まれる。
【０１１４】
バージョン管理サーバ１０１は、ステップ８１３の処理で送信された更新確認要求を受信した場合、受信した更新確認要求に含まれるバージョンと最新のバージョンとを比較し、更新が必要か否かを判定する。ここでは、更新確認要求に含まれるバージョン「００１」が最新のバージョン「００２」よりも古いので、更新が必要であると判定される。バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６を参照し、ファームウェアを提供可能なサーバを検索する（８１４）。
【０１１５】
ここでは、宅内通信装置１０３Ａ（ＩＤ：Ｂ）が宅内通信装置１０３Ｂのファームウェアのダウンロード先として選択され、バージョン管理サーバ１０１は、宅内通信装置１０３Ａ（ＩＤ：Ｂ）の現ダウンロード可能数をデクリメントし、宅内通信装置１０３Ａのダウンロード中端末ＩＤ４０５に宅内通信装置１０３Ｂの識別子（Ｃ）を登録する（８１５）。
【０１１６】
次に、バージョン管理サーバ１０１は、更新確認要求の応答としてダウンロード要通知を宅内通信装置１０３Ｂに送信する（８１６）。このダウンロード要通知には、ダウンロード先のアドレス、すなわち、宅内通信装置１０３Ａのアドレスが含まれる。
【０１１７】
宅内通信装置１０３Ｂは、ダウンロード要通知を受信した場合、ダウンロード要通知に含まれるダウンロード先（宅内通信装置１０３Ａ）のアドレスに、ファームウェアダウンロード要求を送信し（８１７）、ファームウェアをダウンロードする（８１８）。
【０１１８】
宅内通信装置１０３Ｂは、ファームウェアのダウンロードが完了すると、ファームウェアを更新し（８１９）、自身を再起動する（８２０）。宅内通信装置１０３Ｂは、更新されたファームウェア（バージョン「００２」）で再起動する。宅内通信装置１０３Ｂは、再起動すると、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（８２１）。更新確認要求には、自身の装置ＩＤ「Ｃ」及び自身の更新されたファームウェアのバージョン「００２」が含まれる。
【０１１９】
バージョン管理サーバ１０１は、更新確認要求を受信した場合、受信した更新確認要求に含まれるファームウェアのバージョン「００２」は最新のバージョン「００２」と同じであるので、宅内通信装置１０３Ｂの宅内通信装置１０３Ａからのダウンロードが完了したと判断する。そして、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６のダウンロード中端末ＩＤ４０５から宅内通信装置１０３Ｂの識別子（Ｃ）を削除し、宅内通信装置１０３Ａの現ダウンロード可能数をインクリメントする（８２２）。
【０１２０】
また、バージョン管理サーバ１０１は、受信した更新確認要求に含まれるファームウェアのバージョン「００２」は最新のバージョン「００２」と同じであるので、ダウンロード不要通知を宅内通信装置１０３Ｂに送信する（８２３）。
【０１２１】
また、バージョン管理サーバ１０１は、宅内通信装置１０３Ｂは最新のファームウェアを保持しているので、宅内通信装置１０３Ｂをファームウェア提供可能サーバとして、ファームウェア提供可能サーバリスト３０６に登録する（８２４）。
【０１２２】
このように、宅内通信装置１０３のファームウェアが最新のファームウェアに更新された場合、当該宅内通信装置１０３はファームウェア提供可能サーバとなり、ネットワーク内のファームウェア提供可能サーバを増加させていくことができる。最新のファームウェアの提供から時間が経過し、最新のファームウェアをダウンロードした宅内通信装置１０３が増えるほど、ファームウェア提供可能サーバとなった宅内通信装置１０３へ負荷を分散させることができる。
【０１２３】
図９は、本発明の第１の実施形態のファームウェアのダウンロードが失敗した場合のシーケンス図である。
【０１２４】
宅内通信装置１０３Ｂは、ファームウェアの更新確認要求をバージョン管理サーバ１０１に送信する（９０１）。この更新確認要求には、宅内通信装置１０３Ｂの装置ＩＤ「Ｃ」及び自身のファームウェアのバージョン「００１」が含まれる。
【０１２５】
バージョン管理サーバ１０１は、９０１の処理で送信された更新確認要求を受信した場合、受信した更新確認要求に含まれるバージョンと最新のバージョンとを比較し、更新が必要であると判定し、ファームウェア提供可能サーバリスト３０６を参照し、ファームウェアを提供可能なサーバを検索する（９０２）。
【０１２６】
ここでは、宅内通信装置１０３Ａ（ＩＤ：Ｂ）が宅内通信装置１０３Ｂのファームウェアのダウンロード先として選択され、バージョン管理サーバ１０１は、宅内通信装置１０３Ａ（ＩＤ：Ｂ）の現ダウンロード可能数をデクリメントし、宅内通信装置１０３Ａのダウンロード中端末ＩＤ４０５に宅内通信装置１０３Ｂの識別子（Ｃ）を登録する（９０３）。
【０１２７】
次に、バージョン管理サーバ１０１は、更新確認要求の応答としてダウンロード要通知を宅内通信装置１０３Ｂに送信する（９０４）。このダウンロード要通知には、ダウンロード先のアドレス、すなわち、宅内通信装置１０３Ａのアドレスが含まれる。
【０１２８】
宅内通信装置１０３Ｂは、ダウンロード要通知を受信した場合、ダウンロード要通知に含まれるダウンロード先（宅内通信装置１０３Ａ）のアドレスに、ファームウェアダウンロード要求を送信し（９０５）、ファームウェアをダウンロードする（９０６）。
【０１２９】
図９では、ステップ９０６の処理において、ネットワークの切断又は宅内通信装置１０３Ａの電源断等の理由によって、宅内通信装置１０３Ｂがファームウェアをダウンロードできなくなり、ファームウェアの更新が失敗した状態を示す。この場合、宅内通信装置１０３Ｂは、次に送信する更新確認要求でファームウェアの更新を試みる。
【０１３０】
バージョン管理サーバ１０１は、タイムアウトエントリ削除機能３０７によって、現在の時刻がファームウェア提供タイムアウト時刻４０６を経過したことを検出すると（９０７）、現在の時刻がファームウェア提供タイムアウト時刻４０６を経過したエントリをクリアし、宅内通信装置１０３Ａの現ダウンロード可能数４０４をインクリメントする（９０８）。
【０１３１】
これによって、宅内通信装置１０３がファームウェアの更新に失敗しても、バージョン管理サーバ１０１は、タイムアウトエントリ削除機能３０７によって、ファームウェア提供可能サーバリスト３０６からダウンロード開始から所定時間が経過したエントリを削除し、ダウンロード先となっているサーバの現ダウンロード可能数４０４をインクリメントする。このため、バージョン管理サーバ１０１は、現ダウンロード可能数４０４を正確に管理できる。
【０１３２】
以上によって、本実施形態では、宅内通信装置１０３が最新のファームウェアを保持していれば、ファームウェア提供可能サーバとしてファームウェア提供可能サーバリスト３０６に登録されるので、ファームウェアの更新が必要な宅内通信装置１０３は、ファームウェア提供可能サーバからファームウェアを取得できる。このため、宅内通信装置１０３のファームウェアのダウンロードは、ファームウェア提供サーバ１０２に集中することなく、ファームウェア提供可能サーバとなる宅内通信装置１０３に分散する。
【０１３３】
また、宅内通信装置１０３がファームウェアのダウンロード先となる場合、同時にダウンロード可能な宅内通信装置１０３の数を制限しない場合、ダウンロード先となる宅内通信装置１０３がデータ転送できなくなる可能性がある。
【０１３４】
このため、本実施形態では、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６において、各ファームウェア提供可能サーバの最大同時ダウンロード可能数４０３を管理し、同時にダウンロードする宅内通信装置１０３の数が最大同時ダウンロード可能数４０３を超えないように、ファームウェア提供可能サーバからダウンロード先装置を選択している。
【０１３５】
（第２の実施形態）
以下、本発明の第２の実施形態を図１０を用いて説明する。
【０１３６】
本実施形態は、宅内通信装置１０３は、他の宅内通信装置１０３からのアクセスが禁止されている状態にあり、バージョン管理サーバ１０１から許可要求を受信した場合に、他の宅内通信装置１０３からのアクセスを許可し、ファームウェアのダウンロード許可状態になる実施形態である。
【０１３７】
図１０は、本発明の第２の実施形態の宅内通信装置１０３がファームウェアを更新する場合のシーケンス図である。なお、図８と同じ処理については図８と同じ符号を付与し、説明を省略する。
【０１３８】
バージョン管理サーバ１０１は、ステップ８１４の処理で、バージョン管理サーバ１０１は、ファームウェア提供可能サーバリスト３０６を参照し、ファームウェアを提供するサーバとして、宅内通信装置１０３Ａを選択する。
【０１３９】
次に、バージョン管理サーバ１０１は、選択された宅内通信装置１０３Ａに、他の宅内通信装置１０３からのアクセスを許可する要求であるポート開放要求を送信する（１００１）。
【０１４０】
宅内通信装置１０３Ａは、ポート開放要求を受信した場合、他の宅内通信装置からのアクセスを許可するためにポートを開放し（１００２）、ポートを開放したことを示すポート開放通知をバージョン管理サーバ１０１に送信する（１００３）。
【０１４１】
バージョン管理サーバ１０１は、ポート開放通知を受信すると、宅内通信装置１０３Ａの現ダウンロード可能数４０４をデクリメントする（８１５）。
【０１４２】
宅内通信装置１０３Ｂは、ファームウェアダウンロード要求を宅内通信装置１０３Ａに送信し（８１７）、ファームウェアをダウンロードする（８１８）。宅内通信装置１０３Ａは、宅内通信装置１０３Ｂのファームウェアのダウンロードが完了し、宅内通信装置１０３Ｂとのセッションが終了すると、開放されていたポートを閉塞し（１００４）、他の宅内通信装置１０３からのアクセスを禁止する。
【０１４３】
これによって、宅内通信装置１０３のセキュリティを維持したまま、宅内通信装置１０３からファームウェアがダウンロード可能になる
【符号の説明】
【０１４４】
１０１    バージョン管理サーバ
１０２    ファームウェア提供サーバ
１０３    宅内通信装置
２０１    起動時実行処理呼出機能
２０２    定期実行処理呼出機能
２０３    ファームウェア更新要否確認機能
２０４    ファームウェアダウンロード機能
２０５    ファームウェア更新機能
２０６    装置再起動機能
２０７    配布形式ファームウェア格納部
２０８    起動形式ファームウェア格納部
２０９    ファームウェアダウンロード要求受信部
２１０    ファームウェア送信機能
３０１    ファームウェア更新要否確認受信機能
３０２    更新要否判定機能
３０３    ファームウェア提供サーバ探索機能
３０４    ファームウェア更新情報送信機能
３０５    最新バージョン情報
３０６    ファームウェア提供可能サーバリスト
３０７    タイムアウトエントリ削除機能
【図１】
0005386763.tif 000002
【図２】
0005386763.tif 000003
【図３】
0005386763.tif 000004
【図４】
0005386763.tif 000005
【図５】
0005386763.tif 000006
【図６】
0005386763.tif 000007
【図７】
0005386763.tif 000008
【図８】
0005386763.tif 000009
【図９】
0005386763.tif 000010
【図１０】
0005386763.tif 000011