(57)【要約】【課題】データストリーム受信装置において、実行指示されたスクリプトを確実に実行すること。【解決手段】受信手段１０１と、記憶手段１０２と、コマンド実行手段１０３と、スクリプト実行指示手段１０４と、スクリプト解析手段１０５と、モジュール保護手段１０６とを備えたデータストリーム受信装置。スクリプト実行指示手段１０４のスクリプトの実行指示で、スクリプト解析手段は、記憶手段に蓄積されたスクリプトを読み出し、スクリプトから参照されているモジュールを解析し、リストを作成する。そのリストをもとに、モジュール保護手段は、記憶手段のモジュールの保護を行い、受信手段からの削除要求があっても削除されないようにすることで、途中で必要なモジュールの削除はおこなわれずに確実にスクリプトを実行する。【選択図】図１
2005184185.tif 000002
【特許請求の範囲】
【請求項１】
連続して得られるデータで構成されるデータストリームを受する受信手段と、
データストリームに含まれるデータを前記受信手段により蓄積される記憶手段と、
前記記憶手段に蓄積されているデータに記述されている、１つ以上のコマンドから構成されるスクリプトを解析するスクリプト解析手段と、
前記スクリプト解析手段が解析した結果を受けて、前記記憶手段に蓄積されているデータを保護するモジュール保護手段と、
前記記憶手段に蓄積されているスクリプトに含まれる各コマンドの実行を行うコマンド実行手段と、から構成され、
前記記憶手段に蓄積されているデータが削除されても構わない状態に破棄される破棄タイミングで、前記モジュール保護手段により保護されているデータは、前記記憶手段から破棄されないことを特徴とするデータストリーム受信装置。
【請求項２】
前記破棄タイミングは、前記受信手段が複数データのまとまりである番組の境界を検出したタイミングであることを特徴とする請求項１に記載のデータストリーム受信装置。
【請求項３】
前記破棄タイミングは、前記記憶手段に蓄積されているデータに設定された有効期限が切れたタイミングであることを特徴とする請求項１に記載のデータストリーム受信装置。
【請求項４】
請求項２または３に記載のデータストリーム受信装置であって、さらに、ユーザによりスクリプトの実行を指示されるとスクリプトの実行指示を出すスクリプト実行指示手段を有し、スクリプトの実行指示を前記スクリプト解析手段に指示したタイミングで、前記スクリプト解析手段がスクリプトの解析処理を開始することを特徴とするデータストリーム受信装置。
【請求項５】
前記受信手段がスクリプトを受信すると、前記スクリプト解析手段は、受信したスクリプトの解析を開始することを特徴とする請求項２または３に記載のデータストリーム受信装置。
【請求項６】
前記受信手段が番組の境界を検出した際、スクリプトが実行されていない場合は、前記モジュール保護手段により保護されているデータはすべて解除されることを特徴とする請求項５に記載のデータストリーム受信装置。
【請求項７】
前記受信手段が番組の境界を検出した際、スクリプトが実行されている場合、前記モジュール保護手段は、実行しているスクリプトに含まれるコマンドが参照しているデータの保護を継続し、任意の保護解除タイミングで実行しているスクリプト以外で参照されるデータの保護を解除することを特徴とする請求項６記載のデータストリーム受信装置。
【請求項８】
前記保護解除タイミングは、前記受信手段が番組の境界を検出したタイミングであることを特徴とする請求項７に記載のデータストリーム受信装置。
【請求項９】
前記保護解除タイミングは、実行中のスクリプトが実行完了したタイミングであることを特徴とする請求項７記載のデータストリーム受信装置。
【請求項１０】
前記スクリプト解析手段は、スクリプト中に含まれるコマンドにより参照されるデータの呼び出し位置や呼び出し回数をカウントし、保護するべきデータのリストを作成することを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１１】
前記モジュール保護手段により、データの保護が行われている間、ユーザに状況をつたえる通知を行うことを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１２】
前記通知は、表示画面上にダイアログを表示することを特徴とする請求項１１に記載のデータストリーム受信装置。
【請求項１３】
前記通知は、データストリーム受信装置に付属する警告灯を点灯させる
ことを特徴とする請求項１１に記載のデータストリーム受信装置。
【請求項１４】
前記受信手段が番組の境界を検出した後、前記受信手段は、新たに取得したデータを前記記憶手段の空き領域に蓄積を行うことを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１５】
前記空き領域に蓄積を行ったデータは、保護されているデータに影響を与えないように、表示画面の更新を行うために処理されることを特徴とする請求１４に記載のデータストリーム受信装置。
【請求項１６】
前記モジュール保護手段は、前記記憶手段の保護すべきデータが前記受信手段の削除命令を受けても削除されないように、ロック処理をおこなうことにより、データの保護を行うことを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１７】
前記モジュール保護手段は、前記記憶手段の保護すべきデータが前記受信手段の削除命令を受けても削除されないように、データを前記受信手段により削除が行われない別領域に移動することで、データの保護を行うことを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１８】
前記受信手段は、番組の境界を検出した際、前記モジュール保護手段に保護されるデータを問い合わせ、前記記憶手段に含まれる、保護されているデータ以外のデータの削除を行うことを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項１９】
前記コマンド実行手段は、コマンド実行後、コマンドの実行完了を前記モジュール保護手段に伝えることを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項２０】
前記モジュール保護手段は、前記コマンド実行手段よりコマンド実行完了の通知を受けると、前記モジュール保護手段がもつ保護すべきモジュールのリストを更新し、保護されるべきデータの保護を解除することを特徴とする請求項１９に記載のデータストリーム受信装置。
【請求項２１】
前記コマンドは、前記記憶手段から外部にデータを転送するコマンドであることを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項２２】
前記記憶手段から転送されるデータの行き先は印刷装置であることを特徴とする請求項２１に記載のデータストリーム受信装置。
【請求項２３】
前記記憶手段から転送されるデータの行き先は蓄積媒体であることを特徴とする請求項２１に記載のデータストリーム受信装置。
【請求項２４】
前記データストリームはトランスポートストリームであり、前記データはモジュールであることを特徴とする請求項４または６に記載のデータストリーム受信装置。
【請求項２５】
前記番組はデータイベントであることを特徴とする請求項２４に記載のデータストリーム受信装置。
【請求項２６】
連続して得られるデータで構成されるデータストリームを受する受信ステップと、
データストリームに含まれるデータを前記受信ステップにより蓄積される記憶ステップと、
前記記憶ステップに蓄積されているデータに記述されている、１つ以上のコマンドから構成されるスクリプトを解析するスクリプト解析ステップと、
前記スクリプト解析ステップが解析した結果を受けて、前記記憶ステップに蓄積されているデータを保護するモジュール保護ステップと、
前記記憶ステップに蓄積されているスクリプトに含まれる各コマンドの実行を行うコマンド実行ステップと、から構成され、
前記記憶ステップに蓄積されているデータが削除されても構わない状態に破棄される破棄タイミングで、前記モジュール保護ステップにより保護されているデータは、前記記憶ステップから破棄されないことを特徴とするデータストリーム受信方法。
【請求項２７】
前記破棄タイミングは、前記受信ステップが複数データのまとまりである番組の境界を検出したタイミングであることを特徴とする請求項２６に記載のデータストリーム受信方法。
【請求項２８】
前記破棄タイミングは、前記記憶ステップに蓄積されているデータに設定された有効期限が切れたタイミングであることを特徴とする請求項２６に記載のデータストリーム受信方法。
【請求項２９】
請求項２７または２８に記載のデータストリーム受信方法であって、さらに、ユーザによりスクリプトの実行を指示されるとスクリプトの実行指示を出すスクリプト実行指示ステップを有し、スクリプトの実行指示を前記スクリプト解析ステップに指示したタイミングで、前記スクリプト解析ステップがスクリプトの解析処理を開始する
ことを特徴とするデータストリーム受信方法。
【請求項３０】
前記受信ステップがスクリプトを受信すると、前記スクリプト解析ステップは、受信したスクリプトの解析を開始することを特徴とする請求項２７または２８に記載のデータストリーム受信方法。
【請求項３１】
前記受信ステップが番組の境界を検出した際、スクリプトが実行されていない場合は、前記モジュール保護ステップにより保護されているデータはすべて解除されることを特徴とする請求項３０に記載のデータストリーム受信方法。
【請求項３２】
請求項２６〜３１のいずれか一項に記載のデータストリーム受信方法を実行するためのプログラム。
【請求項３３】
請求項３２に記載のプログラムを記録した媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スクリプトにより、他の装置に対して受信したデータを出力する機能を有するデータストリーム受信装置に関するものである。
【背景技術】
【０００２】
デジタル放送やインターネット上でのストリーミングなどを用いて、映像音声以外に、静止画や文字列など、様々なデータをデータストリームの形式にして、複数の受信装置に対して同時に配信することが可能となってきた。これらの映像音声以外のデータ（マルチメディアデータ）を送る方式に関して、例えばデジタル放送においては、ＡＲＩＢ（電波産業会）にて、規格が詳細に決められている。この規格では、マルチメディアデータは、モジュールというデータで構成される。
【０００３】
ＡＲＩＢの規格では、モジュールをあるグループにまとめ、それらグループにＩＤをふり、１つ１つの番組のコンテンツとして管理している。受信機では、このＩＤが切り替わったモジュールを受信した場合、番組が切り替わったと認識して、それまでメモリ上に保持していたモジュールを破棄し、新たなモジュールをメモリ上に取得していく。これらの処理に関しても、ＡＲＩＢにより規格化されており、ＡＲＩＢ  ＴＲ−Ｂ１５の第３編、５．３．１．７章に詳細が記述されている。同様に、データ放送に限らず、コンテンツの有効期限をもうけたサービスにおいて、有効期限がきた際にそのコンテンツが利用できないように、メモリ上に存在する対象コンテンツを破棄をするなどの処理が行われる場合がある。
【０００４】
また、マルチメディアデータ内に、１つ以上のコマンドから構成されるスクリプトを記述することができ、受信機内でスクリプトを解析することにより、印刷やデータ転送などのコマンド操作を受信機に行わせることができる。Ｊａｖａ（登録商標）Ｓｃｒｉｐｔなど、さまざまなスクリプトが考えられるが、例えばデータ放送においては、これらのコマンドの内容やスクリプトの記述方法に関して、ＡＲＩＢにより規格化されており、ＡＲＩＢ  ＳＴＤ−Ｂ２４、ＡＲＩＢ  ＴＲ−Ｂ１５に詳細が記述されている。
【非特許文献１】ＡＲＩＢ  ＳＴＤ−Ｂ２４
【非特許文献２】ＡＲＩＢ  ＴＲ−Ｂ１５
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、印刷などのスクリプトの実行には処理時間が必要なものも存在する。例えば、スクリプトの一部であるコマンドＡを実行中に、番組のグループを示すＩＤが切り替わった場合に問題が発生する。コマンドＡの実行に必要なデータは、メモリ上にてロックが行われているため、ＩＤがきりかわったとしてもメモリ上から破棄されないが、それ以外のデータに関しては、メモリ上にあるモジュールが破棄されてしまうため、コマンドＡ以降のスクリプトが実行することができない現象が発生する。
【０００６】
また、コンテンツに有効期限が設けられており、スクリプト実行中に有効期限がきてしまった場合も同様で、メモリ上にあるモジュールが破棄されてしまうため、スクリプトが実行することができない現象が発生する。
【０００７】
本発明は、前記従来の課題を解決するもので、マルチメディアデータに記述されたスクリプトに記述された、全てのコマンドを確実に実行することを目的とする。
【課題を解決するための手段】
【０００８】
前記従来の課題を解決するために、本発明のデータストリーム受信装置は、連続して得られるデータで構成されるデータストリームを受する受信手段と、データストリームに含まれるデータを受信手段により蓄積される記憶手段と、記憶手段に蓄積されているデータに記述されている、１つ以上のコマンドから構成されるスクリプトを解析するスクリプト解析手段と、スクリプト解析手段が解析した結果を受けて、記憶手段に蓄積されているデータを保護するモジュール保護手段と、記憶手段に蓄積されているスクリプトに含まれる各コマンドの実行を行うコマンド実行手段とから構成され、受信手段が複数データのまとまりである番組の境界を検出した際やコンテンツの有効期限が発生した際でも、モジュール保護手段により保護されているデータは、記憶手段から破棄されないことを特徴とする。
【０００９】
本構成によって、番組が更新され、記憶手段の内容を破棄する処理が動作したとしても、実行を指示されたスクリプトを確実に実行することができる。
【００１０】
本発明の一実施態様において、前記破棄タイミングは、前記受信手段が複数データのまとまりである番組の境界を検出したタイミングである。
【００１１】
本発明の一実施態様において、前記破棄タイミングは、前記記憶手段に蓄積されているデータに設定された有効期限が切れたタイミングである。
【００１２】
本発明の一実施態様において、前述のデータストリーム受信装置はさらに、ユーザによりスクリプトの実行を指示されるとスクリプトの実行指示を出すスクリプト実行指示手段を有し、スクリプトの実行指示を前記スクリプト解析手段に指示したタイミングで、前記スクリプト解析手段がスクリプトの解析処理を開始する。
【００１３】
本発明の一実施態様において、前記受信手段がスクリプトを受信すると、前記スクリプト解析手段は、受信したスクリプトの解析を開始する。
【００１４】
本発明の一実施態様において、前記受信手段が番組の境界を検出した際、スクリプトが実行されていない場合は、前記モジュール保護手段により保護されているデータはすべて解除される。
【００１５】
本発明の一実施態様において、前記受信手段が番組の境界を検出した際、スクリプトが実行されている場合、前記モジュール保護手段は、実行しているスクリプトに含まれるコマンドが参照しているデータの保護を継続し、任意の保護解除タイミングで実行しているスクリプト以外で参照されるデータの保護を解除する。
【００１６】
本発明の一実施態様において、前記保護解除タイミングは、前記受信手段が番組の境界を検出したタイミングである。
【００１７】
本発明の一実施態様において、前記保護解除タイミングは、実行中のスクリプトが実行完了したタイミングである。
【００１８】
本発明の一実施態様において、前記スクリプト解析手段は、スクリプト中に含まれるコマンドにより参照されるデータの呼び出し位置や呼び出し回数をカウントし、保護するべきデータのリストを作成する。
【００１９】
本発明の一実施態様において、前記モジュール保護手段により、データの保護が行われている間、ユーザに状況を伝える通知を行う。
【００２０】
本発明の一実施態様において、前記通知は、表示画面上にダイアログを表示する。
【００２１】
本発明の一実施態様において、前記通知は、データストリーム受信装置に付属する警告灯を点灯させる。
【００２２】
本発明の一実施態様において、前記受信手段が番組の境界を検出した後、前記受信手段は、新たに取得したデータを前記記憶手段の空き領域に蓄積を行う。
【００２３】
本発明の一実施態様において、前記空き領域に蓄積を行ったデータは、保護されているデータに影響を与えないように、表示画面の更新を行うために処理される。
【００２４】
本発明の一実施態様において、前記モジュール保護手段は、前記記憶手段の保護すべきデータが前記受信手段の削除命令を受けても削除されないように、ロック処理をおこなうことにより、データの保護を行う。
【００２５】
本発明の一実施態様において、前記モジュール保護手段は、前記記憶手段の保護すべきデータが前記受信手段の削除命令を受けても削除されないように、データを前記受信手段により削除が行われない別領域に移動することで、データの保護を行う。
【００２６】
本発明の一実施態様において、前記受信手段は、番組の境界を検出した際、前記モジュール保護手段に保護されるデータを問い合わせ、前記記憶手段に含まれる、保護されているデータ以外のデータの削除を行う。
【００２７】
本発明の一実施態様において、前記コマンド実行手段は、コマンド実行後、コマンドの実行完了を前記モジュール保護手段に伝える。
【００２８】
本発明の一実施態様において、前記モジュール保護手段は、前記コマンド実行手段よりコマンド実行完了の通知を受けると、前記モジュール保護手段がもつ保護すべきモジュールのリストを更新し、保護されるべきデータの保護を解除する。
【００２９】
本発明の一実施態様において、前記コマンドは、前記記憶手段から外部にデータを転送するコマンドである。
【００３０】
本発明の一実施態様において、前記記憶手段から転送されるデータの行き先は印刷装置である。
【００３１】
本発明の一実施態様において、前記記憶手段から転送されるデータの行き先は蓄積媒体である。
【００３２】
本発明の一実施態様において、前記データストリームはトランスポートストリームであり、前記データはモジュールである。
【００３３】
本発明の一実施態様において、前記番組はデータイベントである。
【００３４】
本発明はまた、連続して得られるデータで構成されるデータストリームを受する受信ステップと、データストリームに含まれるデータを前記受信ステップにより蓄積される記憶ステップと、前記記憶ステップに蓄積されているデータに記述されている、１つ以上のコマンドから構成されるスクリプトを解析するスクリプト解析ステップと、前記スクリプト解析ステップが解析した結果を受けて、前記記憶ステップに蓄積されているデータを保護するモジュール保護ステップと、前記記憶ステップに蓄積されているスクリプトに含まれる各コマンドの実行を行うコマンド実行ステップと、から構成され、前記記憶ステップに蓄積されているデータが削除されても構わない状態に破棄される破棄タイミングで、前記モジュール保護ステップにより保護されているデータは、前記記憶ステップから破棄されないことを特徴とするデータストリーム受信方法を提供する。
【００３５】
本発明の一実施態様において、前記破棄タイミングは、前記受信ステップが複数データのまとまりである番組の境界を検出したタイミングである。
【００３６】
本発明の一実施態様において、前記破棄タイミングは、前記記憶ステップに蓄積されているデータに設定された有効期限が切れたタイミングである。
【００３７】
本発明の一実施態様において、前述のデータストリーム受信方法はさらに、ユーザによりスクリプトの実行を指示されるとスクリプトの実行指示を出すスクリプト実行指示ステップを有し、スクリプトの実行指示を前記スクリプト解析ステップに指示したタイミングで、前記スクリプト解析ステップがスクリプトの解析処理を開始する。
【００３８】
本発明の一実施態様において、前記受信ステップがスクリプトを受信すると、前記スクリプト解析ステップは、受信したスクリプトの解析を開始する。
【００３９】
本発明の一実施態様において、前記受信ステップが番組の境界を検出した際、スクリプトが実行されていない場合は、前記モジュール保護ステップにより保護されているデータはすべて解除される。
【００４０】
本発明はまた、連続して得られるデータで構成されるデータストリームを受する受信ステップと、データストリームに含まれるデータを前記受信ステップにより蓄積される記憶ステップと、前記記憶ステップに蓄積されているデータに記述されている、１つ以上のコマンドから構成されるスクリプトを解析するスクリプト解析ステップと、前記スクリプト解析ステップが解析した結果を受けて、前記記憶ステップに蓄積されているデータを保護するモジュール保護ステップと、前記記憶ステップに蓄積されているスクリプトに含まれる各コマンドの実行を行うコマンド実行ステップと、から構成され、前記記憶ステップに蓄積されているデータが削除されても構わない状態に破棄される破棄タイミングで、前記モジュール保護ステップにより保護されているデータは、前記記憶ステップから破棄されないことを特徴とするデータストリーム受信プログラムを提供する。
【００４１】
本発明の一実施態様において、前記破棄タイミングは、前記受信ステップが複数データのまとまりである番組の境界を検出したタイミングである。
【００４２】
本発明の一実施態様において、前記破棄タイミングは、前記記憶ステップに蓄積されているデータに設定された有効期限が切れたタイミングである。
【００４３】
本発明の一実施態様において、上述のデータストリーム受信プログラムはさらに、ユーザによりスクリプトの実行を指示されるとスクリプトの実行指示を出すスクリプト実行指示ステップを有し、スクリプトの実行指示を前記スクリプト解析ステップに指示したタイミングで、前記スクリプト解析ステップがスクリプトの解析処理を開始する。
【００４４】
本発明の一実施態様において、前記受信ステップがスクリプトを受信すると、前記スクリプト解析ステップは、受信したスクリプトの解析を開始する。
【００４５】
本発明の一実施態様において、前記受信ステップが番組の境界を検出した際、スクリプトが実行されていない場合は、前記モジュール保護ステップにより保護されているデータはすべて解除される。
【００４６】
本発明はまた、上述のプログラムを記録した媒体を提供する。
【発明の効果】
【００４７】
本発明のデータストリーム受信装置によれば、マルチメディアデータに記述されたスクリプトに記述された、全てのコマンドを確実に実行することができる。また、段階的にメモリを開放していくため、メモリの節約を行うことができる。
【発明を実施するための最良の形態】
【００４８】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００４９】
（実施の形態１）
本実施の形態では、デジタル放送を例にし、スクリプトで指定されるコマンドは、印刷実行のコマンドを例にして、説明を行う。
【００５０】
図１は、本発明の実施の形態１におけるデータストリーム受信装置の構成図である。データストリーム受信装置１０は、放送を受信する受信手段１０１、放送コンテンツを記憶する記憶手段１０２、スクリプト実行の指示を行うスクリプト実行指示手段１０４、マルチメディアデータ内のスクリプトを解析するスクリプト解析手段１０５、記憶手段１０２が保持しているモジュールを保護する処理を行うモジュール保護手段１０６、スクリプト中に記述されているコマンドを実行し、印刷装置にモジュールを転送する処理を行うコマンド実行手段１０３により構成される。
【００５１】
受信手段１０１は、まず放送局から送られてくるデジタル放送を受信し、マルチメディアデータを取得する。マルチメディアデータはモジュールから構成されており、コンテンツのグループを示すデータイベントＩＤというＩＤが振られている。受信手段１０１は、データイベントＩＤの変化を監視しながら、記憶手段１０２へモジュールを蓄積していく。記憶手段１０２で蓄積されているデータを用いて、ＴＶ画面上に表示や、スクリプトを実行するなどの処理が行われる。
【００５２】
受信手段１０１が、モジュールのデータイベントＩＤの更新を検出した場合、それ以降のモジュールは新しい番組のコンテンツであると認識されるため、古い番組として蓄積されているモジュールは使用されなくなる。そこで、受信手段１０１は、以前の番組のデータである記憶手段１０２に蓄積されているモジュールは破棄し、新しくデータイベントＩＤの振られたモジュールの蓄積を開始する。
【００５３】
その後、スクリプトの実行開始指示が出された後、モジュールの保護処理の流れを図２に示す。スクリプト実行指示手段１０４により、スクリプト実行指示が出された場合（Ｓ１０）、スクリプト解析手段１０５は、スクリプト実行指示を含むスクリプトを全て記憶手段１０２より取得する。スクリプト解析手段１０５は、取得したスクリプトの中に含まれるコマンドをすべて抽出する（Ｓ１１）。さらに、その結果から、各コマンドの実行に必要となる、コマンドの引数に指定されているモジュールをすべて抽出し、リストを作成する（Ｓ１２）。
【００５４】
モジュール保護手段１０６は、スクリプト解析手段１０５により作成されたリストをもとに、記憶手段１０２上にあるモジュールの保護を行う（Ｓ１３）。保護の方法は、受信手段１０１により記憶手段１０２のモジュール削除操作があった場合、エラーを返す処理を行うことにより実現する。
【００５５】
モジュール保護手段１０６によるモジュール保護が完了した後、スクリプトの実行を開始する（Ｓ１４）。スクリプト実行中は、モジュール保護手段１０６により保護されているモジュールは、たとえ受信手段１０１がモジュールのデータイベントＩＤの更新を検出した場合（Ｓ１５）でも、記憶手段１０２から破棄されることはない。保護されていないモジュールに関しては、いつでも記憶手段から削除されてもよい状態になる（Ｓ１６）。そして、データイベントＩＤの更新後のモジュールは、記憶手段１０２の空いた領域に蓄積されていく。
【００５６】
尚、モジュールを保護する方法として、記憶手段１０２の中に、モジュール保護手段１０６によって管理されるモジュール保護領域３０２を作成し、このモジュール保護領域３０２に、保護対象のモジュールのコピーを行ってもよい。その場合、受信手段１０１がモジュールのデータイベントＩＤの更新を検出すると、記憶手段１０２の通常記憶領域３０１にあるモジュールは削除されるが、モジュール保護領域３０２にコピーされたモジュールは削除されない。コマンドのモジュール参照も、モジュール保護領域３０２にコピーされたモジュールに対して行われる。保護が解除された際は、モジュール保護領域３０２にコピーされたモジュールは、モジュール保護領域３０２から削除される。また、保護手法としては、モジュールをモジュール保護領域３０２にコピーしない場合も考えられる。モジュール保護手段１０６は、保護対象のモジュールのロックを行い、通常記憶領域３０１のモジュールが削除されないようにすることで保護をおこなってもよい。
【００５７】
モジュール保護手段１０６により、保護されていないモジュールに関しては、受信手段１０１がモジュールのデータイベントＩＤの更新を検出した場合は、それまで蓄積されていたモジュールは、記憶手段１０２において、いつでも削除がおこなえる状態になる。
【００５８】
各印刷コマンドは、コマンド実行手段１０３により実行され、実行が完了すると、コマンド実行手段１０３は、モジュール保護手段１０６に対し、それ以降のコマンドで、同じモジュールを使用するかどうかを問い合わせる。他のコマンドで使用される場合は、モジュール保護手段１０６は、モジュールの保護を継続し、使用されない場合は、対象モジュールの保護を解除し、記憶手段１０２のモジュールの領域を開放する（Ｓ１７）。この処理は、スクリプト実行が完了するまで繰り返される（Ｓ１８）。よって、スクリプトが完了した時には、すべてのモジュールの保護が解除された状態となる（Ｓ１９）。
【００５９】
以下、具体的な例を用いて、説明を行う。
【００６０】
放送局より、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＦを含むマルチメディアデータと、スクリプトＡ（Ｐ４１）が記述されたデータが放送されている。スクリプトＡ（Ｐ４１）の例を図４に示す。受信手段１０１は、これらのマルチメディアデータを受信し、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＦとスクリプトＡを記憶手段１０２に蓄積している。これらのモジュールは、すべて同一のデータイベントＩＤであり、異なるデータイベントＩＤのモジュールを受信手段１０１が受信した場合、蓄積されている全てのマルチメディアデータは破棄され、新たなモジュールから、記憶手段１０２への蓄積が開始される。
【００６１】
スクリプトＡは、ＰｒｉｎｔＡ（  ）（Ｐ４１）という関数が呼び出された際に、コマンド実行手段１０３により実行される。また、スクリプトＡに含まれるＰｒｉｎｔＦｉｌｅ（  ）は、括弧内に含まれるモジュールを印刷するコマンドである。よって、スクリプトＡは、  ｉの値が１の場合、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤの順に印刷を行うスクリプトとなる。逆に、ｉの値が１以外の場合、モジュールＤは印刷されず、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＥの順に印刷がおこなわれる。
【００６２】
スクリプトＡの実行が指示されると、スクリプト実行指示手段１０４は、スクリプト解析手段１０５に指示を出す。スクリプト解析手段１０５は、記憶手段１０２に蓄積されているスクリプトＡを取得し、スクリプトＡを実行するために必要なモジュール抽出を行う。スクリプトＡは、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥが各コマンドにより呼び出されている。よって、スクリプト解析手段１０５は、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥのモジュールを必要なモジュールと判断し、モジュール保護手段１０６に送信する。スクリプト解析手段１０５が作成したモジュールのリストの一例を図６のリスト６０に示す。スクリプト解析手段１０５は、それぞれのモジュールを呼び出しているコマンドが含まれる位置と個数を解析する。リスト６０中の数字は、モジュールが参照されているコマンドの個数をカウントしたもので、参照数と呼ぶことにする。分岐の欄は、ｉｆ文やｓｗｉｔｃｈ文のような分岐文の中に含まれるコマンドから参照されている回数を示す。同様に、ループの欄は、ｗｈｉｌｅ文やｆｏｒ文のような、ループ文の中に含まれるコマンドからの参照数である。通常の欄は、それ以外のコマンドからの参照数を示す。
【００６３】
モジュール保護手段１０６は、受け取ったモジュールのリストをもとに、モジュール名に挙げられたモジュールの保護を行う。リスト６０の場合、記憶手段１０２に蓄積されているモジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥの保護を行う。
【００６４】
＜具体例１＞
スクリプトＡ（Ｐ４１）のｉの値が１である場合でも、スクリプトＡ（Ｐ４１）が指示された場合、モジュールＡからＥのモジュールは、モジュール保護手段１０６により保護されている。ＰｒｉｎｔＦｉｌｅ（モジュールＡ）（Ｐ４２）をコマンド実行手段１０３により実行し、コマンド実行完了した際、コマンド実行手段１０３は、モジュール保護手段１０６に対し、モジュールＡが他のコマンドで使用されるかどうかを問い合わせる。モジュール保護手段１０６は、管理しているリスト６０を参照し、実行完了により、リストの「通常」欄の個数を１削減する。リスト６０のモジュールＡの参照数は、すべて０になったため、他のコマンドではモジュールＡは利用されていないことがわかる。よって、他のコマンドでモジュールＡは使用されていないため、モジュール保護手段１０６は、記憶手段１０２に蓄積されているモジュールＡの領域は解放する。同様に、モジュールＢを参照するコマンド（Ｐ４３）、モジュールＣを参照するコマンド（Ｐ４４）に関しても、ＰｒｉｎｔＦｉｌｅコマンドが実行され、モジュールの領域は解放される。
【００６５】
条件分岐で、ｉの値が１であるため、ＰｒｉｎｔＦｉｌｅ（モジュールＤ）（Ｐ４５）の実行が決定する。この分岐の結果、モジュールＥを参照するコマンド（Ｐ４６）は実行されないことが確定する。モジュール保護手段がリスト６０により、モジュールＥが他のコマンドで使用されないことが判明するため、モジュールＥの保護は解除され、記憶手段１０２のモジュールＥの領域は解放される。
【００６６】
モジュールＤの印刷コマンド（Ｐ４５）実行の動きも、モジュールＡを参照するコマンド（Ｐ４２）などと同様に行われ、コマンド実行手段１０３による実行後、モジュール保護手段１０６に問い合わせが行われる。モジュール保護手段１０６は、リスト６０を参照し、リスト６０のモジュールＤの「分岐」欄の参照数を１削減する。リスト６０のモジュールＤの参照数がすべて０になったため、モジュールＤは保護が解除される。
【００６７】
尚、モジュールＥの保護の解除を行うタイミングは、ＰｒｉｎｔＦｉｌｅ（モジュールＤ）（Ｐ４５）実行後に、ＰｒｉｎｔＦｉｌｅ（モジュールＥ）（Ｐ４６）が読み込まれなかったタイミングで行ってもよいし、スクリプト終了時、ＰｒｉｎｔＦｉｌｅ（モジュールＥ）（Ｐ４６）が実行されなかったと判明したタイミングでもよい。
【００６８】
尚、各コマンド終了時に行われる、モジュールの保護状態の解除タイミングは、コマンドが実行される前に行ってもよい。例えば、あるコマンドＡの実行前に、コマンドＡで指定されているモジュールＳが他のコマンドで使用されているかを、モジュール保護手段１０６が確認し、コマンドＡ以外で使用されていない場合は、モジュールＳの保護を解除した状態で、コマンドＡの実行をしてもよい。その際、モジュールＳは、コマンド実行手段１０３により、コマンドＡ実行中に記憶手段１０２から破棄されないように保護されている必要がある。
【００６９】
尚、モジュールの保護を解除するタイミングは、記憶手段１０２の容量に余裕がある場合は、スクリプトが終了した後、すべてのモジュールの保護を解放してもよい。
【００７０】
＜具体例２＞
スクリプトＡ（Ｐ４１）のｉの値が１で、ＰｒｉｎｔＦｉｌｅ（モジュールＢ）（Ｐ４３）の実行中に、放送局よりデータイベントＩＤが変化したモジュールＸが放送された場合を例にする。
【００７１】
スクリプトＡ（Ｐ４１）が実行され、モジュールＡのコマンド（Ｐ４２）の実行が完了し、モジュールＢのコマンド（Ｐ４３）が実行中、受信手段１０１がデータイベントの変化を検出した場合、受信手段１０１は、記憶手段１０２に含まれる全てのモジュールの削除を試みる。しかし、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥは、モジュール保護手段１０６により保護されているため、モジュールの削除は行われない。受信手段１０１は、記憶手段１０２の空いた領域にモジュールＸを蓄積する。その時、記憶手段１０２に蓄積されているモジュールは、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＸとなる。その際、画面表示などの処理は、データイベント更新後のモジュールＸに対して開始される。
【００７２】
その後の動作は、具体例１と同様になり、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥの保護は解除され、最終的に、モジュールＸだけが記憶手段１０２に蓄積されている状態となる。
【００７３】
尚、受信手段１０１がデータイベントの変化を検出した際、受信手段１０１はモジュールの削除を試みずに、モジュール保護手段１０６に保護されているモジュールを問い合わせて、保護されていないモジュールのみの削除を行ってもよい。
【００７４】
尚、受信手段１０１がデータイベントの変化を検出した場合でも、画面表示の処理は、モジュールＸに切り替わらず、スクリプトの実行が完了するまで、データイベントの更新前のモジュールを用いて行っていてもよい。
【００７５】
尚、スクリプト実行中に受信手段１０１がデータイベントの変化を検出した際、保護されているモジュールが存在することをユーザに知らせるため、ＴＶ画面上にダイアログを表示したり、受信機につけられた警告灯を点灯させるなどしてもよい。
【００７６】
尚、本具体例では、受信手段１０１がデータイベントの変化を検出した場合に、記憶手段１０２に蓄積されているモジュールを削除する処理が行われている例を示して説明したが、記憶手段１０２に蓄積されているモジュールの削除されるタイミングはこれに限るものではない。たとえば、記憶手段１０２に蓄積されているモジュールに設定された有効期限情報をもとに、受信手段１０１が記憶手段１０２に蓄積されたモジュールを破棄する場合にも同様のモジュール保護の方法が適応される。
【００７７】
＜具体例３＞
具体例３では、同一モジュールが複数コマンドで指定されている、図５に示すスクリプトＢ（Ｐ５１）を例に説明を行う。放送局から放送されてくるデータは、モジュールＡ、モジュールＢ、モジュールＣ、スクリプトＢ（Ｐ５１）として、他の具体例と異なる部分について説明を行う。
【００７８】
受信手段１０１によるデータイベントＩＤ更新の検出時の動きは、具体例２と同一であるため、本具体例では、データイベントＩＤの更新が発生しない場合を説明する。
【００７９】
スクリプトＢ（Ｐ５１）が実行されると、スクリプト解析手段１０５により、モジュールＡ、モジュールＢ、モジュールＣが必要なモジュールと判定される。スクリプト解析結果を具体例１と同様のリストとすると、作成されるリストは、リスト７０のようになる。このリスト７０がモジュール保護手段１０６に渡され、モジュールＡ、モジュールＢ、モジュールＣが、モジュール保護手段１０６により保護される。
【００８０】
ＰｒｉｎｔＦｉｌｅ（モジュールＡ）がコマンド実行手段１０３により実行された後、コマンド実行手段１０３は、モジュール保護手段１０６に、他のコマンドでモジュールＡが使用されているかを問い合わせる。モジュール保護手段１０６は、スクリプト解析手段１０５の結果であるリスト７０の通常欄の参照数を１削減する。リスト７０により、モジュールＡの参照数が分岐欄に１残っていることが記載されているため、以降のスクリプトの分岐文中に、モジュールＡを利用したコマンド（Ｐ５５）が存在することがわかる。この段階では、ｉｆ分岐の後のＰｒｉｎｔＦｉｌｅ（モジュールＡ）（Ｐ５５）とＰｒｉｎｔＦｉｌｅ（モジュールＢ）（Ｐ５６）のどちらが実行されるか判断できないため、モジュールＡもモジュールＢもスクリプト実行のためには必要なモジュールであると判断される。その結果、モジュール保護手段１０６は、モジュールＡの保護は解除せず、そのまま保護を継続する。ＰｒｉｎｔＦｉｌｅ（モジュールＢ）（Ｐ５３）のモジュールＢの処理も同様に保護が継続される。
【００８１】
ＰｒｉｎｔＦｉｌｅ（モジュールＣ）（Ｐ５４）以降のコマンドは、具体例１と同様、コマンド実行手段１０３による実行終了後、モジュール保護手段１０６に、それ以降のコマンドでモジュールが使用されていないかを問い合わせることにより、順次、解放されていく。そしてスクリプトの実行が完了した時には、すべてのモジュールの保護が解放されている状態になる。
【００８２】
尚、本実施の形態では、印刷コマンドの場合に特化して説明を行ったが、コマンドは印刷に限るものではない。他には、記憶媒体への書き込みコマンドなどのファイル転送コマンドでも、同様の処理を行う。その場合、コマンド実行手段１０３がモジュールを転送する先は、印刷装置ではなく、コマンドを適切に実行する装置や手段への転送となる。
【００８３】
尚、スクリプト解析手段１０５による保護されるモジュールリストの管理は、コマンドからの参照位置や参照数による作成に限るものではない。参照数による管理を行わず、スクリプト実行終了まで、全てのモジュールの保護を行ってもよい。
【００８４】
尚、本実施の形態では、スクリプト解析手段１０５が作成するリストは、「分岐」や「ループ」などによる分類を行い、参照数を解析することで作成したが、リストの形式はこれに限るものではない。例えば、保護を行うモジュールにはフラグを立てて、保護を行わないモジュールに関してはフラグを立てないといったリストを作成してもよい。
【００８５】
尚、本実施の形態ではデータ放送を例に説明を行ったが、ＰＣなどを用いたストリーミング配信や、インターネット経由でのブロードバンド配信の受信装置、受信プログラムにおいても、適応可能である。
【００８６】
（実施の形態２）
本実施の形態では、デジタル放送に限定し、スクリプトで指定されるコマンドは、印刷実行のコマンドを例にして、説明を行う。実施の形態２での構成を図８に示す実施の形態２では、実施の形態１の構成（図１）のうちの、スクリプト実行指示手段１０４が無い構成となる。
【００８７】
データストリーム受信装置８０は、放送を受信する受信手段８０１、放送コンテンツを記憶する記憶手段８０２、マルチメディアデータ内のスクリプトを解析するスクリプト解析手段８０５、記憶手段８０２が保持しているモジュールを保護する処理を行うモジュール保護手段８０６、スクリプト中のコマンドに記述されている印刷コマンドを実行し、印刷装置にモジュールを転送する処理を行うコマンド実行手段８０３により構成される。
【００８８】
図９に、実施の形態２における処理の流れを示す。
【００８９】
受信手段８０１は、データイベントＩＤの変化を監視しながら、記憶手段８０２へモジュールを蓄積していく（Ｓ９０１）。記憶手段８０２で蓄積されているデータを用いて、ＴＶ画面上に表示や、スクリプトを実行するなどの処理が行われる。
【００９０】
受信手段８０１がスクリプトを受信した場合（Ｓ９０２）、スクリプト解析手段８０５にスクリプト解析指示がだされる。スクリプト解析手段８０５は、受信手段８０１が取得したスクリプトを記憶手段８０２より取得する。スクリプト解析手段８０５は、取得したスクリプトの中に含まれるコマンドをすべて抽出する（Ｓ９０３）。さらに、その結果から、各コマンドの実行に必要となる、コマンドの引数に指定されているモジュールをすべて抽出し、リストを作成する。すでに、以前にスクリプトを受信して、モジュール保護手段８０６がリストを所持している場合は、すでに存在するリストに対して、新たにスクリプト解析手段８０５が作成したリストのモジュールを追加する（Ｓ９０４）。モジュール保護手段８０６は、更新されたリストをもとに、記憶手段８０２に含まれるモジュールの保護を行う（Ｓ９０５）。保護の方法は、実施の形態１に記述されている方法と同様、モジュール保護手段８０６により保護されているモジュールは、たとえ受信手段８０１がモジュールのデータイベントＩＤの更新を検出した場合でも、記憶手段８０２から破棄されることはない。また、保護されていないモジュールに関しては、いつでも記憶手段から削除されてもよい状態になる。
【００９１】
通常、受信手段８０１が、モジュールのデータイベントＩＤの更新を検出した場合（Ｓ９０６）、それ以降のモジュールは新しい番組のコンテンツであると認識されるため、古い番組として蓄積されているモジュールは使用されなくなる。そこで、モジュール保護手段８０６は、保護すべきモジュールのリストを削除し、保護しているモジュールの保護を全て解除する（Ｓ９０８）。よって、記憶手段８０２に含まれるモジュールはいつでも削除できる状態へと破棄される。その後、受信手段８０１は、新しくデータイベントＩＤの振られたモジュールの蓄積を開始する（Ｓ９０１）。
【００９２】
しかし、受信手段８０１がデータイベントＩＤの更新を検出した際に、スクリプトが実行されていた場合（Ｓ９０７）、モジュール保護手段８０６は、保護すべきモジュールのリストを参照し、現在実行されているスクリプトから参照されているモジュール以外のモジュールの保護を解除する（Ｓ９０９）。
【００９３】
スクリプトの実行手順は、実施の形態１と同様である。各コマンドは、コマンド実行手段８０３により実行され、実行が完了すると、コマンド実行手段８０３は、モジュール保護手段８０６に対し、それ以降のコマンドで、同じモジュールを使用するかどうかを問い合わせる。モジュール保護手段８０６は、保護すべきモジュールのリストを用いて、問い合わせのモジュールが他のコマンドで使用されているかを調べる。他のコマンドで使用される場合は、モジュール保護手段８０６は、モジュールの保護を継続し、使用されない場合は、対象モジュールの保護を解除し、記憶手段８０２のモジュールの領域を開放する（Ｓ９１１）。この処理は、スクリプト実行が完了するまで繰り返される（Ｓ９１２）。よって、スクリプトが完了した時には、すべてのモジュールの保護が解除された状態となる（Ｓ９１３）。
【００９４】
以下、具体的な例を用いて、説明を行う。
【００９５】
放送局より、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＦを含むマルチメディアデータと、スクリプトＣ（Ｐ１０１）、スクリプトＤ（Ｐ１１１）が記述されたデータが放送されている。スクリプトＣ（Ｐ１０１）の内容を図１０に、スクリプトＤ（Ｐ１１１）の内容を図１１に示す。受信手段８０１は、これらのマルチメディアデータを受信し、モジュールＡ、モジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＦとスクリプトＣ（Ｐ１０１）、スクリプトＤ（Ｐ１１１）を記憶手段８０２に蓄積している。これらのモジュールは、すべて同一のデータイベントＩＤであり、異なるデータイベントＩＤのモジュールを受信手段８０１が受信した場合、蓄積されている全てのマルチメディアデータは破棄され、新たなモジュールから、記憶手段８０２への蓄積が開始される。
【００９６】
受信手段８０１は、スクリプトを受信すると、スクリプト解析手段８０５にスクリプト解析の指示をだす。受信手段８０１がまずスクリプトＣ（Ｐ１０１）を受信したとすると、スクリプト解析手段８０５は、記憶手段８０２に蓄積されたスクリプトＣ（Ｐ１０１）を読み出し、保護すべきモジュールの解析を行う。実施の形態１と同様に、保護すべきモジュールのリストを作成すると、モジュール保護手段８０６に送信する。ここで作成されるリストは、実施の形態１のような、モジュールの参照数などを解析したリストとなる。また、複数のスクリプトから同一モジュールが呼び出されている可能性があるため、どのスクリプトでモジュールが参照されたのかを分類する。そのため、リストにスクリプトの欄を追加し、スクリプトごとに参照数を記載するようにする。ここで作成されるリストは、図１２に示すようなリスト１２０となる。リスト１２０では、モジュールＡのコマンド（Ｐ１０２）は、分岐文でもループ文にも含まれていないため、モジュールＡの参照数は、通常欄に１という値になる。同様に、モジュールＢのコマンドは、ｆｏｒ文の中に含まれているため、ループ文の中で呼び出されていることが分かる。よって、モジュールＢの参照数は、ループ欄に１という値になる。
【００９７】
続けて、受信装置８０１がスクリプトＤ（Ｐ１１１）を受信すると、スクリプト解析手段８０５に対し、スクリプト解析の指示を出す。スクリプト解析手段８０５は、スクリプトＣ（Ｐ１０１）と同様に、記憶手段８０２に蓄積されたスクリプトＤ（Ｐ１１１）を読み出し、保護すべきモジュールの解析を行い、保護すべきモジュールのリストを作成する。スクリプトＤでは、モジュールＣのコマンド（Ｐ１１２）、モジュールＤのコマンド（Ｐ１１３）ともに、分岐文でもループ文にも含まれていないため、モジュールＡの参照数は、それぞれ通常欄に１という値になる。
【００９８】
スクリプトＣ（Ｐ１０１）の解析により、モジュール保護手段８０６はリスト１２０を保持しているため、スクリプト解析手段は、すでに保持しているリスト１２０に追記し、モジュール保護手段８０６にて、図１３に示すような保護すべきモジュールのリスト１３０を作成する。このリストをもとに、モジュール保護手段８０６は、モジュールの保護を行う。保護の方法については、実施の形態１と同様である。
【００９９】
尚、保護すべきモジュールのリスト１３０を作成する手順として、説明では、スクリプトＣ（Ｐ１０１）の解析結果であるリスト１２０に、スクリプトＤ（Ｐ１１１）の解析結果を追記する形で、リスト１３０を作成したが、受信手段８０１が新たなスクリプトを受信するたびに、スクリプトを解析した結果を追記していく方法でなくてもよい。例えば、受信手段８０１がスクリプトを受信するたびに、スクリプト解析手段８０５は記憶手段８０２に蓄積されているスクリプトを全て読み出し、保護すべきモジュールのリストを新規に作成しなおして、モジュール保護手段８０６に送信してもよい。
【０１００】
尚、モジュールＡ、モジュールＢがスクリプトＤ（Ｐ１１１）において呼び出されていない、または、モジュールＣ、モジュールＤがスクリプトＣ（Ｐ１０１）において呼び出されていないことを明示的に示すために、モジュール保護手段８０６にて、参照数が０であるというリストを追加したリストであるリスト１４０を利用して保護を行ってもよい。このリスト１４０は、図１４に示す。
【０１０１】
スクリプトＣ（Ｐ１０１）、スクリプトＤ（Ｐ１１１）に記述されたモジュールの保護は、受信手段８０１がデータイベントＩＤの更新を検出するまで継続される。放送局から、データイベントＩＤが更新されたモジュールＸが送信されてきた場合を例に説明を行う。
【０１０２】
受信手段８０１がデータイベントの更新を検知すると、モジュール保護手段８０６に、データイベントが更新したことが伝えられる。モジュール保護手段８０６は、なにもスクリプトが実行されている状態でなければ、モジュールの保護を解除し、記憶手段８０２のモジュールを解放する。
【０１０３】
受信手段８０１からデータイベントの更新が通知された時に、スクリプトＣ（Ｐ１０１）が実行されていた場合、スクリプトＣ（Ｐ１０１）に関するモジュールだけを保護し、それ以外のスクリプトに記述されているモジュールは、保護が解除される。リストＣの場合では、モジュールＣ、モジュールＤの保護が解除される。その後、受信手段８０１は、記憶手段８０２の空いた領域に、新たに受信したモジュールＸを蓄積され、モジュールＸに対するＴＶ画面表示の更新などの処理が行われる。
【０１０４】
スクリプトの実行の流れは実施の形態１と同様に行われ、スクリプトＣ（Ｐ１０１）の実行が終了すると、モジュールＡ、モジュールＢの保護が解除された状態になる。スクリプト終了までの間に、再度、受信手段８０１がデータイベントＩＤの更新を検出しても、モジュール保護手段８０６が保護しているモジュールは削除されない。よって、確実に、スクリプトを完了することが可能となる。
【０１０５】
尚、受信手段８０１からデータイベントの更新が通知された時に、スクリプトＣ（Ｐ１０１）が実行されていた場合でも、他のスクリプトが参照しているモジュールの保護を解除せず、スクリプトＣ（Ｐ１０１）の終了後に、すべてのモジュールの保護を解除してもよい。その場合、スクリプトＣ（Ｐ１０１）が実行されていた場合でも、スクリプトＤ（Ｐ１１１）により参照されているモジュールＣ、モジュールＤの保護は継続され、スクリプトＣ（Ｐ１０１）の実行が完了した時点で、モジュールＣ、モジュールＤの保護の解除を行う。
【０１０６】
また、同様に、受信手段８０１からデータイベントの更新が通知された時に、スクリプトＣ（Ｐ１０１）が実行されていた場合、スクリプトＣ（Ｐ１０１）の実行中の任意のタイミングで、他のスクリプトが参照しているモジュールの保護を解除してもよい。
【０１０７】
尚、同様に、受信手段８０１からデータイベントの更新が通知された時に、スクリプトＣ（Ｐ１０１）が実行されていた場合、保護されているモジュールが存在することをユーザに知らせるため、ＴＶ画面上にダイアログの表示や、受信機につけられた警告灯を点灯させるなどしてもよい。
【０１０８】
尚、受信手段８０１がデータイベントの変化を検出した場合でも、画面表示の処理は、モジュールＸに切り替わらず、スクリプトが完了するまで、データイベントの更新前のモジュールを用いて行っていてもよい。
【０１０９】
尚、本具体例では、受信手段８０１がデータイベントの変化を検出した場合に、記憶手段８０２に蓄積されているモジュールを削除する処理が行われている例を示して説明したが、記憶手段８０２に蓄積されているモジュールの削除されるタイミングはこれに限るものではない。たとえば、記憶手段８０２に蓄積されているモジュールに設定された有効期限情報をもとに、受信手段８０１が記憶手段８０２に蓄積されたモジュールを破棄する場合にも同様のモジュール保護の方法が適応される。
【０１１０】
尚、本実施の形態では、スクリプト解析手段８０５が作成するリストは、「分岐」や「ループ」などによる分類を行い、参照数を解析することで作成したが、リストの形式はこれに限るものではない。例えば、保護を行うモジュールにはフラグを立てて、保護を行わないモジュールに関してはフラグを立てないといったリストを作成してもよい。
【０１１１】
尚、本実施の形態ではデータ放送を例に説明を行ったが、ＰＣなどを用いたストリーミング配信や、インターネット経由でのブロードバンド配信の受信装置、受信プログラムにおいても、適応可能である。
【産業上の利用可能性】
【０１１２】
本発明にかかるスクリプト先読み保護を行うデータストリーム受信装置は、デジタル放送の受信機において、印刷スクリプトを実行中に番組が切り替わった場合でも確実に印刷を完了することができる効果が得られ、非常に有用である。またインターネット上で配信されるストリーム受信機の用途にも応用できるため、その産業上の利用可能性は非常に広い。
【図面の簡単な説明】
【０１１３】
【図１】本発明に係るデータストリーム受信装置の一例を示すブロック図
【図２】実施の形態１に係るデータストリーム受信装置の動作を示すフローチャート
【図３】蓄積されているモジュールと記憶手段の内部を説明する図
【図４】放送されてくるデータストリームに含まれるスクリプトの一例を示す図
【図５】放送されてくるデータストリームに含まれるスクリプトの一例を示す図
【図６】保護すべきモジュールを示すリストの一例を示す図
【図７】保護すべきモジュールを示すリストの一例を示す図
【図８】本発明に係るデータストリーム受信装置の一例を示すブロック図
【図９】実施の形態２に係るデータストリーム受信装置の動作を示すフローチャート
【図１０】放送されてくるデータストリームに含まれるスクリプトの一例を示す図
【図１１】放送されてくるデータストリームに含まれるスクリプトの一例を示す図
【図１２】保護すべきモジュールを示すリストの一例を示す図
【図１３】保護すべきモジュールを示すリストの一例を示す図
【図１４】保護すべきモジュールを示すリストの一例を示す図
【符号の説明】
【０１１４】
１０，８０    データストリーム受信装置
１０１，８０１    受信手段
１０２，８０２    記憶手段
１０３，８０３    コマンド実行手段
１０４    スクリプト実行指示手段
１０５，８０５    スクリプト解析手段
１０６，８０６    モジュール保護手段
３０１    通常記憶領域
３０２    モジュール保護領域
【図１】
2005184185.tif 000003
【図２】
2005184185.tif 000004
【図３】
2005184185.tif 000005
【図４】
2005184185.tif 000006
【図５】
2005184185.tif 000007
【図６】
2005184185.tif 000008
【図７】
2005184185.tif 000009
【図８】
2005184185.tif 000010
【図９】
2005184185.tif 000011
【図１０】
2005184185.tif 000012
【図１１】
2005184185.tif 000013
【図１２】
2005184185.tif 000014
【図１３】
2005184185.tif 000015
【図１４】
2005184185.tif 000016