JP2007080034A - 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 - Google Patents
情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 Download PDFInfo
- Publication number
- JP2007080034A JP2007080034A JP2005268185A JP2005268185A JP2007080034A JP 2007080034 A JP2007080034 A JP 2007080034A JP 2005268185 A JP2005268185 A JP 2005268185A JP 2005268185 A JP2005268185 A JP 2005268185A JP 2007080034 A JP2007080034 A JP 2007080034A
- Authority
- JP
- Japan
- Prior art keywords
- data
- software
- receiving device
- download
- difference data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
【課題】受信装置のソフトウェアの格納および更新にかかるコストを削減することができるようにする。
【解決手段】 ファイルシステム231は、起動時に、フラッシュメモリ215に記憶されているダウンロードデータ13から、データ生成装置により基準バージョンソフトウェア11Aと更新する対象となる新バージョンソフトウェア11Bに基づいて生成された差分データ12をRAM213に読み込む。ファイルシステム231は、ソフトウェアの起動時に、ROM212に記憶されている基準バージョンソフトウェア11Aのファイルデータに、差分データ12を反映させて、ファイルデータを読み込む。これにより、新バージョンソフトウェア11Bのファイルデータが、RAM213に展開される。本発明は、放送信号を受信する信号受信装置の更新ソフトウェアデータを伝送するデジタルテレビジョン放送システムに適用できる。
【選択図】図5
【解決手段】 ファイルシステム231は、起動時に、フラッシュメモリ215に記憶されているダウンロードデータ13から、データ生成装置により基準バージョンソフトウェア11Aと更新する対象となる新バージョンソフトウェア11Bに基づいて生成された差分データ12をRAM213に読み込む。ファイルシステム231は、ソフトウェアの起動時に、ROM212に記憶されている基準バージョンソフトウェア11Aのファイルデータに、差分データ12を反映させて、ファイルデータを読み込む。これにより、新バージョンソフトウェア11Bのファイルデータが、RAM213に展開される。本発明は、放送信号を受信する信号受信装置の更新ソフトウェアデータを伝送するデジタルテレビジョン放送システムに適用できる。
【選択図】図5
Description
本発明は、情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置に関し、特に、受信装置のソフトウェアの格納および更新にかかるコストを削減するとともに、確実にソフトウェアを起動させることができるようにした情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置に関する。
木構造のファイルシステムを有するコンピュータシステムでは、ファイルシステム上で起動するソフトウェアもファイルシステム上のファイルとして管理される。
このようなコンピュータシステムにおいて、ソフトウェアのバージョンアップ(更新)を実現する場合、一般的に、ソフトウェアを書き換え可能な領域に記憶しておき、ファイルシステムのイメージ全体を、新しいバージョンのものに差し替える方法や、ファイル単位で新しいバージョンのファイルに差し替える方法などがある。
前者の場合、ソフトウェアのバージョン管理が簡便になる一方で、ソフトウェアを更新するために機器に転送するデータ量が大きくなってしまう。後者の場合、ソフトウェアを更新するために機器に転送するデータ量は、更新されたファイルの分だけであり、前者に較べて少なくなるが、バージョン管理が煩雑になってしまう。
また、特許文献1には、ソフトウェアを書き換え可能な領域に記憶しておき、前のバージョンと新しいバージョンの差分データのみで、そのソフトウェアを差し替えて更新する方法も提案されている。この場合にも、上述したファイル単位でのソフトウェアの更新と同様に、バージョン管理が煩雑になってしまう。
以上のように、木構造のファイルシステムを有するコンピュータシステムでは、一般的には、ソフトウェアを書き換え可能な領域に記憶しておき、バージョンアップの際には、書き換え可能な領域のソフトウェアの全部、あるいはその一部を差し替える(書き換える)ことにより、ソフトウェアがバージョンアップされていた。
しがたって、ソフトウェアの更新処理中に不意な電源切断などが発生した場合、ソフトウェアが不完全な状態となってしまうことがあった。
また、このようなコンピュータシステムでは、ソフトウェアを更新が行えるだけの書き換え可能な領域が必要であり、例えば、放送信号を受信する受信機や、その他の家電機器のように、潤沢なハードウェアリソースを持たない機器では、ソフトウェアを格納する書き換え可能な領域を確保する分のコストがかかってしまっていた。
本発明は、このような状況に鑑みてなされたものであり、受信装置のソフトウェアの格納および更新にかかるコストを削減するとともに、確実にソフトウェアを起動させることができるようにするものである。
本発明の第1の側面の情報処理システムは、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムにおいて、前記データ生成装置は、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段を備え、前記受信装置は、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
前記受信装置の前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備えることができる。
前記データ生成装置は、前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第1のハッシュ値算出手段と、前記第1のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、前記受信装置の前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第2のハッシュ値算出手段と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
本発明の第1の側面の情報処理方法は、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、前記データ生成装置における、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを含み、前記受信装置における、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
本発明の第2の側面の受信装置は、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データ反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備えることができる。
前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
本発明の第2の側面の受信方法は、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
本発明の第2の側面のプログラムは、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置用のプログラムであって、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む。
本発明の第3の側面のデータ生成装置は、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段とを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成されることができる。
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段と、前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成することができる。
本発明の第3の側面のデータ生成方法は、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法において、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップとを含む。
本発明の第3の側面のプログラムは、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成する処理をコンピュータに行わせるプログラムであって、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップとを含む。
本発明の第4の側面の情報処理装置は、ファイルシステムを有する情報処理装置において、前記情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータを取得する取得手段と、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える。
第1の側面の本発明においては、データ生成装置により、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データが算出され、算出された前記差分データを基に、前記ダウンロードデータが生成される。また、前記受信装置により、前記放送信号に多重化された前記ダウンロードデータが取得され、前記受信装置のファイルシステムにより、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
第2の側面の本発明においては、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータが取得される。そして、ファイルシステムにより、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
第3の側面の本発明においては、受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データが算出され、算出された前記差分データを基に、前記ダウンロードデータが生成される。
第4の側面の本発明においては、情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータが取得される。そして、ファイルシステムにより、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータがメモリに展開される。
第1の側面の本発明によれば、ソフトウェアの格納および更新にかかるコストを削減することができ、ソフトウェアが不安定な状態になるのを抑制することができる。
第2の側面の本発明によれば、ソフトウェアの格納にかかるコストを削減することができ、また、ソフトウェアが不安定な状態になるのを抑制することができる。
第3の側面の本発明によれば、ソフトウェアの更新にかかるコストを削減することができる。
第4の側面の本発明によれば、ソフトウェアが不安定な状態になるのを抑制することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の情報処理システム(例えば、図1のデジタル放送システム)は、ファイルシステムを有し、放送信号を受信する受信装置(例えば、図1の信号受信装置5−1)と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置(例えば、図1のデータ生成装置1)からなる情報処理システムにおいて、前記データ生成装置は、前記受信装置のソフトウェア(例えば、図1のソフトウェア11)の基準となる基準バージョンのデータ(例えば、図1の基準バージョンソフトウェア11A)と、更新対象となる更新バージョンのデータ(例えば、図1の新バージョンソフトウェア11B)の差分データ(図1の差分データ12)を算出する差分データ算出手段(例えば、図3の差分データ生成部151)と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータ(例えば、図1のダウンロードデータ13)を生成するデータ生成手段(例えば、図3のデータ結合部152)を備え、前記受信装置は、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段(例えば、図7のダウンロードデータ取得部292)と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ(例えば、図5のRAM213)に展開させるファイルシステム(例えば、図5のファイルシステム231)とを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ(例えば、図11の差分データ12−1乃至12−3)が結合されて構成されることができる。
前記受信装置の前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段(例えば、図6の差分データ確認処理部251)と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段(例えば、図6のソフトウェア起動処理部252)とを備えることができる。
前記データ生成装置は、前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第1のハッシュ値算出手段(例えば、図3のハッシュ値算出部153)と、前記第1のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段と(例えば、図3の証明書生成部154)をさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、前記受信装置の前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第2のハッシュ値算出手段(例えば、図6のハッシュ値算出部263)と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段(例えば、図6のデータ復号部262)と、前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段(例えば、図6のハッシュ値比較部264)とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
本発明の第1の側面の情報処理方法は、ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、前記データ生成装置における、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップ(例えば、図10のステップS1)と、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップ(例えば、図10のステップS5)を含み、前記受信装置における、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップ(例えば、図12のステップS16)と、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップ(例えば、図15のステップS63)とを含む。
本発明の第2の側面の受信装置は、ファイルシステムを有し、データ生成装置(例えば、図1のデータ生成装置1)によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置(例えば、図1の信号受信装置5−1)において、前記受信装置のソフトウェアの基準となる基準バージョンのデータ(例えば、図1の基準バージョンソフトウェア11A)と、更新対象となる更新バージョンのデータ(例えば、図1の新バージョンソフトウェア11B)の差分データ(図1の差分データ12)を算出して生成され、前記放送信号に多重化された前記ダウンロードデータ(例えば、図1のダウンロードデータ13)を取得する取得手段(例えば、図7のダウンロードデータ取得部292)と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ(例えば、図5のRAM213)に展開させるファイルシステム(例えば、図5のファイルシステム231)とを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ(例えば、図11の差分データ12−1乃至12−3)が結合されて構成されることができる。
前記ファイルシステムは、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段(例えば、図6の差分データ確認処理部251)と、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段(例えば、図6のソフトウェア起動処理部252)とを備えることができる。
前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、前記差分データ展開手段は、前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段(例えば、図6のハッシュ値算出部263)と、前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段(例えば、図6のデータ復号部262)と、前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段(例えば、図6のハッシュ値比較部264)とを備え、前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開することができる。
本発明の第2の側面の受信方法またはプログラムは、ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法またはプログラムにおいて、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップ(例えば、図12のステップS16)と、前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップ(例えば、図15のステップS63)とを含む。
本発明の第3の側面のデータ生成装置は、放送信号に多重化されて送信される、ファイルシステム(例えば、図5のファイルシステム231)を有し、放送信号を受信する受信装置(例えば、図1の信号受信装置5−1)のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置(例えば、図1のデータ生成装置1)において、前記受信装置のソフトウェアの基準となる基準バージョンのデータ(例えば、図1の基準バージョンソフトウェア11A)と、更新対象となる更新バージョンのデータ(例えば、図1の新バージョンソフトウェア11B)の差分データ(図1の差分データ12)を算出する差分データ算出手段(例えば、図3の差分データ生成部151)と、前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段(例えば、図3のデータ結合部152)とを備える。
前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データ(例えば、図11の差分データ12−1乃至12−3)が結合されて構成されることができる。
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段(例えば、図3のハッシュ値算出部153)と、前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段(例えば、図3の証明書生成部154)とをさらに備え、前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成することができる。
本発明の第3の側面のデータ生成方法またはプログラムは、放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法またはプログラムにおいて、前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップ(例えば、図10のステップS1)と、前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップ(例えば、図10のステップS5)とを含む。
本発明の第4の側面の情報処理装置は、ファイルシステムを有する情報処理装置(例えば、図1の信号受信装置5−1)において、前記情報処理装置のソフトウェアの基準となる基準バージョンのデータ(例えば、図1の基準バージョンソフトウェア11A)と、更新対象となる更新バージョンのデータ(例えば、図1の新バージョンソフトウェア11B)の差分データ(図1の差分データ12)を算出して生成されるデータ(例えば、図1のダウンロードデータ13)を取得する取得手段(例えば、図7のダウンロードデータ取得部292)と、前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリ(例えば、図5のRAM213)に展開させるファイルシステム(例えば、図5のファイルシステム231)とを備える。
以下、図を参照して本発明の実施の形態について説明する。
図1は、本発明を適用したデジタルテレビジョン放送(以下、デジタル放送とも称する)システムの構成例を表している。なお、図1の例においては、地上波デジタル放送を用いて説明する。
このデジタル放送システムにおいては、放送装置4から、放送事業者のロゴやジャンルコードを含む共通データや、ユーザが有する信号受信装置5−1および5−2の機種毎のソフトウェアを更新するための更新データなどがダウンロードデータとして放送信号に多重化されて放送されており、信号受信装置5−1および5−2は、それぞれ、放送信号に多重化されたダウンロードデータを取得することで、新しいバージョンのソフトウェアでの起動が可能になる。
図1の例においては、信号受信装置5−1および5−2(以下、個々に区別する必要のない場合、単に、信号受信装置5と称する)が2台しか記載されていないが、実際には、任意の台数の信号受信装置5が存在し、その機種も1種類ではなく、複数の機種の信号受信装置5が存在する。
信号受信装置5などを製作する受信装置製作者(メーカ)は、データ生成装置1を有している。データ生成装置1は、更新する機種(例えば、信号受信装置5)の地上波デジタル放送用のソフトウェア11の更新するための更新データとしてのダウンロードデータや、そのダウンロードデータのダウンロードが行われることを市場の信号受信装置に対して通知するためのダウンロード告知情報テーブル(SDTT:Software Download Trigger Table)を、機種毎に生成し、ダウンロード事業者の有するダウンロード装置3に提出(送信)する。
このとき、データ生成装置1は、ソフトウェア11として、出荷前に信号受信装置5に予め記憶されて出荷されるバージョンである基準バージョンのソフトウェア(基準バージョンソフトウェア11A)と、更新する対象となる新バージョンのソフトウェア(新バージョンソフトウェア11B)を有している。以下、ソフトウェア11を用いて説明するが、実際には、信号受信装置5には、多数のソフトウェアが存在し、他のソフトウェアも、ソフトウェア11と同様に構成され、他のソフトウェアにも、ソフトウェア11と同様の処理が行われる。
データ生成装置1は、これらの基準バージョンソフトウェア11Aと新バージョンソフトウェア11Bに基づいて、ソフトウェア11を更新するための更新データであるバイナリの差分データ12を生成して、それをダウンロードデータとして、ダウンロード装置3に提出(送信)する。
ダウンロード装置3は、メーカ(データ生成装置1)の提出するダウンロードデータを集めて、スケジューリングし、放送装置4を介して、放送信号に多重化して放送する。なお、このとき、ダウンロードデータは、DSM-CCデータカルーセル方式で、データカルーセルとして放送信号に多重して放送される。
また、ダウンロード装置3は、ダウンロードデータを送信する前に、メーカ(データ生成装置1)の提出するSDTTに、ダウンロードデータ(更新データ)に基づく必要な情報(例えば、ダウンロードデータのダウンロードのスケジュールに基づく、ダウンロードデータのダウンロード時刻やダウンロードを行うサービス(チャンネル)などのダウンロード情報)を記述して完成させ、完成したSDTTを、放送装置4を介して、放送信号に多重して放送する。
信号受信装置5には、ソフトウェア11の基準バージョンソフトウェア11Aが予め記憶されている。また、信号受信装置5には、対応するメーカにおいてメーカを識別するためのメーカ識別子とともに、信号受信装置5の機種を識別するためのモデル識別子が予め記憶されている。
信号受信装置5は、放送装置4からの放送信号を受信し、SDTTを取得すると、SDTTに記述(記載)されているメーカ識別子とモデル識別子を参照し、自己の(すなわち、信号受信装置5に記憶されている)メーカ識別子とモデル識別子と一致するか否かを判定し、SDTTのメーカ識別子とモデル識別子が自己のメーカ識別子とモデル識別子と一致した場合、SDTTに記述されているダウンロードデータのバージョンが、自己に記憶されているダウンロードデータ(更新データ)のバージョンよりも新しいか否かを判定する。
信号受信装置5は、SDTTに記述されているダウンロードデータのバージョンが、自己に記憶されているダウンロードデータよりも新しいならば、SDTTに基づいて、ダウンロードデータのダウンロードの準備を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になったときに、ダウンロードデータが多重化された放送信号を受信し、受信したダウンロードデータを取得し、フラッシュメモリなどの不揮発性メモリに格納する。
そして、信号受信装置5は、ユーザの操作に応じて起動する毎に、フラッシュメモリに格納されるダウンロードデータからソフトウェア11の更新データである差分データ12を読み出す。そして、信号受信装置5は、ソフトウェア11の起動時に、基準バージョンソフトウェア11Aと差分データ12を用いて、新バージョンソフトウェア11Bを起動させる。これにより、信号受信装置5においては、以前のバージョンよりも更新されたソフトウェアが起動される。
すなわち、信号受信装置5においては、実際には、基準バージョンソフトウェア11Aは、新バージョンソフトウェア11Bで書き換えられず、新バージョンソフトウェア11Bの実体は保持されることはない。
以上のように、図1のデジタル放送システムの信号受信装置5においては、ソフトウェア11の基準バージョンソフトウェア11Aが予め記憶されるとともに、ソフトウェア11を更新するための更新データである、基準バージョンソフトウェア11Aと新バージョンソフトウェア11Bとの差分データ12が取得されて記憶されており、信号受信装置5の起動後、かつ、ソフトウェア11の起動時に、基準バージョンソフトウェア11Aと差分データ12を用いて、新バージョンソフトウェア11Bが起動される。
これにより、従来のように、更新するソフトウェアすべてや、ソフトウェアのうち更新するモジュールのみを送信するよりも、更新データを送信するための通信費用が削減されるとともに、ソフトウェアの更新中に不慮の電源切断などにより、ソフトウェアが不完全な状態になってしまい、起動しなくなってしまうことが抑制される。
なお、図1の例においては、メーカおよびそのデータ生成装置1、ダウンロード装置3、および放送装置4が1台しか示されていないが、実際には、任意の複数台のデータ生成装置1、ダウンロード装置3、および放送装置4が存在する。
図2は、データ生成装置1の構成例を表している。図2の例において、CPU(Central Processing Unit)111は、ROM(Read Only Memory)112に記憶されているプログラム、または記憶部118からRAM(Random Access Memory)113にロードされたプログラムに従って各種の処理を実行する。RAM113にはまた、CPU111が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU111、ROM112、およびRAM113は、バス114を介して相互に接続されている。このバス114にはまた、入出力インタフェース115も接続されている。
入出力インタフェース115には、キーボード、マウス、マイクロホンなどよりなる入力部116、ディスプレイ、スピーカなどよりなる出力部117が接続されている。CPU111は、入力部116から入力される指令に対応して各種の処理を実行する。そして、CPU111は、処理の結果を出力部117に出力する。
入出力インタフェース115に接続されている記憶部118は、例えばハードディスクからなり、CPU111が実行するプログラムや各種のデータを記憶する。通信部119は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部119を介してプログラムを取得し、記憶部118に記憶してもよい。
入出力インタフェース115に接続されているドライブ120は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア121が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部118に転送され、記憶される。
なお、図示は省略するが、ダウンロード装置3および放送装置4も、図2に示したデータ生成装置1と基本的に同様の構成とされる。従って、以下の説明においては、図2のデータ生成装置1の構成は、必要に応じて、ダウンロード装置3または放送装置4の構成としても引用される。
図3は、ダウンロードデータの生成処理を行うデータ生成装置1の機能構成例を示している。図3に示される機能ブロックは、図2のCPU111により所定の制御プログラムが実行されることで実現される。なお、図3の例においては、図2の記憶部118には、信号受信装置5の機種毎、更新するソフトウェア11毎の、基準バージョンソフトウェア11Aおよび更新対象となる新バージョンソフトウェア11Bが記憶されている。
図3に示される機能ブロックは、差分データ生成部151、データ結合部152、ハッシュ値算出部153、および証明書生成部154により構成される。
差分データ生成部151は、記憶部118に記憶されている信号受信装置5の更新対象となる機種で、更新対象となるソフトウェア11の基準バージョンソフトウェア11Aおよび新バージョンソフトウェア11Bの変化情報をそれぞれ抽出し、差分データ12を生成し、データ結合部152に供給する。なお、更新対象となるソフトウェアが複数ある場合には、複数のソフトウェアの差分データが生成される。
差分データ12は、更新対象のソフトウェア11のファイル名とその変化情報で構成されている。
データ結合部152は、差分データ生成部151により生成された各ソフトウェア11の各差分データ12を結合し、結合した差分データ12を、ハッシュ値算出部153に供給する。また、データ結合部152は、結合した差分データ12と、証明書生成部154により生成された証明書を結合し、ダウンロードデータ13を生成する。
ハッシュ値算出部153は、データ結合部152からの結合された差分データ12を用いて、ハッシュ値を算出し、算出したハッシュ値を、証明書生成部154に供給する。証明書生成部154は、公開鍵暗号方式の秘密鍵を有しており、ハッシュ値算出部153により算出されたハッシュ値を、秘密鍵で暗号化することで、証明書を生成し、生成した証明書を、データ結合部152に供給する。
図4は、信号受信装置5の構成例を示している。信号受信装置5は、アンテナ201を介して、放送装置4からの放送信号を受信、選局し、その映像をディスプレイ202より出力するとともに、その音声をスピーカ203より出力する。
CPU(Central Processing Unit)211には、ROM(Read Only Memory) 212、RAM(Random Access Memory)213、操作入力部214、およびフラッシュメモリ215が接続されている。CPU211は、ROM212に記憶されているプログラム、または、RAM213にロードされたプログラム、もしくは操作入力部214を介して得られるユーザの指示信号に従って、信号受信装置5の各部を制御し、各種の処理を実行する。
図4の例の場合、ROM212には、ソフトウェア11の基準バージョンソフトウェア11Aがファイルデータとして記憶されている。なお、内部構造的には、この基準バージョンソフトウェア11Aは、RAM213に展開される、信号受信装置5のOS(オペレーションシステム)が有するファイルシステム231(図5)上に、ファイル化して配置されている。なお、いまの場合、1種類のソフトウェアしか示されていないが、複数のソフトウェアの基準バージョンソフトウェアのファイルデータが記憶されている。
RAM213にはまた、CPU211が各種の処理を実行する上において必要なデータなどが適宜記憶される。操作入力部214は、入力ボタンやダイヤルなどからなり、ユーザの指示信号を、CPU211に出力する。フラッシュメモリ215には、信号受信装置5が受信したSDTTやソフトウェア11の更新データであるダウンロードデータ13などが記憶されている。なお、フラッシュメモリ215は、不揮発性メモリであれば、フラッシュメモリに限定されない。
CPU211には、バス216を介して、ネットワークインタフェース(I/F)217、ドライブ218、フロントエンド部219、デスクランブラ220、デマルチプレクサ221、MPEG(Moving Picture Experts Group)デコーダ222、映像信号処理部223、および音声信号処理部224が接続されており、CPU211の制御に応じて、所定の処理を実行する。
ネットワークインタフェース217は、モデムやIEEE802.3インタフェースなどにより構成され、図示せぬネットワークに接続されるサーバなどとデータリンク確立を行い、必要に応じて、FTP(File Transfer Protocol)やHTTP(Hyper Text Transport Protocol)などのデータ転送プロトコルにより、所定のデータを通信する。
ドライブ218には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどからなるリムーバブルメディア225が適宜装着される。ドライブ218は、リムーバブルメディア225よりデータを読み出したり、データを書き込んだりする際に用いられる。リムーバブルメディア225から読み出されたコンピュータプログラムは、必要に応じてROM212やフラッシュメモリ215に記憶され、インストールされる。
フロントエンド部219は、アンテナ201を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリーム(TS : transport Stream)を生成し、デスクランブラ220に出力する。デスクランブラ220は、フロントエンド部219から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ221に出力する。
デマルチプレクサ221は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。デマルチプレクサ221は、映像データおよび音声データをMPEGデコーダ222に出力し、必要なセクションデータのみをCPU211に出力する。すなわち、デマルチプレクサ221においては、ソフトウェアあるいはハードウェアのフィルタをかけることが可能であり、そのフィルタに対して、パラメータを指定することで必要なセクションデータのみがCPU211に出力される。
セクションデータには、データ放送やデータのダウンロードで利用されるDSM-CCセクション(例えば、データカルーセル)、SDTT(ダウンロード告知情報)、およびEPG(Electronic Program Guide)情報などが含まれている。
例えば、SDTTであることを特定するテーブル識別子、メーカ識別子、およびモデル識別子などは、SDTTの先頭付近に配置されているので、テーブル識別子と、信号受信装置5が対応するメーカ識別子およびモデル識別子とをパラメータとして指定することで、デマルチプレクサ221は、SDTTのうち、信号受信装置5が対応するメーカ識別子およびモデル識別子のSDTTのみを選別して、CPU211に出力することができる。
CPU211は、デマルチプレクサ221からのセクションデータのそれぞれの情報をRAM213に展開する。RAM213に展開されたセクションデータのうち、保持すべきものは、CPU211により形式を変換されて、RAM213やフラッシュメモリ215に保持される。すなわち、信号受信装置5に必要なSDTTや、信号受信装置5の基準バージョンソフトウェア11Aをバージョンアップ(更新)するのに必要なダウンロードデータ13は、フラッシュメモリ215に保持される。
MPEGデコーダ222は、デマルチプレクサ221からの映像データをデコードし、映像信号処理部223に出力し、また、デマルチプレクサ221からの音声データをデコードし、音声信号処理部224に出力する。
映像信号処理部223は、デマルチプレクサ221からの映像データに、データ放送データなどを付加(重畳)し、NTSCフォーマットの信号に変換して、映像を、ディスプレイ202に表示させる。音声信号処理部224は、デマルチプレクサ221からの音声データを、スピーカ203から出力させる。
ここで、信号受信装置5の基本的な動作を説明する。
フロントエンド部219は、アンテナ201を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ220に出力する。デスクランブラ220は、フロントエンド部219から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ221に出力する。
デマルチプレクサ221は、フロントエンド部219からの多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離し、映像データおよび音声データをMPEGデコーダ222に出力し、必要なセクションデータのみをCPU211に出力する。
MPEGデコーダ222は、デマルチプレクサ221からの映像データをデコードし、映像信号処理部223に出力し、デマルチプレクサ221からの音声データをデコードし、音声信号処理部224に出力する。
映像信号処理部223は、デマルチプレクサ221からの映像データに、データ放送データなどを付加(重畳)し、NTSCフォーマットの信号に変換して、変換した映像データに対応する映像を、ディスプレイ202に表示させる。音声信号処理部224は、デマルチプレクサ221からの音声データに対応する音声を、スピーカ203から出力させる。
これにより、信号受信装置5のディスプレイ202には、所定のサービスの映像が表示され、スピーカ203から、所定のサービスの音声が出力される。
図5は、差分データ12を用いて、ソフトウェア11を起動させる信号受信装置5の機能構成例を示している。図6に示される機能ブロックは、図5のCPU211によりファイルシステム231を含むOSが起動(実行)されることで実現される。
なお、図5の例において、ROM212には、出荷前に予め記憶されたものであるソフトウェア11の基準バージョンソフトウェア11Aがファイルデータとして記憶されており、フラッシュメモリ215には、データ生成装置1によりソフトウェア11の基準バージョンソフトウェア11Aと、ソフトウェア11の更新する対象となる新バージョンソフトウェア11Bに基づいて生成され、放送信号に多重化されて送信されてきたバイナリのソフトウェア11の差分データ12からなるダウンロードデータ13が記憶されている。
信号受信装置5の起動時に、CPU211により信号受信装置5のOSが起動され、OSに含まれているファイルシステム231がRAM213に展開される。このファイルシステム213は木構造を有するファイルシステムである。
ファイルシステム231は、通常のファイルシステムが有する機能である、ディレクトリ名とファイル名からストレージ(ROM212、フラッシュメモリ215、リムーバブルメディア225など)上のデータ領域を特定する機能(図示せぬ)に加えて、差分データ12(ファイル名と変化情報)を基に、ソフトウェア11(すなわち、基準バージョンソフトウェア11A)の実アクセス時に、読み替える(差分データ12を反映させる)機能を有する。
具体的には、ファイルシステム231は、起動時に、フラッシュメモリ215に、ダウンロードデータ13があるか否かを判定し、ダウンロードデータ13があると判定した場合、ダウンロードデータ13から得られるソフトウェア11の差分データ12を、RAM213に読み込む(展開する)。
なお、このとき、ファイルシステム231は、ダウンロードデータ13から得られる証明書に基づいて、ダウンロードデータ13から得られる差分データ12が不正なデータでないことを判定してから、差分データ12を、RAM213に読み込む。
そして、ファイルシステム231は、ソフトウェア11を起動させるとき、ROM212に記憶されているソフトウェア11の基準バージョンソフトウェア11Aのファイルデータを読み込みながら、そのファイルデータに、RAM213に展開されたソフトウェア11の差分データ12を反映させながら、RAM213にファイルデータを展開させる。
これにより、RAM213には、新バージョンソフトウェア11Bのファイルデータが展開されて、新バージョンソフトウェア11Bが起動される。
図6は、図5のファイルシステム231の機能構成例を示す図である。
図6に示される機能ブロックは、大きくは、ファイルシステム231の起動時に、フラッシュメモリ215のダウンロードデータ13を差分データ12として、RAM213に展開する処理を行う差分データ確認処理部251と、ソフトウェア11の起動を制御処理するソフトウェア起動処理部252により構成される。
差分データ確認処理部251は、データ管理部261、データ復号部262、ハッシュ値算出部263、ハッシュ値比較部264、および差分データ読み込み部265により構成される。
データ管理部261は、ファイルシステム231の起動時に、フラッシュメモリ215に、ダウンロードデータ13があるか否かを判定し、フラッシュメモリ215に、ダウンロードデータ13があると判定した場合、ダウンロードデータ13から得られる証明書をデータ復号部262に供給し、ダウンロードデータ13から得られる差分データ12を、ハッシュ値算出部263に供給する。
データ復号部262は、公開鍵暗号方式の秘密鍵に対応する公開鍵を有しており、データ管理部261からの証明書をその公開鍵で復号し、復号した復号結果をハッシュ値比較部264に供給する。
ハッシュ値算出部263は、データ生成装置1のハッシュ値算出部153(図3)と同じ方法で、ダウンロードデータ13から得られる差分データ12を用いて、ハッシュ値を算出し、差分データ12とともに、算出したハッシュ値をハッシュ値比較部264に供給する。
ハッシュ値比較部264は、データ復号部262からの復号結果であるハッシュ値と、ハッシュ値算出部263により算出されたハッシュ値とが一致するか否かを判定し、復号結果と、ハッシュ値算出部263により算出されたハッシュ値とが一致すると判定された場合、ハッシュ値算出部263からの差分データ12は不正なデータではないとして、差分データ12を、差分データ読み込み部265に供給する。
差分データ読み込み部265は、ハッシュ値比較部264からの差分データ12を、RAM213に読み込む(展開する)。
図6の例において、ソフトウェア起動処理部252は、ソフトウェア起動監視部271、ファイルデータ読み込み部272、および差分データ反映部273により構成される。
ソフトウェア起動監視部271は、ソフトウェア11の起動時に、対象のソフトウェア11に対応する差分データ12があるか否かを判定し、対象のソフトウェア11に対応する差分データ12がないと判定した場合、ファイルデータ読み込み部272を制御し、基準バージョンソフトウェア11Aのファイルデータを読み込ませる。
また、ソフトウェア起動監視部271は、対象のソフトウェア11に対応する差分データ12があると判定した場合、ファイルデータ読み込み部272および差分データ反映部273を制御し、基準バージョンソフトウェア11Aのファイルデータを読み込みながら、差分データ12を反映させる処理を行わせる。
ファイルデータ読み込み部272は、ソフトウェア起動監視部271または差分データ反映部273の制御のもと、起動させるソフトウェア11の基準バージョンソフトウェア11AのファイルデータをROM212から読み込む。
差分データ反映部273は、ソフトウェア起動監視部271の制御のもと、差分データ12を、ソフトウェア11の基準バージョンソフトウェア11Aのファイルデータに反映させる。
図7は、SDTTに基づいてダウンロードデータ13を取得する信号受信装置5の機能構成例を示している。図7に示される機能ブロックは、図4のCPU211により所定の制御プログラムが実行されることで実現される。
図7に示される機能ブロックは、告知情報取得部291、ダウンロードデータ取得部292、および選局部293、並びに図5のフラッシュメモリ215により構成されている。
告知情報取得部291は、デマルチプレクサ221からのセクションデータのうち、デマルチプレクサ221により選別されたSDTTを入力すると、RAM213に一旦展開し、内蔵する拡張ID判定部261およびバージョン判定部262によるSDTTの判定結果に応じて、SDTTをフラッシュメモリ215に保持させる。
フラッシュメモリ215には、信号受信装置5において取得されたうちの最も新しいバージョンのソフトウェア11の更新データ(差分データ12)のダウンロードデータ13などが記憶されている。
告知情報取得部291は、フラッシュメモリ215のソフトウェア11のダウンロードデータ13のバージョンを参照して、SDTTに記述されているダウンロードデータのバージョンが、信号受信装置5にとって必要なバージョンであるか否かを判定する。すなわち、バージョン判定部262は、SDTTに記述のバージョンが、信号受信装置5のソフトウェア11のダウンロードデータ13のバージョンと同じ、もしくは小さい(古い)場合、SDTTに記述のバージョンが必要なバージョンではないと判定し、RAM213に展開したSDTTを破棄する。
また、告知情報取得部291は、SDTTに記述のバージョンが、信号受信装置5のダウンロードデータ13のバージョンよりも大きい(新しい)場合、SDTTに記述のバージョンが必要なバージョンであると判定し、RAM213に展開したSDTTを、フラッシュメモリ215に保持させる。なお、フラッシュメモリ215にダウンロードデータ13が保持されていない場合も、SDTTに記述のバージョンが必要なバージョンであると判定され、RAM213に展開したSDTTが、フラッシュメモリ215に保持される。
ダウンロードデータ取得部292は、フラッシュメモリ215にSDTTが保持されると、SDTTに記述されている情報を解析し、ダウンロードデータのダウンロードの準備を行う。すなわち、ダウンロードデータ取得部292は、SDTTに記述の情報を解析することで、ダウンロードデータのダウンロード開始時刻やダウンロードを行うサービス(チャンネル)などのダウンロード情報を確認し、ダウンロードデータのダウンロード開始時刻を決定し、内蔵するクロックで計時動作を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になるまで待機する。
ダウンロードデータ取得部292は、更新データのダウンロード開始時刻になったと判定した場合、選局部293を制御し、SDTTに記述されているサービス(チャンネル)を選局させ、デマルチプレクサ221を制御し、選局部293により選局されたサービスの放送信号から、信号受信装置5に必要なバージョンの更新データ(差分データ12)であるダウンロードデータ13を取得させ、取得したダウンロードデータ13をフラッシュメモリ215に記憶させる。
なお、このとき、新しく取得されたダウンロードデータは、これ以前に取得されたバージョンが古いダウンロードデータに上書きされる。
選局部293は、ダウンロードデータ取得部292の制御のもと、SDTTに記述の更新データのダウンロード開始時刻に、SDTTに記述のサービス(チャンネル)を選局する。
図8は、データ生成装置1の差分データ生成部151により生成される差分データの構成例を示す図である。
図8の例においては、左から順に、ソフトウェア11の基準バージョンソフトウェア11Aのファイルデータ、ソフトウェア11の更新対象のバージョンである新バージョンソフトウェア11Bのファイルデータ、および、基準バージョンソフトウェア11Aと新バージョンソフトウェア11Bの変化情報でなるソフトウェア11の差分データ12が示されている。各ファイルデータには、1バイト目から順に各バイトのデータが示されている。
基準バージョンソフトウェア11Aのファイルデータは、最上段の1バイト目から順に、0x00,0x00,0xA1,0xBC,0x50,0x00,0x91,0x00,0x74,0x79,0x00,0x15,0x00,…の各データで構成されている。
新バージョンソフトウェア11Bのファイルデータは、最上段の1バイト目から順に、0x00,0x00,0xA1,0xFF,0xFF,0xBC,0x50,0x00,0x91,0x74,0x79,0x00,0x15,0x00,…の各データで構成されている。
すなわち、基準バージョンソフトウェア11Aのファイルデータの上から8バイト目のデータ0x00(ハッチング部分)は、新バージョンソフトウェア11Bのファイルデータに存在しない。また、基準バージョンソフトウェア11Aのファイルデータの上から4および5バイト目には、新バージョンソフトウェア11Bのファイルデータの上から4および5バイト目に存在するデータである0xFF,0xFF(ハッチング部分)が存在しない。
したがって、この2つのファイルデータにより、基準バージョンソフトウェア11Aのファイルデータの「4バイト目から、0xFF,0xFFを挿入」するという変化情報と、基準バージョンソフトウェア11Aのファイルデータの「8バイト目から、0x00を削除」するという変化情報がバイト順に記述された差分データ12が生成される。
なお、この差分データ12は、実際には、ソフトウェア11を示すファイル名と、この変化情報で構成され、バイナリデータで記述されて生成される。
図9は、図1のデジタル放送システムにおけるソフトウェア11のバージョン管理方法を説明する図である。
例えば、ソフトウェア11の基準バージョンがVer.(Version)1.0であるとし、基準バージョンに対しての第1回目のバージョンアップによるバージョンがVer.1.1である場合、第1回目の差分データVer. 1.1は、基準バージョンであるVer.1.0のソフトウェアのファイルデータと、Ver.1.1のソフトウェアのファイルデータとの変化情報が抽出されて、生成される。
また、基準バージョンに対しての第2回目のバージョンアップによるバージョンがVer. 1.2である場合、第2回目の差分データVer. 1.2は、基準バージョンであるVer. 1.0のソフトウェアのファイルデータと、Ver. 1.2のソフトウェアのファイルデータとの変化情報が抽出されて、生成される。
すなわち、第何回目のバージョンアップであろうと、基準バージョンのソフトウェアのファイルデータが、対象となるバージョンアップによるバージョンのソフトウェアのファイルデータと比較されて、その変化情報が抽出されて、差分データが生成される。したがって、ユーザにより購入された信号受信装置5毎のバージョンに応じた更新データをそれぞれ生成する必要がないので、バージョン管理が楽になる。また、差分データは、バイナリの変化情報であるので、データ量もそれほど多くなることがない。
次に、図10のフローチャートを参照して、データ生成装置1のダウンロードデータ生成処理を説明する。なお、その際、必要に応じて、図11も参照しながら説明する。
ステップS1において、差分データ生成部151は、記憶部118に記憶されている信号受信装置5の更新対象となる機種で、更新対象となるソフトウェア11の基準バージョンソフトウェア11Aおよび新バージョンソフトウェア11Bの変化情報をそれぞれ抽出し、ソフトウェア11のファイル名と変化情報からなる差分データを生成し、データ結合部152に供給する。
すなわち、図11に示されるように、例えば、3つのソフトウェアが更新対象であった場合、3つのソフトウェアのファイルデータのファイル名と、3つの基準バージョンソフトウェアのファイルデータおよび新バージョンソフトウェアのファイルデータの変化情報(差分情報)からなる差分データ12−1乃至12−3がそれぞれ生成される。
ステップS2において、データ結合部152は、差分データ生成部151からの差分データ(すなわち、3つの差分データ12−1乃至12−3)を結合し、結合した差分データ12を、ハッシュ値算出部153に供給する。
ステップS3において、ハッシュ値算出部153は、データ結合部152からの差分データ12を用いて、ハッシュ値311Aを算出し、算出したハッシュ値311Aを、証明書生成部154に供給する。
ステップS4において、証明書生成部154は、ハッシュ値算出部153により算出されたハッシュ値311Aを、秘密鍵で暗号化することで、証明書312を生成し、生成した証明書312を、データ結合部152に供給する。
ステップS5において、データ結合部152は、ステップS2において結合した差分データ12と、ステップS4において証明書生成部154により生成された証明書312を結合し、ダウンロードデータ13を生成する。
以上のようにして、更新対象のソフトウェア11を更新するための更新データである、更新対象のソフトウェアの基準バージョンのファイルデータと、更新対象の新バージョンのファイルデータとの変化情報からなる差分データ12がダウンロードデータ13として生成される。
これにより、生成されたダウンロードデータ13は、ダウンロード装置3に送信(提出)されるので、ダウンロード装置3は、データ生成装置1の提出するダウンロードデータ13を集めて、スケジューリングする。
そして、ダウンロード装置3は、ダウンロードデータ13をデータカルーセルとして送信する前に、データ生成装置1により別途生成され、提出されるSDTTに、ダウンロードデータに基づく必要な情報(例えば、信号受信装置に対して、事前にソフトウェアの更新データ(ダウンロードデータ)のダウンロードが行われること通知する情報として、ダウンロードデータのダウンロード時刻やダウンロードを行うサービス(チャンネル)などのダウンロード情報)を記載して完成させ、完成したSDTTを、放送装置4を介して、放送信号に多重して放送する。
なお、その後、ダウンロード装置3は、更新データのダウンロード時刻に、更新データであるダウンロードデータ13を、データカルーセルとして、放送装置4を介して、放送信号に多重して放送する。
次に、図12のフローチャートを参照して、信号受信装置5によるダウンロードデータ取得処理を説明する。
上述したように、信号受信装置5のソフトウェアの更新の際には、更新データであるダウンロードデータ13の送信(放送)に先立って、SDTT(ダウンロード告知情報テーブル)がダウンロード装置3および放送装置4を介して放送されてくる。
信号受信装置5のフロントエンド部219は、アンテナ201を介して受信された放送信号から、ユーザの選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ220に出力する。デスクランブラ220は、フロントエンド部219から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ221に出力する。
デマルチプレクサ221は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離する。そして、デマルチプレクサ221は、分離したセクションデータを、テーブル識別子、メーカ識別子、およびモデル識別子をパラメータとしたフィルタリング処理を行い、SDTTであることを識別すると、さらに、SDTTに記述されているメーカ識別子およびモデル識別子が、信号受信装置5が対応するメーカ識別子およびモデル識別子と一致するかを判定する。
SDTTに記述されているメーカ識別子およびモデル識別子が、信号受信装置5が対応するメーカ識別子およびモデル識別子と一致すると判定された場合、デマルチプレクサ221は、そのSDTTを、CPU211の告知情報取得部291に出力する。
告知情報取得部291は、ステップS11において、デマルチプレクサ221からのSDTTを取得し、取得したSDTTをRAM213に一旦展開する。
告知情報取得部291は、ステップS12において、フラッシュメモリ215に記憶されているダウンロードデータ13(更新データ)のバージョンを参照して、SDTTに記述されているダウンロードデータのバージョンが、信号受信装置5にとって必要なバージョンであるか否かを判定する。
SDTTに記述のバージョンが、記憶されているダウンロードデータ13のバージョンよりも大きい(新しい)場合、ステップS12において、SDTTに記述のバージョンが必要なバージョンであると判定されるので、ステップS13において、告知情報取得部291は、RAM213に展開したSDTTを、フラッシュメモリ215に保持(記憶)させる。なお、フラッシュメモリ215にダウンロードデータ13が保持されていない場合も、SDTTに記述のバージョンが必要なバージョンであると判定され、RAM213に展開したSDTTが、フラッシュメモリ215に保持される。
ステップS12において、SDTTに記述のバージョンが必要なバージョンではないと判定された場合、RAM213に展開したSDTTは、破棄され、処理は、ステップS11に戻り、次に放送され、デマルチプレクサ221によりフィルタリングされて告知情報取得部291に入力されたSDTTに対して、それ以降の処理が繰り返される。
ダウンロードデータ取得部292は、フラッシュメモリ215にSDTTが保持されると、SDTTに記述されている情報を解析し、ステップS14において、SDTTに記述されている更新データのダウンロード開始時刻になるまで待機する。
すなわち、ダウンロードデータ取得部292は、SDTTに記述の情報を解析することで、ダウンロードデータのダウンロード開始時刻やダウンロードを行うサービス(チャンネル)などのダウンロード情報を確認し、更新データのダウンロード開始時刻を決定し、内蔵するクロックで計時動作を行い、SDTTに記述されているダウンロードデータのダウンロード開始時刻になるまで待機する。
ダウンロードデータ取得部292は、ステップS14において、ダウンロードデータのダウンロード開始時刻になったと判定した場合、ステップS15において、選局部293を制御し、SDTTに記述されているダウンロードサービス(チャンネル)を選局させ、ステップS16において、デマルチプレクサ221を制御し、選局部293により選局されたサービスの放送信号から、信号受信装置5に必要なバージョンの更新データであるダウンロードデータ13を取得させる。
すなわち、更新データの放送の日時(ダウンロード開始時刻)に、放送装置4から、ソフトウェアの更新データであるダウンロードデータ13がデータカルーセルとして所定のサービスの放送信号に多重化されて送信されてくる。なお、このデータカルーセルは、暗号化されていてもよいし、伝送誤りを防ぐために、誤り検出、誤り訂正符号などが付加されているようにしてもよい。
これに対応して、フロントエンド部219は、アンテナ201を介して放送装置4からの放送信号を受信するので、選局部254は、フロントエンド部219を制御し、受信された放送信号より、ダウンロード告知情報に記述されているサービス(チャンネル)を選局させる。フロントエンド部219は、アンテナ201を介して受信された放送信号から、選局部254の選局に対応する放送信号を抽出して、復調し、トランスポートストリームを生成し、デスクランブラ220に出力する。デスクランブラ220は、フロントエンド部219から入力されるトランスポートストリームのスクランブルを適宜解除して、デマルチプレクサ221に出力する。
デマルチプレクサ221は、多重化されたトランスポートストリームを、映像または音声データなどのストリームや、セクションデータに分離し、ダウンロードデータ取得部292からの制御により、分離されたセクションデータから、必要なDSM-CCセクション(すなわち、ダウンロードデータ13)を、ダウンロードデータ取得部292に供給する。
ダウンロードデータ取得部292は、ステップS17において、デマルチプレクサ221からのダウンロードデータ13を取得し、フラッシュメモリ215に記憶する。すなわち、取得されたダウンロードデータ13は、前回取得されて更新されていたダウンロードデータに上書きされる。
以上のようにして、ソフトウェアの更新に必要なバージョンのダウンロードデータ13がフラッシュメモリ215に記憶される。
次に、図13のフローチャートを参照して、信号受信装置5の差分データ確認処理を説明する。その際、必要に応じて、図14も参照しながら説明する。
なお、この差分データ確認処理は、信号受信装置5の起動時、すなわち、図6のファイルシステム231を含むOSの起動時、ファイルシステム231の差分データ確認処理部251により開始される。
ステップS31において、差分データ確認処理部251のデータ管理部261は、フラッシュメモリ215にダウンロードデータ13があるか否かを判定し、フラッシュメモリ215にダウンロードデータ13があると判定した場合、ステップS32において、図14に示されるように、ダウンロードデータ13の差分データ12と証明書312を分離し、分離した差分データ12をハッシュ値算出部263に供給し、分離した証明書312を、データ復号部262に供給する。
ステップS33において、データ復号部262は、データ管理部261からの証明書312をデータ生成装置1が有する公開鍵暗号方式の秘密鍵に対応する公開鍵で復号し、復号した復号結果であるハッシュ値311Aを、ハッシュ値比較部264に供給する。すなわち、復号結果が正しければ、ここでは、図10のステップS3で算出されたハッシュ値311Aが得られる。
ステップS34において、ハッシュ値算出部263は、データ生成装置1のハッシュ値算出部153と同じ方法で、ダウンロードデータ13から得られる差分データ12を用いて、ハッシュ値311Bを算出し、差分データ12とともに、算出したハッシュ値311Bをハッシュ値比較部264に供給する。すなわち、差分データ12が欠落していなければ(すなわち、差分データ12が完全であれば)、ここで得られるハッシュ値311Bは、図10のステップS3で算出されたハッシュ値311Aと一致するはずである。
ステップS35において、ハッシュ値比較部264は、データ復号部262からの復号結果であるハッシュ値311Aと、ハッシュ値算出部263により算出されたハッシュ値311Bとが一致するか否かを判定する。これにより、証明書の正当性の確認(すなわち、差分データ12が不正なデータでないことの確認)と、差分データ12が欠落していないことの確認が行える。
ステップS35において、ハッシュ値比較部264は、復号結果であるハッシュ値311Aと、ハッシュ値算出部263により算出されたハッシュ値311Bとが一致しないと判定した場合、差分データ12が不正なデータであるか、または、差分データ12が不完全なデータであるとして、ハッシュ値算出部263からの差分データ12を消去する。なお、このとき、フラッシュメモリ215のダウンロードデータごと消去するようにすることもできる。
ステップS35において、復号結果であるハッシュ値311Aと、ハッシュ値算出部263により算出されたハッシュ値311Bとが一致すると判定された場合、ハッシュ値算出部263からの差分データ12は不正なデータではなく、また、差分データ12が完全なデータであるとして、差分データ12を、差分データ読み込み部265に供給する。
ステップS36において、差分データ読み込み部265は、ハッシュ値比較部264からの差分データ12を、RAM213に読み込む(展開する)。
一方、ステップS31において、フラッシュメモリ215にダウンロードデータ13がないと判定された場合、そのまま、処理は終了される。
以上のように、差分データ12の全データのハッシュ値を用いた証明書の正当性が確認されてから、差分データ12がRAM213に展開されるので、不正なデータ(ソフトウェア)の実行が抑制されるとともに、例えば、ダウンロード途中のデータを誤って利用してしまうことを抑制することができる。
次に、図15のフローチャートを参照して、信号受信装置5のソフトウェアの起動制御処理を説明する。この処理は、信号受信装置5の起動後、すなわち、図6のファイルシステム231を含むOSの起動後、信号受信装置5に記憶され、図6のファイルシステム231により管理されるソフトウェアの起動時に、ファイルシステム231のソフトウェア起動処理部252により開始される。すなわち、図15の処理は、起動対象となるソフトウェア毎に実行される処理である。
ステップS61において、ソフトウェア起動処理部252のソフトウェア起動監視部271は、起動対象のソフトウェア11に、対応する差分データ12があるか否かを判定し、起動対象のソフトウェア11に、対応する差分データ12がないと判定した場合、ステップS62に進み、ファイルデータ読み込み部272を制御し、基準バージョンソフトウェア11AのファイルデータをRAM213に読み込ませる(展開させる)。
これにより、信号受信装置5においては、基準バージョンソフトウェア11Aが起動される。
一方、ステップS61において、起動対象のソフトウェア11に、対応する差分データ12があると判定された場合、処理は、ステップS63に進み、ファイルデータ読み込み部272および差分データ反映部273は、基準バージョンソフトウェア11Aのファイルデータと、差分データ12を用いて、差分データの反映処理を実行する。この差分データの反映処理を、図16のフローチャートを参照して説明する。
なお、図16の例においては、図17に示される差分データ12を用いて説明する。
図17は、図8の差分データ12の他の構成例を示す図である。なお、実際には、差分データ12は、バイナリデータとされるが、説明の便宜上、図17の例のように示される。
図17の例において、差分データ12は、右から順に、挿入か削除かの処理内容を示す「処理コマンド」、基準バージョンソフトウェア11Aのファイルデータ上のアドレスを示す「ターゲットアドレス」、処理のレングス長(バイト長)を示す「レングス長」、挿入処理の場合、挿入するデータを示す「挿入データ」により構成される。
なお、差分データ12内のデータは、ターゲットアドレスで昇順にソートされている。
差分データ12の1段目には、処理コマンドが「INS」(INSERT:挿入)処理であり、ターゲットアドレスが「0x0004」であり、レングス長が「0x02」であり、挿入データが「0xFF,0xFF」であることが示されている。すなわち、差分データ12の1段目には、基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0004」から「0x02」までのアドレスに、「0xFF,0xFF」を挿入することが示されている。
差分データ12の2段目には、処理コマンドが「DEL」(DELERT:挿入)処理であり、ターゲットアドレスが「0x0008」であり、レングス長が「0x01」であることが示されている。すなわち、差分データ12の2段目には、基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0008」から「0x01」までのアドレスのデータを削除することが示されている。
図16のステップS81において、差分データ反映部273は、基準バージョンソフトウェア11Aのファイルデータ(以下、基準バージョンファイルデータとも称する)へアクセスするアドレス(以下、アクセスアドレスと称する)を、その基準バージョンファイルデータの先頭にセットする。例えば、ファイルの先頭を示す値「0」がセットされる。
ステップS82において、差分データ反映部273は、アクセスアドレスと、差分データ12内の対象行(例えば、1行目)のターゲットアドレスが一致するか否かを判定する。すなわち、ステップS81においてセットされたアクセスアドレス、または、後述するステップS90において変更されたアクセスアドレスと、差分データ12内の対象行のターゲットアドレスが比較される。
なお、上述したように、差分データ12内のデータは、ターゲットアドレスで昇順にソートされており、差分データ反映部273は、差分データ12の対象行を示すポインタを保持している。
ステップS82において、アクセスアドレスと、差分データ12内の対象行のターゲットアドレスが一致すると判定された場合、処理は、ステップS83に進み、差分データ反映部273は、差分データ12内の対象行の処理コマンドが挿入を示すコマンド(INS)であるか否かを判定する。
ステップS83において、差分データ12内の対象行の処理コマンドが挿入を示すコマンド(INS)であると判定された場合、差分データ反映部273は、ステップS84において、アクセスアドレスが示す基準バージョンファイルデータのアドレスに、挿入データを挿入する。
図17の例の差分データ12内の対象行が1行目であり、アクセスアドレスがファイルデータの「0x0004」であった場合には、基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0004」から、レングス長「0x02」まで、挿入データ「0xFF,0xFF」が挿入される。
ステップS85において、差分データ反映部273は、差分データ12の対象行を示すポインタを、差分データ12の次の行に移動させる。その後、処理は、ステップS86に進む。
ステップS82において、アクセスアドレスと、差分データ12内の対象行のターゲットアドレスが一致しないと判定された場合、処理は、ステップS86に進む。
ステップS86において、差分データ反映部273は、ファイルデータ読み込み部272を制御し、アクセスアドレスが示す基準バージョンファイルデータを1バイト、RAM213に読み込ませる(展開させる)。
ステップS87において、ファイルデータ読み込み部272は、基準バージョンソフトウェア11Aのファイルデータの読み出しが終了したか否かを判定し、基準バージョンソフトウェア11Aのファイルデータの読み出しが終了したと判定した場合、差分データ反映処理は終了される。ステップS87において、基準バージョンソフトウェア11Aのファイルデータの読み出しがまだ終了していないと判定された場合、処理は、ステップS90に進む。
一方、ステップS83において、差分データ12内の対象行の処理コマンドが挿入を示すコマンド(INS)でない、すなわち、削除を示すコマンド(DEL)であると判定された場合、差分データ反映部273は、ステップS88において、アクセスアドレスが示す基準バージョンファイルデータのアドレスのデータを削除する。
図17の例の差分データ12内の対象行が2行目であり、アクセスアドレスがファイルデータの「0x0008」であった場合には、基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0008」から、レングス長「0x01」までのデータ「0x00」(図8)が削除される。
ステップS89において、差分データ反映部273は、差分データ12の対象行を示すポインタを、差分データ12の次の行に移動させる。その後、処理は、ステップS90に進む。
ステップS90において、差分データ反映部273は、アクセスアドレスを変更する。具体的には、ステップS82において、アクセスアドレスと、差分データ12内の対象行のターゲットアドレスが一致しないと判定された場合、ステップS90において、差分データ反映部273は、アクセスアドレスの値に1プラスする。また、ステップS83において、差分データ12内の対象行の処理コマンドが挿入を示すコマンド(INS)であると判定された場合、ステップS90において、差分データ反映部273は、アクセスアドレスの値に1プラスする。
さらに、ステップS83において、差分データ12内の対象行の処理コマンドが削除を示すコマンド(DEL)であると判定された場合、ステップS90において、差分データ反映部273は、差分データの処理のレングス長の値を、アクセスアドレスの値にプラスする。
ステップS90の処理によりアクセスアドレスが変更されると、ステップS82に戻り、変更されたアクセスアドレスに対して、それ以降の処理が実行される。
以上により、RAM213には、新バージョンソフトウェア11Bのファイルデータが展開される。すなわち、図8の基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0004」から、レングス長「0x02」まで、挿入データ「0xFF,0xFF」が挿入され、基準バージョンソフトウェア11Aのファイルデータのアドレス「0x0008」から、レングス長「0x01」までのデータ「0x00」(図8)が削除されたものである、図8の新バージョンソフトウェア11Bのファイルデータが、RAM213に展開され、これにより、信号受信装置5においては、新バージョンソフトウェア11Bが起動される。
以上のように、ソフトウェア11の基準バージョンソフトウェア11Aのファイルデータと、ソフトウェア11の差分データ12を別々に保存しておき、ソフトウェア11が起動されるたびに、基準バージョンソフトウェア11Aのファイルデータに、差分データ12を反映させてRAM213に読み込むことにより、新バージョンソフトウェア11Bのファイルデータが、RAM213に展開され、新バージョンソフトウェア11Bが起動される。
すなわち、ソフトウェアのバージョンアップにおいて、ソフトウェアを直接書き換えることがないので、バージョンアップ時の不意な電源切断によりソフトウェアが不完全な状態になってしまい、ソフトウェアが起動しなくなってしまうことが抑制される。
また、基準バージョンソフトウェア11Aのファイルデータを、書き換え不可能なROM212に格納することが可能になる。これにより、アクセス速度の高速化と、コストの削減が期待される。
さらに、ソフトウェアを更新するための更新データとして、基準バージョンソフトウェア11Aと、新バージョンソフトウェア11Bの差分のバイナリ差分データを用いるようにしたので、バージョンアップ(更新)時に、信号受信装置5に転送するデータ量を削減することができる。これにより、データ転送にかかるコストを削減することができる。
これは、特に、図1のデジタル放送システムにおける更新データのダウンロードの際に、効果的である。すなわち、図1のデジタル放送システムにおいて更新データを放送信号に多重化して送信するためには、メーカ側に費用がかかってしまう。したがって、バイナリ差分データを用いることで、メーカ側にかかる伝送費用を削減することができる。
また、信号受信装置5においても、バイナリ差分データを用いることで、バイナリ差分データを格納しておくデータ領域を小さくすることができる。すなわち、本発明は、特に、差分データの容量が少なめである、ソフトウェアのバグフィックスなどのバージョンアップに効果的である。
さらに、複数回バージョンアップされようとも、バイナリ差分データは、基準バージョンソフトウェアを基に生成される。したがって、バージョン管理が簡単になる。
なお、上記説明においては、更新データを放送信号に多重して、放送信号から取得するようにしたが、図示せぬネットワークなどを介してサーバから取得するようにしてもよい。
また、上記説明においては、ディスプレイ202を内蔵した信号受信装置5を用いて説明したが、外部のテレビジョン装置と接続される信号受信装置であってもよいし、セットトップボックスなどにより構成されるようにしてもよい。また、上記説明においては、固定受信機の信号受信装置5を用いて説明したが、PDA(Personal Digital assistant)や携帯電話機などの移動受信機や携帯受信機にも本発明を適用することができる。
さらに、本発明は、放送信号を受信する信号受信装置だけに限らず、木構造のファイルシステムを有する装置であれば、例えば、CE機器や、図2で示されるデータ生成装置1と同様な構成のパーソナルコンピュータなどの情報処理装置などにも適用される。なお、その際には、更新データとしての差分データは、例えば、ネットワークなどを介してサーバから取得することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図2および図4に示されるように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア(パッケージメディア)121および225、または、プログラムが一時的もしくは永続的に格納されるROM112およびROM212などにより構成される。
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 データ生成装置, 5−1および5−2 信号受信装置, 11 ソフトウェア,11A 基準バージョンソフトウェア, 11B 新バージョンソフトウェア,12 差分データ, 13 ダウンロードデータ, 151 差分データ生成部, 152 データ結合部, 153 ハッシュ値算出部, 154 証明書生成部, 211 CPU, 212 ROM, 213 RAM, 215 フラッシュメモリ, 221 デマルチプレクサ,231 ファイルシステム, 251 差分データ確認処理部, 252 ソフトウェア起動処理部, 261 データ管理部, 262 データ復号部, 263 ハッシュ値算出部, 264 ハッシュ値比較部, 265 差分データ読み込み部, 271 ソフトウェア起動監視部, 272 ファイルデータ読み込み部, 273 差分データ反映部
Claims (17)
- ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムにおいて、
前記データ生成装置は、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、
前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段を備え、
前記受信装置は、
前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
情報処理システム。 - 前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項1に記載の情報処理システム。 - 前記受信装置の前記ファイルシステムは、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備える
請求項1に記載の情報処理システム。 - 前記データ生成装置は、
前記差分データ算出手段により算出された前記差分データからハッシュ値を算出する第1のハッシュ値算出手段と、
前記第1のハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、
前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成し、
前記受信装置の前記差分データ展開手段は、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出する第2のハッシュ値算出手段と、
前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、
前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、
前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記第2のハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する
請求項3に記載の情報処理システム。 - ファイルシステムを有し、放送信号を受信する受信装置と、前記放送信号に多重化されて送信される、前記受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置からなる情報処理システムの情報処理方法において、
前記データ生成装置における、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを含み、
前記受信装置における、
前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップとを含む
情報処理方法。 - ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
受信装置。 - 前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項6に記載の受信装置。 - 前記ファイルシステムは、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する差分データ展開手段と、
前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータを前記メモリに展開し、前記基準バージョンのデータに、前記差分データ展開手段により展開された前記差分データを反映させることで、前記更新バージョンのデータを前記メモリに展開させる更新データ展開手段とを備える
請求項6に記載の受信装置。 - 前記ダウンロードデータは、前記差分データと、前記差分データから算出されたハッシュ値が暗号化された証明書とが結合されて構成されており、
前記差分データ展開手段は、
前記受信装置の起動時に、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データからハッシュ値を算出するハッシュ値算出手段と、
前記取得手段により取得された前記ダウンロードデータから得られる前記証明書を復号し、ハッシュ値を得る復号手段と、
前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致するか否かを判定する判定手段とを備え、
前記判定手段により前記復号手段により得られた前記ハッシュ値と、前記ハッシュ値算出手段により算出された前記ハッシュ値が一致すると判定された場合、前記取得手段により取得された前記ダウンロードデータから得られる前記差分データを前記メモリに展開する
請求項8に記載の受信装置。 - ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置の受信方法において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップと
を含む受信方法。 - ファイルシステムを有し、データ生成装置によりソフトウェアを更新するために生成され、放送信号に多重化されたダウンロードデータを受信する受信装置用のプログラムであって、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成され、前記放送信号に多重化された前記ダウンロードデータを取得する取得ステップと、
前記ファイルシステムによる、前記受信装置のソフトウェアの起動時に、前記受信装置のソフトウェアの前記基準バージョンのデータと、前記取得ステップの処理により取得された前記ダウンロードデータから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させる展開ステップと
を含むプログラム。 - 放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出手段と、
前記差分データ算出手段により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成手段と
を備えるデータ生成装置。 - 前記差分データは、前記受信装置のソフトウェア毎に算出された前記差分データが結合されて構成される
請求項12に記載のデータ生成装置。 - 前記差分データ算出手段により算出された前記差分データからハッシュ値を算出するハッシュ値算出手段と、
前記ハッシュ値算出手段により算出された前記ハッシュ値を暗号化し、証明書を生成する証明書生成手段とをさらに備え、
前記データ生成手段は、前記差分データ算出手段により算出された前記差分データと、前記証明書生成手段により生成された証明書を結合して、前記ダウンロードデータを生成する
請求項12に記載のデータ生成装置。 - 放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成するデータ生成装置のデータ生成方法において、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップと
を含むデータ生成方法。 - 放送信号に多重化されて送信される、ファイルシステムを有し、放送信号を受信する受信装置のソフトウェアを更新するためのダウンロードデータを生成する処理をコンピュータに行わせるプログラムであって、
前記受信装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出する差分データ算出ステップと、
前記差分データ算出ステップの処理により算出された前記差分データを基に、前記ダウンロードデータを生成するデータ生成ステップを
を含むプログラム。 - ファイルシステムを有する情報処理装置において、
前記情報処理装置のソフトウェアの基準となる基準バージョンのデータと、更新対象となる更新バージョンのデータの差分データを算出して生成されるデータを取得する取得手段と、
前記情報処理装置のソフトウェアの起動時に、前記情報処理装置のソフトウェアの前記基準バージョンのデータと、前記取得手段により取得された前記データから得られる前記差分データとを用いて、前記更新バージョンのデータをメモリに展開させるファイルシステムとを備える
情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005268185A JP2007080034A (ja) | 2005-09-15 | 2005-09-15 | 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005268185A JP2007080034A (ja) | 2005-09-15 | 2005-09-15 | 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007080034A true JP2007080034A (ja) | 2007-03-29 |
Family
ID=37940266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005268185A Withdrawn JP2007080034A (ja) | 2005-09-15 | 2005-09-15 | 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007080034A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016539405A (ja) * | 2013-11-04 | 2016-12-15 | シマンテック コーポレーションSymantec Corporation | 読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステム及び方法 |
WO2018173911A1 (ja) * | 2017-03-24 | 2018-09-27 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
JP2018160207A (ja) * | 2017-03-24 | 2018-10-11 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
WO2019009115A1 (ja) * | 2017-07-04 | 2019-01-10 | 日立オートモティブシステムズ株式会社 | 電子制御システム |
JP2019175024A (ja) * | 2018-03-28 | 2019-10-10 | 日立オートモティブシステムズ株式会社 | 車載制御装置 |
-
2005
- 2005-09-15 JP JP2005268185A patent/JP2007080034A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016539405A (ja) * | 2013-11-04 | 2016-12-15 | シマンテック コーポレーションSymantec Corporation | 読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステム及び方法 |
WO2018173911A1 (ja) * | 2017-03-24 | 2018-09-27 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
JP2018160207A (ja) * | 2017-03-24 | 2018-10-11 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
JPWO2018173911A1 (ja) * | 2017-03-24 | 2020-01-16 | 日立オートモティブシステムズ株式会社 | 車載制御装置、及び、プログラム更新ソフトウェア |
US11263001B2 (en) | 2017-03-24 | 2022-03-01 | Hitachi Astemo, Ltd. | Car onboard control device and program updating software |
WO2019009115A1 (ja) * | 2017-07-04 | 2019-01-10 | 日立オートモティブシステムズ株式会社 | 電子制御システム |
US11392368B2 (en) | 2017-07-04 | 2022-07-19 | Hitachi Astemo, Ltd. | Electronic control system for updating circuit |
JP2019175024A (ja) * | 2018-03-28 | 2019-10-10 | 日立オートモティブシステムズ株式会社 | 車載制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4845263B2 (ja) | データのダウンロード | |
US7877778B2 (en) | Information processing system, information processing method, receiving apparatus, receiving method, data generating unit, data generating method, and program | |
EP1246057A2 (en) | Remote program downloading system | |
JP2007080034A (ja) | 情報処理システムおよび方法、受信装置および方法、データ生成装置および方法、プログラム、並びに情報処理装置 | |
JP2000137607A (ja) | デジタルテレビジョン受像機 | |
US20080077681A1 (en) | Method and apparatus for upgrading software of digital broadcasting receiver | |
JP2006229979A (ja) | デジタル放送受信機のソフトウェアアップグレード装置及びその方法 | |
WO2004114126A1 (ja) | ソフトウェア更新システムとソフトウェア提供装置とソフトウェア処理装置およびソフトウェア更新方法 | |
CN102629998B (zh) | 一种可批量升级的电视机的批量升级、开机引导方法 | |
KR20110047711A (ko) | 전자 장치 및 그 업그레이드용 펌웨어의 생성방법 | |
JP2009211269A (ja) | 放送受信装置、プログラム更新方法 | |
JP3813769B2 (ja) | 制御プログラム送信方法及び制御プログラムダウンロード方法 | |
KR20070117804A (ko) | 영상표시기기의 소프트웨어 업그레이드 장치 및 방법 | |
JP2006050625A (ja) | 端末における動作強制 | |
KR100478016B1 (ko) | 디지털 방송수신기에서의 운영 프로그램 갱신방법 | |
JP2006060345A (ja) | 信号受信装置および方法、記録媒体、並びにプログラム | |
KR100764097B1 (ko) | 셋탑박스의 프로그램 업데이트 방법 | |
JP3540635B2 (ja) | デジタルテレビジョン受像機 | |
KR20080007889A (ko) | 방송수신장치 및 방송수신장치의 소프트웨어 갱신방법 | |
KR100698276B1 (ko) | 디지털 수신기의 소프트웨어 업그레이드 방법 및 장치 | |
JP2010273172A (ja) | デジタル放送受信装置 | |
JP2002312175A (ja) | 情報処理装置および方法、記録媒体、記憶媒体、並びにプログラム | |
JP2010028344A (ja) | デジタル放送受信装置、制御プログラムの更新方法および制御プログラムの更新プログラム | |
KR100755848B1 (ko) | 디지털 수신기의 소프트웨어 업그레이드 방법 및 장치 | |
JP2007104553A (ja) | 受信装置および方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |