(57)【要約】【課題】ホームネットワークを形成する情報処理装置ついて、より効率的にファームウェアを更新するための技術を提供する。【解決手段】配布すべきソフトウェアを格納するサーバ装置とホームネットワーク内の被制御機器と通信したり、アプリケーションを管理するための遠隔管理手段と、被制御機器のサービスを管理するためのサービス管理プログラムと、被制御機器のファームウェアを管理するためのファームウェア管理プログラム、ゲートウェイ装置のファームウェアを管理するためのゲートウェイファームウェア管理プログラムと、ゲートウェイ装置のファームウェアの書き換えを行うゲートウェイファームウェア更新処理プログラムと、ソフトウェアを配布する際に該ソフトウェアの依存するソフトウェアを記述した依存関係テーブルの内容を集約した依存関係集約テーブルを解析する依存関係管理プログラムを備える。【選択図】図１
2010244141.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイ装置と、それにホームネットワークを介して接続された少なくとも１つの被制御機器と、を備え、
前記ゲートウェイ装置は、当該ゲートウェイ装置のファームウェアをインストール又は更新するゲートウェイファームウェア更新処理部を有し、
前記被制御機器は、当該被制御機器のファームウェアをインストール又は更新するファームウェア更新処理部を有し、
前記ゲートウェイ装置は、前記ホームネットワーク外に設置されたサーバから、前記ゲートウェイ装置及び／又は前記被制御機器のファームウェアコンポーネント及び当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得し、
前記ゲートウェイファームウェア更新処理部及び／又は前記ファームウェア更新処理部は、前記更新ファイルに記述されたインストールの手順に従って、前記取得したファームウェアコンポーネントを前記ゲートウェイ装置及び／又は前記被制御機器にインストールすることを特徴とするホームネットワークシステム。
【請求項２】
前記ファームウェアは、前記ゲートウェイ装置のアプリケーション実行環境以外で動作するソフトウェアであることを特徴とする請求項１に記載のホームネットワークシステム。
【請求項３】
前記ゲートウェイ装置は、さらに、所定のサービスを実現するために必要なファームウェア及び／又はアプリケーションの情報、及び前記ゲートウェイ装置及び前記被制御機器に現在インストールされているファームウェア及びアプリケーションの情報を管理する依存関係管理テーブルと、当該依存関係管理テーブルを参照して、前記所定のサービスを実現するための前記ファームウェア及び／又はアプリケーションが前記ゲートウェイ装置及び／又は前記被制御機器に存在するか判定する依存関係管理部と、前記アプリケーションをインストール又は更新するアプリケーション更新処理部と、を含み、
前記ゲートウェイ装置は、前記依存関係管理部の判定結果に基づいて、前記サーバから、前記所定のサービスを実現するためのファームウェアコンポーネント及び／又はアプリケーションコンポーネントと、当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得し、
前記ゲートウェイファームウェア更新処理部、及び／又は前記ファームウェア更新処理部は、前記更新ファイルに記述されたインストールの手順に従って、前記取得したファームウェアコンポーネントを前記ゲートウェイ装置及び／又は前記被制御機器にインストールし、前記アプリケーション更新処理部は、前記取得したアプリケーションコンポーネントを前記ゲートウェイ装置にインストールすることを特徴とする請求項１に記載のホームネットワークシステム。
【請求項４】
ホームネットワークを介して少なくとも１つの被制御機器に接続され、前記被制御機器を管理する、ゲートウェイ装置であって、
前記ゲートウェイ装置のファームウェアをインストール又は更新するゲートウェイファームウェア更新処理部と、
ホームネットワーク外に設置されたサーバ及び前記被制御機器と通信を行う通信部と、を備え、
前記通信部は、前記サーバから、前記ゲートウェイ装置のファームウェアコンポーネント及び当該ゲートウェイ装置のファームウェアコンポーネントのインストール（更新）の手順を記述したゲートウェイ装置更新ファイルを取得し、
前記ゲートウェイファームウェア更新処理部は、前記更新ファイルに記述されたインストールの手順に従って、前記取得したファームウェアコンポーネントを前記ゲートウェイ装置にインストールすることを特徴とするゲートウェイ装置。
【請求項５】
さらに、前記被制御機器が有する、被制御機器のファームウェアをインストール又は更新するファームウェア更新処理部に対し、前記通信部を介して被制御機器のファームウェアのインストール又は更新を指示するファームウェア管理部を備え、
前記通信部は、前記サーバから、前記被制御機器のファームウェアコンポーネント及び当該被制御機器のファームウェアコンポーネントのインストール（更新）の手順を記述した被制御機器更新ファイルを取得し、
前記ファームウェア管理部は、前記通信部を用いて前記被制御機器のファームウェアコンポーネント及び前記被制御機器更新ファイルを前記被制御機器に転送して、前記被制御機器のファームウェアのインストール又は更新を指示することを特徴とする請求項４に記載のゲートウェイ装置。
【請求項６】
前記ファームウェアは、前記ゲートウェイ装置のアプリケーション実行環境以外で動作するソフトウェアであることを特徴とする請求項５に記載のゲートウェイ装置。
【請求項７】
さらに、所定のサービスを実現するために必要なファームウェア及び／又はアプリケーションの情報、及び前記ゲートウェイ装置及び前記被制御機器に現在インストールされているファームウェア及びアプリケーションの情報を管理する依存関係管理テーブルと、
当該依存関係管理テーブルを参照して、前記所定のサービスを実現するための前記ファームウェア及び／又はアプリケーションが前記ゲートウェイ装置及び／又は前記被制御機器に存在するか判定する依存関係管理部と、
前記アプリケーションをインストール又は更新するアプリケーション更新処理部と、を備え、
前記通信部は、前記依存関係管理部の判定結果に基づいて、前記サーバから、前記所定のサービスを実現するためのファームウェアコンポーネント及び／又はアプリケーションコンポーネントと、当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得し、
前記ゲートウェイファームウェア更新処理部は、前記更新ファイルに記述されたインストールの手順に従って、前記取得したファームウェアコンポーネントを前記ゲートウェイ装置にインストールし、前記アプリケーション更新処理部は、前記取得したアプリケーションコンポーネントを前記ゲートウェイ装置にインストールし、
前記所定のサービスを実現するための前記ファームウェアコンポーネント及び前記更新ファイルが前記被制御機器に関するものである場合には、前記ファームウェア管理部が、前記通信部を用いて前記被制御機器のファームウェアコンポーネント及び前記被制御機器の更新ファイルを前記被制御機器に転送して、前記被制御機器のファームウェアのインストール又は更新を指示することを特徴とする請求項５に記載のゲートウェイ装置。
【請求項８】
ホームネットワーク内のゲートウェイ装置と、それに接続された少なくとも１つの被制御機器のファームウェアを更新するファームウェア更新方法であって、
前記ゲートウェイ装置は、当該ゲートウェイ装置のファームウェアをインストール又は更新するゲートウェイファームウェア更新処理部を有し、
前記被制御機器は、当該被制御機器のファームウェアをインストール又は更新するファームウェア更新処理部を有し、
前記ゲートウェイ装置が、前記ホームネットワーク外に設置されたサーバから、前記ゲートウェイ装置及び／又は前記被制御機器のファームウェアコンポーネント及び当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得し、
前記ゲートウェイファームウェア更新処理部及び／又は前記ファームウェア更新処理部が、前記更新ファイルに記述されたインストールの手順に従って、前記取得したファームウェアコンポーネントを前記ゲートウェイ装置及び／又は前記被制御機器にインストールすることを特徴とするファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホームネットワークシステム、ゲートウェイ装置、及びファームウェア更新方法に関し、例えばファームウェアのインストール、アップデートあるいはアンインストールなどのファームウェアの配備操作技術に関する。
【背景技術】
【０００２】
既に、ホームネットワーク環境において、例えばＤＶＤ等の家電製品（被制御機器）のためのアプリケーションをアップデートし機能を動的に拡張できるようにすることを目的としたアプリケーション管理システム、及びアプリケーション管理方法が提案されている（例えば、特許文献１参照）。これらの提案では、アプリケーションサーバ（例えばホームゲートウェイ）が存在するホームネットワークに、新規に情報処理機器（被制御機器）が追加接続されたかどうかを検知するために、ＵＰｎＰ（Universal Plug and Play）等のミドルウェアが、当該情報処理機器の機能（サービス）をアプリケーションサーバから使用可能とするアプリケーションをアプリケーションサーバに追加するために、ＯＳＧｉ（Open Services Gateway Initiative）フレームワークが利用される。これにより、例えば、ＪＡＶＡのバンドルソフトウェア（ＯＳＧｉ上のアプリケーション）についての書き換えがＯＳを再起動せずに実行可能とされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２４０３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のようなバンドルソフトウェア更新のための技術では、ホームゲートウェイにおいて、ＯＳＧｉフレームワーク（遠隔サービス提供基盤）上のアプリケーション（バンドルソフトウェア）以外のソフトウェア、例えばカーネル（Ｉ／Ｏ処理等ＯＳのコアの部分のソフトウェアファイル）などのファームウェアのアップデートについては考慮されていない。また、ホームゲートウェイの先に接続された被制御機器内のファームウェアの更新もまた考慮されていない。
【０００５】
また、複数の被制御機器を組み合わせた新たなサービスを追加する場合（複数の機能を組み合わせて１つの新しいサービスを実現する場合）などにおいて、ホームゲートウェイのＯＳＧｉフレームワーク上のアプリケーションを追加すると共に被制御機器のファームウェアを修正するなど、アプリケーションと依存関係にあるファームウェアを同時に修正する仕組みについては考慮されていない。なお、本明細書でファームウェアとは、組み込み装置のＯＳＧｉフレームワーク上のアプリケーション（バンドルソフトウェア）以外のデータも含めた、不揮発性記憶メモリにあらかじめ記憶されているデータすべてを指す。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、ホームネットワークを形成し、ＯＳＧｉフレームワーク等のアプリケーション実行環境により管理されているゲートウェイ装置および被制御機器について、ＯＳＧｉフレームワーク等のアプリケーション実行環境上で動作するアプリケーション（バンドルソフトウェア）以外のファームウェアを更新するための仕組みを提案し、併せて、ＯＳＧｉフレームワーク上で動作するアプリケーションとそれと依存関係にある（組み合わせられる）ファームウェアを同時に修正する仕組みを提案するものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明によるホームネットワークシステムは、ゲートウェイ装置と、それにホームネットワークを介して接続された少なくとも１つの被制御機器と、を備え、ゲートウェイ装置は、当該ゲートウェイ装置のファームウェアをインストール又は更新するゲートウェイファームウェア更新処理部を有し、被制御機器は、当該被制御機器のファームウェアをインストール又は更新するファームウェア更新処理部を有している。ファームウェアをインストール又は更新する場合、ゲートウェイ装置の通信部は、ホームネットワーク外に設置されたサーバから、ゲートウェイ装置及び／又は被制御機器のファームウェアコンポーネント及び当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得する。そして、ゲートウェイファームウェア更新処理部及び／又はファームウェア更新処理部は、更新ファイルに記述されたインストールの手順に従って、取得したファームウェアコンポーネントをゲートウェイ装置及び／又は被制御機器にインストールする。なお、当該ファームウェアは、ゲートウェイ装置のアプリケーション実行環境（例えば、ＯＳＧｉフレームワーク上）以外で動作するソフトウェアである。
【０００８】
ゲートウェイ装置は、さらに、所定のサービスを実現するために必要なファームウェア及び／又はアプリケーションの情報、及びゲートウェイ装置及び被制御機器に現在インストールされているファームウェア及びアプリケーションの情報を管理する依存関係管理テーブルと、当該依存関係管理テーブルを参照して、所定のサービスを実現するためのファームウェア及び／又はアプリケーションがゲートウェイ装置及び／又は被制御機器に存在するか判定する依存関係管理部と、アプリケーションをインストール又は更新するアプリケーション更新処理部と、を備えている。そして、ゲートウェイ装置は、依存関係管理部の判定結果に基づいて、サーバから、所定のサービスを実現するためのファームウェアコンポーネント及び／又はアプリケーションコンポーネントと、当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得する。その後、ゲートウェイファームウェア更新処理部、及び／又はファームウェア更新処理部は、更新ファイルに記述されたインストールの手順に従って、取得したファームウェアコンポーネントをゲートウェイ装置及び／又は被制御機器にインストールする。また、アプリケーション更新処理部は、取得したアプリケーションコンポーネント（アプリケーション実行環境で動作するアプリケーション）をゲートウェイ装置にインストールする。
【０００９】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００１０】
本発明によれば、ＯＳＧｉフレームワークが更新の対象としていない、ゲートウェイ装置および被制御機器のファームウェアを更新するなど、機器出荷後のバグ修正や機能拡張を行うことができる。
【００１１】
また、ＯＳＧｉフレームワーク上で動作するアプリケーションとそれと依存関係にあるファームウェアを同時に修正することで、更新作業の負担軽減や、更新対象の機器が提供するサービスの停止時間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態によるセンターサーバとホームネットワークシステムの概略構成を示す図である。
【図２】遠隔管理手段の機能ブロック図である。
【図３】依存関係管理プログラムが依存関係集約テーブルを解析する処理を説明するためのフローチャートである。
【図４】依存関係管理プログラムが行う依存先解決処理を説明するためのフローチャートである。
【図５】依存関係にあるアプリケーション又はファームウェアのインストール手順を説明するためのフローチャートである。
【図６】依存関係が未解決の状態の依存関係集約テーブルの例を示す図である。
【図７】被制御機器ＡのサービスＡをゲートウェイ装置にインストールする際に、同時に配布される依存関係テーブルの例を示す図である。
【図８】被制御機器ＡのサービスＡが依存しているファームウェアＡを、Ａにインストールする際に、同時に配布される依存関係テーブルの例を示す図である。
【図９】ファームウェア更新手順テーブル（更新ファイル）の例を示す図である。
【図１０】依存関係を解決した後の依存関係集約テーブルの例を示す図である。
【図１１】管理情報テーブルの例を示す図である。
【図１２】ファームウェア及びアプリケーションの更新処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
本発明は、ＯＳＧｉフレームワーク等のアプリケーション実行環境で動作しないファームウェアを更新するための仕組みを提供するものである。
【００１４】
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
【００１５】
＜システム構成＞
図１は、本発明の実施形態における情報処理システム（ファームウェア管理システム）の概略構成を示す図である。
【００１６】
ファームウェア管理システムは、コンテンツ（追加するファームウェアの情報を含む）を提供するセンターサーバ１と、ホームネットワーク６内のすべての被制御機器を制御するためのゲートウェイ装置２と、少なくとも１つの被制御機器３と、ルータ５と、を備えている。
【００１７】
センターサーバ１は、インターネット７を介し、ゲートウェイ装置２、被制御機器３及び４、ルータ５で構成されるホームネットワーク６と接続されている。
【００１８】
センターサーバ１は、ＣＰＵ１１Ａ及びメモリ１１Ｂを含む端末装置１１と、通信ポート１２と、外部記憶装置１３と、を備えている。センターサーバ１内の外部記憶装置１３は、ゲートウェイ装置２に対して、データ（ソフトウェア）更新のための命令や更新対象のソフトウェアを送信するデータ転送手段１３Ａと、送信対象のソフトウェアの検索などを行うための配布データ管理手段１３Ｂを、ソフトウェアコードとして格納している。これらのソフトウェアコードは、ＣＰＵ１１Ａと協働して、それぞれデータ転送部及び配布データ管理部として動作するものである。
【００１９】
ゲートウェイ装置２は、ＣＰＵ２１Ａ及びメモリ２１Ｂを含む端末装置２１と、通信ポート２２と、外部記憶装置２３と、を備えている。外部記憶装置２３は、アプリケーションを実行するためのアプリケーション実行環境２３Ａ（アプリケーションを実行するための基盤となるプログラム）と、センターサーバ１と通信しアプリケーションの更新などを行う遠隔管理手段２３Ｂと、被制御機器のサービスを管理するためのサービス管理プログラム２３Ｃ及び２３Ｄと、被制御機器３及び４のファームウェアを管理するためのファームウェア管理プログラム２３Ｅ及び２３Ｆと、ゲートウェイ装置２のファームウェアを管理するためのゲートウェイファームウェア管理プログラム２３Ｇと、ゲートウェイ装置２のファームウェアの書き換えを行うゲートウェイファームウェア更新処理プログラム２３Ｈと、ソフトウェアの依存関係を解析する依存関係管理プログラム２３Ｉと、ゲートウェイ装置２および被制御機器３及び４に格納されたソフトウェアの依存関係を集約した依存関係集約テーブル２３Ｊ（図６及び１０）と、各アプリケーションプログラム及び各ファームウェアのバージョン情報を管理する管理情報２３Ｋ（図１１）と、を格納している。各プログラム及び手段は、ＣＰＵ２１Ａと協働して、各処理部として動作する。例えば、サービス管理プログラム２３Ｃ及び２３Ｄは、ＣＰＵ２１Ａの制御の下、サービス管理部として動作する。なお、ＯＳＧｉフレームワークにおけるバンドルソフトウェアは、アプリケーション実行環境２３Ａ下で動作するので、図１では、サービス管理プログラム２３Ｃ及び２３Ｄ、ファームウェア管理プログラム２３Ｅ及び２３Ｆ、ゲートウェイファームウェア管理プログラム２３Ｇは、アプリケーション実行環境２３Ａの上に位置するように描かれている。また、ここで、２以上の機能（サービス）を組み合わせて新しい機能を実現する場合の、組み合わせる機能（サービスコンポーネント）は互いに依存関係を有するという。例えば、センサー機能によって侵入者を検知してカメラ機能を作動させて録画する監視機能を実現する場合、センサー機能とカメラ機能は依存関係にあると言う。
【００２０】
被制御機器３及び４はそれぞれ、ＣＰＵ３１Ａ及びメモリ３１Ｂを含む端末装置３１と、通信ポート３２と、外部記憶装置３３と、を備えている。外部記憶装置３３は、該被制御機器３及び４が備えるサービスを実行する手段であるサービス処理プログラム３３Ａと、ファームウェアを書き換える手段であるファーム更新処理プログラム３３Ｂと、ゲートウェイ装置２に対して更新のための命令や更新対象のソフトウェアを受信するためのデータ転送手段３３Ｃを、ソフトウェアとして格納している。各プログラム及び手段は、ＣＰＵ３１Ａと協働して、各処理部として動作する。例えば、サービス処理プログラム３３Ａは、ＣＰＵ３１Ａの制御の下、サービス処理部として動作する。
【００２１】
ゲートウェイ装置２において、サービス管理プログラム２３Ｃ及び２３Ｄは、遠隔管理手段２３Ｂを利用し、被制御機器３及び４のサービス処理プログラム３３Ａに所定のサービスを実行するように依頼する。サービス処理プログラム３３Ａは、当該依頼されたサービスを実行して得られた処理結果（当該サービスの実行の可否や実行して得られた処理内容等）をサービス管理プログラム２３Ｃ及び２３Ｄに返信する。
【００２２】
また、ファームウェア管理プログラム２３Ｅ及び２３Ｆは、遠隔管理手段２３Ｂを利用し、ファームウェア更新処理プログラム３３Ｂに被制御機器のファームウェアの更新処理を依頼する。ファームウェア更新処理プログラム３３Ｂは、被制御機器のファームウェアの更新処理を実行して得られた処理結果（更新に成功したか否かの情報や更新内容等）をファームウェア管理プログラム２３Ｅ及び２３Ｆに返信する。なお、被制御機器のファームウェアの更新するために、ゲートウェイ装置２上で呼び出すためのファームウェア管理プログラムが制御機器毎に用意されている。
【００２３】
さらに、ゲートウェイファームウェア管理プログラム２３Ｇは、遠隔管理手段２３Ｂを利用し、ゲートウェイファームウェア更新処理プログラム２３Ｈに、ゲートウェイ装置２のファームウェアの更新処理を実行するように依頼する。ゲートウェイファームウェア更新処理プログラム２３Ｈは、当該ファームウェアの更新処理を実行して得られた処理結果（更新に成功したか否かの情報や更新内容等）をゲートウェイファームウェア管理プログラム２３Ｇに返信する。このように、ゲートウェイ装置２のファームウェアの更新処理に関しては、アプリケーション実行環境に影響されない、ＯＳによって動作するゲートウェイファームウェア更新処理プログラム２３Ｈが実行するようになっている。
【００２４】
なお、単一のファームウェアの書き換えのみを実現する場合は、依存関係管理プログラム２３Ｉ及び依存関係集約テーブル２３Ｊは設けなくてもよい。
【００２５】
また、センターサーバ１が依存関係管理プログラム２３Ｉを備え、配布データの依存関係をあらかじめ解析し、更新の要請のあったソフトウェアだけでなく依存するソフトウェアも同時に配布するようにしても良い。
【００２６】
さらに、ゲートウェイ装置２や被制御機器３及び４が更新途中で不具合のあった場合でも必ず起動可能な緊急用カーネルを備えておき、更新開始直前に次回起動するカーネルを緊急用のカーネルに変更し、更新終了直後にその変更を戻してもよい。
【００２７】
また、ファームウェアの更新時にＯＳの再起動が必要な場合の更新終了を確認するため、ゲートウェイ装置２のＯＳ起動直後にアプリケーション実行環境２３Ａ、遠隔管理手段２３Ｂ、その上で動作するアプリケーションを起動させることを記述した起動スクリプトを備えていても良い。
【００２８】
また、ファームウェア管理プログラム２３Ｅ及び２３Ｆ、ゲートウェイファームウェア管理プログラム２３Ｇ、及びゲートウェイファーム更新処理プログラム２３Ｈを、あらかじめゲートウェイ装置２に設けず、アプリケーション管理手段２３Ｃ及び２３Ｄが遠隔管理手段２３Ｂを用いて外部から取得し、追加するようにしても良い。
【００２９】
さらに、被制御機器３及び４は、ゲートウェイ装置２と同様に、アプリケーション実行環境や遠隔管理手段を備えていてもよい。
また、センターサーバや、ゲートウェイ装置に、入力装置や表示装置を備えても良い。
【００３０】
＜遠隔管理手段の内部構成＞
図２は、遠隔管理手段２３Ｂが備える機能を示すブロック図である。遠隔管理手段２３Ｂは、センターサーバ１と被制御機器３及び４との間におけるソフトウェアの送受信や更新命令の送受信をするためのデータ転送手段２０１と、アプリケーションの起動や終了などを管理するアプリケーション管理手段２０２と、を有している。
【００３１】
＜ファームウェア及びアプリケーションの更新処理＞
図１１は、ゲートウェイ装置２が管理する、ゲートウェイ装置及び各被制御機器のファームウェア及びアプリケーションの管理情報を示す図である。図１１からも分かるように、ゲートウェイ装置２は、各被制御機器３及び４やゲートウェイ装置２で現在使用されているアプリケーション（サービス管理プログラム、ファームウェア管理プログラム、ゲートウェイファームウェア管理プログラム、ゲートウェイファームウェアか更新処理プログラム、サービス処理プログラム、ファームウェア更新処理プロググラム等）及びファームウェアのバージョン情報を管理している。この管理情報２３Ｋは、アプリケーション及びファームウェアを更新する際に更新すべきデータか否かを判断する際に用いられる。
【００３２】
図１２は、ゲートウェイ装置及び各被制御機器における、ファームウェア及びアプリケーションの更新処理について説明するためのフローチャートである。
【００３３】
利用者或いは管理者が、ゲートウェイ装置２の図示しない入力手段を用いて、ファームウェア及び／又はアプリケーションの更新を指示する（ステップ１２０１）。更新指示を受けると、ゲートウェイ装置２の遠隔管理手段２３Ｂは、ファームウェア及びアプリケーションの更新要求と共に、管理情報２３Ｋをセンターサーバ１に送信する（ステップ１２０２）。
【００３４】
管理情報２３Ｋと更新要求を受信したセンターサーバ２は、配布データ管理手段１３Ｂを用いて、送信されてきた管理情報（各ファームウェア等のバージョン情報）２３Ｋに基づいて、更新すべきファームウェア等があるか否か判断する。該当するファームウェア等があれば、更新コンポーネントをゲートウェイ装置２に送信する（ステップ１２０３）。
【００３５】
ゲートウェイ装置２は、遠隔管理手段２３Ｂを用いて、更新コンポーネントを受信し、この受信した更新コンポーネントがどのアプリケーション或いはファームウェアに関するものであるか確認する（ステップ１２０４）。そして、遠隔管理手段２３Ｂは、更新対象（更新コンポーネント）が遠隔管理手段上のアプリケーションであるか否か判断し（ステップ１２０５）、そうであれば、受信した更新コンポーネントを用いて該当するアプリケーションを更新するように、アプリケーション管理手段（アプリケーション管理部）２０２に指示する。更新指示を受信したアプリケーション管理手段２０２は、更新コンポーネントをインストールし、該当するアプリケーションを更新する（ステップ１２０６）。遠隔管理手段２３Ｂ上に存在するアプリケーションはＯＳＧｉのバンドルソフトウェアであるから、インストールするだけで更新することができるようになっている。
【００３６】
また、ステップ１２０５でＮｏの場合、遠隔管理手段２３Ｂは、更新対象がゲートウェイ装置２のファームウェアであるか判断し（ステップ１２０７）、そうであれば、受信した更新コンポーネントを用いて該当するファームウェアを更新するように、ゲートウェイファームウェア管理プログラム（ゲートウェイファームウェア管理部）２３Ｇに指示する。更新指示を受信したゲートウェイファームウェア管理プログラム２３Ｇは、ゲートウェイファームウェア更新処理プログラム（ゲートウェイファームウェア更新処理部）２３Ｈに更新コンポーネントを受け渡し、ゲートウェイファームウェア更新処理プログラム２３Ｈは、該当するファームウェアを更新する。ファームウェアは、バンドルソフトウェアとは異なり、単にインストールしただけでは更新できない。このため、センターサーバ１から更新コンポーネントと共に送信されてくる更新ファイル（図９）を参照しながら更新処理が実行される。更新ファイル（図９）は、該当するファームウェアに関しての更新手順を記述したファイルである。この更新ファイルに基づくファームウェアの更新処理については後述する。
【００３７】
ステップ１２０７でＮｏの場合、遠隔管理手段２３Ｂは、さらに更新対象が被制御装置3及び４のファームウェアであるか判断し（ステップ１２０９）、そうであれば、受信した更新コンポーネントを用いて該当するファームウェアを更新するように、ファームウェア管理プログラム（ファームウェア管理部）２３Ｅ及び２３Ｆに指示する。更新指示を受信したファームウェア管理プログラム２３Ｅ及び２３Ｆは、ファームウェア更新処理プログラム（ファームウェア更新処理部）３３Ｂに、遠隔管理手段２３Ｂを介して更新コンポーネント及び更新ファイルを受け渡し、ファームウェア更新処理プログラム３３Ｂは、該当するファームウェアを更新する（ステップ１２１０）。この場合もファームウェアの更新なので、単にインストールしただけでは更新処理は完了せず、更新手順を記述した更新ファイルに基づいて更新処理が実行される。
【００３８】
ステップ１２０９でＮｏの場合、或いは、ステップ１２０６、１２０８又は１２１０が実行されると、処理は終了する。
【００３９】
＜更新ファイルに基づくファームウェアの更新処理＞
図９は、ファームウェア更新手順テーブル（更新ファイル）の例を示す図である。図９では、例えば、被制御機器ＡのサービスＡが依存しているファームウェアＡを、被制御装置Ａにインストールする際に、同時に配布されるファームウェア更新手順テーブルの例が示されている。この更新ファイルは、センターサーバ１の配布データ管理手段によって更新コンポーネントごとに生成され、データ転送手段１３Ａによってゲートウェイ装置２に送信されてきたものである。
【００４０】
上述したように、遠隔管理手段２３Ｂ上のサービスのインストールや更新は、更新データのダウンロードのみで実現される（バンドルソフトウェアであるため）のに対し、ファームウェアのインストールや更新には、ファイルのアクセス権限や所有者などの設定の変更や、システムの再起動などさまざまな処理が求められ、これらの処理手順を記述した本テーブルが必要である。
【００４１】
ファームウェア更新手順テーブルでは、更新処理に先立って必要な処理が「#before」セクションに、更新処理の内容が「#update」セクションに、更新の後に必要な処理が「#after」セクションに記述されている。また、#beforeセクションには、ダウンロードしたデータの圧縮を解凍する処理などが記述され、#updateセクションには、データのコピー、削除、ファイルの所有者の変更などが記述されている。さらに、#afterセクションにはプログラムの再起動処理などが記述されている。
【００４２】
このファームウェア更新手順テーブルに記述された更新処理の手順に従って、該当する処理部（ゲートウェイファームウェア更新処理プログラム２３Ｈやファームウェア更新処理プログラム３３Ｂ）が、更新コンポーネントを既存のファームウェアに反映し、更新を実現させる。
【００４３】
＜依存関係集約テーブルの解析処理＞
図３は、依存関係管理プログラムが実行する依存関係集約テーブルの解析処理を説明するためのフローチャートである。依存関係管理プロラム２３Ｉは、依存関係集約テーブル２３Ｊ（図６）を参照して、依存関係の解析処理を実行する。
【００４４】
最初に、依存関係管理プログラム（依存関係管理部）２３Ｉは、依存関係集約テーブル２３Ｊの中に未処理のレコードがあるかどうか調べ、未処理レコードがない場合は処理を終え、未処理レコードがある場合は、ステップ３０２に処理を移行させる（ステップ３０１）。
【００４５】
依存関係管理プロラム２３Ｉは、次の未処理レコード（処理開始時は最初の未処理レコード）に処理を移し（ステップ３０２）、依存関係解決情報を依存関係集約テーブル２３Ｊから取得する（ステップ３０３）。
【００４６】
また、依存関係管理プロラム２３Ｉは、取得した未処理レコードにおいて依存関係が未解決であるかどうか調べる（ステップ３０４）。解決済みの場合、処理はステップ３０１へ戻り、未解決の場合はステップ３０５へ進む。
【００４７】
そして、依存関係管理プロラム２３Ｉは、依存関係集約テーブル２３Ｊから依存先情報を取得し（ステップ３０５）、それを用いて依存先解決処理を行う（ステップ３０６）。この依存先解決処理の詳細については後述する。
【００４８】
＜依存関係解決処理＞
図４は、依存関係管理プログラムが実行する依存先解決処理を説明するためのフローチャートである。
【００４９】
依存関係管理プロラム２３Ｉは、最初に、取得した依存先情報のうち、未処理の依存先があるか調べる（ステップ４０１）。未処理の依存先が無い場合、処理は終了し、未処理の依存先がある場合、処理はステップ４０２に移行する。
【００５０】
依存関係管理プロラム２３Ｉは、次の依存先（処理開始時は最初の未処理の依存先）に処理を移し（ステップ４０２）、該当するコンポーネントがインストールされているか否かアプリケーション管理手段２０２に問い合わせて調べる。例えば、図６のServiceB-1.0を実現するために必要なFirmwareB-1.0とSeriviceA-2.0がインストールされているか調べる。この場合、FirmwareB-1.0は図６の６０１欄に存在するが、ServiceA-2.0が存在しない。よって、ServiceA-2.0はインストールされていないことが分かる。
【００５１】
該当するコンポーネントが無い場合、処理はステップ４０４に移行し、存在する場合、処理はステップ４０５に移行する（ステップ４０３）。
【００５２】
ステップ４０４では、サービスを実現するために必要な該当コンポーネントがインストールされる（ステップ４０４）。ステップ４０４の詳細については、図５を用いて後に説明する。
【００５３】
続いて、依存関係管理プロラム２３Ｉは、依存関係集約テーブル２３Jから依存関係解決情報を取得する（ステップ４０５）。依存関係が未解決かどうかを調べ、解決済みの場合は処理をステップ４０１へ移行させ、未解決の場合は処理をステップ４０７に移行させる（ステップ４０６）。
【００５４】
そして、依存関係が解決済みでない場合（ステップ４０６でＮｏの場合）、依存関係管理プロラム２３Ｉは、依存先情報を取得する（ステップ４０７）。依存先解決処理（ステップ４０１〜４０７）を再度実行する（ステップ４０８）。
【００５５】
＜該当コンポーネントのインストール処理＞
図５は、アプリケーションまたはファームウェアのインストール処理を説明するためのフローチャートである。図５の処理は依存関係について考慮している点で図１２の処理と異なるが、それらは共通のステップを有しており、一部重複している。
【００５６】
ゲートウェイ装置２は、該当するコンポーネントの配布をセンターサーバ１へ要求する。一方、センターサーバ１のデータ転送手段１３Ａは当該要求を受信し、要求に応じて配布データ管理手段１３Ｂが該当するコンポーネントを特定する。そして、データ転送手段１３Ａは、取得したコンポーネントをゲートウェイ装置２へ送信する（ステップ５０１）。
【００５７】
次に、ゲートウェイ装置２の遠隔管理手段２３Ｂは、遠隔管理手段２３Ｂは、該当するコンポーネントが遠隔管理手段上のアプリケーションであるか否か判断し（ステップ５０２）、そうであれば、受信した更新コンポーネントを用いて該当するアプリケーションを更新するように、アプリケーション管理手段（アプリケーション管理部）２０２に指示する。更新指示を受信したアプリケーション管理手段２０２は、更新コンポーネントをインストールし、該当するアプリケーションを更新する（ステップ５０３）。遠隔管理手段２３Ｂ上に存在するアプリケーションはＯＳＧｉのバンドルソフトウェアであるから、インストールするだけで更新することができるようになっている。ステップ５０３の処理が終了すれば、処理はステップ５０８に移行する。
【００５８】
ステップ５０２でＮｏの場合、遠隔管理手段２３Ｂは、更新対象がゲートウェイ装置２のファームウェアであるか判断し（ステップ５０４）、そうであれば、受信した更新コンポーネントを用いて該当するファームウェアコンポーネントをインストールするように、ゲートウェイファームウェア管理プログラム（ゲートウェイファームウェア管理部）２３Ｇに指示する。インストール指示を受信したゲートウェイファームウェア管理プログラム２３Ｇは、ゲートウェイファームウェア更新処理プログラム（ゲートウェイファームウェア更新処理部）２３Ｈに該当コンポーネントを受け渡し、ゲートウェイファームウェア更新処理プログラム２３Ｈは、該当するファームウェアをインストールする（ステップ５０５）。ファームウェアは、バンドルソフトウェアとは異なり、単にインストールしただけでは更新できない。このため、センターサーバ１からファームウェアコンポーネントと共に送信されてくる更新ファイル（図９）を参照しながらインストール処理が実行される。更新ファイル（図９）及び更新処理（インスストール処理）の詳細については前述した通りである。そして、ステップ５０５の処理が終了すれば、処理はステップ５０８に移行する。
【００５９】
ステップ５０４でＮｏの場合、遠隔管理手段２３Ｂは、さらにインストール対象が被制御装置３及び４のファームウェアであるか判断し（ステップ５０６）、そうであれば、受信したコンポーネントを用いて該当するファームウェアを更新するように、ファームウェア管理プログラム（ファームウェア管理部）２３Ｅ及び２３Ｆに指示する。インストール指示を受信したファームウェア管理プログラム２３Ｅ及び２３Ｆは、ファームウェア更新処理プログラム（ファームウェア更新処理部）３３Ｂに、遠隔管理手段２３Ｂを介してファームウェアコンポーネント及び更新ファイルを受け渡し、ファームウェア更新処理プログラム３３Ｂは、該当するファームウェアをインストールする（ステップ５０７）。この場合もファームウェアの更新なので、単にインストールしただけでは更新処理は完了せず、更新手順を記述した更新ファイルに基づいて更新処理が実行される。そして、ステップ５０５の処理が終了すれば、処理はステップ５０８に移行する。
【００６０】
ステップ５０６でＮｏの場合、或いは、ステップ５０３、５０５又は５０７の処理後、依存関係管理プログラム（依存関係管理部）２３Ｉは、依存関係集約テーブル２３Ｊに依存関係テーブルの情報を登録する（ステップ５０８）。そして、依存関係管理プログラム２３Ｉは、依存関係集約テーブル２３Ｊにおける依存関係情報６０３を更新し、処理を終える（ステップ５０９）。
【００６１】
なお、インストール対象が遠隔管理手段上のアプリケーションである場合に、アプリケーション管理手段ではなく、ゲートウェイファームウェア管理手段がインストールを行っても良い。
【００６２】
＜依存関係集約テーブル及び依存関係テーブルの例＞
図６は、依存関係が未解決の状態の依存関係集約テーブルの例を示す図である。依存関係集約テーブル２３Ｊは、コンポーネント名６０１、依存先情報６０２、依存関係情報６０３を管理する情報として有している。コンポーネント名６０１は、名称とバージョン番号をハイフンでつなぎ表記しているが、これらを別々に管理してもよい。ここでは、ゲートウェイ装置２の他に被制御装置Ａと被制御装置Ｂがあるホームネットワークを想定する。serviceA及びserviceBは、それぞれ被制御装置Ａ、被制御装置Ｂの機能を管理する遠隔管理手段２３Ｂ上のアプリケーションである。また、firmwareA、firmwareBはそれぞれ被制御装置Ａ、被制御装置Ｂのファームウェアである。さらに、firmwareGはゲートウェイ装置のファームウェアである。そして、serviceA-1.0は、firmwareA-1.0を前提としたサービスであり、serviceB-1.0はfirmwareB-1.0, serviceA-2.0を前提とした連携サービスである。
【００６３】
図６を見ると、例えば、serviceBを実現するには、firmwareB-1.0とserviceA-2.0が必要である。しかし、firmwareB-1.0は既にインストールされている一方、serviceA-2.0はまだインストールされていない。このため、serviceA-2.0をセンターサーバ１から取得しなければいけないことが分かる。
【００６４】
図７は、被制御機器ＡのサービスＡをゲートウェイ装置２にインストールする際に、同時に配布される依存関係テーブル７００の例を示している。また、図８は、被制御機器ＡのサービスＡが依存しているファームウェアＡを、被制御装置Ａにインストールする際に、同時に配布される依存関係テーブル７００の例である。これらのテーブルの情報が依存関係集約テーブル２３Ｊに追加登録されて、依存関係が解決する。
【００６５】
図１０は、serviceA-2.0とfirmwareA-2.0をインストールすることで、依存関係を解決した後の依存関係集約テーブル２３Ｊの例を示している。
【００６６】
＜まとめ＞
本発明では、ファームウェアをインストール又は更新する場合、ゲートウェイ装置が、ホームネットワーク外に設置されたサーバから、ゲートウェイ装置及び／又は被制御機器のファームウェアコンポーネント及び当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得する。そして、ゲートウェイファームウェア更新処理部及び／又はファームウェア更新処理部は、更新ファイルに記述されたインストールの手順に従って、取得したファームウェアコンポーネントをゲートウェイ装置及び／又は被制御機器にインストールする。このようにすることにより、ゲートウェイ装置のアプリケーション実行環境（例えば、ＯＳＧｉフレームワーク上）以外で動作するファームウェアを確実にインストール又は更新することができる。
【００６７】
ゲートウェイ装置は、さらに、所定のサービスを実現するために必要なファームウェア及び／又はアプリケーションの情報、及びゲートウェイ装置及び被制御機器に現在インストールされているファームウェア及びアプリケーションの情報を管理する依存関係管理テーブルと、当該依存関係管理テーブルを参照して、所定のサービスを実現するためのファームウェア及び／又はアプリケーションがゲートウェイ装置及び／又は被制御機器に存在するか判定する依存関係管理部と、アプリケーションをインストール又は更新するアプリケーション更新処理部と、を備えている。そして、ゲートウェイ装置は、依存関係管理部の判定結果に基づいて、サーバから、所定のサービスを実現するためのファームウェアコンポーネント及び／又はアプリケーションコンポーネントと、当該ファームウェアコンポーネントのインストール（更新）の手順を記述した更新ファイルを取得する。その後、ゲートウェイファームウェア更新処理部、及び／又はファームウェア更新処理部は、更新ファイルに記述されたインストールの手順に従って、取得したファームウェアコンポーネントをゲートウェイ装置及び／又は被制御機器にインストールする。また、アプリケーション更新処理部は、取得したアプリケーションコンポーネント（アプリケーション実行環境で動作するアプリケーション）をゲートウェイ装置にインストールする。このように、所定のサービスを実現する際に必要とされるアプリケーション及びファームウェアの組み合わせ（依存関係）を管理し、ゲートウェイ装置や被制御機器に必要なアプリケーションやファームウェアがインストールされていない場合に、センターサーバから該当するファームウェアやアプリケーションを取得してインストールすることにより、アプリケーション実行環境にあるなしに関係なく、所定のサービスを実現することができるようになる。
【００６８】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【００６９】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【００７０】
また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【符号の説明】
【００７１】
１・・・センターサーバ
１１Ａ、２１Ａ、３１Ａ・・・ＣＰＵ
１１Ｂ、２１Ｂ、３１Ｂ・・・メモリ
１３、２３、３３・・・外部記憶装置
２・・・ゲートウェイ装置
３、４・・・被制御機器
５・・・ルータ
６・・・ホームネットワーク
７・・・インターネット
１３Ａ・・・データ転送手段
１３Ｂ・・・配布データ管理手段
２３Ｃ，２３Ｄ・・・サービス管理プログラム
２３Ｅ，２３Ｆ・・・ファームウェア管理プログラム
２３Ｇ・・・ゲートウェイファームウェア管理プログラム
２３Ｈ・・・ゲートウェイファームウェア更新処理プログラム
２３Ｉ・・・依存関係管理プログラム
２３Ｊ・・・依存関係集約テーブル
３３Ａ・・・サービス処理プログラム
３３Ｂ・・・ファームウェア更新処理プログラム
３３Ｃ・・・データ転送手段
２０１・・・データ転送手段
２０２・・・アプリケーション管理手段
７００・・・依存関係テーブル
９００・・・更新手順テーブル
【図１】
2010244141.tif 000003
【図２】
2010244141.tif 000004
【図３】
2010244141.tif 000005
【図４】
2010244141.tif 000006
【図５】
2010244141.tif 000007
【図６】
2010244141.tif 000008
【図７】
2010244141.tif 000009
【図８】
2010244141.tif 000010
【図９】
2010244141.tif 000011
【図１０】
2010244141.tif 000012
【図１１】
2010244141.tif 000013
【図１２】
2010244141.tif 000014