(57)【要約】【課題】受信装置のソフトウェアの格納および更新にかかるコストを削減することができるようにする。【解決手段】  ファイルシステム２３１は、起動時に、フラッシュメモリ２１５に記憶されているダウンロードデータ１３から、データ生成装置により基準バージョンソフトウェア１１Ａと更新する対象となる新バージョンソフトウェア１１Ｂに基づいて生成された差分データ１２をRAM２１３に読み込む。ファイルシステム２３１は、ソフトウェアの起動時に、ROM２１２に記憶されている基準バージョンソフトウェア１１Ａのファイルデータに、差分データ１２を反映させて、ファイルデータを読み込む。これにより、新バージョンソフトウェア１１Ｂのファイルデータが、RAM２１３に展開される。本発明は、放送信号を受信する信号受信装置の更新ソフトウェアデータを伝送するデジタルテレビジョン放送システムに適用できる。【選択図】図５
2007080034.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムにおいて、
前記データ生成装置は、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、
前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段を備え、
前記受信装置は、
前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
情報処理システム。
【請求項２】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項１に記載の情報処理システム。
【請求項３】
前記受信装置の前記ファイルシステムは、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備える
請求項１に記載の情報処理システム。
【請求項４】
前記データ生成装置は、
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第１のハッシュ値算出手段と、
前記第１のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、
前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、
前記受信装置の前記差分データ展開手段は、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第２のハッシュ値算出手段と、
前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、
前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、
前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する
請求項３に記載の情報処理システム。
【請求項５】
ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、
前記データ生成装置における、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを含み、
前記受信装置における、
前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む
情報処理方法。
【請求項６】
ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
受信装置。
【請求項７】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項６に記載の受信装置。
【請求項８】
前記ファイルシステムは、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備える
請求項６に記載の受信装置。
【請求項９】
前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、
前記差分データ展開手段は、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段と、
前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、
前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、
前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する
請求項８に記載の受信装置。
【請求項１０】
ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップと
を含む受信方法。
【請求項１１】
ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置用のプログラムであって、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップと
を含むプログラム。
【請求項１２】
放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、
前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段と
を備えるデータ生成装置。
【請求項１３】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項１２に記載のデータ生成装置。
【請求項１４】
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段と、
前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、
前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成する
請求項１２に記載のデータ生成装置。
【請求項１５】
放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップと
を含むデータ生成方法。
【請求項１６】
放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成する処理をコンピュータに行わせるプログラムであって、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを
を含むプログラム。
【請求項１７】
ファイルシステムを有する情報処理装置において、
前記情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータを取得する取得手段と、
前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置に関し、特に、受信装置のソフトウェアの格納および更新にかかるコストを削減するとともに、確実にソフトウェアを起動させることができるようにした情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置に関する。
【背景技術】
【０００２】
木構造のファイルシステムを有するコンピュータシステムでは、ファイルシステム上で起動するソフトウェアもファイルシステム上のファイルとして管理される。
【０００３】
このようなコンピュータシステムにおいて、ソフトウェアのバージョンアップ（更新）を実現する場合、一般的に、ソフトウェアを書き換え可能な領域に記憶しておき、ファイルシステムのイメージ全体を、新しいバージョンのものに差し替える方法や、ファイル単位で新しいバージョンのファイルに差し替える方法などがある。
【０００４】
前者の場合、ソフトウェアのバージョン管理が簡便になる一方で、ソフトウェアを更新するために機器に転送するデータ量が大きくなってしまう。後者の場合、ソフトウェアを更新するために機器に転送するデータ量は、更新されたファイルの分だけであり、前者に較べて少なくなるが、バージョン管理が煩雑になってしまう。
【０００５】
また、特許文献１には、ソフトウェアを書き換え可能な領域に記憶しておき、前のバージョンと新しいバージョンの差分データのみで、そのソフトウェアを差し替えて更新する方法も提案されている。この場合にも、上述したファイル単位でのソフトウェアの更新と同様に、バージョン管理が煩雑になってしまう。
【０００６】
【特許文献１】特開２００２−２９７３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上のように、木構造のファイルシステムを有するコンピュータシステムでは、一般的には、ソフトウェアを書き換え可能な領域に記憶しておき、バージョンアップの際には、書き換え可能な領域のソフトウェアの全部、あるいはその一部を差し替える（書き換える）ことにより、ソフトウェアがバージョンアップされていた。
【０００８】
しがたって、ソフトウェアの更新処理中に不意な電源切断などが発生した場合、ソフトウェアが不完全な状態となってしまうことがあった。
【０００９】
また、このようなコンピュータシステムでは、ソフトウェアを更新が行えるだけの書き換え可能な領域が必要であり、例えば、放送信号を受信する受信機や、その他の家電機器のように、潤沢なハードウェアリソースを持たない機器では、ソフトウェアを格納する書き換え可能な領域を確保する分のコストがかかってしまっていた。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、受信装置のソフトウェアの格納および更新にかかるコストを削減するとともに、確実にソフトウェアを起動させることができるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の第１の側面の情報処理システムは、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムにおいて、前記データ生成装置は、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段を備え、前記受信装置は、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
【００１２】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
【００１３】
前記受信装置の前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備えることができる。
【００１４】
前記データ生成装置は、前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第１のハッシュ値算出手段と、前記第１のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、前記受信装置の前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第２のハッシュ値算出手段と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
【００１５】
本発明の第１の側面の情報処理方法は、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、前記データ生成装置における、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを含み、前記受信装置における、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
【００１６】
本発明の第２の側面の受信装置は、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
【００１７】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
【００１８】
前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データ反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備えることができる。
【００１９】
前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
【００２０】
本発明の第２の側面の受信方法は、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
【００２１】
本発明の第２の側面のプログラムは、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置用のプログラムであって、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
【００２２】
本発明の第３の側面のデータ生成装置は、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段とを備える。
【００２３】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
【００２４】
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段と、前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成することができる。
【００２５】
本発明の第３の側面のデータ生成方法は、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップとを含む。
【００２６】
本発明の第３の側面のプログラムは、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成する処理をコンピュータに行わせるプログラムであって、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップとを含む。
【００２７】
本発明の第４の側面の情報処理装置は、ファイルシステムを有する情報処理装置において、前記情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータを取得する取得手段と、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
【００２８】
第１の側面の本発明においては、データ生成装置により、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データが算出され、算出された前記差分データを基に、前記ダウンロードデータが生成される。また、前記受信装置により、前記放送信号に多重化された前記ダウンロードデータが取得され、前記受信装置のファイルシステムにより、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
【００２９】
第２の側面の本発明においては、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータが取得される。そして、ファイルシステムにより、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
【００３０】
第３の側面の本発明においては、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データが算出され、算出された前記差分データを基に、前記ダウンロードデータが生成される。
【００３１】
第４の側面の本発明においては、情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータが取得される。そして、ファイルシステムにより、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
【発明の効果】
【００３２】
第１の側面の本発明によれば、ソフトウェアの格納および更新にかかるコストを削減することができ、ソフトウェアが不安定な状態になるのを抑制することができる。
【００３３】
第２の側面の本発明によれば、ソフトウェアの格納にかかるコストを削減することができ、また、ソフトウェアが不安定な状態になるのを抑制することができる。
【００３４】
第３の側面の本発明によれば、ソフトウェアの更新にかかるコストを削減することができる。
【００３５】
第４の側面の本発明によれば、ソフトウェアが不安定な状態になるのを抑制することができる。
【発明を実施するための最良の形態】
【００３６】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３７】
本発明の第１の側面の情報処理システム（例えば、図１のデジタル放送システム）は、ファイルシステムを有し、放送信号を受信する受信装置（例えば、図１の信号受信装置５−１）と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置（例えば、図１のデータ生成装置１）からなる情報処理システムにおいて、前記データ生成装置は、前記受信装置のソフトウェア（例えば、図１のソフトウェア１１）の基準となる基準バージョンのデータ（例えば、図１の基準バージョンソフトウェア１１Ａ）と、更新対象となる更新バージョンのデータ（例えば、図１の新バージョンソフトウェア１１Ｂ）の差分データ（図１の差分データ１２）を算出する差分データ算出手段（例えば、図３の差分データ生成部１５１）と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータ（例えば、図１のダウンロードデータ１３）を生成するデータ生成手段（例えば、図３のデータ結合部１５２）を備え、前記受信装置は、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段（例えば、図７のダウンロードデータ取得部２９２）と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ（例えば、図５のRAM２１３）に展開させるファイルシステム（例えば、図５のファイルシステム２３１）とを備える。
【００３８】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ（例えば、図１１の差分データ１２−１乃至１２−３）が結合されて構成されることができる。
【００３９】
前記受信装置の前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段（例えば、図６の差分データ確認処理部２５１）と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段（例えば、図６のソフトウェア起動処理部２５２）とを備えることができる。
【００４０】
前記データ生成装置は、前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第１のハッシュ値算出手段（例えば、図３のハッシュ値算出部１５３）と、前記第１のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段と（例えば、図３の証明書生成部１５４）をさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、前記受信装置の前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第２のハッシュ値算出手段（例えば、図６のハッシュ値算出部２６３）と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段（例えば、図６のデータ復号部２６２）と、前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段（例えば、図６のハッシュ値比較部２６４）とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第２のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
【００４１】
本発明の第１の側面の情報処理方法は、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、前記データ生成装置における、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップ（例えば、図１０のステップＳ１）と、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップ（例えば、図１０のステップＳ５）を含み、前記受信装置における、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップ（例えば、図１２のステップＳ１６）と、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップ（例えば、図１５のステップＳ６３）とを含む。
【００４２】
本発明の第２の側面の受信装置は、ファイルシステムを有し、データ生成装置（例えば、図１のデータ生成装置１）によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置（例えば、図１の信号受信装置５−１）において、前記受信装置のソフトウェアの基準となる基準バージョンのデータ（例えば、図１の基準バージョンソフトウェア１１Ａ）と、更新対象となる更新バージョンのデータ（例えば、図１の新バージョンソフトウェア１１Ｂ）の差分データ（図１の差分データ１２）を算出して生成され、前記放送信号に多重化された前記ダウンロードデータ（例えば、図１のダウンロードデータ１３）を取得する取得手段（例えば、図７のダウンロードデータ取得部２９２）と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ（例えば、図５のRAM２１３）に展開させるファイルシステム（例えば、図５のファイルシステム２３１）とを備える。
【００４３】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ（例えば、図１１の差分データ１２−１乃至１２−３）が結合されて構成されることができる。
【００４４】
前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段（例えば、図６の差分データ確認処理部２５１）と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段（例えば、図６のソフトウェア起動処理部２５２）とを備えることができる。
【００４５】
前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段（例えば、図６のハッシュ値算出部２６３）と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段（例えば、図６のデータ復号部２６２）と、前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段（例えば、図６のハッシュ値比較部２６４）とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
【００４６】
本発明の第２の側面の受信方法またはプログラムは、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法またはプログラムにおいて、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップ（例えば、図１２のステップＳ１６）と、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップ（例えば、図１５のステップＳ６３）とを含む。
【００４７】
本発明の第３の側面のデータ生成装置は、放送信号に多重化されて送信される、ファイルシステム（例えば、図５のファイルシステム２３１）を有し、放送信号を受信する受信装置（例えば、図１の信号受信装置５−１）のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置（例えば、図１のデータ生成装置１）において、前記受信装置のソフトウェアの基準となる基準バージョンのデータ（例えば、図１の基準バージョンソフトウェア１１Ａ）と、更新対象となる更新バージョンのデータ（例えば、図１の新バージョンソフトウェア１１Ｂ）の差分データ（図１の差分データ１２）を算出する差分データ算出手段（例えば、図３の差分データ生成部１５１）と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段（例えば、図３のデータ結合部１５２）とを備える。
【００４８】
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ（例えば、図１１の差分データ１２−１乃至１２−３）が結合されて構成されることができる。
【００４９】
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段（例えば、図３のハッシュ値算出部１５３）と、前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段（例えば、図３の証明書生成部１５４）とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成することができる。
【００５０】
本発明の第３の側面のデータ生成方法またはプログラムは、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法またはプログラムにおいて、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップ（例えば、図１０のステップＳ１）と、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップ（例えば、図１０のステップＳ５）とを含む。
【００５１】
本発明の第４の側面の情報処理装置は、ファイルシステムを有する情報処理装置（例えば、図１の信号受信装置５−１）において、前記情報処理装置のソフトウェアの基準となる基準バージョンのデータ（例えば、図１の基準バージョンソフトウェア１１Ａ）と、更新対象となる更新バージョンのデータ（例えば、図１の新バージョンソフトウェア１１Ｂ）の差分データ（図１の差分データ１２）を算出して生成されるデータ（例えば、図１のダウンロードデータ１３）を取得する取得手段（例えば、図７のダウンロードデータ取得部２９２）と、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ（例えば、図５のRAM２１３）に展開させるファイルシステム（例えば、図５のファイルシステム２３１）とを備える。
【００５２】
以下、図を参照して本発明の実施の形態について説明する。
【００５３】
図１は、本発明を適用したデジタルテレビジョン放送（以下、デジタル放送とも称する）システムの構成例を表している。なお、図１の例においては、地上波デジタル放送を用いて説明する。
【００５４】
このデジタル放送システムにおいては、放送装置４から、放送事業者のロゴやジャンルコードを含む共通データや、ユーザが有する信号受信装置５−１および５−２の機種毎のソフトウェアを更新するための更新データなどがダウンロードデータとして放送信号に多重化されて放送されており、信号受信装置５−１および５−２は、それぞれ、放送信号に多重化されたダウンロードデータを取得することで、新しいバージョンのソフトウェアでの起動が可能になる。
【００５５】
図１の例においては、信号受信装置５−１および５−２（以下、個々に区別する必要のない場合、単に、信号受信装置５と称する）が２台しか記載されていないが、実際には、任意の台数の信号受信装置５が存在し、その機種も１種類ではなく、複数の機種の信号受信装置５が存在する。
【００５６】
信号受信装置５などを製作する受信装置製作者（メーカ）は、データ生成装置１を有している。データ生成装置１は、更新する機種（例えば、信号受信装置５）の地上波デジタル放送用のソフトウェア１１の更新するための更新データとしてのダウンロードデータや、そのダウンロードデータのダウンロードが行われることを市場の信号受信装置に対して通知するためのダウンロード告知情報テーブル（SDTT：Software Download Trigger Table）を、機種毎に生成し、ダウンロード事業者の有するダウンロード装置３に提出（送信）する。
【００５７】
このとき、データ生成装置１は、ソフトウェア１１として、出荷前に信号受信装置５に予め記憶されて出荷されるバージョンである基準バージョンのソフトウェア（基準バージョンソフトウェア１１Ａ）と、更新する対象となる新バージョンのソフトウェア（新バージョンソフトウェア１１Ｂ）を有している。以下、ソフトウェア１１を用いて説明するが、実際には、信号受信装置５には、多数のソフトウェアが存在し、他のソフトウェアも、ソフトウェア１１と同様に構成され、他のソフトウェアにも、ソフトウェア１１と同様の処理が行われる。
【００５８】
データ生成装置１は、これらの基準バージョンソフトウェア１１Ａと新バージョンソフトウェア１１Ｂに基づいて、ソフトウェア１１を更新するための更新データであるバイナリの差分データ１２を生成して、それをダウンロードデータとして、ダウンロード装置３に提出（送信）する。
【００５９】
ダウンロード装置３は、メーカ（データ生成装置１）の提出するダウンロードデータを集めて、スケジューリングし、放送装置４を介して、放送信号に多重化して放送する。なお、このとき、ダウンロードデータは、DSM-CCデータカルーセル方式で、データカルーセルとして放送信号に多重して放送される。
【００６０】
また、ダウンロード装置３は、ダウンロードデータを送信する前に、メーカ（データ生成装置１）の提出するSDTTに、ダウンロードデータ（更新データ）に基づく必要な情報（例えば、ダウンロードデータのダウンロードのスケジュールに基づく、ダウンロードデータのダウンロード時刻やダウンロードを行うサービス（チャンネル）などのダウンロード情報）を記述して完成させ、完成したSDTTを、放送装置４を介して、放送信号に多重して放送する。
【００６１】
信号受信装置５には、ソフトウェア１１の基準バージョンソフトウェア１１Ａが予め記憶されている。また、信号受信装置５には、対応するメーカにおいてメーカを識別するためのメーカ識別子とともに、信号受信装置５の機種を識別するためのモデル識別子が予め記憶されている。
【００６２】
信号受信装置５は、放送装置４からの放送信号を受信し、SDTTを取得すると、SDTTに記述（記載）されているメーカ識別子とモデル識別子を参照し、自己の（すなわち、信号受信装置５に記憶されている）メーカ識別子とモデル識別子と一致するか否かを判定し、SDTTのメーカ識別子とモデル識別子が自己のメーカ識別子とモデル識別子と一致した場合、SDTTに記述されているダウンロードデータのバージョンが、自己に記憶されているダウンロードデータ（更新データ）のバージョンよりも新しいか否かを判定する。
【００６３】
信号受信装置５は、SDTTに記述されているダウンロードデータのバージョンが、自己に記憶されているダウンロードデータよりも新しいならば、SDTTに基づいて、ダウンロードデータのダウンロードの準備を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になったときに、ダウンロードデータが多重化された放送信号を受信し、受信したダウンロードデータを取得し、フラッシュメモリなどの不揮発性メモリに格納する。
【００６４】
そして、信号受信装置５は、ユーザの操作に応じて起動する毎に、フラッシュメモリに格納されるダウンロードデータからソフトウェア１１の更新データである差分データ１２を読み出す。そして、信号受信装置５は、ソフトウェア１１の起動時に、基準バージョンソフトウェア１１Ａと差分データ１２を用いて、新バージョンソフトウェア１１Ｂを起動させる。これにより、信号受信装置５においては、以前のバージョンよりも更新されたソフトウェアが起動される。
【００６５】
すなわち、信号受信装置５においては、実際には、基準バージョンソフトウェア１１Ａは、新バージョンソフトウェア１１Ｂで書き換えられず、新バージョンソフトウェア１１Ｂの実体は保持されることはない。
【００６６】
以上のように、図１のデジタル放送システムの信号受信装置５においては、ソフトウェア１１の基準バージョンソフトウェア１１Ａが予め記憶されるとともに、ソフトウェア１１を更新するための更新データである、基準バージョンソフトウェア１１Ａと新バージョンソフトウェア１１Ｂとの差分データ１２が取得されて記憶されており、信号受信装置５の起動後、かつ、ソフトウェア１１の起動時に、基準バージョンソフトウェア１１Ａと差分データ１２を用いて、新バージョンソフトウェア１１Ｂが起動される。
【００６７】
これにより、従来のように、更新するソフトウェアすべてや、ソフトウェアのうち更新するモジュールのみを送信するよりも、更新データを送信するための通信費用が削減されるとともに、ソフトウェアの更新中に不慮の電源切断などにより、ソフトウェアが不完全な状態になってしまい、起動しなくなってしまうことが抑制される。
【００６８】
なお、図１の例においては、メーカおよびそのデータ生成装置１、ダウンロード装置３、および放送装置４が１台しか示されていないが、実際には、任意の複数台のデータ生成装置１、ダウンロード装置３、および放送装置４が存在する。
【００６９】
図２は、データ生成装置１の構成例を表している。図２の例において、CPU（Central Processing Unit）１１１は、ROM（Read Only Memory）１１２に記憶されているプログラム、または記憶部１１８からRAM（Random Access Memory）１１３にロードされたプログラムに従って各種の処理を実行する。RAM１１３にはまた、CPU１１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００７０】
CPU１１１、ROM１１２、およびRAM１１３は、バス１１４を介して相互に接続されている。このバス１１４にはまた、入出力インタフェース１１５も接続されている。
【００７１】
入出力インタフェース１１５には、キーボード、マウス、マイクロホンなどよりなる入力部１１６、ディスプレイ、スピーカなどよりなる出力部１１７が接続されている。CPU１１１は、入力部１１６から入力される指令に対応して各種の処理を実行する。そして、CPU１１１は、処理の結果を出力部１１７に出力する。
【００７２】
入出力インタフェース１１５に接続されている記憶部１１８は、例えばハードディスクからなり、CPU１１１が実行するプログラムや各種のデータを記憶する。通信部１１９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部１１９を介してプログラムを取得し、記憶部１１８に記憶してもよい。
【００７３】
入出力インタフェース１１５に接続されているドライブ１２０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１１８に転送され、記憶される。
【００７４】
なお、図示は省略するが、ダウンロード装置３および放送装置４も、図２に示したデータ生成装置１と基本的に同様の構成とされる。従って、以下の説明においては、図２のデータ生成装置１の構成は、必要に応じて、ダウンロード装置３または放送装置４の構成としても引用される。
【００７５】
図３は、ダウンロードデータの生成処理を行うデータ生成装置１の機能構成例を示している。図３に示される機能ブロックは、図２のCPU１１１により所定の制御プログラムが実行されることで実現される。なお、図３の例においては、図２の記憶部１１８には、信号受信装置５の機種毎、更新するソフトウェア１１毎の、基準バージョンソフトウェア１１Ａおよび更新対象となる新バージョンソフトウェア１１Ｂが記憶されている。
【００７６】
図３に示される機能ブロックは、差分データ生成部１５１、データ結合部１５２、ハッシュ値算出部１５３、および証明書生成部１５４により構成される。
【００７７】
差分データ生成部１５１は、記憶部１１８に記憶されている信号受信装置５の更新対象となる機種で、更新対象となるソフトウェア１１の基準バージョンソフトウェア１１Ａおよび新バージョンソフトウェア１１Ｂの変化情報をそれぞれ抽出し、差分データ１２を生成し、データ結合部１５２に供給する。なお、更新対象となるソフトウェアが複数ある場合には、複数のソフトウェアの差分データが生成される。
【００７８】
差分データ１２は、更新対象のソフトウェア１１のファイル名とその変化情報で構成されている。
【００７９】
データ結合部１５２は、差分データ生成部１５１により生成された各ソフトウェア１１の各差分データ１２を結合し、結合した差分データ１２を、ハッシュ値算出部１５３に供給する。また、データ結合部１５２は、結合した差分データ１２と、証明書生成部１５４により生成された証明書を結合し、ダウンロードデータ１３を生成する。
【００８０】
ハッシュ値算出部１５３は、データ結合部１５２からの結合された差分データ１２を用いて、ハッシュ値を算出し、算出したハッシュ値を、証明書生成部１５４に供給する。証明書生成部１５４は、公開鍵暗号方式の秘密鍵を有しており、ハッシュ値算出部１５３により算出されたハッシュ値を、秘密鍵で暗号化することで、証明書を生成し、生成した証明書を、データ結合部１５２に供給する。
【００８１】
図４は、信号受信装置５の構成例を示している。信号受信装置５は、アンテナ２０１を介して、放送装置４からの放送信号を受信、選局し、その映像をディスプレイ２０２より出力するとともに、その音声をスピーカ２０３より出力する。
【００８２】
CPU（Central Processing Unit）２１１には、ROM(Read Only Memory) ２１２、RAM（Random Access Memory）２１３、操作入力部２１４、およびフラッシュメモリ２１５が接続されている。CPU２１１は、ROM２１２に記憶されているプログラム、または、RAM２１３にロードされたプログラム、もしくは操作入力部２１４を介して得られるユーザの指示信号に従って、信号受信装置５の各部を制御し、各種の処理を実行する。
【００８３】
図４の例の場合、ROM２１２には、ソフトウェア１１の基準バージョンソフトウェア１１Ａがファイルデータとして記憶されている。なお、内部構造的には、この基準バージョンソフトウェア１１Ａは、RAM２１３に展開される、信号受信装置５のＯＳ（オペレーションシステム）が有するファイルシステム２３１（図５）上に、ファイル化して配置されている。なお、いまの場合、１種類のソフトウェアしか示されていないが、複数のソフトウェアの基準バージョンソフトウェアのファイルデータが記憶されている。
【００８４】
RAM２１３にはまた、CPU２１１が各種の処理を実行する上において必要なデータなどが適宜記憶される。操作入力部２１４は、入力ボタンやダイヤルなどからなり、ユーザの指示信号を、CPU２１１に出力する。フラッシュメモリ２１５には、信号受信装置５が受信したSDTTやソフトウェア１１の更新データであるダウンロードデータ１３などが記憶されている。なお、フラッシュメモリ２１５は、不揮発性メモリであれば、フラッシュメモリに限定されない。
【００８５】
CPU２１１には、バス２１６を介して、ネットワークインタフェース（I/F）２１７、ドライブ２１８、フロントエンド部２１９、デスクランブラ２２０、デマルチプレクサ２２１、MPEG（Moving Picture Experts Group）デコーダ２２２、映像信号処理部２２３、および音声信号処理部２２４が接続されており、CPU２１１の制御に応じて、所定の処理を実行する。
【００８６】
ネットワークインタフェース２１７は、モデムやIEEE802.3インタフェースなどにより構成され、図示せぬネットワークに接続されるサーバなどとデータリンク確立を行い、必要に応じて、FTP(File Transfer Protocol)やHTTP(Hyper Text Transport Protocol)などのデータ転送プロトコルにより、所定のデータを通信する。
【００８７】
ドライブ２１８には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどからなるリムーバブルメディア２２５が適宜装着される。ドライブ２１８は、リムーバブルメディア２２５よりデータを読み出したり、データを書き込んだりする際に用いられる。リムーバブルメディア２２５から読み出されたコンピュータプログラムは、必要に応じてROM２１２やフラッシュメモリ２１５に記憶され、インストールされる。
【００８８】
フロントエンド部２１９は、アンテナ２０１を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリーム（TS : transport Stream）を生成し、デスクランブラ２２０に出力する。デスクランブラ２２０は、フロントエンド部２１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ２２１に出力する。
【００８９】
デマルチプレクサ２２１は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。デマルチプレクサ２２１は、映像データおよび音声データをMPEGデコーダ２２２に出力し、必要なセクションデータのみをCPU２１１に出力する。すなわち、デマルチプレクサ２２１においては、ソフトウェアあるいはハードウェアのフィルタをかけることが可能であり、そのフィルタに対して、パラメータを指定することで必要なセクションデータのみがCPU２１１に出力される。
【００９０】
セクションデータには、データ放送やデータのダウンロードで利用されるDSM-CCセクション（例えば、データカルーセル）、SDTT（ダウンロード告知情報）、およびEPG（Electronic Program Guide）情報などが含まれている。
【００９１】
例えば、SDTTであることを特定するテーブル識別子、メーカ識別子、およびモデル識別子などは、SDTTの先頭付近に配置されているので、テーブル識別子と、信号受信装置５が対応するメーカ識別子およびモデル識別子とをパラメータとして指定することで、デマルチプレクサ２２１は、SDTTのうち、信号受信装置５が対応するメーカ識別子およびモデル識別子のSDTTのみを選別して、CPU２１１に出力することができる。
【００９２】
CPU２１１は、デマルチプレクサ２２１からのセクションデータのそれぞれの情報をRAM２１３に展開する。RAM２１３に展開されたセクションデータのうち、保持すべきものは、CPU２１１により形式を変換されて、RAM２１３やフラッシュメモリ２１５に保持される。すなわち、信号受信装置５に必要なSDTTや、信号受信装置５の基準バージョンソフトウェア１１Ａをバージョンアップ（更新）するのに必要なダウンロードデータ１３は、フラッシュメモリ２１５に保持される。
【００９３】
MPEGデコーダ２２２は、デマルチプレクサ２２１からの映像データをデコードし、映像信号処理部２２３に出力し、また、デマルチプレクサ２２１からの音声データをデコードし、音声信号処理部２２４に出力する。
【００９４】
映像信号処理部２２３は、デマルチプレクサ２２１からの映像データに、データ放送データなどを付加（重畳）し、NTSCフォーマットの信号に変換して、映像を、ディスプレイ２０２に表示させる。音声信号処理部２２４は、デマルチプレクサ２２１からの音声データを、スピーカ２０３から出力させる。
【００９５】
ここで、信号受信装置５の基本的な動作を説明する。
【００９６】
フロントエンド部２１９は、アンテナ２０１を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ２２０に出力する。デスクランブラ２２０は、フロントエンド部２１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ２２１に出力する。
【００９７】
デマルチプレクサ２２１は、フロントエンド部２１９からの多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離し、映像データおよび音声データをMPEGデコーダ２２２に出力し、必要なセクションデータのみをCPU２１１に出力する。
【００９８】
MPEGデコーダ２２２は、デマルチプレクサ２２１からの映像データをデコードし、映像信号処理部２２３に出力し、デマルチプレクサ２２１からの音声データをデコードし、音声信号処理部２２４に出力する。
【００９９】
映像信号処理部２２３は、デマルチプレクサ２２１からの映像データに、データ放送データなどを付加（重畳）し、NTSCフォーマットの信号に変換して、変換した映像データに対応する映像を、ディスプレイ２０２に表示させる。音声信号処理部２２４は、デマルチプレクサ２２１からの音声データに対応する音声を、スピーカ２０３から出力させる。
【０１００】
これにより、信号受信装置５のディスプレイ２０２には、所定のサービスの映像が表示され、スピーカ２０３から、所定のサービスの音声が出力される。
【０１０１】
図５は、差分データ１２を用いて、ソフトウェア１１を起動させる信号受信装置５の機能構成例を示している。図６に示される機能ブロックは、図５のCPU２１１によりファイルシステム２３１を含むＯＳが起動（実行）されることで実現される。
【０１０２】
なお、図５の例において、ROM２１２には、出荷前に予め記憶されたものであるソフトウェア１１の基準バージョンソフトウェア１１Ａがファイルデータとして記憶されており、フラッシュメモリ２１５には、データ生成装置１によりソフトウェア１１の基準バージョンソフトウェア１１Ａと、ソフトウェア１１の更新する対象となる新バージョンソフトウェア１１Ｂに基づいて生成され、放送信号に多重化されて送信されてきたバイナリのソフトウェア１１の差分データ１２からなるダウンロードデータ１３が記憶されている。
【０１０３】
信号受信装置５の起動時に、CPU２１１により信号受信装置５のＯＳが起動され、ＯＳに含まれているファイルシステム２３１がRAM２１３に展開される。このファイルシステム２１３は木構造を有するファイルシステムである。
【０１０４】
ファイルシステム２３１は、通常のファイルシステムが有する機能である、ディレクトリ名とファイル名からストレージ（ROM２１２、フラッシュメモリ２１５、リムーバブルメディア２２５など）上のデータ領域を特定する機能（図示せぬ）に加えて、差分データ１２（ファイル名と変化情報）を基に、ソフトウェア１１（すなわち、基準バージョンソフトウェア１１Ａ）の実アクセス時に、読み替える（差分データ１２を反映させる）機能を有する。
【０１０５】
具体的には、ファイルシステム２３１は、起動時に、フラッシュメモリ２１５に、ダウンロードデータ１３があるか否かを判定し、ダウンロードデータ１３があると判定した場合、ダウンロードデータ１３から得られるソフトウェア１１の差分データ１２を、RAM２１３に読み込む（展開する）。
【０１０６】
なお、このとき、ファイルシステム２３１は、ダウンロードデータ１３から得られる証明書に基づいて、ダウンロードデータ１３から得られる差分データ１２が不正なデータでないことを判定してから、差分データ１２を、RAM２１３に読み込む。
【０１０７】
そして、ファイルシステム２３１は、ソフトウェア１１を起動させるとき、ROM２１２に記憶されているソフトウェア１１の基準バージョンソフトウェア１１Ａのファイルデータを読み込みながら、そのファイルデータに、RAM２１３に展開されたソフトウェア１１の差分データ１２を反映させながら、RAM２１３にファイルデータを展開させる。
【０１０８】
これにより、RAM２１３には、新バージョンソフトウェア１１Ｂのファイルデータが展開されて、新バージョンソフトウェア１１Ｂが起動される。
【０１０９】
図６は、図５のファイルシステム２３１の機能構成例を示す図である。
【０１１０】
図６に示される機能ブロックは、大きくは、ファイルシステム２３１の起動時に、フラッシュメモリ２１５のダウンロードデータ１３を差分データ１２として、RAM２１３に展開する処理を行う差分データ確認処理部２５１と、ソフトウェア１１の起動を制御処理するソフトウェア起動処理部２５２により構成される。
【０１１１】
差分データ確認処理部２５１は、データ管理部２６１、データ復号部２６２、ハッシュ値算出部２６３、ハッシュ値比較部２６４、および差分データ読み込み部２６５により構成される。
【０１１２】
データ管理部２６１は、ファイルシステム２３１の起動時に、フラッシュメモリ２１５に、ダウンロードデータ１３があるか否かを判定し、フラッシュメモリ２１５に、ダウンロードデータ１３があると判定した場合、ダウンロードデータ１３から得られる証明書をデータ復号部２６２に供給し、ダウンロードデータ１３から得られる差分データ１２を、ハッシュ値算出部２６３に供給する。
【０１１３】
データ復号部２６２は、公開鍵暗号方式の秘密鍵に対応する公開鍵を有しており、データ管理部２６１からの証明書をその公開鍵で復号し、復号した復号結果をハッシュ値比較部２６４に供給する。
【０１１４】
ハッシュ値算出部２６３は、データ生成装置１のハッシュ値算出部１５３（図３）と同じ方法で、ダウンロードデータ１３から得られる差分データ１２を用いて、ハッシュ値を算出し、差分データ１２とともに、算出したハッシュ値をハッシュ値比較部２６４に供給する。
【０１１５】
ハッシュ値比較部２６４は、データ復号部２６２からの復号結果であるハッシュ値と、ハッシュ値算出部２６３により算出されたハッシュ値とが一致するか否かを判定し、復号結果と、ハッシュ値算出部２６３により算出されたハッシュ値とが一致すると判定された場合、ハッシュ値算出部２６３からの差分データ１２は不正なデータではないとして、差分データ１２を、差分データ読み込み部２６５に供給する。
【０１１６】
差分データ読み込み部２６５は、ハッシュ値比較部２６４からの差分データ１２を、RAM２１３に読み込む（展開する）。
【０１１７】
図６の例において、ソフトウェア起動処理部２５２は、ソフトウェア起動監視部２７１、ファイルデータ読み込み部２７２、および差分データ反映部２７３により構成される。
【０１１８】
ソフトウェア起動監視部２７１は、ソフトウェア１１の起動時に、対象のソフトウェア１１に対応する差分データ１２があるか否かを判定し、対象のソフトウェア１１に対応する差分データ１２がないと判定した場合、ファイルデータ読み込み部２７２を制御し、基準バージョンソフトウェア１１Ａのファイルデータを読み込ませる。
【０１１９】
また、ソフトウェア起動監視部２７１は、対象のソフトウェア１１に対応する差分データ１２があると判定した場合、ファイルデータ読み込み部２７２および差分データ反映部２７３を制御し、基準バージョンソフトウェア１１Ａのファイルデータを読み込みながら、差分データ１２を反映させる処理を行わせる。
【０１２０】
ファイルデータ読み込み部２７２は、ソフトウェア起動監視部２７１または差分データ反映部２７３の制御のもと、起動させるソフトウェア１１の基準バージョンソフトウェア１１ＡのファイルデータをROM２１２から読み込む。
【０１２１】
差分データ反映部２７３は、ソフトウェア起動監視部２７１の制御のもと、差分データ１２を、ソフトウェア１１の基準バージョンソフトウェア１１Ａのファイルデータに反映させる。
【０１２２】
図７は、SDTTに基づいてダウンロードデータ１３を取得する信号受信装置５の機能構成例を示している。図７に示される機能ブロックは、図４のCPU２１１により所定の制御プログラムが実行されることで実現される。
【０１２３】
図７に示される機能ブロックは、告知情報取得部２９１、ダウンロードデータ取得部２９２、および選局部２９３、並びに図５のフラッシュメモリ２１５により構成されている。
【０１２４】
告知情報取得部２９１は、デマルチプレクサ２２１からのセクションデータのうち、デマルチプレクサ２２１により選別されたSDTTを入力すると、RAM２１３に一旦展開し、内蔵する拡張ID判定部２６１およびバージョン判定部２６２によるSDTTの判定結果に応じて、SDTTをフラッシュメモリ２１５に保持させる。
【０１２５】
フラッシュメモリ２１５には、信号受信装置５において取得されたうちの最も新しいバージョンのソフトウェア１１の更新データ（差分データ１２）のダウンロードデータ１３などが記憶されている。
【０１２６】
告知情報取得部２９１は、フラッシュメモリ２１５のソフトウェア１１のダウンロードデータ１３のバージョンを参照して、SDTTに記述されているダウンロードデータのバージョンが、信号受信装置５にとって必要なバージョンであるか否かを判定する。すなわち、バージョン判定部２６２は、SDTTに記述のバージョンが、信号受信装置５のソフトウェア１１のダウンロードデータ１３のバージョンと同じ、もしくは小さい（古い）場合、SDTTに記述のバージョンが必要なバージョンではないと判定し、RAM２１３に展開したSDTTを破棄する。
【０１２７】
また、告知情報取得部２９１は、SDTTに記述のバージョンが、信号受信装置５のダウンロードデータ１３のバージョンよりも大きい（新しい）場合、SDTTに記述のバージョンが必要なバージョンであると判定し、RAM２１３に展開したSDTTを、フラッシュメモリ２１５に保持させる。なお、フラッシュメモリ２１５にダウンロードデータ１３が保持されていない場合も、SDTTに記述のバージョンが必要なバージョンであると判定され、RAM２１３に展開したSDTTが、フラッシュメモリ２１５に保持される。
【０１２８】
ダウンロードデータ取得部２９２は、フラッシュメモリ２１５にSDTTが保持されると、SDTTに記述されている情報を解析し、ダウンロードデータのダウンロードの準備を行う。すなわち、ダウンロードデータ取得部２９２は、SDTTに記述の情報を解析することで、ダウンロードデータのダウンロード開始時刻やダウンロードを行うサービス（チャンネル）などのダウンロード情報を確認し、ダウンロードデータのダウンロード開始時刻を決定し、内蔵するクロックで計時動作を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になるまで待機する。
【０１２９】
ダウンロードデータ取得部２９２は、更新データのダウンロード開始時刻になったと判定した場合、選局部２９３を制御し、SDTTに記述されているサービス（チャンネル）を選局させ、デマルチプレクサ２２１を制御し、選局部２９３により選局されたサービスの放送信号から、信号受信装置５に必要なバージョンの更新データ（差分データ１２）であるダウンロードデータ１３を取得させ、取得したダウンロードデータ１３をフラッシュメモリ２１５に記憶させる。
【０１３０】
なお、このとき、新しく取得されたダウンロードデータは、これ以前に取得されたバージョンが古いダウンロードデータに上書きされる。
【０１３１】
選局部２９３は、ダウンロードデータ取得部２９２の制御のもと、SDTTに記述の更新データのダウンロード開始時刻に、SDTTに記述のサービス（チャンネル）を選局する。
【０１３２】
図８は、データ生成装置１の差分データ生成部１５１により生成される差分データの構成例を示す図である。
【０１３３】
図８の例においては、左から順に、ソフトウェア１１の基準バージョンソフトウェア１１Ａのファイルデータ、ソフトウェア１１の更新対象のバージョンである新バージョンソフトウェア１１Ｂのファイルデータ、および、基準バージョンソフトウェア１１Ａと新バージョンソフトウェア１１Ｂの変化情報でなるソフトウェア１１の差分データ１２が示されている。各ファイルデータには、１バイト目から順に各バイトのデータが示されている。
【０１３４】
基準バージョンソフトウェア１１Ａのファイルデータは、最上段の１バイト目から順に、0x00,0x00,0xA1,0xBC,0x50,0x00,0x91,0x00,0x74,0x79,0x00,0x15,0x00,…の各データで構成されている。
【０１３５】
新バージョンソフトウェア１１Ｂのファイルデータは、最上段の１バイト目から順に、0x00,0x00,0xA1,0xFF,0xFF,0xBC,0x50,0x00,0x91,0x74,0x79,0x00,0x15,0x00,…の各データで構成されている。
【０１３６】
すなわち、基準バージョンソフトウェア１１Ａのファイルデータの上から８バイト目のデータ0x00（ハッチング部分）は、新バージョンソフトウェア１１Ｂのファイルデータに存在しない。また、基準バージョンソフトウェア１１Ａのファイルデータの上から４および５バイト目には、新バージョンソフトウェア１１Ｂのファイルデータの上から４および５バイト目に存在するデータである0xFF,0xFF（ハッチング部分）が存在しない。
【０１３７】
したがって、この２つのファイルデータにより、基準バージョンソフトウェア１１Ａのファイルデータの「４バイト目から、0xFF,0xFFを挿入」するという変化情報と、基準バージョンソフトウェア１１Ａのファイルデータの「８バイト目から、0x00を削除」するという変化情報がバイト順に記述された差分データ１２が生成される。
【０１３８】
なお、この差分データ１２は、実際には、ソフトウェア１１を示すファイル名と、この変化情報で構成され、バイナリデータで記述されて生成される。
【０１３９】
図９は、図１のデジタル放送システムにおけるソフトウェア１１のバージョン管理方法を説明する図である。
【０１４０】
例えば、ソフトウェア１１の基準バージョンがVer.(Version)1.0であるとし、基準バージョンに対しての第１回目のバージョンアップによるバージョンがVer.1.1である場合、第１回目の差分データVer. 1.1は、基準バージョンであるVer.1.0のソフトウェアのファイルデータと、Ver.1.1のソフトウェアのファイルデータとの変化情報が抽出されて、生成される。
【０１４１】
また、基準バージョンに対しての第２回目のバージョンアップによるバージョンがVer. 1.2である場合、第２回目の差分データVer. 1.2は、基準バージョンであるVer. 1.0のソフトウェアのファイルデータと、Ver. 1.2のソフトウェアのファイルデータとの変化情報が抽出されて、生成される。
【０１４２】
すなわち、第何回目のバージョンアップであろうと、基準バージョンのソフトウェアのファイルデータが、対象となるバージョンアップによるバージョンのソフトウェアのファイルデータと比較されて、その変化情報が抽出されて、差分データが生成される。したがって、ユーザにより購入された信号受信装置５毎のバージョンに応じた更新データをそれぞれ生成する必要がないので、バージョン管理が楽になる。また、差分データは、バイナリの変化情報であるので、データ量もそれほど多くなることがない。
【０１４３】
次に、図１０のフローチャートを参照して、データ生成装置１のダウンロードデータ生成処理を説明する。なお、その際、必要に応じて、図１１も参照しながら説明する。
【０１４４】
ステップＳ１において、差分データ生成部１５１は、記憶部１１８に記憶されている信号受信装置５の更新対象となる機種で、更新対象となるソフトウェア１１の基準バージョンソフトウェア１１Ａおよび新バージョンソフトウェア１１Ｂの変化情報をそれぞれ抽出し、ソフトウェア１１のファイル名と変化情報からなる差分データを生成し、データ結合部１５２に供給する。
【０１４５】
すなわち、図１１に示されるように、例えば、３つのソフトウェアが更新対象であった場合、３つのソフトウェアのファイルデータのファイル名と、３つの基準バージョンソフトウェアのファイルデータおよび新バージョンソフトウェアのファイルデータの変化情報（差分情報）からなる差分データ１２−１乃至１２−３がそれぞれ生成される。
【０１４６】
ステップＳ２において、データ結合部１５２は、差分データ生成部１５１からの差分データ（すなわち、３つの差分データ１２−１乃至１２−３）を結合し、結合した差分データ１２を、ハッシュ値算出部１５３に供給する。
【０１４７】
ステップＳ３において、ハッシュ値算出部１５３は、データ結合部１５２からの差分データ１２を用いて、ハッシュ値３１１Ａを算出し、算出したハッシュ値３１１Ａを、証明書生成部１５４に供給する。
【０１４８】
ステップＳ４において、証明書生成部１５４は、ハッシュ値算出部１５３により算出されたハッシュ値３１１Ａを、秘密鍵で暗号化することで、証明書３１２を生成し、生成した証明書３１２を、データ結合部１５２に供給する。
【０１４９】
ステップＳ５において、データ結合部１５２は、ステップＳ２において結合した差分データ１２と、ステップＳ４において証明書生成部１５４により生成された証明書３１２を結合し、ダウンロードデータ１３を生成する。
【０１５０】
以上のようにして、更新対象のソフトウェア１１を更新するための更新データである、更新対象のソフトウェアの基準バージョンのファイルデータと、更新対象の新バージョンのファイルデータとの変化情報からなる差分データ１２がダウンロードデータ１３として生成される。
【０１５１】
これにより、生成されたダウンロードデータ１３は、ダウンロード装置３に送信（提出）されるので、ダウンロード装置３は、データ生成装置１の提出するダウンロードデータ１３を集めて、スケジューリングする。
【０１５２】
そして、ダウンロード装置３は、ダウンロードデータ１３をデータカルーセルとして送信する前に、データ生成装置１により別途生成され、提出されるSDTTに、ダウンロードデータに基づく必要な情報（例えば、信号受信装置に対して、事前にソフトウェアの更新データ（ダウンロードデータ）のダウンロードが行われること通知する情報として、ダウンロードデータのダウンロード時刻やダウンロードを行うサービス（チャンネル）などのダウンロード情報）を記載して完成させ、完成したSDTTを、放送装置４を介して、放送信号に多重して放送する。
【０１５３】
なお、その後、ダウンロード装置３は、更新データのダウンロード時刻に、更新データであるダウンロードデータ１３を、データカルーセルとして、放送装置４を介して、放送信号に多重して放送する。
【０１５４】
次に、図１２のフローチャートを参照して、信号受信装置５によるダウンロードデータ取得処理を説明する。
【０１５５】
上述したように、信号受信装置５のソフトウェアの更新の際には、更新データであるダウンロードデータ１３の送信（放送）に先立って、SDTT(ダウンロード告知情報テーブル)がダウンロード装置３および放送装置４を介して放送されてくる。
【０１５６】
信号受信装置５のフロントエンド部２１９は、アンテナ２０１を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ２２０に出力する。デスクランブラ２２０は、フロントエンド部２１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ２２１に出力する。
【０１５７】
デマルチプレクサ２２１は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。そして、デマルチプレクサ２２１は、分離したセクションデータを、テーブル識別子、メーカ識別子、およびモデル識別子をパラメータとしたフィルタリング処理を行い、SDTTであることを識別すると、さらに、SDTTに記述されているメーカ識別子およびモデル識別子が、信号受信装置５が対応するメーカ識別子およびモデル識別子と一致するかを判定する。
【０１５８】
SDTTに記述されているメーカ識別子およびモデル識別子が、信号受信装置５が対応するメーカ識別子およびモデル識別子と一致すると判定された場合、デマルチプレクサ２２１は、そのSDTTを、CPU２１１の告知情報取得部２９１に出力する。
【０１５９】
告知情報取得部２９１は、ステップＳ１１において、デマルチプレクサ２２１からのSDTTを取得し、取得したSDTTをRAM２１３に一旦展開する。
【０１６０】
告知情報取得部２９１は、ステップＳ１２において、フラッシュメモリ２１５に記憶されているダウンロードデータ１３（更新データ）のバージョンを参照して、SDTTに記述されているダウンロードデータのバージョンが、信号受信装置５にとって必要なバージョンであるか否かを判定する。
【０１６１】
SDTTに記述のバージョンが、記憶されているダウンロードデータ１３のバージョンよりも大きい（新しい）場合、ステップＳ１２において、SDTTに記述のバージョンが必要なバージョンであると判定されるので、ステップＳ１３において、告知情報取得部２９１は、RAM２１３に展開したSDTTを、フラッシュメモリ２１５に保持（記憶）させる。なお、フラッシュメモリ２１５にダウンロードデータ１３が保持されていない場合も、SDTTに記述のバージョンが必要なバージョンであると判定され、RAM２１３に展開したSDTTが、フラッシュメモリ２１５に保持される。
【０１６２】
ステップＳ１２において、SDTTに記述のバージョンが必要なバージョンではないと判定された場合、RAM２１３に展開したSDTTは、破棄され、処理は、ステップＳ１１に戻り、次に放送され、デマルチプレクサ２２１によりフィルタリングされて告知情報取得部２９１に入力されたSDTTに対して、それ以降の処理が繰り返される。
【０１６３】
ダウンロードデータ取得部２９２は、フラッシュメモリ２１５にSDTTが保持されると、SDTTに記述されている情報を解析し、ステップＳ１４において、SDTTに記述されている更新データのダウンロード開始時刻になるまで待機する。
【０１６４】
すなわち、ダウンロードデータ取得部２９２は、SDTTに記述の情報を解析することで、ダウンロードデータのダウンロード開始時刻やダウンロードを行うサービス（チャンネル）などのダウンロード情報を確認し、更新データのダウンロード開始時刻を決定し、内蔵するクロックで計時動作を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になるまで待機する。
【０１６５】
ダウンロードデータ取得部２９２は、ステップＳ１４において、ダウンロードデータのダウンロード開始時刻になったと判定した場合、ステップＳ１５において、選局部２９３を制御し、SDTTに記述されているダウンロードサービス（チャンネル）を選局させ、ステップＳ１６において、デマルチプレクサ２２１を制御し、選局部２９３により選局されたサービスの放送信号から、信号受信装置５に必要なバージョンの更新データであるダウンロードデータ１３を取得させる。
【０１６６】
すなわち、更新データの放送の日時（ダウンロード開始時刻）に、放送装置４から、ソフトウェアの更新データであるダウンロードデータ１３がデータカルーセルとして所定のサービスの放送信号に多重化されて送信されてくる。なお、このデータカルーセルは、暗号化されていてもよいし、伝送誤りを防ぐために、誤り検出、誤り訂正符号などが付加されているようにしてもよい。
【０１６７】
これに対応して、フロントエンド部２１９は、アンテナ２０１を介して放送装置４からの放送信号を受信するので、選局部２５４は、フロントエンド部２１９を制御し、受信された放送信号より、ダウンロード告知情報に記述されているサービス（チャンネル）を選局させる。フロントエンド部２１９は、アンテナ２０１を介して受信された放送信号から、選局部２５４の選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ２２０に出力する。デスクランブラ２２０は、フロントエンド部２１９から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ２２１に出力する。
【０１６８】
デマルチプレクサ２２１は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離し、ダウンロードデータ取得部２９２からの制御により、分離されたセクションデータから、必要なDSM-CCセクション（すなわち、ダウンロードデータ１３）を、ダウンロードデータ取得部２９２に供給する。
【０１６９】
ダウンロードデータ取得部２９２は、ステップＳ１７において、デマルチプレクサ２２１からのダウンロードデータ１３を取得し、フラッシュメモリ２１５に記憶する。すなわち、取得されたダウンロードデータ１３は、前回取得されて更新されていたダウンロードデータに上書きされる。
【０１７０】
以上のようにして、ソフトウェアの更新に必要なバージョンのダウンロードデータ１３がフラッシュメモリ２１５に記憶される。
【０１７１】
次に、図１３のフローチャートを参照して、信号受信装置５の差分データ確認処理を説明する。その際、必要に応じて、図１４も参照しながら説明する。
【０１７２】
なお、この差分データ確認処理は、信号受信装置５の起動時、すなわち、図６のファイルシステム２３１を含むＯＳの起動時、ファイルシステム２３１の差分データ確認処理部２５１により開始される。
【０１７３】
ステップＳ３１において、差分データ確認処理部２５１のデータ管理部２６１は、フラッシュメモリ２１５にダウンロードデータ１３があるか否かを判定し、フラッシュメモリ２１５にダウンロードデータ１３があると判定した場合、ステップＳ３２において、図１４に示されるように、ダウンロードデータ１３の差分データ１２と証明書３１２を分離し、分離した差分データ１２をハッシュ値算出部２６３に供給し、分離した証明書３１２を、データ復号部２６２に供給する。
【０１７４】
ステップＳ３３において、データ復号部２６２は、データ管理部２６１からの証明書３１２をデータ生成装置１が有する公開鍵暗号方式の秘密鍵に対応する公開鍵で復号し、復号した復号結果であるハッシュ値３１１Ａを、ハッシュ値比較部２６４に供給する。すなわち、復号結果が正しければ、ここでは、図１０のステップＳ３で算出されたハッシュ値３１１Ａが得られる。
【０１７５】
ステップＳ３４において、ハッシュ値算出部２６３は、データ生成装置１のハッシュ値算出部１５３と同じ方法で、ダウンロードデータ１３から得られる差分データ１２を用いて、ハッシュ値３１１Ｂを算出し、差分データ１２とともに、算出したハッシュ値３１１Ｂをハッシュ値比較部２６４に供給する。すなわち、差分データ１２が欠落していなければ（すなわち、差分データ１２が完全であれば）、ここで得られるハッシュ値３１１Ｂは、図１０のステップＳ３で算出されたハッシュ値３１１Ａと一致するはずである。
【０１７６】
ステップＳ３５において、ハッシュ値比較部２６４は、データ復号部２６２からの復号結果であるハッシュ値３１１Ａと、ハッシュ値算出部２６３により算出されたハッシュ値３１１Ｂとが一致するか否かを判定する。これにより、証明書の正当性の確認（すなわち、差分データ１２が不正なデータでないことの確認）と、差分データ１２が欠落していないことの確認が行える。
【０１７７】
ステップＳ３５において、ハッシュ値比較部２６４は、復号結果であるハッシュ値３１１Ａと、ハッシュ値算出部２６３により算出されたハッシュ値３１１Ｂとが一致しないと判定した場合、差分データ１２が不正なデータであるか、または、差分データ１２が不完全なデータであるとして、ハッシュ値算出部２６３からの差分データ１２を消去する。なお、このとき、フラッシュメモリ２１５のダウンロードデータごと消去するようにすることもできる。
【０１７８】
ステップＳ３５において、復号結果であるハッシュ値３１１Ａと、ハッシュ値算出部２６３により算出されたハッシュ値３１１Ｂとが一致すると判定された場合、ハッシュ値算出部２６３からの差分データ１２は不正なデータではなく、また、差分データ１２が完全なデータであるとして、差分データ１２を、差分データ読み込み部２６５に供給する。
【０１７９】
ステップＳ３６において、差分データ読み込み部２６５は、ハッシュ値比較部２６４からの差分データ１２を、RAM２１３に読み込む（展開する）。
【０１８０】
一方、ステップＳ３１において、フラッシュメモリ２１５にダウンロードデータ１３がないと判定された場合、そのまま、処理は終了される。
【０１８１】
以上のように、差分データ１２の全データのハッシュ値を用いた証明書の正当性が確認されてから、差分データ１２がRAM２１３に展開されるので、不正なデータ（ソフトウェア）の実行が抑制されるとともに、例えば、ダウンロード途中のデータを誤って利用してしまうことを抑制することができる。
【０１８２】
次に、図１５のフローチャートを参照して、信号受信装置５のソフトウェアの起動制御処理を説明する。この処理は、信号受信装置５の起動後、すなわち、図６のファイルシステム２３１を含むＯＳの起動後、信号受信装置５に記憶され、図６のファイルシステム２３１により管理されるソフトウェアの起動時に、ファイルシステム２３１のソフトウェア起動処理部２５２により開始される。すなわち、図１５の処理は、起動対象となるソフトウェア毎に実行される処理である。
【０１８３】
ステップＳ６１において、ソフトウェア起動処理部２５２のソフトウェア起動監視部２７１は、起動対象のソフトウェア１１に、対応する差分データ１２があるか否かを判定し、起動対象のソフトウェア１１に、対応する差分データ１２がないと判定した場合、ステップＳ６２に進み、ファイルデータ読み込み部２７２を制御し、基準バージョンソフトウェア１１ＡのファイルデータをRAM２１３に読み込ませる（展開させる）。
【０１８４】
これにより、信号受信装置５においては、基準バージョンソフトウェア１１Ａが起動される。
【０１８５】
一方、ステップＳ６１において、起動対象のソフトウェア１１に、対応する差分データ１２があると判定された場合、処理は、ステップＳ６３に進み、ファイルデータ読み込み部２７２および差分データ反映部２７３は、基準バージョンソフトウェア１１Ａのファイルデータと、差分データ１２を用いて、差分データの反映処理を実行する。この差分データの反映処理を、図１６のフローチャートを参照して説明する。
【０１８６】
なお、図１６の例においては、図１７に示される差分データ１２を用いて説明する。
【０１８７】
図１７は、図８の差分データ１２の他の構成例を示す図である。なお、実際には、差分データ１２は、バイナリデータとされるが、説明の便宜上、図１７の例のように示される。
【０１８８】
図１７の例において、差分データ１２は、右から順に、挿入か削除かの処理内容を示す「処理コマンド」、基準バージョンソフトウェア１１Ａのファイルデータ上のアドレスを示す「ターゲットアドレス」、処理のレングス長（バイト長）を示す「レングス長」、挿入処理の場合、挿入するデータを示す「挿入データ」により構成される。
【０１８９】
なお、差分データ１２内のデータは、ターゲットアドレスで昇順にソートされている。
【０１９０】
差分データ１２の１段目には、処理コマンドが「INS」（INSERT:挿入）処理であり、ターゲットアドレスが「0x0004」であり、レングス長が「0x02」であり、挿入データが「0xFF,0xFF」であることが示されている。すなわち、差分データ１２の１段目には、基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0004」から「0x02」までのアドレスに、「0xFF,0xFF」を挿入することが示されている。
【０１９１】
差分データ１２の２段目には、処理コマンドが「DEL」（DELERT:挿入）処理であり、ターゲットアドレスが「0x0008」であり、レングス長が「0x01」であることが示されている。すなわち、差分データ１２の２段目には、基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0008」から「0x01」までのアドレスのデータを削除することが示されている。
【０１９２】
図１６のステップＳ８１において、差分データ反映部２７３は、基準バージョンソフトウェア１１Ａのファイルデータ（以下、基準バージョンファイルデータとも称する）へアクセスするアドレス（以下、アクセスアドレスと称する）を、その基準バージョンファイルデータの先頭にセットする。例えば、ファイルの先頭を示す値「０」がセットされる。
【０１９３】
ステップＳ８２において、差分データ反映部２７３は、アクセスアドレスと、差分データ１２内の対象行（例えば、１行目）のターゲットアドレスが一致するか否かを判定する。すなわち、ステップＳ８１においてセットされたアクセスアドレス、または、後述するステップＳ９０において変更されたアクセスアドレスと、差分データ１２内の対象行のターゲットアドレスが比較される。
【０１９４】
なお、上述したように、差分データ１２内のデータは、ターゲットアドレスで昇順にソートされており、差分データ反映部２７３は、差分データ１２の対象行を示すポインタを保持している。
【０１９５】
ステップＳ８２において、アクセスアドレスと、差分データ１２内の対象行のターゲットアドレスが一致すると判定された場合、処理は、ステップＳ８３に進み、差分データ反映部２７３は、差分データ１２内の対象行の処理コマンドが挿入を示すコマンド（INS）であるか否かを判定する。
【０１９６】
ステップＳ８３において、差分データ１２内の対象行の処理コマンドが挿入を示すコマンド（INS）であると判定された場合、差分データ反映部２７３は、ステップＳ８４において、アクセスアドレスが示す基準バージョンファイルデータのアドレスに、挿入データを挿入する。
【０１９７】
図１７の例の差分データ１２内の対象行が１行目であり、アクセスアドレスがファイルデータの「0x0004」であった場合には、基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0004」から、レングス長「0x02」まで、挿入データ「0xFF,0xFF」が挿入される。
【０１９８】
ステップＳ８５において、差分データ反映部２７３は、差分データ１２の対象行を示すポインタを、差分データ１２の次の行に移動させる。その後、処理は、ステップＳ８６に進む。
【０１９９】
ステップＳ８２において、アクセスアドレスと、差分データ１２内の対象行のターゲットアドレスが一致しないと判定された場合、処理は、ステップＳ８６に進む。
【０２００】
ステップＳ８６において、差分データ反映部２７３は、ファイルデータ読み込み部２７２を制御し、アクセスアドレスが示す基準バージョンファイルデータを１バイト、RAM２１３に読み込ませる（展開させる）。
【０２０１】
ステップＳ８７において、ファイルデータ読み込み部２７２は、基準バージョンソフトウェア１１Ａのファイルデータの読み出しが終了したか否かを判定し、基準バージョンソフトウェア１１Ａのファイルデータの読み出しが終了したと判定した場合、差分データ反映処理は終了される。ステップＳ８７において、基準バージョンソフトウェア１１Ａのファイルデータの読み出しがまだ終了していないと判定された場合、処理は、ステップＳ９０に進む。
【０２０２】
一方、ステップＳ８３において、差分データ１２内の対象行の処理コマンドが挿入を示すコマンド（INS）でない、すなわち、削除を示すコマンド（DEL）であると判定された場合、差分データ反映部２７３は、ステップＳ８８において、アクセスアドレスが示す基準バージョンファイルデータのアドレスのデータを削除する。
【０２０３】
図１７の例の差分データ１２内の対象行が２行目であり、アクセスアドレスがファイルデータの「0x0008」であった場合には、基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0008」から、レングス長「0x01」までのデータ「0x00」（図８）が削除される。
【０２０４】
ステップＳ８９において、差分データ反映部２７３は、差分データ１２の対象行を示すポインタを、差分データ１２の次の行に移動させる。その後、処理は、ステップＳ９０に進む。
【０２０５】
ステップＳ９０において、差分データ反映部２７３は、アクセスアドレスを変更する。具体的には、ステップＳ８２において、アクセスアドレスと、差分データ１２内の対象行のターゲットアドレスが一致しないと判定された場合、ステップＳ９０において、差分データ反映部２７３は、アクセスアドレスの値に１プラスする。また、ステップＳ８３において、差分データ１２内の対象行の処理コマンドが挿入を示すコマンド（INS）であると判定された場合、ステップＳ９０において、差分データ反映部２７３は、アクセスアドレスの値に１プラスする。
【０２０６】
さらに、ステップＳ８３において、差分データ１２内の対象行の処理コマンドが削除を示すコマンド（DEL）であると判定された場合、ステップＳ９０において、差分データ反映部２７３は、差分データの処理のレングス長の値を、アクセスアドレスの値にプラスする。
【０２０７】
ステップＳ９０の処理によりアクセスアドレスが変更されると、ステップＳ８２に戻り、変更されたアクセスアドレスに対して、それ以降の処理が実行される。
【０２０８】
以上により、RAM２１３には、新バージョンソフトウェア１１Ｂのファイルデータが展開される。すなわち、図８の基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0004」から、レングス長「0x02」まで、挿入データ「0xFF,0xFF」が挿入され、基準バージョンソフトウェア１１Ａのファイルデータのアドレス「0x0008」から、レングス長「0x01」までのデータ「0x00」（図８）が削除されたものである、図８の新バージョンソフトウェア１１Ｂのファイルデータが、RAM２１３に展開され、これにより、信号受信装置５においては、新バージョンソフトウェア１１Ｂが起動される。
【０２０９】
以上のように、ソフトウェア１１の基準バージョンソフトウェア１１Ａのファイルデータと、ソフトウェア１１の差分データ１２を別々に保存しておき、ソフトウェア１１が起動されるたびに、基準バージョンソフトウェア１１Ａのファイルデータに、差分データ１２を反映させてRAM２１３に読み込むことにより、新バージョンソフトウェア１１Ｂのファイルデータが、RAM２１３に展開され、新バージョンソフトウェア１１Ｂが起動される。
【０２１０】
すなわち、ソフトウェアのバージョンアップにおいて、ソフトウェアを直接書き換えることがないので、バージョンアップ時の不意な電源切断によりソフトウェアが不完全な状態になってしまい、ソフトウェアが起動しなくなってしまうことが抑制される。
【０２１１】
また、基準バージョンソフトウェア１１Ａのファイルデータを、書き換え不可能なROM２１２に格納することが可能になる。これにより、アクセス速度の高速化と、コストの削減が期待される。
【０２１２】
さらに、ソフトウェアを更新するための更新データとして、基準バージョンソフトウェア１１Ａと、新バージョンソフトウェア１１Ｂの差分のバイナリ差分データを用いるようにしたので、バージョンアップ（更新）時に、信号受信装置５に転送するデータ量を削減することができる。これにより、データ転送にかかるコストを削減することができる。
【０２１３】
これは、特に、図１のデジタル放送システムにおける更新データのダウンロードの際に、効果的である。すなわち、図１のデジタル放送システムにおいて更新データを放送信号に多重化して送信するためには、メーカ側に費用がかかってしまう。したがって、バイナリ差分データを用いることで、メーカ側にかかる伝送費用を削減することができる。
【０２１４】
また、信号受信装置５においても、バイナリ差分データを用いることで、バイナリ差分データを格納しておくデータ領域を小さくすることができる。すなわち、本発明は、特に、差分データの容量が少なめである、ソフトウェアのバグフィックスなどのバージョンアップに効果的である。
【０２１５】
さらに、複数回バージョンアップされようとも、バイナリ差分データは、基準バージョンソフトウェアを基に生成される。したがって、バージョン管理が簡単になる。
【０２１６】
なお、上記説明においては、更新データを放送信号に多重して、放送信号から取得するようにしたが、図示せぬネットワークなどを介してサーバから取得するようにしてもよい。
【０２１７】
また、上記説明においては、ディスプレイ２０２を内蔵した信号受信装置５を用いて説明したが、外部のテレビジョン装置と接続される信号受信装置であってもよいし、セットトップボックスなどにより構成されるようにしてもよい。また、上記説明においては、固定受信機の信号受信装置５を用いて説明したが、PDA(Personal Digital assistant)や携帯電話機などの移動受信機や携帯受信機にも本発明を適用することができる。
【０２１８】
さらに、本発明は、放送信号を受信する信号受信装置だけに限らず、木構造のファイルシステムを有する装置であれば、例えば、ＣＥ機器や、図２で示されるデータ生成装置１と同様な構成のパーソナルコンピュータなどの情報処理装置などにも適用される。なお、その際には、更新データとしての差分データは、例えば、ネットワークなどを介してサーバから取得することができる。
【０２１９】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０２２０】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図２および図４に示されるように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（MD(Mini-Disc)（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア（パッケージメディア）１２１および２２５、または、プログラムが一時的もしくは永続的に格納されるROM１１２およびROM２１２などにより構成される。
【０２２１】
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２２】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２２３】
【図１】本発明のデジタルテレビジョン放送システムの構成例を示す図である。
【図２】図１のデータ生成装置の構成例を示すブロック図である。
【図３】図２のデータ生成装置の機能構成例を示すブロック図である。
【図４】図１の信号受信装置の構成例を示すブロック図である。
【図５】図４の信号受信装置の機能構成例を示すブロック図である。
【図６】図５のファイルシステムの機能構成例を示すブロック図である。
【図７】図４の信号受信装置の他の機能構成例を示すブロック図である。
【図８】差分データの構成例を示す図である。
【図９】ソフトウェアのバージョン管理方法を説明する図である。
【図１０】図１のデータ生成装置のダウンロードデータ生成処理を説明するフローチャートである。
【図１１】図１のデータ生成装置のダウンロードデータ生成処理を説明する図である。
【図１２】図１の信号受信装置のダウンロードデータ取得処理を説明するフローチャートである。
【図１３】図１のデータ生成装置の差分データ確認処理を説明するフローチャートである。
【図１４】図１のデータ生成装置の差分データ確認処理を説明する図である。
【図１５】図１のデータ生成装置のソフトウェアの起動制御処理を説明するフローチャートである。
【図１６】図１５のステップＳ６３の差分データの反映処理を説明するフローチャートである。
【図１７】図８の差分データの他の構成例を示す図である。
【符号の説明】
【０２２４】
１  データ生成装置，  ５−１および５−２  信号受信装置，  １１  ソフトウェア，１１Ａ  基準バージョンソフトウェア，  １１Ｂ  新バージョンソフトウェア，１２  差分データ，  １３  ダウンロードデータ，  １５１  差分データ生成部，  １５２  データ結合部，  １５３  ハッシュ値算出部，  １５４  証明書生成部，  ２１１  CPU，  ２１２  ROM，  ２１３  RAM，  ２１５  フラッシュメモリ，  ２２１  デマルチプレクサ，２３１  ファイルシステム，  ２５１  差分データ確認処理部，  ２５２  ソフトウェア起動処理部，  ２６１  データ管理部，  ２６２  データ復号部，  ２６３  ハッシュ値算出部，  ２６４  ハッシュ値比較部，  ２６５  差分データ読み込み部，  ２７１  ソフトウェア起動監視部，  ２７２  ファイルデータ読み込み部，  ２７３  差分データ反映部
【図１】
2007080034.tif 000003
【図２】
2007080034.tif 000004
【図３】
2007080034.tif 000005
【図４】
2007080034.tif 000006
【図５】
2007080034.tif 000007
【図６】
2007080034.tif 000008
【図７】
2007080034.tif 000009
【図８】
2007080034.tif 000010
【図９】
2007080034.tif 000011
【図１０】
2007080034.tif 000012
【図１１】
2007080034.tif 000013
【図１２】
2007080034.tif 000014
【図１３】
2007080034.tif 000015
【図１４】
2007080034.tif 000016
【図１５】
2007080034.tif 000017
【図１６】
2007080034.tif 000018
【図１７】
2007080034.tif 000019