(57)【特許請求の範囲】
【請求項１】
プログラムのダウンロードおよび起動を行うプログラム実行装置であって、
前記プログラムのダウンロード時間を計測するダウンロード時間計測手段と、
前記プログラムの起動時間を計測する起動時間計測手段と、
計測された前記ダウンロード時間および前記起動時間をプログラム毎に履歴情報として記憶する履歴情報記憶手段と、
プログラムの起動指示を受け付ける起動管理手段と、
起動指示が受け付けられたプログラムの履歴情報を検索する履歴情報検索手段と、
前記履歴情報検索手段により検索された履歴情報に基づいて、起動指示が受け付けられたプログラムが起動指示から起動されるまでの起動待ち時間を予測し、予測した起動待ち時間をユーザに通知する通知手段と
を備えることを特徴とするプログラム実行装置。
【請求項２】
前記通知手段は、前記履歴情報検索手段により検索された履歴情報の前記ダウンロード時間および前記起動時間を加算した時間を、前記起動待ち時間として予測する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】
前記プログラム実行装置は、さらに、
ダウンロードされたプログラムを保存する保存手段を備え、
前記通知手段は、起動指示が受け付けられたプログラムが前記保存手段に保存されていない場合、前記履歴情報検索手段により検索された履歴情報の前記ダウンロード時間および前記起動時間を加算した時間を、前記起動待ち時間として予測し、起動指示が受け付けられたプログラムが前記保存手段に保存されている場合、前記履歴情報検索手段により検索された履歴情報の前記起動時間を、前記起動待ち時間として予測する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項４】
前記プログラム実行装置は、さらに、
前記プログラムに対して、当該プログラムが前記保存手段に保存されているか否かに応じた認証を行う認証手段を備え、
起動指示が受け付けられたプログラムが前記保存手段に保存されていない場合、前記ダウンロード時間計測手段は、前記認証手段における前記プログラムの認証時間を前記ダウンロード時間に含めて計測し、
起動指示が受け付けられたプログラムが前記保存手段に保存されている場合、前記起動時間計測手段は、前記認証手段における前記プログラムの認証時間を前記起動時間に含めて計測する
ことを特徴とする請求項３記載のプログラム実行装置。
【請求項５】
前記プログラム実行装置は、さらに、
前記プログラムに対して前記認証手段における認証を行う必要があるか否かを判断する認証判断手段を備え、
前記認証手段は、前記認証判断手段によって認証を行う必要があると判断された場合に、前記プログラムに対して認証を行う
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項６】
前記プログラム実行装置は、さらに、
前記履歴情報記憶手段に記憶されている前記履歴情報を、新たに計測された前記起動時間、または、前記ダウンロード時間および前記起動時間を用いて更新する履歴情報更新手段を備える
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項７】
前記通知手段は、前記起動待ち時間に加えて、当該プログラムのプログラム名をユーザに通知する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項８】
前記通知手段は、前記起動待ち時間をカウントダウン形式で通知する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項９】
前記通知手段は、前記履歴情報検索手段により検索した結果、起動指示が受け付けられたプログラムの履歴情報が取得できなかった場合、前記起動待ち時間を不明として予測する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１０】
プログラムのダウンロードおよび起動を行うコンピュータが実行するプログラム実行方法であって、
前記プログラムのダウンロード時間を計測するダウンロード時間計測ステップと、
前記プログラムの起動時間を計測する起動時間計測ステップと、
計測された前記ダウンロード時間および前記起動時間をプログラム毎に履歴情報として記憶する履歴情報記憶ステップと、
プログラムの起動指示を受け付ける起動管理ステップと、
起動指示が受け付けられたプログラムの履歴情報を検索する履歴情報検索ステップと、
前記履歴情報検索ステップにおいて検索された履歴情報に基づいて、起動指示が受け付けられたプログラムが起動指示から起動されるまでの起動待ち時間を予測し、予測した起動待ち時間をユーザに通知する通知ステップと
を含むことを特徴とするプログラム実行方法。
【請求項１１】
実行プログラムのダウンロードおよび起動をコンピュータに行わせるためのプログラムであって、
前記実行プログラムのダウンロード時間を計測するダウンロード時間計測ステップと、
前記実行プログラムの起動時間を計測する起動時間計測ステップと、
計測された前記ダウンロード時間および前記起動時間を実行プログラム毎に履歴情報として記憶する履歴情報記憶ステップと、
プログラムの起動指示を受け付ける起動管理ステップと、
起動指示が受け付けられた実行プログラムの履歴情報を検索する履歴情報検索ステップと、
前記履歴情報検索ステップにおいて検索された履歴情報に基づいて、起動指示が受け付けられた実行プログラムが起動指示から起動されるまでの起動待ち時間を予測し、予測した起動待ち時間をユーザに通知する通知ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
実行プログラムのダウンロードおよび起動をコンピュータに行わせるためのプログラムを格納したコンピュータ読み取り可能な記録媒体であって、
前記実行プログラムのダウンロード時間を計測するダウンロード時間計測ステップと、
前記実行プログラムの起動時間を計測する起動時間計測ステップと、
計測された前記ダウンロード時間および前記起動時間を実行プログラム毎に履歴情報として記憶する履歴情報記憶ステップと、
プログラムの起動指示を受け付ける起動管理ステップと、
起動指示が受け付けられた実行プログラムの履歴情報を検索する履歴情報検索ステップと、
前記履歴情報検索ステップにおいて検索された履歴情報に基づいて、起動指示が受け付けられた実行プログラムが起動指示から起動されるまでの起動待ち時間を予測し、予測した起動待ち時間をユーザに通知する通知ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムをダウンロードして実行するプログラム実行装置に関する。特に、プログラムのダウンロードと起動に関する。
【背景技術】
【０００２】
デジタルテレビにおけるプログラムをダウンロードして、そのプログラムを起動する機能は、ＤＶＢ−ＭＨＰ規格書"ＥＴＳＩ  ＴＳ  １０１  ８１２  Ｖ１．２．１  ＤＶＢ−ＭＨＰ仕様１．０．２等に記載されており、サービスが選択されると、そのサービスに対応するプログラムに関して記述されているＡＩＴ（Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅ）に基づきプログラムのダウンロード及び起動が行われる。
【０００３】
一方、例えば特許文献１では、コンテンツのダウンロード時と閲覧、操作時が異なったとしても、クライアントにおけるコンテンツの閲覧および操作履歴を的確に収集することができる操作履歴収集システム、操作履歴収集サーバ、操作履歴収集方法および操作履歴収集プログラムとコンテンツ付与プログラムを記録した記録媒体が提案されている。この操作履歴収集サーバは、クライアントにダウンロードするコンテンツに対して、ユーザの閲覧および操作履歴を記録し、かつこの閲覧のおよび操作履歴をサーバにアップロードするプログラム、ユーザＩＤ、コンテンツＩＤを付与してクライアントにダウンロードし、プログラムの制御によりクライアントからアップロードされるユーザの閲覧および操作履歴を操作履歴として記録し、またクライアントにダウンロードされようとするコンテンツ名とユーザＩＤをダウンロード履歴として記録している。
【特許文献１】特開２００１−２０９６０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ユーザ（例えば視聴者）がサービス選択を行なうと、そのサービスのＡＩＴに基づきプログラムが自動でダウンロードされ起動されるが、ユーザにとっては、そのプログラムの起動までにどれくらいの時間が要するのか分からない。また、そのプログラムが以前にストレージに保存済みの場合、一般的に起動までに要する時間は短いが、その状態についてユーザは分からない。
【０００５】
そこで、本発明は上記の問題に鑑みてなされたものであり、ユーザに対して、プログラムのダウンロードおよび起動に関する時間や情報を知らせることができるプログラム実行装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るプログラム実行装置は、プログラムのダウンロードおよび起動を行うプログラム実行装置であって、前記プログラムのダウンロード時間を計測するダウンロード時間計測手段と、前記プログラムの起動時間を計測する起動時間計測手段と、計測された前記ダウンロード時間および前記起動時間をプログラム毎に履歴情報として記憶する履歴情報記憶手段と、プログラムの起動指示を受け付ける起動管理手段と、起動指示が受け付けられたプログラムの履歴情報を検索する履歴情報検索手段と、前記履歴情報検索手段により検索された履歴情報に基づいて、起動指示が受け付けられたプログラムが起動指示から起動されるまでの起動待ち時間を予測し、予測した起動待ち時間をユーザに通知する通知手段とを備えることを特徴とする。
【０００７】
これによって、ユーザ（視聴者）にプログラムの起動指示からプログラムが起動されるまでの起動待ち時間を伝えることができる。
【０００８】
また、前記通知手段は、前記履歴情報検索手段により検索された履歴情報の前記ダウンロード時間および前記起動時間を加算した時間を、前記起動待ち時間として予測してもよい。
【０００９】
これによって、例えばプログラムの起動毎にプログラムのダウンロードが必要である場合等に、ユーザにプログラムの起動指示からプログラムが起動されるまでの起動待ち時間を伝えることができる。
【００１０】
また、前記プログラム実行装置は、さらに、ダウンロードされたプログラムを保存する保存手段を備え、前記通知手段は、起動指示が受け付けられたプログラムが前記保存手段に保存されていない場合、前記履歴情報検索手段により検索された履歴情報の前記ダウンロード時間および前記起動時間を加算した時間を、前記起動待ち時間として予測し、起動指示が受け付けられたプログラムが前記保存手段に保存されている場合、前記履歴情報検索手段により検索された履歴情報の前記起動時間を、前記起動待ち時間として予測してもよい。
【００１１】
これによって、例えばダウンロードされたプログラムを保存することが可能である場合等に、起動しようとするプログラムが保存されているか否かに応じて、ユーザにプログラムの起動指示からプログラムが起動されるまでの起動待ち時間を伝えることができる。
【００１２】
また、前記プログラム実行装置は、さらに、前記プログラムに対して、当該プログラムが前記保存手段に保存されているか否かに応じた認証を行う認証手段を備え、起動指示が受け付けられたプログラムが前記保存手段に保存されていない場合、前記ダウンロード時間計測手段は、前記認証手段における前記プログラムの認証時間を前記ダウンロード時間に含めて計測し、起動指示が受け付けられたプログラムが前記保存手段に保存されている場合、前記起動時間計測手段は、前記認証手段における前記プログラムの認証時間を前記起動時間に含めて計測してもよい。これによって、ダウンロードされたプログラムに対して認証を行う場合であっても、起動しようとするプログラムが保存されているか否かに応じて、ユーザにプログラムの起動指示からプログラムが起動されるまでの起動待ち時間を伝えることができる。
【００１３】
また、前記プログラム実行装置は、さらに、前記プログラムに対して前記認証手段における認証を行う必要があるか否かを判断する認証判断手段を備え、前記認証手段は、前記認証判断手段によって認証を行う必要があると判断された場合に、前記プログラムに対して認証を行ってもよい。これによって、ダウンロードされたプログラムに応じて認証を行うことができる。
【００１４】
また、前記プログラム実行装置は、さらに、前記履歴情報記憶手段に記憶されている前記履歴情報を、新たに計測された前記起動時間、または、前記ダウンロード時間および前記起動時間を用いて更新する履歴情報更新手段を備えてもよい。これによって、最新の履歴情報に基づいて起動待ち時間を伝えることができる。
【００１５】
また、前記通知手段は、前記起動待ち時間に加えて、当該プログラムのプログラム名をユーザに通知してもよい。これによって、ユーザにどのプログラムの起動待ち時間であるかを伝えることができる。
【００１６】
また、前記通知手段は、前記起動待ち時間をカウントダウン形式で通知してもよい。これによって、ユーザにプログラムが起動されるまでに後どれくらいの時間がかかるのかを伝えることができる。
【００１７】
また、前記通知手段は、前記履歴情報検索手段により検索した結果、起動指示が受け付けられたプログラムの履歴情報が取得できなかった場合、前記起動待ち時間を不明として予測してもよい。これによって、ユーザにプログラムのダウンロードおよび起動が最初であることを伝えることができる。
【００１８】
なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、このようなプログラム実行装置が備える特徴的な手段をステップとするプログラム実行方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００１９】
以上の説明から明らかなように、本発明に係るプログラム実行装置によれば、ユーザ（視聴者）にプログラムの起動指示からプログラムが起動されるまでの起動待ち時間を伝えることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２１】
（実施の形態１）
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図１は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド１０１及び３個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。本実施の形態では、１つのヘッドエンドに対して３つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
【００２２】
ヘッドエンド１０１は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の伝送に用いられる周波数帯域は、分割して用いられる。
【００２３】
図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主にヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間のデータのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。
【００２４】
図３は、ＯＯＢ周波数帯域の更に詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚはヘッドエンド１０１からのデータ送信に使用され、全ての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、ヘッドエンド１０１から同じデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１からヘッドエンド１０１へのデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２からヘッドエンド１０１へのデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３からヘッドエンド１０１へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３からヘッドエンド１０１に送信することができる。
【００２５】
図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
【００２６】
ヘッドエンド１０１は、これらの周波数帯域に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等を有する。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器を有する。また、ヘッドエンド１０１は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００２７】
端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、ヘッドエンド１０１からの放送信号を受信し再生する。また、ヘッドエンド１０１に対して、各端末装置固有のデータを送信する。３つの、端末装置は本実施の形態では同じ構成を取る。
【００２８】
図５は、端末装置のハードウエア構成を表すブロック図である。端末装置５００は、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＴＳデコーダ５０５、オーディオデコーダ５０６、スピーカ５０７、ビデオデコーダ５０８、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２、入力部５１３、ＣＰＵ５１４で構成される。また端末装置５００には、ＰＯＤ５０４が着脱できる。
【００２９】
図６は、端末装置５００の外観の一例である薄型テレビである。端末装置は様々な構成で実現できるが、本実施例ではＯｐｅｎＣａｂｌｅ（Ｒ）及びＯＣＡＰに基づいて構成された端末装置を例にとって説明する。
【００３０】
薄型テレビの筐体６０１は、ＰＯＤ５０４を除く、端末装置５００の構成要素をすべて内蔵している。
【００３１】
ディスプレイ６０２は、図５におけるディスプレイ５０９に相当する。
【００３２】
フロントパネル部６０３は複数のボタンで構成され、図５の入力部５１３に相当する。
【００３３】
信号入力端子６０４は、ヘッドエンド１０１との信号の送受信を行うためにケーブル線を接続する。また、信号入力端子６０４は、図５のＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３と接続されている。
【００３４】
ＰＯＤカード６０５は、図５のＰＯＤ５０４に相当する。ＰＯＤ５０４は、図６のＰＯＤカード６０５のように、端末装置５００とは独立した形態を取り、端末装置５００に着脱可能となっている。ＰＯＤ５０４の詳細は後述する。
【００３５】
挿入スロット６０６は、ＰＯＤカード６０５が挿入される挿入スロットである。
【００３６】
図５を参照して、ＱＡＭ復調部５０１は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＡＭ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３７】
ＱＰＳＫ復調部５０２は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＰＳＫ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３８】
ＱＰＳＫ変調部５０３は、ＣＰＵ５１４から指定された周波数を含む復調情報で、ＰＯＤ５０４から渡された信号をＱＰＳＫ復調し、ヘッドエンド１０１に送信する。
【００３９】
ＰＯＤ５０４は、図６のように端末装置本体５００から着脱可能な形態をしている。端末本体５００とＰＯＤ５０４の接続インターフェースは、ＯｐｅｎＣａｂｌｅ（Ｒ）  ＣａｂｌｅＣＡＲＤ（Ｒ）  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＣＣ−ＩＦ−Ｉ１５−０３１１２１）及び、この仕様書から参照されている仕様書で定義されている。なお、仕様書のＣａｂｌｅＣＡＲＤとはＰＯＤのことを指している。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
【００４０】
図７は、ＰＯＤ５０４の内部構成を表すブロック図である。ＰＯＤ５０４は、第１デスクランブラ部７０１、第２デスクランブラ部７０２、スクランブラ部７０３、第１記憶部７０４、第２記憶部７０５、ＣＰＵ７０６で構成される。
【００４１】
第１デスクランブラ部７０１は、ＣＰＵ７０６からの指示により、端末装置５００のＱＡＭ復調部５０１から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置５００のＴＳデコーダ５０５に送る。デコードに必要な鍵などの情報はＣＰＵ７０６から適宜与えられる。具体的には、ヘッドエンド１０１はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購買すると、第１デスクランブラ部７０１は、ＣＰＵ７０６から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第１デスクランブラ部７０１は、デスクランブルを行わず、受け取った信号をそのまま、ＴＳデコーダ５０５に送る。
【００４２】
第２デスクランブラ部７０２は、ＣＰＵ７０６からの指示により、端末装置５００のＱＰＳＫ復調部５０２から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをＣＰＵ７０６に引き渡す。
【００４３】
スクランブラ部７０３は、ＣＰＵ７０６からの指示により、ＣＰＵ７０６から受け取ったデータを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に送る。
【００４４】
第１記憶部７０４は、具体的にはＲＡＭ等の１次記憶メモリーで構成され、ＣＰＵ７０６が処理を行う際、一時的にデータを保存するために使用される。
【００４５】
第２記憶部７０５は、具体的にはフラッシュＲＯＭ等の２次記憶メモリーで構成され、ＣＰＵ７０６が実行するプログラムを格納し、また、電源ＯＦＦになっても消去されては困るデータの保存に使用される。
【００４６】
ＣＰＵ７０６は、第２記憶部７０５が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図８は、第２記憶部７０５が記憶するプログラムの一例である。図８では、プログラム８００は、メインプログラム８０１、初期化サブプログラム８０２、ネットワークサブプログラム８０３、再生サブプログラム８０４、ＰＰＶサブプログラム８０５等複数のサブプログラムで構成されている。
【００４７】
ここでＰＰＶとはＰａｙ  Ｐｅｒ  Ｖｉｅｗの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド１０１に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払うものである。
【００４８】
メインプログラム８０１は、ＣＰＵ７０６が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
【００４９】
初期化サブプログラム８０２は、電源投入時にメインプログラム８０１によって起動され、端末装置５００との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、ＯｐｅｎＣａｂｌｅ（Ｒ）  ＣａｂｌｅＣＡＲＤ（Ｒ）  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＣＣ−ＩＦ−Ｉ１５−０３１１２１）及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ復調部５０２に通知する。ＱＰＳＫ復調部５０２は、与えられた第１の周波数でチューニングを行い、信号を第２デスクランブラ部７０２に送る。また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の鍵等の復号情報を第２デスクランブラ部７０２に与える。その結果、第２デスクランブラ部７０２は、デスクランブルを行い、初期化サブプログラム８０２を実行するＣＰＵ７０６に引き渡す。よって、初期化サブプログラム８０２は情報を受け取ることができる。本実施の形態では、初期化サブプログラム８０２はネットワークサブプログラム８０３を通して情報を受け取ることとする。詳細は後述する。
【００５０】
また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第２の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ変調部５０３に通知する。初期化サブプログラム８０２は第２記憶部７０５が記憶する暗号化情報をスクランブラ部７０３に与える。初期化サブプログラム８０２が送信したい情報を、ネットワークサブプログラム８０３を介して、スクランブラ部７０３に与えると、スクランブラ部７０３は、与えられた暗号化情報を用いて、データを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に与える。ＱＰＳＫ変調部５０３は、与えられた暗号化された情報を変調し、ヘッドエンド１０１に送信する。
【００５１】
この結果、初期化サブプログラム８０２は、端末装置５００、第２デスクランブラ部７０２、スクランブラ部７０３、ネットワークサブプログラム８０３を通して、ヘッドエンド１０１と双方向通信を行うことができる。
【００５２】
ネットワークサブプログラム８０３は、メインプログラム８０１、初期化サブプログラム８０２等の複数のサブプログラムから使用される、ヘッドエンド１０１との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム８０３を使用する他のサブプログラムに対して、ＴＣＰ／ＩＰによって、ヘッドエンド１０１と双方向通信を行っているように振舞う。ＴＣＰ／ＩＰは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム８０３は、電源投入時に初期化サブプログラム８０２に起動されると、予め第２記憶部７０５が記憶しているＰＯＤ５０４を識別する識別子であるＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌアドレスの略）を、端末装置５００を通してヘッドエンド１０１に通知し、ＩＰアドレスの取得を要求する。ヘッドエンド１０１は、端末装置５００を介してＰＯＤ５０４にＩＰアドレスを通知し、ネットワークサブプログラム８０３は、ＩＰアドレスを第１記憶部７０４に記憶する。以降、ヘッドエンド１０１とＰＯＤ５０４は、このＩＰアドレスを、ＰＯＤ５０４の識別子として使用し、通信を行う。
【００５３】
再生サブプログラム８０４は、第２記憶部７０５が記憶する第２の鍵等の復号情報や、端末装置５００から与えられる第３の鍵等の復号情報を第１デスクランブラ部７０１に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム８０３を通して、第１デスクランブラ部７０１に入力されている信号が、ＰＰＶチャンネルであることの情報を受け取る。ＰＰＶチャンネルと知ったときは、ＰＰＶサブプログラム８０５を起動する。
【００５４】
ＰＰＶサブプログラム８０５は、起動されると、端末装置５００に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置５００のＣＰＵ５１４に画面に表示したい情報を送ると、端末装置５００のＣＰＵ５１４上で動作するプログラムが、端末装置５００のディスプレイ５０９上にメッセージを表示する。ユーザは、端末装置５００の入力部５１３を通して暗証番号を入力すると、端末装置５００のＣＰＵ５１４が、それを受け取り、ＰＯＤ５０４のＣＰＵ７０６上で動作するＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は、受け取った暗証番号をネットワークサブプログラム８０３を通してヘッドエンド１０１に送信する。ヘッドエンド１０１は、暗証番号が正しければ、復号に必要な第４の鍵などの復号化情報をネットワークサブプログラム８０３を介して、ＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は受け取った第４の鍵などの復号化情報を第１デスクランブラ部７０１に与え、第１デスクランブラ部７０１は、入力されている信号をデスクランブルする。
【００５５】
図５を参照して、ＴＳデコーダ５０５は、ＰＯＤ５０４から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ５０６及びビデオデコーダ５０８、ＣＰＵ５１４に引き渡す。ここで、ＰＯＤ５０４から来る信号はＭＰＥＧ２トランスポートストリームである。ＭＰＥＧ２トランスポートストリームの詳細はＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８１−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。図９はパケットの構成図である。９００はパケットであり、固定長の１８８バイトで構成される。先頭４バイトがヘッダー９０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード９０２で、送信したい情報を含んでいる。９０３は、ヘッダー９０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。図１０は送られてくる複数のパケットの列を表現した模式図である。パケット１００１は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット１００２は、ヘッダーにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット１００３は、ヘッダーにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。
【００５６】
パケット１００４は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット１００１の続きになっている。同様にパケット１００５、１０２６、１０２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
【００５７】
図１０を参照して、ＣＰＵ５１４がパケットＩＤ「１」と出力先として「ビデオデコーダ５０８」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ５０８に引き渡す。図１０においては、映像データのみをビデオデコーダ５０８に引き渡すことになる。同時に、ＣＰＵ５１４がパケットＩＤ「２」と「オーディオデコーダ５０６」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ５０６に引き渡す。図１０においては、音声データのみをビデオデコーダ５０８に引き渡すことになる。
【００５８】
このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ５０５が行うフィルタリングである。ＴＳデコーダ５０５はＣＰＵ５１４から指示された複数のフィルタリングを同時に実行することができる。
【００５９】
図５を参照して、オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ５０７に出力する。
【００６０】
スピーカ５０７は、オーディオデコーダ５０６から与えられた信号を音声出力する。
【００６１】
ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ５０９に出力する。
【００６２】
ディスプレイ５０９は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ５０８から与えられたビデオ信号を出力したり、ＣＰＵ５１４から指示されたメッセージを表示したりする。
【００６３】
２次記憶部５１０は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された状態でも保存しつづける。
【００６４】
１次記憶部５１１は、具体的には、ＲＡＭ等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを１次的に保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された際に、抹消される。
【００６５】
ＲＯＭ５１２は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ５１２は、ＣＰＵ５１４が実行するプログラムが格納されている。
【００６６】
入力部５１３は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。図１１は、フロントパネルで入力部５１３を構成した場合の一例である。１１００はフロントパネルであり、図６のフロントパネル部６０３に相当する。フロントパネル１１００は７つのボタン、上カーソルボタン１１０１、下カーソルボタン１１０２、左カーソルボタン１１０３、右カーソルボタン１１０４、ＯＫボタン１１０５、取消ボタン１１０６、ＥＰＧボタン１１０７を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ５１４に通知される。
【００６７】
ＣＰＵ５１４は、ＲＯＭ５１２が記憶するプログラムを実行する。実行するプログラムの指示に従い、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＰＯＤ５０４、ＴＳデコーダ５０５、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２を制御する。
【００６８】
図１２は、ＲＯＭ５１２に記憶され、ＣＰＵ５１４に実行されるプログラムの構成図の一例である。
【００６９】
プログラム１２００は、複数のサブプログラムで構成され、具体的にはＯＳ１２０１、ＥＰＧ１２０２、Ｊａｖａ（登録商標）ＶＭ１２０３（以後ＶＭ１２０３と称す）、サービスマネージャ１２０４、Ｊａｖａ（登録商標）ライブラリ１２０５（以後ライブラリ１２０５と称す）で構成される。
【００７０】
ＯＳ１２０１は、端末装置５００の電源が投入されると、ＣＰＵ５１４が起動するサブプログラムである。ＯＳ１２０１は、オペレーティングシステムの略であり、Ｌｉｎｕｘ等が一例である。ＯＳ１２０１は、他のサブプログラムを平行して実行するカーネル１２０１ａ及びライブラリ１２０１ｂで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、ＯＳ１２０１のカーネル１２０１ａは、ＥＰＧ１２０２とＶＭ１２０３をサブプログラムとして実行する。また、ライブラリ１２０１ｂは、これらサブプログラムに対して、端末装置５００が保持する構成要素を制御するための複数の機能を提供する。
【００７１】
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをＱＡＭ復調部５０１に引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に基づき復調処理を行い、復調したデータをＰＯＤ５０４に引き渡すことができる。この結果、他のサブプログラムはライブラリ１２０１ｂを通してＱＡＭ復調器を制御することができる。
【００７２】
ＥＰＧ１２０２は、ユーザに番組一覧を表示及び、ユーザからの入力を受け付ける番組表示部１２０２ａと、チャンネル選局を行う再生部１２０２ｂで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ１２０２は、端末装置５００の電源が投入されると、カーネル１２０１ａによって起動される、起動されたＥＰＧ１２０２の内部では、番組表示部１２０２ａが端末装置５００の入力部５１３を通して、ユーザからの入力を待つ。ここで、入力部５１３が図１１で示されるフロントパネルで構成されている場合、ユーザが、入力部５１３のＥＰＧボタン１１０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ５１４に通知される。ＣＰＵ５１４上で動作するサブプログラムであるＥＰＧ１２０２の番組表示部１２０２ａは、この識別子を受け取り、番組情報をディスプレイ５０９に表示する。図１３（ａ）及び（ｂ）は、ディスプレイ５０９に表示された番組表の一例である。図１３（ａ）を参照して、ディスプレイ５０９には、格子状に番組情報が表示されている。列１３０１には、時刻情報が表示されている。列１３０２には、チャンネル名「チャンネル１」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００は「映画ＡＡＡ」が放映されることを表す。列１３０３も列１３０２同様、チャンネル名「チャンネル２」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００は「ニュース１１」が放映される。１３３０は、カーソルである。カーソル１３３０は、フロントパネル１１００の左カーソル１１０３と右カーソル１１０４を押下すると移動する。図１３（ａ）の状態で、右カーソル１１０４を押下すると、カーソル１３３０は右に移動し、図１３（ｂ）のようになる。また、図１３（ｂ）の状態で、左カーソル１１０３を押下すると、カーソル１３３０は左に移動し、図１３（ａ）のようになる。
【００７３】
図１３（ａ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル１」の識別子を再生部１２０２ｂに通知する。図１３（ｂ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル２」の識別子を再生部１２０２ｂに通知する。
【００７４】
また、番組表示部１２０２ａは、表示する番組情報を、ＰＯＤ５０４を通してヘッドエンド１０１から定期的に、１次記憶部５１１に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部５１３のＥＰＧボタン１１０７が押下された時、１次記憶部５１１に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
【００７５】
再生部１２０２ｂは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、２次記憶部５１０に予め格納されている。図１４は２次記憶部５１０に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列１４０１は、チャンネルの識別子である。列１４０２は、チャンネル名である。列１４０３はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、ＱＡＭ復調部５０１に与える値である。列１４０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴを識別するための番号である。ＰＭＴに関しては、後述する。行１４１１〜１４１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行１４１１は識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「３１２ＭＨｚ」、プログラムナンバーが「１０１」を含む組となっている。再生部１２０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。
【００７６】
また、再生部１２０２ｂは、再生中に、ユーザがフロントパネル１１００の上カーソル１１０１と下カーソル１１０２を押下すると、入力部５１３からＣＰＵ５１４を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部１２０２ｂは、１次記憶部５１１に現在再生中のチャンネルの識別子を記憶する。図１５（ａ）（ｂ）及び（ｃ）は、１次記憶部５１１に保存しているチャンネルの識別子の例である。図１５（ａ）では識別子「３」が記憶されており、図１４を参照し、チャンネル名「ＴＶ  ３」のチャンネルが再生中であることを示す。図１５（ａ）の状態で、ユーザが上カーソル１１０１を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル２」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル２」の識別子「２」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「２」に書き換える。図１５（ｂ）は、チャンネル識別子が書き換えられた状態を表す。また、図１５（ａ）の状態で、ユーザが下カーソル１１０２を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「ＴＶ  Ｊａｐａｎ」の識別子「４」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「４」に書き換える。図１５（ｃ）は、チャンネル識別子が書き換えられた状態を表す。
【００７７】
ＶＭ１２０３は、Ｊａｖａ（登録商標）言語で記述されたプログラムを逐次解析し実行するＪａｖａ（登録商標）バーチャルマシンである。Ｊａｖａ（登録商標）言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａ（登録商標）バーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａ（登録商標）バーチャルマシンは、バイトコードをＣＰＵ５１４が理解可能な実行形式に翻訳してから、ＣＰＵ５１４に引き渡し、実行することも行う。ＶＭ１２０３は、カーネル１２０１ａに実行するＪａｖａ（登録商標）プログラムを指定され起動される。本実施の形態では、カーネル１２０１ａは、実行するＪａｖａ（登録商標）プログラムとしてサービスマネージャ１２０４を指定する。Ｊａｖａ（登録商標）言語の詳細は、書籍「Ｊａｖａ（登録商標）  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Ｊａｖａ（登録商標）ＶＭ自体の詳細な動作などは、「Ｊａｖａ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７８】
サービスマネージャ１２０４は、Ｊａｖａ（登録商標）言語で書かれたＪａｖａ（登録商標）プログラムであり、ＶＭ１２０３によって逐次実行される。サービスマネージャ１２０４は、ＪＮＩ（Ｊａｖａ(登録商標）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ（登録商標）言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ（登録商標）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７９】
サービスマネージャ１２０４は、ＪＮＩを通して、再生部１２０２ｂよりチャンネルの識別子を受け取る。
【００８０】
サービスマネージャ１２０４は、最初にライブラリ１２０５の中にあるＴｕｎｅｒ１２０５ｃに、チャンネルの識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ１２０５ｃは、２次記憶部５１０が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ１２０４がチャンネルの識別子「２」をＴｕｎｅｒ１２０５ｃに引き渡すと、Ｔｕｎｅｒ１２０５ｃは、図１４の列１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ，」を獲得する。Ｔｕｎｅｒ１２０５ｃは、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００８１】
次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＣＡ１２０５ｄにデスクランブルを依頼する。ＣＡ１２０５ｄは、ＯＳ１２０１のライブラリ１２０１ｂを通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【００８２】
次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＪＭＦ１２０５ａにチャンネルの識別子を与え、映像・音声の再生を依頼する。
【００８３】
まず、最初にＪＭＦ１２０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴ、ＰＭＴから取得する。ＰＡＴやＰＭＴはＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。
【００８４】
ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＡＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤ「０」とＣＰＵ５１４を指定する。ＴＳデコーダ５０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＡＴのパケットを収集する。図１６は、収集したＰＡＴの情報の一例を模式的に表した表である。列１６０１は、プログラムナンバーである。列１６０２は、パケットＩＤである。列１６０２のパケットＩＤはＰＭＴを取得するために用いられる。行１６１１〜１６１３は、チャンネルのプログラムナンバーと対応するパケットＩＤの組である。ここでは、３つのチャンネルが定義されている。行１６１１はプログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ１２０５ａに与えられたチャンネルの識別子が「２」とすると、ＪＭＦ１２０５ａは、図１４の行１４１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１６のＰＡＴの行１６１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＭＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤとＣＰＵ５１４を指定する。ここで、指定するパケットＩＤは「５０２」とする。ＴＳデコーダ５０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＭＴのパケットを収集する。
【００８５】
図１７は、収集したＰＭＴの情報の一例を模式的に表した表である。列１７０１は、ストリーム種別であり。列１７０２は、パケットＩＤである。列１７０２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１７０３は補足情報である。列１７１１〜１７１４はエレメンタリーストリームと呼ばれる、パケットＩＤと送信している情報の種別の組である。列１７１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ１２０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。図１７を参照して、ＪＭＦ１２０５ａは、行１７１１から音声のパケットＩＤ「５０１１」を、行１７１２から映像のパケットＩＤ「５０１２」を獲得する。
【００８６】
次に、ＪＭＦ１２０５ａは、ＯＳ１２０１のライブラリ１２０１ｂを通して、獲得した音声のパケットＩＤと出力先としてオーディオデコーダ５０６、映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。ここではパケットＩＤ「５０１１」のパケットをオーディオデコーダ５０６に、パケットＩＤ「５０１２」のパケットをビデオデコーダ５０８に引き渡す。オーディオデコーダ５０６は、与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。ビデオデコーダ５０８は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。
【００８７】
最後にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＡＭ１２０５ｂにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（登録商標）プログラムを抽出し、ＶＭ１２０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａ（登録商標）プログラムを埋め込む方法は、ＭＰＥＧ規格書ＩＳＯ／ＩＥＣ１３８１８１−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａ（登録商標）プログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＤＶＢ−ＭＨＰ規格の１０章に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【００８８】
ＡＭ１２０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ１２０５ａ同様ＰＡＴ、ＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネルの識別子が「２」で、図１６のＰＡＴ、図１７のＰＭＴが送信されていると、ＪＭＦ１２０５ａと同様の手順で、図１７のＰＭＴを獲得する。ＡＭ１２０５ｂは、ＰＭＴからストリーム種別が「データ」で補足情報として「ＡＩＴ」を持つエレメンタリーストリームからパケットＩＤを抽出する。図１７を参照して、行１７１３のエレメンタリーストリームが該当し、パケットＩＤ「５０１３」を獲得する。
【００８９】
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＡＩＴのパケットＩＤと出力先ＣＰＵ５１４を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、ＡＩＴのパケットを収集することができる。
【００９０】
図１８は、収集したＡＩＴの情報の一例を模式的に表した表である。列１８０１はＪａｖａ（登録商標）プログラムの識別子である。ＭＨＰ規格によれば、この識別子はＡｐｐｌｉｃａｔｉｏｎ  ＩＤとして定義さる。列１８０２はＪａｖａ（登録商標）プログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」などがあり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置５００がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はプログラムを停止することを意味する。列１８０３は、ＤＳＭＣＣ方式でＪａｖａ（登録商標）プログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列１８０４はＪａｖａ（登録商標）プログラムのプログラム名である。列１８０５はＪａｖａ（登録商標）プログラムのバージョン番号である。
【００９１】
行１８１１と１８１２は、Ｊａｖａ（登録商標）プログラムの情報の組である。行１８１１で定義されるＪａｖａ（登録商標）プログラムは、識別子「０ｘ２０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」、バージョン番号「１」の組である。行１８１２で定義されるＪａｖａ（登録商標）プログラムは、識別子「０ｘ２０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」、バージョン番号「２」の組である。ここで２つのＪａｖａ（登録商標）プログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａ（登録商標）プログラムが含まれていることを表す。ここでは、Ｊａｖａ（登録商標）プログラムに対して５つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＤＶＢ−ＭＨＰ規格を参照されたい。
【００９２】
ＡＭ１２０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａ（登録商標）プログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａ（登録商標）プログラム名を抽出する。図１８を参照して、ＡＭ１２０５ｂは行１８１１のＪａｖａ（登録商標）プログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａ（登録商標）プログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。ここで、行１８１１のＡＩＴの情報を起動ＡＩＴ情報と呼ぶこととする。
【００９３】
次にＡＭ１２０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、Ｊａｖａ（登録商標）プログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリーストリームのパケットＩＤを取得する。
【００９４】
今、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１７とすると、行１７１４のエレメンタリーストリームが合致し、パケットＩＤ「５０１４」を取り出す。
【００９５】
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤと出力先としてＣＰＵ５１４を指定する。ここでは、パケットＩＤ「５０１４」を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、必要なパケットを収集することができる。ＡＭ１２０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部５１１に保存する。ＭＰＥＧ２トランスポート中のパケットからファイルシステム等のデータを取り出し１次記憶部５１１等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。
【００９６】
図１９は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１９０１はルートディレクトリ、１９０２はディレクトリ「ａ」、１９０３はディレクトリ「ｂ」、１９０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１９０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」である。
【００９７】
次にＡＭ１２０５ｂは、１次記憶部５１１にダウンロードしたファイルシステム中から実行するＪａｖａ（登録商標）プログラムをＶＭ１２０３に引き渡す。今、実行するＪａｖａ（登録商標）プログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａ（登録商標）プログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１９を参照して、ファイル１９０４が実行すべきＪａｖａ（登録商標）プログラムである。次にＡＭ１２０５ｂは、ファイル１９０４をＶＭ１２０３に引き渡す。
【００９８】
ＶＭ１２０３は、引き渡されたＪａｖａ（登録商標）プログラムを実行する。
【００９９】
サービスマネージャ１２０４は、他のチャンネルの識別子を受け取ると、ライブラリ１２０５に含まれる各ライブラリを通して再生している映像・音声及びＪａｖａ（登録商標）プログラムの実行を、同じくライブラリ１２０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びＪａｖａ（登録商標）プログラムの実行を行う。
【０１００】
ライブラリ１２０５は、ＲＯＭ５１２に格納されている複数のＪａｖａ（登録商標）ライブラリの集合である。本実施の形態では、ここでは、ライブラリ１２０５は、ＪＭＦ１２０５ａ、ＡＭ１２０５ｂ、Ｔｕｎｅｒ１２０５ｃ、ＣＡ１２０５ｄ、ＰＯＤ  Ｌｉｂ１２０５ｅ等を含んでいる。
【０１０１】
次に、本発明の機能であるＪａｖａ（登録商標）プログラムのダウンロードおよび起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能について説明する。
【０１０２】
図２０は、ＡＭ１２０５ｂが収集した起動ＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能を実行する際のＡＭ１２０５ｂの構成要素のみを示すブロック図である。他の構成要素は本発明と直接関係しないので省略する。
【０１０３】
ＡＭ１２０５ｂは、図２０に示すようにプログラム起動情報管理部２００１、プログラム起動履歴情報取得部２００２、プログラム起動履歴情報更新部２００３、プログラム起動時間計測部２００４、およびプログラム起動情報通知部２００５を備えている。
【０１０４】
プログラム起動情報管理部２００１は、ＡＭ１２０５ｂが収集した起動ＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求と、Ｊａｖａ（登録商標）プログラムの起動履歴情報等の通知要求と、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に要する時間の計測要求を行う。また、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に要した時間の計測結果取得と、Ｊａｖａ（登録商標）プログラムの起動履歴情報の更新要求を行う。
【０１０５】
プログラム起動履歴情報取得部２００２は、プログラム起動情報管理部２００１の要求に基づき、以前ダウンロードおよび起動したＪａｖａ（登録商標）プログラムの履歴情報の取得を行う。
【０１０６】
プログラム起動履歴情報更新部２００３は、プログラム起動情報管理部２００１の要求に基づき、Ｊａｖａ（登録商標）プログラムの履歴情報の更新を行う。
【０１０７】
プログラム起動時間計測部２００４は、プログラム起動情報管理部２００１の要求に基づき、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に要する時間の計測を行う。すなわち、このダウンロードに要する時間（ダウンロード時間）と起動に要する時間（起動時間）とを合わせた時間が、図２１（ａ）に示すようにプログラムの起動指示から実際に起動されるまでの起動待ち時間となる。ここで、プログラムの起動時間は、ダウンロードされているプログラムを起動するまでの時間であり、プログラムの初期化等の前処理の時間も含まれる。また、プログラムのダウンロード時間は、起動指示からプログラムがダウンロードされるまでの時間であり、プログラムの認証や起動指示から実際のダウンロード開始までの時間等も含まれる。
【０１０８】
プログラム起動情報通知部２００５は、プログラム起動情報管理部２００１の要求に基づき、Ｊａｖａ（登録商標）プログラムの履歴情報の通知を行う。
【０１０９】
まず、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロードおよび起動に要する時間の計測の動作について説明する。
【０１１０】
図２２は、プログラム起動情報管理部２００１のＪａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロードおよび起動に要する時間の計測の動作をまとめたフローチャートである。ＡＭ１２０５ｂが起動ＡＩＴ情報の収集を完了した時点で、プログラム起動情報管理部２００１は、ＡＭ１２０５ｂからＡＭ１２０５ｂが収集した起動ＡＩＴ情報を渡される（Ｓ２２０１）。プログラム起動情報管理部２００１は、プログラム起動履歴情報取得部２００２に渡されたＡＩＴ情報を渡し、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求を行う（Ｓ２２０２）。Ｓ２２０２の取得要求の結果、起動履歴情報の取得ができたか判断し（Ｓ２２０３）、取得できた場合（Ｓ２２０３でＹｅｓ）、プログラム起動情報管理部２００１は起動ＡＩＴ情報と取得した起動履歴情報をプログラム起動情報通知部２００５に渡して通知要求を行う（Ｓ２２０４）。Ｓ２２０２の取得要求の結果、起動履歴情報の取得ができたか判断し（Ｓ２２０３）、取得できない場合（Ｓ２２０３でＮｏ）、プログラム起動情報管理部２００１は起動ＡＩＴ情報をプログラム起動情報通知部２００５に渡して通知要求を行う（Ｓ２２０５）。最後に、プログラム起動情報管理部２００１は、プログラム起動時間計測部２００４に起動ＡＩＴ情報を渡して計測要求を行う（Ｓ２２０６）。
【０１１１】
図２３は、プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の取得を要求された時のプログラム起動履歴情報取得部２００２の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡され起動履歴情報の取得要求を受けると、プログラム起動履歴情報取得部２００２は渡された起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ２３０１）。ここで識別子とバージョン番号は、図１８の行１８１１の識別子１８０１とバージョン番号１８０５を例として用いる。次に、プログラム起動履歴情報取得部２００２は、２次記憶部５１０に記憶している図２４に示すような起動履歴情報から、識別子１８０１とバージョン番号１８０５の合致する起動履歴情報を検索する（Ｓ２３０２）。図２４は、起動履歴情報の一例を模式的に表した表である。列２４０１はＪａｖａ（登録商標）プログラムの識別子であり、起動履歴情報の検索時に識別子１８０１と比較される。列２４０２はＪａｖａ（登録商標）プログラムのバージョン番号であり、起動履歴情報の検索時にバージョン番号１８０５と比較される。列２４０３は、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に要した処理時間（起動待ち時間）である。尚、列２４０３の処理時間の単位は本実施例では秒であるが、単位は時間が判断できるものであれば良いものとする。列２４１１と２４１２は、起動履歴情報の組である。従って、識別子１８０１とバージョン番号１８０５の値に合致する起動履歴情報は列２４１１の起動履歴情報ということになる。Ｓ２３０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ２３０３）、検索ができた場合（Ｓ２３０３でＹｅｓ）、検索した起動履歴情報を１次記憶部５１１に展開し（Ｓ２３０４）、展開した起動履歴情報をプログラム起動情報管理部２００１ に返す（Ｓ２３０５）。Ｓ２３０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ２３０３）、検索ができなかった場合（Ｓ２３０３でＮｏ）、起動履歴情報なしを意味するＮＵＬＬをプログラム起動情報管理部２００１ に返す（Ｓ２３０６）。
【０１１２】
図２５は、プログラム起動情報管理部２００１から起動ＡＩＴ情報と起動履歴情報を渡され通知要求された時のプログラム起動情報通知部２００５の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報と起動履歴情報を渡され通知要求を受けると、プログラム起動情報通知部２００５は、起動ＡＩＴ情報からプログラム名を抽出し（Ｓ２５０１）、起動履歴情報から処理時間を抽出する（Ｓ２５０２）。ここでプログラム名を図１８の行１８１１のプログラム名１８０４とすると「ａ／ＴｏｐＸｌｅｔ」となり、処理時間を図２４の行２４１１の処理時間２４０３とすると「２４０」秒となる。次に、プログラム起動情報通知部２００５は、抽出したプログラム名と、抽出した処理時間を起動待ち時間としてユーザへ通知する（Ｓ２５０３）が、プログラム起動情報通知部２００５が端末装置５００のＣＰＵ５１４に画面に表示するプログラム名と処理時間の情報を送り、ＯＳ１２０１のライブラリ１２０１ｂに含まれるダイアログ表示プログラムが、図２６に示すような情報をディスプレイ５０９に表示することにより実現される。ダイアログボックス２６０１は、メッセージ２６０２の表示要素をもつ。尚、ユーザにプログラムのダウンロード及び起動の処理時間を知らせるのに必要な情報を提供できる方法であれば、プログラム起動情報通知部２００５で抽出する情報はプログラム名、処理時間に限定されず、メッセージ２６０２の文字列は、図２６中の文字列に限定されず他の文字列であってもよく、また、メッセージ２６０２の形式は文字列に限定されず他の形式であってもよい。また、起動待ち時間の表示はカウントダウンの表示であってもよい。
【０１１３】
図２７は、プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡され通知要求された時のプログラム起動情報通知部２００５の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡され通知要求を受けると、プログラム起動情報通知部２００５は、起動ＡＩＴ情報からプログラム名を抽出する（Ｓ２７０１）。ここでプログラム名を図１８の行１８１１のプログラム名１８０４とすると「ａ／ＴｏｐＸｌｅｔ」となる。次に、プログラム起動情報通知部２００５は、抽出したプログラム名と処理時間（起動待ち時間）不明であることをユーザへ通知する（Ｓ２７０２）が、プログラム起動情報通知部２００５が端末装置５００のＣＰＵ５１４に画面に表示するプログラム名と処理時間が不明であることの情報を送り、ＯＳ１２０１のライブラリ１２０１ｂに含まれるダイアログ表示プログラムが、図２８に示すような情報をディスプレイ５０９に表示することにより実現される。２８０１はダイアログボックスであり、メッセージ２８０２の表示要素をもつ。尚、ユーザにプログラムのダウンロード及び起動の処理時間が不明であること知らせるのに必要な情報を提供できる方法であれば、プログラム起動情報通知部２００５で抽出する情報はプログラム名に限定されず、メッセージ２８０２の文字列は、図２８中の文字列に限定されず他の文字列であってもよく、また、メッセージ２８０２の形式は文字列に限定されず他の形式であってもよい。
【０１１４】
図２９は、プログラム起動情報管理部２００１から計測要求された時のプログラム起動時間計測部２００４の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡され計測要求を受けると、プログラム起動時間計測部２００４は、起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ２９０１）。プログラム起動時間計測部２００４は、現在の時間を取得する（Ｓ２９０２）。プログラム起動時間計測部２００４は、図３０に示すように識別子３００１とバージョン番号３００２と開始時間３００３の組でプログラム起動時間情報３０１１を１次記憶部５１１に記憶する（Ｓ２８０３）。識別子３００１はＳ２９０１で抽出した識別子、バージョン番号３００２はＳ２９０１で抽出したバージョン番号、開始時間３００３はＳ２９０２で取得した現在の時間である。
【０１１５】
次に、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に要した時間の計測結果取得と起動履歴情報の更新の動作について説明する。
【０１１６】
図３１は、プログラム起動情報管理部２００１のＪａｖａ（登録商標）プログラムのダウンロードおよび起動に要した時間の計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。ＡＭ１２０５ｂがＪａｖａ（登録商標）プログラムの起動完了した時点で、プログラム起動情報管理部２００１は、ＡＭ１２０５ｂから起動ＡＩＴ情報を渡される（Ｓ３１０１）。プログラム起動情報管理部２００１は、プログラム起動時間計測部２００４に起動ＡＩＴ情報を渡して計測結果取得を行う（Ｓ３１０２）。プログラム起動情報管理部２００１は、プログラム起動履歴情報更新部２００３に起動ＡＩＴ情報と取得した計測結果を渡して更新要求を行う（Ｓ３１０３）。
【０１１７】
図３２は、プログラム起動情報管理部２００１から計測結果取得を要求された時のプログラム起動時間計測部２００４の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報を渡され計測結果取得要求を受けると、プログラム起動時間計測部２００４は、起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ３２０１）。プログラム起動時間計測部２００４は、現在の時間を取得する（Ｓ３２０２）。プログラム起動時間計測部２００４は、１次記憶部５１１に記憶されている図３０に示すような識別子３００１とバージョン番号３００２が、Ｓ３２０１で抽出した識別子とバージョン番号と合致するプログラム起動時間情報３０１１を検索する（Ｓ３２０３）。プログラム起動時間計測部２００４は、Ｓ３２０２で取得した現在の時間からＳ３２０３で検索したプログラム起動時間情報３０１１の開始時間３００３を引き、ダウンロードおよび起動に要した時間を算出する（Ｓ３２０４）。プログラム起動時間計測部２００４は、算出したダウンロードおよび起動に要した時間をプログラム起動情報管理部２００１に返す（Ｓ３２０５）。
【０１１８】
図３３は、プログラム起動情報管理部２００１から起動ＡＩＴ情報とダウンロードおよび起動に要した時間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部２００３の動作をまとめたフローチャートである。プログラム起動情報管理部２００１から起動ＡＩＴ情報とダウンロードおよび起動に要した時間を渡され起動履歴情報の更新要求を受けると、プログラム起動履歴情報取得部２００２は渡された起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ３３０１）。プログラム起動履歴情報取得部２００２は、２次記憶部５１０に記憶している図２４に示すような起動履歴情報から、Ｓ３３０１で抽出した識別子とバージョン番号と合致する起動履歴情報を検索する（Ｓ３３０２）。Ｓ３３０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ３３０３）、検索ができた場合（Ｓ３３０３でＹｅｓ）、２次記憶部５１０に記憶している検索した起動履歴情報の処理時間２４０３を渡されたダウンロードおよび起動に要した時間に更新する（Ｓ３３０４）。Ｓ３３０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ３３０３）、検索ができなかった場合（Ｓ３３０３でＮｏ）、Ｓ３３０１で抽出した識別子とバージョン番号と渡されたダウンロードおよび起動に要した時間で起動履歴情報を構成し、２次記憶部５１０に記憶している起動履歴情報に追加する。（Ｓ３３０５）。
【０１１９】
このように、Ｊａｖａ（登録商標）プログラムの起動履歴情報を管理することにより、ユーザにＪａｖａ（登録商標）プログラムの起動待ち時間を通知することが可能となる。
【０１２０】
（実施の形態２）
サービスマネージャ１２０４は、ライブラリ１２０５に含まれるＰＯＤ  Ｌｉｂ１２０５ｅを通してヘッドエンド１０１と双方向通信を行う。この双方向通信は、ＰＯＤ  Ｌｉｂ１２０５ｅはＯＳ１２０１のライブラリ１２０１ｂ及び、ＰＯＤ５０４を介して、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３を使用して実現される。
【０１２１】
また、サービスマネージャ１２０４は、この通信を用いてヘッドエンド１０１から、端末装置５００が２次記憶部５１０に保存すべきＪａｖａ（登録商標）プログラムの情報を受け取る。この情報をＸＡＩＴ情報と呼ぶ。ＸＡＩＴ情報は、ヘッドエンド１０１とＰＯＤ５０４間で、任意の形式で送信される。どのような送信形式を採用しても、ＸＡＩＴに必要とする情報が含まれていれば、本発明は実施可能である。
【０１２２】
図３４は、ヘッドエンド１０１から取得したＸＡＩＴの情報の一例を模式的に表した表である。列３４０１はＪａｖａ（登録商標）プログラムの識別子である。列３４０２はＪａｖａ（登録商標）プログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」などがあり、「ａｕｔｏｓｔａｒｔ」は端末装置５００が電源投入時にこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味する。列３４０３は、ＤＳＭＣＣ方式でＪａｖａ（登録商標）プログラムを含んでいるパケットＩＤを抽出するためのＤＳＭＣＣ識別子である。列３４０４はＪａｖａ（登録商標）プログラムのプログラム名である。列３４０５は、Ｊａｖａ(登録商標）プログラムの優先度である。行３４１１と３４１２は、Ｊａｖａ（登録商標）プログラムの情報の組である。行３４１１で定義されるＪａｖａ（登録商標）プログラムは、識別子「７０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／Ｂａｎｎｅｒ１Ｘｌｅｔ」の組である。ここでは、Ｊａｖａ（登録商標）プログラムに対して５つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
【０１２３】
サービスマネージャ１２０４は、ＸＡＩＴ情報を受け取ると、ＡＩＴ情報からＪａｖａ（登録商標）プログラムをダウンロードした手順と同じ手順で、ＭＰＥＧ２トランスポートストリームからファイルシステムを１次記憶部５１１に保存する。その後、保存したファイルシステムを２次記憶部５１０に複写する。なお、１次記憶部５１１を介さず、直接２次記憶部５１０にダウンロードすることも実施可能である。次に、サービスマネージャ１２０４は、ＸＡＩＴ情報にダウンロードしたファイルシステムの格納位置を対応つけて２次記憶部５１０に保存する。図３５は、２次記憶部５１０がＸＡＩＴ情報とダウンロードしたファイルシステムが対応つけられて保存されている一例を表す。図３５の中で、図３４と同じ番号の要素は図３４と同じなので、説明は省略する。列３５０１は対応するダウンロードしたファイルシステムの保存位置を格納する。図中、保存位置は矢印で示している。３５１０はダウンロードしたファイルシステムであり、内部にトップディレクトリ３５１１、ディレクトリ「ａ」３５１２、ディレクトリ「ｂ」３５１３、ファイル「Ｂａｎｎｅｒ１Ｘｌｅｔ．ｃｌａｓｓ」３５１４、ファイル「Ｂａｎｎｅｒ２Ｘｌｅｔ．ｃｌａｓｓ」３５１５を保持する。
【０１２４】
ここで、ＸＡＩＴ情報は、Ｊａｖａ（登録商標）プログラムを保存してから保存しているが、Ｊａｖａ（登録商標）プログラムを保存する前に保存することも実施可能である。
【０１２５】
端末装置５００に電源が投入後、ＯＳ１２０１が、サービスマネージャ１２０４をＶＭ１２０３に指定し、ＶＭ１２０３がサービスマネージャ１２０４を起動した後、サービスマネージャ１２０４は、最初に２次記憶部５１０に保存されたＸＡＩＴ情報を参照する。ここで各Ｊａｖａ（登録商標）プログラムの制御情報を参照し「ａｕｔｏｓｔａｒｔ」のプログラムをＶＭ１２０３に引き渡し、起動する。図３５を参照して、行３４１１で定義されるＪａｖａ（登録商標）プログラム「Ｂａｎｎｅｒ１Ｘｌｅｔ」が起動される。
【０１２６】
次に、本発明の機能であるＪａｖａ（登録商標）プログラムのダウンロードおよび起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能について説明する。
【０１２７】
図３６は、ＸＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムのダウンロードと起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能を実行する際のＡＭ１２０５ｂの構成要素のみ示す。他の構成要素は本発明と直接関係しないので省略する。
【０１２８】
ＡＭ１２０５ｂは、図３６に示すようにプログラム起動情報管理部３６０１、プログラム起動履歴情報取得部３６０２、プログラム起動履歴情報更新部３６０３、プログラム起動時間計測部３６０４、プログラム起動情報通知部３６０５、およびプログラム保存管理部３６０６を備えている。
【０１２９】
プログラム起動情報管理部３６０１は、ＸＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求と、Ｊａｖａ（登録商標）プログラムの起動履歴情報等の通知要求と、Ｊａｖａ（登録商標）プログラムのダウンロードに要する時間（ダウンロード時間）と起動に要する時間（起動時間）の計測要求を行う。また、Ｊａｖａ（登録商標）プログラムのダウンロード時間と起動時間の計測結果取得と、Ｊａｖａ（登録商標）プログラムの起動履歴情報の更新要求を行う。
【０１３０】
プログラム起動履歴情報取得部３６０２は、プログラム起動情報管理部３６０１の要求に基づき、以前ダウンロードと起動したＪａｖａ（登録商標）プログラムの履歴情報の取得を行う。
【０１３１】
プログラム起動履歴情報更新部３６０３は、プログラム起動情報管理部３６０１の要求に基づき、Ｊａｖａ（登録商標）プログラムの履歴情報の更新を行う。
【０１３２】
プログラム起動時間計測部３６０４は、プログラム起動情報管理部３６０１の要求に基づき、Ｊａｖａ（登録商標）プログラムのダウンロード時間と起動時間の計測を行う。
【０１３３】
プログラム起動情報通知部３６０５は、プログラム起動情報管理部３６０１の要求に基づき、Ｊａｖａ（登録商標）プログラムの履歴情報の通知を行う。
【０１３４】
プログラム保存管理部３６０６は、以前にダウンロードされ、２次記憶部５１０に保存されているＪａｖａ（登録商標）プログラムの情報を管理する。
【０１３５】
まず、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロード時間と起動時間の計測の動作について説明する。
【０１３６】
図３７は、プログラム起動情報管理部３６０１のＪａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロード時間と起動時間の計測の動作をまとめたフローチャートである。ＡＭ１２０５ｂがＸＡＩＴ情報受け取った時点で、プログラム起動情報管理部３６０１は、ＡＭ１２０５ｂからＡＭ１２０５ｂが受け取ったＸＡＩＴ情報を渡される（Ｓ３７０１）。プログラム起動情報管理部３６０１は、プログラム起動履歴情報取得部３６０２に渡されたＸＡＩＴ情報を渡し、Ｊａｖａ（登録商標）プログラムの起動履歴情報の取得要求を行う（Ｓ３７０２）。Ｓ３７０２の取得要求の結果、起動履歴情報の取得ができたか判断し（Ｓ３７０３）、取得できた場合（Ｓ３７０３でＹｅｓ）、プログラム起動情報管理部３６０１はＸＡＩＴ情報と取得した起動履歴情報をプログラム起動情報通知部３６０５に渡して通知要求を行う（Ｓ３７０４）。Ｓ３７０２の取得要求の結果、起動履歴情報の取得ができたか判断し（Ｓ３７０３）、取得できない場合（Ｓ３７０３でＮｏ）、プログラム起動情報管理部３６０１はＸＡＩＴ情報をプログラム起動情報通知部３６０５に渡して通知要求を行う（Ｓ３７０５）。最後に、プログラム起動情報管理部３６０１は、プログラム起動時間計測部３６０４にＸＡＩＴ情報を渡して計測要求を行う（Ｓ３７０６）。
【０１３７】
図３８は、プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の取得を要求された時のプログラム起動履歴情報取得部３６０２の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１から起動ＡＩＴ情報を渡され起動履歴情報の取得要求を受けると、プログラム起動履歴情報取得部３６０２は渡されたＸＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ３８０１）。ここで識別子とバージョン番号は、図３４の行３４１１の識別子３４０１とバージョン番号３４０５を例として用いる。次に、プログラム起動履歴情報取得部３６０２は、２次記憶部５１０に記憶している図３９に示すような起動履歴情報から、識別子３４０１とバージョン番号３４０５の合致する起動履歴情報を検索する（Ｓ３８０２）。図３９は、起動履歴情報の一例を模式的に表した表である。列３９０１はＪａｖａ（登録商標）プログラムの識別子であり、起動履歴情報の検索時に識別子３４０１と比較される。列３９０２はＪａｖａ（登録商標）プログラムのバージョン番号であり、起動履歴情報の検索時にバージョン番号３４０５と比較される。列３９０３は、Ｊａｖａ（登録商標）プログラムのダウンロードに要した処理時間（ダウンロード時間）である。列３９０４は、Ｊａｖａ（登録商標）プログラムの起動に要した処理時間（起動時間）である。尚、列３９０３と列３９０４の時間の単位は本実施例では秒であるが、単位は時間が判断できるものであれば良いものとする。列３９１１と３９１２は、起動履歴情報の組である。従って、識別子３４０１とバージョン番号３４０５の値に合致する起動履歴情報は列３９１１の起動履歴情報ということになる。Ｓ３７０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ３８０３）、検索ができた場合（Ｓ３８０３でＹｅｓ）、検索した起動履歴情報を１次記憶部５１１に展開し（Ｓ３８０４）、展開した起動履歴情報をプログラム起動情報管理部３５０１ に返す（Ｓ３８０５）。Ｓ３８０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ３８０３）、検索ができなかった場合（Ｓ３８０３でＮｏ）、起動履歴情報なしを意味するＮＵＬＬをプログラム起動情報管理部３６０１ に返す（Ｓ３８０６）。
【０１３８】
図４０は、プログラム起動情報管理部３６０１からＸＡＩＴと起動履歴情報を渡され通知要求された時のプログラム起動情報通知部３６０５の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報と起動履歴情報を渡され通知要求を受けると、プログラム起動情報通知部３６０５は、ＸＡＩＴ情報からプログラム名を抽出し（Ｓ４００１）、起動履歴情報からダウンロード時間と起動時間を抽出する（Ｓ４００２）。ここでプログラム名を図３４の行３４１１のプログラム名３４０４とすると「ａ／Ｂａｎｎｅｒ１Ｘｌｅｔ」となり、ダウンロード時間を図３９の行３９１１のダウンロード時間３９０３とすると「８０」秒となり、起動時間を図３９の行３９１１の起動時間３９０４とすると「７０」秒となる。次に、プログラム起動情報通知部３６０５は、プログラム保存管理部３６０６に、このプログラムが２次記憶部５１０に保存されているか問い合わせる（Ｓ４００３）。Ｓ４００３にて保存されている場合（Ｓ４００３でＹｅｓ）は、起動待ち時間を起動時間「７０」秒として算出する（Ｓ４００４）。すなわち、プログラムが２次記憶部５１０に保存されている場合には、ダウンロードを行う必要がないので、図２１（ｂ）に示すように起動時間が、プログラムの起動指示から実際に起動されるまでの起動待ち時間となる。Ｓ４００３にて保存されていない場合（Ｓ４００３でＮｏ）は、起動待ち時間をダウンロード時間「８０」秒と起動時間「７０」秒を足して「１５０」秒として算出する（Ｓ４００５）。すなわち、プログラムが２次記憶部５１０に保存されていない場合には、実施の形態１と同様にダウンロードを行う必要があるので、図２１（ａ）に示すようにダウンロード時間と起動時間とを合わせた時間が、プログラムの起動指示から実際に起動されるまでの起動待ち時間となる。次に、プログラム起動情報通知部３６０５は、抽出したプログラム名と算出した起動待ち時間をユーザへ通知する（Ｓ４００６）が、プログラム起動情報通知部３６０５が端末装置５００のＣＰＵ５１４に画面に表示するプログラム名と起動待ち時間の情報を送り、ＯＳ１２０１のライブラリ１２０１ｂに含まれるダイアログ表示プログラムが、図４１に示すような情報をディスプレイ５０９に表示することにより実現される。４１０１はダイアログボックスであり、メッセージ４１０２の表示要素をもつ。尚、ユーザにプログラムのダウンロードと起動の処理時間を知らせるのに必要な情報を提供できる方法であれば、プログラム起動情報通知部３６０５で抽出する情報はプログラム名、ダウンロード時間および起動時間に限定されず、メッセージ４１０２の文字列は、図４１中の文字列に限定されず他の文字列であってもよく、また、メッセージ４１０２の形式は文字列に限定されず他の形式であってもよい。また、起動待ち時間の表示はカウントダウンの表示であってもよい。
【０１３９】
図４２は、プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡され通知要求された時のプログラム起動情報通知部３６０５の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡され通知要求を受けると、プログラム起動情報通知部３６０５は、ＸＡＩＴ情報からプログラム名を抽出する（Ｓ４２０１）。ここでプログラム名を図３４の行３４１１のプログラム名３４０４とすると「ａ／Ｂａｎｎｅｒ１Ｘｌｅｔ」となる。次に、プログラム起動情報通知部３６０５は、抽出したプログラム名と起動待ち時間が不明であることをユーザへ通知する（Ｓ４２０２）が、プログラム起動情報通知部３６０５が端末装置５００のＣＰＵ５１４に画面に表示するプログラム名と起動待ち時間が不明であることの情報を送り、ＯＳ１２０１のライブラリ１２０１ｂに含まれるダイアログ表示プログラムが、図４３に示すような情報をディスプレイ５０９に表示することにより実現される。４３０１はダイアログボックスであり、メッセージ４３０２の表示要素をもつ。尚、ユーザにプログラムのダウンロードと起動の起動待ち時間が不明であること知らせるのに必要な情報を提供できる方法であれば、プログラム起動情報通知部３６０５で抽出する情報はプログラム名に限定されず、メッセージ４３０２の文字列は、図４３中の文字列に限定されず他の文字列であってもよく、また、メッセージ４３０２の形式は文字列に限定されず他の形式であってもよい。
【０１４０】
図４４は、プログラム起動情報管理部３６０１から計測要求された時のプログラム起動時間計測部３６０４の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡され計測要求を受けると、プログラム起動時間計測部３６０４は、起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ４４０１）。プログラム起動時間計測部３６０４は、現在の時間を取得する（Ｓ４４０２）。プログラム起動時間計測部３６０４は、図４５に示すように識別子４５０１とバージョン番号４５０２と開始時間４５０３の組でプログラム起動時間情報４５１１を１次記憶部５１１に記憶する（Ｓ４４０３）。識別子４５０１はＳ４４０１で抽出した識別子、バージョン番号４５０２はＳ４４０１で抽出したバージョン番号、開始時間４５０３はＳ４４０２で取得した現在の時間である。
【０１４１】
次に、Ｊａｖａ（登録商標）プログラムのダウンロード時間と起動時間の計測結果取得と起動履歴情報の更新の動作について説明する。
【０１４２】
図４６は、プログラム起動情報管理部３６０１のＪａｖａ（登録商標）プログラムのダウンロードの計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。ＡＭ１２０５ｂがＪａｖａ（登録商標）プログラムのダウンロード完了した時点で、プログラム起動情報管理部３６０１は、ＡＭ１２０５ｂからＸＡＩＴ情報を渡される（Ｓ４６０１）。プログラム起動情報管理部３６０１は、プログラム起動時間計測部３６０４にＸＡＩＴ情報を渡してダウンロード時間の計測結果取得を行う（Ｓ４６０２）。プログラム起動情報管理部３６０１は、プログラム起動履歴情報更新部３６０３にＸＡＩＴ情報と取得したダウンロード時間の計測結果を渡してダウンロード時間の更新要求を行う（Ｓ４６０３）。
【０１４３】
図４７は、プログラム起動情報管理部３６０１からダウンロード時間の計測結果取得を要求された時のプログラム起動時間計測部３６０４の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡されダウンロード時間の計測結果取得要求を受けると、プログラム起動時間計測部３６０４は、ＸＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ４７０１）。プログラム起動時間計測部３６０４は、現在の時間を取得する（Ｓ４７０２）。プログラム起動時間計測部３６０４は、１次記憶部５１１に記憶されている図４５に示すような識別子４５０１とバージョン番号４５０２が、Ｓ４７０１で抽出した識別子とバージョン番号と合致するプログラム起動時間情報４５１１を検索する（Ｓ４７０３）。プログラム起動時間計測部３６０４は、Ｓ４７０２で取得した現在の時間からＳ４７０３で検索したプログラム起動時間情報４５１１の開始時間４５０３を引き、ダウンロード時間を算出する（Ｓ４７０４）。プログラム起動時間計測部３６０４は、Ｓ４７０３で検索したプログラム起動時間情報４５１１の開始時間４５０３をＳ４７０２で取得した現在の時間にする（Ｓ４７０５）。プログラム起動時間計測部３６０４は、算出したダウンロード時間をプログラム起動情報管理部３６０１に返す（Ｓ４７０６）。
【０１４４】
図４８は、プログラム起動情報管理部３６０１からＸＡＩＴ情報とダウンロード時間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部３６０３の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報とダウンロード時間を渡され起動履歴情報の更新要求を受けると、プログラム起動履歴情報取得部３６０２は渡されたＸＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ４８０１）。プログラム起動履歴情報取得部３６０２は、２次記憶部５１０に記憶している図３９に示すような起動履歴情報から、Ｓ４８０１で抽出した識別子とバージョン番号と合致する起動履歴情報を検索する（Ｓ４８０２）。Ｓ４８０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ４８０３）、検索ができた場合（Ｓ４８０３でＹｅｓ）、２次記憶部５１０に記憶している検索した起動履歴情報のダウンロード時間３９０３を渡されたダウンロード時間に更新する（Ｓ４８０４）。Ｓ４８０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ４８０３）、検索ができなかった場合（Ｓ４８０３でＮｏ）、Ｓ４８０１で抽出した識別子とバージョン番号と渡されたダウンロード時間とダミー（例えば０秒）の起動時間で起動履歴情報を構成し、２次記憶部５１０に記憶している起動履歴情報に追加する。（Ｓ４８０５）。
【０１４５】
図４９は、プログラム起動情報管理部３６０１のＪａｖａ（登録商標）プログラムの起動時間の計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。ＡＭ１２０５ｂがＪａｖａ（登録商標）プログラムの起動完了した時点で、プログラム起動情報管理部３６０１は、ＡＭ１２０５ｂからＸＡＩＴ情報を渡される（Ｓ４９０１）。プログラム起動情報管理部３６０１は、プログラム起動時間計測部３６０４にＸＡＩＴ情報を渡して起動時間の計測結果取得を行う（Ｓ４９０２）。プログラム起動情報管理部３６０１は、プログラム起動履歴情報更新部３６０３にＸＡＩＴ情報と取得した起動時間の計測結果を渡して起動時間の更新要求を行う（Ｓ４９０３）。
【０１４６】
図５０は、プログラム起動情報管理部３６０１から起動時間の計測結果取得を要求された時のプログラム起動時間計測部３６０４の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡され起動時間の計測結果取得要求を受けると、プログラム起動時間計測部３６０４は、ＸＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ５００１）。プログラム起動時間計測部３６０４は、現在の時間を取得する（Ｓ５００２）。プログラム起動時間計測部３６０４は、１次記憶部５１１に記憶されている図４５に示すような識別子４５０１とバージョン番号４５０２が、Ｓ５００１で抽出した識別子とバージョン番号と合致するプログラム起動時間情報４５１１を検索する（Ｓ５００３）。プログラム起動時間計測部３６０４は、Ｓ５００２で取得した現在の時間からＳ５００３で検索したプログラム起動時間情報４５１１の開始時間（ダウンロードを完了した時間）４５０３を引き、起動時間を算出する（Ｓ５００４）。プログラム起動時間計測部３６０４は、算出した起動時間をプログラム起動情報管理部３６０１に返す（Ｓ５００５）。
【０１４７】
図５１は、プログラム起動情報管理部３６０１からＸＡＩＴ情報と起動時間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部３６０３の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報と起動間を渡され起動履歴情報の更新要求を受けると、プログラム起動履歴情報取得部３６０２は渡されたＸＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ５１０１）。プログラム起動履歴情報取得部３６０２は、２次記憶部５１０に記憶している図３９に示すような起動履歴情報から、Ｓ５１０１で抽出した識別子とバージョン番号と合致する起動履歴情報を検索する（Ｓ５１０２）。Ｓ５１０２の検索の結果、合致する起動履歴情報の検索ができたか判断し（Ｓ５１０３）、検索ができた場合（Ｓ５１０３でＹｅｓ）、２次記憶部５１０に記憶している検索した起動履歴情報の起動時間３９０４を渡された起動時間に更新する（Ｓ５１０４）。
【０１４８】
このように、Ｊａｖａ（登録商標）プログラムの起動履歴情報を管理することにより、ユーザにＪａｖａ（登録商標）プログラムの起動待ち時間を通知することが可能となる。
【０１４９】
（実施の形態３）
実施の形態２ではＸＡＩＴ情報に基づいてＪａｖａ（登録商標）プログラムをダウンロードする場合について説明したが、本実施の形態では、さらにＪａｖａ（登録商標）プログラムの認証処理を行う場合について説明する。
【０１５０】
図５２は、本実施の形態の端末装置が保存するプログラム構成の構成図である。なお、実施の形態２と同様の部分については説明を省略する。
【０１５１】
本実施の形態では、Ｊａｖａ(登録商標）ライブラリ１２０５は、図５２に示すように、図１２に示す構成に加えてセキュリティマネージャ１２０５ｆを備えている。セキュリティマネージャ１２０５ｆは、ＡＭ１２０５ｂからの指示により、端末装置上で実行されるプログラムに対して、このプログラムが２次記憶部５１０に保存されているか否かに応じた認証を行う。すなわち、セキュリティマネージャ１２０５ｆは、プログラムが２次記憶部５１０に保存されていない場合には、ファイルシステムのハッシュ値を算出し、ハッシュファイルに存在するハッシュ値と一致するか否かを判断するハッシュ値チェック、および、ルート証明書等の証明書の認証を行うルート証明チェックを行う。一方、セキュリティマネージャ１２０５ｆは、プログラムが２次記憶部５１０に保存されている場合には、ルート証明書等の証明書の認証を行うルート証明チェックだけを行う。なお、ＭＨＰ規格によれば、図３４の列３４０１示すようなＪａｖａ（登録商標）プログラムの識別子に応じて、Ｊａｖａ(登録商標）プログラムが端末装置５００のセキュリティマネージャ１２０５ｆによって認証されるべきものであるかが判別できることになっている。識別子の値が、０ｘ０から０ｘ３ｆｆｆの範囲であれば認証は不要で、０ｘ４０００から０ｘ７ｆｆｆであれば認証されなければならない。
【０１５２】
また、本実施の形態のＡＭ１２０５ｂは、実施の形態２の図３６に示す構成と同様であるが、プログラム起動時間計測部３６０４の動作が相違する。なお、実施の形態２と同様の部分については説明を省略する。
【０１５３】
プログラム起動時間計測部３６０４は、プログラム起動情報管理部３６０１の要求に基づき、Ｊａｖａ（登録商標）プログラムのダウンロード時間と起動時間の計測を行う。すなわち、プログラム起動時間計測部３６０４は、起動指示が受け付けられたプログラムが２次記憶部５１０に保存されていない場合、プログラムの認証に要する時間（認証時間）をダウンロード時間に含めて計測し、起動指示が受け付けられたプログラムが２次記憶部５１０に保存されている場合、プログラムの認証時間を起動時間に含めて計測する。
【０１５４】
図５３は、認証時間、ダウンロード時間、起動時間、および起動待ち時間の関係を示す図であり、（ａ）プログラムのダウンロードが必要な場合、（ｂ）プログラムのダウンロードが必要でない場合を示す図である。
【０１５５】
プログラムのダウンロードが必要な場合は、ダウンロードしたプログラムが２次記憶部５１０へ保存される前にセキュリティマネージャ１２０５ｆによって認証が行われるので、図５３（ａ）に示すように、プログラムの起動指示からプログラムが１次記憶部５１１に保存されるまでの時間、１次記憶部５１１に保存されたプログラムに対するハッシュ値チェックに要する時間、１次記憶部５１１に保存されたプログラムに対するルート証明チェックに要する時間、および１次記憶部５１１に保存されたプログラムを２次記憶部５１０へ保存するまでの時間の合計がダウンロード時間であり、起動に要する時間が起動時間である。
【０１５６】
一方、プログラムのダウンロードが必要でない、すなわちプログラムが２次記憶部５１０に保存されている場合は、セキュリティマネージャ１２０５ｆによってルート証明チェックだけの認証が行われるので、図５３（ｂ）に示すように、２次記憶部５１０に保存されたプログラムに対するルート証明チェックに要する時間、および起動に要する時間の合計が起動時間である。
【０１５７】
図５４は、起動履歴情報の一例を模式的に表した表である。列５４０１はＪａｖａ（登録商標）プログラムの識別子であり、列５４０２はＪａｖａ（登録商標）プログラムのバージョン番号であり、列５４０３はＪａｖａ（登録商標）プログラムのダウンロードに要した処理時間（ダウンロード時間）であり、列５４０４はＪａｖａ（登録商標）プログラムの起動に要した処理時間（起動時間）である。さらに、ダウンロード時間は、列５４０５のハッシュ値チェックに要する時間、列５４０６のルート証明チェックに要する時間、列５４０７のプログラムの起動指示からプログラムが１次記憶部５１１に保存されるまでの時間および１次記憶部５１１に保存されたプログラムを２次記憶部５１０へ保存するまでの時間の合計である保存時間として管理される。なお、ここでは、プログラムの起動指示からプログラムが１次記憶部５１１に保存されるまでの時間および１次記憶部５１１に保存されたプログラムを２次記憶部５１０へ保存するまでの時間の合計を保存時間としているが、それぞれ別に管理しても構わない。
【０１５８】
次に、Ｊａｖａ（登録商標）プログラムのダウンロード時間と起動時間の計測の動作について説明する。図５５は、プログラム起動情報管理部３６０１から計測要求された時のプログラム起動時間計測部３６０４の動作をまとめたフローチャートである。
【０１５９】
プログラム起動情報管理部３６０１からＸＡＩＴ情報を渡され計測要求を受けると、プログラム起動時間計測部３６０４は、起動ＡＩＴ情報から識別子とバージョン番号を抽出する（Ｓ５５０１）。プログラム起動時間計測部３６０４は、現在の時間をダウンロード開始時間として取得する（Ｓ５５０２）。プログラム起動時間計測部３６０４は、図５６（ａ）に示すように識別子５６０１とバージョン番号５６０２とダウンロード開始時間５６０３の組でプログラム起動時間情報５６１１を１次記憶部５１１に記憶する（Ｓ５５０３）。次に、セキュリティマネージャ１２０５ｆからハッシュ値チェックの開始の通知を受けると、現在の時間をハッシュ値チェック開始時間として取得する（Ｓ５５０４）。プログラム起動時間計測部３６０４は、図５６（ｂ）に示すように識別子５６０１とバージョン番号５６０２とハッシュ値チェック開始時間５６０４の組でプログラム起動時間情報５６１２を１次記憶部５１１に記憶する（Ｓ５５０５）。次に、セキュリティマネージャ１２０５ｆからルート証明チェックの開始の通知を受けると、現在の時間をルート証明チェック開始時間として取得する（Ｓ５５０６）。プログラム起動時間計測部３６０４は、図５６（ｃ）に示すように識別子５６０１とバージョン番号５６０２とルート証明チェック開始時間５６０５の組でプログラム起動時間情報５６１３を１次記憶部５１１に記憶する（Ｓ５５０７）。次に、セキュリティマネージャ１２０５ｆからルート証明チェックの終了の通知を受けると、現在の時間をルート証明チェック終了時間として取得する（Ｓ５５０８）。プログラム起動時間計測部３６０４は、図５６（ｄ）に示すように識別子５６０１とバージョン番号５６０２とルート証明チェック終了時間５６０６の組でプログラム起動時間情報５６１４を１次記憶部５１１に記憶する（Ｓ５５０９）。
【０１６０】
以上のように、プログラム起動時間計測部３６０４は、各プログラム起動時間情報を１次記憶部５１１に記憶する。その後、Ｊａｖａ（登録商標）プログラムのダウンロード完了した時点で、ＡＭ１２０５ｂからＸＡＩＴ情報を渡されたプログラム起動情報管理部３６０１は、プログラム起動時間計測部３６０４にＸＡＩＴ情報を渡してダウンロード時間の計測結果取得を行う。
【０１６１】
プログラム起動時間計測部３６０４は、図５６（ａ）〜（ｄ）に示す各プログラム起動時間情報を用いて、上記実施の形態２と同様に、ダウンロード時間および起動時間、さらに、ダウンロード時間の内訳としては、ハッシュ値チェックに要する時間、ルート証明チェックに要する時間、保存時間を算出する。
【０１６２】
図５７は、プログラム起動情報管理部３６０１からＸＡＩＴと起動履歴情報を渡され通知要求された時のプログラム起動情報通知部３６０５の動作をまとめたフローチャートである。プログラム起動情報管理部３６０１からＸＡＩＴ情報と起動履歴情報を渡され通知要求を受けると、プログラム起動情報通知部３６０５は、ＸＡＩＴ情報からプログラム名を抽出し（Ｓ５７０１）、起動履歴情報からダウンロード時間、起動時間、およびルート証明チェックに要する時間を抽出する（Ｓ５７０２）。ここで、ダウンロード時間を図５４の行５４１１のダウンロード時間５４０３とすると「８０」秒となり、起動時間を図５４の行５４１１の起動時間５４０４とすると「７０」秒となり、ルート証明チェックに要する時間を図５４の行５４１１のルート証明チェックに要する時間５４０６とすると「２０」秒となる。次に、プログラム起動情報通知部３６０５は、プログラム保存管理部３６０６に、このプログラムが２次記憶部５１０に保存されているか問い合わせる（Ｓ５７０３）。Ｓ５７０３にて保存されている場合（Ｓ５７０３でＹｅｓ）は、起動待ち時間を起動時間「７０」秒とルート証明チェックに要する時間「２０」秒とを足して「９０」秒として算出する（Ｓ５７０４）。すなわち、プログラムが２次記憶部５１０に保存されている場合には、ダウンロードを行う必要はないが、ルート証明チェックは行う必要があるので、図５３（ｂ）に示すようにルート証明チェックに要する時間と起動時間とを合わせた時間が、プログラムの起動指示から実際に起動されるまでの起動待ち時間となる。Ｓ５７０３にて保存されていない場合（Ｓ５７０３でＮｏ）は、起動待ち時間をダウンロード時間「８０」秒と起動時間「７０」秒を足して「１５０」秒として算出する（Ｓ５７０５）。すなわち、プログラムが２次記憶部５１０に保存されていない場合には、実施の形態１と同様にダウンロードを行う必要があるので、図５３（ａ）に示すようにダウンロード時間と起動時間とを合わせた時間が、プログラムの起動指示から実際に起動されるまでの起動待ち時間となる。次に、プログラム起動情報通知部３６０５は、上記実施の形態２と同様に抽出したプログラム名と算出した起動待ち時間をユーザへ通知する（Ｓ５７０６）。
【０１６３】
このように、Ｊａｖａ（登録商標）プログラムの起動履歴情報を管理することにより、ユーザにＪａｖａ（登録商標）プログラムの起動待ち時間を通知することが可能となる。
【０１６４】
なお、本実施の形態では、セキュリティマネージャ１２０５ｆは、プログラムが２次記憶部５１０に保存されていない場合には、ダウンロードしたプログラムが２次記憶部５１０へ保存される前に、ハッシュ値チェックおよびルート証明チェックを行っているが、プログラムが２次記憶部５１０に保存された後でプログラムを起動する直前に、再度ルート証明チェックを行う構成であっても構わない。この場合には、起動時間にルート証明チェックに要する時間が含まれることになるため、プログラムが２次記憶部５１０に保存されていると、起動時間がプログラムの起動指示から実際に起動されるまでの起動待ち時間となる。
【０１６５】
また、実施の形態１〜３を通して、以下の応用が可能である。
【０１６６】
本発明は、パーソナルコンピュータや携帯電話などの情報機器であれば、適応可能である。
【０１６７】
また、ＰＯＤ５０４は着脱可能な形態としているが、内蔵していても実施可能である。なお、内蔵した場合、ＰＯＤ５０４のＣＰＵ７０６を取り外し、ＣＰＵ５１４がＣＰＵ７０６の動作も行うことも実施可能である。
【０１６８】
また、プログラムはＪａｖａ（登録商標）プログラムとしているが、Ｊａｖａ（登録商標）プログラム以外でも実施可能である。
【０１６９】
また、本発明の主要な機能構成しているプログラム起動情報管理部２００１とプログラム起動履歴情報取得部２００２とプログラム起動履歴情報更新部２００３とプログラム起動時間計測部２００４とプログラム起動情報通知部２００５やプログラム起動情報管理部３６０１とプログラム起動履歴情報取得部３６０２とプログラム起動履歴情報更新部３６０３とプログラム起動時間計測部３６０４とプログラム起動情報通知部３６０５とプログラム保存管理部３６０６はＡＭ１２０５ｂ内に構成されている形態としているが、他のモジュール内で構成されていても実施可能であり、ＯＣＡＰ仕様に記述されているモニターアプリケーションで構成されていても実施可能である。また、他の組み込みソフトウェアでも実施可能である。
【産業上の利用可能性】
【０１７０】
本発明は、例えばデジタルテレビ、パーソナルコンピュータ、および携帯電話等のプログラムをダウンロードして実行するプログラム実行装置に利用可能である。
【図面の簡単な説明】
【０１７１】
【図１】図１は、本発明に係るケーブルテレビシステムの実施の形態１の構成図である。
【図２】図２は、本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】図３は、本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】図４は、本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】図５は、本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。
【図６】図６は、本発明に係るケーブルテレビシステムにおいて端末装置の外観の一例を示す図である。
【図７】図７は、本発明に係るＰＯＤのハードウエア構成の構成図である。
【図８】図８は、本発明に係るＰＯＤが保存するプログラム構成の構成図である。
【図９】図９は、ＭＰＥＧ規格で定義されているパケットの構成図である。
【図１０】図１０は、ＭＰＥＧ２トランスポートストリームの一例を示す図である。
【図１１】図１１は、入力部をフロントパネルで構成した場合の外観の一例を示す図である。
【図１２】図１２は、本発明に係る端末装置が保存するプログラム構成の構成図である。
【図１３】図１３（ａ）、（ｂ）は、本発明に係るディスプレイの表示の一例を示す図である。
【図１４】図１４は、本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図１５】図１５（ａ）〜（ｃ）は、本発明に係る１次記憶部が保存する情報の一例を示す図である。
【図１６】図１６は、本発明に係るＭＰＥＧ２規格が規定するＰＡＴの内容を表す模式図である。
【図１７】図１７は、本発明に係るＭＰＥＧ２規格が規定するＰＭＴの内容を表す模式図である。
【図１８】図１８は、本発明に係るＡＩＴの内容を表す模式図である。
【図１９】図１９は、本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２０】図２０は、本発明に係るＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムのダウンロードおよび起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能を実行する際のＡＭの構成要素を示すブロック図である。
【図２１】図２１は、本発明に係るダウンロード時間および起動時間と起動待ち時間との関係を示す図であり、（ａ）プログラムのダウンロードが必要な場合、（ｂ）プログラムのダウンロードが必要でない場合を示す図である。
【図２２】図２２は、本発明に係るプログラム起動情報管理部のＪａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロードおよび起動時間の計測の動作をまとめたフローチャートである。
【図２３】図２３は、本発明に係るプログラム起動情報管理部から起動ＡＩＴ情報を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の取得を要求された時のプログラム起動履歴情報取得部の動作をまとめたフローチャートである。
【図２４】図２４は、本発明に係る起動履歴情報の一例を模式的に表した表である。
【図２５】図２５は、本発明に係るプログラム起動情報管理部から起動ＡＩＴ情報と起動履歴情報を渡され通知要求された時のプログラム起動情報通知部の動作をまとめたフローチャートである。
【図２６】図２６は、本発明に係るプログラム名と処理時間を通知する表示画面である。
【図２７】図２７は、本発明に係るプログラム起動情報管理部から起動ＡＩＴ情報を渡され通知要求された時のプログラム起動情報通知部の動作をまとめたフローチャートである。
【図２８】図２８は、本発明に係るプログラム名と処理時間が不明であることを通知する表示画面である。
【図２９】図２９は、本発明に係るプログラム起動情報管理部から計測要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図３０】図３０は、本発明に係るプログラム起動時間情報の模式図である。
【図３１】図３１は、本発明に係るプログラム起動情報管理部のＪａｖａ（登録商標）プログラムのダウンロードおよび起動時間の計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。
【図３２】図３２は、本発明に係るプログラム起動情報管理部２００１から計測結果取得を要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図３３】図３３は、本発明に係るプログラム起動情報管理部から起動ＡＩＴ情報とダウンロードおよび起動時間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部の動作をまとめたフローチャートである。
【図３４】図３４は、本発明に係るＸＡＩＴの内容を表す模式図である。
【図３５】図３５は、本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図３６】図３６は、本発明に係るＸＡＩＴ情報に基づき、Ｊａｖａ（登録商標）プログラムのダウンロードと起動に関する時間や情報の履歴取り、その履歴情報をユーザに知らせる機能を実行する際のＡＭの構成要素を示すブロック図である。
【図３７】図３７は、本発明に係るプログラム起動情報管理部のＪａｖａ（登録商標）プログラムの起動履歴情報の取得要求と起動履歴情報等の通知とダウンロードと起動時間の計測の動作をまとめたフローチャートである。
【図３８】図３８は、本発明に係るプログラム起動情報管理部からＸＡＩＴ情報を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の取得を要求された時のプログラム起動履歴情報取得部の動作をまとめたフローチャートである。
【図３９】図３９は、本発明に係る起動履歴情報の一例を模式的に表した表である。
【図４０】図４０は、本発明に係るプログラム起動情報管理部からＸＡＩＴと起動履歴情報を渡され通知要求された時のプログラム起動情報通知部の動作をまとめたフローチャートである。
【図４１】図４１は、本発明に係るプログラム名と算出した処理時間を通知する表示画面である。
【図４２】図４２は、本発明に係るプログラム起動情報管理部からＸＡＩＴ情報を渡され通知要求された時のプログラム起動情報通知部の動作をまとめたフローチャートである。
【図４３】図４３は、本発明に係るプログラム名と処理時間が不明であること通知する表示画面である。
【図４４】図４４は、本発明に係るプログラム起動情報管理部から計測要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図４５】図４５は、本発明に係るプログラム起動時間情報の一例を示す模式図である。
【図４６】図４６は、本発明に係るプログラム起動情報管理部のＪａｖａ（登録商標）プログラムのダウンロードの計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。
【図４７】図４７は、本発明に係るプログラム起動情報管理部からダウンロード計測結果取得を要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図４８】図４８は、本発明に係るプログラム起動情報管理部からＸＡＩＴ情報とダウンロード時間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部３５０３の動作をまとめたフローチャートである。
【図４９】図４９は、本発明に係るプログラム起動情報管理部のＪａｖａ（登録商標）プログラムの起動の計測結果取得と起動履歴情報の更新の動作をまとめたフローチャートである。
【図５０】図５０は、本発明に係るプログラム起動情報管理部から起動計測結果取得を要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図５１】図５１は、本発明に係るプログラム起動情報管理部からＸＡＩＴ情報と起動間を渡されＪａｖａ（登録商標）プログラムの起動履歴情報の更新を要求された時のプログラム起動履歴情報取得部の動作をまとめたフローチャートである。
【図５２】図５２は、本発明に係る端末装置が保存するプログラム構成の他の構成例を示す構成図である。
【図５３】図５３は、本発明に係る認証時間、ダウンロード時間、起動時間、および起動待ち時間の関係を示す図であり、（ａ）プログラムのダウンロードが必要な場合、（ｂ）プログラムのダウンロードが必要でない場合を示す図である。
【図５４】図５４は、本発明に係る起動履歴情報の一例を模式的に表した表である。
【図５５】図５５は、本発明に係るプログラム起動情報管理部から計測要求された時のプログラム起動時間計測部の動作をまとめたフローチャートである。
【図５６】図５６（ａ）〜（ｄ）は、本発明に係るプログラム起動時間情報の一例を示す模式図である。
【図５７】図５７は、本発明に係るプログラム起動情報管理部からＸＡＩＴと起動履歴情報を渡され通知要求された時のプログラム起動情報通知部の動作をまとめたフローチャートである。
【符号の説明】
【０１７２】
２００１、３６０１  プログラム起動情報管理部
２００２、３６０２  プログラム起動履歴情報取得部
２００３、３６０３  プログラム起動履歴情報更新部
２００４、３６０４  プログラム起動時間計測部
２００５、３６０５  プログラム起動情報通知部
３６０６            プログラム保存管理部
【図１】
0004317565.tif 000002
【図２】
0004317565.tif 000003
【図３】
0004317565.tif 000004
【図４】
0004317565.tif 000005
【図５】
0004317565.tif 000006
【図６】
0004317565.tif 000007
【図７】
0004317565.tif 000008
【図８】
0004317565.tif 000009
【図９】
0004317565.tif 000010
【図１０】
0004317565.tif 000011
【図１１】
0004317565.tif 000012
【図１２】
0004317565.tif 000013
【図１３】
0004317565.tif 000014
【図１４】
0004317565.tif 000015
【図１５】
0004317565.tif 000016
【図１６】
0004317565.tif 000017
【図１７】
0004317565.tif 000018
【図１８】
0004317565.tif 000019
【図１９】
0004317565.tif 000020
【図２０】
0004317565.tif 000021
【図２１】
0004317565.tif 000022
【図２２】
0004317565.tif 000023
【図２３】
0004317565.tif 000024
【図２４】
0004317565.tif 000025
【図２５】
0004317565.tif 000026
【図２６】
0004317565.tif 000027
【図２７】
0004317565.tif 000028
【図２８】
0004317565.tif 000029
【図２９】
0004317565.tif 000030
【図３０】
0004317565.tif 000031
【図３１】
0004317565.tif 000032
【図３２】
0004317565.tif 000033
【図３３】
0004317565.tif 000034
【図３４】
0004317565.tif 000035
【図３５】
0004317565.tif 000036
【図３６】
0004317565.tif 000037
【図３７】
0004317565.tif 000038
【図３８】
0004317565.tif 000039
【図３９】
0004317565.tif 000040
【図４０】
0004317565.tif 000041
【図４１】
0004317565.tif 000042
【図４２】
0004317565.tif 000043
【図４３】
0004317565.tif 000044
【図４４】
0004317565.tif 000045
【図４５】
0004317565.tif 000046
【図４６】
0004317565.tif 000047
【図４７】
0004317565.tif 000048
【図４８】
0004317565.tif 000049
【図４９】
0004317565.tif 000050
【図５０】
0004317565.tif 000051
【図５１】
0004317565.tif 000052
【図５２】
0004317565.tif 000053
【図５３】
0004317565.tif 000054
【図５４】
0004317565.tif 000055
【図５５】
0004317565.tif 000056
【図５６】
0004317565.tif 000057
【図５７】
0004317565.tif 000058