JP2000293365A - プログラム構成管理装置 - Google Patents

プログラム構成管理装置

Info

Publication number
JP2000293365A
JP2000293365A JP2000024058A JP2000024058A JP2000293365A JP 2000293365 A JP2000293365 A JP 2000293365A JP 2000024058 A JP2000024058 A JP 2000024058A JP 2000024058 A JP2000024058 A JP 2000024058A JP 2000293365 A JP2000293365 A JP 2000293365A
Authority
JP
Japan
Prior art keywords
program
version
storage unit
unit
download
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
Application number
JP2000024058A
Other languages
English (en)
Other versions
JP2000293365A5 (ja
Inventor
Akihiro Tanaka
朗宏 田中
Toshiya Mori
俊也 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000024058A priority Critical patent/JP2000293365A/ja
Publication of JP2000293365A publication Critical patent/JP2000293365A/ja
Publication of JP2000293365A5 publication Critical patent/JP2000293365A5/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 バージョンアップのためにダウンロードした
プログラムにバグが存在していても元のプログラム構成
に戻すことができるプログラム構成管理装置を提供す
る。 【解決手段】 通信路を介してプログラムをダウンロー
ドするプログラムダウンロード部110と、ダウンロー
ドされたプログラムを最新バージョンだけでなく過去の
バージョンも含めてオブジェクト格納部140に格納す
るプログラム管理部120と、ダウンロードされたプロ
グラムの履歴を履歴情報記憶部160に登録する履歴情
報管理部130とを備え、放送センターから特定のプロ
グラムについてバージョンを遡及させる旨の指示を受け
ると、プログラム管理部120は履歴情報管理部130
を介して履歴情報記憶部160を参照することにより、
オブジェクト格納部140に格納された過去のバージョ
ンのプログラムを有効化させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、電子機器の機能を
実現する複数のプログラムの構成を管理する装置に関
し、特に、通信端末機器において通信路を介して送られ
てくるプログラムをダウンロードし改訂するプログラム
構成管理装置に関する。
【0002】
【従来の技術】従来、ディジタル衛星放送やCATVの
チューナ等の通信端末機器に組み込まれているプログラ
ムを更新する方法として、伝送路を介して送られてくる
プログラムを一括してダウンロードし、フラッシュメモ
リ等の不揮発メモリに格納されている旧バージョンのプ
ログラム全体を新たなプログラムで置き換えるという手
法が採られている。このとき、動作保証の観点から旧バ
ージョンのプログラムを消去することなく、バックアッ
プ用に保持しておくよう配慮されている。
【0003】
【発明が解決しようとする課題】しかしながら、近年の
衛星放送やCATV等の通信サービスの多様化に伴い、
通信端末機器に要求される機能が増大し、それに伴っ
て、通信端末機器が備えるべきソフトウェアのサイズが
肥大化してきており、従来のような一括ダウンロードに
よるプログラムの更新では、バックアップとして残して
おくことができるプログラムはせいぜい直前の一世代分
に制限される。そのために、もし、バグフィックスのた
めにダウンロードした新しいバージョンのプログラムに
再びバグが存在していた場合には、その通信端末機器内
にはもはや正常なプログラムが存在しないという事態が
生じてしまう。
【0004】また、プログラム全体におけるほんの一部
に存在するバグを解消したい場合でも、そのプログラム
全体を一括してダウンロードしなければならず、無駄に
伝送路を占有してしまうという不具合もある。このよう
な不具合を回避する方法として、通信端末機器に必要と
されるプログラムを機能別の細かい単位(モジュール)
に分割しておき、そのようなモジュール単位でバージョ
ンアップを行うことが考えられる。ところが、モジュー
ルの数が多い場合やバージョンアップの繰り返し等によ
りバージョンの種類が増加した場合には、それらモジュ
ールの組み合わせ数が爆発的に増加してしまい、全ての
組み合わせについて動作保証のチェックを実施すること
は大変な負担となってしまう。また、通信端末機器に新
しいプログラムをダウンロードした場合に、ダウンロー
ドしたプログラムにバグが存在していたり、既にダウン
ロードされている他のプログラムとの整合がとれなかっ
たり等の理由により、それまで動作していたプログラム
が動作しなくなってしまう可能性もある。
【0005】そこで、本発明はかかる問題点に鑑み、一
括ダウンロードだけでなくモジュール単位でプログラム
をダウンロードしてバージョンアップする通信端末機器
において、新たにダウンロードしたプログラム自体にバ
グが存在していても、そのプログラムによってそれまで
健全に動作していたプログラムが動作しなくなってしま
うという不具合を回避することができるプログラム構成
管理装置を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係るプログラム構成管理装置は、通信端末
機器に備えられ、その通信端末機器に必要な複数のプロ
グラムの構成を管理する装置であって、通信路を介して
前記プログラムをダウンロードするダウンロード手段
と、ダウンロードされたプログラムを最新バージョンだ
けでなく過去のバージョンも含めて蓄積して記憶するプ
ログラム記憶手段と、特定のプログラムについてバージ
ョンを遡及させる旨の指示を受けると、前記プログラム
記憶手段に記憶されたプログラムのうち指示されたプロ
グラムについては、現行バージョンを無効化して過去の
バージョンを有効化させるバージョン遡及手段とを備え
ることを特徴とする。
【0007】また、本発明に係るプログラム構成管理方
法は、通信端末機器において、その通信端末機器に必要
なプログラムの構成を管理する方法であって、通信路を
介して前記プログラムをダウンロードするダウンロード
ステップと、ダウンロードされたプログラムを最新バー
ジョンだけでなく過去のバージョンも含めてプログラム
記憶手段に蓄積して格納するプログラム格納ステップ
と、特定のプログラムについてバージョンを遡及させる
旨の指示を受けると、前記プログラム記憶手段に格納さ
れたプログラムのうち指示されたプログラムについて
は、現行バージョンを無効化して過去のバージョンを有
効化させるバージョン遡及ステップとを有することを特
徴とする。
【0008】さらに、本発明は、上記プログラム構成管
理方法を構成するステップを含むプログラムを記録した
コンピュータ読み取り可能な記録媒体とすることができ
る。
【0009】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて詳細に説明する。 (第1の実施の形態)第1の実施の形態は、通信端末機
器にプログラムをダウンロードしバージョンアップする
他に、そのダウンロードやバージョンアップの履歴を記
録したり、ダウンロードしたプログラムを追加形式で蓄
積することで、バージョンアップだけでなく、通信端末
機器内に蓄積されている任意のバージョンに遡及(バー
ジョンダウン)させる機能を有するプログラム構成管理
装置100に関する。
【0010】図1は、本実施の形態に係るプログラム構
成管理装置100を内蔵するデジタル衛星放送用受信装
置全体のハードウェア構成図である。この受信装置51
0は、放送センターからの電波を受信するアンテナ51
1、受信した電波をデジタルデータに復調する受信部5
12、復調したデジタルデータを映像・音声・プログラ
ム・データに分離・復号するデコーダ513、復号され
た映像・音声をアナログ信号に変換して外部に接続され
たTV等に出力する映像信号再生部514、ユーザとの
対話のためのボタン及びLCD等からなる入出力部51
5、一時的な作業領域としてのRAM517、本受信装
置510及びプログラム構成管理装置100としての機
能を実現するためのプログラム及びデータを保持する書
き換え可能な不揮発メモリであるEEPROM518、
それらプログラムを実行するCPU516及び実時間を
カウントするカレンダー・タイマー519から構成され
る。
【0011】このデジタル衛星放送システムにおいて
は、放送センターから映像・音声だけでなく、受信装置
510に必要なプログラムやデータがオブジェクトとし
て多重化されて送信されてくる。ここで、「オブジェク
ト」とは、受信装置510によるダウンロードの対象と
なる情報単位であり、受信装置510としての機能を実
現するためのプログラム及びデータのいずれかに分類さ
れる。このようなプログラムとしては、例えば、番組情
報のガイド(EPG:Electric Program Guide)を行う
プログラム等があり、また、データとしては、画面に表
示させるロゴ等の画像データ、ニュースや天気等の蓄積
データ放送における放送データ等がある。
【0012】図2(a)は、放送センターから送信され
るオブジェクトのデータ構造を示す図である。オブジェ
クト105は、そのオブジェクトの属性等を示すオブジ
ェクトヘッダ106と、そのオブジェクトの実体(プロ
グラム又はデータ)であるオブジェクト本体107から
なる。図2(b)は、オブジェクトヘッダ106のデー
タ構造を示す図である。オブジェクトヘッダ106は、
オブジェクト種106a、プログラム(又はデータ)名
(ID)106b、バージョン106c、対応機種10
6d、プログラム(又はデータ)サイズ106e、プロ
グラム(又はデータ)作成日時106f及び依存関係情
報106gから構成される。
【0013】オブジェクト種106aは、そのオブジェ
クトがプログラムであるか、データであるか、プログラ
ムである場合にはさらに、そのプログラムが単独で実行
され得るアプリケーションであるか、単独での実行は不
可能であるが他のプログラムから呼び出されることで実
行され得るモジュールであるか、を示す。プログラム
(又はデータ)名(ID)106bは、そのオブジェク
トの識別子であり、同一のプログラム(又はデータ)で
あれば異なるバージョンであっても同一の名前(ID)
が付与されている。バージョン106cは、そのプログ
ラム(又はデータ)の版番号を示し、新しいものほど値
が大きくなる。対応機種106dは、そのオブジェクト
が対象としている受信装置510の機種、即ち、そのプ
ログラム(又はデータ)を実行する(使用する)ことが
可能な受信装置510の機種を示す。プログラム(又は
データ)サイズ106eは、そのプログラム(又はデー
タ)のバイト単位でのサイズを示す。プログラム(又は
データ)作成日時106fは、そのプログラム(又はデ
ータ)が作成された日時を示し、依存関係情報106g
は、そのオブジェクトがプログラムである場合にそのプ
ログラムと依存関係(呼び出し関係)を持つプログラム
を示す。
【0014】図3(a)及び(b)は、それぞれ、オブ
ジェクト種151eがモジュール及びアプリケーション
である場合の依存関係情報151gの詳細なデータ構造
を示す図である。オブジェクト種151eがモジュール
である場合には、図3(a)に示されるように、そのモ
ジュールが呼び出されるとき(呼び出す側)の情報(全
ての「呼び出されるアプリケーション」及び「呼び出さ
れるモジュール」の名前)とそのモジュールが呼び出す
とき(呼び出される側)の情報(全ての「呼び出すモジ
ュール」の名前)が格納され、一方、オブジェクト種1
51eがアプリケーションである場合には、図3(b)
に示されるように、そのアプリケーションが呼び出され
るとき(呼び出す側)の情報(全ての「呼び出されるア
プリケーション」の名前)とそのアプリケーションが呼
び出すとき(呼び出される側)の情報(全ての「呼び出
すアプリケーション」及び「呼び出すモジュール」の名
前)が格納される。なお、モジュールは単独で存在する
か、又は、アプリケーションの構成要素として存在する
かどちらかの形態でこの受信装置510内に蓄積され
る。また、プログラムを呼び出す側(「呼び出されるア
プリケーション」、「呼び出されるモジュール」)は、
この受信装置510内に存在するものだけが記述され
る。
【0015】図4は、第1の実施の形態に係るプログラ
ム構成管理装置100の構成を示す機能ブロック図であ
る。この装置100は、受信装置510に必要とされる
オブジェクトを放送センターからダウンロードしたり改
訂することによって健全かつ最新の状態に維持するよう
管理するものであり、EEPROM518に予め格納さ
れたプログラム等によって実現される3つの処理部(プ
ログラムダウンロード部110、プログラム管理部12
0、履歴情報管理部130)と、EEPROM518内
の領域からなる4つの不揮発な記憶部(オブジェクト格
納部140、オブジェクトテーブル記憶部150、履歴
情報記憶部160、ダウンロード予約リスト記憶部17
0)と、RAM517内の領域からなる2つの揮発性の
記憶部(実行テーブル記憶部190、一時記憶バッファ
180)から構成される。なお、本図において、黒矢印
はダウンロードの対象となるプログラム及びデータの流
れを示し、白抜き矢印は制御の流れを示す。
【0016】オブジェクト格納部140は、受信装置5
10のCPU516による実行の対象となり得るオブジ
ェクト(実行可能なプログラム又はデータ)、即ち、受
信装置としての機能を実現するためのオブジェクトを保
持する。図5は、オブジェクト格納部140に格納され
ているプログラム群の様子を示す図である。ここに保持
されるプログラムには、最新バージョンだけでなく、旧
バージョンのものも含まれる。つまり、実行可能である
限り、その時点において有効とされるプログラムだけで
なく、無効とされているプログラムも保持される。これ
は、一旦無効とされたプログラムであっても、再び採用
される(有効とされる)場合に備えるためである。
【0017】なお、「有効」とは、その時点においてこ
の受信装置510のCPU516による実行の対象とし
て選ばれている状態をいい、「無効」とは、実行の対象
としての資格を有するが、その時点においては実行の対
象としては選ばれていない状態をいう。また、「実行可
能」とは、そのプログラムが依存する(呼び出す)全て
のネストレベルにあるプログラム(依存先のプログラム
がさらに依存する先のプログラムを含む)がこのオブジ
ェクト格納部140内に存在することをいう。
【0018】一時記憶バッファ180は、放送センター
から受信されたが未だオブジェクト格納部140に格納
される資格を有しないプログラム、即ち、依存先のプロ
グラムが未だダウンロードされていないために実行不可
能な状態にあるプログラム等を一時的に保持する。な
お、プログラムと異なり、データには依存関係が存在し
ないので、ダウンロードされたデータはすべてオブジェ
クト格納部140に格納される。
【0019】オブジェクトテーブル記憶部150は、オ
ブジェクト格納部140に格納されているオブジェク
ト、即ち、実行可能な状態にあるプログラム及びデータ
に関する管理情報がオブジェクト毎に記録された複数の
オブジェクトテーブルを記憶する。図6は、オブジェク
トテーブル記憶部150に格納されているオブジェクト
テーブルのデータ構造を示す図である。各オブジェクト
テーブル151〜153は、対応するプログラム(又は
データ)名(ID)151a、バージョン151b、プ
ログラム(又はデータ)サイズ151c、先頭アドレス
151d、オブジェクト種151e、有効無効記述15
1f及び依存関係情報151gから構成される。これら
のうち、項目151a〜c、e、gは、図2(b)に示
されるように、そのオブジェクトのヘッダ106に格納
されていた情報と同一である。また、先頭アドレス15
1dは、そのプログラム(又はデータ)が格納されてい
るオブジェクト格納部140及び一時記憶バッファ18
0内での配置位置(先頭のアドレス)を示し、有効無効
記述151fは、そのプログラムが「有効」であるか
「無効」であるかを示す。
【0020】実行テーブル記憶部190は、その時点に
おいて「有効」とされているオブジェクトについての実
行に関する情報を集めた実行テーブル、即ち、オブジェ
クトテーブル記憶部150に登録されたプログラム(又
はデータ)のうち有効無効記述151fが「有効」にセ
ットされているオブジェクトだけに関する情報を記憶す
る。この、実行テーブル記憶部190は、プログラム構
成管理装置100が受信装置510に対して実行の対象
とすべきプログラムを通知するため、即ち、受信装置5
10(オブジェクト格納部140)に保存された多数の
プログラムの中から動作の保証された「有効」なプログ
ラムだけを通知するために用いられる。
【0021】図7は、実行テーブル記憶部190に格納
されている実行テーブルのデータ構造を示す図である。
実行テーブル191〜193は、オブジェクトごとにエ
ントリが作成され、プログラム(又はデータ)名(I
D)191a、プログラム(又はデータ)サイズ191
b、先頭アドレス191cから構成される。実行テーブ
ル191〜193は、オブジェクトテーブル151〜1
53のサブセット、即ち、一部の項目がコピーされたも
のである。
【0022】履歴情報記憶部160は、これまでに受信
装置510にダウンロードされたオブジェクトのダウン
ロード及び改訂に関する履歴情報を蓄積して記憶する。
図8は、履歴情報記憶部160に格納されている履歴情
報のデータ構造を示す図である。履歴情報は、オブジェ
クトテーブル記憶部150に格納されているオブジェク
トごとにエントリテーブル161〜163が作成され、
各テーブルには、図2(b)に示されたオブジェクトヘ
ッダ106と同一の項目161a、b、gの他に、プロ
グラム(又はデータ)状態161c、無効理由161
d、プログラム(又はデータ)ダウンロード日時161
e、プログラム(又はデータ)無効化日時161fが設
けられている。
【0023】プログラム状態161cは、対応するプロ
グラムが「有効」、「無効」、「ダウンロード待機中」
及び「消去可能」のいずれの状態にあるかを示す情報で
ある。ここで、「ダウンロード待機中」とは、そのプロ
グラムがこの受信装置510にダウンロードされること
が予約(要求)されている状態をいい、そのプログラム
自体は未だ受信装置510にダウンロードされていない
が、もし放送センターから送信されてきた場合には本装
置100によって受信装置510にダウンロードされる
べき状態にあることを示す。
【0024】無効理由161dは、そのプログラムが
「無効」にされた原因(次の1〜4)を示し、プログラ
ム状態161cが「無効」にセットされている場合に意
味を持つ。その原因には、新しいバージョンのプログラ
ムがダウンロードされて置き換えられたために実行対象
ではなくなったこと(1)、放送センター(又はユー
ザ)から「無効」にする旨の通知を受けたこと(2)、
そのプログラムがモジュールである場合において、その
モジュールを呼び出す全てのプログラムが消去されたた
めに実行される可能性が無くなったこと(3)、その他
の原因(4)等がある。
【0025】プログラムダウンロード日時161eは、
そのプログラムがこの受信装置510にダウンロードさ
れた日時を示す。プログラム無効化日時161fは、そ
のプログラムが無効とされた日時を示し、プログラム状
態161cが「無効」にセットされている場合に意味を
持つ。なお、履歴情報記憶部160には、受信装置51
0の出荷時においてオブジェクト格納部140に予め格
納されている全てのオブジェクトについては、対応する
エントリ(テーブル)が予め登録されている。
【0026】ダウンロード予約リスト記憶部170は、
受信装置510へのダウンロードが予約されているオブ
ジェクトが登録された予約リストを記憶する。図9は、
ダウンロード予約リスト記憶部170に格納されている
予約リストのデータ構造を示す図である。予約リスト
は、予約されたオブジェクトごとに、エントリテーブル
171〜173が作成され、各テーブルには、プログラ
ム(又はデータ)名(ID)171a、バージョン17
1b、依存関係情報171c及び予約理由171dが格
納される。予約理由171dは、そのプログラムのダウ
ンロードが予約された原因(1〜3)を示し、バージョ
ンアップのため(1)、バージョンダウンのため
(2)、その他の理由(3)のいずれかに対応する。
【0027】プログラムダウンロード部110は、プロ
グラム管理部120からの指示に基づいて、放送センタ
ーから送信されるオブジェクトを受信し、そのオブジェ
クトが一定の条件を満たす場合にのみ一時記憶バッファ
180にダウンロード(展開)する。プログラム管理部
120は、受信装置510が動作の保証された「有効」
なオブジェクトを実行の対象とすることを可能にすべ
く、「有効」なオブジェクトに関する実行テーブル19
1〜193を生成・管理する。これは、受信装置510
との接点としての役割を果たすためであり、受信装置5
10から実行対象とすべきオブジェクトについての動的
な選択要求を受けた場合に、その時点での実行テーブル
191〜193を参照することで最も健全なプログラム
(又はデータ)を受信装置510に教えるためである。
そのために、プログラム管理部120は、プログラム構
成管理装置100の中心的な役割を果たし、プログラム
ダウンロード部110や履歴情報管理部130と通信し
ながら、一時記憶バッファ180に格納されたプログラ
ムやデータをオブジェクト格納部140に書き込むこと
によって実行対象となるオブジェクトを増加させたり、
既にオブジェクト格納部140に格納されているオブジ
ェクトを削除・移動したり、それに伴ってオブジェクト
テーブル151〜153や実行テーブル191〜193
を更新・管理することによってオブジェクトの有効化や
無効化を行う。
【0028】履歴情報管理部130は、プログラム管理
部120からの問い合わせや命令に基づいて、履歴情報
161〜163やダウンロード予約リスト171〜17
3を参照しプログラム管理部120に回答したり、履歴
情報161〜163やダウンロード予約リスト171〜
173を更新・管理する。これによって、オブジェクト
格納部140内に生じたオブジェクト構成の変動につい
ての履歴を残すと共に、バージョンアップやバージョン
ダウン等における関連オブジェクト間の整合性を維持す
ることが可能となる。
【0029】次に、以上のように構成されたプログラム
構成管理装置100の動作について説明する。図10
は、本装置100によるプログラムのダウンロード(バ
ージョンアップ)についての全体的な動作手順を示すフ
ローチャートである。本装置100は、ダウンロードに
おいては3つの主要な処理、即ち、放送センターから送
られてきたプログラムを受信し、一時記憶バッファ18
0に格納するまでの第1の処理(ステップS200〜S
201)と、そのプログラムについて一時記憶バッファ
180からオブジェクト格納部140に移動させると共
に必要なテーブルを更新する第2の処理(ステップS2
02〜203)と、そのプログラムの受信によって、そ
れまで一時記憶バッファ180に一時的に格納されてい
た他のプログラムの中からオブジェクト格納部140に
格納される資格を取得するものが生じるので、それらプ
ログラムについての一時記憶バッファ180からオブジ
ェクト格納部140への移動と必要なテーブルを更新す
る第3の処理(ステップS204〜205)とを実行す
る。
【0030】図11は、図10に示された全体フローに
おける第1の処理(ステップS200〜S201)、即
ち、放送センターからのプログラムを受信してから一時
記憶バッファ180に格納するまでの処理の詳細な手順
を示すフローチャートである。まず、プログラムダウン
ロード部110は、放送センターからのプログラム送信
(送信されてくる旨の通知)を検知する(ステップS
1)。具体的には、CPU516の制御の下で、受信部
512及びデコーダ513を用いて放送センターから送
信される信号をポーリングして見張ることで検知する。
プログラムダウンロード部110は、放送センターから
のプログラム送信を検知すると、続いて、その検知に係
るプログラム(以下、「対象プログラム」と呼ぶ。)の
ヘッダ部分106を受信し、一時記憶バッファ180に
記録する(ステップS2)。一時記憶バッファ180に
記録されたヘッダ情報は、図12(a)に示される通り
である。つまり、ヘッダ情報10は、図2(b)に示さ
れるヘッダ106と同じ構成であり、同一の項目10a
〜10gが記録される。なお、図12(a)〜(g)
は、一時記憶バッファ180に一時的に記録される主な
情報を示し、詳細は後述する。
【0031】次に、プログラムダウンロード部110
は、そのヘッダ情報10に含まれる対応機種10dを参
照することで、この受信装置510に対応したプログラ
ムであるかチェックし、対応する場合にはプログラム管
理部120にダウンロードをすべきかどうかを問い合わ
せる(ステップS3)。その結果、プログラム管理部1
20がダウンロードする必要がないと判断すると(ステ
ップS4)、プログラムダウンロード部110はダウン
ロード処理を中止する(ステップS5)。一方、プログ
ラム管理部120がダウンロードする必要があると判断
すると(ステップS4)、プログラムダウンロード部1
10は、対象プログラムを一時記憶バッファ180に展
開する(ステップS6)。なお、一時記憶バッファ18
0に展開されたプログラムは、図12(b)に示される
ように、プログラム管理部120によってオブジェクト
格納部140に移動されるまで、ここに蓄積して保存さ
れる。
【0032】図13は、図11におけるステップS4の
さらに詳細な手順を示すフローチャートである。ここで
は、ダウンロードの必要性及びモード(態様)が決定さ
れる。ここで、ダウンロードのモードには、「非動作
中」、「一時ダウンロード」、「新規ダウンロード」、
「バージョンアップダウンロード」の4種類があり、い
ずれかに決定される。「非動作中」は、ダウンロードが
行われておらず、放送センターからプログラムが送信さ
れてくるのを待っている状態をいい、「一時ダウンロー
ド」は、依存先のプログラムが全部は揃っていないため
に実行不可能であるが将来的に実行可能となり得るプロ
グラムをダウンロードしている状態をいい、「新規ダウ
ンロード」は、それまで受信装置510に存在しなかっ
た新規な名前の実行可能なプログラムをダウンロードし
ている状態をいい、「バージョンアップダウンロード」
は、受信装置510内に同一名のプログラムが既に存在
するので実行可能であるが、予約されていない新しいバ
ージョンのプログラムをダウンロードしている状態をい
う。
【0033】まず、プログラム管理部120は、プログ
ラムダウンロード部110から対象プログラムについて
ダウンロードする必要性があるか否かの問い合わせを受
けると、その旨を履歴情報管理部130に伝える(ステ
ップS10)。すると、履歴情報管理部130は、一時
記憶バッファ180に記録されたプログラム名(ID)1
0bがダウンロード予約リスト記憶部170に登録され
ているかどうかを調べる(ステップS11)。
【0034】その結果、ダウンロード予約リスト記憶部
170に登録されている場合には、履歴情報管理部13
0はその旨をプログラム管理部120に通知し、プログ
ラム管理部120はその対象プログラムが依存する全て
のプログラムがオブジェクトテーブル記憶部150に登
録されているか調べる(ステップS13)。その結果、
すべての依存先プログラムがオブジェクトテーブル記憶
部150に登録されている場合には、その通知を受けた
履歴情報管理部130は、対象プログラムは実行可能な
プログラムであると判断し、図12(c)に示されるよ
うに、一時記憶バッファ180のダウンロードテーブル
30に「新規ダウンロード」である旨を示すモード情報
31を書き込むと共に(ステップS19)、プログラム
管理部120はプログラムダウンロード部110にダウ
ンロードが可能である旨(Yes)を通知する(ステップ
S14)。
【0035】一方、対象プログラムが依存する全てのプ
ログラムがオブジェクトテーブル記憶部150に登録さ
れているとは判定されなかった場合には(ステップS1
3)、その旨の通知を受けた履歴情報管理部130は、
対象プログラムと、対象プログラムが依存するプログラ
ムのうちオブジェクトテーブル記憶部150にエントリ
のないプログラムとについて、新たなエントリをダウン
ロード予約リスト記憶部170に登録し(ステップS1
7)、一時記憶バッファ180のダウンロードテーブル
30に「一時ダウンロード」である旨を示すダウンロー
ドモード情報31を書き込むと共に(ステップS1
8)、プログラム管理部120はプログラムダウンロー
ド部110にダウンロードが可能である旨(Yes)を通
知する(ステップS14)。このようなプログラムであ
っても、既に一時記憶バッファ180に格納されている
プログラムとの関係で、又は、将来的に実行可能なプロ
グラムになり得るからである。
【0036】また、ステップS11において対象プログ
ラムがダウンロード予約リスト記憶部170に登録され
ていないと判断された場合には、続いて、履歴情報管理
部130は、「バージョンアップダウンロード」の可能
性を調べる(ステップS12〜S13)。具体的には、
履歴情報管理部130は、一時記憶バッファ180に記
録されているプログラム名(ID)10bが履歴情報記憶
部160に登録されているかどうかを調べ、登録されて
いるならば(ステップS12)、さらに、対象プログラ
ムのバージョン10cと履歴情報記憶部160に登録さ
れているバージョン161bとを比較する(ステップS
15)。
【0037】その結果、対象プログラムのバージョン1
0cの方が新しければ(ステップS15)、履歴情報管
理部130は、「バージョンアップダウンロード」に該
当すると判断し、「バージョンアップダウンロード」で
ある旨を示すモード情報をダウンロードテーブル30に
書き込むと共に(ステップS20)、プログラム管理部
120はプログラムダウンロード部110にダウンロー
ドが可能である旨(Yes)を通知する(ステップS1
4)。
【0038】一方、対象プログラムのバージョン10c
が履歴情報記憶部160に登録されているバージョン1
61bと同じか古い場合には(ステップS15)、履歴
情報管理部130は、既にこの受信装置510内に対象
プログラムよりも新しいバージョンのプログラムが存在
するのでダウンロードは不要と判断し、その旨がプログ
ラム管理部120を経てプログラムダウンロード部11
0に伝えられる(ステップS16)。
【0039】同様に、対象プログラムが履歴情報記憶部
160に登録されていない場合には(ステップS1
2)、履歴情報管理部130は、対象プログラムのダウ
ンロードは不要と判断し、その旨がプログラム管理部1
20を経てプログラムダウンロード部110に伝えられ
る(ステップS16)。これは、予約リスト171〜1
73に登録されておらず、かつ、履歴情報161〜16
3にも登録されていないプログラムは、この受信装置5
10と無関係である(バージョンアップのためのプログ
ラムではない)と判断されるからである。
【0040】なお、ダウンロードテーブル30には、初
期値として「非動作中」を示すモード情報が書き込まれ
る。図14は、図10に示された全体フローにおける第
2の処理(ステップS202〜S203)、即ち、一時
記憶バッファ180に展開されたプログラムをオブジェ
クト格納部140に移動させる処理の詳細な手順を示す
フローチャートである。
【0041】プログラム管理部120は、ダウンロード
テーブル30のモード情報を参照することで、いま行わ
れた一時記憶バッファ180への展開が「一時ダウンロ
ード」であるか、そうでないか(「新規ダウンロード」
又は「バージョンアップダウンロード」)を判断する
(ステップS30)。その結果、「一時ダウンロード」
である場合には、現時点においては対象プログラムをオ
ブジェクト格納部140に移動させることができないの
で、プログラム管理部120は、対象プログラムのエン
トリを一時記憶バッファ180内の一時オブジェクト記
憶テーブル40(図12(d))に追加登録し(ステッ
プS44)、その後に、一時オブジェクト記憶テーブル
40に登録されている他のプログラムについての処理
(第3の処理)に移行する(ステップC)。
【0042】なお、ここでの追加登録は、具体的には、
対象プログラムのヘッダ情報10a〜10gを一時オブ
ジェクト記憶テーブル40a〜gにコピーすることによ
って行われる。また、一時オブジェクト記憶テーブル4
0は、一時記憶バッファ180に一時的に保存されてい
る全てのオブジェクトについて各オブジェクトを特定す
る情報(エントリ)を集めたテーブルであり、ヘッダ情
報10a〜gに先頭アドレス40hが追加された項目か
らなる。先頭アドレス40hは、対象プログラムが一時
記憶バッファ180に展開されたときに、プログラムダ
ウンロード部110によってその格納先アドレスが記録
される(ステップS6)。
【0043】一方、いま行われた一時記憶バッファ18
0への展開が「一時ダウンロード」ではない(「新規ダ
ウンロード」又は「バージョンアップダウンロード」)
と判断された場合には(ステップS30)、対象プログ
ラムは実行可能なプログラムと判断し、プログラム管理
部120は、一時記憶バッファ180に展開された対象
プログラムをオブジェクト格納部140に追加格納する
(ステップS31)。そして、その旨の通知を受けた履
歴情報管理部130は、対象プログラムのエントリを履
歴情報記憶部160に追加登録する(ステップS3
2)。具体的には、一時記憶バッファ180に格納され
たヘッダ情報10を参照して、新たな履歴情報161a
〜gを履歴情報記憶部160に書き込む。このとき、プ
ログラム状態161cについては「有効」とし、無効理
由161dについては無意味につき空白とし、プログラ
ムダウンロード日時161eについてはそのときの日時
とし、プログラム無効化日時161fについては無意味
につき空白として、登録する。
【0044】同様に、プログラム管理部120は、対象
プログラムのオブジェクト格納部140への格納に伴う
オブジェクトテーブル記憶部150及び実行テーブル記
憶部190への追加登録を行う(ステップS33)。具
体的には、一時記憶バッファ180に格納されたヘッダ
情報10を参照して、新たなオブジェクトテーブル15
1a〜gをオブジェクトテーブル記憶部150に書き込
むと共に、そのサブセットからなる新たな実行テーブル
191a〜cを実行テーブル記憶部190に書き込む。
このとき、先頭アドレス151d、191cについて
は、プログラム管理部120が対象プログラムを格納し
た際のオブジェクト格納部140上の先頭アドレスと
し、有効無効記述151fについては、対象プログラム
を実行可能にすべく「有効」として、登録する。これに
よって、「新規ダウンロード」又は「バージョンアップ
ダウンロード」によってダウンロードされた対象プログ
ラムが新たに実行の対象として登録されたことになる。
【0045】次に、プログラム管理部120は、ダウン
ロードテーブル30のモード情報を調べ(ステップS3
4)、それが「バージョンアップダウンロード」を示す
ときには、対応する古いバージョンのプログラムを無効
化しておくための処理を行う(ステップS35)。具体
的には、プログラム管理部120は、オブジェクトテー
ブル記憶部150を参照することで、対象プログラムと
同一名のプログラムでそれまで「有効」とされていた古
いバージョンのプログラムを特定し、そのプログラムの
有効無効記述151fを「無効」に書き換え、さらに、
その旨の通知を受けた履歴情報管理部130は、そのプ
ログラムの履歴情報の無効理由161dとして新しいバ
ージョンのプログラムに置き換えられた旨(1)を、プ
ログラム無効化日時161fとしてそのときの日時を、
登録する(ステップS35)。
【0046】続いて、プログラム管理部120は、一時
オブジェクト記憶テーブル40に既に登録されたエント
リがあるか否かチェックし(ステップS36)、エント
リがある場合には、第3の処理を行う(ステップC)。
これは、対象プログラムのダウンロードによって初めて
実行可能となるプログラムが一時記憶バッファ180に
存在する可能性があるためである。
【0047】一方、一時オブジェクト記憶テーブル40
にエントリがない場合には(ステップS36)、一時記
憶バッファ180からオブジェクト格納部140に移動
できる他のオブジェクトは存在しないことになるので、
ダウンロード処理を終了するための処理を行う(ステッ
プS37〜S43)。具体的には、履歴情報管理部13
0は、対象プログラムがダウンロード予約リスト記憶部
170に登録されているかどうかをチェックし(ステッ
プS37)、登録されている場合には、ダウンロード予
約リスト記憶部170中の対象プログラムのエントリ1
71〜173を消去する(ステップS38)。そのとき
に、消去するエントリの予約理由171dが「バージョ
ンダウン」を示しているときには(ステップS39)、
それまで有効とされていた新しいバージョンのプログラ
ムを無効化しておくための処理を行う(ステップS40
〜S41)。つまり、履歴情報管理部130は、履歴情
報記憶部160内のそのプログラムの履歴情報のプログ
ラム状態161cを「無効」とし、プログラム無効化日
時161fをそのときの日時にし、無効理由161dに
放送センターからの通知による旨(2)を記録し(ステ
ップS40)、続いて、その旨の通知を受けたプログラ
ム管理部120は、オブジェクトテーブル記憶部150
内のそのプログラムのオブジェクトテーブルの有効無効
記述151fを「無効」に変更する(ステップS4
1)。
【0048】それら無効化処理を終えた後(ステップS
40〜S41)、及び、ステップS37又はステップS
39において否定的に判断された場合には、続いて、プ
ログラムダウンロード部110は、一時記憶バッファ1
80を元の状態に戻すために、一時記憶バッファ180
上に確保していた対象プログラム20とそのヘッダ情報
10の領域を開放した後に(ステップS42)、ダウン
ロードテーブル30のモード情報を「非動作中」に設定
する(ステップS43)。これによって、プログラムダ
ウンロード処理は終了する。
【0049】図15は、図10に示された全体フローに
おける第3の処理(ステップS204〜S205)、即
ち、一時記憶バッファ180に格納されていたプログラ
ムのうち、対象プログラムのダウンロードによって実行
可能となったものを検索し、オブジェクト格納部140
に移動させる処理の詳細な手順を示すフローチャートで
ある。
【0050】プログラム管理部120は、一時オブジェ
クト記憶テーブル40にエントリが登録されているプロ
グラムのうち対象プログラムに依存しているもののプロ
グラム名40bとバージョン40cとの対を一時記憶バ
ッファ180内の候補プログラムスタック50にプッシ
ュする(ステップS100)。これは、それまで依存先
のプログラム(対象プログラム)が受信装置510内に
存在しないために実行不可能な状態にあったプログラム
が、対象プログラムがダウンロードされたことによっ
て、実行可能な状態に遷移する可能性があるからであ
る。ここで、候補プログラムスタック50とは、図12
(e)に示されるスタック形式(Last In First Out)
のメモリ領域であり、一時オブジェクト記憶テーブル4
0に登録された全てのプログラムについて、実行可能な
状態にある遷移するか否かを順に検討していくためのも
のである。
【0051】次に、プログラム管理部120は、候補プ
ログラムスタック50から、書き込み候補プログラム5
5として、1つのトップエントリ(1組のプログラム名
とバージョン)を取り出し(ステップS101)、この
書き込み候補プログラム55が依存する全てのプログラ
ムが実行可能であるか否かを判断する(ステップS10
2〜ステップE)。ここで、書き込み候補プログラム5
5とは、オブジェクト格納部140に書き込まれる資格
を有するか否か、即ち、実行可能な状態にあるか否かの
検討対象となっている1個のプログラムをいう。
【0052】具体的には、プログラム管理部120は、
書き込み候補プログラム55の「書き込みチェック」の
真偽を判断し(ステップS102)、「偽」の場合に
は、実行可能性の判断が未だ行われていないと判断し、
その判断を開始する(ステップE)。ここで、「書き込
みチェック」とは、図12(f)に示されるように、一
時オブジェクト記憶テーブル40に登録されているプロ
グラムそれぞれに対応して設けられたフラグであり、実
行可能(書き込み可能)であると判断された旨を示す
「真」、及び、その判断が未だ完了していない旨を示す
「偽」のいずれかに設定される。
【0053】図16は、対象となっている書き込み候補
プログラム55についての実行可能性をチェックする手
順を示すフローチャートである。つまり、ここでは、書
き込み候補プログラム55が依存する全てのネストレベ
ルにあるプログラム(依存先のプログラムがさらに依存
するプログラムも含む)が受信装置510(オブジェク
ト格納部140又は一時記憶バッファ180)内に存在
するか否かをチェックしている。
【0054】そのために、まず、プログラム管理部12
0は、一時オブジェクト記憶テーブル40内の書き込み
候補プログラム55の依存関係情報40gを参照するこ
とで、その書き込み候補プログラム55が直接に(1世
代だけネストして)依存する全てのプログラムの名前と
バージョンとの組を一時記憶バッファ180内の一時ス
タック70にプッシュする(ステップS120)。ここ
で、一時スタック70とは、図12(g)に示されるス
タック形式のメモリ領域であり、書き込み候補プログラ
ム55が依存する全てのプログラムについて実行可能な
状態にあるか否かを順に検討していくためのものであ
る。
【0055】次に、プログラム管理部120は、書き込
み候補プログラム55の実行可能性を検討するために、
まず、書き込み候補プログラム55が直接に依存する全
てのプログラムが受信装置510(一時記憶バッファ1
80又はオブジェクト格納部140)内に存在するか否
か調べる(ステップS121)。具体的には、一時オブ
ジェクト記憶テーブル40内の書き込み候補プログラム
55の依存関係情報40gに登録された依存先の全ての
プログラムが一時オブジェクト記憶テーブル40及びオ
ブジェクトテーブル記憶部150のいずれかに登録され
ているか調べる。
【0056】その結果、依存先の全てのプログラムにつ
いて存在が確認できた場合には、その書き込み候補プロ
グラム55の「一時チェック」を「真」に設定する(ス
テップS122)。ここで、「一時チェック」とは、図
12(f)に示されるように、一時オブジェクト記憶テ
ーブル40に登録されているプログラムそれぞれに対応
して設けられたフラグ62であり、そのプログラムが直
接に依存する全てのプログラムが受信装置510(一時
記憶バッファ180又はオブジェクト格納部140)内
に存在する旨を示す「真」、及び、そうでない「偽」の
いずれかに設定される。つまり、「一時チェック」が
「真」であれば、そのプログラムが直接に依存する全て
のプログラムが受信装置510内に存在するので、その
プログラムは実行可能な状態にある可能性がある(依存
先のプログラムが実行可能なプログラムであれば実行可
能である)と言える。
【0057】そのために、続いて、プログラム管理部1
20は、それら依存先の全てのプログラムについて、一
時チェックが「真」に設定されているか、または、オブ
ジェクト格納部140上に存在するかどうかをチェック
する(ステップS123)。具体的には、それら依存先
の全てのプログラムについて一時チェック62の値及び
オブジェクトテーブル151〜153への登録の有無を
調べる。これは、依存先のプログラムについて一時チェ
ックが「真」に設定されていれば、さらにその依存先の
プログラムについての検討を繰り返すことで、そのプロ
グラムが実行可能な状態にあることが確定され得るこ
と、また、オブジェクト格納部140上に存在するプロ
グラムは実行可能であることが確定していることによ
る。
【0058】その結果、書き込み候補プログラム55が
依存する全てのプログラムについて一時チェックが
「真」に設定されているか、または、オブジェクト格納
部140上に存在する場合には、次に、それら依存先の
プログラムの実行可能性について検討するために、一時
スタック70に格納されているプログラムについて順に
実行可能性を検討していく(ステップS127、S12
5、S126)。
【0059】一方、書き込み候補プログラム55が依存
する全てのプログラムについて一時チェックが「真」に
設定されているか、または、オブジェクト格納部140
上に存在するとは判断されなかった場合には(ステップ
S123)、それら依存先のプログラムのうち一時チェ
ックが「真」ではなく、かつ、オブジェクト格納部14
0には格納されていないもの全てについて、それらプロ
グラムの名前とバージョンとの組を一時スタック70に
追加してプッシュした後に(ステップS124)、一時
スタック70に格納されているプログラムの実行可能性
の検討に移る(ステップS125〜S127)。これ
は、それら依存先のプログラムについて一時チェックが
「真」に設定される可能性があるからである。
【0060】一時スタック70に積まれたプログラムに
対して、プログラム管理部120は、一時スタック70
が空になるまで順に読み出して新たな書き込み候補プロ
グラムとし(ステップS125〜S127)、最初の書
き込み候補プログラム55に対する実行可能性の判断処
理と同様の処理を繰り返す(ステップS121〜S12
7)。そして、一時スタック70が空になった場合には
(ステップS127)、最初の書き込み候補プログラム
55について、依存する全てのネストレベルにあるプロ
グラムが実行可能であることが確認できたことになるの
で、この実行可能性のチェックを終える(ステップ
H)。
【0061】一方、いずれかの書き込み候補プログラム
55について、依存先の全てのプログラムが受信装置5
10内に存在するとは判断されなかった場合には(ステ
ップS121)、最初に書き込み候補プログラム55と
されたプログラムについて、もはや実行不可能であるこ
とが確定するので、一時スタック70を開放した後に、
それまでに「真」に設定された一時チェックを解除
(「偽」に設定)し(ステップS128)、実行可能性
のチェックを終える(ステップH)。これは、あるプロ
グラムが依存する全てのネストレベルにあるプログラム
のうちひとつでも受信装置510内に存在しない場合に
は、そのプログラムは実行不可能となるからである。
【0062】以上のようにして、候補プログラムスタッ
ク50から取り出された1個の書き込み候補プログラム
55についての実行可能性のチェックが終了すると(ス
テップH)、プログラム管理部120は、少なくと一つ
のプログラムについて一時チェック62が「真」に設定
されたものがあるか否か判断する(ステップS11
2)。その結果、一時チェック62が「真」に設定され
たプログラムが存在する場合には、それらプログラムは
実行可能な状態にあることが確定しているので、対応す
る書き込みチェック61を「真」に設定すると共に一時
チェック62を解除(「偽」に設定)した後に(ステッ
プS113)、候補プログラムスタック50内の残る他
のプログラムについて、候補プログラムスタック50が
空になるまで順次に実行可能性のチェックを繰り返す
(ステップS101〜S103、S120〜S12
8)。
【0063】候補プログラムスタック50が空になった
場合には(ステップS103)、対象プログラムがダウ
ンロードされることで実行可能な状態になり得る一時記
憶バッファ180内のプログラム全てについて実行可能
性を調べ終えたことになるので、最後に、「一時ダウン
ロード」としてダウンロードされて一時記憶バッファ1
80に保存されていた対象プログラムについてのオブジ
ェクト格納部140への書き込み可能性を調べる(ステ
ップS104〜S105)。
【0064】具体的には、プログラム管理部120は、
ダウンロードテーブル30を参照することで対象プログ
ラムが「一時ダウンロード」としてダウンロードされた
ものか判断し(ステップS104)、そうである場合に
は、その依存関係情報10g、一時オブジェクト記憶テ
ーブル40及び書き込みチェック61等を参照すること
で、対象プログラムが直接に依存するプログラムのうち
オブジェクト格納部140に格納されていないもの全て
について書き込みチェック61が「真」に設定されてい
るか確認する(ステップS105)。これは、対象プロ
グラムが依存する全てのプログラムについて、オブジェ
クト格納部140に格納されているか、実行可能である
かを確認するためである。
【0065】その結果、それら全てのプログラムについ
て書き込みチェック61が「真」に設定されているので
なければ、対象プログラムはオブジェクト格納部140
に格納することができないので、候補プログラムスタッ
ク50を開放すると共に書き込みチェック61を解除
(「偽」に設定)し(ステップS111)、ダウンロー
ド処理を終える(ステップD〜S43)。
【0066】一方、対象プログラムが「一時ダウンロー
ド」でない場合や(ステップS104)、「一時ダウン
ロード」であるが依存先の全てのプログラムについてオ
ブジェクト格納部140に格納されているか書き込みチ
ェック61が「真」に設定されている場合には(ステッ
プS105)、それら書き込みチェックが「真」に設定
されたプログラムについて一時記憶バッファ180から
オブジェクト格納部140への移動及びそれに伴う各種
テーブル情報の更新を行う(ステップS106〜S11
0)。
【0067】具体的には、まず、プログラム管理部12
0は、書き込みチェックが「真」に設定されているプロ
グラム全てをオブジェクト格納部140に追加書き込み
を行う(ステップS106)。そして、その追加書き込
みを反映させるために、履歴情報管理部130は、それ
らプログラムについてのエントリを履歴情報記憶部16
0に記録する(ステップS107)。具体的には、プロ
グラム名(ID)161a、バージョン161b、プログ
ラム作成日時161gについては一時オブジェクト記憶
テーブル40に記録されている内容を記録し、プログラ
ム状態161cについては「有効」を記録し、無効理由
161d及びプログラム無効化日時161fについては
空白とし、プログラムダウンロード日時161eについ
てはその時点の日時を記録する。
【0068】同様に、上記追加書き込みを反映させるた
めに、プログラム管理部120は、それらプログラムに
ついてのエントリをオブジェクトテーブル記憶部150
に追加記録すると共に実行テーブル記憶部190の更新
を行う(ステップS108)。具体的には、オブジェク
トテーブル151〜153のプログラム名(ID)151
a、バージョン151b、サイズ151c、オブジェク
ト種151e、依存関係情報151gについては一時オ
ブジェクト記憶テーブル40に記録されている値をそれ
ぞれ記録し、先頭アドレス151dについては、ステッ
プS106においてプログラム管理部120が書き込ん
だオブジェクト格納部140上のアドレスを記録し、有
効無効記述151fについては、対象プログラムをダウ
ンロードしたことによる受信装置510の機能拡張をす
ぐに実施するために「有効」と記録する。そして、それ
ら追加記録に対応する実行テーブル191〜193が作
成されるよう実行テーブル記憶部190を更新する。
【0069】続いて、プログラム管理部120は、書き
込みチェックが「真」に設定されているプログラムに対
応する一時オブジェクト記憶テーブル40のエントリと
一時記憶バッファ180上の全ての領域を開放した後に
(ステップS109)、オブジェクトテーブル記憶部1
50に追加記録したプログラムが依存するプログラムに
ついて、そのプログラムのオブジェクトテーブルの依存
関係情報151gにおける呼び出す側の項目を更新し
(ステップS110)、ダウンロード処理を終える(ス
テップD〜S43)。
【0070】以上のように、このプログラム構成管理装
置100によって、放送センターから送信されてきた新
しいバージョンのプログラムがダウンロードされ、その
実行可能性がチェックされた後に古いバージョンのプロ
グラムと置き換えられると共に、それに伴って実行可能
となったプログラムについてもバージョンアップが行わ
れる。そして、置き換えられた古いバージョンのプログ
ラムは破棄されることなくそのまま受信装置510に蓄
積して保存され、このような受信装置510内で生じた
実行可能なプログラムの構成の変化が履歴情報161〜
163に反映される。
【0071】図17は、現行バージョンのプログラムに
不具合が発見された場合等において、履歴を遡及してプ
ログラムのバージョンを過去の安全なバージョンへ戻す
場合のプログラム構成管理装置100の動作手順を示す
フローチャートである。まず、プログラムダウンロード
部110が放送センターからプログラムの遡及命令、ま
たは、入出力部515を介してユーザからの遡及命令を
受信する(ステップS70)。遡及命令によって受信装
置510に与えられる情報(変更情報80)は、図18
に示される通りであり、プログラム名(ID)80a、無
効化対象バージョン80b、変更対象バージョン80
c、対応機種80d(放送センターからの命令の場合に
のみ意味をなす)である。なお、履歴の遡及に関する説
明においては、上記プログラム名(ID)80aを持つプ
ログラム(バージョンには依存しない)を対象プログラ
ムと呼ぶ。
【0072】ここで、無効化対象バージョン80bと
は、対象プログラムのうち無効化の対象とされているバ
ージョンをいい、変更対象バージョン80cとは、変更
先のバージョンとなり得る最新のバージョン、即ち、対
象プログラムと同一名のプログラムのうち安全に動作す
ることが確認されているバージョンの最新のものをい
う。つまり、実行対象となる対象プログラムのバージョ
ンを無効化対象バージョン80bから変更対象バージョ
ン80c以前のものに遡及させることによって、対象プ
ログラムは安全に動作するものとする。
【0073】プログラムダウンロード部110はプログ
ラム変更命令を受け取ると(ステップS70)、その命
令に伴って送信されてきた変更情報80を受信し一時記
憶バッファ180に展開する(ステップS72)。続い
て、その旨の通知を受けたプログラム管理部120は、
対象プログラムの無効化対象バージョン80bがオブジ
ェクトテーブル記憶部150に登録されており、かつ、
その有効無効記述151fが「有効」に設定されている
かをチェックする(ステップS72)。
【0074】その結果、対象プログラムの無効化対象バ
ージョン80bがオブジェクトテーブル記憶部150に
登録されていないか、登録されているが有効無効記述1
51fが「無効」に設定されている場合には、無効化す
る必要が無いので履歴遡及を中止する。なお、対象プロ
グラムの無効化対象バージョン80bがオブジェクトテ
ーブル記憶部150に登録され、その有効無効記述15
1fが「無効」に設定されている場合には、その旨の通
知を受けた履歴情報管理部130は、履歴情報記憶部1
60のそのプログラムのエントリ中の無効理由161d
の項目に、放送センター(ユーザ)からの無効化命令に
よる旨(2)を記入する。
【0075】一方、対象プログラムの無効化対象バージ
ョン80bがオブジェクトテーブル記憶部150に登録
されており、かつ、その有効無効記述151fが「有
効」に設定されている場合には(ステップS72)、プ
ログラム管理部120は、対象プログラムの依存関係を
調べる(ステップS73)。具体的には、無効化対象バ
ージョン80bの対象プログラムに対応するオブジェク
トテーブルの依存関係情報151gに、少なくとも1個
のプログラムが登録されているか否か検査する。
【0076】その結果、依存関係が存在しない場合に
は、履歴情報管理部130は、対象プログラムだけにつ
いて、変更対象バージョン80c以前で、かつ、最新の
バージョンのものに遡及させるために、履歴情報131
〜133を更新する(ステップS74)。具体的には、
履歴情報記憶部160に登録された全ての対象プログラ
ムの履歴情報161〜163から、変更対象バージョン
80cを含み、それよりも古いバージョンの中で最も新
しいバージョン161b(以下、「遡及先バージョン」
という。)を持つ履歴情報を特定し、その履歴情報のプ
ログラム状態161cを「有効」に変え、無効理由16
1dを空白に変更する。そして、無効化対象バージョン
80bの履歴情報のプログラム状態161cを「無効」
にし、無効理由161dを放送センター(ユーザ)から
の無効化命令による旨(2)を記録し、プログラム無効
化日時161fにその日時を記録する。
【0077】続いて、履歴情報管理部130から遡及先
バージョンの通知を受けたプログラム管理部120は、
無効化対象バージョン80bの対象プログラムに対応す
るオブジェクトテーブルの有効無効記述151fを「無
効」にし、遡及先バージョンの対象プログラムに対応す
るオブジェクトテーブルの有効無効記述151fを「有
効」にした後に、対象プログラムの実行テーブル191
のエントリを、無効化対象バージョン80bのものから
遡及先バージョンのものに変更する(ステップS7
7)。これによって、無効化対象バージョン80bの対
象プログラムは、動作保証された変更対象バージョン8
0c以前の遡及先バージョンにバージョンダウンされる
と共に、それに伴って生じた受信装置510内部のプロ
グラム構成の変化が各種テーブルに反映される。
【0078】一方、対象プログラムに依存関係が存在す
る場合には(ステップS73)、対象プログラムと依存
関係を持つ全てのプログラムについても、動作が保証さ
れたバージョン、即ち、変更対象バージョン80cの対
象プログラムが有効とされていた時期又はそれ以前に動
作していたバージョンに遡及させる(ステップS75〜
S76)。
【0079】そのために、まず、履歴情報管理部130
は、対象プログラムと直接に依存関係を持つプログラム
のうち、対象プログラムの変更対象バージョン80cが
無効化された日時以降にダウンロードされたプログラム
を特定し、それらプログラムを変更対象プログラムとす
る。ここで、「変更対象プログラム」とは、放送センタ
ー(又はユーザ)から指定された対象プログラムのバー
ジョンの遡及に伴って新たにバージョンを遡及させる必
要が生じたプログラムをいう。
【0080】具体的には、対象プログラムのオブジェク
トテーブルの依存関係情報151gに登録された全ての
プログラムについて、各プログラムの履歴情報のダウン
ロード日時161eと、変更対象バージョン80cの対
象プログラムの履歴情報のプログラム無効化日時161
fとを比較し、そのダウンロード日時161eがプログ
ラム無効化日時161f以降となっているプログラムに
ついて、対象プログラムと同様の変更情報80a〜cを
抽出し、一時的に保存する。つまり、依存関係情報15
1gに登録されたプログラムのプログラム名151a及
びバージョン151bをそれぞれ変更対象プログラムの
プログラム名80a及び無効化対象バージョン80bと
し、依存関係情報151gに登録されたプログラムと同
一名のプログラムのうち、変更対象バージョン80cの
対象プログラムが無効化された日時161fの直前にダ
ウンロードされたダウンロード日時161eを持つ履歴
情報のバージョン151bを変更対象プログラムの変更
対象バージョン80cとする。
【0081】続いて、履歴情報管理部130は、上記ス
テップS75において新たに変更対象プログラムとなっ
たプログラムについて、上記ステップS73での判断と
同様に、そのプログラムと直接に依存関係を持つプログ
ラムが存在するか調べ(ステップS76)、存在する場
合には、それらプログラムについて再び新たな変更対象
プログラムとすべきかの検討を繰り返す(ステップS7
5)。つまり、変更対象プログラムと依存関係を持ち、
かつ、変更対象プログラムを遡及することで動作保証が
されなくなる全てのプログラムが変更対象プログラムと
して追加されるまで繰り返す。
【0082】このようにして、対象プログラムと依存関
係を持つ全てのネストレベルにあるプログラムについて
の検討を終えると(ステップS76)、上記ステップS
75で変更対象プログラムとされた全てのプログラムに
ついて、上記対象プログラムのバージョン遡及と同様の
テーブル更新処理を行う(ステップS74、S77)。
つまり、全ての変更対象プログラムについて、順次に、
無効化対象バージョン80bを変更対象バージョン80
c以前で、かつ、最新のバージョンのものに遡及させる
ために、履歴情報管理部130は履歴情報131〜13
3を更新し(ステップS74)、プログラム管理部12
0はオブジェクトテーブル151〜153及び実行テー
ブル191〜193を更新する(ステップS77)。こ
れによって、無効化対象バージョン80bの対象プログ
ラムが他のプログラムと依存関係を持つ場合であって
も、対象プログラムだけでなく、対象プログラムと依存
関係を持つ全てのネストレベルにあるプログラムについ
ても動作保証されたバージョンにまで遡及される。これ
によって、対象プログラムだけをバージョン遡及した場
合に生じるバージョンの不整合による不具合の発生が回
避される。
【0083】図19は、本プログラム構成管理装置10
0がプログラムの配置変更処理を行う際の動作手順を示
すフローチャートである。ここで、「プログラムの配置
変更処理」とは、オブジェクト格納部140の空き容量
が少なくなった時にオブジェクト格納部140内から不
必要なプログラムを無効化することによって、新たに利
用可能な領域をオブジェクト格納部140内に確保する
処理である。
【0084】まず、プログラム管理部120は、オブジ
ェクト格納部140が一定量以上使用されていたことを
検知すると(ステップS130)、この配置変更処理が
必要になったと判断し、履歴情報管理部130を通じ
て、履歴情報記憶部160内のプログラム状態161c
が「消去可能」に設定されているプログラムを探す(ス
テップS131)。
【0085】ここで、プログラム状態161cが「消去
可能」に設定されるのは、次の場合である。つまり、あ
るプログラムの動作の安全が完全に保証された場合に
は、放送センターが各受信装置510にそのプログラム
のバージョンよりも古いバージョンのプログラムに対し
消去可能の信号を送信する。この信号を受けた受信装置
510は、完全に安全が保証されたバージョンのプログ
ラムが受信装置510内に存在するならば、履歴情報記
憶部160における前記プログラムよりも古いバージョ
ン161bを持つプログラムのプログラム状態161c
を「消去可能」に設定する。以下、履歴情報記憶部16
0内のプログラム状態161cが「消去可能」に設定さ
れているプログラムを「消去可能なプログラム」とい
い、そうでないプログラムを「消去不可能なプログラ
ム」という。
【0086】消去可能なプログラムを探し出すと、プロ
グラム管理部120は、オブジェクトテーブル151〜
153を参照することで、オブジェクト格納部140内
に消去可能なプログラムだけで構成されたブロックが存
在するかどうかを調べる(ステップS131)。ここ
で、「ブロック」とは、オブジェクト格納部140を構
成する一定サイズの複数の領域をいい、一括消去する際
の単位である。つまり、プログラム管理部120は、オ
ブジェクト格納部140内のオブジェクトをブロック単
位で消去するものとする。
【0087】その結果、そのような不要なブロックが存
在する場合にはプログラム管理部120はそれらブロッ
クを全て消去した後に消去したブロックのひとつを、ま
た、そのような不要なブロックが存在しない場合には最
新にプログラムの書き込みを行ったブロックを、書き込
み先ブロックとして特定する(ステップS132)。こ
れは、消去可能なオブジェクトと満たさないオブジェク
トが混在したブロック(以下、「混在ブロック」とい
う。)を無くして整理するために、そのブロックから消
去不可能なオブジェクトだけを取り出して移動するため
である。
【0088】そのために、プログラム管理部120は、
オブジェクト格納部140内の全ての混在ブロックを特
定し、それら全ての混在ブロックを順次消去していく処
理を繰り返す(ステップS133〜S139)。具体的
には、まず、プログラム管理部120は、全ての混在ブ
ロックを特定し、それら混在ブロック中の中から、消去
不可能なオブジェクトの合計サイズが最も小さいものを
コピー元ブロックとして特定する(ステップS13
3)。そして、プログラム管理部120は、コピー元ブ
ロック中の消去不可能なオブジェクトをコピー先ブロッ
クにコピーすることが可能かどうか(コピー先ブロック
に必要なサイズの空き容量が残されているか)調べる
(ステップS134)。もしコピーが可能であれば、そ
のプログラムをコピー先ブロックにコピーし(ステップ
S135)、その旨を反映しておくために、コピーした
プログラムのオブジェクトテーブルの先頭アドレス15
1dをコピー先ブロックの先頭アドレス151dに変更
する(ステップS136)。
【0089】一方、消去不可能なオブジェクトについて
コピー先ブロックにコピーすることができない場合には
(ステップS134)、新たなコピー先ブロックを確保
するために、プログラム管理部120は他に空のブロッ
クがあるかどうかを調べ(ステップS140)、空ブロ
ックが存在する場合には、それらから1つの空ブロック
を選択し、それを新たなコピー先ブロックとして特定す
る(ステップS141)。
【0090】一方、空ブロックが存在しなかった場合に
は(ステップS140)、一時的にコピー先ブロックを
作成する(ステップF)。図20は、一時的に空ブロッ
クを作成する手順を示すフローチャートである。まず、
プログラム管理部120は、オブジェクト格納部140
を構成するブロックの中から消去不可能なプログラム数
が最も少ないブロックを1つ選択し、これを対象ブロッ
クとする(ステップS160)。そして、その対象ブロ
ックから消去不可能なオブジェクトを退避させるため
に、一時記憶バッファ180にコピーすると共に、その
オブジェクトを特定するための情報を一時記憶バッファ
180上に記録する(ステップS161)。つまり、オ
ブジェクトテーブル151〜153を参照することで、
そのオブジェクトのオブジェクト名、バージョン(その
オブジェクトがプログラムの場合)、サイズ及び一時記
憶バッファ180上のアドレスを一時記憶バッファ18
0に記録し後に、対象ブロックを消去し、これを空ブロ
ックとする(ステップS162)。
【0091】このようにして、一時的に新たな空ブロッ
クが作成される。なお、ステップS130において、プ
ログラム管理部120がプログラム配置変更処理を開始
する際のしきい値を小さくしておくことで(ステップS
130)、このような一時的な空ブロックを作成する頻
度を抑えることが出来る。このようにして、プログラム
管理部120は、コピー元ブロックに消去不可能なオブ
ジェクトが無くなるまで、それらオブジェクトのコピー
を繰り返す(S134〜S137,S140〜S14
1)。そして、コピー元ブロック中に消去不可能なオブ
ジェクトが存在しなくなった後に、そのコピー元ブロッ
クを消去し、これによって、新たな空のブロックを作成
する(ステップS138)。
【0092】そして、プログラム管理部120は、オブ
ジェクト格納部140中に混在ブロックが無くなるま
で、順次に混在ブロック中の消去不可能なオブジェクト
の移動とその混在ブロックの消去を繰り返す(S134
〜S139、S140〜S141)。最後に、混在ブロ
ックが存在しなくなった後に、一時的に退避していたオ
ブジェクトを復旧するための処理を行う(ステップS1
42〜S144)。具体的には、プログラム管理部12
0は、一時的な空ブロックを作成したか否か判断し(ス
テップS142)、作成していない場合にはプログラム
配置変更処理を終了するが、作成していた場合には、そ
の作成に際して一時記憶バッファ180に退避していた
オブジェクトをコピー先ブロック(容量が足りない場合
は、他の空ブロック)にコピーした後に(ステップS1
43)、そのコピーしたオブジェクトに対して、それが
プログラムであればオブジェクトテーブル記憶部150
のエントリの先頭アドレス151dを、いまコピーした
オブジェクト格納部140上のアドレスに変更する(ス
テップS144)。これによって、一時的に退避されて
いた全てのオブジェクトをオブジェクト格納部140の
空きブロックに復帰させ、プログラム配置変更処理を終
了する。
【0093】このように、消去可能なオブジェクトだけ
からなるブロックだけでなく、消去不可能なオブジェク
トが混在したブロックについても、消去不可能なオブジ
ェクトを移動したり退避したりすることによって、消去
可能なオブジェクトだけからなるブロックにした後に、
そのブロックをブロックごと一括消去している。これに
よって、オブジェクト格納部140内から混在ブロック
のょうな使用効率の悪いブロックを無くしてしまうこと
ができるので、オブジェクト格納部140の記憶領域は
有効に活用される。
【0094】以上のように、本実施の形態によれば、放
送センターから送信されてきたプログラムを受信装置5
10がダウンロードする際に、新しいバージョンのプロ
グラムで古いバージョンのものを置換してしまうのでは
なく、蓄積してオブジェクト格納部140に格納し、そ
のダウンロードについての履歴をとることとしているの
で、過去のあるバージョンへの遡及が容易に行われる。
つまり、互いに依存する複数のモジュールからなるアプ
リケーションをダウンロードする場合であっても、履歴
を取りながらダウンロードしているため、各モジュール
間の依存関係の整合性を保ちつつ過去のあるバージョン
への遡及することが可能となる。
【0095】また、本実施の形態によれば、放送センタ
ーは、プログラムを送信し各受信装置510にダウンロ
ードさせた後に、受信装置510に対して指示するだけ
で、受信装置510においてプログラムのバージョンを
遡及させたり、特定のプログラムを消去させたりするこ
とが可能となる。これによって、放送センター側におけ
るプログラム送信後のプログラムの構成管理やバージョ
ン管理が不要となり、その負荷が軽減される。 (第2の実施の形態)次に、ダウンロードに伴う受信装
置510の動作の安全性を確保するために、プログラム
ダウンロード部110が一時記憶バッファ180に展開
されたプログラムに対し、オブジェクト格納部140に
書き込む前にテスト実行を行い、動作確認を終えてから
オブジェクト格納部140に書き込む本発明の第2の実
施の形態に係るプログラム構成管理装置200について
説明する。
【0096】図21は、第2の実施の形態に係るプログ
ラム構成管理装置200の構成を示す機能ブロック図で
ある。本装置200は、第1の実施の形態のプログラム
構成管理装置100にテスト実行部220が追加された
構成を有し、図1に示される受信装置510に内蔵され
ている点において第1の実施の形態と共通する。テスト
実行部220は、一時記憶バッファ180に展開された
プログラムをテスト実行するものであり、EEPROM
518に予め格納されたプログラム等によって実現さ
れ、主に、以下に示す5つの機能を持つ。 1.指定された引数を与えて指定されたプログラムを実
行する 2.指定されたプログラム間の通信内容を読み取る 3.指定されたプログラム間の通信内容を変更する 4.指定されたプログラムの返り値を読み取る 5.指定されたプログラムの実行を強制終了する また、本実施の形態では、第1の実施の形態に対して以
下に示す5点の変更が加えられている。 (1)放送センターがアプリケーションと共にテストケ
ースを送信する (2)オブジェクト格納部140にアプリケーションを
記録する際にテストケースも同時に記録する (3)履歴情報記憶部160にテスト実行に関する情報
を追加する (4)一時記憶バッファ180にプログラムを一時的に
ダウンロードする際にテストケースも同時に格納する (5)一時オブジェクト記憶テーブル40にテストケー
ス情報を追加する 以下、これら第1の実施の形態との相違点について詳細
に説明する。
【0097】[上記(1)の相違点について]本実施の
形態では、テスト実行におけるテスト条件と合否の判定
基準を指定する情報としてテストケースという情報を用
いている。個々のテストケースは、(i)対象プログラ
ムへの引数、(ii)前記引数を与えた場合に期待される
返り値、及び、(iii)実行に要する時間、を記述した
情報である。テスト実行部220は、このようなテスト
ケースで指定された引数を与えて対象プログラムを実行
することでテスト実行を行う。
【0098】図22(a)は、バージョンアップのため
に放送センターから送信されてくる情報であり、第1の
実施の形態における図2(a)と比較して分かるよう
に、オブジェクトヘッダ106及びオブジェクト本体1
07だけでなく、そのオブジェクトをテストするための
テストケースヘッダ206及びテストケース本体207
が一体となっている。テストケースヘッダ206は、図
22(b)に示されるように、テストケースサイズ20
6a、入力値サイズ206b及び出力値サイズ206c
からなる。テストケースサイズ206aはテストケース
本体207全体のサイズを、入力値サイズ206bはテ
スト実行のために対象プログラムに入力させる引き数の
サイズを、出力値サイズ206cは期待される返り値の
サイズを、バイト単位で表した数値である。テストケー
ス本体207は、図22(c)に示されるように、その
オブジェクト(プログラム)に与えられる引数207
a、期待される返り値207b及び期待される実行時間
207cからなる。
【0099】なお、実行時間207cに関しては、受信
装置510の能力によって異なるので、絶対的な値でな
く相対的な値が用いられている。 [上記(2)の相違点について]モジュールをダウンロ
ードしバージョンアップする際には、そのモジュール単
体ではなく、そのモジュールに依存するアプリケーショ
ンを実行することによって、総合的にモジュールの安全
性をテストする必要がある。そのために、アプリケーシ
ョンに関しては、そのアプリケーションをテストするた
めのテストケースをアプリケーション本体と一緒にオブ
ジェクト格納部140に記録しておくこととしている。
つまり、既に受信装置510内に存在するアプリケーシ
ョンが依存するモジュールが新たにダウンロードされた
場合に備えるためである。
【0100】[上記(3)の相違点について]オブジェ
クト格納部140にテストケースを格納することに伴
い、そのための管理情報を受信装置510内に記憶して
おく必要が生じる。そのために、本実施の形態では、履
歴情報記憶部160に、オブジェクト格納部140に格
納されているテストケースに関する情報(以下、「テス
トケース項目」という。)として、入力値サイズ、出力
値サイズ及びテストケースアドレスの3つの情報を格納
することとしている。ここで、入力値サイズと出力値サ
イズに関しては図22(b)に示された入力値サイズ、
出力値サイズと同一の値である。テストケースアドレス
は、オブジェクト格納部140上のテストケースが存在
する先頭アドレスである。
【0101】また、一度テスト実行に失敗した(不合格
と判定された)プログラムについて、その旨を履歴情報
記憶部160に残しておくことで、動作が保証されてい
ないプログラムをダウンロードしてしまうことを避ける
ことが可能となる。そのために、本実施の形態では、履
歴情報161〜163のプログラム状態161cに「ダ
ウンロードしない」を加えている。
【0102】具体的には、一時記憶バッファ180に展
開したプログラムのテスト実行に失敗した場合には、履
歴情報管理部130は、履歴情報記憶部160にそのプ
ログラムに対応するエントリ(履歴情報)を加え、その
履歴情報のプログラム状態161cを「ダウンロードし
ない」に設定する。そして、図13に示されたダウンロ
ードの可否判断において(ステップS15)、履歴情報
管理部130は履歴情報記憶部160に登録されている
対象プログラムのエントリのプログラム状態161cを
調べ、「ダウンロードしない」であった場合には、プロ
グラム管理部120に対してダウンロードを許可しない
(no)旨の返答をすることとしている(ステップS1
6)。このような判断処理によって、既にテスト実行に
失敗したプログラムを再びダウンロードする無駄を回避
することができる。
【0103】[上記(4)及び(5)の相違点につい
て]一時記憶バッファ180にプログラム本体107だ
けでなくテストケース本体207も一時的に記録するこ
ととしている。これは、後にそのプログラムが依存する
プログラムをダウンロードした際に、依存元のプログラ
ムを含む全体的なテスト実行が可能となるからである。
【0104】そして、テストケース本体を一時的に記録
するために、そのための管理情報も記録しておく必要が
ある。そのために、一時オブジェクト記憶テーブル40
にテストケースの情報、即ち、入力値サイズ、出力値サ
イズ、テストケースアドレスを加えている。ここで、入
力値サイズと出力値サイズに関しては図22(b)に示
された入力値サイズ、出力値サイズと同一の値である。
テストケースアドレスは、一時記憶バッファ180上の
テストケースが存在する先頭アドレスである。
【0105】図23は、プログラムダウンロード部11
0によって一時記憶バッファ180に展開された対象プ
ログラムに対して、テスト実行部220がテスト実行を
行う際の手順を示すフローチャートである。なお、テス
ト実行を開始するにはその対象プログラムが予め実行テ
ーブル記憶部190に登録されている必要がある。テス
ト実行も通常の実行も受信装置510のCPU516が
実行テーブル191〜193を参照しながらプログラム
を実行する点において異ならないからである。そのため
に、テスト実行部220は、テスト実行に先立ち、対象
プログラムのプログラム名(ID)、サイズ、一時記憶バ
ッファ180上のアドレスを予め実行テーブル191〜
193に追加するか、又は、実行テーブル記憶部190
内に対象プログラムのエントリ(実行テーブル)が既に
存在する場合には、そのエントリのアドレス値を一時記
憶バッファ180上のアドレスに変更しておく。
【0106】以上の準備を終えた後に、まず、プログラ
ム管理部120はテスト実行部220にテスト実行を要
請する(ステップS200)。すると、テスト実行部2
20は対象プログラムがアプリケーションであるかどう
かをチェックする(ステップS201)。その結果、対
象プログラムがアプリケーションである場合には、一時
記憶バッファ180上のテストケースの入力値207a
を引数として対象プログラムに対してテスト実行を行
い、続いて、その対象プログラムに依存する受信装置5
10内に存在するアプリケーションについてもテスト実
行を行う(ステップS203)。このアプリケーション
に対するテスト実行は、履歴情報記憶部160に格納さ
れたそのアプリケーションについてのテストケースの項
目に基づいて行われる。
【0107】一方、対象プログラムがアプリケーション
でなかった場合、即ち、モジュールであった場合には
(ステップS201)、テスト実行部220は、そのモ
ジュールを呼び出しているアプリケーションに対してテ
スト実行を行う(ステップS202)。このテスト実行
も履歴情報記憶部160に格納されたそのアプリケーシ
ョンのテストケースの項目207に基づいて行われる。
また、テスト実行の対象となるアプリケーションは、一
時記憶バッファ180に展開されているオブジェクトヘ
ッダ106に登録されている呼び出す側のアプリケーシ
ョンのうち受信装置510に存在するものだけを対象と
する。
【0108】このようにしてテスト実行を開始すると
(ステップS202、S203)、テスト実行部220
は、対象プログラムに関するテスト実行がテストケース
に記述されている実行時間207c内に終わるかどうか
をチェックする(ステップS204)。その結果、テス
トケースに記述されている実行時間207c内に終わっ
た場合には、続いて、対象プログラムの出力値がテスト
ケースに記述されている返り値207bと一致するか比
較し(ステップS205)、一致する場合には、テスト
実行は成功したと判断し、その旨(Yes)をプログラ
ム管理部120に回答する。
【0109】一方、対象プログラムがテストケースに記
述された実行時間207c内に終わらなかった場合(ス
テップS204)、又は、対象プログラムからの出力値
がテストケースに記述された返り値207bと一致しな
かった場合には(ステップS205)、テスト実行部2
20はテスト実行が失敗したと判断してその時点でテス
ト実行を終了し、その旨の通知を受けたプログラム管理
部120は実行テーブル記憶部190内の対象プログラ
ムのエントリを元のオブジェクトテーブル記憶部150
の値に戻す(ステップS206)。そして、履歴情報管
理部130は、履歴情報記憶部160に対象プログラム
のエントリ(履歴情報)を加え、そのプログラム状態1
61cを「ダウンロードしない」に設定した後に(ステ
ップS207)、テスト実行部220はテスト実行が失
敗した旨(No)をプログラム管理部120に回答す
る。
【0110】以上のようにして、一時記憶バッファ18
0に展開された対象プログラムは、オブジェクト格納部
140に書き込まれる前にテスト実行部220によって
テスト実行が行われる。図24は、テスト実行と関連さ
せて一時記憶バッファ180に展開されたプログラムを
オブジェクト格納部140に移動させる処理手順を示す
フローチャートであり、第1の実施の形態における図1
4に対応する。図14と異なる点は、ステップS45〜
S47の3箇所である。
【0111】第1の実施の形態では、対象プログラムの
一時記憶バッファ180への展開が「新規ダウンロー
ド」又は「バージョンアップダウンロード」であると判
断された場合には(ステップS30)、その対象プログ
ラムはオブジェクト格納部140に追加格納されたが
(ステップS31)、本実施の形態では、オブジェクト
格納部140への格納に先立ち、対象プログラムについ
てテスト実行を行う(ステップS45〜S46)。具体
的には、プログラム管理部120は、対象プログラムの
実行テーブル191の各項目が、いま一時記憶バッファ
180に展開されたプログラムを指すように書き換えた
後に(ステップS45)、その対象プログラムのテスト
実行を行う(ステップS46)。
【0112】その結果、テストに合格した場合には、そ
の対象プログラムをオブジェクト格納部140に追加書
き込みを行い(ステップS31)、履歴情報記憶部16
0やオブジェクトテーブル記憶部150の書き換えを行
う(ステップS32、S33)。一方、不合格であった
場合には、プログラム管理部120は実行テーブル記憶
部190を元に戻すと共に履歴情報管理部130は履歴
情報記憶部160に対象プログラムのエントリ(履歴情
報)を加え、そのプログラム状態161cを「ダウンロ
ードしない」に設定し(ステップS47)、プログラム
のダウンロード処理を終える。
【0113】図25は、テスト実行と関連させて一時記
憶バッファ180に格納されていたプログラムのうち、
対象プログラムのダウンロードによって実行可能となっ
たものを検索しオブジェクト格納部140に移動させる
処理手順を示すフローチャートであり、第1の実施の形
態における図15に対応する。図15と異なる点は、書
き込みチェックが「真」に設定されたプログラムについ
て、オブジェクト格納部140に書き込む(ステップS
106)直前に、テスト実行を行うための処理が追加さ
れていることである(ステップS220〜S225)。
なお、テスト実行に合格したプログラムについては、そ
の後の処理は実質的に異ならない(ステップS106’
〜S110’)。
【0114】まず、プログラム管理部120は、書き込
みチェックが「真」に設定されているアプリケーション
を一時記憶バッファ180内の実行候補スタックに積む
(ステップS220)。ここで、実行候補スタックと
は、第1の実施の形態における一時スタック70や候補
プログラムスタック50と同様の構造をしており、プロ
グラム名とバージョンの情報を格納するスタックであ
る。
【0115】次に、プログラム管理部120は、実行候
補スタックに積まれたアプリケーションを順次に取り出
しながら、その実行候補スタックが空になるまでテスト
実行による動作確認を繰り返す(ステップS221〜S
225)。具体的には、実行候補スタックにアプリケー
ションが登録されていたら(ステップS221)、その
アプリケーションのうちの一つを実行候補アプリケーシ
ョンとし(ステップS222)、まず、その実行候補ア
プリケーションについての実行チェックが「真」に設定
されているか判断する(ステップS223)。これは、
既にテスト実行によって安全に動作することが確認され
ているアプリケーション(テスト実行で成功したアプリ
ケーション)であるか否か判断するためである。ここ
で、「実行チェック」とは、一時オブジェクト記憶テー
ブル40に登録されているアプリケーションそれぞれに
対応して設けられたフラグであり、テスト実行で合格し
た旨を示す「真」、及び、それ以外の状態である旨を示
す「偽」のいずれかに設定される。
【0116】もし、実行候補アプリケーションについて
動作確認が済んでいない場合には(ステップS22
3)、その実行候補アプリケーションに対してテスト実
行を行い動作確認する(ステップK)。そして、その動
作確認が終了すると(ステップL)、その実行候補アプ
リケーションに対して一時チェックが「真」に設定され
ているか確認し(ステップS224)、その結果、
「真」に設定されている場合には、テスト実行に合格し
たことを意味するので、実行チェックを「真」に設定す
ると共に一時チェックを解除(「偽」に設定)する(ス
テップS225)。
【0117】一方、一時チェックが「偽」である場合に
は、テスト実行に合格しなかったことを意味するので、
実行チェックを「偽」のままにし、次の実行候補アプリ
ケーションのテスト実行に移る(ステップS221)。
図26は、実行候補スタックから取り出された1個の実
行候補アプリケーションをテスト実行し(ステップK〜
L)、これによって受信装置510内で正確な動作を行
うことが可能かどうかをチェックするフローチャートで
ある。
【0118】まず、テスト実行部220は、プログラム
管理部120から通知された実行候補アプリケーション
に対してテスト実行を行う(ステップS240)。な
お、ここでのテスト実行(ステップS240)は、図2
3に示されたフローチャートの通りである(ただし、図
23における対象プログラムは図26における実行候補
アプリケーションを指す)。
【0119】その結果、実行候補アプリケーションがテ
スト実行に失敗した場合には、その実行候補アプリケー
ションはもはやオブジェクト格納部140に格納される
資格を有しないので、一時スタック70と一時チェック
をクリアする(ステップS247)。一方、テスト実行
に成功した場合には、プログラム管理部120はその実
行候補アプリケーションに対して一時チェックを「真」
に設定し、続いて、その実行候補アプリケーションが依
存する全てのアプリケーションに対するテスト実行に移
る(ステップS242〜S246)。具体的には、プロ
グラム管理部120は実行候補アプリケーションが依存
するアプリケーション全てについて一時チェックが
「真」に設定されているかどうかを調べ(ステップS2
42)、アプリケーション全てについて一時チェックが
「真」に設定されている場合には、それらはすべてテス
ト実行に成功していることを意味するので、この実行候
補アプリケーションの依存するプログラムは全てテスト
実行に成功していることになり、その動作が保証された
ことになる。
【0120】一方、実行候補アプリケーションが依存す
るアプリケーション全てについて一時チェックが「真」
に設定されているのではない場合には(ステップS24
2)、それら一時チェックが「真」でないアプリケーシ
ョンを一時スタック70に積んだ後に(ステップS24
3)、その一時スタック70から一つずつアプリケーシ
ョンを取り出し、それを新たな実行候補アプリケーショ
ンとして(ステップS245)、一時チェックの確認と
(ステップS246)とテスト実行(ステップS24
0)と依存先の全てのアプリケーションについての検討
(ステップS241〜S243)とを繰り返す。そし
て、一時スタック70が空になるか(ステップS24
4)、いずれかの実行候補アプリケーションについてテ
スト実行が失敗するまで(ステップS247)、テスト
実行を繰り返す。そして、いずれかの実行候補アプリケ
ーションについてのテスト実行で失敗した場合には、一
時スタック70と一時チェックがクリアされるが(ステ
ップS247)、一時スタック70が空になった場合に
は、一時チェックがクリアされずにテスト実行に成功し
たアプリケーションに対してのみ一時チェックが「真」
に設定されたまま、ここでの処理を終える(ステップ
L)。
【0121】そして、一時チェックが「真」に設定され
たアプリケーション、つまり、関連するアプリケーショ
ンも含めて動作が保証されたアプリケーションについて
オブジェクト格納部140に書き込むための処理が行わ
れる(ステップS224〜S225、S221、S10
6’〜S110’)。このように、本実施の形態に係る
プログラム構成管理装置200によれば、第1の実施の
形態のプログラム構成管理装置100にテスト実行部2
20が付加され、これによって、受信装置510にダウ
ンロードされたプログラムは、そのプログラムと共に送
信されてきたテストケースによって指定された入力値が
与えられ、受信装置510において依存関係を持つ他の
プログラムと共にテスト実行される。そして、期待され
た時間内に期待された出力値を出力することでテスト実
行に合格した場合にのみ、オブジェクト格納部140に
格納され実行対象のプログラムとして正式に登録され
る。これによって、送信されてきたプログラムにバグや
ウィルス等が含まれているために、そのまま受信装置5
10に登録して実行させたのでは取り返しのつかない不
具合が生じる場合であっても、そのような不具合の発生
を未然に防止できる可能性が高まる。
【0122】また、モジュールやバージョンが増えるに
つれ、その組み合わせは爆発的に増えて、すべての組み
合わせに対しての動作確認を放送センターでテストする
のは大変困難であるが、本実施の形態によれば、これら
のテストをそれぞれの受信装置510に移行しているの
で、放送センター側でのテストの負担が軽減される。 (第3の実施の形態)次に、取り外し可能な補助記憶装
置を備え、それを受信装置510に格納されているプロ
グラム等のバックアップ先として使用したり、他の受信
装置にプログラム等をコピーすることが可能な本発明の
第3の実施の形態に係るプログラム構成管理装置300
について説明する。
【0123】図27は、第3の実施の形態に係るプログ
ラム構成管理装置300の構成を示す機能ブロック図で
ある。本装置300は、第1の実施の形態のプログラム
構成管理装置100に補助記憶部310及びバックアッ
プ記録部320が追加された構成を有し、図1に示され
る受信装置510に内蔵されている点において第1の実
施の形態と共通する。
【0124】補助記憶部310は、オブジェクト格納部
140と同容量、もしくはそれ以上の記憶容量を持つ取
り外し可能(リムーバブル)な不揮発性メモリ(フラッ
シュメモリを内蔵したメモリカード)であり、オブジェ
クト格納部140に格納されている全てのオブジェクト
をバックアップとして収納したり、他の受信装置にオブ
ジェクトをコピーするための媒体として用いられる。
【0125】バックアップ記録部320は、オブジェク
ト格納部140に格納されたオブジェクトを補助記憶部
310に書き込むバックアップ処理を行ったり、逆に、
補助記憶部310に格納されたオブジェクトをオブジェ
クト格納部140に書き戻すプログラム構成の再構築を
行ったりするものであり、EEPROM518に予め格
納されたプログラム等によって実現される。
【0126】図28は、オブジェクト格納部140に格
納されたプログラムを補助記憶部310にバックアップ
する手順を示すフローチャートである。バックアップ記
録部320は、入出力部515等を介してユーザからプ
ログラムのバックアップ命令を受けると、まず、この受
信装置510に補助記憶部310が装着されているかど
うかをチェックする(ステップS260)。補助記憶部
310が装着されていない場合には、入出力部515等
を介してユーザにその旨を伝えた後にこのバックアップ
処理を中止する(ステップS263)。
【0127】一方、受信装置510に補助記憶部310
が装着されている場合には、バックアップ記録部320
は、プログラム管理部120を通じてオブジェクトテー
ブル記憶部150内のオブジェクトテーブル151〜1
53を検索することで、有効無効記述151fが「有
効」である全てのオブジェクトを特定し、それらオブジ
ェクトをオブジェクト格納部140から補助記憶部31
0にコピーすると共に、対応するオブジェクトテーブル
についてもオブジェクトテーブル記憶部150から補助
記憶部310にコピーする(ステップS261)。この
とき、コピーするオブジェクトテーブルの先頭アドレス
151dは、そのオブジェクトが格納されている補助記
憶部310上の先頭アドレスに変更しておく。
【0128】続いて、バックアップ記録部320は、プ
ログラム管理部120及び履歴情報管理部130を通じ
て、いまコピーしたオブジェクトについての履歴情報を
読み出し、一部を変更した後に補助記憶部310に格納
する(ステップS262)。つまり、履歴情報のプログ
ラム状態161cを「有効」とし、無効理由161dと
プログラムダウンロード日時161eを空白にし、他の
項目についてはそのままにする。
【0129】このようにして、バックアップ記録部32
0によるバックアップ処理が終了し、その時点において
「有効」とされている全てのオブジェクト及び復旧に必
要な情報(オブジェクトテーブル及び履歴情報)が補助
記憶部310に格納されたことになる。図29は、図2
8に示された手順でバックアップされた補助記憶部31
0内のプログラム、オブジェクトテーブル及び履歴情報
を受信装置510に戻して再構築する際の手順を示すフ
ローチャートである。
【0130】入出力部515等を介してユーザからのバ
ックアップデータの再構築命令(リストア命令)を受け
ると、バックアップ記録部320は、まず、補助記憶部
310が装着されているかどうかをチェックする(ステ
ップS280)。補助記憶部310が装着されていない
場合には、入出力部515等を介してユーザに補助記憶
部310が装着されていない旨を伝え、この再構築処理
を中止する(ステップS286)。
【0131】一方、受信装置510に補助記憶部310
が装着されている場合には、バックアップ記録部320
は、プログラム管理部120を通じて、補助記憶部31
0内のオブジェクトテーブルを受信装置510のオブジ
ェクトテーブル記憶部150へ記録した後に、そのオブ
ジェクトテーブルに対応する古い(既に記録されてい
る)オブジェクトテーブルの有効無効記述151fを
「無効」にする(ステップS281)。そして、プログ
ラム管理部120と履歴情報管理部130を通じて、補
助記憶部310内の履歴情報を受信装置510の履歴情
報記憶部160へコピーする(ステップS282)。こ
のとき、コピー先の受信装置510に合わせた履歴情報
とする必要があるため、プログラムダウンロード日時1
61eの項目はバックアップ再構築を行った日時に変更
する。
【0132】続いて、バックアップ記録部320は、プ
ログラム管理部120を通じて実行テーブルを書き換え
る(ステップS283)。このとき、ステップS281
において書き込んだオブジェクトテーブルに基づいて実
行テーブルのエントリを作成する。そして、バックアッ
プ記録部320は、プログラム管理部120を通じて、
補助記憶部310内のオブジェクトをオブジェクト格納
部140へコピーする(ステップS284)。
【0133】最後に、バックアップ記録部320は、い
まコピーしたオブジェクトテーブルと実行テーブルの先
頭アドレス151d、191dを上記ステップS284
でコピーしたオブジェクトのオブジェクト格納部140
におけるアドレスに書き替え(ステップS285)、こ
れによってバックアップ再構築処理は終了する。以上の
ように、本実施の形態に係るプログラム構成管理装置3
00によれば、第1の実施の形態のプログラム構成管理
装置100に補助記憶部310とバックアップ記録部3
20とが付加され、これによって、受信装置510に格
納された「有効」(現行バージョン)な全てのオブジェ
クトは、必要な管理情報と共に取り外し可能な補助記憶
部310にコピーされたり、逆に、補助記憶部310に
コピーされていたオブジェクトが受信装置510に復元
される。従って、不慮の事故に備えて受信装置510内
のプログラムのバックアップを取っておくが可能とな
る。例えば、受信装置510のプログラムが何らかの原
因で破壊された場合でも、その受信装置510のプログ
ラムをバックアップした補助記憶部310があれば、受
信装置510の機能を、バックアップした時点のアプリ
ケーション構成に復元することが可能となる。
【0134】また、他の受信装置510とのオブジェク
トの交換やコピー等を行うことも可能になる。例えば、
受信装置510のプログラムをバックアップした補助記
憶部310を、その受信装置510以外の他の受信装置
510に装着することで、その受信装置510のプログ
ラムを他の受信装置510に移すことが可能となる。例
えば、メーカの販売店等のサービス側が完全に動作する
プログラムの記録された補助記憶部310を用意し、こ
れを用いてユーザの受信装置へプログラムをダウンロー
ドすることも可能となる。これによって、アプリケーシ
ョンを放送電波以外の媒体で受信装置510に蓄積させ
ることが可能となる。 (第4の実施の形態)次に、ユーザとの対話により、プ
ログラムをテスト実行したり受信装置に必要なプログラ
ムを取得することが可能な本発明の第4の実施の形態に
係るプログラム構成管理装置400について説明する。
【0135】図30は、本実施の形態に係るデジタル衛
星放送用受信システム全体のハードウェア構成を示す図
である。このシステムは、アンテナ511と受信装置5
10とTV520とからなる。この受信装置510は、
第3の実施の形態と同様に、放送電波や補助記憶部31
0からプログラムをダウンロードすることができるだけ
でなく、内蔵するモデム等によって接続された電話網5
30を介してネットワーク上のプログラムサーバー(受
信装置510用のプログラムを蓄積し、要求に応じて電
子配信するコンピュータ)からプログラムをダウンロー
ドすることもできる。また、リモコン540を介してユ
ーザと対話することにより、ユーザが所望するプログラ
ムをテスト実行したりダウンロードしたりすることがで
きる。
【0136】図31は、図30に示された受信装置51
0に内蔵されるプログラム構成管理装置400の構成を
示す機能ブロック図である。本装置400は、第2及び
第3の実施の形態のプログラム構成管理装置200及び
300を兼ね備えた機能に加えて、ユーザと対話するた
めの機能を有する。つまり、本装置400は、第1の実
施の形態のプログラム構成管理装置100に、テスト実
行部220、補助記憶部310及びバックアップ記録部
320が追加された構成を有する。そして、プログラム
管理部121は、第1の実施の形態のプログラム管理部
120の機能に加えて、対話制御部121aと通信制御
部121bとを有する。
【0137】通信制御部121bは、リモコン540か
らの赤外線を受信してコマンド解析する回路やこの受信
装置510と電話網530とを接続するモデム等からな
る。対話制御部121aは、通信制御部121bとリモ
コン540とを介してユーザからの指示を取得したり、
TV520の画面にグラフィック表示したりすることに
よってユーザーと対話し、ユーザの指示に従って、テス
ト実行やプログラムのダウンロードを制御する。
【0138】図32は、本装置400によるユーザとの
対話についての動作手順を示すフローチャートである。
以下、この動作について、図33〜図35に示されたT
V520の画面の表示例を用いながら説明する。まず、
対話制御部121aは、リモコン540を介して、ユー
ザから、メンテナンス用のメニューを表示させる旨の指
示を受ける(ステップS400)。そして、リモコン5
40から送信されてきたキーを判別することで、その指
示が「テスト条件を設定する」旨の指示であるか、「新
たなプログラムを取得する」旨の指示であるかを判断す
る(ステップS401)。
【0139】その結果、「テスト条件を設定する」旨の
指示である場合には、対話制御部121aは、TV52
0の画面に図33に示される「テスト条件設定メニュ
ー」を表示する(ステップS402)。具体的には、
(1)テスト実行の対象プログラムをユーザに特定させ
るためのスクロールウィンドウと、(2)テスト実行の
合否判定の方法に関する選択メニュー等を表示する。
【0140】具体的には、図33に示される第1の選択
項目(1)のように、スクロールウィンドウには、この
受信装置510内に存在する全てのプログラムについ
て、その名前とバージョンと機能とが一覧表示される。
ユーザは、リモコン540を用いて、ウィンドウをスク
ロールしながら、テストしたいプログラムを反転表示さ
せる等により、1個以上の対象プログラムを特定する
(ステップS403)。ここでは、ユーザは、図示され
ているように、放送電波のトランスポートストリームに
映像データとともに多重化されて送られてくるEPG
(Electric Program Guide;電子番組表)を表示するプ
ログラムPROG_014(Ver.2.7)を選択し
たとする。
【0141】さらに、第2の選択項目(2)において、
ユーザは、テストの合否判定に関して、第2の実施の形
態のような「自動判定」、即ち、この受信装置510に
格納されたテストケースによって特定される判定基準を
採用するか、又は、「ユーザ判定」、即ち、TV520
の画面との対話によってユーザが合否を決定するか、を
選択することができる(ステップS404)。ここで
は、ユーザは、図示されているように、「ユーザ判定」
を選択したとする。
【0142】以上の2つの項目の入力を終えたユーザ
は、最後に、「実行」ボタンを押すことによって、テス
ト実行を起動させることができる(ステップS40
5)。つまり、実行する旨の指示を受け取った対話制御
部121aは、テスト実行部220に対して、対象プロ
グラムの名前とバージョンとを通知し、テストを実行さ
せる。
【0143】その結果、図34に示される画面例のよう
に、TV520の画面には、この受信装置510に既に
格納されていたEPGが表示される。ここでは、スクロ
ールウィンドウ内にEPGの一部が表示されている。ユ
ーザは、リモコン540を用いて、スクロールボタンを
操作することにより、全てのEPGが正しく表示されて
いるか等をチェックすることができる。つまり、テスト
実行の結果、プログラムPROG_014が正しく機能
しているか否かを画面との対話によって確認することが
できる。なお、画面の中央におけるウィンドウの表示
は、PROG_014の実行によるものであるが、その
他のタイトルやメニュー項目の表示は、対話制御部12
1aによるものである。
【0144】このような確認の結果、ユーザは、正しく
EPGが表示されていると判断した場合には「合格」ボ
タンを押し、そうでないと判断した場合には「不合格」
ボタンを押す(ステップS406)。ここで、「不合
格」ボタンが押された場合には、対話制御部121a
は、プログラムを再構築する(ステップS407)。具
体的には、対話制御部121aは、オブジェクトテーブ
ル記憶部150等を参照することにより対象プログラム
PROG_014が有効なプログラムであるか否かを判
断し、有効なプログラムである場合には、プログラム管
理部121にその旨を通知することにより、そのプログ
ラムPROG_014のバージョンを直前のものに遡及
させる(ステップS407)。これによって、テスト実
行に失敗したプログラムを含まないように受信装置51
0のプログラム構成を再編成させることができる。
【0145】「合格」ボタンが押された場合(ステップ
S406)、及び、「不合格」ボタンが押された後の処
理(ステップS407)が完了した場合には、続いて、
対話制御部121aは、通信制御部121b及び電話網
530を介して上記プログラムサーバーに対して、テス
ト実行の結果と最終的なプログラム構成とを報告する
(ステップS408)。このようにして、一連のテスト
実行を終了し、再びメニュー選択の処理(ステップS4
00)に戻る。
【0146】一方、メニュー選択において(ステップS
401)、「新たなプログラムを取得する」旨の指示が
なされた場合には、対話制御部121aは、TV520
の画面に、図35に示されるような「プログラム取得メ
ニュー」を表示する(ステップS410)。具体的に
は、ユーザが取得プログラムを検索して特定するのに役
立つ3つの項目(1)〜(3)と、その取得ルートを選
択するため項目(4)の合計4つの項目(1)〜(4)
を表示する。
【0147】具体的には、ユーザは、第1の項目(1)
において、着目プログラムの名前とバージョンを入力す
ることができる。ここで、着目プログラムとは、ダウン
ロードしたいプログラムを検索するための契機となるプ
ログラムである。ここでは、ユーザは、図示されている
ように、着目プログラムPROG_03を入力し、バー
ジョン2.1を入力したとする。
【0148】すると、対話制御部121aは、オブジェ
クトテーブル記憶部150の依存関係情報151gを参
照することにより、その着目プログラムPROG_03
Ver.2.1を呼び出している全てのプログラム(依
存元プログラム)の一覧を第2の項目としてスクロール
ウィンドウに表示するとともに、その着目プログラムP
ROG_03Ver.2.1が呼び出している全てのプ
ログラム(依存先プログラム)の一覧を第3の項目とし
てスクロールウィンドウに表示する。なお、これら一覧
には、プログラムの名前とバージョンとその時点で受信
装置510内に存在する(記憶されている)か否かの情
報とそのプログラムの機能とが含まれる。
【0149】ユーザは、これら2つのウィンドウをスク
ロールしながら、取得したいプログラムを反転表示させ
る等により、1個以上の取得プログラムを特定すること
ができる(ステップS411)。ここでは、ユーザは、
図示されているように、プログラムPROG_55Ve
r.1.3とPROG_64Ver.4.4とを選択し
たとする。
【0150】そして、ユーザは、それら2つのプログラ
ムを取得する際のルートを、「放送電波」、「電話回
線」及び「メモリカード」の中から選択する(ステップ
S412)。ここでは、ユーザは、図示されているよう
に、「電話回線」を選択したとする。以上の4つの項目
の入力を終えたユーザは、最後に、「実行」ボタンを押
すことによって、ダウンロードを開始させることができ
る(ステップS413)。つまり、実行する旨の指示を
受け取った対話制御部121aは、上記項目の内容を通
信制御121bに通知することで、ここでは、電話網5
30を介して接続された所定のプログラムサーバーか
ら、2つの対象プログラムをダウンロードさせる。ダウ
ンロードされたプログラムは、通信制御部121bから
一旦プログラムダウンロード部110に渡され、それ以
降の処理においては、図10のフローチャートに示され
るような第1の実施の形態と同様の手順で処理される。
【0151】もし、上記第4の項目における取得ルート
として「放送電波」が選択されていた場合には、入力さ
れた2つの対象プログラムは、プログラム管理部121
によって一旦ダウンロード予約リスト記憶部170に格
納され、それ以降においては、第1の実施の形態と同様
の手順で処理される。また、上記第4の項目における取
得ルートとして「メモリカード」が選択されていた場合
には、入力された2つの対象プログラムは、図29のフ
ローチャートに示されるように、プログラム管理部12
1による制御の下で、バックアップ記録部320によっ
て補助記憶部310から読み出され、オブジェクト格納
部140に格納される。
【0152】このようにして、ダウンロードを終える
と、対話制御部121aは、一連のプログラム取得処理
を終了し、再びメニュー選択の処理(ステップS40
0)に戻る。以上のように、本実施の形態に係るプログ
ラム構成管理装置400によれば、第1の実施の形態の
プログラム構成管理装置100にテスト実行部220と
補助記憶部310とバックアップ記録部320と対話制
御部121aと通信制御部121bとが付加され、これ
によって、ユーザは、受信装置510と対話すること
で、特定のプログラムをテスト実行したりダウンロード
したり、テスト結果を評価したりすることができる。従
って、プログラム提供者の一方的なスケジュールに依存
するのではなく、受信装置510を所有するユーザの都
合や使用目的に応じて、受信装置510のプログラム構
成を最新の状態に維持したり、故障診断を実施すること
が可能となる。
【0153】以上、本発明に係るプログラム構成管理装
置について第1〜第4実施の形態に基づいて説明した
が、本発明はこれらに限定されるものではない。即ち、 (1)上記実施の形態では、受信装置510を直接構成
するプログラムやデータをダウンロードしたが、ダウン
ロードの対象はこれらに限られず、プログラム構成管理
装置を構成するプログラム(プログラムダウンロード部
110やプログラム管理部120等。以下、「ダウンロ
ードプログラム」という。)自身をダウンロードするこ
とも可能である。
【0154】例えば、これらダウンロードプログラムに
ついても、受信装置510を直接構成するプログラムと
同様にオブジェクト格納部140に格納しておき、プロ
グラム構成管理装置の管理対象としておく。そして、ダ
ウンロードをする等のためにダウンロードプログラムを
実行する際には、オブジェクト格納部140から一時記
憶バッファ180にそのダウンロードプログラムをロー
ドして展開し、対応する実行テーブルの先頭アドレス1
91cを一時記憶バッファ180上のアドレスに変更す
る。
【0155】そうすることで、オブジェクト格納部14
0上のダウンロードプログラムではなく、一時記憶バッ
ファ180上のダウンロードプログラムがCPU516
によって実行されることになる。これによって、ダウン
ロードの対象となるダウンロードプログラムとダウンロ
ードを実行しているダウンロードプログラムとは異なる
オブジェクトとして管理されることになるので、その後
は、第1〜3の実施の形態と同様の手順によってダウン
ロードプログラムをダウンロードすることが可能とな
る。
【0156】このような方式を実現するための最も単純
な方法は、受信装置510の起動時にオブジェクト格納
部140内の全てのプログラムを一時記憶バッファ18
0に展開しておくことである。つまり、全てのプログラ
ムを一時記憶バッファ180に展開した後に、対応する
全ての実行テーブルの先頭アドレス191cを一時記憶
バッファ180上のアドレスに変更すればよい。これに
よって、プログラム構成管理装置を含めた受信装置51
0の機能は全て一時記憶バッファ180に格納されたプ
ログラムが実行されることによって実現されるので、ダ
ウンロードする対象についての制限がなくなり、ダウン
ロードプログラム自身をダウンロードすることが可能と
なる。 (2)また、上記実施の形態では、オブジェクト格納部
140内でのオブジェクトの格納位置については特に制
限が設けられていなかったが、例えば、オブジェクト格
納部140上に配置するプログラムとデータの位置を固
定、もしくは、各ブロックについてプログラムとデータ
の一方だけが格納されるよう配置位置を固定してもよ
い。そのような配置にすることで、プログラム配置変更
処理の際に、オブジェクト格納部140上に空のブロッ
クがなくなった(図17ステップS140でNoの判断が
された)場合に、フォントデータ等のデータのみが格納
されたブロックを空ブロックにすることで、その処理を
行っているときに電源が切れる等の事故があった場合で
もプログラムは破壊されずに済むので、受信装置510
が再起動されないという最悪の事態は回避される。 (3)また、第2の実施の形態では、テスト実行に失敗
した場合には、そのプログラムの履歴情報のプログラム
状態161cを「ダウンロードしない」に設定している
が(ステップS207)、テスト実行に失敗した旨の事
実を明確に残しておいてもよい。例えば、プログラムの
テスト実行を行う前に、そのプログラムに対応するフラ
グを立てて一時記憶バッファ180に残しておき、テス
ト実行に成功したときにのみ、そのフラグを消去するこ
ととする。これによって、例えば、プログラムのテスト
実行においてそのプログラムが暴走して受信装置510
がハングアップしてしまった場合において、後に同一プ
ログラムが放送センターから送信されてきたときには、
そのプログラムに対応するフラグが立っているので、そ
のプログラムが過去にテスト実行に失敗したことが確認
できる。従って、再びテスト実行を行ってしまうことに
よる受信装置510のハングアップの繰り返しを防止す
ることができる。
【0157】また、テスト実行を放送局からのコンテン
ツによって実現する方法があるが、このような方式にお
いても、上記フラグは役に立つ。つまり、テスト実行の
対象となるプログラムを一時記憶バッファ180上に展
開し、実行テーブルを書き替えることで一時記憶バッフ
ァ180上のプログラムを有効とする。これによって、
受信装置510の動作は、一時記憶バッファ180上の
対象プログラムによって制御されることになるが、この
時に、放送センターから対象プログラムを利用するコン
テンツを送信することで、対象プログラムを組込んだこ
とによる受信装置510全体の動作が再現される。この
とき、もし、対象プログラムに致命的なバグがある場合
や、その受信装置510下では動作しない場合において
受信装置510がハングアップしても、上記テスト実行
のフラグを参照することで、対象プログラムのテスト実
行に失敗したことの判断が可能となる。 (4)また、第2の実施の形態において、テスト実行に
失敗した時に対象プログラムの履歴情報のプログラム状
態161cを「ダウンロードしない」に設定している
が、この状態を解除するしくみを設けてもよい。テスト
実行に失敗したプログラムであっても、そのプログラム
が依存するプログラムが入れ換えられた結果、正常に動
作することができるようになり得るからである。具体的
には、履歴情報記憶部160にテスト実行に失敗した日
時を情報として持たせ、放送センターから送信されてき
たプログラムのダウンロードを判断する際(図13にお
けるステップS15)に、履歴情報記憶部160に登録
されている対象プログラムの履歴情報のプログラム状態
161cが「ダウンロードしない」であっても、テスト
実行に失敗した日時以降に対象プログラムが依存するプ
ログラムをダウンロードしたのであれば、再び対象プロ
グラムをダウンロードしてテスト実行を試みることとす
ればよい。 (5)また、第3の実施の形態では、放送センターがプ
ログラムと同時に送信するテストケースには、入力値と
出力値と実行にかかる時間のみが含まれていたが、この
ような値だけでなく、対象プログラムの機能を全て利用
するアプリケーションを含ませることもできる。これに
よって、受信装置510側では放送センターから送信さ
れてきたテストケース中のアプリケーションを実行して
対象プログラムのテストを行うことができる。また、こ
のようなテストケースを付加することで、対象プログラ
ムごとに最適なテスト方法を放送センター側が与えるこ
とが可能となる。
【0158】例えば、一時記憶バッファ180上の対象
プログラムを有効とした後、放送センターからコンテン
ツとして送信されるテストデータを受信し、前記テスト
ケース中のアプリケーションを利用して、テストを行う
こととする。これによって、受信装置510内のプログ
ラムの連携が正しく行われているかどうかをチェックす
ることが可能となる。 (6)また、第3の実施の形態では、プログラム配置変
更処理を行う際、プログラムの消去条件として放送セン
ターからの通知のあったプログラムとしていたが、消去
可能なプログラムの条件を、ある日以前のプログラムと
設定したり、受信装置510内に3世代以上バージョン
を持つプログラムの最新バージョンから3世代以上前の
バージョンと設定したりすることで、様々なプログラム
の消去条件に対応したプログラム構成管理装置が実現さ
れる。 (7)また、第1の実施の形態においては、CPU51
6がプログラムを実行する際にプログラム管理部120
は一時記憶バッファ180に作成された実行テーブルを
参照して実行対象とすべきプログラムを特定したが、こ
のような実行テーブルを作成せずに、プログラム管理部
120が実行対象の選択要求を受ける度に直接オブジェ
クトテーブル記憶部150内のオブジェクトテーブル1
51〜153を検索して実行対象とすべきオブジェクト
を特定してもよい。この方法を採用すれば、図4におけ
る実行テーブル記憶部190を割愛することができる。 (8)また、第3の実施の形態において受信装置510
内のオブジェクトのバックアップをとる際に、オブジェ
クト格納部140上のプログラム全てを補助記憶部31
0上にコピーするのではなく、特定のプログラムのみを
選択的に補助記憶部310上へコピーしてもよい。これ
によって、希望するアプリケーションだけのバックアッ
プをとり、他の受信装置510へそのアプリケーション
のみをコピーすることが可能となる。 (9)また、第1及び第2の実施の形態では、ダウンロ
ードするオブジェクトやテスト実行の対象となるプログ
ラムは放送センターから送信されてきたものを対象とし
たが、第3の実施の形態における補助記憶部310から
コピーされてくるものとすることもできる。これによっ
て、放送センターからのオンラインによるバージョンア
ップだけでなく、補助記憶部310を媒体とするオフラ
インによるバージョンアップや補助記憶部310からコ
ピーされるアプリケーションに対する事前のテスト実行
が可能となる。 (10)また、上記実施の形態のプログラム構成管理装
置は、プログラムを対象としてバージョン遡及等を行な
ったが、データを対象としてバージョン遡及等を行なう
こともできる。つまり、図36に示されるように、各デ
ータがバージョンを有し、ハイパーリンク構造による依
存関係を形成している場合には、本発明のプログラム管
理装置によるバージョン遡及等の管理対象をデータに適
用することができる。
【0159】これによって、例えば、データ放送による
ニュース番組が、地域や話題別のモジュールに分割され
ており、それらを合わせて1つの大きなニュース番組を
構成している場合において、一部の最新ニュースのダウ
ンロードによりバージョンアップが発生した際のニュー
ス番組全体の再構築や、一部のニュース情報に欠陥が発
見された時のバージョン遡及等が可能となる。
【0160】
【発明の効果】以上の説明から明らかなように、本発明
に係るプログラム構成管理装置は、通信端末機器に備え
られ、その通信端末機器に必要な複数のプログラムの構
成を管理する装置であって、通信路を介して前記プログ
ラムをダウンロードするダウンロード手段と、ダウンロ
ードされたプログラムを最新バージョンだけでなく過去
のバージョンも含めて蓄積して記憶するプログラム記憶
手段と、特定のプログラムについてバージョンを遡及さ
せる旨の指示を受けると、前記プログラム記憶手段に記
憶されたプログラムのうち指示されたプログラムについ
ては、現行バージョンを無効化して過去のバージョンを
有効化させるバージョン遡及手段とを備えることを特徴
とする。
【0161】これによって、通信端末機器に保存されて
いた古いバージョンが有効化されるので、バージョンア
ップのために新たにダウンロードしたプログラム自体に
バグが存在していても、健全に動作していたときの過去
の状態(プログラム構成)に戻すことができ、バージョ
ンアップすることによって通信端末機器の機能が悪化し
てしまうことが回避される。
【0162】ここで、前記プログラム記憶手段は、前記
プログラムを記憶しているプログラム格納部と、前記プ
ログラム格納部に格納されたプログラムについて、プロ
グラムの名前、バージョン及び実行の対象となっている
有効な状態かそうでない無効な状態かを示す有効無効情
報を含む管理情報を記憶している管理情報格納部とを有
し、前記バージョン遡及手段は、前記特定のプログラム
の名前と遡及先バージョンの指定を受ける受付部と、前
記プログラム格納部に格納されたプログラムのうち指定
された名前と同一名のプログラムについては、前記遡及
先バージョン以前でかつ最新のバージョンのプログラム
に対応する前記管理情報の有効無効情報だけを有効化す
る遡及部とを有してもよい。
【0163】これによって、同一名の異なるバージョン
のプログラムの中から一つだけを有効化する場合には、
それらプログラムに対応する有効無効情報を変更するだ
けで済むので、最新のバージョンを無効化し過去のバー
ジョンを有効化するようなバージョンの遡及操作が単純
化される。また、前記プログラム構成管理装置はさら
に、ダウンロードされたプログラムの名前、バージョ
ン、ダウンロードされた日時及び無効化された場合には
その日時を含む履歴情報を記憶する履歴情報記憶手段を
備え、前記管理情報にはさらに、当該プログラムと依存
関係を持つプログラムの名前とバージョンが含まれ、前
記バージョン遡及手段はさらに、前記管理情報を参照す
ることにより、指定された名前のプログラムと依存関係
を持つ全てのプログラムを特定し、それらプログラムに
ついて、前記履歴情報を参照することにより、前記遡及
部によって有効化されたプログラムが過去に無効化され
たときの日時より前でかつ最新の日時にダウンロードさ
れたバージョンのプログラムに対応する前記管理情報の
有効無効情報を有効化する関連プログラム遡及部を有し
てもよい。
【0164】これによって、指定されたプログラムだけ
でなく、そのプログラムと依存関係を持つ全てのプログ
ラムについても履歴を遡及し、整合のとれたバージョン
のプログラムセットが有効化されるので、バージョンを
遡及した際にバージョンの不整合に基づいて波及的に不
具合が発生するということが防止される。また、前記プ
ログラム構成管理装置はさらに、ダウンロードされたプ
ログラムをテスト実行し、テスト実行に合格したプログ
ラムだけを前記プログラム記憶手段に格納するテスト実
行手段を備えてもよい。これによって、例えば、新たに
ダウンロードしたプログラム自体に致命的なバグが存在
していても、そのプログラムによって通信端末機器が全
く動作しなくなってしまうという最悪の事態の発生が回
避される。
【0165】また、前記ダウンロード手段は、前記プロ
グラムと共に、そのプログラムをテスト実行する際の条
件と合格基準とをダウンロードし、前記テスト実行手段
は、前記条件と合格基準を用いて前記プログラムをテス
ト実行し合否を判定してもよい。これによって、プログ
ラムの仕様を熟知している送信側においてテスト条件や
合格基準を設定し、通信端末機器に指示することができ
るので、適正なテスト実行が確保される。
【0166】また、前記テスト実行手段は、テスト実行
による合否の判定結果をそのプログラムに対応させて記
録し保存しておくテスト結果保存部を有し、前記プログ
ラムのテスト実行に先立って、前記テスト結果保存部を
参照し、そのプログラムが過去のテスト実行に不合格と
なっていたと判明した場合にはテスト実行を中断しても
よい。これによって、過去のテスト実行において不合格
となっているプログラムを再びダウンロードしテスト実
行するという無駄が避けられる。
【0167】また、前記プログラム構成管理装置はさら
に、取り外し可能な不揮発性メモリと、指定されたプロ
グラムについて、前記プログラム格納部に記憶されたプ
ログラム、前記管理情報格納部に記憶された管理情報及
び前記履歴情報記憶手段に記憶された履歴情報を前記不
揮発性メモリにコピーするバックアップ手段と、前記不
揮発性メモリに記憶されたプログラム、その管理情報及
びその履歴情報をそれぞれ前記プログラム格納部、前記
管理情報格納部及び前記履歴情報記憶手段に読み出す読
み出し手段とを備えてもよい。これによって、通信端末
機器に格納されているプログラムのバックアップを作成
しておいたり、他の通信端末機器にプログラムをコピー
することが可能となるので、例えば、バージョンアップ
に伴って不具合が発生した場合であっても、元の状態に
戻すことができる。
【0168】また、前記プログラム構成管理装置はさら
に、不要となったプログラム及びバージョンの指定を受
け付け、指定されたプログラムであって指定されたバー
ジョン以前のバージョンのものを前記プログラム記憶手
段から消去し、消去によって生じた空き領域を集中させ
るよう残されたプログラムの前記プログラム記憶手段に
おける配置を変更する配置変更手段を備えてもよい。こ
れによって、フラッシュメモリ等の一括消去型のメモリ
にプログラムを格納している場合であっても、不要なプ
ログラムだけを整理して消去することができるので、メ
モリの使用効率が高まる。
【0169】また、前記ダウンロード手段及び前記バー
ジョン遡及手段は、前記通信端末機器において実行され
るプログラムとして実現され、前記ダウンロード手段に
よってダウンロードされるプログラム、前記プログラム
記憶手段に記憶されるプログラム及び前記バージョン遡
及手段によって有効化されるプログラムには、前記ダウ
ンロード手段及び前記バージョン遡及手段を実現するた
めのプログラムも含まれてもよい。これによって、通信
端末機器を構成するプログラムだけでなく、プログラム
構成管理装置を構成するプログラムについてもダウンロ
ードの対象とすることができるので、プログラム構成管
理装置自身をバージョンアップしたりバージョンダウン
することが可能となる。
【0170】また、前記プログラム構成管理装置はさら
に、前記プログラム記憶手段に記憶されたプログラムの
うち実行の対象となるものをロードして一時的に保持す
る一時記憶バッファを備え、前記通信端末機器は、前記
一時記憶バッファに保持されたプログラムを実行しても
よい。これによって、現に実行の対象となっている全て
のプログラムは、保存されているプログラムとは別個の
ものとして存在するので、ダウンロードによって自らの
プログラムが破壊されてしまう等の不具合の発生が回避
される。
【0171】また、前記プログラム構成管理装置はさら
に、グラフィック表示によるユーザとの対話を実行する
対話手段を備え、前記テスト実行手段は、ダウンロード
された前記プログラムのうち、前記対話手段によって特
定されたプログラムをテスト実行してもよい。これによ
って、ユーザが所望するプログラムだけを対象としてテ
スト実行することが可能となり、プログラムのバグの究
明作業に要する時間が短くなる。
【0172】また、前記対話手段は、前記テスト実行手
段によるテスト実行の様子をグラフィック表示するとと
もに、そのテスト実行に対する合否判断をユーザから取
得してもよい。これによって、ユーザは、目視によっ
て、プログラムの健全性を確認することができるので、
デバッグ作業が容易となる。また、前記プログラム構成
管理装置はさらに、グラフィック表示によるユーザとの
対話を実行する対話手段を備え、前記ダウンロード手段
は、前記対話手段によって特定されたプログラムをダウ
ンロードしてもよい。これによって、ユーザが所望する
プログラムをダウンロードし改訂していくことができる
ので、ユーザの使用状況や意図を反映した多様なニーズ
に応えることが可能なプログラム構成管理装置が実現さ
れる。
【0173】また、前記対話手段は、ユーザによって指
定されたプログラムと依存関係を持つ全てのプログラム
を表示するとともに、前記通信路として選択可能な複数
の取得ルートを表示し、前記ダウンロード手段は、前記
対話手段によって特定されたプログラムを前記対話手段
によって特定された取得ルートでダウンロードしてもよ
い。これによって、ユーザは、改訂したいプログラムの
名前が分からない場合であって、関連するプログラムか
らそのプログラムを検索することができる。そして、特
定の通信回線が故障していたりトラフィックが混雑して
いても、他の通信ルートを用いてプログラムをダウンロ
ードし、受信装置のソフトウェアを改訂することができ
る。
【0174】また、前記プログラム構成管理装置はさら
に、プログラムのテスト結果やその時のプログラム構成
を電話回線等の双方向の通信路を使って、センター側
(プログラムの提供側)に通知する手段を備えてもよ
い。これによって、センターは、プログラムのバグや組
み合わせ不整合についての情報を統計的に把握すること
ができ、デバッグやプログラムの品質改善に役立てるこ
とが可能となる。
【0175】以上のように、本発明によって、ダウンロ
ードによってプログラムを改訂する通信端末機器におい
て、ダウンロードの履歴を参照しながら整合性を維持し
つつ古いバージョンのプログラム構成に遡及することが
可能となり、特に、通信サービスの多様化が急速に進ん
でいる衛星放送等の受信装置のプログラム構成管理装置
として、本発明の実用的価値は極めて大きい。
【図面の簡単な説明】
【図1】本発明のプログラム構成管理装置を内蔵するデ
ジタル衛星放送用受信装置全体のハードウェア構成図で
ある。
【図2】(a)は放送センターから送信されるオブジェ
クトのデータ構造を示す図であり、(b)はオブジェク
トヘッダ106のデータ構造を示す図である。
【図3】(a)及び(b)は、それぞれ、オブジェクト
種151eがモジュール及びアプリケーションである場
合の依存関係情報151gの詳細なデータ構造を示す図
である。
【図4】第1の実施の形態に係るプログラム構成管理装
置100の構成を示す機能ブロック図である。
【図5】オブジェクト格納部140に格納されているプ
ログラム群の様子を示す図である。
【図6】オブジェクトテーブル記憶部150に格納され
ているオブジェクトテーブルのデータ構造を示す図であ
る。
【図7】実行テーブル記憶部190に格納されている実
行テーブルのデータ構造を示す図である。
【図8】履歴情報記憶部160に格納されている履歴情
報のデータ構造を示す図である。
【図9】ダウンロード予約リスト記憶部170に格納さ
れている予約リストのデータ構造を示す図である。
【図10】プログラム構成管理装置100によるプログ
ラムのダウンロードについての全体的な動作手順を示す
フローチャートである。
【図11】図10に示された全体フローにおける第1の
処理の詳細な手順を示すフローチャートである。
【図12】一時記憶バッファ180に一時的に記録され
る主な情報を示し、(a)はヘッダ情報10、(b)は
一時的に格納されているプログラム、(c)はダウンロ
ードテーブル30、(d)は一時オブジェクト記憶テー
ブル40、(e)は候補プログラムスタック50、
(f)はチェックフラグ、(g)は一時スタック70の
データ構造を示す図である。
【図13】図11におけるステップS4のさらに詳細な
手順を示すフローチャートである。
【図14】図10に示された全体フローにおける第2の
処理の詳細な手順を示すフローチャートである。
【図15】図10に示された全体フローにおける第3の
処理の詳細な手順を示すフローチャートである。
【図16】書き込み候補プログラム55についての実行
可能性をチェックする手順を示すフローチャートであ
る。
【図17】履歴を遡及してプログラムのバージョンを過
去のバージョンへ戻す場合のプログラム構成管理装置1
00の動作手順を示すフローチャートである。
【図18】遡及命令に伴って受信装置510に与えられ
る変更情報80のデータ構造を示す図である。
【図19】プログラム構成管理装置100がプログラム
の配置変更処理を行う際の動作手順を示すフローチャー
トである。
【図20】一時的に空ブロックを作成する手順を示すフ
ローチャートである。
【図21】第2の実施の形態に係るプログラム構成管理
装置200の構成を示す機能ブロック図である。
【図22】(a)はバージョンアップのために放送セン
ターから送信されてくる情報であり、(b)はテストケ
ースヘッダ206、(c)テストケース本体207のデ
ータ構造を示す図である。
【図23】一時記憶バッファ180に展開された対象プ
ログラムに対してテスト実行部220がテスト実行を行
う際の手順を示すフローチャートである。
【図24】第2の実施の形態における一時記憶バッファ
180に展開されたプログラムをオブジェクト格納部1
40に移動させる処理手順を示すフローチャートであ
る。
【図25】第2の実施の形態における一時記憶バッファ
180に格納されていたプログラムのうち、対象プログ
ラムのダウンロードによって実行可能となったものをオ
ブジェクト格納部140に移動させる処理手順を示すフ
ローチャートである。
【図26】実行候補スタックから取り出された実行候補
アプリケーションをテスト実行し動作確認するフローチ
ャートである。
【図27】第3の実施の形態に係るプログラム構成管理
装置300の構成を示す機能ブロック図である。
【図28】オブジェクト格納部140に格納されたプロ
グラムを補助記憶部310にバックアップする手順を示
すフローチャートである。
【図29】図28に示された手順でバックアップされた
補助記憶部310内のプログラム等を受信装置510に
戻して再構築する際の手順を示すフローチャートであ
る。
【図30】第4の実施の形態に係るデジタル衛星放送用
受信システム全体のハードウェア構成を示す図である。
【図31】図30に示された受信装置510に内蔵され
るプログラム構成管理装置400の構成を示す機能ブロ
ック図である。
【図32】プログラム構成管理装置400によるユーザ
との対話についての動作手順を示すフローチャートであ
る。
【図33】プログラム構成管理装置400による「テス
ト条件設定メニュー」の表示例である。
【図34】プログラム構成管理装置400によるEPG
の表示例である。
【図35】プログラム構成管理装置400による「プロ
グラム取得メニュー」の表示例である。
【図36】ハイパーリンク構造を有するモジュール化さ
れたデータ構造を示す図である。
【符号の説明】
100 第1の実施の形態に係るプログラム構成管理
装置 110 プログラムダウンロード部 120、121 プログラム管理部 130 履歴情報管理部 140 オブジェクト格納部 150 オブジェクトテーブル記憶部 160 履歴情報記憶部 170 ダウンロード予約リスト記憶部 180 一時記憶バッファ 190 実行テーブル記憶部 200 第2の実施の形態に係るプログラム構成管理
装置 220 テスト実行部 300 第3の実施の形態に係るプログラム構成管理
装置 310 補助記憶部 320 バックアップ記録部 510 受信装置 511 アンテナ 512 受信部 513 デコーダ 514 映像信号再生部 515 入出力部 516 CPU 517 RAM 518 EEPROM 519 カウンター・タイマー

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 通信端末機器に備えられ、その通信端末
    機器に必要な複数のプログラムの構成を管理する装置で
    あって、 通信路を介して前記プログラムをダウンロードするダウ
    ンロード手段と、 ダウンロードされたプログラムを最新バージョンだけで
    なく過去のバージョンも含めて蓄積して記憶するプログ
    ラム記憶手段と、 特定のプログラムについてバージョンを遡及させる旨の
    指示を受けると、前記プログラム記憶手段に記憶された
    プログラムのうち指示されたプログラムについては、現
    行バージョンを無効化して過去のバージョンを有効化さ
    せるバージョン遡及手段とを備えることを特徴とするプ
    ログラム構成管理装置。
  2. 【請求項2】 前記プログラム記憶手段は、 前記プログラムを記憶しているプログラム格納部と、 前記プログラム格納部に格納されたプログラムについ
    て、プログラムの名前、バージョン及び実行の対象とな
    っている有効な状態かそうでない無効な状態かを示す有
    効無効情報を含む管理情報を記憶している管理情報格納
    部とを有し、 前記バージョン遡及手段は、 前記特定のプログラムの名前と遡及先バージョンの指定
    を受ける受付部と、 前記プログラム格納部に格納されたプログラムのうち指
    定された名前と同一名のプログラムについては、前記遡
    及先バージョン以前でかつ最新のバージョンのプログラ
    ムに対応する前記管理情報の有効無効情報だけを有効化
    する遡及部とを有することを特徴とする請求項1記載の
    プログラム構成管理装置。
  3. 【請求項3】 前記プログラム構成管理装置はさらに、
    ダウンロードされたプログラムの名前、バージョン、ダ
    ウンロードされた日時及び無効化された場合にはその日
    時を含む履歴情報を記憶する履歴情報記憶手段を備え、 前記管理情報にはさらに、当該プログラムと依存関係を
    持つプログラムの名前とバージョンが含まれ、 前記バージョン遡及手段はさらに、前記管理情報を参照
    することにより、指定された名前のプログラムと依存関
    係を持つ全てのプログラムを特定し、それらプログラム
    について、前記履歴情報を参照することにより、前記遡
    及部によって有効化されたプログラムが過去に無効化さ
    れたときの日時より前でかつ最新の日時にダウンロード
    されたバージョンのプログラムに対応する前記管理情報
    の有効無効情報を有効化する関連プログラム遡及部を有
    することを特徴とする請求項2記載のプログラム構成管
    理装置。
  4. 【請求項4】 前記プログラム構成管理装置はさらに、 取り外し可能な不揮発性メモリと、 指定されたプログラムについて、前記プログラム格納部
    に記憶されたプログラム、前記管理情報格納部に記憶さ
    れた管理情報及び前記履歴情報記憶手段に記憶された履
    歴情報を前記不揮発性メモリにコピーするバックアップ
    手段と、 前記不揮発性メモリに記憶されたプログラム、その管理
    情報及びその履歴情報をそれぞれ前記プログラム格納
    部、前記管理情報格納部及び前記履歴情報記憶手段に読
    み出す読み出し手段とを備えることを特徴とする請求項
    3記載のプログラム構成管理装置。
  5. 【請求項5】 前記プログラム構成管理装置はさらに、
    ダウンロードされたプログラムをテスト実行し、テスト
    実行に合格したプログラムだけを前記プログラム記憶手
    段に格納するテスト実行手段を備えることを特徴とする
    請求項1記載のプログラム構成管理装置。
  6. 【請求項6】 前記ダウンロード手段は、前記プログラ
    ムと共に、そのプログラムをテスト実行する際の条件と
    合格基準とをダウンロードし、 前記テスト実行手段は、前記条件と合格基準を用いて前
    記プログラムをテスト実行し合否を判定することを特徴
    とする請求項5記載のプログラム構成管理装置。
  7. 【請求項7】 前記テスト実行手段は、 テスト実行による合否の判定結果をそのプログラムに対
    応させて記録し保存しておくテスト結果保存部を有し、 前記プログラムのテスト実行に先立って、前記テスト結
    果保存部を参照し、そのプログラムが過去のテスト実行
    に不合格となっていたと判明した場合にはテスト実行を
    中断することを特徴とする請求項6記載のプログラム構
    成管理装置。
  8. 【請求項8】 前記プログラム構成管理装置はさらに、
    グラフィック表示によるユーザとの対話を実行する対話
    手段を備え、 前記テスト実行手段は、ダウンロードされた前記プログ
    ラムのうち、前記対話手段によって特定されたプログラ
    ムをテスト実行することを特徴とする請求項5記載のプ
    ログラム構成管理装置。
  9. 【請求項9】 前記対話手段は、前記テスト実行手段に
    よるテスト実行の様子をグラフィック表示するととも
    に、そのテスト実行に対する合否判断をユーザから取得
    することを特徴とする請求項8記載のプログラム構成管
    理装置。
  10. 【請求項10】 前記プログラム構成管理装置はさら
    に、不要となったプログラム及びバージョンの指定を受
    け付け、指定されたプログラムであって指定されたバー
    ジョン以前のバージョンのものを前記プログラム記憶手
    段から消去し、消去によって生じた空き領域を集中させ
    るよう残されたプログラムの前記プログラム記憶手段に
    おける配置を変更する配置変更手段を備えることを特徴
    とする請求項1記載のプログラム構成管理装置。
  11. 【請求項11】 前記ダウンロード手段及び前記バージ
    ョン遡及手段は、前記通信端末機器において実行される
    プログラムとして実現され、 前記ダウンロード手段によってダウンロードされるプロ
    グラム、前記プログラム記憶手段に記憶されるプログラ
    ム及び前記バージョン遡及手段によって有効化されるプ
    ログラムには、前記ダウンロード手段及び前記バージョ
    ン遡及手段を実現するためのプログラムも含まれること
    を特徴とする請求項1記載のプログラム構成管理装置。
  12. 【請求項12】 前記プログラム構成管理装置はさら
    に、前記プログラム記憶手段に記憶されたプログラムの
    うち実行の対象となるものをロードして一時的に保持す
    る一時記憶バッファを備え、 前記通信端末機器は、前記一時記憶バッファに保持され
    たプログラムを実行することを特徴とする請求項1記載
    のプログラム構成管理装置。
  13. 【請求項13】 前記プログラム構成管理装置はさら
    に、グラフィック表示によるユーザとの対話を実行する
    対話手段を備え、 前記ダウンロード手段は、前記対話手段によって特定さ
    れたプログラムをダウンロードすることを特徴とする請
    求項1記載のプログラム構成管理装置。
  14. 【請求項14】 前記対話手段は、ユーザによって指定
    されたプログラムと依存関係を持つ全てのプログラムを
    表示するとともに、前記通信路として選択可能な複数の
    取得ルートを表示し、 前記ダウンロード手段は、前記対話手段によって特定さ
    れたプログラムを前記対話手段によって特定された取得
    ルートでダウンロードすることを特徴とする請求項13
    記載のプログラム構成管理装置。
  15. 【請求項15】 通信端末機器において、その通信端末
    機器に必要なプログラムの構成を管理する方法であっ
    て、 通信路を介して前記プログラムをダウンロードするダウ
    ンロードステップと、 ダウンロードされたプログラムを最新バージョンだけで
    なく過去のバージョンも含めてプログラム記憶手段に蓄
    積して格納するプログラム格納ステップと、 特定のプログラムについてバージョンを遡及させる旨の
    指示を受けると、前記プログラム記憶手段に記憶された
    プログラムのうち指示されたプログラムについては、現
    行バージョンを無効化して過去のバージョンを有効化さ
    せるバージョン遡及ステップとを有することを特徴とす
    るプログラム構成管理方法。
  16. 【請求項16】 前記プログラム記憶手段は、 前記プログラムを格納しているプログラム格納部と、 前記プログラム格納部に格納されたプログラムについ
    て、プログラムの名前、バージョン及び実行の対象とな
    っている有効な状態かそうでない無効な状態かを示す有
    効無効情報を含む管理情報を格納している管理情報格納
    部とを有し、 前記バージョン遡及ステップは、 前記特定のプログラムの名前と遡及先バージョンの指定
    を受ける受付サブステップと、 前記プログラム格納部に格納されたプログラムのうち指
    定された名前と同一名のプログラムについては、前記遡
    及先バージョン以前でかつ最新のバージョンのプログラ
    ムに対応する前記管理情報の有効無効情報だけを有効化
    する遡及サブステップとを含むことを特徴とする請求項
    15記載のプログラム構成管理方法。
  17. 【請求項17】 前記プログラム構成管理方法はさら
    に、ダウンロードされたプログラムをテスト実行し、テ
    スト実行に合格したプログラムだけを前記プログラム記
    憶手段に格納するテスト実行ステップを有することを特
    徴とする請求項15記載のプログラム構成管理方法。
  18. 【請求項18】 前記プログラム構成管理方法はさら
    に、不要となったプログラム及びバージョンの指定を受
    け付け、指定されたプログラムであって指定されたバー
    ジョン以前のバージョンのものを前記プログラム記憶手
    段から消去し、消去によって生じた空き領域を集中させ
    るよう残されたプログラムの前記プログラム記憶手段に
    おける配置を変更する配置変更ステップを有することを
    特徴とする請求項15記載のプログラム構成管理方法。
  19. 【請求項19】 前記ダウンロードステップ及び前記バ
    ージョン遡及ステップは、前記通信端末機器において実
    行されるプログラムとして実現され、 前記ダウンロードステップによってダウンロードされる
    プログラム、前記プログラム記憶手段に格納されるプロ
    グラム及び前記バージョン遡及ステップによって有効化
    されるプログラムには、前記ダウンロードステップ及び
    前記バージョン遡及ステップを実現するためのプログラ
    ムも含まれることを特徴とする請求項15記載のプログ
    ラム構成管理方法。
  20. 【請求項20】 前記プログラム構成管理方法はさら
    に、前記プログラム記憶手段に格納されたプログラムの
    うち実行の対象となるものを一時記憶バッファにロード
    し、それらプログラムについて前記通信端末機器に実行
    させる一時記憶バッファロードステップを有することを
    特徴とする請求項15記載のプログラム構成管理方法。
  21. 【請求項21】 前記プログラム構成管理装置方法はさ
    らに、グラフィック表示によるユーザとの対話を実行す
    る対話ステップを有し、 前記ダウンロードステップでは、前記対話ステップで特
    定されたプログラムをダウンロードすることを特徴とす
    る請求項15記載のプログラム構成管理方法。
  22. 【請求項22】 請求項15〜21のいずれか1項に記
    載のステップをコンピュータに実行させるプログラムを
    記録したコンピュータ読み取り可能な記録媒体。
JP2000024058A 1999-02-03 2000-02-01 プログラム構成管理装置 Withdrawn JP2000293365A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000024058A JP2000293365A (ja) 1999-02-03 2000-02-01 プログラム構成管理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2627299 1999-02-03
JP11-26272 1999-02-03
JP2000024058A JP2000293365A (ja) 1999-02-03 2000-02-01 プログラム構成管理装置

Publications (2)

Publication Number Publication Date
JP2000293365A true JP2000293365A (ja) 2000-10-20
JP2000293365A5 JP2000293365A5 (ja) 2007-03-22

Family

ID=26364031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000024058A Withdrawn JP2000293365A (ja) 1999-02-03 2000-02-01 プログラム構成管理装置

Country Status (1)

Country Link
JP (1) JP2000293365A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169693A (ja) * 2000-11-30 2002-06-14 Digital Electronics Corp 制御用表示装置、および、そのプログラムが記録された記録媒体
JP2003345597A (ja) * 2002-05-22 2003-12-05 Nec Fielding Ltd 修正情報適用システム,方法およびプログラム
JP2005250904A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp オブジェクト履歴管理装置
JP2006309413A (ja) * 2005-04-27 2006-11-09 Mitsubishi Electric Corp ソフトウェア障害復旧システム
JP2008299709A (ja) * 2007-06-01 2008-12-11 Nec Corp ファームウェア更新システム、ネットワーク接続機器、ファームウェア更新方法及びプログラム
EP2278462A1 (en) 2009-07-17 2011-01-26 Ricoh Company, Ltd. Information processor, information processing method, and computer-readable storage medium
JP2011215760A (ja) * 2010-03-31 2011-10-27 Hitachi Ltd 計算機システム、及び、モジュール実行方法
US8091014B2 (en) 2007-08-22 2012-01-03 Denso Corporation Electronic apparatus in which functioning of a microcomputer is monitored by another microcomputer to detect abnormal operation
US8756385B2 (en) 2008-06-30 2014-06-17 International Business Machines Corporation Software configuration item back-up facility
US8804168B2 (en) 2008-09-29 2014-08-12 Canon Kabushiki Kaisha System, server, image forming apparatus, system control method, and storage medium

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169693A (ja) * 2000-11-30 2002-06-14 Digital Electronics Corp 制御用表示装置、および、そのプログラムが記録された記録媒体
JP2003345597A (ja) * 2002-05-22 2003-12-05 Nec Fielding Ltd 修正情報適用システム,方法およびプログラム
JP2005250904A (ja) * 2004-03-04 2005-09-15 Mitsubishi Electric Corp オブジェクト履歴管理装置
JP4684564B2 (ja) * 2004-03-04 2011-05-18 三菱電機株式会社 オブジェクト履歴管理装置
JP2006309413A (ja) * 2005-04-27 2006-11-09 Mitsubishi Electric Corp ソフトウェア障害復旧システム
JP2008299709A (ja) * 2007-06-01 2008-12-11 Nec Corp ファームウェア更新システム、ネットワーク接続機器、ファームウェア更新方法及びプログラム
US8091014B2 (en) 2007-08-22 2012-01-03 Denso Corporation Electronic apparatus in which functioning of a microcomputer is monitored by another microcomputer to detect abnormal operation
US8756385B2 (en) 2008-06-30 2014-06-17 International Business Machines Corporation Software configuration item back-up facility
US8804168B2 (en) 2008-09-29 2014-08-12 Canon Kabushiki Kaisha System, server, image forming apparatus, system control method, and storage medium
EP2278462A1 (en) 2009-07-17 2011-01-26 Ricoh Company, Ltd. Information processor, information processing method, and computer-readable storage medium
US8543995B2 (en) 2009-07-17 2013-09-24 Ricoh Company, Ltd. Information processor, information processing method, and computer-readable storage medium
JP2011215760A (ja) * 2010-03-31 2011-10-27 Hitachi Ltd 計算機システム、及び、モジュール実行方法

Similar Documents

Publication Publication Date Title
US6704933B1 (en) Program configuration management apparatus
US9407972B2 (en) Data processor, program updating method and storage medium
US6205450B1 (en) Computer system capable of restarting system using disk image of arbitrary snapshot
EP0968468B1 (en) Computer memory organization and method therefor
JP2000293365A (ja) プログラム構成管理装置
CN1936844A (zh) 用于更新软件的方法和系统
KR20010086352A (ko) 플래시 마이크로컴퓨터의 프로그램 재기록 방법
US20050193390A1 (en) Program downloading method, program switching method and network apparatus
JP2003029997A (ja) ネットワーク環境におけるソフトウェアアップグレード方法及びそれによるネットワークデバイス
GB2326254A (en) Agent system sends object including program and data to server for execution
CN102890638A (zh) 一种机顶盒升级方法
US7680983B2 (en) Method of restoring data by CDP utilizing file system information
CN113760234B (zh) 一种软件开发方法和系统
CN110597532A (zh) 一种数据采集模块及其固件升级方法和存储介质
JP2009048557A (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
KR100516551B1 (ko) 원격 소프트웨어 업그레이드 시스템 및 방법
US20040187025A1 (en) Remote data update system
JP4343925B2 (ja) 放送受信装置及び放送受信装置の制御方法
CN115002546B (zh) 一种Linux智能电视操作系统的升级方法及系统
EP1302851A2 (en) Improvements relating to reprogramming an electronic apparatus
JP6905111B2 (ja) 管理装置と情報処理装置とを含むシステム、情報処理装置、それらの制御方法、及びプログラム
CN113626245B (zh) 防止ios应用程序崩溃的方法
CN109287123A (zh) 控制装置及编辑装置
CN116204353B (zh) 车机系统的恢复还原方法、装置、设备及存储介质
KR100462620B1 (ko) 하드 디스크 드라이브를 갖는 영상 처리 장치의 데이타저장 및 복구 방법들과 이 방법들을 수행하는 영상 처리장치

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070131

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100608