(57)【要約】【課題】電子機器によって実行される組み込みソフトウェアの更新をプログラムモジュール間の依存関係を考慮した状態で自動的に正しく実行する。【解決手段】ホームネットワークサーバ１は、組み込みソフトウェアの現在の構成を示すソフトウェア構成情報をモジュール提供サーバ２に通知し、ホームネットワークサーバ１にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報をモジュール提供サーバ２に要求する。ホームネットワークサーバ１は、更新リスト情報に基づいて、最新プログラムモジュールと最新プログラムモジュールの実行に必要な他のプログラムモジュールとを含むプログラムモジュール群をモジュール提供サーバ２からダウンロードし、ダウンロードされたプログラムモジュール群を用いて、組み込みソフトウェアを更新する。【選択図】      図１
2005135187.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバとの通信を実行可能な電子機器において、
前記電子機器にインストールされた組み込みソフトウェアの現在の構成を示すソフトウェア構成情報を前記サーバに通知し、前記電子機器にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報を前記サーバに要求する手段と、
前記サーバから送信される前記更新リスト情報に基づいて、前記最新プログラムモジュールと前記最新プログラムモジュールの実行に必要な前記他のプログラムモジュールとを含むプログラムモジュール群を前記サーバからダウンロードする手段と、
前記ダウンロードされたプログラムモジュール群を用いて、前記組み込みソフトウェアを更新する更新処理を実行する手段とを具備することを特徴とする電子機器。
【請求項２】
前記更新リスト情報に基づいて、前記電子機器にインストール可能な最新プログラムモジュールの一覧を表示装置に表示する手段と、
前記最新プログラムモジュールの一覧からダウンロードすべきプログラムモジュールが選択された場合、前記更新リスト情報に基づいて、前記選択されたプログラムモジュールと前記選択されたプログラムモジュールの実行に必要な他のプログラムモジュールとを含むプログラムモジュール群をダウンロード対象のプログラムモジュール群として決定する手段とをさらに具備し、
前記ダウンロードする手段は、前記決定されたダウンロード対象のプログラムモジュール群を前記サーバからダウンロードする手段を含むことを特徴とする請求項１記載の電子機器。
【請求項３】
前記更新処理を実行する手段は、前記組み込みソフトウェアに含まれるアプリケーションプログラムの非動作期間を検出する手段と、前記検出された非動作期間に前記更新処理を実行する手段とを含むことを特徴とする請求項１記載の電子機器。
【請求項４】
前記組み込みソフトウェアは、録画予約情報で指定される放送番組データを記録する録画処理を実行するアプリケーションプログラムを含み、
前記更新処理を実行する手段は、
前記録画予約情報に基づいて、前記アプリケーションプログラムの非動作期間を検出する手段と、
前記検出された非動作期間に前記更新処理を実行する手段とを含むことを特徴とする請求項１記載の電子機器。
【請求項５】
ネットワークを介してサーバとの通信を実行可能な電子機器にインストールされた組み込みソフトウェアを更新する組み込みソフトウェア更新方法であって、
前記組み込みソフトウェアの現在の構成を示すソフトウェア構成情報を前記電子機器が前記サーバに通知するステップと、
前記電子機器から通知されたソフトウェア構成情報に基づいて、前記電子機器にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報を前記サーバが前記電子機器に送信するステップと、
前記サーバから送信される前記更新リスト情報に基づいて、前記最新プログラムモジュールと前記最新プログラムモジュールの実行に必要な前記他のプログラムモジュールとを含むプログラムモジュール群を前記電子機器が前記サーバからダウンロードするステップと、
前記ダウンロードされたプログラムモジュール群を用いて、前記電子機器が前記組み込みソフトウェアを更新する更新処理を実行するステップとを具備することを特徴とする組み込みソフトウェア更新方法。
【請求項６】
前記更新リスト情報に基づいて、前記電子機器が、前記電子機器にインストール可能な最新プログラムモジュールの一覧を表示装置に表示するステップと、
前記表示された最新プログラムモジュールの一覧からダウンロードすべきプログラムモジュールが前記電子機器のユーザによって選択された場合、前記更新リスト情報に基づいて、前記選択されたプログラムモジュールと前記選択されたプログラムモジュールの実行に必要な他のプログラムモジュールとを含むプログラムモジュール群を前記電子機器がダウンロード対象のプログラムモジュール群として決定するステップとをさらに具備し、
前記ダウンロードするステップは、前記決定されたダウンロード対象のプログラムモジュール群を前記電子機器が前記サーバからダウンロードするステップを含むことを特徴とする請求項５記載の組み込みソフトウェア更新方法。
【請求項７】
前記更新処理を実行するステップは、前記組み込みソフトウェアに含まれるアプリケーションプログラムの非動作期間を前記電子機器が検出するステップと、前記検出された非動作期間に前記更新処理を前記電子機器が実行するステップとを含むことを特徴とする請求項５記載の組み込みソフトウェア更新方法。
【請求項８】
前記組み込みソフトウェアは、録画予約情報で指定される放送番組データを記録する録画処理を実行するアプリケーションプログラムを含み、
前記更新処理を実行するステップは、
前記録画予約情報に基づいて、前記アプリケーションプログラムの非動作期間を前記電子機器が検出するステップと、
前記検出された非動作期間に前記電子機器が前記更新処理を実行するステップとを含むことを特徴とする請求項５記載の組み込みソフトウェア更新方法。
【請求項９】
前記更新リスト情報を前記電子機器に送信するステップは、
前記電子機器のユーザが正規会員であるか否かを前記サーバが判別するステップと、
前記電子機器のユーザが正規会員である場合、前記サーバに蓄積されたアップグレードされたプログラムモジュールを含むプログラムモジュール群それぞれのバージョン番号と、前記電子機器から通知されたソフトウェア構成情報で指定される各プログラムモジュールのバージョン番号とに基づいて、前記サーバが最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報を前記電子機器に送信するステップと、
前記電子機器のユーザが正規会員ではない場合、前記アップグレードされたプログラムモジュールを除く前記サーバに蓄積されたプログラムモジュール群それぞれのバージョン番号と、前記電子機器から通知されたソフトウェア構成情報で指定される各プログラムモジュールのバージョン番号とに基づいて、前記サーバが最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報を前記電子機器に送信するステップとを含むことを特徴とする請求項５記載の組み込みソフトウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は組み込みソフトウェアによって動作する電子機器およびその組み込みソフトウェアの更新方法に関する。
【背景技術】
【０００２】
近年、ビデオレコーダ、ＴＶ、ネットワーク機器のような様々な電子機器がいわゆる情報家電として開発されている。これら電子機器は、その電子機器にあらかじめインストールされた組み込みソフトウェアの制御の下に動作するように設計されている。
【０００３】
このため、組み込みソフトウェアによって動作する電子機器においては、その組み込みソフトウェアを更新することにより、動作の不具合の解消、新たな機能の追加等を行うことができる。
【０００４】
ソフトウェアの更新する方法としては、新バージョンのプログラムモジュールと旧バージョンのプログラムモジュールとの間の差分のみをセンタから端末にダウンロードする技術が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００１−２０２２３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１においては、プログラムモジュール間の依存関係については考慮されていない。組み込みソフトウェアは、様々なプログラムモジュールの集合から構成されている。通常、プログラムモジュール間には依存関係が存在する。あるプログラムモジュールを実行するためには、他のあるプログラムモジュールが電子機器にすでにインストールされていることが必要となる。しかし、ユーザ自身がプログラムモジュール間の依存関係を考慮してダウンロードすべきプログラムモジュールを選択することは極めて困難である。
【０００６】
よって、組み込みソフトウェアの更新に必要なプログラムモジュール群をプログラムモジュール間の依存関係を考慮して自動的にダウンロードするための新たな仕組みが必要である。
【０００７】
本発明は上述の事情を考慮してなされたものであり、プログラムモジュール間の依存関係を考慮した状態で組み込みソフトウェアの更新を自動的に正しく実行することが可能な電子機器および組み込みソフトウェア更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明は、ネットワークを介してサーバとの通信を実行可能な電子機器において、前記電子機器にインストールされた組み込みソフトウェアの現在の構成を示すソフトウェア構成情報を前記サーバに通知し、前記電子機器にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報を前記サーバに要求する手段と、前記サーバから送信される前記更新リスト情報に基づいて、前記最新プログラムモジュールと前記最新プログラムモジュールの実行に必要な前記他のプログラムモジュールとを含むプログラムモジュール群を前記サーバからダウンロードする手段と、前記ダウンロードされたプログラムモジュール群を用いて、前記組み込みソフトウェアを更新する更新処理を実行する手段とを具備することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、プログラムモジュール間の依存関係を考慮した状態で組み込みソフトウェアの更新を自動的に正しく実行することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係る電子機器の構成が示されている。この電子機器はマイクロプロセッサを含む組み込みシステムを内蔵しており、その電子機器にインストールされた組み込みソフトウェアによって動作する。組み込みソフトウェアは組み込みシステムの動作、つまり電子機器の動作を制御するソフトウェアである。この電子機器は、ホームネットワークサーバとして実現されている。
【００１１】
このホームネットワークサーバ１は、通信機能とビデオレコーダ機能とを搭載した電子機器である。ホームネットワークサーバ１は、ユーザからの要求に応じて、放送番組データの視聴サービスをユーザに提供する。さらに、ホームネットワークサーバ１は、ブロードバンドルータ１１を介して、インターネット３のような外部ネットワークに接続されている。ブロードバンドルータ１１は、有線または無線のＬＡＮを介してパーソナルコンピュータ４に接続されている。ブロードバンドルータ１１は、家庭内のパーソナルコンピュータ４とインターネット３上の各種Ｗｅｂサーバとの間のデータ転送を実行する。
【００１２】
ホームネットワークサーバ１は、ＴＶ番組のような放送番組データの受信および記録を行う機能を有する。ホームネットワークサーバ１は、現在放送中の放送番組データまたはホームネットワークサーバ１内のハードディスクドライブ１４にすでに記録された放送番組データを、有線または無線のＬＡＮを介してパーソナルコンピュータ４に送信することができる。また、ホームネットワークサーバ１は、ユーザによって入力された録画予約情報で指定される放送番組データを記録する機能も有している。
【００１３】
ホームネットワークサーバ１の動作は、ホームネットワークサーバ１にインストールされた組み込みソフトウェア（カーネル、ドライバ群、ライブラリ、アプリケーション）によって制御される。ホームネットワークサーバ１は、組み込みソフトウェアを自動更新する機能を有している。組み込みソフトウェアの自動更新は、ホームネットワークサーバ１とインターネット３上のモジュール提供サーバ２との間の通信を用いて実行される。モジュール提供サーバ２は、例えばＨＴＴＰ（Hyper Text Transfer Protocol）サーバによって実現されている。モジュール提供サーバ２とホームネットワークサーバ１との間の通信は、ＨＴＴＰで規定された通信プロトコルに従って実行される。もちろん、モジュール提供サーバ２とホームネットワークサーバ１との間で取り決めた専用の通信プロトコルを用いても良い。
【００１４】
ブロードバンドルータ１１はルータとして機能するデバイスである。ブロードバンドルータ１１はＷＡＮコネクタとＬＡＮコネクタを有する。ＷＡＮコネクタは、ＡＤＳＬ、ＣＡＴＶのような通信回線を介してインターネット３に接続される。ＬＡＮコネクタは家庭内の有線ＬＡＮを介してパーソナルコンピュータ４に接続される。ブロードバンドルータ１１はさらに無線ＬＡＮデバイスを内蔵しており、パーソナルコンピュータ４に無線接続することもできる。ホームネットワークサーバ１も家庭内の有線または無線のＬＡＮを介してブロードバンドルータ１１に接続される。
【００１５】
ブロードバンドルータ１１は、インターネット３上のＷｅｂサーバとパーソナルコンピュータ４との間のデータ転送を実行する。さらに、ブロードバンドルータ１１は、ホームネットワークサーバ１によって受信された放送番組データをパーソナルコンピュータ４に送信する機能も有する。なお、ブロードバンドルータ１１の機能をホームネットワークサーバ１が有していてもよい。
【００１６】
ホームネットワークサーバ１は、ＴＶチューナ１２、ＭＰＥＧ２エンコーダ１３、ハードディスクドライブ１４、オーディオ・ビデオ（ＡＶ）出力インタフェース部（ＡＶ出力Ｉ／Ｆ）１５、ユーザインタフェース部（ユーザＩ／Ｆ）１６、ＣＰＵ１７、メモリ１８、ハードディスクドライブ１９、およびＭＰＥＧ２デコーダ２０を備えている。
【００１７】
ＴＶチューナ１２はＴＶアンテナに接続されている。ＴＶチューナ１２はＴＶ放送番組のような放送番組データの受信および局選択を実行するデバイスである。ＴＶチューナ１２はユーザによって指定されたあるチャネルの放送番組データを受信する。ＭＰＥＧ２エンコーダ１３は、ＴＶチューナ１２によって受信された放送番組データを圧縮符号化する。ハードディスクドライブ１４は放送番組データを格納する記憶装置である。このハードディスクドライブ１４はＭＰＥＧ２エンコーダ１３によって圧縮符号化された放送番組データを記憶する。
【００１８】
ＡＶ出力Ｉ／Ｆ１５は、ハードディスクドライブ１４に記録された放送番組データをＴＶ受像機５のような外部ＡＶ機器に出力する。ハードディスクドライブ１４に記録された放送番組データは圧縮符号化されているので、ＭＰＥＧ２デコーダ２０によってデコードされた後にＡＶ出力Ｉ／Ｆ１５を介して外部ＡＶ機器に出力される。ユーザＩ／Ｆ１６は、ＧＵＩを用いてユーザとの対話を行うデバイスであり、ユーザからの操作要求を入力する入力装置、およびホームネットワークサーバ１に設けられた表示装置に操作画面を表示する出力装置とを含む。
【００１９】
操作画面は、ＡＶ出力Ｉ／Ｆ１５を通じてＴＶ受像機５のような外部表示装置に表示することもできる。この場合、ユーザはＴＶ受像機５に表示される操作画面を見ながら、赤外線リモコンユニットを操作することにより、操作要求をホームネットワークサーバ１に発行することができる。また、操作画面は、ブロードバンドルータ１１、および有線又は無線のＬＡＮを通じて、パーソナルコンピュータ４に表示することもできる。この場合、ユーザはパーソナルコンピュータ４の表示装置に表示される操作画面を見ながらパーソナルコンピュータ４を操作することにより、操作要求を有線又は無線のＬＡＮを通じてホームネットワークサーバ１に発行することができる。
【００２０】
ＣＰＵ１７はホームネットワークサーバ１の動作を制御するプロセッサであり、組み込みソフトウェアを実行する。組み込みソフトウェアは、複数のプログラム、つまりカーネル、ドライバ群、ライブラリ群、アプリケーションプログラム群を含む。さらに、本実施形態では、組み込みソフトウェアは、その組み込みソフトウェアの自動更新機能を実現するためのプログラム群として、ユーザ通知部１０２、モジュール情報取得部１０３、モジュール取得部１０４、モジュール更新処理部１０５、およびプロセス管理部１０６等を含む。ＣＰＵ１７は、これらユーザ通知部１０２、モジュール情報取得部１０３、モジュール取得部１０４、モジュール更新処理部１０５、およびプロセス管理部１０６を実行することによって、組み込みソフトウェアの自動更新のための処理を実行する。組み込みソフトウェアの更新は、それを構成する個々のプログラムモジュール単位で行われる。各プログラムモジュールはある一つの機能を実行するためのプログラム群（ソフトウェア・パッケージともいう）であり、少なくとも１つのプログラムを含む。
【００２１】
ユーザ通知部１０２は、ホームネットワークサーバ１のユーザに対してユーザインタフェース部１６を介して各種情報を通知する。モジュール情報取得部１０３は、組み込みソフトウェアの現在の構成を示すソフトウェア構成情報をモジュール提供サーバ２に通知して、ホームネットワークサーバ１にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを示す更新リスト情報をモジュール提供サーバ２に対して要求する機能を持つ。ソフトウェア構成情報は、組み込みソフトウェアを構成するプログラムモジュールそれぞれのプログラム名およびバージョン番号を示す。
【００２２】
モジュール取得部１０４は、モジュール提供サーバ２から送信される更新リスト情報に基づいて、モジュール提供サーバ２から最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュールとを含むプログラムモジュール群をモジュール提供サーバ２からダウンロードする機能を持つ。モジュール更新処理部１０５は、モジュール配信サーバ２からダウンロードされたプログラムモジュール群を用いて、組み込みソフトウェアを更新する更新処理を実行する機能を持つ。プロセス管理部１０６は、組込機器ソフトウェアを構成する各プログラム（各プロセス）の状態を管理し、カーネルおよびアプリケーションの各々を起動、停止する機能をもつ。組み込みソフトウェアに含まれるアプリケーションプログラムは、例えば、録画、再生などの処理を実行する機能をもつ。
【００２３】
モジュール提供サーバ２は最新のプログラムモジュール群をホームネットワークサーバ１に提供するためのサーバコンピュータである。モジュール提供サーバ２は、モジュール蓄積部２０２を備えている。モジュール蓄積部２０２は、組込機器ソフトウェアに適用可能な、バージョンアップされたプログラムモジュール群を蓄積する記憶装置である。さらに、モジュール提供サーバ２は、モジュール配信部２０３、モジュールバージョン管理部２０４、モジュールバージョン情報配信部２０５、および個体情報管理部２０６を有している。これらモジュール配信部２０３、モジュールバージョン管理部２０４、モジュールバージョン情報配信部２０５、および個体情報管理部２０６はそれぞれモジュール提供サーバ２によって実行されるプログラムとして実現されている。
【００２４】
モジュール配信部２０３は、ホームネットワークサーバ１からのダウンロード要求に応じて、バージョンアップされたプログラムモジュールをホームネットワークサーバ１へ配信する機能をもつ。モジュールバージョン管理部２０４は、モジュール管理データベース３０１を用いて、モジュール蓄積部２０２に蓄積された各プログラムモジュールのバージョンを管理する。モジュール管理データベース３０１は、図２に示すように、モジュール蓄積部２０２に蓄積された各プログラムモジュール毎に、そのモジュール名、バージョン番号、依存モジュール名の３つの属性を管理する。ここで、依存モジュールとは、あるプログラムモジュールの実行に必要となるプログラムモジュールである。
【００２５】
モジュールバージョン情報配信部２０５は、ホームネットワークサーバ１にインストール可能な最新プログラムモジュールと当該最新プログラムモジュールの実行に必要な他のプログラムモジュール（依存モジュール）とを示す更新リスト情報を、ホームネットワークサーバ１に提供する機能を持つ。個体情報管理部２０６は、個体情報管理データベース３０２を用いて、ホームネットワークサーバ１によるプログラムモジュールの更新履歴を管理する。モジュール提供サーバ２は、インターネット３に接続された複数のホームネットワークサーバ１によって共有される。このため、個体情報管理部２０６は、ホームネットワークサーバ毎に、プログラムモジュールの更新履歴を管理する。
【００２６】
個体情報管理データベース３０２は、図３に示すように、各ホームネットワークサーバに固有の個体識別番号毎に、そのホームネットワークサーバにダウンロードされたプログラムモジュールのモジュール名およびバージョン番号、さらには更新フラグを管理する。更新フラグは、ホームネットワークサーバ１へのプログラムモジュールのダウンロード時に更新失敗を示す値にセットされる。そして、更新フラグは、プログラムモジュールの更新が成功したことを示すホームネットワークサーバ１からの通知に応答して、更新成功を示す値に変更される。
【００２７】
次に、プログラムモジュール更新手順を説明する。
【００２８】
ホームネットワークサーバ１のプログラムモジュール更新機能の利用に先立ち、初期設定処理を行うことが必要となる。初期設定処理は、ホームネットワークサーバ１の個体識別番号をモジュール提供サーバ２に登録するデバイス登録処理である。
【００２９】
図４のフローチャートは初期設定処理の手順を示している。
【００３０】
例えばホームネットワークサーバ１のユーザがユーザインタフェース１６によって表示される操作画面上の初期設定ボタンを押すと（ステップＳ１０１のＹＥＳ）、ホームネットワークサーバ１のＣＰＵ１７は、インターネット３を介してモジュール提供サーバ２との接続を確立し、デバイス登録要求をモジュール提供サーバ２に送信する（ステップｓ１０２）。モジュール提供サーバ２の個体情報管理部２０６は、ホームネットワークサーバ１から送信されたデバイス登録要求に応答して、ホームネットワークサーバ１に固有の個体識別番号を発行し、その個体識別番号を個体情報管理データベース３０２に保存する（ステップＳ１０３）。この後、個体情報管理部２０６は、発行した個体識別番号をホームネットワークサーバ１に送信する。ホームネットワークサーバ１のＣＰＵ１７は、モジュール提供サーバ２から送信される個体識別番号をハードディスクドライブ１９に保存する。
【００３１】
組込機器ソフトウェアの開発事業者は、その組み込みソフトウェアを構成するプログラムモジュール（モジュールＡ、モジュールＢ、モジュールＣ、…）のバージョンアップを行うと、各プログラムモジュールを例えばＲＰＭ（ＲｅｄＨａｔ  Ｐａｃｋａｇｅ  Ｍａｎａｇｅｒ）などのファイル形式でパッケージ化して、モジュール提供サーバ２のモジュール蓄積部２０２へ蓄積する。バージョンアップの理由は、プログラムモジュールのバグ修正、性能向上、機能強化など様々である。開発事業者がモジュールのパッケージ化を行う際には、当該開発事業者の身元を明確にするための署名を行うようにしてもよい。
【００３２】
開発事業者は、新バージョンのプログラムモジュールをモジュール蓄積部２０２へ蓄積すると共に、新バージョンのプログラムモジュールのモジュール名、バージョン番号、依存モジュール名をモジュール管理データベース３０１に登録する。
【００３３】
例えば、モジュールＣを実行するためにはモジュールＢが必要であり、モジュールＢを実行するためにはモジュールＡが必要である場合を想定する。この場合、図２に示されているように、モジュールＣに対応する依存モジュールとしてモジュールＢが、そしてモジュールＢに対応する依存モジュールとしてモジュールＡがモジュール管理データベース３０１に登録される。
【００３４】
次に、図５および図６のフローチャートを参照して、組み込みソフトウェアの更新のために実行される具体的な手順について説明する。
【００３５】
組込機器ソフトウェアのモジュール情報取得部１０３は、定期的に、個体識別番号およびソフトウェア構成情報を更新リスト情報取得要求としてモジュール提供サーバ２に対して送信し、これにより更新リスト情報をモジュール提供サーバ２に要求する（ステップＳ１１１）。このステップＳ１１１においては、モジュール情報取得部１０３は、まず、ハードディスクドライブ１９に現在インストールされているプログラムモジュールそれぞれのバージョン番号を収集する。組み込みソフトウェアの現在の構成を示す各プログラムモジュールのモジュール名およびバージョン番号は、組込機器ソフトウェア内にデータベースとして管理しても良い。モジュール情報取得部１０３からモジュール提供サーバ２に通知されるソフトウェア構成情報は、図８に示されているように、組込機器ソフトウェアを構成するプログラムモジュール群それぞれのモジュール名とバージョン番号とを示すリストから構成されている。ソフトウェア構成情報の通知は、例えば毎日決まった時刻に実行される。また、複数のホームネットワークサーバからの通知が同時に発生するのを防止するために、各ホームネットワークサーバが、乱数を使って計算された時刻、あるいは個体識別番号を使って計算された時刻に、自身の組み込みソウトウェアに対応するソフトウェア構成情報をモジュール提供サーバ２に通知しても良い。
【００３６】
モジュール提供サーバ２のモジュールバージョン管理部２０４は、バージョン情報を送信したホームネットワークサーバ１の個体識別番号が個体情報データベース３０２に登録されていることを個体情報管理部２０６を通じて確認した後、更新リスト情報の作成処理を実行する（ステップＳ１１２）。このステップＳ１１２では、モジュールバージョン管理部２０４は、ホームネットワークサーバ１から通知されたソフトウェア構成情報とモジュール管理データベース３０１とに基づいて、ソフトウェア構成情報で指定されたプログラムモジュール毎に、そのプログラムモジュールが最新のものであるかどうかを判別する。ソフトウェア構成情報で通知されたプログラムモジュール群の中に最新のものでないプログラムモジュールが含まれている場合には、モジュールバージョン管理部２０４は、ホームネットワークサーバ１にインストール可能な最新のプログラムモジュールとその最新プログラムモジュールに対応する依存モジュールとを示す更新リスト情報を作成する。更新リスト情報の例を図９に示す。プログラムモジュール間の依存関係によってはそれらプログラムモジュールをインストールする順番にも制約が加えられることがある。例えば、モジュールＣをアップデートするためにはモジュールＢを先にアップデートする必要があり、モジュールＢをアップデートするためにはモジュールＡを先にアップデートする必要がある、という場合である。この場合、インストールする順番を示す情報が図９のように更新リスト情報に付加される。なお、インストールする順番を示す情報の代わりに、モジュールＣに対応する依存モジュールがモジュールＢであり、モジュールＢに対応する依存モジュールがモジュールＡであることを示す依存関係情報を、更新リスト情報に付加しても良い。
【００３７】
モジュール提供サーバ２のモジュールバージョン情報配信部２０５は、ソフトウェア構成情報を送信したホームネットワークサーバ１に対して、モジュールバージョン管理部２０４によって作成された更新リスト情報を送信する（ステップＳ１１３）。
【００３８】
更新リスト情報を受信すると、ホームネットワークサーバ１のモジュール情報取得部１０４は、ユーザ通知部１０２を用いて図１０に示すような更新通知ダイアログを操作画面上に表示することにより、バージョンアップされたプログラムが存在することをユーザに通知する（ステップＳ１１４）。更新通知ダイアログは、バージョンアップの準備が出来たことを示すメッセージ、「詳細」ボタン４０１、「キャンセル」ボタン４０２から構成される。「詳細」ボタン４０１は、最新モジュールの一覧を表示するためのボタンである。一方、「キャンセル」ボタン４０２は自動更新処理を終了するためのボタンである。
【００３９】
ユーザによって「詳細」ボタン４０１が押されたならば、ユーザ通知部１０２は、更新リスト情報に基づいて、最新プログラムモジュールの一覧を示す図１１のようなモジュール選択ダイアログを表示する（ステップＳ１１５）。モジュール選択ダイアログは、更新リスト情報に含まれるプログラムモジュール毎にモジュール名およひそのモジュールの説明を表示する。モジュール選択ダイアログには、更新リスト情報で指定される全てのモジュール群（依存モジュールも含む）を表示してもよいが、バージョンアップされた最新のプログラムモジュール群の一覧のみを表示し、依存モジュール群の表示を省略してもよい。さらに、モジュール選択ダイアログは、更新リスト情報に含まれるプログラムモジュール毎にチェックボックスを表示する。対応するチェックボックスがユーザによってチェックされたプログラムモジュールがダウンロード対象として選択される。
【００４０】
モジュール取得部１０４は、モジュール選択ダイアログ上で選択された各プログラムモジュールおよびその選択された各プログラムモジュールに対応する依存モジュールをダウンロードするためのダウンロードリストを作成する（ステップＳ１１６）。このダウンロードリスト作成処理は、図７のフローチャートに示す手順で実行される。モジュール取得部１０４は、モジュール選択ダイアログ上でプログラムモジュールが選択されると、その選択されたプログラムモジュールのモジュール名をダウンロードリストに追加する（ステップＳ１３１，Ｓ１３２）。次いで、モジュール取得部１０４は、更新リスト情報に含まれる依存関係情報または更新リスト情報に含まれるインストール順を示す情報に基づいて、選択されたプログラムモジュールに対応する依存モジュールが存在するかどうかを判断する（ステップＳ１３３）。存在するならば（ステップＳ１３３のＹＥＳ）、モジュール取得部１０４は、選択されたプログラムモジュールに対応する依存モジュールのモジュール名をダウンロードリストに追加する（ステップＳ１３４）。
【００４１】
作成されたダウンロードリストに従い、モジュール取得部１０４は、プログラムモジュール群をモジュール提供サーバ２からダウンロードする（ステップＳ１１７）。このステップＳ１１７では、モジュール取得部１０４は、ダウンロードリストに登録されたプログラムモジュール毎に、その取得要求を個体識別番号と共にモジュール提供サーバ２に送信する。モジュール提供サーバ２のモジュール配信部２０３は、取得要求で指定されるプログラムモジュールをホームネットワークサーバ１に送信する。モジュール提供サーバ２からホームネットワークサーバ１にプログラムモジュールがダウンロードされると、ホームネットワークサーバ１はダウンロードの完了をモジュール提供サーバ２に通知する。この通知を受け、モジュール提供サーバ２は、個体情報管理部２０６を用いて、ホームネットワークサーバ１にダウンロードされたプログラムモジュールに対応する個体情報管理データベース３０２内の更新フラグを失敗にセットする。
【００４２】
このように、ホームネットワークサーバ１は、モジュール提供サーバ２から送信される更新リスト情報を参照してダウンロードすべきプログラムモジュールを決定する。これにより、ユーザによってどのプログラムモジュールが選択された場合でも、その選択されたプログラムモジュールのみならず、その選択されたプログラムモジュールに対応する依存モジュールをもモジュール提供サーバ２から自動的にダウンロードすることが出来る。
【００４３】
プログラムモジュール群がダウンロードされた後、モジュール更新処理部１１８は、プロセス管理部１０６を用いて、組み込みソフトウェアに含まれるアプリケーションプログラムの非動作期間を検出する（ステップＳ１１８）。そして、モジュール更新処理部１１８は、検出された非動作期間に、つまりアプリケーションプログラムが実行されていない空き時間に、ダウンロードされたプログラムモジュール群を用いて組み込みソフトウェアを更新する更新処理を実行する（ステップＳ１１９，Ｓ１２０）。もしアプリケーションプログラムが現在実行されておらず、且つ一定時間後に開始される予定もないならば、更新処理が即座に開始される。ステップＳ１２０における更新処理においては、ダウンロードされたプログラムモジュール群がハードディスクドライブ１９にインストールされる。この場合、既にインストールされている旧バージョンのプログラムモジュールが最新バージョンのプログラムモジュールによって更新される。本実施形態では、アプリケーションプログラムの非動作期間に更新処理が実行される。よって、アプリケーションプログラムが異常終了されることなく、アプリケーションプログラムのプログラムモジュールを正常に更新することができる。
【００４４】
更新処理が成功したならば（ステップＳ１２１のＹＥＳ）、モジュール更新処理部１１８は、更新処理が成功したことをモジュール提供サーバ２に通知する（ステップＳ１２２）。このステップＳ１２２では、モジュール更新処理部１１８は、更新処理が成功したプログラムモジュール毎に、そのモジュール名とバージョン番号をモジュール提供サーバ２に通知する。モジュール提供サーバ２は、個体情報管理データベース３０２内の該当する更新フラグを成功に変更する。一方、更新処理が失敗したならば（ステップＳ１２１のＮＯ）、モジュール更新処理部１１８は、ユーザインタフェース１６を通じてエラーメッセージを操作画面上に表示する（ステップＳ１２３）。
【００４５】
なお、図５に破線で示されているように、ステップＳ１１４〜Ｓ１１６の処理をスキップしてもよい。この場合、モジュール取得部１０４は、モジュール提供サーバ２から送信される更新リスト情報で指定される全てのプログラムモジュールをダウンロードすべきモジュールとして自動的に選択し、それら全てのプログラムモジュールをモジュール提供サーバ２からダウンロードする（ステップＳ１１７）。例えば、自動更新モードとユーザ選択モードとを予め用意しておくことが好ましい。ホームネットワークサーバ１のＣＰＵ１７は、ユーザによって自動更新モードが予め選択されている時にはステップＳ１１４〜Ｓ１１６の処理をスキップし、またユーザによってユーザ選択モードが予め選択されている時にはステップＳ１１４〜Ｓ１１６の処理を実行する。
【００４６】
次に、図１２を参照して、非動作期間検出処理の例を説明する。
【００４７】
ホームネットワークサーバ１においては、録画予約情報で指定される放送番組データを記録する録画処理を実行する録画用アプリケーションプログラムが予めインストールされている。録画予約情報は、ユーザによって録画予約されたＴＶ放送番組毎に、その録画開始時間、録画終了時間、録画すべきチャネル番号を示す。プロセス管理部１０６は、録画予約情報に従って、録画用アプリケーションプログラムの起動および終了を制御する。
【００４８】
モジュール更新処理部１１８は、録画予約情報を取得する（ステップＳ２０１）。そして、モジュール更新処理部１１８は、その録画予約情報に基づいて録画用アプリケーションプログラムが実行されるスケジュールを把握することにより、録画用アプリケーションプログラムの非実行期間、つまり録画処理の空き時間を検出する（ステップＳ２０２）。このステップＳ２０２では、例えば、全てのプログラムモジュール群のダウンロードが完了した時点から、最も早く訪れる、予め決められた時間長（例えば３０分）分の空き時間が検出される。例えば、図１２の例では、もしプログラムモジュール群のダウンロードが１０：００に完了したならば、１３：００から１４：００までの空き時間を利用して組み込みソフトウェアの更新処理（インストール）が実行される。
【００４９】
図１３には、個体情報管理データベース３０２の他の例が示されている。  
この例においては、個体情報管理データベース３０２にユーザ名および会員種別の２つの属性が追加されている。会員種別には、例えば、正規会員（有料会員）、および非正規会員（無料会員）等がある。モジュール提供サーバ２のモジュールバージョン管理部２０４は、正規会員（有料会員）のユーザと非正規会員（無料会員）のユーザとの間で、配信対対象のプログラムモジュールの種類を変更する機能を有する。例えば、正規会員（有料会員）のユーザに対しては、バグ修正等の更新が行われたプログラムモジュール（アップデート・パッケージ）と、機能が追加されたアップグレードされたプログラムモジュール（アップグレード・パッケージ）の双方が配信対象となるが、非正規会員（無料会員）のユーザに対しては、アップデート・パッケージのみが配信対象となり、アップグレード・パッケージの配信は行われない。
【００５０】
ホームネットワークサーバ１からソフトウェア構成情報を含む更新リスト情報取得要求を受信すると、モジュール提供サーバ２のモジュールバージョン管理部２０４は、個体情報管理部２０６を用いて、更新リスト情報取得要求を送信したホームネットワークサーバ１のユーザが正規会員（有料会員）および非正規会員（無料会員）のいずれであるかを判別する（ステップＳ３０１）。このステップＳ３０１においては、モジュールバージョン管理部２０４は、ホームネットワークサーバ１から送信される更新リスト情報取得要求に含まれる個体識別番号を元に、個体情報管理部２０６に対して、ホームネットワークサーバ１のユーザの会員種別の問い合わせを行う。これにより、モジュールバージョン管理部２０４は、ホームネットワークサーバ１のユーザが正規会員（有料会員）および非正規会員（無料会員）のいずれであるかを判別することができる。
【００５１】
ホームネットワークサーバ１のユーザが正規会員（有料会員）であるならば、モジュールバージョン管理部２０４は、モジュール蓄積部２０２に蓄積されたアップグレードされたプログラムモジュールを含む全てのプログラムモジュール群それぞれのバージョン番号と、ホームネットワークサーバ１から通知されたソフトウェア構成情報で指定される各プログラムモジュールのバージョン番号とに基づいて、更新リスト情報を作成する（ステップＳ３０２）。
【００５２】
一方、ホームネットワークサーバ１のユーザが非正規会員（無料会員）であるならば、モジュールバージョン管理部２０４は、アップグレードされたプログラムモジュールを除くモジュール蓄積部２０２に蓄積されたプログラムモジュール群それぞれのバージョン番号と、ホームネットワークサーバ１から通知されたソフトウェア構成情報で指定される各プログラムモジュールのバージョン番号とに基づいて、更新リスト情報を作成する（ステップＳ３０３）。
【００５３】
以上の処理により、ユーザの会員種別に応じて、配信対象のプログラムモジュールの種類を変更することが可能となる。
【００５４】
なお、有料のプログラムモジュールをモジュール提供サーバ２からホームネットワークサーバ１に配信することも出来る。この場合、図１５に示されているように、モジュール提供サーバ２との通信が可能な決済システム１０を利用する事が望ましい。配信対象のプログラムモジュールに有料のプログラムモジュールが含まれている場合、ホームネットワークサーバ１は図１６に示すようなモジュール購入画面をユーザインタフェース部１６を通じて操作画面上に表示する。モジュール購入画面上にユーザによって入力されたクレジットカード番号、有効期限、ユーザの氏名、のような決済情報は、ホームネットワークサーバ１からモジュール提供サーバ２に送信される。モジュール提供サーバ２は、決済処理を実行するために、決済情報を決済システム１０に送信する。決済が正常に完了したならば、有料のプログラムモジュールがモジュール提供サーバ２からホームネットワークサーバ１に配信される。
【００５５】
次に、図１７のフローチャートを参照して、有料のプログラムモジュールを提供する具体的な処理手順の例について説明する。ここでは、試用期間中は無料で、試用期間経過後に有料となるプログラムモジュール（以下、使用期限付きプログラムモジュールと称する）を提供する場合を想定する。
【００５６】
ホームネットワークサーバ１には、使用期限付きプログラムモジュールがインストールされている。この使用期限付きプログラムモジュールの試用期間が経過した時、ホームネットワークサーバ１のＣＰＵ１７はその旨を示すメッセージと購入ボタンとをユーザインタフェース部１６を通じて操作画面上に表示して、使用期限付きプログラムモジュールの試用期間が過ぎたことをユーザに通知する（ステップＳ４０１）。もしユーザによって購入ボタンが押されたならば（ステップＳ４０２のＹＥＳ）、ＣＰＵ１７は図１６に示すようなモジュール購入画面をユーザインタフェース部１６を通じて操作画面上に表示する（ステップＳ４０３）。
【００５７】
モジュール購入画面上に、クレジットカード番号、有効期限、ユーザの氏名のような決済情報がユーザによって入力されると、ＣＰＵ１７は、入力された決済情報をモジュール提供サーバ２に送信する（ステップＳ４０４）。モジュール提供サーバ２はホームネットワークサーバ１からの決済情報を決済システム１０に送信して、決済処理の実行を決済システム１０に依頼する（ステップＳ４０５）。決済処理が正常に完了したならば（ステップＳ４０６のＹＥＳ）、モジュール提供サーバ２は、使用期限付きプログラムモジュールを引き続き利用するために必要なＩＤコードをホームネットワークサーバ１に送信する（ステップＳ４０６）。
【００５８】
なお、例えば会員登録時などに、ホームネットワークサーバ１のユーザから入力される決済情報をモジュール提供サーバ２内に予め記憶しておくこともできる。この場合、モジュール購入画面上では決済情報として会員ＩＤとパスワードを入力すればよい。
【００５９】
次に、図１８を参照して、複数のモジュール提供サーバを用いてプログラムモジュール群を分散して管理する例について説明する。
【００６０】
新バージョンのプログラムモジュール群はモジュール提供サーバ２ａ，２ｂ，２ｃに分散した状態で蓄積されている。モジュール情報提供サーバ３０は、全てのプログラムモジュール群の各々についてそれがどのモジュール提供サーバに存在するかを管理している。ホームネットワークサーバ１は、定期的に、個体識別番号と、組込機器ソフトウェアを構成する現在の各プログラムモジュールのバージョン番号を示すバージョン情報とをモジュール情報サーバ３０に対して更新リスト情報取得要求として送信し、これにより更新リスト情報をモジュール情報提供サーバ３０に要求する。モジュール情報提供サーバ３０は、ホームネットワークサーバ１にインストール可能な最新のプログラムモジュールとその最新プログラムモジュールに対応する依存モジュールとを示す更新リスト情報を作成する。この更新リスト情報は、さらに、プログラムモジュール毎にそれが蓄積されているモジュール提供サーバを指定するサーバ情報が含まれている。ホームネットワークサーバ１は、ダウンロード対象のプログラムモジュールに対応するサーバ情報で指定されるモジュール提供サーバから、当該ダウンロード対象のプログラムモジュールをダウンロードする。これにより、モジュール提供サーバ２ａ，２ｂ，２ｃに負荷を分散することが出来る。
【００６１】
以上のように、本実施形態によれば、ユーザによって選択されたプログラムモジュールのみならず、その選択されたプログラムモジュールの実行に必要な他のプログラムモジュールを自動的にモジュール提供サーバ２からダウンロードすることができる。また自動更新モードにおいては、ユーザによる選択操作無しで、更新リスト情報で指定される全てのプログラムモジュールをモジュール提供サーバ２から自動的にダウンロードすることができる。
【００６２】
なお、ホームネットワークサーバ１とモジュール提供サーバ２との間の通信をＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）などを用いて暗号化してもよい。
【００６３】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態に係る電子機器およびモジュール提供サーバを含むシステム全体の構成を示すブロック図。
【図２】図１のシステムにおけるモジュール提供サーバによって管理されるモジュール管理データベースの例を示す図。
【図３】図１のシステムにおけるモジュール提供サーバによって管理される個体情報管理データベースの例を示す図。
【図４】図１のシステムにおける初期設定処理の手順の例を示すフローチャート。
【図５】図１のシステムにおける組み込みソフトウェア更新処理の手順の一部を示すフローチャート。
【図６】図１のシステムにおける組み込みソフトウェア更新処理の手順の残りの部分を示すフローチャート。
【図７】図１のシステムにおける組み込みソフトウェア更新処理内で実行されるダウンロードリスト作成処理の手順の例を示すフローチャート。
【図８】図１のシステムにおいて電子機器からサーバに送信されるバージョン情報の例を示す図。
【図９】図１のシステムにおいてサーバから電子機器に送信される更新リスト情報の例を示す図。
【図１０】図１のシステムで用いられる更新通知ダイアログの例を示す図。
【図１１】図１のシステムで用いられるモジュール選択ダイアログの例を示す図。
【図１２】図１のシステムにおける電子機器によって実行される非動作期間検出処理の例を示す図。
【図１３】図１のシステムにおけるモジュール提供サーバによって管理される個体情報管理データベースの他の例を示す図。
【図１４】図１のシステムにおいて会員種別に応じてダウンロード対象のプログラムモジュールを変更する手順の例を示すフローチャート。
【図１５】図１のシステムに決済システムを追加したシステムの例を示す図。
【図１６】図１５のシステムで用いられるモジュール購入画面の例を示す図。
【図１７】図１５のシステムで実行されるモジュール購入処理の手順の例を示すフローチャート。
【図１８】図１のシステムに複数のモジュール提供サーバを設けたシステム構成を示す図。
【符号の説明】
【００６５】
１…ホームネットワークサーバ（電子機器）、２…モジュール提供サーバ、３…インターネット、１７…ＣＰＵ、１８…メモリ、１０２…ユーザ通知部、１０３…モジュール情報取得部、１０４…モジュール取得部、１０５…モジュール更新処理部、１０６…プロセス管理部、２０２…モジュール蓄積部、２０３…モジュール配信部、２０４…モジュールバージョン管理部、２０５…モジュールバージョン情報配信部、２０６…個体情報管理部。
【図１】
2005135187.tif 000003
【図２】
2005135187.tif 000004
【図３】
2005135187.tif 000005
【図４】
2005135187.tif 000006
【図５】
2005135187.tif 000007
【図６】
2005135187.tif 000008
【図７】
2005135187.tif 000009
【図８】
2005135187.tif 000010
【図９】
2005135187.tif 000011
【図１０】
2005135187.tif 000012
【図１１】
2005135187.tif 000013
【図１２】
2005135187.tif 000014
【図１３】
2005135187.tif 000015
【図１４】
2005135187.tif 000016
【図１５】
2005135187.tif 000017
【図１６】
2005135187.tif 000018
【図１７】
2005135187.tif 000019
【図１８】
2005135187.tif 000020