(57)【要約】【課題】データカルーセルへのアタッチが必要な処理１の処理要求が来たとき、データカルーセルからのデータ受信待ちが発生するので、処理１の実行に時間が掛かる。【解決手段】処理１の実行のためにデータカルーセル１へのアタッチが必要である場合、処理１を処理要求が来た時点から遅延する。処理１の実行結果を利用した処理２の処理要求が来るまでに、データカルーセル１へのアタッチが発生したならば、アタッチが発生した時点で処理１を実行する。これにより、処理１のためだけのアタッチを不要化できる。【選択図】図２２
2008187333.tif 000002
【特許請求の範囲】
【請求項１】
ＤＳＭＣＣ規格を用いる放送システムにおいて、
処理１を実行するためにデータカルーセルからのデータ受信処理が必要であるとき、データ受信処理を保留するとともに、処理１を処理要求が発生した時点から遅延する遅延手段と、
処理１の遅延後に、処理２の実行にともなって、前記データ受信処理の受信対象のデータカルーセルを受信した時点で、処理１を実行する手段と、
を備えたプログラム実行装置。
【請求項２】
処理１の結果を必要とする処理３を実行する時点で、処理１が実行されていないことを検出した場合、前記データ受信処理と処理１とを、処理３に先行して実行する手段を更に備えた請求項１記載のプログラム実行装置。
【請求項３】
処理１は、遅くとも処理３の実行までに完了していれば良い処理である請求項２記載のプログラム実行装置。
【請求項４】
処理１は、ＤＶＢ−ＭＨＰ規格で定義されるＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに対応したＪａｖａ（登録商標）プログラムを記憶手段に格納する処理であり、
処理３は、記憶手段に格納されたＪａｖａ（登録商標）プログラムを起動する処理である請求項３記載のプログラム実行装置。
【請求項５】
処理１を実行するために必要なデータ１と処理２を実行するために必要なデータ２とが、同じデータカルーセルに含まれる請求項１〜４の何れかに記載のプログラム実行装置。
【請求項６】
処理２は、プログラムを起動する処理である請求項１〜５の何れかに記載のプログラム実行装置。
【請求項７】
処理２は、プログラムの実行中に、必要なデータを取得する処理である請求項１〜５の何れかに記載のプログラム実行装置。
【請求項８】
遅延手段は、複数の処理を遅延可能に構成された請求項１〜７の何れかに記載のプログラム実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムをダウンロードして実行するプログラム実行装置に関する。特に、ディジタルテレビにおいて、データカルーセル伝送方式を用いたデータ受信処理を実行することに関する。
【背景技術】
【０００２】
データカルーセルは、ＭＰＥＧ規格  ＩＳＯ／ＩＥＣ１３８１８−１のＭＰＥＧ２  トランスポートストリームによる定期的な情報送信に用いられ、セットトップボックス（ＳＴＢ）へのプログラム送信などで使用されている。例えば、欧州の放送規格であるＤＶＢ−ＭＨＰ（ETSI TS 101 812 V1.1.1 (2000-07) Digital Video Broadcasting（ＤＶＢ）; Multimedia Home Platform（ＭＨＰ）Specification 1.0）ではＪａｖａ（登録商標）プログラムをＳＴＢ上で動作させる仕組みを規定しており、Ｊａｖａ（登録商標）プログラムを含むデータカルーセルを受信し、受信したＪａｖａ（登録商標）プログラムをＳＴＢ上で動作させることができる。データカルーセルはＩＳＯ／ＩＥＣ  １３８１８−６  ＤＳＭＣＣ（Digital Storage Medium Command and Control）規格で伝送される。
【０００３】
トランスポートストリームからデータカルーセルを受信し、ＤＳＭＣＣ規格に基づいてデータカルーセルに含まれるデータのファイルシステムを復元することを、以降、アタッチと呼ぶ。アタッチすることによって、データカルーセルに含まれるデータを利用することができるようになり、アタッチによって構築されたファイルシステム領域を開放することによって、データを利用することができなくなる。
【非特許文献１】ETSI TS 101 812 V1.1.1 (2000-07) Digital Video Broadcasting（ＤＶＢ）; Multimedia Home Platform（ＭＨＰ）Specification 1.0
【非特許文献２】ETSI TS 101 812 V1.1.1 (2001-11) Digital Video Broadcasting（ＤＶＢ）; Multimedia Home Platform（ＭＨＰ）Specification 1.1
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データカルーセルに含まれるデータを利用するためには、データカルーセルを受信してデータカルーセルに含まれるデータのファイルシステムを復元するアタッチを実行しなければならない。現在アタッチしていないデータカルーセルに含まれるデータを利用する場合、アタッチが必要になる。データカルーセルの送信は、受信側が受信を待っているか、そのデータカルーセルを必要としているかによらず、定期的に行われる。データカルーセルを受信するためには、目的のデータカルーセルが送信されるのを待たなければならないので、受信完了までに時間が掛かってしまう。
【０００５】
従来の技術においては、データカルーセル受信待ち時間を不要にするために、データカルーセルにあらかじめアタッチしておく手段がある。この手段の場合、受信したデータカルーセルに含まれるデータのファイルシステムを復元し、メモリに保持することになる。一般的にメモリの容量は限られており、全てのデータカルーセルにアタッチしておくことは困難であるので、一部のデータカルーセルへのアタッチには受信待ち時間が必要になる。
【０００６】
このように、従来の技術は、受信待ち時間の短縮を目的としたものであり、アタッチの回数については考慮されていなかった。
【０００７】
本発明は、ＤＳＭＣＣ規格を用いる放送システムにおいて、アタッチの回数を削減することを目的とする。
【課題を解決するための手段】
【０００８】
前記従来の課題を解決するために、処理１を実行するためにデータカルーセルからのデータ受信処理が必要であるとき、データ受信処理を保留するとともに、処理１を処理要求が発生した時点から遅延する遅延手段と、処理１の遅延後に、処理２の実行にともなって、前記データ受信処理の受信対象のデータカルーセルを受信した時点で、処理１を実行する手段とを備えることとしている。
【発明の効果】
【０００９】
本発明によれば、処理１のためだけのアタッチを行わず、処理２の実行にともなうアタッチと共通化することにより、アタッチの回数を削減することが可能となる。
【発明を実施するための最良の形態】
【００１０】
（実施の形態１）
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図１は、ケーブルテレビシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド１０１及び３個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。本実施の形態では、１つのヘッドエンドに対して３つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。本実施の形態では、ケーブルテレビシステムを例に挙げているが、アンテナ、端末装置と放送衛星で構成される衛星放送システムについても、本発明は実施可能である。
【００１１】
ヘッドエンド１０１は、複数の端末装置に対して映像・音声・データ等の放送信号を送信する。これを実現するため、ヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の伝送用の周波数帯域をＩｎ−Ｂａｎｄとして割り当て、主として、映像・音声を含む放送チャンネルに使用する。本実施例では一例として、１３０ＭＨｚ〜８６４ＭＨｚをＩｎ−Ｂａｎｄの周波数帯域に割り当てる。Ｉｎ−ＢａｎｄはＱＡＭ６４変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。図２は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様に基づいたトランスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
【００１２】
ヘッドエンド１０１は、これらの周波数帯域に適切な放送信号を送信するため、ＱＡＭ変調部やトランスポートパケットをスクランブル化するため、スクランブラ等を有する。また、ヘッドエンド１０１は、これら変調部やスクランブラに関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００１３】
端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、ヘッドエンド１０１からの放送信号を受信し再生する。３つの端末装置は、本実施の形態では同じ構成を取る。
【００１４】
図３は、端末装置のハードウエア構成を表すブロック図である。３００は端末装置であり、チューナ３０１、デスクランブラ３０２、ＴＳデコーダ３０３、オーディオデコーダ３０４、スピーカ３０５、ビデオデコーダ３０６、ディスプレイ３０７、２次記憶部３０８、１次記憶部３０９、ＲＯＭ３１０、入力部３１１、ネットワークインタフェース３１２、ＣＰＵ３１３で構成される。
【００１５】
図４は、端末装置３００の外観の一例である薄型テレビである。
【００１６】
４０１は、薄型テレビの筐体であり、端末装置３００の構成要素をすべてを内蔵している。
【００１７】
４０２はディスプレイであり、図３におけるディスプレイ３０７に相当する。
【００１８】
４０３は複数のボタンで構成されるフロントパネル部であり、図３の入力部３１１に相当する。
【００１９】
４０４は信号入力端子であり、ヘッドエンド１０１との信号の受信を行うためにケーブル線を接続する。信号入力端子４０４は、図３のチューナ３０１、ネットワークインタフェース３１２と接続されている。チューナ３０１はＱＡＭ周波数帯にチューニングし、受信したトランスポートパケットの暗号を復号化できる場合は、デスクランブラ３０２で復号を行い、ＴＳデコーダ３０３へデータを渡す。
【００２０】
ＴＳデコーダ３０３は、デスクランブラ３０２から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ３０４及びビデオデコーダ３０６、ＣＰＵ３１３に引き渡す。ここで、受け取る信号は、ＭＰＥＧ２トランスポートストリームである。ＭＰＥＧ２トランスポートストリームの詳細はＭＰＥＧ規格書ＩＳＯ／ＩＥＣ１３８１８−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。図５はパケットの構成図である。５００はパケットであり、固定長の１８８バイトで構成される。先頭４バイトがヘッダー５０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード５０２で、送信したい情報を含んでいる。５０３は、ヘッダー５０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。図６は送られてくる複数のパケットの列を表現した模式図である。パケット６０１は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット６０２は、ヘッダーにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット６０３は、ヘッダーにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。
【００２１】
パケット６０４は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット６０１の続きになっている。同様にパケット６０３、６２６、６２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
【００２２】
図６を参照して、ＣＰＵ３１３がパケットＩＤ「１」と出力先として「ビデオデコーダ３０６」をＴＳデコーダ３０３に指示すると、ＴＳデコーダ３０３は受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ３０６に引き渡す。図６においては、映像データＡのみをビデオデコーダ３０６に引き渡すことになる。同時に、ＣＰＵ３１３がパケットＩＤ「２」と「オーディオデコーダ３０４」をＴＳデコーダ３０３に指示すると、ＴＳデコーダ３０３は受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ３０４に引き渡す。図６においては、音声データＡのみをオーディオデコーダ３０４に引き渡すことになる。
【００２３】
このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ３０３が行うフィルタリングである。ＴＳデコーダ３０３はＣＰＵ３１３から指示された複数のフィルタリングを同時に実行することができる。
【００２４】
図３を参照して、オーディオデコーダ３０４は、ＴＳデコーダ３０３から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ３０５に出力する。
【００２５】
スピーカ３０５は、オーディオデコーダ３０４から与えられた信号を音声出力する。
【００２６】
ビデオデコーダ３０６は、ＴＳデコーダ３０３から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ３０７に出力する。
【００２７】
ディスプレイ３０７は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ３０６から与えられたビデオ信号を出力したり、ＣＰＵ３１３から指示されたメッセージを表示したりする。
【００２８】
２次記憶部３０８は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ３１３から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ３１３に参照される。保存されているデータやプログラムは、端末装置３００の電源が切断された状態でも保存しつづける。
【００２９】
１次記憶部３０９は、具体的には、ＲＡＭ等で構成され、ＣＰＵ３１３から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ３１３に参照される。保存されているデータやプログラムは、端末装置３００の電源が切断された際に、抹消される。
【００３０】
ＲＯＭ３１０は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ３１０は、ＣＰＵ３１３が実行するプログラムが格納されている。
【００３１】
入力部３１１は、具体的には、フロントパネルやリモコンで構成され、ユーザーからの入力を受け付ける。図７は、フロントパネルで入力部３１１を構成した場合の一例である。７００はフロントパネルであり、図４のフロントパネル部４０３に相当する。フロントパネル７００は７つのボタン、上カーソルボタン７０１、下カーソルボタン７０２、左カーソルボタン７０３、右カーソルボタン７０４、ＯＫボタン７０５、取消ボタン７０６、ＥＰＧボタン７０７を備えている。ユーザーがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ３１３に通知される。
【００３２】
ＣＰＵ３１３は、ＲＯＭ３１０が記憶するプログラムを実行する。実行するプログラムの指示に従い、チューナ３０１、ネットワークインタフェース３１２、デスクランブラ３０２、ＴＳデコーダ３０３、ディスプレイ３０７、２次記憶部３０８、１次記憶部３０９、ＲＯＭ３１０を制御する。
【００３３】
図８は、ＲＯＭ３１０に記憶され、ＣＰＵ３１３に実行されるプログラムの構成図の一例である。
【００３４】
プログラム８００は、複数のサブプログラムで構成され、具体的にはＯＳ８０１、ＥＰＧ８０２、Ｊａｖａ（登録商標）ＶＭ８０３、サービスマネージャ８０４、Ｊａｖａ（登録商標）ライブラリ８０５で構成される。
【００３５】
ＯＳ８０１は、端末装置３００の電源が投入されると、ＣＰＵ３１３が起動するサブプログラムである。ＯＳ８０１は、オペレーティングシステムの略であり、Ｌｉｎｕｘ（登録商標）等が一例である。ＯＳ８０１は、他のサブプログラムを平行して実行するカーネル８０１ａ及びライブラリ８０１ｂで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、ＯＳ８０１のカーネル８０１ａは、ＥＰＧ８０２とＪａｖａ（登録商標）ＶＭ８０３をサブプログラムとして実行する。また、ライブラリ８０１ｂは、これらサブプログラムに対して、端末装置３００が保持する構成要素を制御するための複数の機能を提供する。
【００３６】
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをチューナ３０１に引き渡す。チューナ３０１は与えられたチューニング情報に基づきチューニングを行う。この結果、他のサブプログラムはライブラリ８０１ｂを通してチューナを制御することができる。
【００３７】
ＥＰＧ８０２は、ユーザーに番組一覧を表示及び、ユーザーからの入力を受け付ける番組表示部８０２ａと、チャンネル選局を行う再生部８０２ｂで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ８０２は、端末装置３００の電源が投入されると、カーネル８０１ａによって起動される、起動されたＥＰＧ８０２の内部では、番組表示部８０２ａが端末装置３００の入力部３１１を通して、ユーザーからの入力を待つ。ここで、入力部３１１が図７で示されるフロントパネルで構成されている場合、ユーザーが、入力部３１１のＥＰＧボタン７０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ３１３に通知される。ＣＰＵ３１３上で動作するサブプログラムであるＥＰＧ８０２の番組表示部８０２ａは、この識別子を受け取り、番組情報をディスプレイ３０７に表示する。図９（１）及び（２）は、ディスプレイ３０７に表示された番組表の一例である。図９（１）を参照して、ディスプレイ３０７には、格子状に番組情報が表示されている。列９０１には、時刻情報が表示されている。列９０２には、チャンネル名「チャンネル１」と、列９０１の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００は「映画ＡＡＡ」が放映されることを表す。列９０３も列９０２同様、チャンネル名「チャンネル２」と、列９０１の時刻に対応する時間帯に放映される番組が表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００は「ニュース１１」が放映される。９３０は、カーソルである。カーソル９３０は、フロントパネル７００の左カーソルボタン７０３と右カーソルボタン７０４を押下すると移動する。図９（１）の状態で、右カーソルボタン７０４を押下すると、カーソル９３０は右に移動し、図９（２）のようになる。また、図９（２）の状態で、左カーソルボタン７０３を押下すると、カーソル９３０は左に移動し、図９（１）のようになる。
【００３８】
図９（１）の状態で、フロントパネル７００のＯＫボタン７０５が押下されると、番組表示部８０２ａは、「チャンネル１」の識別子を再生部８０２ｂに通知する。図９（２）の状態で、フロントパネル７００のＯＫボタン１１０５が押下されると、番組表示部８０２ａは、「チャンネル２」の識別子を再生部８０２ｂに通知する。
【００３９】
再生部８０２ｂは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、２次記憶部３０８に予め格納されている。図１０は２次記憶部３０８に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列１００１は、チャンネルの識別子である。列１００２は、チャンネル名である。列１００３はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、チューナ３０１に与える値である。列１００４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴを識別するための番号である。ＰＭＴに関しては、後述する。行１０１１〜１４１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行１０１１は識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１３０ＭＨｚ」、プログラムナンバーが「１０１」を含む組となっている。再生部８０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャ８０４に引き渡す。
【００４０】
また、再生部８０２ｂは、再生中に、ユーザーがフロントパネル７００の上カーソルボタン７０１と下カーソルボタン７０２を押下すると、入力部３１１からＣＰＵ３１３を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部８０２ｂは、１次記憶部３０９に現在再生中のチャンネルの識別子を記憶する。図１１（１）（２）及び（３）は、１次記憶部３０９に保存しているチャンネルの識別子の例である。図１１（１）では識別子「３」が記憶されており、図１０を参照し、チャンネル名「ＴＶ  ３」のチャンネルが再生中であることを示す。図１１（１）の状態で、ユーザーが上カーソルボタン７０１を押下すると、再生部８０２ｂは、図１０のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル２」のチャンネルに再生を切り替えるため、サービスマネージャ８０４にチャンネル名「チャンネル２」の識別子「２」を引き渡す。同時に、１次記憶部３０９に記憶されているチャンネル識別子「２」に書き換える。図１１（２）は、チャンネル識別子が書き換えられた状態を表す。また、図１１（１）の状態で、ユーザーが下カーソル７０２を押下すると再生部８０２ｂは、図１０のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「ＴＶ  Ｊａｐａｎ」の識別子「４」を引き渡す。同時に、１次記憶部３０９に記憶されているチャンネル識別子「４」に書き換える。図１１（３）は、チャンネル識別子が書き換えられた状態を表す。
【００４１】
Ｊａｖａ（登録商標）ＶＭ８０３は、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａ（登録商標）バーチャルマシンである。Ｊａｖａ（登録商標）言語で記述されたプログラムは、バイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａ（登録商標）バーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａ（登録商標）バーチャルマシンは、バイトコードをＣＰＵ３１３が理解可能な実行形式に翻訳してから、ＣＰＵ３１３に引渡し、実行することも行う。Ｊａｖａ（登録商標）ＶＭ８０３は、カーネル８０１ａに実行するＪａｖａ（登録商標）プログラムを指定され起動される。本実施の形態では、カーネル８０１ａは、実行するＪａｖａ（登録商標）プログラムとしてサービスマネージャ８０４を指定する。Ｊａｖａ（登録商標）言語の詳細は、書籍「Ｊａｖａ（登録商標）  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４３１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Ｊａｖａ（登録商標）ＶＭ自体の詳細な動作などは、「Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４３１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００４２】
サービスマネージャ８０４は、Ｊａｖａ（登録商標）言語で書かれたＪａｖａ（登録商標）プログラムであり、Ｊａｖａ（登録商標）ＶＭ８０３によって逐次実行される。サービスマネージャ８０４は、ＪＮＩ（Ｊａｖａ（登録商標）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ（登録商標）言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ（登録商標）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００４３】
サービスマネージャ８０４は、ＪＮＩを通して、再生部８０２ｂよりチャンネルの識別子を受け取る。
【００４４】
サービスマネージャ８０４は、最初にＪａｖａ（登録商標）ライブラリ８０５の中にあるＴｕｎｅｒ８０５ｃに、チャンネルの識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ８０５ｃは、２次記憶部３０８が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ８０４がチャンネルの識別子「２」をＴｕｎｅｒ８０５ｃに引き渡すと、Ｔｕｎｅｒ８０５ｃは、図１０の行１０１２を参照して、対応するチューニング情報「１５６ＭＨｚ，」を獲得する。Ｔｕｎｅｒ８０５ｃは、ＯＳ８０１のライブラリ８０１ｂを通して、チューナ３０１にチューニング情報を引き渡す。チューナ３０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し引き渡す。
【００４５】
次にサービスマネージャ８０４は、Ｊａｖａ（登録商標）ライブラリ８０５の中にあるＣＡ８０５ｄにデスクランブルを依頼する。ＣＡ８０５ｄは、ＯＳ８０１のライブラリ８０１ｂを通して復号に必要な情報をデスクランブラ３０２に与える。デスクランブラ３０２は、与えられた情報を元に、チューナ３０１から与えられた信号を復号しＴＳデコーダ３０３に引き渡す。
【００４６】
次にサービスマネージャ８０４は、Ｊａｖａ（登録商標）ライブラリ８０５の中にあるＪＭＦ８０５ａにチャンネルの識別子を与え、映像・音声の再生を依頼する。
【００４７】
まず、最初にＪＭＦ８０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴ、ＰＭＴから取得する。ＰＡＴやＰＭＴは、ＭＰＥＧ２規格で規定されているＭＰＥＧ２トランスポートストリーム内の、番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ８０５ａは、ＰＡＴを取得するため、ＯＳ８０１のライブラリ８０１ｂを通して、ＴＳデコーダ３０３にパケットＩＤ「０」とＣＰＵ３１３を指定する。ＴＳデコーダ３０３がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ３１３に引き渡すことでＪＭＦ８０５ａは、ＰＡＴのパケットを収集する。図１２は、収集したＰＡＴの情報の一例を模式的に表した表である。列１２０１は、プログラムナンバーである。列１２０２は、パケットＩＤである。列１２０２のパケットＩＤはＰＭＴを取得するために用いられる。行１２１１〜１２１３は、チャンネルのプログラムナンバーと対応するパケットＩＤの組である。ここでは、３つのチャンネルが定義されている。行１２１１はプログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ８０５ａに与えられたチャンネルの識別子が「２」とすると、ＪＭＦ８０５ａは、図１０の行１００４を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１２のＰＡＴの行１２１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ８０５ａは、ＰＭＴを取得するため、ＯＳ８０１のライブラリ８０１ｂを通して、ＴＳデコーダ３０３にパケットＩＤとＣＰＵ３１３を指定する。ここで、指定するパケットＩＤは「５０２」とする。ＴＳデコーダ３０３がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ３１３に引き渡すことでＪＭＦ８０５ａは、ＰＭＴのパケットを収集する。図１３は、収集したＰＭＴの情報の一例を模式的に表した表である。列１３０１は、ストリーム種別であり。列１３０２は、パケットＩＤである。列１３０２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１３０３は補足情報である。行１３１１〜１３１４はエレメンタリ−ストリームと呼ばれる、パケットＩＤと送信している情報の種別の組である。行１３１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ８０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。図１３を参照して、ＪＭＦ８０５ａは、行１３１１から音声のパケットＩＤ「５０１１」を、行１３１２から映像のパケットＩＤ「５０１２」を獲得する。
【００４８】
次に、ＪＭＦ８０５ａは、ＯＳ８０１のライブラリ８０１ｂを通して、獲得した音声のパケットＩＤと出力先としてオーディオデコーダ３０４、映像のパケットＩＤと出力先としてビデオデコーダ３０６の組を、ＴＳデコーダ３０３に与える。ＴＳデコーダ３０３は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。ここではパケットＩＤ「５０１１」のパケットをオーディオデコーダ３０４に、パケットＩＤ「５０１２」のパケットをビデオデコーダ３０６に引き渡す。オーディオデコーダ３０４は、与えられたパケットのデジタル−アナログ変換を行いスピーカ３０５を通して音声を再生する。ビデオデコーダ３０６は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ３０７に映像を表示する。
【００４９】
最後にサービスマネージャ８０４は、Ｊａｖａ（登録商標）ライブラリ８０５の中にあるＡＭ８０５ｂにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（登録商標）プログラムを抽出し、Ｊａｖａ（登録商標）ＶＭ８０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａ（登録商標）プログラムを埋め込む方法は、ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａ（登録商標）プログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．０．２）の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【００５０】
ＡＭ８０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ８０５ａ同様ＰＡＴ、ＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネルの識別子が「２」で、図１２のＰＡＴ、図１３のＰＭＴが送信されていると、ＪＭＦ８０５ａと同様の手順で、図１３のＰＭＴを獲得する。ＡＭ８０５ｂは、ＰＭＴからストリーム種別が「データ」で補足情報として「ＡＩＴ」を持つエレメンタリ−ストリームからパケットＩＤを抽出する。図１３を参照して、行１３１３のエレメンタリ−ストリームが該当し、パケットＩＤ「５０１３」を獲得する。
【００５１】
ＡＭ８０５ｂは、ＯＳ８０１のライブラリ８０１ｂを通してＴＳデコーダ３０３にＡＩＴのパケットＩＤと出力先ＣＰＵ３１３を与える。ＴＳデコーダ３０３は、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ３１３に引き渡す。この結果、ＡＭ８０５ｂは、ＡＩＴのパケットを収集することができる。図１４は、収集したＡＩＴの情報の一例を模式的に表した表である。列１４０１はＪａｖａ（登録商標）プログラムの識別子である。列１４０２はＪａｖａ（登録商標）プログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」などがあり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置３００がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はプログラムを停止することを意味する。列１４０３は、ＤＳＭＣＣ方式でＪａｖａ（登録商標）プログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列１４０４はＪａｖａ（登録商標）プログラムのプログラム名である。行１４１１と１４１２は、Ｊａｖａ（登録商標）プログラムの情報の組である。行１４１１で定義されるＪａｖａ（登録商標）プログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１４１２で定義されるＪａｖａ（登録商標）プログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａ（登録商標）プログラムは同じＤＳＭＣＣ識別子を持つが、これは、１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に、２つのＪａｖａ（登録商標）プログラムが含まれていることを表す。ここでは、Ｊａｖａ（登録商標）プログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【００５２】
ＡＭ８０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａ（登録商標）プログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａ（登録商標）プログラム名を抽出する。図１４を参照して、ＡＭ８０５ｂは行１４１１のＪａｖａ（登録商標）プログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａ（登録商標）プログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。
【００５３】
次にＡＭ８０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、Ｊａｖａ（登録商標）プログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリ−ストリームのパケットＩＤを取得する。
【００５４】
今、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１３とすると、行１３１４のエレメンタリ−ストリームが合致し、パケットＩＤ「５０１４」を取り出す。
【００５５】
ＡＭ８０５ｂは、ＯＳ８０１のライブラリ８０１ｂを通してＴＳデコーダ３０３に、ＤＳＭＣＣ方式でデータが埋めこまれたパケットのパケットＩＤと、出力先としてＣＰＵ３１３とを指定する。ここでは、パケットＩＤ「５０１４」を与える。ＴＳデコーダ３０３、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ３１３に引き渡す。この結果、ＡＭ８０５ｂは、必要なパケットを収集することができる。ＡＭ８０５ｂは、収集したパケットからＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部３０９に保存する。ＭＰＥＧ２トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し、１次記憶部３０９等の記憶手段に保存すことを、以降、アタッチと呼ぶ。
【００５６】
図１５は、アタッチしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１５０１はルートディレクトリ、１５０２はディレクトリ「ａ」，１５０３はディレクトリ「ｂ」，１５０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１５０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」である。
【００５７】
次にＡＭ８０５ｂは、１次記憶部３０９にアタッチしたファイルシステム中から実行するＪａｖａ（登録商標）プログラムを、Ｊａｖａ（登録商標）ＶＭ８０３に引き渡す。今、実行するＪａｖａ（登録商標）プログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａ（登録商標）プログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１５を参照して、ファイル１５０４が実行すべきＪａｖａ（登録商標）プログラムである。
【００５８】
Ｊａｖａ（登録商標）ＶＭ８０３は、引き渡されたＪａｖａ（登録商標）プログラムを実行する。
【００５９】
サービスマネージャ８０４は、他のチャンネルの識別子を受け取ると、再生している映像・音声及びＪａｖａ（登録商標）プログラムの実行を停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びＪａｖａ（登録商標）プログラムの実行を行う。再生／実行と再生停止／実行停止は、Ｊａｖａ（登録商標）ライブラリ８０５に含まれる各プログラムを通して行われる。
【００６０】
Ｊａｖａ（登録商標）ライブラリ８０５は、ＲＯＭ３１０に格納されている複数のＪａｖａ（登録商標）ライブラリの集合である。本実施の形態では、ここでは、Ｊａｖａ（登録商標）ライブラリ８０５は、ＪＭＦ８０５ａ，ＡＭ８０５ｂ，Ｔｕｎｅｒ８０５ｃ，ＣＡ８０５ｄ等を含んでいる。
【００６１】
次に、本発明に関連するデータカルーセルへのアタッチを必要とする処理の遅延について説明する。
【００６２】
図１６のＡＩＴ情報を持つ場合を例に挙げる。図１６のＡＩＴを収集したとき、ＡＭ８０５ｂは、制御情報が「ａｕｔｏｓｔａｒｔ」であり、Ｊａｖａ（登録商標）プログラム識別子が「４０１」であるＪａｖａ（登録商標）プログラムを起動するために、ＤＳＭＣＣ識別子「１」に対応するデータカルーセルにアタッチする。図１７は起動されるＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ１の処理フローである。
【００６３】
図１８はストア処理（ステップＳ１７０１）の詳細な処理フローである。Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ２のストア処理要求が発生すると、ストア対象のデータを含むデータカルーセルへ現在アタッチしているかどうか、即ち、１次記憶部３０９にストア対象のデータを保持しているかどうかを判定する。（ステップＳ１８０１）アタッチしているならば、１次記憶部３０９に保持しているストア対象のデータを２次記憶部３０８に保存する（ステップＳ１８０３）。アタッチしていないならばストア対象のデータに対応するＤＳＭＣＣ識別子を基に、データカルーセルへのアタッチを実行し（ステップＳ１８０２）、２次記憶部３０８にデータを保存する（ステップＳ１８０３）。
【００６４】
ステップＳ１７０１では、ストア対象のＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ２は、制御情報が「ｐｒｅｓｅｎｔ」であり、ＤＳＭＣＣ識別子が「２」であり、現在アタッチしているＤＳＭＣＣ識別子「１」と異なるので、ストア処理のためには、ストア対象のデータに対応するＤＳＭＣＣ識別子「２」を基に、データカルーセルへのアタッチを実行しなければならない（ステップＳ１８０２）。
【００６５】
ストア処理によって２次記憶部３０８に保存されるＪａｖａ（登録商標）プログラムの使用用途が、ＤＶＢ−ＭＨＰ規格（正式には、ＥＴＳＩ  ＴＳ  １０１  ８１２  ＤＶＢ−ＭＨＰ仕様Ｖ１．１．１）で定義されているＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ用であるとき、保存したＪａｖａ（登録商標）プログラムが必要になるのは、ストア処理要求が出された直後ではなく、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネル切り替えしたときである。
【００６６】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅは、端末にあらかじめ保存したＪａｖａ（登録商標）プログラムのみで構成されるチャンネルである。
【００６７】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅは、図１９のフローのようにして実現できる。Ｊａｖａ（登録商標）プログラムからＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ生成用のＡＰＩ（Application Program Interface）を使用することで、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅが生成され（ステップＳ１９０１）、２次記憶部３０８に保存されているチャンネル情報にＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅのチャンネル情報が追加される（ステップＳ１９０２）。図２０は、図１０のチャンネル情報に、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅのチャンネル情報が追加されたときの、２次記憶部３０８に格納されているチャンネル情報の一例である。列２００１は、チャンネルの識別子である。列２００２は、チャンネル名である。列２００３は、チューニング情報である。列２００４は、プログラムナンバーである。行２０１１、２０１２、２０１３、２０１４はヘッドエンドから送信されるチャンネルである。行２０１５はＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅである。Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅは、端末の２次記憶部３０８に格納されているＪａｖａ（登録商標）プログラムやＡＩＴ情報を用いるので、行２０１５のチューニング情報、プログラムナンバーは不要である。
【００６８】
２次記憶部３０８に保存されているＪａｖａ（登録商標）プログラムを、ステップＳ１９０１で生成したＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録する（ステップＳ１９０３）。Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅには複数のＪａｖａ（登録商標）プログラムを登録することができる。このとき、２次記憶部３０８からＪａｖａ（登録商標）プログラムを起動できるように、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録したＪａｖａ（登録商標）プログラムのＡＩＴの情報の一部もしくは全てを２次記憶部３０８に保存する。
【００６９】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録できるＪａｖａ（登録商標）プログラムは、図１６のＡＩＴ情報に加えて、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへ登録可能かどうかを示すストレージプロパティフラグが示される。ストレージプロパティフラグで「１」が示されているＪａｖａ（登録商標）プログラムの場合は、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへ登録することができる。このフラグで「１」以外が示された、またはこの識別子を含まないＪａｖａ（登録商標）プログラムの場合は、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録することはできない。図２１はストレージプロパティフラグを持つＡＩＴの一例である。
【００７０】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへは、放送されているチャンネルと同様にチャンネルを切り替えることができる。生成されたＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅは、本実施例の場合、ＥＰＧの番組表示部８０２aにＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅが登録されたことを反映することで、生成されたＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへのチャンネルの切り替えを可能にできる。
【００７１】
ＥＰＧからＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅを選択したとき、チャンネル選択してからサービスマネージャ８０４が再生部８０２ｂよりチャンネルの識別子を受け取るまでの処理フローは、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅでないチャンネルへ切り替えたときの処理フローと同じである。
【００７２】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅは２次記憶部３０８に保存されているＪａｖａ（登録商標）プログラムのみで構成されており、ヘッドエンド１０１から送信されてきた信号は不要なので、サービスマネージャからのＴｕｎｅｒ８０５ｃへのチューニング依頼、ＣＡ８０５ｄへのデスクランブル依頼、ＪＭＦ８０５ａへの映像・音声の再生依頼は不要である。
【００７３】
Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムの起動のために、サービスマネージャ８０４は、Ｊａｖａ（登録商標）ライブラリ８０５の中にあるＡＭ８０５ｂにチャンネルの識別子を与え、Ｊａｖａ（登録商標）プログラム起動を依頼する。
【００７４】
ＡＭ８０５ｂは、２次記憶３０８に保存されているＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ用のＡＩＴの情報を使用するので、トランスポートストリームからのパケット収集は不要である。
【００７５】
ＡＭ８０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａ（登録商標）プログラムを見つけ出し、対応するＪａｖａ（登録商標）プログラム名を抽出する。この時、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  ＳｅｒｖｉｃｅのＪａｖａ（登録商標）プログラムは２次記憶部３０８に保存されているので、ＤＳＭＣＣ識別子に基づいたデータカルーセルへのアタッチは不要である。アタッチの代わりに、２次記憶部３０８に保存されている起動対象のＪａｖａ（登録商標）プログラムを、保存先情報に基づいて１次記憶部３０９に読み込む。
【００７６】
次にＡＭ８０５ｂは、１次記憶部３０９に読み込んだ起動対象のＪａｖａ（登録商標）プログラムをＪａｖａ（登録商標）ＶＭ８０３に引き渡す。Ｊａｖａ（登録商標）ＶＭ８０３は、引き渡されたＪａｖａ（登録商標）プログラムを実行する。
【００７７】
ストア処理のストア対象Ｊａｖａ（登録商標）プログラムが、ストレージプロパティフラグで「１」を示しているならば、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへ登録可能である。ストア対象のＪａｖａ（登録商標）プログラムのストレージプロパティフラグで「１」が示されたとき、ストア処理で保存されるＪａｖａ（登録商標）プログラムが必要になるのはストア処理要求が出された直後ではなく、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへ登録し、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替え、ストア処理で保存されるＪａｖａ（登録商標）プログラムを起動するときである。少なくとも、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅを選択し、ストア処理で保存されるＪａｖａ（登録商標）プログラムを起動するときまでにストア処理が完了しているならば、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅの動作に影響はないので、ストア処理要求が来たときよりも後にストア処理を行っても、このストア処理要求の目的を満たすことができる。
【００７８】
アタッチは、ＭＰＥＧ２  トランスポートストリームに含まれるＪａｖａ（登録商標）プログラムを起動する時に、起動対象のＪａｖａ（登録商標）プログラムのＤＳＭＣＣ識別子のデータカルーセルにアタッチしていなければ、必ず実行される。
【００７９】
ストア処理を実行するためだけに、アタッチを実行しなければならない場合、一旦ストア処理を遅延する。遅延したストア処理のストア対象Ｊａｖａ（登録商標）プログラムと同じＤＳＭＣＣ識別子を持つＪａｖａ（登録商標）プログラムを起動するとき、遅延したストア処理を実行するために必要であったデータカルーセルへのアタッチがＪａｖａ（登録商標）プログラム起動のために実行される。このアタッチ実行後に、遅延したストア処理を行うことで、ストア処理のためだけのアタッチを不要化できる。
【００８０】
もし、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替えるまでに、ストア対象のＤＳＭＣＣ識別子を持つＪａｖａ（登録商標）プログラムが起動されず、ストア処理を完了できなかったときは、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替えた時にアタッチを含めたストア処理を実行し、ストア対象のＪａｖａ（登録商標）プログラムを起動できるようにする。
【００８１】
図１６の場合、Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ２のストア処理を実行するためには、アタッチを実行しなければならない。Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ２のＡＩＴ情報が図２１のようにストレージプロパティフラグを持ち、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ用のＪａｖａ（登録商標）プログラムであるならば、処理の負担が大きいアタッチを実行する（ステップＳ２２０３）のではなく、ストア処理を予約し（ステップＳ２２０４）、ストア処理要求が発生したときにはストア処理は行わない。予約したストア処理を後でも実行可能にするために、ステップＳ２２０４では、予約処理内容とアタッチに必要なＤＳＭＣＣ識別子を１次記憶部３０９に保存する。１次記憶部３０９に保存する予約処理内容は、遅延後も予約した処理を実行できるようにするために、予約した処理の処理要求の仕方、予約した処理の内容や予約した処理に必要な情報などを保存しておく。本実施例ではストア処理の予約処理内容の一例として、予約した処理の処理要求の仕方と予約した処理に必要な情報を保持する。図２３はステップＳ２２０４でストア処理を予約したとき、１次記憶部３０９に保存する情報の一例である。予約処理内容２３０２はストア処理を処理要求する時に利用するＡＰＩの「ｓｔｏｒｅ」である。予約処理内容２３０３はストア処理を処理要求する時に必要なストア対象のＪａｖａ（登録商標）プログラム名「／ｂ／ＡｐｐＸｌｅｔ２」である。予約した処理は、予約処理内容２３０２「ｓｔｏｒｅ」と予約処理内容２３０３「／ｂ／ＡｐｐＸｌｅｔ２」を用いることで、処理要求が発生した時点でなくとも処理可能にできる。本実施例ではストア処理の予約は１件だが、複数件予約してもよい。
【００８２】
Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ１はＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ２のストア処理要求（Ｓ１７０１）後、Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ３を起動する（Ｓ１７０２）。図２４はＪａｖａ（登録商標）プログラムが起動されるまでのフローである。起動対象のＪａｖａ（登録商標）プログラムのＤＳＭＣＣ識別子を基にアタッチしていなければ、起動対象のＪａｖａ（登録商標）プログラムを含むデータカルーセルへのアタッチを実行（ステップＳ２４０２）し、起動対象のＪａｖａ（登録商標）プログラムを起動する（ステップＳ２４０３）。図２５はＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ３が起動されるまでのフローである。Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ３はＤＳＭＣＣ識別子「２」のデータにアタッチしていないので、Ｊａｖａ（登録商標）プログラムを起動するためにＡＭ８０５ｂはアタッチを実行する（ステップＳ２５０１）。１次記憶３０９に予約されている処理があるか確認し（ステップＳ２５０２）、更にＤＳＭＣＣ識別子「２」のデータへのアタッチを必要としている処理が予約されているか確認し（ステップＳ２５０３）、図２３のＤＳＭＣＣ識別子２３０１で「２」のデータを必要とする処理を予約しているので、ストア処理を予約処理内容２３０２，２３０３に基づいて実行する（ステップＳ２５０４）。ストア処理を実行する時、ＤＳＭＣＣ識別子「２」のデータへのアタッチが既に実行されているので、ストア処理のためだけにアタッチを実行することなく、Ｊａｖａ（登録商標）プログラムを端末に保存し（Ｓ２５０５）、予約していたストア処理を完了することができる。予約していたストア処理を実行できた時、１次記憶３０９から図２３の列２３１１の情報を削除する。
【００８３】
予約していたストア処理を、ストア対象のＪａｖａ（登録商標）プログラムが必要になるまで、すなわち、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替えるまでに、実行できなかった場合、図２３の情報が１次記憶部３０９に残ることになる。図２６はＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替え、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムを起動するときのフローである。Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムが、１次記憶部３０９の予約処理内容にストア対象Ｊａｖａ（登録商標）プログラムとして保存されているかどうかを確認し（ステップＳ２６０１）、１次記憶部３０９の予約処理内容に保存されている場合、１次記憶部３０９の列２３１１のＤＳＭＣＣ識別子２３０１を基にデータカルーセルへアタッチし（Ｓ２６０２）、列２３１１の予約処理内容２３０２，２３０３を用いてストア処理を実行する（ステップＳ２６０３）。Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムを起動するより前に、予約していた処理とアタッチを実行することで、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムの起動に影響を与えずに、予約していた処理の処理要求を満たすことが出来る。
【００８４】
（実施の形態２）
実施の形態１においては、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（登録商標）プログラムを起動するときのアタッチ（ステップＳ２３０２）を利用して、遅延した処理を実行していたが、このタイミング以外でアタッチが実行されたときを利用して、遅延した処理を実行することも可能である。
【００８５】
ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（登録商標）プログラム１を起動し実行したとき、Ｊａｖａ（登録商標）プログラム１はデータカルーセルのデータが必要なった場合に、明示的にデータカルーセルへのアタッチを実行することができる。このときのアタッチを利用して、遅延した処理を実行することも可能である。
【００８６】
（実施の形態３）
実施の形態１、２においては、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ用のＪａｖａ（登録商標）プログラムのストア処理を遅延の対象にしていたが、アタッチを伴う処理１の実行結果を利用した処理２の処理要求が発生するまでに処理１を完了していれば良い場合、この処理１を遅延の対象にすることも可能である。
【００８７】
なお、実施の形態１、２、３を通して、以下の応用が可能である。
【００８８】
本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
【産業上の利用可能性】
【００８９】
本発明にかかるプログラム実行装置は、処理１がデータカルーセルからのデータ受信処理を伴うとき、処理１を処理要求が発生した時点から遅延する手段と、処理１の遅延後に、前記受信処理の受信対象のデータカルーセルへのデータ受信処理が発生したとき、処理１を実行する手段と、処理１の実行結果が必要になるまでに処理１が実行されていないことを検出した場合、先行してデータ受信処理と処理１を実行する手段を有し、デジタルテレビ受信機の一時的な機能向上、機能付加等として有用である。またデジタルテレビに限らずパーソナルコンピュータや携帯電話などソフトウエアによって制御される情報機器の一時的な機能向上、機能付加等の用途にも適用できる。
【図面の簡単な説明】
【００９０】
【図１】本発明に係るケーブルテレビシステムの実施の形態１の構成図
【図２】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を表す図
【図３】本発明に係るケーブルテレビシステムにおいて端末装置の構成図
【図４】本発明に係るケーブルテレビシステムにおいて端末装置の外観の一例を表す図
【図５】ＭＰＥＧ規格で定義されているパケットの構成図
【図６】ＭＰＥＧ２トランスポートストリームの一例を表す図
【図７】入力部３１１をフロントパネルで構成した場合の外観の一例を表す図
【図８】本発明に係る端末装置３００が保存するプログラム構成の構成図
【図９】（１）本発明に係るディスプレイ３０７の表示の一例を表す図（２）本発明に係るディスプレイ３０７の表示の一例を表す図
【図１０】本発明に係る２次記憶部３０８が保存する情報の一例を表す図
【図１１】本発明に係る１次記憶部３０９が保存する情報の一例を表す図
【図１２】本発明に係るＭＰＥＧ２規格が規定するＰＡＴの内容を表す模式図
【図１３】本発明に係るＭＰＥＧ２規格が規定するＰＭＴの内容を表す模式図
【図１４】本発明に係るＤＶＢ−ＭＨＰ規格が規定するＡＩＴの内容を表す模式図
【図１５】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図
【図１６】本発明に係る、ＡＩＴの内容の一例を表す図
【図１７】実施の形態１において、Ｊａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ１を実行した際の動作を表すフローチャート
【図１８】実施の形態１において、Ｊａｖａ（登録商標）プログラムのストア処理要求がきた際の動作を表すフローチャート
【図１９】本発明に係る、ＤＶＢ−ＭＨＰ規格が規定するＳｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅが利用可能になるまでの動作を表すフローチャート
【図２０】本発明に係る、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅが利用できる場合のチャンネル情報の一例を表す図
【図２１】本発明に係る、ストレージプロパティフラグが指定された場合のＡＩＴの内容の一例を表す図
【図２２】実施の形態１において、Ｊａｖａ（登録商標）プログラムのストア処理を遅延可能にしたときの、ストア処理要求がきた際の動作を表すフローチャート
【図２３】実施の形態１において、ストア処理を予約したときに１次記憶３０９に保存する情報の一例を表す図
【図２４】実施の形態１において、Ｊａｖａ（登録商標）プログラムを起動する際の動作を表すフローチャート
【図２５】実施の形態１において、実行中のＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ１がＪａｖａ（登録商標）プログラムＡｐｐＸｌｅｔ３を起動した際の動作を表すフローチャート
【図２６】実施の形態１において、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅへチャンネルを切り替え、Ｓｔｏｒｅｄ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅに登録されているＪａｖａ（登録商標）プログラムを起動する際の動作を表すフローチャート
【符号の説明】
【００９１】
８００    プログラム
８０１    ＯＳ
８０１ａ    カーネル
８０１ｂ    ライブラリ
８０２    ＥＰＧ
８０２ａ    再生部
８０２ｂ    番組表示部
８０３    Ｊａｖａ（登録商標）ＶＭ
８０４    サービスマネージャ
８０５    Ｊａｖａ（登録商標）ライブラリ
８０５ａ    ＪＭＦ
８０５ｂ    ＡＭ
８０５ｃ    Ｔｕｎｅｒ
８０５ｄ    ＣＡ
【図１】
2008187333.tif 000003
【図２】
2008187333.tif 000004
【図３】
2008187333.tif 000005
【図４】
2008187333.tif 000006
【図５】
2008187333.tif 000007
【図６】
2008187333.tif 000008
【図７】
2008187333.tif 000009
【図８】
2008187333.tif 000010
【図９】
2008187333.tif 000011
【図１０】
2008187333.tif 000012
【図１１】
2008187333.tif 000013
【図１２】
2008187333.tif 000014
【図１３】
2008187333.tif 000015
【図１４】
2008187333.tif 000016
【図１５】
2008187333.tif 000017
【図１６】
2008187333.tif 000018
【図１７】
2008187333.tif 000019
【図１８】
2008187333.tif 000020
【図１９】
2008187333.tif 000021
【図２０】
2008187333.tif 000022
【図２１】
2008187333.tif 000023
【図２２】
2008187333.tif 000024
【図２３】
2008187333.tif 000025
【図２４】
2008187333.tif 000026
【図２５】
2008187333.tif 000027
【図２６】
2008187333.tif 000028