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