(57)【要約】実行中のアプリケーション（プログラム）が異常終了したとしても、アプリケーションが利用できなることを防止し、利用者の利便性を向上することができるプログラム実行装置を提供する。ＭＡ管理部（１２０５ｆ）は、初期化サブプログラムからの指示を受け付け、ＭＡ管理部（１２０５ｆ）内の他の構成要素を制御するＭＡ管理部メイン（２１０１）、ヘッドエンドから送られてきたＸＡＩＴを解析するＸＡＩＴ取得解析部（２１０２）、ＸＡＩＴの解析結果に基づいて起動すべきプログラムを選択するＭＡ選択部Ａ（２１０３）、指定されたプログラムの起動を行うＭＡ起動部（２１０４）、指定されたプログラムの動作状況を監視し、異常終了が発生した場合に通知するＭＡ監視部（２１０５）、および、代替プログラムを選択するＭＡ選択部Ｂ（２１０６）を備える。【特許請求の範囲】
【請求項１】
プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項２】
前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】
前記プログラム実行装置は、さらに、
前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、
前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、
前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、
前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項４】
前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項５】
前記第２プログラム選択手段は、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの異常終了の回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの異常終了の回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項６】
前記第２プログラム選択手段は、選択した前記プログラムの選択回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの選択回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの選択回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項７】
前記第２プログラム選択手段は、時刻情報を前記所定条件とする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項８】
前記第２プログラム選択手段は、利用者の指示を受け付けたか否かを前記所定条件とし、前記利用者の指示を受け付けていない場合には前記所定条件を満たさないと、前記利用者の指示を受け付けた場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項９】
前記第２プログラム選択手段は、不揮発性メモリ上に存在するプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１０】
前記第１プログラム選択手段または前記第２プログラム選択手段は、ネットワークを経由して取得可能なプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１１】
前記第１プログラム選択手段または前記第２プログラム選択手段は、放送波に含まれるプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１２】
前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１３】
前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１４】
前記プログラム監視手段は、異常終了の発生をＬＥＤ表示として利用者に提示する
ことを特徴とする請求項１３記載のプログラム実行装置。
【請求項１５】
前記プログラム監視手段は、異常終了の発生をディスプレイ上の表示として利用者に提示する
ことを特徴とする請求項１３記載のプログラム実行装置。
【請求項１６】
前記第２プログラム選択手段は、利用者の指示に基づいて前記プログラムを選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１７】
前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項１８】
前記第２プログラム選択手段は、選択可能なプログラムの候補として不揮発性メモリ上に存在するプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項１９】
前記第２プログラム選択手段は、選択可能なプログラムの候補としてネットワーク経由で取得可能なプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２０】
前記第２プログラム選択手段は、選択可能なプログラムの候補として放送波に含まれるプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２１】
前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２２】
前記第２プログラム選択手段は、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項２３】
前記第２プログラム選択手段は、電子番組表を表示するプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項２４】
前記プログラム監視手段は、異常終了を検知した前記プログラムに関する情報を記録する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項２５】
前記プログラム監視手段は、前記情報を着脱可能な記録媒体に記録する
ことを特徴とする請求項２４記載のプログラム実行装置。
【請求項２６】
前記プログラム監視手段は、前記情報を外部に送信する
ことを特徴とする請求項２４記載のプログラム実行装置。
【請求項２７】
プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項２８】
実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、プログラムを実行させ、その動作を管理するプログラム実行装置に関する。特に、デジタルテレビにおいて、プログラムが異常終了した際に代替プログラムを実行させることに関する。
【背景技術】
【０００２】  近年、各国において、デジタルテレビ向け仕様が策定されつつあり、それに伴い、各仕様に準拠するＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）が開発されている。【０００３】  北米ケーブル放送向けの仕様であるＯＣＡＰ１．０仕様（ＯＣＡＰ１．０Ｐｒｏｆｉｌｅ  ＯＣ−ＳＰ−ＯＣＡＰ１．０−ＩＦ−Ｉ０９−０３１１２１）では、映像および音声を各家庭に配信するだけでなく、それらに付随するアプリケーションも配信することで、さまざまなサービス（例えばインタラクティブ番組）を提供することが可能となる。さらに、放送事業者が用意したアプリケーション（例えば電子番組表）をＳＴＢ上で動作させることも可能としている。【０００４】  特許文献１の「データのダウンロード」では、放送波（つまりＭＰＥＧ２トランスポートストリーム）から、放送に関連するアプリケーションをダウンロードして実行する方法について述べられている。この特許文献１に記載の技術により、各家庭に映像や音声だけでなく、アプリケーションも配信することが可能となる。【０００５】  また、特許文献２の「アプリケーションライフサイクルに従ってアプリケーションを管理するための方法および装置」では、アプリケーションの動作管理技術について述べられている。ＯＣＡＰ１．０仕様では、特許文献２に記載の技術を用いることで、配信された個々のアプリケーションのライフサイクルを管理すること可能としている。【０００６】  また、ＯＣＡＰ１．０仕様では、ＳＴＢ起動時に、放送事業者が用意したアプリケーションが存在する場合において、その放送事業者が用意したアプリケーションを起動しなければならず、かつその放送事業者が用意したアプリケーションが異常終了した場合は、再起動を試みることと規定されている。【０００７】  従来の技術を用いることにより、アプリケーションをダウンロードおよび実行させた後、そのアプリケーションのライフサイクルを監視し、異常終了を検知することが可能であり、さらに、異常終了したアプリケーションを再実行させることが可能である。
【特許文献１】特表２００１−５１９６２７号公報
【特許文献２】特表２００３−５０４７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】  しかしながら、従来の技術においては、異常終了を起こしたアプリケーションを再実行させるため、再度アプリケーションが異常終了を起こす確率が高く、ＳＴＢを利用して番組を視聴する視聴者に対する利便性を損ねる要因となっていた。【０００９】  そこで、本発明は上記の事情に鑑みてなされたものであり、実行中のアプリケーション（プログラム）が異常終了したとしても、アプリケーションが利用できなることを防止し、利用者の利便性を向上することができるプログラム実行装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】  上記目的を達成するため、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。これによって、実行中のプログラムが異常終了したとしても、代替プログラムとして、同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。ここで、同じ種類のプログラムとは、例えば電子番組表を表示する等の機能が同一であり、利用者による操作性、または表示する情報の情報量や表示形式などの表示性等が相違するプログラム等である。なお、同じ種類のプログラムには、異常終了したプログラムと同じプログラムも含むものとする。【００１１】  また、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、代替プログラムとして、異常終了したプログラムと同じ種類で、かつ異なるプログラムを実行することできる。【００１２】  また、前記プログラム実行装置は、さらに、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行してもよい。これによって、異常終了したプログラムと同じプログラムを再び実行することできる。【００１３】  また、前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、一定期間だけ最初と同じプログラムを起動し、その後は別のプログラムを実行させることが可能となる。【００１４】  また、前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示してもよい。これによって、利用者は実行中のプログラムの異常終了が発生したことを認識することが可能となる。【００１５】  また、前記第２プログラム選択手段は、利用者の指示に基づいて前記プログラムを選択してもよい。これによって、利用者が指示したプログラムを実行することが可能となる。【００１６】  また、前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択してもよい。これによって、利用者が選択したプログラムを実行することが可能となる。一方、利用者は実行させるプログラムを決定することが容易になる。【００１７】  また、前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択してもよい。これによって、利用者からの選択が所定の時間内に行われなくても、プログラムを選択することが可能となる。【００１８】  なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、このようなプログラム実行装置が備える特徴的な手段をステップとするプログラム実行方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００１９】  本発明に係るプログラム実行装置によれば、実行中のプログラムが異常終了したとしても、代替プログラムとして、異常終了したプログラムと同じプログラム、または同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。よって、アプリケーション（プログラム）が利用できなることを防止し、利用者の利便性を向上することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係るケーブルテレビシステムの実施の形態１の構成図である。
【図２】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。
【図６】本発明に係るケーブルテレビシステムにおいて端末装置の外観の一例を示す図である。
【図７】本発明に係るＰＯＤのハードウエア構成の構成図である。
【図８】本発明に係るＰＯＤが保存するプログラム構成の構成図である。
【図９】ＭＰＥＧ規格で定義されているパケットの構成図である。
【図１０】ＭＰＥＧ２トランスポートストリームの一例を示す図である。
【図１１】入力部をフロントパネルで構成した場合の外観の一例を示す図である。
【図１２】本発明に係る端末装置が保存するプログラム構成の構成図である。
【図１３】（ａ）本発明に係るディスプレイの表示の一例を示す図である。（ｂ）本発明に係るディスプレイの表示の一例を示す図である。
【図１４】本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図１５】本発明に係る１次記憶部が保存する情報の一例を示す図である。
【図１６】本発明に係るＭＰＥＧ２規格が規定するＰＡＴの内容を表す模式図である。
【図１７】本発明に係るＭＰＥＧ２規格が規定するＰＭＴの内容を表す模式図である。
【図１８】本発明に係るＯＣＡＰ１．０仕様が規定するＡＩＴの内容を表す模式図である。
【図１９】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２０】本発明に係るＸＡＩＴの内容を表す模式図である。
【図２１】本発明に係るＭＡ管理部の構成図である。
【図２２】実施の形態１において、ＭＡ管理部がモニタアプリの起動を行う際の動作を表すフローチャートである。
【図２３】実施の形態１において、起動されたモニタアプリが、予期せぬタイミングで異常終了した際の動作を表すフローチャートである。
【図２４】実施の形態１において、ＭＡ管理部が、モニタアプリが異常終了した場合、異常終了の内容を保存および送信する際の動作を表すフローチャートである。
【図２５】実施の形態２において、ＭＡ選択部ＢがＭＡ選択部Ａの選択結果と同じプログラムを再度選択する際の動作を表すフローチャートである。
【図２６】（ａ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。（ｂ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。（ｃ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。
【図２７】実施の形態３において、Ｎ回までは、ＭＡ選択部ＢがＭＡ選択部Ａ２１０３の選択結果と同じプログラムを再度選択し、Ｎ＋１回目以降は、他のプログラムを選択際の動作を表すフローチャートである。
【図２８】実施の形態４において、選択候補となるプログラムの一覧を視聴者に提示し、視聴者に選択させる際の動作を表すフローチャートである。
【図２９】実施の形態４において、代替プログラムとして選択可能なプログラムの一覧の一例を模式的に表した図である。
【図３０】実施の形態４において、視聴者に提示される表示の一例を示す図である。
【図３１】実施の形態５において、視聴者に対する通知方法の一例を示す図である。
【図３２】実施の形態５において、視聴者に対する通知方法の一例を示す図である。
【図３３】本発明に係るＸＡＩＴの内容を表す模式図である。
【図３４】本発明に係る番組購入を促すメメッセージの一例である。
【図３５】本発明に係るＪａｖａ（Ｒ）プログラムの情報を保存している状態の一例である。
【図３６】本発明に係るディスプレイの表示の一例である。
【図３７】ＰＯＤ  ＬｉｂにＪａｖａ（Ｒ）プログラムが登録される場合におけるＰＯＤ  Ｌｉｂの動作をまとめたフローチャートである。
【図３８】本発明に係るＰＯＤとのメッセージの配送先の変化を表す模式図である。
【図３９】本発明に係るＰＯＤとのメッセージの配送先の変化を表す模式図である。
【図４０】本発明に係るＰＯＤ  ＬｉｂがＪａｖａ（Ｒ）プログラムの登録を削除する場合におけるＰＯＤ  Ｌｉｂの動作をまとめたフローチャートである。
【図４１】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を行う構成図である。
【図４２】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【図４３】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【図４４】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【符号の説明】
【００２１】  １２００    プログラム
１２０１    ＯＳ
１２０１ａ  カーネル
１２０１ｂ  ライブラリ
１２０２    ＥＰＧ
１２０２ａ  番組表示部
１２０２ｂ  再生部
１２０３    ＶＭ
１２０４    サービスマネージャ
１２０５    ライブラリ
１２０５ａ  ＪＭＦ
１２０５ｂ  ＡＭ
１２０５ｃ  Ｔｕｎｅｒ
１２０５ｄ  ＣＡ
１２０５ｅ  ＰＯＤ  Ｌｉｂ
１２０５ｆ  ＭＡ管理部
【発明を実施するための最良の形態】
【００２２】  以下本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図１は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド１０１及び３個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。本実施の形態では、１つのヘッドエンドに対して３つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。【００２３】  ヘッドエンド１０１は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の伝送に用いられる周波数帯域は、分割して用いられる。図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主にヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間のデータのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。図３は、ＯＯＢ周波数帯域のさらに詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚはヘッドエンド１０１からのデータ送信に使用され、全ての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、ヘッドエンド１０１から同じデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１からヘッドエンド１０１へのデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２からヘッドエンド１０１へのデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３からヘッドエンド１０１へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３からヘッドエンド１０１に送信することができる。図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。【００２４】  ヘッドエンド１０１は、これらの周波数帯域に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等を有する。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器を有する。また、ヘッドエンド１０１は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発���は主として端末装置に関わるので、詳細な説明は省略する。【００２５】  端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、ヘッドエンド１０１からの放送信号を受信し再生する。また、ヘッドエンド１０１に対して、各端末装置固有のデータを送信する。３つの、端末装置は本実施の形態では同じ構成を取る。【００２６】  図５は、端末装置のハードウエア構成を表すブロック図である。端末装置５００は、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＴＳデコーダ５０５、オーディオデコーダ５０６、スピーカ５０７、ビデオデコーダ５０８、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２、入力部５１３、ＣＰＵ５１４で構成される。また端末装置５００には、ＰＯＤ５０４が着脱できる。【００２７】  図６は、端末装置５００の外観の一例である薄型テレビである。
薄型テレビの筐体６０１は、ＰＯＤ５０４を除く、端末装置５００の構成要素をすべて内蔵している。【００２８】  ディスプレイ６０２は、図５におけるディスプレイ５０９に相当する。
フロントパネル部６０３は複数のボタンで構成され、図５の入力部５１３に相当する。【００２９】  信号入力端子６０４は、ヘッドエンド１０１との信号の送受信を行うためにケーブル線を接続する。また、信号入力端子６０４は、図５のＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３と接続されている。【００３０】  ＰＯＤカード６０５は、図５のＰＯＤ５０４に相当する。ＰＯＤ５０４は、図６のＰＯＤカード６０５のように、端末装置５００とは独立した形態を取り、端末装置５００に着脱可能となっている。ＰＯＤ５０４の詳細は後述する。【００３１】  挿入スロット６０６は、ＰＯＤカード６０５が挿入される挿入スロットである。
図５を参照して、ＱＡＭ復調部５０１は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＡＭ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。【００３２】  ＱＰＳＫ復調部５０２は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＰＳＫ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。【００３３】  ＱＰＳＫ変調部５０３は、ＣＰＵ５１４から指定された周波数を含む変調情報で、ＰＯＤ５０４から渡された信号をＱＰＳＫ変調し、ヘッドエンド１０１に送信する。【００３４】  ＰＯＤ５０４は、図６のように端末装置本体５００から着脱可能な形態をしている。端末本体５００とＰＯＤ５０４の接続インターフェースは、ＯｐｅｎＣａｂｌｅ（Ｒ）ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。【００３５】  図７は、ＰＯＤ５０４の内部構成を表すブロック図である。ＰＯＤ５０４は、第１デスクランブラ部７０１、第２デスクランブラ部７０２、スクランブラ部７０３、第１記憶部７０４、第２記憶部７０５、ＣＰＵ７０６で構成される。【００３６】  第１デスクランブラ部７０１は、ＣＰＵ７０６からの指示により、端末装置５００のＱＡＭ復調部５０１から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置５００のＴＳデコーダ５０５に送る。デコードに必要な鍵などの情報はＣＰＵ７０６から適宜与えられる。具体的には、ヘッドエンド１０１はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購買すると、第１デスクランブラ部７０１は、ＣＰＵ７０６から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第１デスクランブラ部７０１は、デスクランブルを行わず、受け取った信号をそのまま、ＴＳデコーダ５０５に送る。【００３７】  第２デスクランブラ部７０２は、ＣＰＵ７０６からの指示により、端末装置５００のＱＰＳＫ復調部５０２から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをＣＰＵ７０６に引き渡す。【００３８】  スクランブラ部７０３は、ＣＰＵ７０６からの指示により、ＣＰＵ７０６から受け取ったデータを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に送る。【００３９】  第１記憶部７０４は、具体的にはＲＡＭ等の一次記憶メモリで構成され、ＣＰＵ７０６が処理を行う際、一時的にデータを保存するために使用される。【００４０】  第２記憶部７０５は、具体的にはフラッシュＲＯＭ等の２次記憶メモリで構成され、ＣＰＵ７０６が実行するプログラムを格納し、また、電源ＯＦＦになっても消去されては困るデータの保存に使用される。【００４１】  ＣＰＵ７０６は、第２記憶部７０５が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図８は、第２記憶部７０５が記憶するプログラムの一例である。図８では、プログラム８００は、メインプログラム８０１、初期化サブプログラム８０２、ネットワークサブプログラム８０３、再生サブプログラム８０４、ＰＰＶサブプログラム８０５等複数のサブプログラムで構成されている。【００４２】  ここでＰＰＶとはＰａｙ  Ｐｅｒ  Ｖｉｅｗの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド１０１に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払うものである。【００４３】  メインプログラム８０１は、ＣＰＵ７０６が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。【００４４】  初期化サブプログラム８０２は、電源投入時にメインプログラム８０１によって起動され、端末装置５００との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、ＯｐｅｎＣａｂｌｅ（Ｒ）ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴ  ＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ復調部５０２に通知する。ＱＰＳＫ復調部５０２は、与えられた第１の周波数でチューニングを行い、信号を第２デスクランブラ部７０２に送る。また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の鍵等の復号情報を第２デスクランブラ部７０２に与える。その結果、第２デスクランブラ部７０２は、デスクランブルを行い、初期化サブプログラム８０２を実行するＣＰＵ７０６に引き渡す。よって、初期化サブプログラム８０２は情報を受け取ることができる。本実施の形態では、初期化サブプログラム８０２はネットワークサブプログラム８０３を通して情報を受け取ることとする。詳細は後述する。【００４５】  また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第２の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ変調部５０３に通知する。初期化サブプログラム８０２は第２記憶部７０５が記憶する暗号化情報をスクランブラ部７０３に与える。初期化サブプログラム８０２が送信したい情報を、ネットワークサブプログラム８０３を介して、スクランブラ部７０３に与えると、スクランブラ部７０３は、与えられた暗号化情報を用いて、データを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に与える。ＱＰＳＫ変調部５０３は、与えられた暗号化された情報を変調し、ヘッドエンド１０１に送信する。【００４６】  この結果、初期化サブプログラム８０２は、端末装置５００、第２デスクランブラ部７０２、スクランブラ部７０３、ネットワークサブプログラム８０３を通して、ヘッドエンド１０１と双方向通信を行うことができる。【００４７】  また、初期化サブプログラム８０２は、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行��。詳細については後述する。【００４８】  ネットワークサブプログラム８０３は、メインプログラム８０１、初期化サブプログラム８０２等の複数のサブプログラムから使用される、ヘッドエンド１０１との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム８０３を使用する他のサブプログラムに対して、ＴＣＰ／ＩＰによって、ヘッドエンド１０１と双方向通信を行っているように振舞う。ＴＣＰ／ＩＰは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム８０３は、電源投入時に初期化サブプログラム８０２に起動されると、予め第２記憶部７０５が記憶しているＰＯＤ５０４を識別する識別子であるＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌアドレスの略）を、端末装置５００を通してヘッドエンド１０１に通知し、ＩＰアドレスの取得を要求する。ヘッドエンド１０１は、端末装置５００を介してＰＯＤ５０４にＩＰアドレスを通知し、ネットワークサブプログラム８０３は、ＩＰアドレスを第１記憶部７０４に記憶する。以降、ヘッドエンド１０１とＰＯＤ５０４は、このＩＰアドレスを、ＰＯＤ５０４の識別子として使用し、通信を行う。【００４９】  再生サブプログラム８０４は、第２記憶部７０５が記憶する第２の鍵等の復号情報や、端末装置５００から与えられる第３の鍵等の復号情報を第１デスクランブラ部７０１に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム８０３を通して、第１デスクランブラ部７０１に入力されている信号が、ＰＰＶチャンネルであることの情報を受け取る。ＰＰＶチャンネルと知ったときは、ＰＰＶサブプログラム８０５を起動する。【００５０】  ＰＰＶサブプログラム８０５は、起動されると、端末装置５００に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置５００のＣＰＵ５１４に画面に表示したい情報を送ると、端末装置５００のＣＰＵ５１４上で動作するプログラムが、端末装置５００のディスプレイ５０９上にメッセージを表示する。ユーザは、端末装置５００の入力部５１３を通して暗証番号を入力すると、端末装置５００のＣＰＵ５１４が、それを受け取り、ＰＯＤ５０４のＣＰＵ７０６上で動作するＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は、受け取った暗証番号をネットワークサブプログラム８０３を通してヘッドエンド１０１に送信する。ヘッドエンド１０１は、暗証番号が正しければ、復号に必要な第４の鍵などの復号化情報をネットワークサブプログラム８０３を介して、ＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は受け取った第４の鍵などの復号化情報を第１デスクランブラ部７０１に与え、第１デスクランブラ部７０１は、入力されている信号をデスクランブルする。【００５１】  図５を参照して、ＴＳデコーダ５０５は、ＰＯＤ５０４から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ５０６及びビデオデコーダ５０８、ＣＰＵ５１４に引き渡す。ここで、ＰＯＤ５０４から来る信号はＭＰＥＧ２トランスポートストリームである。��ＰＥＧ２トランスポートストリームの詳細はＭＰＥＧ規格書ＩＳＯ／ＩＥＣ１３８１８−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。図９はパケットの構成図である。９００はパケットであり、固定長の１８８バイトで構成される。先頭４バイトがヘッダー９０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード９０２で、送信したい情報を含んでいる。９０３は、ヘッダー９０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。図１０は送られてくる複数のパケットの列を表現した模式図である。パケット１００１は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット１００２は、ヘッダーにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット１００３は、ヘッダーにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。【００５２】  パケット１００４は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット１００１の続きになっている。同様にパケット１００５、１０２６、１０２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。【００５３】  図１０を参照して、ＣＰＵ５１４がパケットＩＤ「１」と出力先として「ビデオデコーダ５０８」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ５０８に引き渡す。図１０においては、映像データのみをビデオデコーダ５０８に引き渡すことになる。同時に、ＣＰＵ５１４がパケットＩＤ「２」と「オーディオデコーダ５０６」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ５０６に引き渡す。図１０においては、音声データのみをオーディオデコーダ５０６に引き渡すことになる。【００５４】  このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ５０５が行うフィルタリングである。ＴＳデコーダ５０５はＣＰＵ５１４から指示された複数のフィルタリングを同時に実行することができる。【００５５】  図５を参照して、オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ５０７に出力する。【００５６】  スピーカ５０７は、オーディオデコーダ５０６から与えられた信号を音声出力する。
ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ５０９に出力する。【００５７】  ディスプレイ５０９は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ５０８から与えられたビデオ信号を出力したり、ＣＰＵ５１４から指示されたメッセージを表示したりする。【００５８】  ２次記憶部５１０は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された状態でも保存しつづける。【００５９】  １次記憶部５１１は、具体的には、ＲＡＭ等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された際に、抹消される。【００６０】  ＲＯＭ５１２は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ５１２は、ＣＰＵ５１４が実行するプログラムが格納されている。【００６１】  入力部５１３は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。図１１は、フロントパネルで入力部５１３を構成した場合の一例である。１１００はフロントパネルであり、図６のフロントパネル部６０３に相当する。フロントパネル１１００は７つのボタン、上カーソルボタン１１０１、下カーソルボタン１１０２、左カーソルボタン１１０３、右カーソルボタン１１０４、ＯＫボタン１１０５、取消ボタン１１０６、ＥＰＧボタン１１０７を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ５１４に通知される。【００６２】  ＣＰＵ５１４は、ＲＯＭ５１２が記憶するプログラムを実行する。実行するプログラムの指示に従い、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＰＯＤ５０４、ＴＳデコーダ５０５、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２を制御する。【００６３】  図１２は、ＲＯＭ５１２に記憶され、ＣＰＵ５１４に実行されるプログラムの構成図の一例である。【００６４】  プログラム１２００は、複数のサブプログラムで構成され、具体的にはＯＳ１２０１、ＥＰＧ１２０２、Ｊａｖａ（Ｒ）ＶＭ１２０３（以後ＶＭ１２０３と称す）、サービスマネージャ１２０４、Ｊａｖａ（Ｒ）ライブラリ１２０５（以後ライブラリ１２０５と称す）で構成される。【００６５】  ＯＳ１２０１は、端末装置５００の電源が投入されると、ＣＰＵ５１４が起動するサブプログラムである。ＯＳ１２０１は、オペレーティングシステムの略であり、Ｌｉｎｕｘ等が一例である。ＯＳ１２０１は、他のサブプログラムを平行して実行するカーネル１２０１ａ及びライブラリ１２０１ｂで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、ＯＳ１２０１のカーネル１２０１ａは、ＥＰＧ１２０２とＶＭ１２０３をサブプログラムとして実行する。また、ライブラリ１２０１ｂは、これらサブプログラムに対して、端末装置５００が保持する構成要素を制御するための複数の機能を提供する。【００６６】  機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをＱＡＭ復調部５０１に引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に基づき復調処理を行い、復調したデータをＰＯＤ５０４に引き渡すことができる。この結果、他のサブプログラムはライブラリ１２０１ｂを通してＱＡＭ復調器を制御することができる。【００６７】  ＥＰＧ１２０２は、ユーザに番組一覧を表示及び、ユーザからの入力を受け付ける番組表示部１２０２ａと、チャンネル選局を行う再生部１２０２ｂで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ１２０２は、端末装置５００の電源が投入されると、カーネル１２０１ａによって起動される、起動されたＥＰＧ１２０２の内部では、番組表示部１２０２ａが端末装置５００の入力部５１３を通して、ユーザからの入力を待つ。ここで、入力部５１３が図１１で示されるフロントパネルで構成されている場合、ユーザが、入力部５１３のＥＰＧボタン１１０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ５１４に通知される。ＣＰＵ５１４上で動作するサブプログラムであるＥＰＧ１２０２の番組表示部１２０２ａは、この識別子を受け取り、番組情報をディスプレイ５０９に表示する。図１３（ａ）及び（ｂ）は、ディスプレイ５０９に表示された番組表の一例である。図１３（ａ）を参照して、ディスプレイ５０９には、格子状に番組情報が表示されている。列１３０１には、時刻情報が表示されている。列１３０２には、チャンネル名「チャンネル１」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００は「映画ＡＡＡ」が放映されることを表す。列１３０３も列１３０２同様、チャンネル名「チャンネル２」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００は「ニュース１１」が放映される。１３３０は、カーソルである。カーソル１３３０は、フロントパネル１１００の左カーソル１１０３と右カーソル１１０４を押下すると移動する。図１３（ａ）の状態で、右カーソル１１０４を押下すると、カーソル１３３０は右に移動し、図１３（ｂ）のようになる。また、図１３（ｂ）の状態で、左カーソル１１０３を押下すると、カーソル１３３０は左に移動し、図１３（ａ）のようになる。【００６８】  図１３（ａ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル１」の識別子を再生部１２０２ｂに通知する。図１３（ｂ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、��チャンネル２」の識別子を再生部１２０２ｂに通知する。【００６９】  また、番組表示部１２０２ａは、表示する番組情報を、ＰＯＤ５０４を通してヘッドエンド１０１から定期的に、１次記憶部５１１に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部５１３のＥＰＧボタン１１０７が押下された時、１次記憶部５１１に予め保存された番組情報を表示することで、素早く番組表を表示することができる。【００７０】  再生部１２０２ｂは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、２次記憶部５１０に予め格納されている。図１４は２次記憶部５１０に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列１４０１は、チャンネルの識別子である。列１４０２は、チャンネル名である。列１４０３はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、ＱＡＭ復調部５０１に与える値である。列１４０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴを識別するための番号である。ＰＭＴに関しては、後述する。行１４１１〜１４１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行１４１１は識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」を含む組となっている。再生部１２０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。【００７１】  また、再生部１２０２ｂは、再生中に、ユーザがフロントパネル１１００の上カーソル１１０１と下カーソル１１０２を押下すると、入力部５１３からＣＰＵ５１４を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部１２０２ｂは、１次記憶部５１１に現在再生中のチャンネルの識別子を記憶する。図１５（ａ）（ｂ）及び（ｃ）は、１次記憶部５１１に保存しているチャンネルの識別子の例である。図１５（ａ）では識別子「３」が記憶されており、図１４を参照し、チャンネル名「ＴＶ  ３」のチャンネルが再生中であることを示す。図１５（ａ）の状態で、ユーザが上カーソル１１０１を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル２」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル２」の識別子「２」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「２」に書き換える。図１５（ｂ）は、チャンネル識別子が書き換えられた状態を表す。また、図１５（ａ）の状態で、ユーザが下カーソル１１０２を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「ＴＶ  Ｊａｐａｎ」の識別子「４」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「４」��書き換える。図１５（ｃ）は、チャンネル識別子が書き換えられた状態を表す。【００７２】  ＶＭ１２０３は、Ｊａｖａ（Ｒ）言語で記述されたプログラムを逐次解析し実行するＪａｖａ（Ｒ）バーチャルマシンである。Ｊａｖａ（Ｒ）言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａ（Ｒ）バーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａ（Ｒ）バーチャルマシンは、バイトコードをＣＰＵ５１４が理解可能な実行形式に翻訳してから、ＣＰＵ５１４に引渡し、実行することも行う。ＶＭ１２０３は、カーネル１２０１ａに実行するＪａｖａ（Ｒ）プログラムを指定され起動される。本実施の形態では、カーネル１２０１ａは、実行するＪａｖａ（Ｒ）プログラムとしてサービスマネージャ１２０４を指定する。Ｊａｖａ（Ｒ）言語の詳細は、書籍「Ｊａｖａ（Ｒ）Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Ｊａｖａ（Ｒ）ＶＭ自体の詳細な動作などは、「Ｊａｖａ（Ｒ）Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。【００７３】  サービスマネージャ１２０４は、Ｊａｖａ（Ｒ）言語で書かれたＪａｖａ（Ｒ）プログラムであり、ＶＭ１２０３によって逐次実行される。サービスマネージャ１２０４は、ＪＮＩ（Ｊａｖａ（Ｒ）Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ（Ｒ）言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ（Ｒ）Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。【００７４】  サービスマネージャ１２０４は、ＪＮＩを通して、再生部１２０２ｂよりチャンネルの識別子を受け取る。【００７５】  サービスマネージャ１２０４は、最初にライブラリ１２０５の中にあるＴｕｎｅｒ１２０５ｃに、チャンネルの識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ１２０５ｃは、２次記憶部５１０が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ１２０４がチャンネルの識別子「２」をＴｕｎｅｒ１２０５ｃに引き渡すと、Ｔｕｎｅｒ１２０５ｃは、図１４の行１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ」を獲得する。Ｔｕｎｅｒ１２０５ｃは、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。【００７６】  次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＣＡ１２０５ｄにデスクランブルを依頼する。ＣＡ１２０５ｄは、ＯＳ１２０１のライブラリ１２０１ｂを通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ��調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。【００７７】  次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＪＭＦ１２０５ａにチャンネルの識別子を与え、映像・音声の再生を依頼する。【００７８】  まず、最初にＪＭＦ１２０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴ、ＰＭＴから取得する。ＰＡＴやＰＭＴはＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＡＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤ「０」とＣＰＵ５１４を指定する。ＴＳデコーダ５０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＡＴのパケットを収集する。図１６は、収集したＰＡＴの情報の一例を模式的に表した表である。列１６０１は、プログラムナンバーである。列１６０２は、パケットＩＤである。列１６０２のパケットＩＤはＰＭＴを取得するために用いられる。行１６１１〜１６１３は、チャンネルのプログラムナンバーと対応するパケットＩＤの組である。ここでは、３つのチャンネルが定義されている。行１６１１はプログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ１２０５ａに与えられたチャンネルの識別子が「２」とすると、ＪＭＦ１２０５ａは、図１４の行１４１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１６のＰＡＴの行１６１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＭＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤとＣＰＵ５１４を指定する。ここで、指定するパケットＩＤは「５０２」とする。ＴＳデコーダ５０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＭＴのパケットを収集する。図１７は、収集したＰＭＴの情報の一例を模式的に表した表である。列１７０１は、ストリーム種別であり。列１７０２は、パケットＩＤである。列１７０２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１７０３は補足情報である。行１７１１〜１７１４はエレメンタリ−ストリームと呼ばれる、パケットＩＤと送信している情報の種別の組である。行１７１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ１２０５ａ��、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。図１７を参照して、ＪＭＦ１２０５ａは、行１７１１から音声のパケットＩＤ「５０１１」を、行１７１２から映像のパケットＩＤ「５０１２」を獲得する。【００７９】  次に、ＪＭＦ１２０５ａは、ＯＳ１２０１のライブラリ１２０１ｂを通して、獲得した音声のパケットＩＤと出力先としてオーディオデコーダ５０６、映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。ここではパケットＩＤ「５０１１」のパケットをオーディオデコーダ５０６に、パケットＩＤ「５０１２」のパケットをビデオデコーダ５０８に引き渡す。オーディオデコーダ５０６は、与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。ビデオデコーダ５０８は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。【００８０】  最後にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＡＭ１２０５ｂにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（Ｒ）プログラムを抽出し、ＶＭ１２０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａ（Ｒ）プログラムを埋め込む方法は、ＭＰＥＧ規格書ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａ（Ｒ）プログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＯＣＡＰ１．０仕様（正式には、ＯＣＡＰ  １．０  Ｐｒｏｆｉｌｅ  ＯＣ−ＳＰ−ＯＣＡＰ１．０−ＩＦ−Ｉ０９−０３１１２１）に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。【００８１】  ＡＭ１２０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ１２０５ａ同様ＰＡＴ、ＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネルの識別子が「２」で、図１６のＰＡＴ、図１７のＰＭＴが送信されていると、ＪＭＦ１２０５ａと同様の手順で、図１７のＰＭＴを獲得する。ＡＭ１２０５ｂは、ＰＭＴからストリーム種別が「データ」で補足情報として「ＡＩＴ」を持つエレメンタリ−ストリームからパケットＩＤを抽出する。図１７を参照して、行１７１３のエレメンタリ−ストリームが該当し、パケットＩＤ「５０１３」を獲得する。【００８２】  ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＡＩＴのパケットＩＤと出力先ＣＰＵ５１４を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、��ＩＴのパケットを収集することができる。図１８は、収集したＡＩＴの情報の一例を模式的に表した表である。列１８０１はＪａｖａ（Ｒ）プログラムの識別子（図ではプログラム識別子と表記）である。列１８０２はＪａｖａ（Ｒ）プログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」などがあり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置５００がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はプログラムを停止することを意味する。列１８０３は、ＤＳＭＣＣ方式でＪａｖａ（Ｒ）プログラムを含んでいるパケットＩＤを抽出するためのとＤＳＭＣＣ識別子である。列１８０４はＪａｖａ（Ｒ）プログラムのプログラム名である。行１８１１と行１８１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。行１８１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１８１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａ（Ｒ）プログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａ（Ｒ）プログラムが含まれていることを表す。ここでは、Ｊａｖａ（Ｒ）プログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＯＣＡＰ１．０仕様を参照されたい。【００８３】  ＡＭ１２０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａ（Ｒ）プログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａ（Ｒ）プログラム名を抽出する。図１８を参照して、ＡＭ１２０５ｂは行１８１１のＪａｖａ（Ｒ）プログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａ（Ｒ）プログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。【００８４】  次にＡＭ１２０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、Ｊａｖａ（Ｒ）プログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリ−ストリームのパケットＩＤを取得する。【００８５】  今、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１７とすると、行１７１４のエレメンタリ−ストリームが合致し、パケットＩＤ「５０１４」を取り出す。【００８６】  ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤと出力先としてＣＰＵ５１４を指定する。ここでは、パケットＩＤ「５０１４」を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、必要なパケットを収集することができる。ＡＭ１２０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部５１１に保存する。ＭＰＥＧ２トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し１次記憶部５１１等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。【００８７】  図１９は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１９０１はルートディレクトリ、１９０２はディレクトリ「ａ」、１９０３はディレクトリ「ｂ」、１９０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１９０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」である。【００８８】  次にＡＭ１２０５ｂは、１次記憶部５１１にダウンロードしたファイルシステム中から実行するＪａｖａ（Ｒ）プログラムをＶＭ１２０３に引き渡す。今、実行するＪａｖａ（Ｒ）プログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａ（Ｒ）プログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１９を参照して、ファイル１９０４が実行すべきＪａｖａ（Ｒ）プログラムである。次にＡＭ１２０５ｂは、ファイル１９０４をＶＭ１２０３に引き渡す。【００８９】  ＶＭ１２０３は、引き渡されたＪａｖａ（Ｒ）プログラムを実行する。
サービスマネージャ１２０４は、他のチャンネルの識別子を受け取ると、ライブラリ１２０５に含まれる各ライブラリを通して再生している映像・音声及びＪａｖａ（Ｒ）プログラムの実行を、同じくライブラリ１２０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びＪａｖａ（Ｒ）プログラムの実行を行う。【００９０】  ライブラリ１２０５は、ＲＯＭ５１２に格納されている複数のＪａｖａ（Ｒ）ライブラリの集合である。本実施の形態では、ここでは、ライブラリ１２０５は、ＪＭＦ１２０５ａ、ＡＭ１２０５ｂ、Ｔｕｎｅｒ１２０５ｃ、ＣＡ１２０５ｄ、ＰＯＤ  Ｌｉｂ１２０５ｅ、ＭＡ管理部１２０５ｆ等を含んでいる。【００９１】  初期化サブプログラム８０２は、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行う、と述べたが、その詳細について述べる。【００９２】  ＯＣＡＰ１．０仕様では、前記ＥＰＧ１２０２のような、予め端末内に用意してあるプログラムの代わりに、端末装置の外部から特権的なプログラム（以下、モニタアプリと呼ぶ）をダウンロードして実行する手順が規定されている。モニタアプリの機能として、例えば電子番組表の表示がある。さらに、モニタアプリが存在し、かつそれが自動的に起動するように指定されていた場合、必ず実行しなければならいと規定されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。【００９３】  図２０は、ヘッドエンド１０１から送られてくる特殊なプログラム情報（以下ＸＡＩＴと呼ぶ）の一例を模式的に表した表である。ＸＡＩＴの構成は、図１８に示した前記ＡＩＴと類似の構成をとるため、同一構成要素に対しては同一番号を付し、説明を省略する。列２００５は、モニタアプリ識別子である。前記ＡＭ１２０５ｂにおけるＡＩＴの処理とは異なり、例えば、モニタアプリ識別子が１以上になっているもののみがモニタアプリとして扱われる。ＸＡＩＴ内にモニタアプリ識別子が１以上であるプログラムが複数存在した場合は、それら全てをモニタアプリとして扱う。詳細については後述する。【００９４】  なお、モニタアプリ識別子が１以上になっているもののみがモニタアプリとして扱われると述べたが、他の条件によってモニタアプリとして扱うかどうかを決定しても実施可能である。【００９５】  初期化サブプログラム８０２は、ＭＡ管理部１２０５ｆに対しモニタアプリの起動を指示することによって、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行う。【００９６】  図２１は、ＭＡ管理部１２０５ｆの構成の一例を示すブロック図である。
ＭＡ管理部１２０５ｆは、ＭＡ管理部メイン２１０１、ＸＡＩＴ取得解析部２１０２、ＭＡ選択部Ａ２１０３、ＭＡ起動部２１０４、ＭＡ監視部２１０５、およびＭＡ選択部Ｂ２１０６から構成される。【００９７】  ＭＡ管理部メイン２１０１は、ＭＡ管理部１２０５ｆの中心的役割を果たすものであり、初期化サブプログラム８０２からの指示を受け付け、ＭＡ管理部１２０５ｆ内の他の構成要素を用いることにより、ＭＡ管理部１２０５ｆとしての機能を実現する。【００９８】  ＸＡＩＴ取得解析部２１０２は、ＭＡ管理部メイン２１０１からの指示に従い、ヘッドエンド１０１から送られてきたＸＡＩＴを解析し、解析結果をＭＡ管理部メイン２１０１へ返す。例えば図２０に示した内容を解析結果として返す。【００９９】  ＭＡ選択部Ａ２１０３は、ＭＡ管理部メイン２１０１から渡されたＸＡＩＴの解析結果に基づき、起動すべきモニタアプリを選択し、結果をＭＡ管理部メイン２１０１へ返す。例えば、図２０で示した内容がＸＡＩＴの解析結果として渡された場合、ＭＡ選択部Ａ２１０３は、起動すべきモニタアプリとして行１８１１で示されるプログラムを選択するかもしれない。【０１００】  ＭＡ起動部２１０４は、ＭＡ管理部メイン２１０１から指定されたモニタアプリの起動を行う。例えば、図２０における行１８１１で示されるプログラムが指示された場合、モニタアプリとして「／ａ／ＭＡ１」を起動する。起動方法については、前記ＡＭ１２０５ｂの動作と同様であるため説明を省略する。【０１０１】  ＭＡ監視部２１０５は、ＭＡ管理部メイン２１０１から指定されたモニタアプリの動作状況を監視し、異常終了が発生した場合には、ＭＡ管理部メイン２１０１へ通知する。異常終了の発生を認知するための手法として、例えば、モニタアプリが投げた例外を受け取るなどで判断可能である。例外については、Ｊａｖａ（Ｒ）言語仕様で規定されているため説明を省略する。また、ＭＡ監視部２１０５は、同時に複数のモニタアプリの動作状況を監視できてもよい。【０１０２】  ＭＡ選択部Ｂ２１０６は、ＭＡ管理部メイン２１０１からの指示に従い、代替アプリを選択し、選択結果をＭＡ管理部メイン２１０１へ返す。【０１０３】  図２２は、ＭＡ管理部１２０５ｆがモニタアプリの起動を行う手順を示すフローチャートである。【０１０４】  初期化サブプログラム８０２からの指示を、ＭＡ管理部メイン２１０１が受け取ると、まず、ＭＡ管理部メイン２１０１は、ＸＡＩＴ取得解析部２１０２に対しＸＡＩＴ解析指示を出し、ＸＡＩＴ取得解析部２１０２は、ヘッドエンド１０１から送られてくるＸＡＩＴの取得を試みる（Ｓ２２０１）。さらに、ＸＡＩＴ取得解析部２１０２はＸＡＩＴを解析し（Ｓ２２０３）、解析結果をＭＡ管理部メイン２１０１へ返す。ＭＡ管理部メイン２１０１は前記解析結果を元に、ＭＡ選択部Ａ２１０３にモニタアプリの選択を依頼すると、ＭＡ選択部Ａ２１０３は、ＭＡ管理部メイン２１０１から渡された情報を元に、起動すべきモニタアプリを選択し、選択結果をＭＡ管理部メイン２１０１へ返す（Ｓ２２０４）。なお、Ｓ２２０１、またはＳ２２０３において、ＸＡＩＴの取得や解析に失敗していた場合、ＭＡ選択部Ａ２１０３は、代替プログ��ム（例えばＥＰＧ１２０２）を選択結果としてＭＡ管理部メイン２１０１へ返す。ＭＡ管理部メイン２１０１は、ＭＡ選択部Ａ２１０３から返された結果を元に、ＭＡ起動部２１０４に対しモニタアプリの起動を指示すると、ＭＡ起動部２１０４は、ＭＡ管理部メイン２１０１から指示されたモニタアプリを起動する（Ｓ２２０５）。ＭＡ管理部メイン２１０１は、さらに、ＭＡ監視部２１０５に対し、ＭＡ起動部２１０４が起動したモニタアプリの動作状況を監視するよう指示すると、ＭＡ監視部２１０５は、指示されたモニタアプリの動作状況の監視を開始する（Ｓ２２０６）。さらに、ＭＡ管理部メイン２１０１は、Ｓ２２０４において複数のモニタアプリが選択されていた場合、そのうち未だＭＡ起動部２１０４に起動を指示していないモニタアプリを選び、同様にモニタアプリの起動および監視を試みる（Ｓ２２０７）。ＭＡ管理部メイン２１０１がＳ２２０４において選択された全てのモニタアプリに対する起動および監視の指示を完了すると、モニタアプリの起動に関する処理を完了する。ここで、結果を初期化サブプログラム８０２へ返しても良い。また、Ｓ２２０４において、起動すべきモニタアプリが選択されなかった場合、ＭＡ管理部メイン２１０１は、代替プログラム（例えばＥＰＧ１２０２）が選択されたものとして、Ｓ２２０５以降の処理を行ってもよい。【０１０５】  ここで、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処理について述べる。【０１０６】  ＯＣＡＰ１．０仕様では、モニタアプリが異常終了した場合、モニタアプリの再起動を試みるように規定されている。しかし、異常終了した実績から、再起動後も再び異常終了することが十分に予想される。【０１０７】  そこで、本発明では、異常終了が予想されるモニタアプリの代わりに代替プログラムを実行させる方法について述べる。なお、代替プログラムは、予め正常動作（つまり、異常終了を起こさないこと）を保証されていることが望ましいが、保証されていなくとも実施可能である。【０１０８】  図２３は、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処理を示したフローチャートである。【０１０９】  ＭＡ監視部２１０５が監視中のモニタアプリの異常終了を検知すると（Ｓ２３０１）、ＭＡ監視部２１０５は異常終了したモニタアプリの監視を終了し（Ｓ２３０２）、ＭＡ管理部メイン２１０１に対し異常終了が発生したことを通知する（Ｓ２３０３）。【０１１０】  ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５から異常終了の通知を受けると、ＭＡ選択部Ｂ２１０６に対して代替プログラムの選択を依頼する。ＭＡ選択部Ｂ２１０６は、ＭＡ管理部メイン２１０１からの依頼に基づき代替プログラムを選択し、代替プログラムの起動に必要な情報をＭＡ管理部メイン２１０１に返す（Ｓ２３０４）。代替プログラムの起動に必要な情報とは、例えば、プログラム名、保存場所などである。【０１１１】  ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６から返された情報を元に、ＭＡ起動部２１０４に対し、代替プログラムの起動を指示する（Ｓ２３０５）。【０１１２】  ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５に対し、代替プログラム���動作状況の監視を依頼する（Ｓ２３０６）。【０１１３】  さらに、代替プログラムが異常終了した場合、前述のモニタアプリが異常終了した場合と同様の手順（Ｓ２３０１〜Ｓ２３０６）で次の代替プログラムが選択され起動される。【０１１４】  また、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、必ずしも代替プログラムの起動処理（つまりＳ２３０４以降）を行う必要はない。例えば、図２２のＳ２２０４において複数のモニタアプリが選択され、その結果として複数のモニタアプリが起動されていた場合、ＭＡ管理部メイン２１０１は、それら全てのモニタアプリが異常終了した場合のみ、代替プログラムの起動処理（つまりＳ２３０４以降）を行うことも可能である。【０１１５】  さらに、特定のモニタアプリが異常終了した場合のみ代替プログラムの起動処理を行うことも可能である。特定のモニタアプリとは、例えば図２０における列２００５モニタアプリ識別子が１と指定されたモニタアプリである。この場合、モニタアプリ識別子が２と指定されたモニタアプリが異常終了したとしても、代替プログラムの起動処理は行われなくともよい。さらにこの場合、モニタアプリ識別子が１ではないモニタアプリに対して、図２２におけるＳ２２０６の処理（つまりモニタアプリの動作状況の監視）を行わなくとも実施可能である。【０１１６】  なお、代替プログラムの例としてＥＰＧ１２０２を述べたが、起動可能であれば、他のプログラムを代替プログラムとして利用しても実施可能である。例えば、代替プログラムとして、端末装置を再起動するものや、単純にチャンネル切り替えのみを行うものであっても実施可能である。また、代替プログラムは、ＭＡ管理部メイン２１０１に対しプログラムの情報を指定することで、他の代替プログラムの起動を依頼することも可能である。例えば、代替プログラムは、先に異常終了したモニタアプリの再起動を指示し、その後、モニタアプリが起動されることも可能である。【０１１７】  なお、代替プログラムの例であるＥＰＧ１２０２は予め端末装置に用意されているものとして述べたが、予め用意されていなくとも本発明は実施可能である。例えば、代替プログラムを起動する段階において、外部からダウンロードして起動することでも実施可能である。例えば、代替プログラムをネットワーク経由でダウンロードしたり、端末装置が受信しているＭＰＥＧストリーム中からダウンロードしてもよい。これにより、予め用意されたものではないプログラムを代替プログラムとして起動可能となる。【０１１８】  なお、モニタアプリをダウンロードして実行すると述べたが、１回目のダウンロード時に２次記憶部７０５に保存しておき、２回目以降は、ダウンロードする代わりに２次記憶部７０５に保存したものを利用して起動したとしても、本発明は実施可能である。【０１１９】  なお、ＭＡ選択部Ｂ２１０６が代替プログラムとしてＥＰＧ１２０２を選択する場合について述べたが、任意の選択方式を用いて、起動可能な任意のプログラムを選択できれば実施可能である。【０１２０】  さらに、ＭＡ管理部１２０５ｆは、モニタアプリが異常終了した場合、異常終了の内容を第１記憶部５１１または第２記憶部５１０へ保存することも可能である。さらに、保存した内容を端末装置の外部へ送信することも可能である。保存する内容とは、例えば、異常終了が発生した時刻、Ｊａｖａ（Ｒ）プログラム識別子、プログラム名、異常終了の種類（例えばメモリ不足）などであるが、少なくとも異常終了が起きたことが判別できるものであれば実施可能である。また、情報端末の外部の例として、端末装置製造者や放送事業者がある。これにより、例えば端末装置の不具合で異常終了が発生した場合には端末装置製造者に送信することで、端末装置製造者が迅速な対応策を講じることが可能であり、モニタアプリの不具合で発生した場合は放送事業者に送信することで、モニタアプリの不具合を迅速に修正することが可能となる。この場合における処理を図２４に示す。なお、図２４において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。【０１２１】  図２４のＳ２３０３によってＭＡ管理部メイン２１０１がモニタアプリの異常終了を検知すると、ＭＡ管理部メイン２１０１は、その異常終了の内容を１次記憶部５１１または２次記憶部５１０へ保存する（Ｓ２４１０）。さらに、ＭＡ管理部メイン２１０１は、保存した内容を端末装置の外部へ送信する。その後、ＭＡ管理部メイン２１０１は、Ｓ２３０４以降の処理を継続する。【０１２２】  なお、送信手段については、端末装置外部へ情報を伝達できるものであれば実施可能である。例えば、周知の技術であるＦＴＰやＥ−ｍａｉｌなどを利用して保存内容を送信することが可能である。【０１２３】  なお、２次記憶部５１０として、着脱可能な記憶装置を利用しても実施可能である。この場合、外部への送信を行わず、着脱可能な記憶装置を、何らかの輸送手段を用いて輸送することでも実施可能である。【０１２４】  なお、本実施の形態では、ＲＯＭ５１２が保存する内容を２次記憶部５１０が保存することで、ＲＯＭ５１２を削除することも実施可能である。また、２次記憶部５１０は、複数のサブ２次記憶部で構成し、個々のサブ２次記憶部が異なる情報を保存しても実施可能である。例えば、１つのサブ２次記憶部はチューニング情報のみを保存し、別のサブ２次記憶部は、ＯＳ１２０１のライブラリ１２０１ｂを保存し、更に別のサブ２次記憶部は、ダウンロードしたＪａｖａ（Ｒ）プログラムを保存するなど、詳細に分割することが可能である。【０１２５】  また、本実施の形態では、登録されたＪａｖａ（Ｒ）プログラムを２次記憶部５１０に保存していたが、１次記憶部５１１に保存することも実施可能である。１次記憶部５１１に保存する場合、電源ＯＦＦ時に、保存された情報は全て消える。【０１２６】  （実施の形態２）
実施の形態１では、例として、ＭＡ選択部Ｂ２１０６が代替プログラムとしてＥＰＧ１２０２を選択する場合について述べたが、本実施の形態では、さらに、他の選択方式として、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択する場合について述べる。【０１２７】  これは、例えば、ＭＡ管理部１２０５ｆが、モニタアプリが異常終了したとしても、何らかの判断根拠に基づき、同じモニタアプリを再起動する場合である。判断根拠とは、例えば、異常終了の原因に対する回避策を予め知っており、異常終了後、その回避策を講じることで再起動後の正常動作が期待できる場合である。回避策とは、例えば、メモリ不足によってモニタアプリが異常終了した場合、他のプログラムを終了させることなどにより、モニタアプリが利用可能なメモリ容量を確保することである。【０１２８】  本実施の形態では、ＭＡ監視部２１０５は、モニタアプリの異常終了が発生した際に、異常終了の発生の通知とともに、モニタアプリが異常終了した原因を示す例えばコードをＭＡ管理部メイン２１０１へ通知する。ＭＡ管理部メイン２１０１は、コード（異常終了した原因）に対応した回避策をあらかじめテーブル等に保持しており、通知されたコードに対応した回避策を決定し、決定した回避策を実施する。【０１２９】  本実施の形態における動作手順を図２５に示す。
図２５において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。【０１３０】  Ｓ２３０３において、ＭＡ監視部２１０５は、モニタアプリの異常終了が発生したことを通知するとともに、モニタアプリが異常終了した原因を示すコードをＭＡ管理部メイン２１０１へ通知する。そして、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、異常終了したモニタアプリを選択し、モニタアプリの起動に必要な情報をＭＡ管理部メイン２１０１に返す（Ｓ２５１０）。モニタアプリの起動に必要な情報とは、図２２のＳ２２０４で返された情報、またはその一部、および付加情報である。付加情報として、例えば、選択されたモニタアプリが異常終了した回数や、選択されたモニタアプリが代替プログラムとして選択された回数などである。この場合、ＭＡ選択部Ｂ２１０６は、モニタアプリが異常終了した回数を保持するために、例えば１次記憶部５１１に情報を保持する。図２６（ａ）、（ｂ）及び（ｃ）は、１次記憶部５１１に保持しているデータを模式的に表した表である。列２６０１は、Ｊａｖａ（Ｒ）プログラム識別子であり、列２６０２は、Ｊａｖａ（Ｒ）プログラム識別子で示されるプログラムが異常終了した回数である。行２６１１および行２６１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。例えば、図２６（ａ）を参照して、行２６１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、プログラムが異常終了した回数「０」の組である。行２６１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０２」、プログラムが異常終了した回数「０」の組である。【０１３１】  図２６（ａ）は、図２３におけるＳ２３０３を処理する前の保持内容である。図２５のＳ２３０３においてＪａｖａ（Ｒ）識別子が３０１であるモニタアプリの異常終了が通知された場合、１次記憶部５１１に保持されるデータは、図２６（ｂ）のように変化する。なお、付加情報が無くとも実施可能である。【０１３２】  ＭＡ管理部メイン２１０１は、通知されたコードに対応した回避策を決定し、決定した異常終了の原因に対する回避策を実施する（Ｓ２５１１）。その後、Ｓ２３０５以降の処理を行う。【０１３３】  本手順により、モニタアプリが異常終了した後、再度、同一のモニタアプリを起動することが可能となる。【０１３４】  （実施の形態３）
実施の形態２では、例として、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択する場合について述べたが、本実施の形態では、他の選択方式として、異常終了の回数がＮ回までは、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択し、Ｎ＋１回目以降は、他のプログラム（例えばＥＰＧ１２０２など）を選択しても良い。【０１３５】  ここでは、Ｎ＝２の場合であり、かつ、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが異常終了した時に代替プログラムを選択する場合について説明する。【０１３６】  図２７は、本実施の形態における動作手順を示したものである。
図２７において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。【０１３７】  Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが１回目の異常終了を起こした場合、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、異常終了の回数をカウントする（ステップＳ２７０１）。すなわち、１次記憶部５１１に保存してある内容を図２６（ａ）から図２６（ｂ）のように変更する。次に、図２６に示したプログラムが異常終了した回数を参照し、異常終了回数が所定回数（Ｎ回）以上であるか否かを判定する（ステップＳ２７０２）。ここで、異常終了回数が所定回数（Ｎ回）以上でない場合（ステップＳ２７０２でＮｏ）には、ＭＡ選択部Ｂ２１０６は、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリを選択し（ステップＳ２７０４）、以後、Ｓ２３０５以降の処理が行われる。一方、異常終了回数が所定回数（Ｎ回）以上である場合（ステップＳ２７０２でＹｅｓ）には、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリ以外のプログラム（例えばＥＰＧ１２０２など）を選択し（ステップＳ２７０３）、以後、Ｓ２３０５以降の処理が行われる。【０１３８】  ここの例では、図２６（ｂ）の列２６０２を参照して、これまでの異常終了回数が１回であることが分かる。よって、ＭＡ選択部Ｂ２１０６は、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリを選択する。以後、Ｓ２３０５以降の処理が行われる。【０１３９】  次に、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが２回目の異常終了を起こした場合、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、１次記憶部５１１に保存してある内容を図２６（ｂ）から図２６（ｃ）のように変更する。次に、図２６に示したプログラムが異常終了した回数を参照する。この時、図２６（ｃ）の列２６０２を参照して、これまでの異常終了回数が２回であることが分かる。ここで、ＭＡ選択部Ｂ２１０６は、既に所定回数（この場合２回）に達したため、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリ以外のプログラム（例えばＥＰＧ１２０２など）を選択する。以後、Ｓ２３０５以降の処理が行われる。【０１４０】  これにより、Ｊａｖａ（Ｒ）プログラム識別子が３０１の異常終了に対し、１回目まではＪａｖａ（Ｒ）プログラム識別子が３０１を再起動し、２回目以降はモニタアプリ以外のプログラムを起動することが可能となる。【０１４１】  なお、ここではＮ＝２の場合について説明したが、Ｎは１以上の整数であれば実施可能である。【０１４２】  （実施の形態４）
実施の形態１〜３では、ＭＡ選択部Ｂ２１０６が代替プログラムの選択方式として、選択するプログラムが予め決められている場合について述べたが、他の選択方式として、選択候補となるプログラムの一覧を視聴者に提示し、視聴者に選択させる方法をとっても良い。【０１４３】  図２８は、本実施の形態における動作手順を示したものである。なお、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。【０１４４】  Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、代替プログラムとして選択可能なプログラムの一覧を作成する（Ｓ２８１０）。次に、ＭＡ選択部Ｂ２１０６は、作成したプログラムの一覧を、視聴者に提示し、選択を促す（Ｓ２８１１）。ＭＡ選択部Ｂ２１０６は、視聴者の選択に基づき、代替プログラムを決定する（Ｓ２８１２）。以後、Ｓ２３０５以降の処理が行われる。【０１４５】  ここで、図２９は、Ｓ２８１０において作成した代替プログラムとして選択可能なプログラムの一覧の一例を模式的に表した表である。列２９０１はＪａｖａ（Ｒ）プログラムの識別子である。列２９０２はプログラム名である。行２９１１と行２９１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。行２９１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、プログラム名「ＭＡ１」の組である。行２９１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「７０１」、プログラム名「ＥＰＧ」の組である。【０１４６】  なお、図２９で表した表の内容でなくとも、ＭＡ選択部Ｂ２１０６がプログラムを識別できる情報が含まれていれば、他の内容を用いても実施可能である。【０１４７】  また、一覧に含まれるプログラムは、起動可能であれば、どこに存在していても実施可能である。【０１４８】  図３０は、Ｓ２８１０において視聴者に提示される表示の一例を示したものである。ここでは、ディスプレイ５０９に、ダイアログ３００１が表示されている。視聴者は、表示されたプログラムの一覧からプログラムを選択する。例えば、リモコンの「１」ボタンを押すことで「ＭＡ１」を選択する。その場合、ＭＡ選択部Ｂ２１０６は、視聴者が識別子「３０１」のプログラムを選択したことが分かるので、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、識別子「３０１」を持つプログラムを代替プログラムとして決定する。また、視聴者がリモコンの「２」ボタンを押すことで「ＥＰＧ」を選択した場合、ＭＡ選択部Ｂ２１０６は、視聴者が識別子「７０１」のプログラムを選択したことが分かるので、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、識別子「７０１」を持つプログラムであるＥＰＧ１２０２を代替プログラムとして決定する。【０１４９】  なお、少なくとも視聴者がプログラムを識別できる情報が含まれていれば、他の内容を用いても実施可能である。【０１５０】  また、少なくとも視聴者がどのプログラムを選択したかがＭＡ選択部Ｂ２１０６へ伝わるのであれば、どのような表示形態、および選択方法を用いても、実施可能である。【０１５１】  また、ＭＡ選択部Ｂ２１０６は、ある条件を満たすことで、視聴者の選択を待つことなく、代替プログラムを決定する手も実施可能である。例えば、視聴者に提示した後、３０秒経過しても視聴者が選択しなかった場合、ＭＡ選択部Ｂ２１０６は代替プログラムとして識別子「７０１」を持つプログラムであるＥＰＧ１２０２を代替プログラムとして決定することが可能である。【０１５２】  （実施の形態５）
実施の形態１〜３において、ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５から異常終了通知を受け取った際、視聴者に対し、異常終了の発生を通知してもよい。【０１５３】  図３１は、視聴者に対する通知方法の一例を示したものである。例えば、端末装置本体の７セグＬＥＤ３１０２に表示したり、または、端末装置本体のランプ３１０１を点灯することによって通知可能である。【０１５４】  図３２は、ディスプレイ５０９に表示することでモニタアプリの異常終了を通知する場合の表示の一例である。ダイアログ３２０１内に視聴者に対するメッセージを記述し、ダイアログ３２０１をディスプレイ５０９に表示することで、視聴者に対し、異常終了の発生を通知できる。【０１５５】  なお、例として図３１、図３２に示した方法でなくとも、視聴者が認識可能な方法で提示すれば実施可能である。【０１５６】  （実施の形態６）
本実施の形態では、ヘッドエンド１０１から取得したＸＡＩＴの情報を元に起動されたＪａｖａ（Ｒ）プログラムが、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムと置き換わって、ＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムとして登録され、ＰＯＤ５０４内のサブプログラムとメッセージを送受信できるような特殊なモニタアプリである場合について記述する。【０１５７】  例えば、Ｊａｖａ（Ｒ）プログラムを、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムであるダイアログ表示プログラムと置き換えることによって、そのＪａｖａ（Ｒ）プログラムは、ＰＯＤ５０４内のサブプログラムであるＰＰＶサブプログラム８０５とメッセージの送受信を行うことが可能である。【０１５８】  他の実施の形態とは異なり、本実施の形態の場合、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムは常に動作し続け、Ｊａｖａ（Ｒ）プログラムが登録された場合においても、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムは終了されなくても良い。ただし、この場合においても、登録されたＪａｖａ（Ｒ）プログラムが異常終了した場合、再度そのＪａｖａ（Ｒ）プログラムを実行させたとしても、再び異常終了することが十分に予想されるため、ユーザの要求（例えばＰＰＶの視聴）を妨げることになる。本実施の形態では、この課題に対する本発明の適用について述べる。【０１５９】  本実施の形態においては、まず、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムと置き換わってＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムの、登録処理および登録削除処理について説明し、次に、本題であるＪａｖａ（Ｒ）プログラムが異常終了した場合における処理について記述する。【０１６０】  図３３は、本実施の形態におけるＪａｖａ（Ｒ）プログラムに関するＸＡＩＴの情報の一例である。図３３において、図２０と同一要素に対しては同一番号を付し、説明を省略する。列３３１１と列３３１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。列３３１１で定義されるＪａｖａ（Ｒ）プログラムは、Ｊａｖａ（Ｒ）プログラム識別子「７０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「／ａ／ＰＰＶ１Ｘｌｅｔ」、モニタアプリ識別子「１」の組である。列３３１２で定義されるＪａｖａ（Ｒ）プログラムは、Ｊａｖａ（Ｒ）プログラム識別子「７０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「／ｂ／ＰＰＶ２Ｘｌｅｔ」、モニタアプリ識別子「２」の組である。ここでは、Ｊａｖａ（Ｒ）プログラムに対して５つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。【０１６１】  ここで、行３３１１で表されるＪａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」はＰＯＤ５０４が内部に持つＰＰＶサブプログラム８０５と連携して、ＰＰＶ対象の番組情報を表示するプログラムとする。端末装置５００に、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」が無いときは、ＰＰＶサブプログラム８０５が端末装置５００のＣＰＵ５１４に対し画面に表示したい情報を送ると、ＯＳ１２０１のライブラリ１２０２ｂに含まれるダイアログ表示プログラムが、図３４��示すような番組購入を促すメメッセージをディスプレイ５０９に表示する。３４０１はダイアログボックスであり、メッセージ３４０２、４桁の暗証番号を入力するための暗証番号ボックス３４０３、ＯＫボタン３４０４、取消ボタン３４０５の表示要素を持つ。しかしながら、この表示では、番組内容が不明なため、ユーザは番組ガイドなどの本を参照するなどして番組内容を確認する必要があり不便である。【０１６２】  端末装置５００上において、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」が起動されると、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」は、Ｊａｖａ（Ｒ）ライブラリ１２０５のＰＯＤ  Ｌｉｂ１２０５ｅに対し、自身をＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムとして登録する。登録の際、自身のＪａｖａ（Ｒ）プログラムのモジュール識別子として「ＰＰＶ」も同時に登録する。ＰＯＤ  Ｌｉｂ１２０５ｅは登録された内容を２次記憶部５１０に記憶する。図３５は、２次記憶部５１０が、登録された、ＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムの情報を保存している状態の一例である。この例では、表形式で保存しており、列３５０１はＪａｖａ（Ｒ）プログラムのモジュール識別子、列３５０４はＪａｖａ（Ｒ）プログラムの名前を記憶している。行３５１１および行３５１２は、登録されているＪａｖａ（Ｒ）プログラムを表す。行３５１１は、モジュール識別子「ＰＰＶ」、Ｊａｖａ（Ｒ）プログラムの名前「ＰＰＶ１Ｘｌｅｔ」の組である。行２３１２は、モジュール識別子「ＶＯＤ」、Ｊａｖａ（Ｒ）プログラムの名前「ＶＯＤＸｌｅｔ」の組である。なお、ここではＪａｖａ（Ｒ）プログラムのモジュール識別子３５０１およびＪａｖａ（Ｒ）プログラムの名前３５０４を保存しているが、少なくともＪａｖａ（Ｒ）プログラムのモジュール識別子および、登録されたＪａｖａ（Ｒ）プログラムを一意に特定できる情報が保存されていれば実施可能である。【０１６３】  ＰＯＤ  Ｌｉｂ１２０５ｅが、登録されたＪａｖａ（Ｒ）プログラムの情報をＰＯＤ５０４に通知することによって、ＰＯＤ５０４内のサブプログラムと、登録されたＪａｖａ（Ｒ）プログラム間でメッセージの送受信が可能となる。例えば、ＰＯＤ５０４内のＰＰＶサブプログラム８０５は、図３５の行３５１１で示される登録されたＪａｖａ（Ｒ）プログラムに、ＰＰＶ購入対象の番組内容を送り、そのＪａｖａ（Ｒ）プログラムは、ダイアログ表示プログラムの代わりに、図３６のようにディスプレイ５０９に表示を行うことができる。ここでは、３６０１は、登録されたＪａｖａ（Ｒ）プログラムによって、番組情報、およびダイアログ表示プログラムと同等の表示を行われたものである。【０１６４】  ただし、ここではＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムは何も表示していないが、実際には登録されたＪａｖａ（Ｒ）プログラムと一緒に実行されていても良い。この際、ＰＯＤ５０４からは、登録されたＪａｖａ（Ｒ）プログラムの種別を参照してメッセージを送る相手のＪａｖａ（Ｒ）プログラムを識別している。具体的には、ＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムがモジュール識別子「ＰＰＶ」を持ち、登��するＪａｖａ（Ｒ）プログラムに、ＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムと同じモジュール識別子「ＰＰＶ」を持たせ、ＰＯＤ５０４はこのモジュール識別子を参照してメッセージを送受信する相手のＪａｖａ（Ｒ）プログラムを識別している。【０１６５】  本実施の形態においては、ＰＯＤ５０４の各サブプログラムは、同一モジュール識別子を持つ複数のプログラムに対し同時にメッセージの送受信が不可能である（つまり、あるモジュール識別子に対して、ＰＯＤ５０４の各サブプログラムが送受信できるプログラムは最大でも１つしか許されない）ものとする。【０１６６】  図３７は、ＰＯＤ  Ｌｉｂ１２０５ｅにＪａｖａ（Ｒ）プログラムが登録される場合におけるＰＯＤ  Ｌｉｂ１２０５ｅの動作をまとめたフローチャートである。【０１６７】  ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムとのメッセージの配送（送信／受信の少なくとも一方をまたは両方を含む）の登録を受け付けると、２次記憶部５１０へ必要な情報（例えば図３５に示すような情報）を保存し（ステップＳ３７０１）、ステップＳ３７０１において登録を受け付けＪａｖａ（Ｒ）プログラムのモジュール識別子と、既に２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムおよびライブラリ１２０１ｂ内のプログラムのモジュール識別子とを比較することで、登録を受け付けたＪａｖａ（Ｒ）プログラムのモジュール識別子と同じモジュール識別子のプログラムが存在するかどうかを判定する（ステップＳ３７０２）。【０１６８】  その結果、同じモジュール識別子のプログラムが存在する場合（ステップＳ３７０２でＹｅｓの場合）は、ＰＯＤ  Ｌｉｂ１２０５ｅは、それまでメッセージ配送を行っていた対象、具体的には、２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムまたはＯＳ１２０１のライブラリ１２０１ｂ内のプログラムに対して、メッセージ配送が停止することを事前通知する（ステップＳ３７０３）。【０１６９】  停止の通知を受けたＪａｖａ（Ｒ）プログラムやＯＳ１２０１のライブラリ１２０１ｂは、必要な処理（ＰＯＤ５０４とのメッセージの配送の停止（つまりメッセージの配送の登録を非登録とすること）をするために必要な内部処理）を終了したあと、ＰＯＤ  Ｌｉｂ１２０５ｅにメッセージ送信の停止の了解を通知する（ステップＳ３７０４）。【０１７０】  その了解通知を受けたＰＯＤ  Ｌｉｂ１２０５ｅは、ＰＯＤ５０４と、既存の（２次記憶部５１０に既に登録されており、ＰＯＤ５０４とのメッセージの配送の停止の対象となっている）Ｊａｖａ（Ｒ）プログラムまたはＯＳ１２０１のライブラリ１２０１ｂ内のプログラムとのメッセージ配送の登録を削除（つまり非登録）し、そのプログラムとのメッセージ配送を停止する（ステップＳ３７０５）。そして、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムに対しメッセージ配送を開始する旨の通知する（ステップＳ３７０６）。その後、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムへのＰＯＤ５０４からのメッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする（ステップＳ３７０７）。��０１７１】  一方、同じモジュール識別子のプログラムが存在しない場合（ステップＳ３７０２でＮｏの場合）は、ＰＯＤ  Ｌｉｂ１２０５ｅは、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムに対してメッセージ配送を開始する旨を通知した後に（ステップＳ３７０６）、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムへのＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする（ステップＳ３７０７）。【０１７２】  図３８、図３９は、本動作のフローチャート（図３７）に基づいて、ＰＯＤ５０４とのメッセージの配送先の変化を表す模式図である。図３８（ａ）は、Ｊａｖａ（Ｒ）プログラムが登録されていない状態を表し、ＰＯＤ５０４とのメッセージ配送がＯＳ１２０１のライブラリ１２０１ｂ（より具体的には、例えばライブラリ１２０１ｂのダイアログ表示プログラム）と行われている。矢印３８０１は、メッセージ配送を表す。図３８（ａ）の状態で、ＯＳ１２０１のライブラリ１２０１ｂ内のプログラムと同一のモジュール識別子を持つＪａｖａ（Ｒ）プログラム３８１１が登録されると、図３７のフローチャートに従って、矢印３８０１で表されるＰＯＤ５０４とライブラリ１２０１ｂとのメッセージ配送を停止し、ＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３８１１とのメッセージの配送が設定され、図３８（ｂ）の状態になる。【０１７３】  図３９（ａ）は、Ｊａｖａ（Ｒ）プログラム３９１１が登録され、ＰＯＤ５０４とのメッセージ配送が、登録されているＪａｖａ（Ｒ）プログラム３９１１と行われている状態を表す。矢印３９０１は、メッセージ配送を表す。図３９（ａ）の状態で、Ｊａｖａ（Ｒ）プログラム３９１１と同一モジュール識別子を持つＪａｖａ（Ｒ）プログラム３９１２が登録されると、図３７のフローチャートに従って、矢印３９０１で表されるＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３９１１とのメッセージの配送を停止し、ＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３９１２とのメッセージの配送が設定され（矢印３９０２）、図３９（ｂ）の状態になる。【０１７４】  また、ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの登録を受け付けると共に、登録の削除（つまり非登録の要求）も受け付ける。【０１７５】  図４０は、ＰＯＤ  Ｌｉｂ１２０５ｅがＪａｖａ（Ｒ）プログラムの登録を削除する（つまり２次記憶部５１０に登録されているＪａｖａ（Ｒ）プログラムとのメッセージの配送の登録を非登録とする）場合におけるＰＯＤ  Ｌｉｂ１２０５ｅの動作をまとめたフローチャートである。【０１７６】  ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの削除を受け付けると（ステップＳ４００１）、削除の対象となるＪａｖａ（Ｒ）プログラムに対して、メッセージの配送が停止することを事前通知する（ステップＳ４００２）。通知を受けＪａｖａ（Ｒ）プログラムは、必要な処理（ＰＯＤ５０４とのメッセージ配送の停止（つまりメッセージ配送の登録を非登録とすること）前にすべき必要な内部処理）を終了したあと、ＰＯＤ  Ｌｉｂ１２０５ｅにメッセージの配送の停止の了解を通知する（ステップＳ４００３）。その了解通知��受けたＰＯＤ  Ｌｉｂ１２０５ｅは、２次記憶部５１０に登録されたＪａｖａ（Ｒ）プログラムのうち要求された削除の対象となっているＪａｖａ（Ｒ）プログラムへのメッセージ配送の登録を削除する（つまり非登録とする）ことにより、ＰＯＤ５０４と、対象となるＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止する（ステップＳ４００４）。そして、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことで、ＰＯＤ５０４とＯＳ１２０１のライブラリ１２０１ｂ（より具体的には、その中に含まれる、削除の対象となるＪａｖａ（Ｒ）プログラムと同じモジュール識別子を持つプログラム）とのメッセージの配送を有効にする（ステップＳ４００５）。ここで、もし、ＯＳ１２０１のライブラリ１２０１ｂ内のプログラムのうち、削除の対象となるＪａｖａ（Ｒ）プログラムと同じモジュール識別子を持つプログラムが動作していないならば、同じモジュール識別子を持つプログラムを起動した後にメッセージの配送を有効にすることで同様の動作が可能となる。【０１７７】  また、ステップＳ４００５において２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムまたは新たに登録されたＪａｖａ（Ｒ）プログラムがあり、これらのＪａｖａ（Ｒ）プログラムのいずれか１つとのメッセージの配送を行いたい（または行える）場合には、ＰＯＤ５０４と対象となるＪａｖａ（Ｒ）プログラムとのメッセージの配送を受け付ける登録を行うことで対象となるＪａｖａ（Ｒ）プログラムとのメッセージの配送を有効にするようにしても良い。【０１７８】  次に、本題であるＪａｖａ（Ｒ）プログラムが異常終了した場合における処理について記述する。【０１７９】  図３８（ｂ）の状態において、Ｊａｖａ（Ｒ）プログラム３８１１が異常終了した場合の処理について述べる。図４１を参照して、ＭＡ管理部１２０５ｆは、その異常終了を検知するとともに、ＰＯＤ  Ｌｉｂ１２０５ｅに対し異常終了した旨を通知する。図４２は、その際の動作をまとめたフローチャートである。図２３と同一の処理については同一番号を付し、説明を省略する。ＭＡ監視部２１０５が監視中のモニタアプリ（ここではＪａｖａ（Ｒ）プログラム３８１１）の異常終了を検知すると（Ｓ２３０１）、ＭＡ監視部２１０５は異常終了したモニタアプリの監視を終了し（Ｓ２３０２）、ＭＡ管理部メイン２１０１に対し異常終了が発生したことを通知する（Ｓ２３０３）。ＭＡ管理部メイン２１０１は、ＰＯＤ  Ｌｉｂ１２０５ｅに対し、モニタアプリの終了を通知する（Ｓ４２０４）。【０１８０】  ＰＯＤ  Ｌｉｂ１２０５ｅは、異常終了の通知を受け取ると、異常終了したＪａｖａ（Ｒ）プログラム３８１１とのメッセージ配送の登録を削除する処理を行う。図４３は、その際の動作をまとめたフローチャートである。ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの異常終了を受け取ると（Ｓ４３０１）、ＰＯＤ５０４とそのＪａｖａ（Ｒ）プログラムとのメッセージ配送の登録を削除する（つまり非登録とする）ことにより、ＰＯＤ５０４とそのＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止する（ステップＳ４３０２）。そして、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことでＯＳ１２０１のライブラリ１２０１ｂとのメッセージの配送を有効にする（ステップＳ４３０４）。【０１８１】  また、図３９（ｂ）のように、２次記憶部５１０に、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラム（ここでは３９１１を意味する）が記憶されている場合について述べる。Ｊａｖａ（Ｒ）プログラム３９１２が異常終了した場合、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録するのではなく、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラム３９１２を登録しても良い。図４４は、その際の動作をまとめたフローチャートである。図４３と同一処理については、同一番号を付し、説明を省略する。ＰＯＤ５０４と異常終了したＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止すると（ステップＳ４３０２）、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラムが存在しているかどうかを調べる（Ｓ４４０３）。存在している場合（Ｓ４４０３でＹｅｓの場合）、そのＪａｖａ（Ｒ）プログラムを登録する。この登録処理は図３７で示したフローチャートに従い、Ｓ３７０２においてＮｏの場合の処理となる。他のＪａｖａ（Ｒ）プログラムが存在しない場合、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことでＯＳ１２０１のライブラリ１２０１ｂとのメッセージの配送を有効にする（ステップＳ４３０４）。【０１８２】  なお、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラムが存在している場合においても、図４３に示した処理を行っても（つまりＳ５０４の処理へ移行しても）良い。【０１８３】  なお、本実施の形態においては、ＰＯＤ５０４内のＰＰＶサブプログラム８０５とＪａｖａ（Ｒ）プログラムがメッセージ交換を行い、動作を行うこととしているが、ＰＰＶに限らず、ＰＯＤ５０４上のいかなるサブプログラムと、端末装置５００上のいかなるＪａｖａ（Ｒ）プログラムの間でメッセージ交換を行い、動作することに対しても適応可能である。また、Ｊａｖａ（Ｒ）プログラムはＪａｖａ（Ｒ）仕様で規定される書式に基づいた形式の部分と、ＣＰＵが直接実行できる形式の部分の混合でもよいし、ＣＰＵが直接実行できる形式のみで構成されていても実施可能である。【０１８４】  なお、本実施の形態においては、登録されたＪａｖａ（Ｒ）プログラムに関連する内容を２次記憶部５１０に保存したが、１次記憶部５１１に保存しても実施可能である。【０１８５】  本実施の形態により、ＰＯＤ５０４とのメッセージ送受信を行えるよう登録されたＪａｖａ（Ｒ）プログラムが異常終了した場合においても、ＯＳ１２０１のライブラリ１２０１ｂのプログラムとのメッセージ送受信を再開することで、ＰＯＤ５０４は端末上のプログラムとのメッセージ送受信を継続することができる。
【産業上の利用可能性】
【０１８６】  本発明に係るプログラム実行装置は、デジタルテレビ受信機の動作の安定性向上に対して有用であり、またデジタルテレビ受信機に限らずパーソナルコンピュータや携帯電話など、ソフトウエアによって制御される情報機器の動作の安定性向上に対しても応用できる。
【図１】
2005099250.tif 000002
【図２】
2005099250.tif 000003
【図３】
2005099250.tif 000004
【図４】
2005099250.tif 000005
【図５】
2005099250.tif 000006
【図６】
2005099250.tif 000007
【図７】
2005099250.tif 000008
【図８】
2005099250.tif 000009
【図９】
2005099250.tif 000010
【図１０】
2005099250.tif 000011
【図１１】
2005099250.tif 000012
【図１２】
2005099250.tif 000013
【図１３】
2005099250.tif 000014
【図１４】
2005099250.tif 000015
【図１５】
2005099250.tif 000016
【図１６】
2005099250.tif 000017
【図１７】
2005099250.tif 000018
【図１８】
2005099250.tif 000019
【図１９】
2005099250.tif 000020
【図２０】
2005099250.tif 000021
【図２１】
2005099250.tif 000022
【図２２】
2005099250.tif 000023
【図２３】
2005099250.tif 000024
【図２４】
2005099250.tif 000025
【図２５】
2005099250.tif 000026
【図２６】
2005099250.tif 000027
【図２７】
2005099250.tif 000028
【図２８】
2005099250.tif 000029
【図２９】
2005099250.tif 000030
【図３０】
2005099250.tif 000031
【図３１】
2005099250.tif 000032
【図３２】
2005099250.tif 000033
【図３３】
2005099250.tif 000034
【図３４】
2005099250.tif 000035
【図３５】
2005099250.tif 000036
【図３６】
2005099250.tif 000037
【図３７】
2005099250.tif 000038
【図３８】
2005099250.tif 000039
【図３９】
2005099250.tif 000040
【図４０】
2005099250.tif 000041
【図４１】
2005099250.tif 000042
【図４２】
2005099250.tif 000043
【図４３】
2005099250.tif 000044
【図４４】
2005099250.tif 000045
【手続補正書】
【提出日】平成17年12月13日(2005.12.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】  プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と、
前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、
前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、
前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行する
ことを特徴とするプログラム実行装置。
【請求項２】  前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】  前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項４】  前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項５】  前記第２プログラム選択手段は、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの異常終了の回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの異常終了の回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項６】  前記第２プログラム選択手段は、選択した前記プログラムの選択回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの選択回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの選択回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項７】  前記第２プログラム選択手段は、時刻情報を前記所定条件とする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項８】  前記第２プログラム選択手段は、利用者の指示を受け付けたか否かを前記所定条件とし、前記利用者の指示を受け付けていない場合には前記所定条件を満たさないと、前記利用者の指示を受け付けた場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項９】  前記第２プログラム選択手段は、不揮発性メモリ上に存在するプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１０】  前記第１プログラム選択手段または前記第２プログラム選択手段は、ネットワークを経由して取得可能なプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１１】  前記第１プログラム選択手段または前記第２プログラム選択手段は、放送波に含まれるプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１２】（削除）
【請求項１３】  前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１４】  前記プログラム監視手段は、異常終了の発生をＬＥＤ表示として利用者に提示する
ことを特徴とする請求項１３記載のプログラム実行装置。
【請求項１５】  前記プログラム監視手段は、異常終了の発生をディスプレイ上の表示として利用者に提示する
ことを特徴とする請求項１３記載のプログラム実行装置。
【請求項１６】  プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項１７】  前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項１８】  前記第２プログラム選択手段は、選択可能なプログラムの候補として不揮発性メモリ上に存在するプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項１９】  前記第２プログラム選択手段は、選択可能なプログラムの候補としてネットワーク経由で取得可能なプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２０】  前記第２プログラム選択手段は、選択可能なプログラムの候補として放送波に含まれるプログラムを少なくとも提示する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２１】  前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択する
ことを特徴とする請求項１７記載のプログラム実行装置。
【請求項２２】  プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項２３】  プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項２４】  前記プログラム監視手段は、異常終了を検知した前記プログラムに関する情報を記録する
ことを特徴とする請求項１、請求項１６、請求項２２、および請求項２３のいずれか１項に記載のプログラム実行装置。
【請求項２５】  前記プログラム監視手段は、前記情報を着脱可能な記録媒体に記録する
ことを特徴とする請求項２４記載のプログラム実行装置。
【請求項２６】  前記プログラム監視手段は、前記情報を外部に送信する
ことを特徴とする請求項２４記載のプログラム実行装置。
【請求項２７】  プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと、
前記プログラム監視ステップにおいて異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得ステップと、
前記異常終了の原因に基づいて回避策を実行する回避策実行ステップとを含み、
前記実行ステップでは、前記回避策実行ステップにおいて前記回避策が実行された後、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する
ことを特徴とするプログラム実行方法。
【請求項２８】  実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
前記プログラム監視ステップにおいて異常終了が検知された前記実行プログラムの異常終了の原因を取得する原因取得ステップと、
前記異常終了の原因に基づいて回避策を実行する回避策実行ステップとをコンピュータに実行させ、
前記実行ステップでは、前記回避策実行ステップにおいて前記回避策が実行された後、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する
プログラムを格納したことを特徴とする記録媒体。
【請求項２９】  プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項３０】  実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、利用者の指示に基づいて前記実行プログラムと同じ種類の実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【請求項３１】  プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項３２】  実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行う実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【請求項３３】  プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項３４】  プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムであって、電子番組表を表示する実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
［０００７］
従来の技術を用いることにより、アプリケーションをダウンロードおよび実行させた後、そのアプリケーションのライフサイクルを監視し、異常終了を検知することが可能であり、さらに、異常終了したアプリケーションを再実行させることが可能である。
【特許文献１】特表２００１−５１９６２７号公報
【特許文献２】特表２００３−５０４７５３号公報
【発明の開示】
【発明が解決しようとする課題】
［０００８］
しかしながら、従来の技術においては、異常終了を起こしたアプリケーションを再実行させるため、再度アプリケーションが異常終了を起こす確率が高く、ＳＴＢを利用して番組を視聴する視聴者に対する利便性を損ねる要因となっていた。
［０００９］
そこで、本発明は上記の事情に鑑みてなされたものであり、実行中のアプリケーション（プログラム）が異常終了したとしても、アプリケーションが利用できなることを防止し、利用者の利便性を向上することができるプログラム実行装置を提供することを目的とする。
【課題を解決するための手段】
［００１０］
上記目的を達成するため、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行することを特
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
徴とする。これによって、実行中のプログラムが異常終了したとしても、代替プログラムとして、同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。ここで、同じ種類のプログラムとは、例えば電子番組表を表示する等の機能が同一であり、利用者による操作性、または表示する情報の情報量や表示形式などの表示性等が相違するプログラム等である。なお、同じ種類のプログラムには、異常終了したプログラムと同じプログラムも含むものとする。
［００１１］
また、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、代替プログラムとして、異常終了したプログラムと同じ種類で、かつ異なるプログラムを実行することできる。
［００１２］
また、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択してもよい。これによって、異常終了したプログラムと同じプログラムを再び実行することできる。
［００１３］
また、前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、一定期間だけ最初と同じプログラムを起動し、その後は別のプログラムを実行させることが可能となる。
［００１４］
また、前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示してもよい。これによって、利用者は実行中のプログラムの異常終了が発生したことを認識することが可能となる。
［００１５］
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プロ
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
グラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。これによって、利用者が指示したプログラムを実行することが可能となる。
［００１６］
また、前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択してもよい。これによって、利用者が選択したプログラムを実行することが可能となる。一方、利用者は実行させるプログラムを決定することが容易になる。
［００１７］
また、前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択してもよい。これによって、利用者からの選択が所定の時間内に行われなくても、プログラムを選択することが可能となる。
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。
［００１８］
なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、このようなプログラム実行装置が備える特徴的な手段をステップとするプログラム実行方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
［００１９］
本発明に係るプログラム実行装置によれば、実行中のプログラムが異常終了したとしても、代替プログラムとして、異常終了したプログラムと同じプログラム、または同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。よって、アプリケーション（プログラム）が利用できなることを防止し、利用者の利便性を向上することができる。
【図面の簡単な説明】
［００２０］
［図１］本発明に係るケーブルテレビシステムの実施の形態１の構成図である。
［図２］本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
［図３］本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
［図４］本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
［図５］本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。
［図６］本発明に係るケーブルテレビシステムにおいて端末装置の外観の一例を示す
【手続補正書】
【提出日】平成18年7月18日(2006.7.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と、
前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、
前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、
前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行する
ことを特徴とするプログラム実行装置。
【請求項２】
前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項３】
前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項４】
前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項５】
前記第２プログラム選択手段は、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの異常終了の回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの異常終了の回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項６】
前記第２プログラム選択手段は、選択した前記プログラムの選択回数が所定回数を超えるか否かを前記所定条件とし、前記プログラムの選択回数が所定回数を超えていない場合には前記所定条件を満たさないと、前記プログラムの選択回数が所定回数を超えている場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項７】
前記第２プログラム選択手段は、時刻情報を前記所定条件とする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項８】
前記第２プログラム選択手段は、利用者の指示を受け付けたか否かを前記所定条件とし、前記利用者の指示を受け付けていない場合には前記所定条件を満たさないと、前記利用者の指示を受け付けた場合には前記所定条件を満たすとする
ことを特徴とする請求項４記載のプログラム実行装置。
【請求項９】
前記第２プログラム選択手段は、不揮発性メモリ上に存在するプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１０】
前記第１プログラム選択手段または前記第２プログラム選択手段は、ネットワークを経由して取得可能なプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１１】
前記第１プログラム選択手段または前記第２プログラム選択手段は、放送波に含まれるプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１２】
前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示する
ことを特徴とする請求項１記載のプログラム実行装置。
【請求項１３】
前記プログラム監視手段は、異常終了の発生をＬＥＤ表示として利用者に提示する
ことを特徴とする請求項１２記載のプログラム実行装置。
【請求項１４】
前記プログラム監視手段は、異常終了の発生をディスプレイ上の表示として利用者に提示する
ことを特徴とする請求項１２記載のプログラム実行装置。
【請求項１５】
プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項１６】
前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択する
ことを特徴とする請求項１５記載のプログラム実行装置。
【請求項１７】
前記第２プログラム選択手段は、選択可能なプログラムの候補として不揮発性メモリ上に存在するプログラムを少なくとも提示する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項１８】
前記第２プログラム選択手段は、選択可能なプログラムの候補としてネットワーク経由で取得可能なプログラムを少なくとも提示する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項１９】
前記第２プログラム選択手段は、選択可能なプログラムの候補として放送波に含まれるプログラムを少なくとも提示する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項２０】
前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択する
ことを特徴とする請求項１６記載のプログラム実行装置。
【請求項２１】
プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項２２】
プログラムを実行するプログラム実行装置であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、
実行中のプログラムの動作状況を監視するプログラム監視手段と、
前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、
前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と
を備えることを特徴とするプログラム実行装置。
【請求項２３】
前記プログラム監視手段は、異常終了を検知した前記プログラムに関する情報を記録する
ことを特徴とする請求項１、請求項１５、請求項２１、および請求項２２のいずれか１項に記載のプログラム実行装置。
【請求項２４】
前記プログラム監視手段は、前記情報を着脱可能な記録媒体に記録する
ことを特徴とする請求項２３記載のプログラム実行装置。
【請求項２５】
前記プログラム監視手段は、前記情報を外部に送信する
ことを特徴とする請求項２３記載のプログラム実行装置。
【請求項２６】
プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと、
前記プログラム監視ステップにおいて異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得ステップと、
前記異常終了の原因に基づいて回避策を実行する回避策実行ステップとを含み、
前記実行ステップでは、前記回避策実行ステップにおいて前記回避策が実行された後、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する
ことを特徴とするプログラム実行方法。
【請求項２７】
実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップまたは前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
前記プログラム監視ステップにおいて異常終了が検知された前記実行プログラムの異常終了の原因を取得する原因取得ステップと、
前記異常終了の原因に基づいて回避策を実行する回避策実行ステップとをコンピュータに実行させ、
前記実行ステップでは、前記回避策実行ステップにおいて前記回避策が実行された後、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する
プログラムを格納したことを特徴とする記録媒体。
【請求項２８】
プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項２９】
実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、利用者の指示に基づいて前記実行プログラムと同じ種類の実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【請求項３０】
プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項３１】
実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行う実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【請求項３２】
プログラムを実行するプログラム実行方法であって、
ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択ステップと、
実行中のプログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択されたプログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択されたプログラムを実行する実行ステップと
を含むことを特徴とするプログラム実行方法。
【請求項３３】
実行プログラムを実行するためのプログラムを格納した記録媒体であって、
ダウンロードして実行される実行プログラムを実行すべき実行プログラムとして選択する第１プログラム選択ステップと、
実行中の実行プログラムの動作状況を監視するプログラム監視ステップと、
前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記実行プログラムと同じ種類の実行プログラムであって、電子番組表を表示する実行プログラムを実行すべき実行プログラムとして選択する第２プログラム選択ステップと、
前記第１プログラム選択ステップにおいて選択された実行プログラムを実行するとともに、前記プログラム監視ステップにおいて実行中の前記実行プログラムの異常終了が検知された場合、前記第２プログラム選択ステップにおいて選択された実行プログラムを実行する実行ステップと
をコンピュータに実行させるプログラムを格納したことを特徴とする記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行させ、その動作を管理するプログラム実行装置に関する。特に、デジタルテレビにおいて、プログラムが異常終了した際に代替プログラムを実行させることに関する。
【背景技術】
【０００２】
近年、各国において、デジタルテレビ向け仕様が策定されつつあり、それに伴い、各仕様に準拠するＳＴＢ（Ｓｅｔ  Ｔｏｐ  Ｂｏｘ）が開発されている。
【０００３】
北米ケーブル放送向けの仕様であるＯＣＡＰ１．０仕様（ＯＣＡＰ １．０ Ｐｒｏｆｉｌｅ ＯＣ−ＳＰ−ＯＣＡＰ１．０−ＩＦ−I０９−０３１１２１）では、映像および音声を各家庭に配信するだけでなく、それらに付随するアプリケーションも配信することで、さまざまなサービス（例えばインタラクティブ番組）を提供することが可能となる。さらに、放送事業者が用意したアプリケーション（例えば電子番組表）をＳＴＢ上で動作させることも可能としている。
【０００４】
特許文献１の「データのダウンロード」では、放送波（つまりＭＰＥＧ２トランスポートストリーム）から、放送に関連するアプリケーションをダウンロードして実行する方法について述べられている。この特許文献１に記載の技術により、各家庭に映像や音声だけでなく、アプリケーションも配信することが可能となる。
【０００５】
また、特許文献２の「アプリケーションライフサイクルに従ってアプリケーションを管理するための方法および装置」では、アプリケーションの動作管理技術について述べられている。ＯＣＡＰ１．０仕様では、特許文献２に記載の技術を用いることで、配信された個々のアプリケーションのライフサイクルを管理すること可能としている。
【０００６】
また、ＯＣＡＰ１．０仕様では、ＳＴＢ起動時に、放送事業者が用意したアプリケーションが存在する場合において、その放送事業者が用意したアプリケーションを起動しなければならず、かつその放送事業者が用意したアプリケーションが異常終了した場合は、再起動を試みることと規定されている。
【０００７】
従来の技術を用いることにより、アプリケーションをダウンロードおよび実行させた後、そのアプリケーションのライフサイクルを監視し、異常終了を検知することが可能であり、さらに、異常終了したアプリケーションを再実行させることが可能である。
【特許文献１】特表２００１−５１９６２７号公報
【特許文献２】特表２００３−５０４７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の技術においては、異常終了を起こしたアプリケーションを再実行させるため、再度アプリケーションが異常終了を起こす確率が高く、ＳＴＢを利用して番組を視聴する視聴者に対する利便性を損ねる要因となっていた。
【０００９】
そこで、本発明は上記の事情に鑑みてなされたものであり、実行中のアプリケーション（プログラム）が異常終了したとしても、アプリケーションが利用できなくなることを防止し、利用者の利便性を向上することができるプログラム実行装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段と、前記プログラム監視手段によって異常終了が検知された前記プログラムの異常終了の原因を取得する原因取得手段と、前記異常終了の原因に基づいて回避策を実行する回避策実行手段とを備え、前記実行手段は、前記回避策実行手段によって前記回避策が実行された後、前記第２プログラム選択手段によって選択されたプログラムを実行することを特徴とする。これによって、実行中のプログラムが異常終了したとしても、代替プログラムとして、同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。ここで、同じ種類のプログラムとは、例えば電子番組表を表示する等の機能が同一であり、利用者による操作性、または表示する情報の情報量や表示形式などの表示性等が相違するプログラム等である。なお、同じ種類のプログラムには、異常終了したプログラムと同じプログラムも含むものとする。
【００１１】
また、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、代替プログラムとして、異常終了したプログラムと同じ種類で、かつ異なるプログラムを実行することできる。
【００１２】
また、前記第２プログラム選択手段は、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択してもよい。これによって、異常終了したプログラムと同じプログラムを再び実行することできる。
【００１３】
また、前記第２プログラム選択手段は、所定条件を満たさない場合、第１プログラム選択手段によって選択されたプログラムと同じプログラムを実行すべきプログラムとして選択し、前記所定条件を満たす場合、第１プログラム選択手段によって選択されたプログラムと異なるプログラムを実行すべきプログラムとして選択してもよい。これによって、一定期間だけ最初と同じプログラムを起動し、その後は別のプログラムを実行させることが可能となる。
【００１４】
また、前記プログラム監視手段は、実行中の前記プログラムの異常終了を検知すると、異常終了の発生を利用者に提示してもよい。これによって、利用者は実行中のプログラムの異常終了が発生したことを認識することが可能となる。
【００１５】
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、利用者の指示に基づいて前記プログラムと同じ種類のプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。これによって、利用者が指示したプログラムを実行することが可能となる。
【００１６】
また、前記第２プログラム選択手段は、選択可能なプログラムの候補を提示するとともに、利用者によって選択されたプログラムを実行すべき前記プログラムとして選択してもよい。これによって、利用者が選択したプログラムを実行することが可能となる。一方、利用者は実行させるプログラムを決定することが容易になる。
【００１７】
また、前記第２プログラム選択手段は、利用者からの選択が所定の時間内に行われない場合、所定のプログラムを前記プログラムとして選択してもよい。これによって、利用者からの選択が所定の時間内に行われなくても、プログラムを選択することが可能となる。
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、利用者からのチャンネル選択要求を受け付けて処理を行うプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。
また、本発明に係るプログラム実行装置は、プログラムを実行するプログラム実行装置であって、ダウンロードして実行されるプログラムを実行すべきプログラムとして選択する第１プログラム選択手段と、実行中のプログラムの動作状況を監視するプログラム監視手段と、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記プログラムと同じ種類のプログラムであって、電子番組表を表示するプログラムを実行すべきプログラムとして選択する第２プログラム選択手段と、前記第１プログラム選択手段によって選択されたプログラムを実行するとともに、前記プログラム監視手段によって実行中の前記プログラムの異常終了が検知された場合、前記第２プログラム選択手段によって選択されたプログラムを実行する実行手段とを備えることを特徴とする。
【００１８】
なお、本発明は、このようなプログラム実行装置として実現することができるだけでなく、このようなプログラム実行装置が備える特徴的な手段をステップとするプログラム実行方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【発明の効果】
【００１９】
本発明に係るプログラム実行装置によれば、実行中のプログラムが異常終了したとしても、代替プログラムとして、異常終了したプログラムと同じプログラム、または同じ種類のプログラムを実行することで、常にプログラムが動作している状態を保つことが可能となる。よって、アプリケーション（プログラム）が利用できなくなることを防止し、利用者の利便性を向上することができる。
【発明を実施するための最良の形態】
【００２０】
以下本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
本発明に係るケーブルテレビシステムの実施の形態を、図面を参照しながら説明する。図１は、ケーブルシステムを構成する装置の関係を表したブロック図であり、ヘッドエンド１０１及び３個の端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３で構成される。本実施の形態では、１つのヘッドエンドに対して３つの端末装置が結合されているが、任意の数の端末装置をヘッドエンドに結合しても、本発明は実施可能である。
【００２１】
ヘッドエンド１０１は、複数の端末装置に対して映像・音声・データ等の放送信号を送信するとともに、端末装置からのデータ送信を受信する。これを実現するため、ヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間の伝送に用いられる周波数帯域は、分割して用いられる。図２は、周波数帯域の分割の一例を示す表である。周波数帯域は、Ｏｕｔ  Ｏｆ  Ｂａｎｄ（略称ＯＯＢ）とＩｎ−Ｂａｎｄの２種類に大別される。５〜１３０ＭＨｚがＯＯＢに割り当てられ、主にヘッドエンド１０１と端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３間のデータのやり取りに使用される。１３０ＭＨｚ〜８６４ＭＨｚはＩｎ−Ｂａｎｄに割り当てられ、主として、映像・音声を含む放送チャンネルに使用される。ＯＯＢではＱＰＳＫ変調方式が、Ｉｎ−ＢａｎｄはＱＡＭ６４変調方式が使用される。変調方式技術については、本発明に関与が薄い公知技術であるので、詳細な説明は省略する。図３は、ＯＯＢ周波数帯域のさらに詳細な使用の一例である。７０ＭＨｚ〜７４ＭＨｚはヘッドエンド１０１からのデータ送信に使用され、全ての端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３が、ヘッドエンド１０１から同じデータを受け取ることになる。一方、１０．０ＭＨｚ〜１０．１ＭＨｚは端末装置Ａ１１１からヘッドエンド１０１へのデータ送信に使用され、１０．１ＭＨｚ〜１０．２ＭＨｚは端末装置Ｂ１１２からヘッドエンド１０１へのデータ送信に使用され、１０．２ＭＨｚ〜１０．３ＭＨｚは端末装置Ｃ１１３からヘッドエンド１０１へのデータ送信に使用される。これにより、各端末装置固有のデータを各端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３からヘッドエンド１０１に送信することができる。図４は、Ｉｎ−Ｂａｎｄの周波数帯に対する使用の一例である。１５０〜１５６ＭＨｚと１５６〜１６２ＭＨｚはそれぞれテレビチャンネル１とテレビチャンネル２に割り当てられ、以降、６ＭＨｚ間隔でテレビチャンネルが割り当てられている。３１０ＭＨｚ以降は、１ＭＨｚ単位でラジオチャンネルに割り当てられている。これらの各チャンネルはアナログ放送として使用してもデジタル放送として使用してもよい。デジタル放送の場合は、ＭＰＥＧ２仕様に基づいたトラスポートパケット形式で伝送され、音声や映像に加え、各種データ放送用データも送信することができる。
【００２２】
ヘッドエンド１０１は、これらの周波数帯域に適切な放送信号を送信するため、ＱＰＳＫ変調部やＱＡＭ変調部等を有する。また、端末装置からのデータを受信するため、ＱＰＳＫ復調器を有する。また、ヘッドエンド１０１は、これら変調部及び復調部に関連する様々な機器を有すると考えられる。しかし、本発明は主として端末装置に関わるので、詳細な説明は省略する。
【００２３】
端末装置Ａ１１１、端末装置Ｂ１１２、端末装置Ｃ１１３は、ヘッドエンド１０１からの放送信号を受信し再生する。また、ヘッドエンド１０１に対して、各端末装置固有のデータを送信する。３つの、端末装置は本実施の形態では同じ構成を取る。
【００２４】
図５は、端末装置のハードウエア構成を表すブロック図である。端末装置５００は、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＴＳデコーダ５０５、オーディオデコーダ５０６、スピーカ５０７、ビデオデコーダ５０８、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２、入力部５１３、ＣＰＵ５１４で構成される。また端末装置５００には、ＰＯＤ５０４が着脱できる。
【００２５】
図６は、端末装置５００の外観の一例である薄型テレビである。
薄型テレビの筐体６０１は、ＰＯＤ５０４を除く、端末装置５００の構成要素をすべて内蔵している。
【００２６】
ディスプレイ６０２は、図５におけるディスプレイ５０９に相当する。
フロントパネル部６０３は複数のボタンで構成され、図５の入力部５１３に相当する。
【００２７】
信号入力端子６０４は、ヘッドエンド１０１との信号の送受信を行うためにケーブル線を接続する。また、信号入力端子６０４は、図５のＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３と接続されている。
【００２８】
ＰＯＤカード６０５は、図５のＰＯＤ５０４に相当する。ＰＯＤ５０４は、図６のＰＯＤカード６０５のように、端末装置５００とは独立した形態を取り、端末装置５００に着脱可能となっている。ＰＯＤ５０４の詳細は後述する。
【００２９】
挿入スロット６０６は、ＰＯＤカード６０５が挿入される挿入スロットである。
図５を参照して、ＱＡＭ復調部５０１は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＡＭ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３０】
ＱＰＳＫ復調部５０２は、ＣＰＵ５１４から指定された周波数を含むチューニング情報で、ヘッドエンド１０１でＱＰＳＫ変調され送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００３１】
ＱＰＳＫ変調部５０３は、ＣＰＵ５１４から指定された周波数を含む変調情報で、ＰＯＤ５０４から渡された信号をＱＰＳＫ変調し、ヘッドエンド１０１に送信する。
【００３２】
ＰＯＤ５０４は、図６のように端末装置本体５００から着脱可能な形態をしている。端末本体５００とＰＯＤ５０４の接続インターフェースは、ＯｐｅｎＣａｂｌｅ（Ｒ）  ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
【００３３】
図７は、ＰＯＤ５０４の内部構成を表すブロック図である。ＰＯＤ５０４は、第１デスクランブラ部７０１、第２デスクランブラ部７０２、スクランブラ部７０３、第１記憶部７０４、第２記憶部７０５、ＣＰＵ７０６で構成される。
【００３４】
第１デスクランブラ部７０１は、ＣＰＵ７０６からの指示により、端末装置５００のＱＡＭ復調部５０１から暗号化された信号を受け取り、復号を行う。そして、復号された信号を端末装置５００のＴＳデコーダ５０５に送る。デコードに必要な鍵などの情報はＣＰＵ７０６から適宜与えられる。具体的には、ヘッドエンド１０１はいくつかの有料チャンネルを放送している。ユーザが、この有料チャンネルを購買すると、第１デスクランブラ部７０１は、ＣＰＵ７０６から鍵等の必要な情報を受け取りデスクランブルすることで、ユーザは有料チャンネルを閲覧することができる。鍵などの必要な情報が与えられない場合は、第１デスクランブラ部７０１は、デスクランブルを行わず、受け取った信号をそのまま、ＴＳデコーダ５０５に送る。
【００３５】
第２デスクランブラ部７０２は、ＣＰＵ７０６からの指示により、端末装置５００のＱＰＳＫ復調部５０２から暗号化された信号を受け取り、復号を行う。そして、復号されたデータをＣＰＵ７０６に引き渡す。
【００３６】
スクランブラ部７０３は、ＣＰＵ７０６からの指示により、ＣＰＵ７０６から受け取ったデータを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に送る。
【００３７】
第１記憶部７０４は、具体的にはＲＡＭ等の一次記憶メモリで構成され、ＣＰＵ７０６が処理を行う際、一時的にデータを保存するために使用される。
【００３８】
第２記憶部７０５は、具体的にはフラッシュＲＯＭ等の２次記憶メモリで構成され、ＣＰＵ７０６が実行するプログラムを格納し、また、電源ＯＦＦになっても消去されては困るデータの保存に使用される。
【００３９】
ＣＰＵ７０６は、第２記憶部７０５が記憶するプログラムを実行する。プログラムは複数のサブプログラムで構成される。図８は、第２記憶部７０５が記憶するプログラムの一例である。図８では、プログラム８００は、メインプログラム８０１、初期化サブプログラム８０２、ネットワークサブプログラム８０３、再生サブプログラム８０４、ＰＰＶサブプログラム８０５等複数のサブプログラムで構成されている。
【００４０】
ここでＰＰＶとはＰａｙ  Ｐｅｒ  Ｖｉｅｗの略であり、映画など特定の番組を有料で視聴できるようにするサービスである。ユーザが暗証番号を入力すると、購入したことがヘッドエンド１０１に通知され、スクランブルが解除され、視聴することが出来る。この視聴により、ユーザは後日、購入代金を支払うものである。
【００４１】
メインプログラム８０１は、ＣＰＵ７０６が電源投入時に最初に起動するサブプログラムであり、他のサブプログラムの制御を行う。
【００４２】
初期化サブプログラム８０２は、電源投入時にメインプログラム８０１によって起動され、端末装置５００との情報交換等を行い、初期化処理を行う。初期化処理の詳細は、ＯｐｅｎＣａｂｌｅ（Ｒ）  ＨＯＳＴ−ＰＯＤ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＯＣ−ＳＰ−ＨＯＳＴＰＯＤ−ＩＦ−Ｉ１２−０３０２１０）及び、この仕様書から参照されている仕様書で定義されている。また、仕様書に定義されていない初期化処理も行う。ここでは、その一部を紹介する。電源が投入されると、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ復調部５０２に通知する。ＱＰＳＫ復調部５０２は、与えられた第１の周波数でチューニングを行い、信号を第２デスクランブラ部７０２に送る。また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第１の鍵等の復号情報を第２デスクランブラ部７０２に与える。その結果、第２デスクランブラ部７０２は、デスクランブルを行い、初期化サブプログラム８０２を実行するＣＰＵ７０６に引き渡す。よって、初期化サブプログラム８０２は情報を受け取ることができる。本実施の形態では、初期化サブプログラム８０２はネットワークサブプログラム８０３を通して情報を受け取ることとする。詳細は後述する。
【００４３】
また、初期化サブプログラム８０２は、第２記憶部７０５が記憶する第２の周波数を端末装置５００のＣＰＵ５１４を通して、ＱＰＳＫ変調部５０３に通知する。初期化サブプログラム８０２は第２記憶部７０５が記憶する暗号化情報をスクランブラ部７０３に与える。初期化サブプログラム８０２が送信したい情報を、ネットワークサブプログラム８０３を介して、スクランブラ部７０３に与えると、スクランブラ部７０３は、与えられた暗号化情報を用いて、データを暗号化し、端末装置５００のＱＰＳＫ変調部５０３に与える。ＱＰＳＫ変調部５０３は、与えられた暗号化された情報を変調し、ヘッドエンド１０１に送信する。
【００４４】
この結果、初期化サブプログラム８０２は、端末装置５００、第２デスクランブラ部７０２、スクランブラ部７０３、ネットワークサブプログラム８０３を通して、ヘッドエンド１０１と双方向通信を行うことができる。
【００４５】
また、初期化サブプログラム８０２は、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行う。詳細については後述する。
【００４６】
ネットワークサブプログラム８０３は、メインプログラム８０１、初期化サブプログラム８０２等の複数のサブプログラムから使用される、ヘッドエンド１０１との双方向通信を行うためのサブプログラムである。具体的には、ネットワークサブプログラム８０３を使用する他のサブプログラムに対して、ＴＣＰ／ＩＰによって、ヘッドエンド１０１と双方向通信を行っているように振舞う。ＴＣＰ／ＩＰは、複数の装置間で情報交換を行うためのプロトコルを規定した公知の技術であり、詳細な説明は省略する。ネットワークサブプログラム８０３は、電源投入時に初期化サブプログラム８０２に起動されると、予め第２記憶部７０５が記憶しているＰＯＤ５０４を識別する識別子であるＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌアドレスの略）を、端末装置５００を通してヘッドエンド１０１に通知し、ＩＰアドレスの取得を要求する。ヘッドエンド１０１は、端末装置５００を介してＰＯＤ５０４にＩＰアドレスを通知し、ネットワークサブプログラム８０３は、ＩＰアドレスを第１記憶部７０４に記憶する。以降、ヘッドエンド１０１とＰＯＤ５０４は、このＩＰアドレスを、ＰＯＤ５０４の識別子として使用し、通信を行う。
【００４７】
再生サブプログラム８０４は、第２記憶部７０５が記憶する第２の鍵等の復号情報や、端末装置５００から与えられる第３の鍵等の復号情報を第１デスクランブラ部７０１に与えて、デスクランブルを可能にする。また、ネットワークサブプログラム８０３を通して、第１デスクランブラ部７０１に入力されている信号が、ＰＰＶチャンネルであることの情報を受け取る。ＰＰＶチャンネルと知ったときは、ＰＰＶサブプログラム８０５を起動する。
【００４８】
ＰＰＶサブプログラム８０５は、起動されると、端末装置５００に番組の購入を促すメッセージを表示し、ユーザの入力を受け取る。具体的には、端末装置５００のＣＰＵ５１４に画面に表示したい情報を送ると、端末装置５００のＣＰＵ５１４上で動作するプログラムが、端末装置５００のディスプレイ５０９上にメッセージを表示する。ユーザは、端末装置５００の入力部５１３を通して暗証番号を入力すると、端末装置５００のＣＰＵ５１４が、それを受け取り、ＰＯＤ５０４のＣＰＵ７０６上で動作するＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は、受け取った暗証番号をネットワークサブプログラム８０３を通してヘッドエンド１０１に送信する。ヘッドエンド１０１は、暗証番号が正しければ、復号に必要な第４の鍵などの復号化情報をネットワークサブプログラム８０３を介して、ＰＰＶサブプログラム８０５に通知する。ＰＰＶサブプログラム８０５は受け取った第４の鍵などの復号化情報を第１デスクランブラ部７０１に与え、第１デスクランブラ部７０１は、入力されている信号をデスクランブルする。
【００４９】
図５を参照して、ＴＳデコーダ５０５は、ＰＯＤ５０４から受け取った信号のフィルタリングを実施し、必要なデータをオーディオデコーダ５０６及びビデオデコーダ５０８、ＣＰＵ５１４に引き渡す。ここで、ＰＯＤ５０４から来る信号はＭＰＥＧ２トランスポートストリームである。ＭＰＥＧ２トランスポートストリームの詳細はＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−１に記載されており、本実施の形態では詳細は省略する。ＭＰＥＧ２トランスポートストリームは、複数の固定長パケットで構成され、各パケットには、パケットＩＤが振られている。図９はパケットの構成図である。９００はパケットであり、固定長の１８８バイトで構成される。先頭４バイトがヘッダー９０１で、パケットの識別情報を格納しており、残り１８４バイトがペイロード９０２で、送信したい情報を含んでいる。９０３は、ヘッダー９０１の内訳である。先頭から１２ビット目〜２４ビット目までの１３ビットにパケットＩＤが含まれている。図１０は送られてくる複数のパケットの列を表現した模式図である。パケット１００１は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの１番目の情報が入っている。パケット１００２は、ヘッダーにパケットＩＤ「２」を持ち、ペイロードには音声Ａの１番目の情報が入っている。パケット１００３は、ヘッダーにパケットＩＤ「３」を持ち、ペイロードには音声Ｂの１番目の情報が入っている。
【００５０】
パケット１００４は、ヘッダーにパケットＩＤ「１」を持ち、ペイロードには映像Ａの２番目の情報が入っており、これはパケット１００１の続きになっている。同様にパケット１００５、１０２６、１０２７も他のパケットの後続データを格納している。このように、同じパケットＩＤを持つ、パケットのペイロードの内容を連結すると、連続した映像や音声を再現することができる。
【００５１】
図１０を参照して、ＣＰＵ５１４がパケットＩＤ「１」と出力先として「ビデオデコーダ５０８」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「１」のパケットを抽出し、ビデオデコーダ５０８に引き渡す。図１０においては、映像データのみをビデオデコーダ５０８に引き渡すことになる。同時に、ＣＰＵ５１４がパケットＩＤ「２」と「オーディオデコーダ５０６」をＴＳデコーダ５０５に指示すると、ＴＳデコーダ５０５はＰＯＤ５０４から受け取ったＭＰＥＧ２トランスポートストリームからパケットＩＤ「２」のパケットを抽出し、オーディオデコーダ５０６に引き渡す。図１０においては、音声データのみをオーディオデコーダ５０６に引き渡すことになる。
【００５２】
このパケットＩＤに応じて必要なパケットだけを取り出す処理が、ＴＳデコーダ５０５が行うフィルタリングである。ＴＳデコーダ５０５はＣＰＵ５１４から指示された複数のフィルタリングを同時に実行することができる。
【００５３】
図５を参照して、オーディオデコーダ５０６は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたオーディオデータを連結し、デジタル−アナログ変換を行いスピーカ５０７に出力する。
【００５４】
スピーカ５０７は、オーディオデコーダ５０６から与えられた信号を音声出力する。
ビデオデコーダ５０８は、ＴＳデコーダ５０５から与えられたＭＰＥＧ２トランスポートストリームのパケットに埋め込まれたビデオデータを連結し、デジタル−アナログ変換を行いディスプレイ５０９に出力する。
【００５５】
ディスプレイ５０９は、具体的にはブラウン管や液晶等で構成され、ビデオデコーダ５０８から与えられたビデオ信号を出力したり、ＣＰＵ５１４から指示されたメッセージを表示したりする。
【００５６】
２次記憶部５１０は、具体的には、フラッシュメモリーやハードディスク等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された状態でも保存しつづける。
【００５７】
１次記憶部５１１は、具体的には、ＲＡＭ等で構成され、ＣＰＵ５１４から指示されたデータやプログラムを一次的に保存したり削除したりする。また、保存されているデータやプログラムはＣＰＵ５１４に参照される。保存されているデータやプログラムは、端末装置５００の電源が切断された際に、抹消される。
【００５８】
ＲＯＭ５１２は、書き換え不可能なメモリーデバイスであり、具体的にはＲＯＭやＣＤ−ＲＯＭ、ＤＶＤなどで構成される。ＲＯＭ５１２は、ＣＰＵ５１４が実行するプログラムが格納されている。
【００５９】
入力部５１３は、具体的には、フロントパネルやリモコンで構成され、ユーザからの入力を受け付ける。図１１は、フロントパネルで入力部５１３を構成した場合の一例である。１１００はフロントパネルであり、図６のフロントパネル部６０３に相当する。フロントパネル１１００は７つのボタン、上カーソルボタン１１０１、下カーソルボタン１１０２、左カーソルボタン１１０３、右カーソルボタン１１０４、ＯＫボタン１１０５、取消ボタン１１０６、ＥＰＧボタン１１０７を備えている。ユーザがボタンを押下すると、押下されたボタンの識別子が、ＣＰＵ５１４に通知される。
【００６０】
ＣＰＵ５１４は、ＲＯＭ５１２が記憶するプログラムを実行する。実行するプログラムの指示に従い、ＱＡＭ復調部５０１、ＱＰＳＫ復調部５０２、ＱＰＳＫ変調部５０３、ＰＯＤ５０４、ＴＳデコーダ５０５、ディスプレイ５０９、２次記憶部５１０、１次記憶部５１１、ＲＯＭ５１２を制御する。
【００６１】
図１２は、ＲＯＭ５１２に記憶され、ＣＰＵ５１４に実行されるプログラムの構成図の一例である。
【００６２】
プログラム１２００は、複数のサブプログラムで構成され、具体的にはＯＳ１２０１、ＥＰＧ１２０２、Ｊａｖａ（Ｒ）ＶＭ１２０３（以後ＶＭ１２０３と称す）、サービスマネージャ１２０４、Ｊａｖａ（Ｒ）ライブラリ１２０５（以後ライブラリ１２０５と称す）で構成される。
【００６３】
ＯＳ１２０１は、端末装置５００の電源が投入されると、ＣＰＵ５１４が起動するサブプログラムである。ＯＳ１２０１は、オペレーティングシステムの略であり、Ｌｉｎｕｘ等が一例である。ＯＳ１２０１は、他のサブプログラムを平行して実行するカーネル１２０１ａ及びライブラリ１２０１ｂで構成される公知の技術の総称であり、詳細な説明は省略する。本実施の形態においては、ＯＳ１２０１のカーネル１２０１ａは、ＥＰＧ１２０２とＶＭ１２０３をサブプログラムとして実行する。また、ライブラリ１２０１ｂは、これらサブプログラムに対して、端末装置５００が保持する構成要素を制御するための複数の機能を提供する。
【００６４】
機能の一例として、チューニング機能を紹介する。チューニング機能は、他のサブプログラムから周波数を含むチューニング情報を受け取り、それをＱＡＭ復調部５０１に引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に基づき復調処理を行い、復調したデータをＰＯＤ５０４に引き渡すことができる。この結果、他のサブプログラムはライブラリ１２０１ｂを通してＱＡＭ復調器を制御することができる。
【００６５】
ＥＰＧ１２０２は、ユーザに番組一覧を表示及び、ユーザからの入力を受け付ける番組表示部１２０２ａと、チャンネル選局を行う再生部１２０２ｂで構成される。ここで、ＥＰＧはＥｌｅｃｔｒｉｃ  Ｐｒｏｇｒａｍ  Ｇｕｉｄｅの略である。ＥＰＧ１２０２は、端末装置５００の電源が投入されると、カーネル１２０１ａによって起動される、起動されたＥＰＧ１２０２の内部では、番組表示部１２０２ａが端末装置５００の入力部５１３を通して、ユーザからの入力を待つ。ここで、入力部５１３が図１１で示されるフロントパネルで構成されている場合、ユーザが、入力部５１３のＥＰＧボタン１１０７を押下すると、ＥＰＧボタンの識別子がＣＰＵ５１４に通知される。ＣＰＵ５１４上で動作するサブプログラムであるＥＰＧ１２０２の番組表示部１２０２ａは、この識別子を受け取り、番組情報をディスプレイ５０９に表示する。図１３（ａ）及び（ｂ）は、ディスプレイ５０９に表示された番組表の一例である。図１３（ａ）を参照して、ディスプレイ５０９には、格子状に番組情報が表示されている。列１３０１には、時刻情報が表示されている。列１３０２には、チャンネル名「チャンネル１」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。「チャンネル１」では、９：００〜１０：３０に番組「ニュース９」が放映され、１０：３０〜１２：００は「映画ＡＡＡ」が放映されることを表す。列１３０３も列１３０２同様、チャンネル名「チャンネル２」と、列１３０１の時刻に対応する時間帯に放映される番組が表示されている。９：００〜１１：００に番組「映画ＢＢＢ」が放映され、１１：００〜１２：００は「ニュース１１」が放映される。１３３０は、カーソルである。カーソル１３３０は、フロントパネル１１００の左カーソル１１０３と右カーソル１１０４を押下すると移動する。図１３（ａ）の状態で、右カーソル１１０４を押下すると、カーソル１３３０は右に移動し、図１３（ｂ）のようになる。また、図１３（ｂ）の状態で、左カーソル１１０３を押下すると、カーソル１３３０は左に移動し、図１３（ａ）のようになる。
【００６６】
図１３（ａ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル１」の識別子を再生部１２０２ｂに通知する。図１３（ｂ）の状態で、フロントパネル１１００のＯＫボタン１１０５が押下されると、番組表示部１２０２ａは、「チャンネル２」の識別子を再生部１２０２ｂに通知する。
【００６７】
また、番組表示部１２０２ａは、表示する番組情報を、ＰＯＤ５０４を通してヘッドエンド１０１から定期的に、１次記憶部５１１に記憶しておく。一般的に、ヘッドエンドからの番組情報の取得は時間が掛かる。入力部５１３のＥＰＧボタン１１０７が押下された時、１次記憶部５１１に予め保存された番組情報を表示することで、素早く番組表を表示することができる。
【００６８】
再生部１２０２ｂは、受け取ったチャンネルの識別子を用いて、チャンネルを再生する。チャンネルの識別子とチャンネルの関係は、チャンネル情報として、２次記憶部５１０に予め格納されている。図１４は２次記憶部５１０に格納されているチャンネル情報の一例である。チャンネル情報は表形式で格納されている。列１４０１は、チャンネルの識別子である。列１４０２は、チャンネル名である。列１４０３はチューニング情報である。ここで、チューニング情報は周波数や転送レート、符号化率などを含み、ＱＡＭ復調部５０１に与える値である。列１４０４はプログラムナンバーである。プログラムナンバーとは、ＭＰＥＧ２規格で規定されているＰＭＴを識別するための番号である。ＰＭＴに関しては、後述する。行１４１１〜１４１４の各行は、各チャンネルの識別子、チャンネル名、チューニング情報の組となる。行１４１１は識別子が「１」、チャンネル名が「チャンネル１」、チューニング情報に周波数「１５０ＭＨｚ」、プログラムナンバーが「１０１」を含む組となっている。再生部１２０２ｂは、チャンネルの再生を行うため、受け取ったチャンネルの識別子をそのままサービスマネージャに引き渡す。
【００６９】
また、再生部１２０２ｂは、再生中に、ユーザがフロントパネル１１００の上カーソル１１０１と下カーソル１１０２を押下すると、入力部５１３からＣＰＵ５１４を通して、押下された通知を受け取り、再生しているチャンネルを変更する。まず、再生部１２０２ｂは、１次記憶部５１１に現在再生中のチャンネルの識別子を記憶する。図１５（ａ）（ｂ）及び（ｃ）は、１次記憶部５１１に保存しているチャンネルの識別子の例である。図１５（ａ）では識別子「３」が記憶されており、図１４を参照し、チャンネル名「ＴＶ  ３」のチャンネルが再生中であることを示す。図１５（ａ）の状態で、ユーザが上カーソル１１０１を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の前のチャンネルであるチャンネル名「チャンネル２」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「チャンネル２」の識別子「２」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「２」に書き換える。図１５（ｂ）は、チャンネル識別子が書き換えられた状態を表す。また、図１５（ａ）の状態で、ユーザが下カーソル１１０２を押下すると再生部１２０２ｂは、図１４のチャンネル情報を参照し、表中の次のチャンネルであるチャンネル名「ＴＶ  Ｊａｐａｎ」のチャンネルに再生を切り変えるため、サービスマネージャにチャンネル名「ＴＶ  Ｊａｐａｎ」の識別子「４」を引き渡す。同時に、１次記憶部５１１に記憶されているチャンネル識別子「４」に書き換える。図１５（ｃ）は、チャンネル識別子が書き換えられた状態を表す。
【００７０】
ＶＭ１２０３は、Ｊａｖａ（Ｒ）言語で記述されたプログラムを逐次解析し実行するＪａｖａ（Ｒ）バーチャルマシンである。Ｊａｖａ（Ｒ）言語で記述されたプログラムはバイトコードと呼ばれる、ハードウエアに依存しない中間コードにコンパイルされる。Ｊａｖａ（Ｒ）バーチャルマシンは、このバイトコードを実行するインタープリタである。また、一部のＪａｖａ（Ｒ）バーチャルマシンは、バイトコードをＣＰＵ５１４が理解可能な実行形式に翻訳してから、ＣＰＵ５１４に引渡し、実行することも行う。ＶＭ１２０３は、カーネル１２０１ａに実行するＪａｖａ（Ｒ）プログラムを指定され起動される。本実施の形態では、カーネル１２０１ａは、実行するＪａｖａ（Ｒ）プログラムとしてサービスマネージャ１２０４を指定する。Ｊａｖａ（Ｒ）言語の詳細は、書籍「Ｊａｖａ（Ｒ）  Ｌａｎｇｕａｇｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１−１）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。また、Ｊａｖａ（Ｒ）ＶＭ自体の詳細な動作などは、「Ｊａｖａ（Ｒ）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＩＳＢＮ  ０−２０１−６３４５１―Ｘ）」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７１】
サービスマネージャ１２０４は、Ｊａｖａ（Ｒ）言語で書かれたＪａｖａ（Ｒ）プログラムであり、ＶＭ１２０３によって逐次実行される。サービスマネージャ１２０４は、ＪＮＩ（Ｊａｖａ（Ｒ）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ）を通して、Ｊａｖａ（Ｒ）言語で記述されていない他のサブプログラムを呼び出したり、または、呼び出されたりすることが可能である。ＪＮＩに関しても、書籍「Ｊａｖａ（Ｒ）  Ｎａｔｉｖｅ  Ｉｎｔｅｒｆａｃｅ」等の多くの書籍で解説されている。ここでは、その詳細を省略する。
【００７２】
サービスマネージャ１２０４は、ＪＮＩを通して、再生部１２０２ｂよりチャンネルの識別子を受け取る。
【００７３】
サービスマネージャ１２０４は、最初にライブラリ１２０５の中にあるＴｕｎｅｒ１２０５ｃに、チャンネルの識別子を引き渡し、チューニングを依頼する。Ｔｕｎｅｒ１２０５ｃは、２次記憶部５１０が記憶するチャンネル情報を参照し、チューニング情報を獲得する。今、サービスマネージャ１２０４がチャンネルの識別子「２」をＴｕｎｅｒ１２０５ｃに引き渡すと、Ｔｕｎｅｒ１２０５ｃは、図１４の行１４１２を参照して、対応するチューニング情報「１５６ＭＨｚ」を獲得する。Ｔｕｎｅｒ１２０５ｃは、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＱＡＭ復調部５０１にチューニング情報を引き渡す。ＱＡＭ復調部５０１は与えられたチューニング情報に従ってヘッドエンド１０１から送信されてきた信号を復調し、ＰＯＤ５０４に引き渡す。
【００７４】
次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＣＡ１２０５ｄにデスクランブルを依頼する。ＣＡ１２０５ｄは、ＯＳ１２０１のライブラリ１２０１ｂを通して復号に必要な情報をＰＯＤ５０４に与える。ＰＯＤ５０４は、与えられた情報を元に、ＱＡＭ復調部５０１から与えられた信号を復号しＴＳデコーダ５０５に引き渡す。
【００７５】
次にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＪＭＦ１２０５ａにチャンネルの識別子を与え、映像・音声の再生を依頼する。
【００７６】
まず、最初にＪＭＦ１２０５ａは、再生すべき映像と音声を特定するためのパケットＩＤをＰＡＴ、ＰＭＴから取得する。ＰＡＴやＰＭＴはＭＰＥＧ２規格で規定されている、ＭＰＥＧ２トランスポートストリーム内の番組構成を表現するテーブルであり、ＭＰＥＧ２トランスポートストリームに含まれるパケットのペイロードに埋め込まれて、音声や映像と共に送信されるものである。詳細は規格書を参照されたい。ここでは、概略のみ説明する。ＰＡＴは、Ｐｒｏｇｒａｍ  Ａｓｓｏｃｉａｔｉｏｎ  Ｔａｂｌｅの略で、パケットＩＤ「０」のパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＡＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤ「０」とＣＰＵ５１４を指定する。ＴＳデコーダ５０５がパケットＩＤ「０」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＡＴのパケットを収集する。図１６は、収集したＰＡＴの情報の一例を模式的に表した表である。列１６０１は、プログラムナンバーである。列１６０２は、パケットＩＤである。列１６０２のパケットＩＤはＰＭＴを取得するために用いられる。行１６１１〜１６１３は、チャンネルのプログラムナンバーと対応するパケットＩＤの組である。ここでは、３つのチャンネルが定義されている。行１６１１はプログラムナンバー「１０１」とパケットＩＤ「５０１」の組が定義されている。今、ＪＭＦ１２０５ａに与えられたチャンネルの識別子が「２」とすると、ＪＭＦ１２０５ａは、図１４の行１４１２を参照して、対応するプログラムナンバー「１０２」を獲得し、次に、図１６のＰＡＴの行１６１２を参照し、プログラムナンバー「１０２」に対応するパケットＩＤ「５０２」を獲得する。ＰＭＴは、Ｐｒｏｇｒａｍ  Ｍａｐ  Ｔａｂｌｅの略で、ＰＡＴで規定されたパケットＩＤのパケットに格納され送信されている。ＪＭＦ１２０５ａは、ＰＭＴを取得するため、ＯＳ１２０１のライブラリ１２０１ｂを通して、ＴＳデコーダ５０５にパケットＩＤとＣＰＵ５１４を指定する。ここで、指定するパケットＩＤは「５０２」とする。ＴＳデコーダ５０５がパケットＩＤ「５０２」でフィルタリングを行い、ＣＰＵ５１４に引き渡すことでＪＭＦ１２０５ａは、ＰＭＴのパケットを収集する。図１７は、収集したＰＭＴの情報の一例を模式的に表した表である。列１７０１は、ストリーム種別であり。列１７０２は、パケットＩＤである。列１７０２で指定されるパケットＩＤのパケットには、ストリーム種別で指定された情報がペイロードに格納され送信されている。列１７０３は補足情報である。行１７１１〜１７１４はエレメンタリ−ストリームと呼ばれる、パケットＩＤと送信している情報の種別の組である。行１７１１は、ストリーム種別「音声」とパケットＩＤ「５０１１」の組であり、パケットＩＤ「５０１１」のペイロードには音声が格納されていることを表す。ＪＭＦ１２０５ａは、ＰＭＴから再生する映像と音声のパケットＩＤを獲得する。図１７を参照して、ＪＭＦ１２０５ａは、行１７１１から音声のパケットＩＤ「５０１１」を、行１７１２から映像のパケットＩＤ「５０１２」を獲得する。
【００７７】
次に、ＪＭＦ１２０５ａは、ＯＳ１２０１のライブラリ１２０１ｂを通して、獲得した音声のパケットＩＤと出力先としてオーディオデコーダ５０６、映像のパケットＩＤと出力先としてビデオデコーダ５０８の組を、ＴＳデコーダ５０５に与える。ＴＳデコーダ５０５は与えられたパケットＩＤと出力先に基づいて、フィルタリングを行う。ここではパケットＩＤ「５０１１」のパケットをオーディオデコーダ５０６に、パケットＩＤ「５０１２」のパケットをビデオデコーダ５０８に引き渡す。オーディオデコーダ５０６は、与えられたパケットのデジタル−アナログ変換を行いスピーカ５０７を通して音声を再生する。ビデオデコーダ５０８は、与えられたパケットのデジタル−アナログ変換を行いディスプレイ５０９に映像を表示する。
【００７８】
最後にサービスマネージャ１２０４は、ライブラリ１２０５の中にあるＡＭ１２０５ｂにチャンネルの識別子を与え、データ放送再生を依頼する。ここで、データ放送再生とは、ＭＰＥＧ２トランスポートストリームに含まれるＪａｖａ（Ｒ）プログラムを抽出し、ＶＭ１２０３に実行させることである。ＭＰＥＧ２トランスポートストリームにＪａｖａ（Ｒ）プログラムを埋め込む方法は、ＭＰＥＧ規格書  ＩＳＯ／ＩＥＣ１３８１８−６に記述されたＤＳＭＣＣという方式を用いる。ここではＤＳＭＣＣの詳細な説明は省略する。ＤＳＭＣＣ方式は、ＭＰＥＧ２トランスポートストリームのパケットの中に、コンピュータで使用されているディレクトリやファイルで構成されるファイルシステムをエンコードする方法を規定している。また、実行するＪａｖａ（Ｒ）プログラムの情報はＡＩＴと呼ばれる形式で、ＭＰＥＧ２トランスポートストリームのパケットの中に埋め込まれ送信されている。ＡＩＴは、ＯＣＡＰ１．０仕様（正式には、ＯＣＡＰ  １．０  Ｐｒｏｆｉｌｅ  ＯＣ−ＳＰ−ＯＣＡＰ１．０−ＩＦ−Ｉ０９−０３１１２１）に定義されている、Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔａｂｌｅの略である。
【００７９】
ＡＭ１２０５ｂは、まず、ＡＩＴを獲得するため、ＪＭＦ１２０５ａ同様ＰＡＴ、ＰＭＴを取得し、ＡＩＴが格納されているパケットのパケットＩＤを獲得する。今、与えられたチャンネルの識別子が「２」で、図１６のＰＡＴ、図１７のＰＭＴが送信されていると、ＪＭＦ１２０５ａと同様の手順で、図１７のＰＭＴを獲得する。ＡＭ１２０５ｂは、ＰＭＴからストリーム種別が「データ」で補足情報として「ＡＩＴ」を持つエレメンタリ−ストリームからパケットＩＤを抽出する。図１７を参照して、行１７１３のエレメンタリ−ストリームが該当し、パケットＩＤ「５０１３」を獲得する。
【００８０】
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＡＩＴのパケットＩＤと出力先ＣＰＵ５１４を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、ＡＩＴのパケットを収集することができる。図１８は、収集したＡＩＴの情報の一例を模式的に表した表である。列１８０１はＪａｖａ（Ｒ）プログラムの識別子（図ではプログラム識別子と表記）である。列１８０２はＪａｖａ（Ｒ）プログラムの制御情報である。制御情報には「ａｕｔｏｓｔａｒｔ」「ｐｒｅｓｅｎｔ」「ｋｉｌｌ」などがあり、「ａｕｔｏｓｔａｒｔ」は即時に端末装置５００がこのプログラムを自動的に実行することを意味し、「ｐｒｅｓｅｎｔ」は自動実行しないことを意味し、「ｋｉｌｌ」はプログラムを停止することを意味する。列１８０３は、ＤＳＭＣＣ方式でＪａｖａ（Ｒ）プログラムを含んでいるパケットＩＤを抽出するためのとＤＳＭＣＣ識別子である。列１８０４はＪａｖａ（Ｒ）プログラムのプログラム名である。行１８１１と行１８１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。行１８１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ａ／ＴｏｐＸｌｅｔ」の組である。行１８１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「ｂ／ＧａｍｅＸｌｅｔ」の組である。ここで２つのＪａｖａ（Ｒ）プログラムは同じＤＳＭＣＣ識別子を持つが、これは１つのＤＳＭＣＣ方式でエンコードされたファイルシステム内に２つのＪａｖａ（Ｒ）プログラムが含まれていることを表す。ここでは、Ｊａｖａ（Ｒ）プログラムに対して４つの情報しか規定しないが、実際にはより多くの情報が定義される。詳細はＯＣＡＰ１．０仕様を参照されたい。
【００８１】
ＡＭ１２０５ｂは、ＡＩＴの中から「ａｕｔｏｓｔａｒｔ」のＪａｖａ（Ｒ）プログラムを見つけ出し、対応するＤＳＭＣＣ識別子及びＪａｖａ（Ｒ）プログラム名を抽出する。図１８を参照して、ＡＭ１２０５ｂは行１８１１のＪａｖａ（Ｒ）プログラムを抽出し、ＤＳＭＣＣ識別子「１」及びＪａｖａ（Ｒ）プログラム名「ａ／ＴｏｐＸｌｅｔ」を獲得する。
【００８２】
次にＡＭ１２０５ｂは、ＡＩＴから取得したＤＳＭＣＣ識別子を用いて、Ｊａｖａ（Ｒ）プログラムをＤＳＭＣＣ方式で格納しているパケットのパケットＩＤをＰＭＴから獲得する。具体的には、ＰＭＴの中でストリーム種別が「データ」で、補足情報のＤＳＭＣＣ識別子が合致するエレメンタリ−ストリームのパケットＩＤを取得する。
【００８３】
今、ＤＳＭＣＣ識別子が「１」であり、ＰＭＴが図１７とすると、行１７１４のエレメンタリ−ストリームが合致し、パケットＩＤ「５０１４」を取り出す。
【００８４】
ＡＭ１２０５ｂは、ＯＳ１２０１のライブラリ１２０１ｂを通してＴＳデコーダ５０５にＤＳＭＣＣ方式でデータが埋めこめられたパケットのパケットＩＤと出力先としてＣＰＵ５１４を指定する。ここでは、パケットＩＤ「５０１４」を与える。ＴＳデコーダ５０５、与えられたパケットＩＤでフィルタリングを行い、ＣＰＵ５１４に引き渡す。この結果、ＡＭ１２０５ｂは、必要なパケットを収集することができる。ＡＭ１２０５ｂは、収集したパケットから、ＤＳＭＣＣ方式に従ってファイルシステムを復元し、１次記憶部５１１に保存する。ＭＰＥＧ２トランスポートストリーム中のパケットからファイルシステム等のデータを取り出し１次記憶部５１１等の記憶手段に保存すことを以降、ダウンロードと呼ぶ。
【００８５】
図１９は、ダウンロードしたファイルシステムの一例である。図中、丸はディレクトリを四角はファイルを表し、１９０１はルートディレクトリ、１９０２はディレクトリ「ａ」、１９０３はディレクトリ「ｂ」、１９０４はファイル「ＴｏｐＸｌｅｔ．ｃｌａｓｓ」、１９０５はファイル「ＧａｍｅＸｌｅｔ．ｃｌａｓｓ」である。
【００８６】
次にＡＭ１２０５ｂは、１次記憶部５１１にダウンロードしたファイルシステム中から実行するＪａｖａ（Ｒ）プログラムをＶＭ１２０３に引き渡す。今、実行するＪａｖａ（Ｒ）プログラム名が「ａ／ＴｏｐＸｌｅｔ」とすると、Ｊａｖａ（Ｒ）プログラム名の最後に「．ｃｌａｓｓ」を付加したファイル「ａ／ＴｏｐＸｌｅｔ．ｃｌａｓｓ」が実行すべきファイルとなる。「／」はディレクトリやファイル名の区切りであり、図１９を参照して、ファイル１９０４が実行すべきＪａｖａ（Ｒ）プログラムである。次にＡＭ１２０５ｂは、ファイル１９０４をＶＭ１２０３に引き渡す。
【００８７】
ＶＭ１２０３は、引き渡されたＪａｖａ（Ｒ）プログラムを実行する。
サービスマネージャ１２０４は、他のチャンネルの識別子を受け取ると、ライブラリ１２０５に含まれる各ライブラリを通して再生している映像・音声及びＪａｖａ（Ｒ）プログラムの実行を、同じくライブラリ１２０５に含まれる各ライブラリを通して停止し、新たに受け取ったチャンネルの識別子に基づいて、映像・音声の再生及びＪａｖａ（Ｒ）プログラムの実行を行う。
【００８８】
ライブラリ１２０５は、ＲＯＭ５１２に格納されている複数のＪａｖａ（Ｒ）ライブラリの集合である。本実施の形態では、ここでは、ライブラリ１２０５は、ＪＭＦ１２０５ａ、ＡＭ１２０５ｂ、Ｔｕｎｅｒ１２０５ｃ、ＣＡ１２０５ｄ、ＰＯＤ  Ｌｉｂ１２０５ｅ、ＭＡ管理部１２０５ｆ等を含んでいる。
【００８９】
初期化サブプログラム８０２は、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行う、と述べたが、その詳細について述べる。
【００９０】
ＯＣＡＰ１．０仕様では、前記ＥＰＧ１２０２のような、予め端末内に用意してあるプログラムの代わりに、端末装置の外部から特権的なプログラム（以下、モニタアプリと呼ぶ）をダウンロードして実行する手順が規定されている。モニタアプリの機能として、例えば電子番組表の表示がある。さらに、モニタアプリが存在し、かつそれが自動的に起動するように指定されていた場合、必ず実行しなければならいと規定されている。ここでは、詳細は省略し、本発明に関する部分のみを解説する。
【００９１】
図２０は、ヘッドエンド１０１から送られてくる特殊なプログラム情報（以下ＸＡＩＴと呼ぶ）の一例を模式的に表した表である。ＸＡＩＴの構成は、図１８に示した前記ＡＩＴと類似の構成をとるため、同一構成要素に対しては同一番号を付し、説明を省略する。列２００５は、モニタアプリ識別子である。前記ＡＭ１２０５ｂにおけるＡＩＴの処理とは異なり、例えば、モニタアプリ識別子が１以上になっているもののみがモニタアプリとして扱われる。ＸＡＩＴ内にモニタアプリ識別子が１以上であるプログラムが複数存在した場合は、それら全てをモニタアプリとして扱う。詳細については後述する。
【００９２】
なお、モニタアプリ識別子が１以上になっているもののみがモニタアプリとして扱われると述べたが、他の条件によってモニタアプリとして扱うかどうかを決定しても実施可能である。
【００９３】
初期化サブプログラム８０２は、ＭＡ管理部１２０５ｆに対しモニタアプリの起動を指示することによって、ヘッドエンド１０１から送られてくる特殊なプログラム情報を元に特権的なプログラムの起動を行う。
【００９４】
図２１は、ＭＡ管理部１２０５ｆの構成の一例を示すブロック図である。
ＭＡ管理部１２０５ｆは、ＭＡ管理部メイン２１０１、ＸＡＩＴ取得解析部２１０２、ＭＡ選択部Ａ２１０３、ＭＡ起動部２１０４、ＭＡ監視部２１０５、およびＭＡ選択部Ｂ２１０６から構成される。
【００９５】
ＭＡ管理部メイン２１０１は、ＭＡ管理部１２０５ｆの中心的役割を果たすものであり、初期化サブプログラム８０２からの指示を受け付け、ＭＡ管理部１２０５ｆ内の他の構成要素を用いることにより、ＭＡ管理部１２０５ｆとしての機能を実現する。
【００９６】
ＸＡＩＴ取得解析部２１０２は、ＭＡ管理部メイン２１０１からの指示に従い、ヘッドエンド１０１から送られてきたＸＡＩＴを解析し、解析結果をＭＡ管理部メイン２１０１へ返す。例えば図２０に示した内容を解析結果として返す。
【００９７】
ＭＡ選択部Ａ２１０３は、ＭＡ管理部メイン２１０１から渡されたＸＡＩＴの解析結果に基づき、起動すべきモニタアプリを選択し、結果をＭＡ管理部メイン２１０１へ返す。例えば、図２０で示した内容がＸＡＩＴの解析結果として渡された場合、ＭＡ選択部Ａ２１０３は、起動すべきモニタアプリとして行１８１１で示されるプログラムを選択するかもしれない。
【００９８】
ＭＡ起動部２１０４は、ＭＡ管理部メイン２１０１から指定されたモニタアプリの起動を行う。例えば、図２０における行１８１１で示されるプログラムが指示された場合、モニタアプリとして「／ａ／ＭＡ１」を起動する。起動方法については、前記ＡＭ１２０５ｂの動作と同様であるため説明を省略する。
【００９９】
ＭＡ監視部２１０５は、ＭＡ管理部メイン２１０１から指定されたモニタアプリの動作状況を監視し、異常終了が発生した場合には、ＭＡ管理部メイン２１０１へ通知する。異常終了の発生を認知するための手法として、例えば、モニタアプリが投げた例外を受け取るなどで判断可能である。例外については、Ｊａｖａ（Ｒ）言語仕様で規定されているため説明を省略する。また、ＭＡ監視部２１０５は、同時に複数のモニタアプリの動作状況を監視できてもよい。
【０１００】
ＭＡ選択部Ｂ２１０６は、ＭＡ管理部メイン２１０１からの指示に従い、代替アプリを選択し、選択結果をＭＡ管理部メイン２１０１へ返す。
【０１０１】
図２２は、ＭＡ管理部１２０５ｆがモニタアプリの起動を行う手順を示すフローチャートである。
【０１０２】
初期化サブプログラム８０２からの指示を、ＭＡ管理部メイン２１０１が受け取ると、まず、ＭＡ管理部メイン２１０１は、ＸＡＩＴ取得解析部２１０２に対しＸＡＩＴ解析指示を出し、ＸＡＩＴ取得解析部２１０２は、ヘッドエンド１０１から送られてくるＸＡＩＴの取得を試みる（Ｓ２２０１）。さらに、ＸＡＩＴ取得解析部２１０２はＸＡＩＴを解析し（Ｓ２２０３）、解析結果をＭＡ管理部メイン２１０１へ返す。ＭＡ管理部メイン２１０１は前記解析結果を元に、ＭＡ選択部Ａ２１０３にモニタアプリの選択を依頼すると、ＭＡ選択部Ａ２１０３は、ＭＡ管理部メイン２１０１から渡された情報を元に、起動すべきモニタアプリを選択し、選択結果をＭＡ管理部メイン２１０１へ返す（Ｓ２２０４）。なお、Ｓ２２０１、またはＳ２２０３において、ＸＡＩＴの取得や解析に失敗していた場合、ＭＡ選択部Ａ２１０３は、代替プログラム（例えばＥＰＧ１２０２）を選択結果としてＭＡ管理部メイン２１０１へ返す。ＭＡ管理部メイン２１０１は、ＭＡ選択部Ａ２１０３から返された結果を元に、ＭＡ起動部２１０４に対しモニタアプリの起動を指示すると、ＭＡ起動部２１０４は、ＭＡ管理部メイン２１０１から指示されたモニタアプリを起動する（Ｓ２２０５）。ＭＡ管理部メイン２１０１は、さらに、ＭＡ監視部２１０５に対し、ＭＡ起動部２１０４が起動したモニタアプリの動作状況を監視するよう指示すると、ＭＡ監視部２１０５は、指示されたモニタアプリの動作状況の監視を開始する（Ｓ２２０６）。さらに、ＭＡ管理部メイン２１０１は、Ｓ２２０４において複数のモニタアプリが選択されていた場合、そのうち未だＭＡ起動部２１０４に起動を指示していないモニタアプリを選び、同様にモニタアプリの起動および監視を試みる（Ｓ２２０７）。ＭＡ管理部メイン２１０１がＳ２２０４において選択された全てのモニタアプリに対する起動および監視の指示を完了すると、モニタアプリの起動に関する処理を完了する。ここで、結果を初期化サブプログラム８０２へ返しても良い。また、Ｓ２２０４において、起動すべきモニタアプリが選択されなかった場合、ＭＡ管理部メイン２１０１は、代替プログラム（例えばＥＰＧ１２０２）が選択されたものとして、Ｓ２２０５以降の処理を行ってもよい。
【０１０３】
ここで、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処理について述べる。
【０１０４】
ＯＣＡＰ１．０仕様では、モニタアプリが異常終了した場合、モニタアプリの再起動を試みるように規定されている。しかし、異常終了した実績から、再起動後も再び異常終了することが十分に予想される。
【０１０５】
そこで、本発明では、異常終了が予想されるモニタアプリの代わりに代替プログラムを実行させる方法について述べる。なお、代替プログラムは、予め正常動作（つまり、異常終了を起こさないこと）を保証されていることが望ましいが、保証されていなくとも実施可能である。
【０１０６】
図２３は、起動されたモニタアプリが、予期せぬタイミングで異常終了した場合の処理を示したフローチャートである。
【０１０７】
ＭＡ監視部２１０５が監視中のモニタアプリの異常終了を検知すると（Ｓ２３０１）、ＭＡ監視部２１０５は異常終了したモニタアプリの監視を終了し（Ｓ２３０２）、ＭＡ管理部メイン２１０１に対し異常終了が発生したことを通知する（Ｓ２３０３）。
【０１０８】
ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５から異常終了の通知を受けると、ＭＡ選択部Ｂ２１０６に対して代替プログラムの選択を依頼する。ＭＡ選択部Ｂ２１０６は、ＭＡ管理部メイン２１０１からの依頼に基づき代替プログラムを選択し、代替プログラムの起動に必要な情報をＭＡ管理部メイン２１０１に返す（Ｓ２３０４）。代替プログラムの起動に必要な情報とは、例えば、プログラム名、保存場所などである。
【０１０９】
ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６から返された情報を元に、ＭＡ起動部２１０４に対し、代替プログラムの起動を指示する（Ｓ２３０５）。
【０１１０】
ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５に対し、代替プログラムの動作状況の監視を依頼する（Ｓ２３０６）。
【０１１１】
さらに、代替プログラムが異常終了した場合、前述のモニタアプリが異常終了した場合と同様の手順（Ｓ２３０１〜Ｓ２３０６）で次の代替プログラムが選択され起動される。
【０１１２】
また、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、必ずしも代替プログラムの起動処理（つまりＳ２３０４以降）を行う必要はない。例えば、図２２のＳ２２０４において複数のモニタアプリが選択され、その結果として複数のモニタアプリが起動されていた場合、ＭＡ管理部メイン２１０１は、それら全てのモニタアプリが異常終了した場合のみ、代替プログラムの起動処理（つまりＳ２３０４以降）を行うことも可能である。
【０１１３】
さらに、特定のモニタアプリが異常終了した場合のみ代替プログラムの起動処理を行うことも可能である。特定のモニタアプリとは、例えば図２０における列２００５モニタアプリ識別子が１と指定されたモニタアプリである。この場合、モニタアプリ識別子が２と指定されたモニタアプリが異常終了したとしても、代替プログラムの起動処理は行われなくともよい。さらにこの場合、モニタアプリ識別子が１ではないモニタアプリに対して、図２２におけるＳ２２０６の処理（つまりモニタアプリの動作状況の監視）を行わなくとも実施可能である。
【０１１４】
なお、代替プログラムの例としてＥＰＧ１２０２を述べたが、起動可能であれば、他のプログラムを代替プログラムとして利用しても実施可能である。例えば、代替プログラムとして、端末装置を再起動するものや、単純にチャンネル切り替えのみを行うものであっても実施可能である。また、代替プログラムは、ＭＡ管理部メイン２１０１に対しプログラムの情報を指定することで、他の代替プログラムの起動を依頼することも可能である。例えば、代替プログラムは、先に異常終了したモニタアプリの再起動を指示し、その後、モニタアプリが起動されることも可能である。
【０１１５】
なお、代替プログラムの例であるＥＰＧ１２０２は予め端末装置に用意されているものとして述べたが、予め用意されていなくとも本発明は実施可能である。例えば、代替プログラムを起動する段階において、外部からダウンロードして起動することでも実施可能である。例えば、代替プログラムをネットワーク経由でダウンロードしたり、端末装置が受信しているＭＰＥＧストリーム中からダウンロードしてもよい。これにより、予め用意されたものではないプログラムを代替プログラムとして起動可能となる。
【０１１６】
なお、モニタアプリをダウンロードして実行すると述べたが、１回目のダウンロード時に２次記憶部７０５に保存しておき、２回目以降は、ダウンロードする代わりに２次記憶部７０５に保存したものを利用して起動したとしても、本発明は実施可能である。
【０１１７】
なお、ＭＡ選択部Ｂ２１０６が代替プログラムとしてＥＰＧ１２０２を選択する場合について述べたが、任意の選択方式を用いて、起動可能な任意のプログラムを選択できれば実施可能である。
【０１１８】
さらに、ＭＡ管理部１２０５ｆは、モニタアプリが異常終了した場合、異常終了の内容を第１記憶部５１１または第２記憶部５１０へ保存することも可能である。さらに、保存した内容を端末装置の外部へ送信することも可能である。保存する内容とは、例えば、異常終了が発生した時刻、Ｊａｖａ（Ｒ）プログラム識別子、プログラム名、異常終了の種類（例えばメモリ不足）などであるが、少なくとも異常終了が起きたことが判別できるものであれば実施可能である。また、情報端末の外部の例として、端末装置製造者や放送事業者がある。これにより、例えば端末装置の不具合で異常終了が発生した場合には端末装置製造者に送信することで、端末装置製造者が迅速な対応策を講じることが可能であり、モニタアプリの不具合で発生した場合は放送事業者に送信することで、モニタアプリの不具合を迅速に修正することが可能となる。この場合における処理を図２４に示す。なお、図２４において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。
【０１１９】
図２４のＳ２３０３によってＭＡ管理部メイン２１０１がモニタアプリの異常終了を検知すると、ＭＡ管理部メイン２１０１は、その異常終了の内容を１次記憶部５１１または２次記憶部５１０へ保存する（Ｓ２４１０）。さらに、ＭＡ管理部メイン２１０１は、保存した内容を端末装置の外部へ送信する。その後、ＭＡ管理部メイン２１０１は、Ｓ２３０４以降の処理を継続する。
【０１２０】
なお、送信手段については、端末装置外部へ情報を伝達できるものであれば実施可能である。例えば、周知の技術であるＦＴＰやＥ−ｍａｉｌなどを利用して保存内容を送信することが可能である。
【０１２１】
なお、２次記憶部５１０として、着脱可能な記憶装置を利用しても実施可能である。この場合、外部への送信を行わず、着脱可能な記憶装置を、何らかの輸送手段を用いて輸送することでも実施可能である。
【０１２２】
なお、本実施の形態では、ＲＯＭ５１２が保存する内容を２次記憶部５１０が保存することで、ＲＯＭ５１２を削除することも実施可能である。また、２次記憶部５１０は、複数のサブ２次記憶部で構成し、個々のサブ２次記憶部が異なる情報を保存しても実施可能である。例えば、１つのサブ２次記憶部はチューニング情報のみを保存し、別のサブ２次記憶部は、ＯＳ１２０１のライブラリ１２０１ｂを保存し、更に別のサブ２次記憶部は、ダウンロードしたＪａｖａ（Ｒ）プログラムを保存するなど、詳細に分割することが可能である。
【０１２３】
また、本実施の形態では、登録されたＪａｖａ（Ｒ）プログラムを２次記憶部５１０に保存していたが、１次記憶部５１１に保存することも実施可能である。１次記憶部５１１に保存する場合、電源ＯＦＦ時に、保存された情報は全て消える。
【０１２４】
（実施の形態２）
実施の形態１では、例として、ＭＡ選択部Ｂ２１０６が代替プログラムとしてＥＰＧ１２０２を選択する場合について述べたが、本実施の形態では、さらに、他の選択方式として、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択する場合について述べる。
【０１２５】
これは、例えば、ＭＡ管理部１２０５ｆが、モニタアプリが異常終了したとしても、何らかの判断根拠に基づき、同じモニタアプリを再起動する場合である。判断根拠とは、例えば、異常終了の原因に対する回避策を予め知っており、異常終了後、その回避策を講じることで再起動後の正常動作が期待できる場合である。回避策とは、例えば、メモリ不足によってモニタアプリが異常終了した場合、他のプログラムを終了させることなどにより、モニタアプリが利用可能なメモリ容量を確保することである。
【０１２６】
本実施の形態では、ＭＡ監視部２１０５は、モニタアプリの異常終了が発生した際に、異常終了の発生の通知とともに、モニタアプリが異常終了した原因を示す例えばコードをＭＡ管理部メイン２１０１へ通知する。ＭＡ管理部メイン２１０１は、コード（異常終了した原因）に対応した回避策をあらかじめテーブル等に保持しており、通知されたコードに対応した回避策を決定し、決定した回避策を実施する。
【０１２７】
本実施の形態における動作手順を図２５に示す。
図２５において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。
【０１２８】
Ｓ２３０３において、ＭＡ監視部２１０５は、モニタアプリの異常終了が発生したことを通知するとともに、モニタアプリが異常終了した原因を示すコードをＭＡ管理部メイン２１０１へ通知する。そして、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、異常終了したモニタアプリを選択し、モニタアプリの起動に必要な情報をＭＡ管理部メイン２１０１に返す（Ｓ２５１０）。モニタアプリの起動に必要な情報とは、図２２のＳ２２０４で返された情報、またはその一部、および付加情報である。付加情報として、例えば、選択されたモニタアプリが異常終了した回数や、選択されたモニタアプリが代替プログラムとして選択された回数などである。この場合、ＭＡ選択部Ｂ２１０６は、モニタアプリが異常終了した回数を保持するために、例えば１次記憶部５１１に情報を保持する。図２６（ａ）、（ｂ）及び（ｃ）は、１次記憶部５１１に保持しているデータを模式的に表した表である。列２６０１は、Ｊａｖａ（Ｒ）プログラム識別子であり、列２６０２は、Ｊａｖａ（Ｒ）プログラム識別子で示されるプログラムが異常終了した回数である。行２６１１および行２６１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。例えば、図２６（ａ）を参照して、行２６１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、プログラムが異常終了した回数「０」の組である。行２６１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０２」、プログラムが異常終了した回数「０」の組である。
【０１２９】
図２６（ａ）は、図２３におけるＳ２３０３を処理する前の保持内容である。図２５のＳ２３０３においてＪａｖａ（Ｒ）識別子が３０１であるモニタアプリの異常終了が通知された場合、１次記憶部５１１に保持されるデータは、図２６（ｂ）のように変化する。なお、付加情報が無くとも実施可能である。
【０１３０】
ＭＡ管理部メイン２１０１は、通知されたコードに対応した回避策を決定し、決定した異常終了の原因に対する回避策を実施する（Ｓ２５１１）。その後、Ｓ２３０５以降の処理を行う。
【０１３１】
本手順により、モニタアプリが異常終了した後、再度、同一のモニタアプリを起動することが可能となる。
【０１３２】
（実施の形態３）
実施の形態２では、例として、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択する場合について述べたが、本実施の形態では、他の選択方式として、異常終了の回数がＮ回までは、ＭＡ選択部Ｂ２１０６がＭＡ選択部Ａ２１０３の選択結果と同じプログラム（つまり異常終了したプログラム）を再度選択し、Ｎ＋１回目以降は、他のプログラム（例えばＥＰＧ１２０２など）を選択しても良い。
【０１３３】
ここでは、Ｎ＝２の場合であり、かつ、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが異常終了した時に代替プログラムを選択する場合について説明する。
【０１３４】
図２７は、本実施の形態における動作手順を示したものである。
図２７において、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。
【０１３５】
Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが１回目の異常終了を起こした場合、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、異常終了の回数をカウントする（ステップＳ２７０１）。すなわち、１次記憶部５１１に保存してある内容を図２６（ａ）から図２６（ｂ）のように変更する。次に、図２６に示したプログラムが異常終了した回数を参照し、異常終了回数が所定回数（Ｎ回）以上であるか否かを判定する（ステップＳ２７０２）。ここで、異常終了回数が所定回数（Ｎ回）以上でない場合（ステップＳ２７０２でＮｏ）には、ＭＡ選択部Ｂ２１０６は、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリを選択し（ステップＳ２７０４）、以後、Ｓ２３０５以降の処理が行われる。一方、異常終了回数が所定回数（Ｎ回）以上である場合（ステップＳ２７０２でＹｅｓ）には、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリ以外のプログラム（例えばＥＰＧ１２０２など）を選択し（ステップＳ２７０３）、以後、Ｓ２３０５以降の処理が行われる。
【０１３６】
ここの例では、図２６（ｂ）の列２６０２を参照して、これまでの異常終了回数が１回であることが分かる。よって、ＭＡ選択部Ｂ２１０６は、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリを選択する。以後、Ｓ２３０５以降の処理が行われる。
【０１３７】
次に、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリが２回目の異常終了を起こした場合、Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、１次記憶部５１１に保存してある内容を図２６（ｂ）から図２６（ｃ）のように変更する。次に、図２６に示したプログラムが異常終了した回数を参照する。この時、図２６（ｃ）の列２６０２を参照して、これまでの異常終了回数が２回であることが分かる。ここで、ＭＡ選択部Ｂ２１０６は、既に所定回数（この場合２回）に達したため、Ｊａｖａ（Ｒ）プログラム識別子が３０１であるモニタアプリ以外のプログラム（例えばＥＰＧ１２０２など）を選択する。以後、Ｓ２３０５以降の処理が行われる。
【０１３８】
これにより、Ｊａｖａ（Ｒ）プログラム識別子が３０１の異常終了に対し、１回目まではＪａｖａ（Ｒ）プログラム識別子が３０１を再起動し、２回目以降はモニタアプリ以外のプログラムを起動することが可能となる。
【０１３９】
なお、ここではＮ＝２の場合について説明したが、Ｎは１以上の整数であれば実施可能である。
【０１４０】
（実施の形態４）
実施の形態１〜３では、ＭＡ選択部Ｂ２１０６が代替プログラムの選択方式として、選択するプログラムが予め決められている場合について述べたが、他の選択方式として、選択候補となるプログラムの一覧を視聴者に提示し、視聴者に選択させる方法をとっても良い。
【０１４１】
図２８は、本実施の形態における動作手順を示したものである。なお、図２３で示した処理と同様の部分に関しては、同一番号を付し、説明を省略する。
【０１４２】
Ｓ２３０３の結果、ＭＡ管理部メイン２１０１は、ＭＡ選択部Ｂ２１０６に対し、代替プログラムの選択を依頼すると、ＭＡ選択部Ｂ２１０６は、まず、代替プログラムとして選択可能なプログラムの一覧を作成する（Ｓ２８１０）。次に、ＭＡ選択部Ｂ２１０６は、作成したプログラムの一覧を、視聴者に提示し、選択を促す（Ｓ２８１１）。ＭＡ選択部Ｂ２１０６は、視聴者の選択に基づき、代替プログラムを決定する（Ｓ２８１２）。以後、Ｓ２３０５以降の処理が行われる。
【０１４３】
ここで、図２９は、Ｓ２８１０において作成した代替プログラムとして選択可能なプログラムの一覧の一例を模式的に表した表である。列２９０１はＪａｖａ（Ｒ）プログラムの識別子である。列２９０２はプログラム名である。行２９１１と行２９１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。行２９１１で定義されるＪａｖａ（Ｒ）プログラムは、識別子「３０１」、プログラム名「ＭＡ１」の組である。行２９１２で定義されるＪａｖａ（Ｒ）プログラムは、識別子「７０１」、プログラム名「ＥＰＧ」の組である。
【０１４４】
なお、図２９で表した表の内容でなくとも、ＭＡ選択部Ｂ２１０６がプログラムを識別できる情報が含まれていれば、他の内容を用いても実施可能である。
【０１４５】
また、一覧に含まれるプログラムは、起動可能であれば、どこに存在していても実施可能である。
【０１４６】
図３０は、Ｓ２８１０において視聴者に提示される表示の一例を示したものである。ここでは、ディスプレイ５０９に、ダイアログ３００１が表示されている。視聴者は、表示されたプログラムの一覧からプログラムを選択する。例えば、リモコンの「１」ボタンを押すことで「ＭＡ１」を選択する。その場合、ＭＡ選択部Ｂ２１０６は、視聴者が識別子「３０１」のプログラムを選択したことが分かるので、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、識別子「３０１」を持つプログラムを代替プログラムとして決定する。また、視聴者がリモコンの「２」ボタンを押すことで「ＥＰＧ」を選択した場合、ＭＡ選択部Ｂ２１０６は、視聴者が識別子「７０１」のプログラムを選択したことが分かるので、ＭＡ選択部Ｂ２１０６は、代替プログラムとして、識別子「７０１」を持つプログラムであるＥＰＧ１２０２を代替プログラムとして決定する。
【０１４７】
なお、少なくとも視聴者がプログラムを識別できる情報が含まれていれば、他の内容を用いても実施可能である。
【０１４８】
また、少なくとも視聴者がどのプログラムを選択したかがＭＡ選択部Ｂ２１０６へ伝わるのであれば、どのような表示形態、および選択方法を用いても、実施可能である。
【０１４９】
また、ＭＡ選択部Ｂ２１０６は、ある条件を満たすことで、視聴者の選択を待つことなく、代替プログラムを決定する手も実施可能である。例えば、視聴者に提示した後、３０秒経過しても視聴者が選択しなかった場合、ＭＡ選択部Ｂ２１０６は代替プログラムとして識別子「７０１」を持つプログラムであるＥＰＧ１２０２を代替プログラムとして決定することが可能である。
【０１５０】
（実施の形態５）
実施の形態１〜３において、ＭＡ管理部メイン２１０１は、ＭＡ監視部２１０５から異常終了通知を受け取った際、視聴者に対し、異常終了の発生を通知してもよい。
【０１５１】
図３１は、視聴者に対する通知方法の一例を示したものである。例えば、端末装置本体の７セグＬＥＤ３１０２に表示したり、または、端末装置本体のランプ３１０１を点灯することによって通知可能である。
【０１５２】
図３２は、ディスプレイ５０９に表示することでモニタアプリの異常終了を通知する場合の表示の一例である。ダイアログ３２０１内に視聴者に対するメッセージを記述し、ダイアログ３２０１をディスプレイ５０９に表示することで、視聴者に対し、異常終了の発生を通知できる。
【０１５３】
なお、例として図３１、図３２に示した方法でなくとも、視聴者が認識可能な方法で提示すれば実施可能である。
【０１５４】
（実施の形態６）
本実施の形態では、ヘッドエンド１０１から取得したＸＡＩＴの情報を元に起動されたＪａｖａ（Ｒ）プログラムが、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムと置き換わって、ＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムとして登録され、ＰＯＤ５０４内のサブプログラムとメッセージを送受信できるような特殊なモニタアプリである場合について記述する。
【０１５５】
例えば、Ｊａｖａ（Ｒ）プログラムを、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムであるダイアログ表示プログラムと置き換えることによって、そのＪａｖａ（Ｒ）プログラムは、ＰＯＤ５０４内のサブプログラムであるＰＰＶサブプログラム８０５とメッセージの送受信を行うことが可能である。
【０１５６】
他の実施の形態とは異なり、本実施の形態の場合、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムは常に動作し続け、Ｊａｖａ（Ｒ）プログラムが登録された場合においても、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムは終了されなくても良い。ただし、この場合においても、登録されたＪａｖａ（Ｒ）プログラムが異常終了した場合、再度そのＪａｖａ（Ｒ）プログラムを実行させたとしても、再び異常終了することが十分に予想されるため、ユーザの要求（例えばＰＰＶの視聴）を妨げることになる。本実施の形態では、この課題に対する本発明の適用について述べる。
【０１５７】
本実施の形態においては、まず、ＯＳ１２０１のライブラリ１２０２ｂ内のプログラムと置き換わってＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムの、登録処理および登録削除処理について説明し、次に、本題であるＪａｖａ（Ｒ）プログラムが異常終了した場合における処理について記述する。
【０１５８】
図３３は、本実施の形態におけるＪａｖａ（Ｒ）プログラムに関するＸＡＩＴの情報の一例である。図３３において、図２０と同一要素に対しては同一番号を付し、説明を省略する。列３３１１と列３３１２は、Ｊａｖａ（Ｒ）プログラムの情報の組である。列３３１１で定義されるＪａｖａ（Ｒ）プログラムは、Ｊａｖａ（Ｒ）プログラム識別子「７０１」、制御情報「ａｕｔｏｓｔａｒｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「／ａ／ＰＰＶ１Ｘｌｅｔ」、モニタアプリ識別子「１」の組である。列３３１２で定義されるＪａｖａ（Ｒ）プログラムは、Ｊａｖａ（Ｒ）プログラム識別子「７０２」、制御情報「ｐｒｅｓｅｎｔ」、ＤＳＭＣＣ識別子「１」、プログラム名「／ｂ／ＰＰＶ２Ｘｌｅｔ」、モニタアプリ識別子「２」の組である。ここでは、Ｊａｖａ（Ｒ）プログラムに対して５つの情報しか規定しないが、より多くの情報が定義されていても本発明は実施可能である。
【０１５９】
ここで、行３３１１で表されるＪａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」はＰＯＤ５０４が内部に持つＰＰＶサブプログラム８０５と連携して、ＰＰＶ対象の番組情報を表示するプログラムとする。端末装置５００に、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」が無いときは、ＰＰＶサブプログラム８０５が端末装置５００のＣＰＵ５１４に対し画面に表示したい情報を送ると、ＯＳ１２０１のライブラリ１２０２ｂに含まれるダイアログ表示プログラムが、図３４に示すような番組購入を促すメメッセージをディスプレイ５０９に表示する。３４０１はダイアログボックスであり、メッセージ３４０２、４桁の暗証番号を入力するための暗証番号ボックス３４０３、ＯＫボタン３４０４、取消ボタン３４０５の表示要素を持つ。しかしながら、この表示では、番組内容が不明なため、ユーザは番組ガイドなどの本を参照するなどして番組内容を確認する必要があり不便である。
【０１６０】
端末装置５００上において、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」が起動されると、Ｊａｖａ（Ｒ）プログラム「ＰＰＶ１Ｘｌｅｔ」は、Ｊａｖａ（Ｒ）ライブラリ１２０５のＰＯＤ  Ｌｉｂ１２０５ｅに対し、自身をＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムとして登録する。登録の際、自身のＪａｖａ（Ｒ）プログラムのモジュール識別子として「ＰＰＶ」も同時に登録する。ＰＯＤ  Ｌｉｂ１２０５ｅは登録された内容を２次記憶部５１０に記憶する。図３５は、２次記憶部５１０が、登録された、ＰＯＤ５０４から参照可能なＪａｖａ（Ｒ）プログラムの情報を保存している状態の一例である。この例では、表形式で保存しており、列３５０１はＪａｖａ（Ｒ）プログラムのモジュール識別子、列３５０４はＪａｖａ（Ｒ）プログラムの名前を記憶している。行３５１１および行３５１２は、登録されているＪａｖａ（Ｒ）プログラムを表す。行３５１１は、モジュール識別子「ＰＰＶ」、Ｊａｖａ（Ｒ）プログラムの名前「ＰＰＶ１Ｘｌｅｔ」の組である。行２３１２は、モジュール識別子「ＶＯＤ」、Ｊａｖａ（Ｒ）プログラムの名前「ＶＯＤＸｌｅｔ」の組である。なお、ここではＪａｖａ（Ｒ）プログラムのモジュール識別子３５０１およびＪａｖａ（Ｒ）プログラムの名前３５０４を保存しているが、少なくともＪａｖａ（Ｒ）プログラムのモジュール識別子および、登録されたＪａｖａ（Ｒ）プログラムを一意に特定できる情報が保存されていれば実施可能である。
【０１６１】
ＰＯＤ  Ｌｉｂ１２０５ｅが、登録されたＪａｖａ（Ｒ）プログラムの情報をＰＯＤ５０４に通知することによって、ＰＯＤ５０４内のサブプログラムと、登録されたＪａｖａ（Ｒ）プログラム間でメッセージの送受信が可能となる。例えば、ＰＯＤ５０４内のＰＰＶサブプログラム８０５は、図３５の行３５１１で示される登録されたＪａｖａ（Ｒ）プログラムに、ＰＰＶ購入対象の番組内容を送り、そのＪａｖａ（Ｒ）プログラムは、ダイアログ表示プログラムの代わりに、図３６のようにディスプレイ５０９に表示を行うことができる。ここでは、３６０１は、登録されたＪａｖａ（Ｒ）プログラムによって、番組情報、およびダイアログ表示プログラムと同等の表示を行われたものである。
【０１６２】
ただし、ここではＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムは何も表示していないが、実際には登録されたＪａｖａ（Ｒ）プログラムと一緒に実行されていても良い。この際、ＰＯＤ５０４からは、登録されたＪａｖａ（Ｒ）プログラムの種別を参照してメッセージを送る相手のＪａｖａ（Ｒ）プログラムを識別している。具体的には、ＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムがモジュール識別子「ＰＰＶ」を持ち、登録するＪａｖａ（Ｒ）プログラムに、ＯＳ１２０１のライブラリ１２０２ｂのダイアログ表示プログラムと同じモジュール識別子「ＰＰＶ」を持たせ、ＰＯＤ５０４はこのモジュール識別子を参照してメッセージを送受信する相手のＪａｖａ（Ｒ）プログラムを識別している。
【０１６３】
本実施の形態においては、ＰＯＤ５０４の各サブプログラムは、同一モジュール識別子を持つ複数のプログラムに対し同時にメッセージの送受信が不可能である（つまり、あるモジュール識別子に対して、ＰＯＤ５０４の各サブプログラムが送受信できるプログラムは最大でも１つしか許されない）ものとする。
【０１６４】
図３７は、ＰＯＤ  Ｌｉｂ１２０５ｅにＪａｖａ（Ｒ）プログラムが登録される場合におけるＰＯＤ  Ｌｉｂ１２０５ｅの動作をまとめたフローチャートである。
【０１６５】
ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムとのメッセージの配送（送信／受信の少なくとも一方をまたは両方を含む）の登録を受け付けると、２次記憶部５１０へ必要な情報（例えば図３５に示すような情報）を保存し（ステップＳ３７０１）、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムのモジュール識別子と、既に２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムおよびライブラリ１２０１ｂ内のプログラムのモジュール識別子とを比較することで、登録を受け付けたＪａｖａ（Ｒ）プログラムのモジュール識別子と同じモジュール識別子のプログラムが存在するかどうかを判定する（ステップＳ３７０２）。
【０１６６】
その結果、同じモジュール識別子のプログラムが存在する場合（ステップＳ３７０２でＹｅｓの場合）は、ＰＯＤ  Ｌｉｂ１２０５ｅは、それまでメッセージ配送を行っていた対象、具体的には、２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムまたはＯＳ１２０１のライブラリ１２０１ｂ内のプログラムに対して、メッセージ配送が停止することを事前通知する（ステップＳ３７０３）。
【０１６７】
停止の通知を受けたＪａｖａ（Ｒ）プログラムやＯＳ１２０１のライブラリ１２０１ｂは、必要な処理（ＰＯＤ５０４とのメッセージの配送の停止（つまりメッセージの配送の登録を非登録とすること）をするために必要な内部処理）を終了したあと、ＰＯＤ  Ｌｉｂ１２０５ｅにメッセージ送信の停止の了解を通知する（ステップＳ３７０４）。
【０１６８】
その了解通知を受けたＰＯＤ  Ｌｉｂ１２０５ｅは、ＰＯＤ５０４と、既存の（２次記憶部５１０に既に登録されており、ＰＯＤ５０４とのメッセージの配送の停止の対象となっている）Ｊａｖａ（Ｒ）プログラムまたはＯＳ１２０１のライブラリ１２０１ｂ内のプログラムとのメッセージ配送の登録を削除（つまり非登録）し、そのプログラムとのメッセージ配送を停止する（ステップＳ３７０５）。そして、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムに対しメッセージ配送を開始する旨の通知する（ステップＳ３７０６）。その後、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムへのＰＯＤ５０４からのメッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする（ステップＳ３７０７）。
【０１６９】
一方、同じモジュール識別子のプログラムが存在しない場合（ステップＳ３７０２でＮｏの場合）は、ＰＯＤ  Ｌｉｂ１２０５ｅは、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムに対してメッセージ配送を開始する旨を通知した後に（ステップＳ３７０６）、ステップＳ３７０１において登録を受け付けたＪａｖａ（Ｒ）プログラムへのＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことで、メッセージの配送を有効にする（ステップＳ３７０７）。
【０１７０】
図３８、図３９は、本動作のフローチャート（図３７）に基づいて、ＰＯＤ５０４とのメッセージの配送先の変化を表す模式図である。図３８（ａ）は、Ｊａｖａ（Ｒ）プログラムが登録されていない状態を表し、ＰＯＤ５０４とのメッセージ配送がＯＳ１２０１のライブラリ１２０１ｂ（より具体的には、例えばライブラリ１２０１ｂのダイアログ表示プログラム）と行われている。矢印３８０１は、メッセージ配送を表す。図３８（ａ）の状態で、ＯＳ１２０１のライブラリ１２０１ｂ内のプログラムと同一のモジュール識別子を持つＪａｖａ（Ｒ）プログラム３８１１が登録されると、図３７のフローチャートに従って、矢印３８０１で表されるＰＯＤ５０４とライブラリ１２０１ｂとのメッセージ配送を停止し、ＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３８１１とのメッセージの配送が設定され、図３８（ｂ）の状態になる。
【０１７１】
図３９（ａ）は、Ｊａｖａ（Ｒ）プログラム３９１１が登録され、ＰＯＤ５０４とのメッセージ配送が、登録されているＪａｖａ（Ｒ）プログラム３９１１と行われている状態を表す。矢印３９０１は、メッセージ配送を表す。図３９（ａ）の状態で、Ｊａｖａ（Ｒ）プログラム３９１１と同一モジュール識別子を持つＪａｖａ（Ｒ）プログラム３９１２が登録されると、図３７のフローチャートに従って、矢印３９０１で表されるＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３９１１とのメッセージの配送を停止し、ＰＯＤ５０４とＪａｖａ（Ｒ）プログラム３９１２とのメッセージの配送が設定され（矢印３９０２）、図３９（ｂ）の状態になる。
【０１７２】
また、ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの登録を受け付けると共に、登録の削除（つまり非登録の要求）も受け付ける。
【０１７３】
図４０は、ＰＯＤ  Ｌｉｂ１２０５ｅがＪａｖａ（Ｒ）プログラムの登録を削除する（つまり２次記憶部５１０に登録されているＪａｖａ（Ｒ）プログラムとのメッセージの配送の登録を非登録とする）場合におけるＰＯＤ  Ｌｉｂ１２０５ｅの動作をまとめたフローチャートである。
【０１７４】
ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの削除を受け付けると（ステップＳ４００１）、削除の対象となるＪａｖａ（Ｒ）プログラムに対して、メッセージの配送が停止することを事前通知する（ステップＳ４００２）。通知を受けたＪａｖａ（Ｒ）プログラムは、必要な処理（ＰＯＤ５０４とのメッセージ配送の停止（つまりメッセージ配送の登録を非登録とすること）前にすべき必要な内部処理）を終了したあと、ＰＯＤ  Ｌｉｂ１２０５ｅにメッセージの配送の停止の了解を通知する（ステップＳ４００３）。その了解通知を受けたＰＯＤ  Ｌｉｂ１２０５ｅは、２次記憶部５１０に登録されたＪａｖａ（Ｒ）プログラムのうち要求された削除の対象となっているＪａｖａ（Ｒ）プログラムへのメッセージ配送の登録を削除する（つまり非登録とする）ことにより、ＰＯＤ５０４と、対象となるＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止する（ステップＳ４００４）。そして、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことで、ＰＯＤ５０４とＯＳ１２０１のライブラリ１２０１ｂ（より具体的には、その中に含まれる、削除の対象となるＪａｖａ（Ｒ）プログラムと同じモジュール識別子を持つプログラム）とのメッセージの配送を有効にする（ステップＳ４００５）。ここで、もし、ＯＳ１２０１のライブラリ１２０１ｂ内のプログラムのうち、削除の対象となるＪａｖａ（Ｒ）プログラムと同じモジュール識別子を持つプログラムが動作していないならば、同じモジュール識別子を持つプログラムを起動した後にメッセージの配送を有効にすることで同様の動作が可能となる。
【０１７５】
また、ステップＳ４００５において２次記憶部５１０に登録されている他のＪａｖａ（Ｒ）プログラムまたは新たに登録されたＪａｖａ（Ｒ）プログラムがあり、これらのＪａｖａ（Ｒ）プログラムのいずれか１つとのメッセージの配送を行いたい（または行える）場合には、ＰＯＤ５０４と対象となるＪａｖａ（Ｒ）プログラムとのメッセージの配送を受け付ける登録を行うことで対象となるＪａｖａ（Ｒ）プログラムとのメッセージの配送を有効にするようにしても良い。
【０１７６】
次に、本題であるＪａｖａ（Ｒ）プログラムが異常終了した場合における処理について記述する。
【０１７７】
図３８（ｂ）の状態において、Ｊａｖａ（Ｒ）プログラム３８１１が異常終了した場合の処理について述べる。図４１を参照して、ＭＡ管理部１２０５ｆは、その異常終了を検知するとともに、ＰＯＤ  Ｌｉｂ１２０５ｅに対し異常終了した旨を通知する。図４２は、その際の動作をまとめたフローチャートである。図２３と同一の処理については同一番号を付し、説明を省略する。ＭＡ監視部２１０５が監視中のモニタアプリ（ここではＪａｖａ（Ｒ）プログラム３８１１）の異常終了を検知すると（Ｓ２３０１）、ＭＡ監視部２１０５は異常終了したモニタアプリの監視を終了し（Ｓ２３０２）、ＭＡ管理部メイン２１０１に対し異常終了が発生したことを通知する（Ｓ２３０３）。ＭＡ管理部メイン２１０１は、ＰＯＤ  Ｌｉｂ１２０５ｅに対し、モニタアプリの終了を通知する（Ｓ４２０４）。
【０１７８】
ＰＯＤ  Ｌｉｂ１２０５ｅは、異常終了の通知を受け取ると、異常終了したＪａｖａ（Ｒ）プログラム３８１１とのメッセージ配送の登録を削除する処理を行う。図４３は、その際の動作をまとめたフローチャートである。ＰＯＤ  Ｌｉｂ１２０５ｅは、Ｊａｖａ（Ｒ）プログラムの異常終了を受け取ると（Ｓ４３０１）、ＰＯＤ５０４とそのＪａｖａ（Ｒ）プログラムとのメッセージ配送の登録を削除する（つまり非登録とする）ことにより、ＰＯＤ５０４とそのＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止する（ステップＳ４３０２）。そして、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことでＯＳ１２０１のライブラリ１２０１ｂとのメッセージの配送を有効にする（ステップＳ４３０４）。
【０１７９】
また、図３９（ｂ）のように、２次記憶部５１０に、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラム（ここでは３９１１を意味する）が記憶されている場合について述べる。Ｊａｖａ（Ｒ）プログラム３９１２が異常終了した場合、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録するのではなく、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラム３９１２を登録しても良い。図４４は、その際の動作をまとめたフローチャートである。図４３と同一処理については、同一番号を付し、説明を省略する。ＰＯＤ５０４と異常終了したＪａｖａ（Ｒ）プログラムとのメッセージ配送を停止すると（ステップＳ４３０２）、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラムが存在しているかどうかを調べる（Ｓ４４０３）。存在している場合（Ｓ４４０３でＹｅｓの場合）、そのＪａｖａ（Ｒ）プログラムを登録する。この登録処理は図３７で示したフローチャートに従い、Ｓ３７０２においてＮｏの場合の処理となる。他のＪａｖａ（Ｒ）プログラムが存在しない場合、ＰＯＤ  Ｌｉｂ１２０５ｅは、ＯＳ１２０１のライブラリ１２０１ｂに対しＰＯＤ５０４とのメッセージの配送を受け付ける登録を行うことでＯＳ１２０１のライブラリ１２０１ｂとのメッセージの配送を有効にする（ステップＳ４３０４）。
【０１８０】
なお、同一モジュール識別子を持つ他のＪａｖａ（Ｒ）プログラムが存在している場合においても、図４３に示した処理を行っても（つまりＳ５０４の処理へ移行しても）良い。
【０１８１】
なお、本実施の形態においては、ＰＯＤ５０４内のＰＰＶサブプログラム８０５とＪａｖａ（Ｒ）プログラムがメッセージ交換を行い、動作を行うこととしているが、ＰＰＶに限らず、ＰＯＤ５０４上のいかなるサブプログラムと、端末装置５００上のいかなるＪａｖａ（Ｒ）プログラムの間でメッセージ交換を行い、動作することに対しても適応可能である。また、Ｊａｖａ（Ｒ）プログラムはＪａｖａ（Ｒ）仕様で規定される書式に基づいた形式の部分と、ＣＰＵが直接実行できる形式の部分の混合でもよいし、ＣＰＵが直接実行できる形式のみで構成されていても実施可能である。
【０１８２】
なお、本実施の形態においては、登録されたＪａｖａ（Ｒ）プログラムに関連する内容を２次記憶部５１０に保存したが、１次記憶部５１１に保存しても実施可能である。
【０１８３】
本実施の形態により、ＰＯＤ５０４とのメッセージ送受信を行えるよう登録されたＪａｖａ（Ｒ）プログラムが異常終了した場合においても、ＯＳ１２０１のライブラリ１２０１ｂのプログラムとのメッセージ送受信を再開することで、ＰＯＤ５０４は端末上のプログラムとのメッセージ送受信を継続することができる。
【産業上の利用可能性】
【０１８４】
本発明に係るプログラム実行装置は、デジタルテレビ受信機の動作の安定性向上に対して有用であり、またデジタルテレビ受信機に限らずパーソナルコンピュータや携帯電話など、ソフトウエアによって制御される情報機器の動作の安定性向上に対しても応用できる。
【図面の簡単な説明】
【０１８５】
【図１】本発明に係るケーブルテレビシステムの実施の形態１の構成図である。
【図２】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図３】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図４】本発明に係るケーブルテレビシステムにおいてヘッドエンドと端末装置間の通信に使用される周波数帯域の使い方の一例を示す図である。
【図５】本発明に係るケーブルテレビシステムにおいて端末装置の構成図である。
【図６】本発明に係るケーブルテレビシステムにおいて端末装置の外観の一例を示す図である。
【図７】本発明に係るＰＯＤのハードウエア構成の構成図である。
【図８】本発明に係るＰＯＤが保存するプログラム構成の構成図である。
【図９】ＭＰＥＧ規格で定義されているパケットの構成図である。
【図１０】ＭＰＥＧ２トランスポートストリームの一例を示す図である。
【図１１】入力部をフロントパネルで構成した場合の外観の一例を示す図である。
【図１２】本発明に係る端末装置が保存するプログラム構成の構成図である。
【図１３】（ａ）本発明に係るディスプレイの表示の一例を示す図である。（ｂ）本発明に係るディスプレイの表示の一例を示す図である。
【図１４】本発明に係る２次記憶部が保存する情報の一例を示す図である。
【図１５】本発明に係る１次記憶部が保存する情報の一例を示す図である。
【図１６】本発明に係るＭＰＥＧ２規格が規定するＰＡＴの内容を表す模式図である。
【図１７】本発明に係るＭＰＥＧ２規格が規定するＰＭＴの内容を表す模式図である。
【図１８】本発明に係るＯＣＡＰ１．０仕様が規定するＡＩＴの内容を表す模式図である。
【図１９】本発明に係るＤＳＭＣＣ方式で送信されるファイルシステムを表す模式図である。
【図２０】本発明に係るＸＡＩＴの内容を表す模式図である。
【図２１】本発明に係るＭＡ管理部の構成図である。
【図２２】実施の形態１において、ＭＡ管理部がモニタアプリの起動を行う際の動作を表すフローチャートである。
【図２３】実施の形態１において、起動されたモニタアプリが、予期せぬタイミングで異常終了した際の動作を表すフローチャートである。
【図２４】実施の形態１において、ＭＡ管理部が、モニタアプリが異常終了した場合、異常終了の内容を保存および送信する際の動作を表すフローチャートである。
【図２５】実施の形態２において、ＭＡ選択部ＢがＭＡ選択部Ａの選択結果と同じプログラムを再度選択する際の動作を表すフローチャートである。
【図２６】（ａ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。（ｂ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。（ｃ）実施の形態２において、１次記憶部に保持しているデータを模式的に表した図である。
【図２７】実施の形態３において、Ｎ回までは、ＭＡ選択部ＢがＭＡ選択部Ａ２１０３の選択結果と同じプログラムを再度選択し、Ｎ＋１回目以降は、他のプログラムを選択際の動作を表すフローチャートである。
【図２８】実施の形態４において、選択候補となるプログラムの一覧を視聴者に提示し、視聴者に選択させる際の動作を表すフローチャートである。
【図２９】実施の形態４において、代替プログラムとして選択可能なプログラムの一覧の一例を模式的に表した図である。
【図３０】実施の形態４において、視聴者に提示される表示の一例を示す図である。
【図３１】実施の形態５において、視聴者に対する通知方法の一例を示す図である。
【図３２】実施の形態５において、視聴者に対する通知方法の一例を示す図である。
【図３３】本発明に係るＸＡＩＴの内容を表す模式図である。
【図３４】本発明に係る番組購入を促すメメッセージの一例である。
【図３５】本発明に係るＪａｖａ（Ｒ）プログラムの情報を保存している状態の一例である。
【図３６】本発明に係るディスプレイの表示の一例である。
【図３７】ＰＯＤ  ＬｉｂにＪａｖａ（Ｒ）プログラムが登録される場合におけるＰＯＤ  Ｌｉｂの動作をまとめたフローチャートである。
【図３８】本発明に係るＰＯＤとのメッセージの配送先の変化を表す模式図である。
【図３９】本発明に係るＰＯＤとのメッセージの配送先の変化を表す模式図である。
【図４０】本発明に係るＰＯＤ  ＬｉｂがＪａｖａ（Ｒ）プログラムの登録を削除する場合におけるＰＯＤ  Ｌｉｂの動作をまとめたフローチャートである。
【図４１】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を行う構成図である。
【図４２】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【図４３】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【図４４】本発明に係るＪａｖａ（Ｒ）プログラムが異常終了した場合の処理を表すフローチャートである。
【符号の説明】
【０１８６】
１２００      プログラム
１２０１      ＯＳ
１２０１ａ    カーネル
１２０１ｂ    ライブラリ
１２０２      ＥＰＧ
１２０２ａ    番組表示部
１２０２ｂ    再生部
１２０３      ＶＭ
１２０４      サービスマネージャ
１２０５      ライブラリ
１２０５ａ    ＪＭＦ
１２０５ｂ    ＡＭ
１２０５ｃ    Ｔｕｎｅｒ
１２０５ｄ    ＣＡ
１２０５ｅ    ＰＯＤ  Ｌｉｂ
１２０５ｆ    ＭＡ管理部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005099250.tif 000046
【図２】
2005099250.tif 000047
【図３】
2005099250.tif 000048
【図４】
2005099250.tif 000049
【図５】
2005099250.tif 000050
【図６】
2005099250.tif 000051
【図７】
2005099250.tif 000052
【図８】
2005099250.tif 000053
【図９】
2005099250.tif 000054
【図１０】
2005099250.tif 000055
【図１１】
2005099250.tif 000056
【図１２】
2005099250.tif 000057
【図１３】
2005099250.tif 000058
【図１４】
2005099250.tif 000059
【図１５】
2005099250.tif 000060
【図１６】
2005099250.tif 000061
【図１７】
2005099250.tif 000062
【図１８】
2005099250.tif 000063
【図１９】
2005099250.tif 000064
【図２０】
2005099250.tif 000065
【図２１】
2005099250.tif 000066
【図２２】
2005099250.tif 000067
【図２３】
2005099250.tif 000068
【図２４】
2005099250.tif 000069
【図２５】
2005099250.tif 000070
【図２６】
2005099250.tif 000071
【図２７】
2005099250.tif 000072
【図２８】
2005099250.tif 000073
【図２９】
2005099250.tif 000074
【図３０】
2005099250.tif 000075
【図３１】
2005099250.tif 000076
【図３２】
2005099250.tif 000077
【図３３】
2005099250.tif 000078
【図３４】
2005099250.tif 000079
【図３５】
2005099250.tif 000080
【図３６】
2005099250.tif 000081
【図３７】
2005099250.tif 000082
【図３８】
2005099250.tif 000083
【図３９】
2005099250.tif 000084
【図４０】
2005099250.tif 000085
【図４１】
2005099250.tif 000086
【図４２】
2005099250.tif 000087
【図４３】
2005099250.tif 000088
【図４４】
2005099250.tif 000089
【国際調査報告】
2005099250.tif 000090
2005099250.tif 000091
2005099250.tif 000092
2005099250.tif 000093