(57)【特許請求の範囲】
【請求項１】
テレビセットにインタラクティブ機能を提供するインタラクティブテレビアプリケーションを形成する複数のアプリケーションモジュールを取り出すインタラクティブテレビ受信器であって、前記複数のアプリケーションモジュールは、前記インタラクティブテレビアプリケーションのコードを含み、
前記受信器は、
放送インタラクティブテレビ信号を受信するように構成された第１の入力ポートであって、前記放送信号は、テレビ番組に対応する音声映像情報を含む、第１の入力ポートと、
第２の信号を受信するように構成された第２の入力ポートであって、前記第２の信号は、前記インタラクティブテレビアプリケーションに対応する情報を含む、第２の入力ポートと、
前記第１の入力ポートおよび前記第２の入力ポートに結合されたマイクロプロセッサであって、前記マイクロプロセッサは、実行アプリケーションによる、前記複数のアプリケーションモジュールのうち前記実行アプリケーションに対応するアプリケーションモジュールのための１以上のリクエストを格納することと、前記第１の入力ポートによって受信された前記放送信号を監視することと、前記複数のアプリケーションモジュールのうち前記対応するアプリケーションモジュールのための前記第２の入力ポートによって受信された前記第２の信号を監視することと、前記放送信号および前記第２の信号から前記複数のアプリケーションモジュールのうち前記対応するアプリケーションモジュールを取り出すことと、前記複数のアプリケーションモジュールのうち前記対応するアプリケーションモジュールを格納することとを行うように構成されている、マイクロプロセッサと、
前記マイクロプロセッサに結合されたデータ格納装置であって、前記リクエストと、前記複数のアプリケーションモジュールのうち前記対応するアプリケーションモジュールとを格納するように構成されたデータ格納装置と
を含む、受信器。
【請求項２】
前記放送インタラクティブテレビ信号は、前記複数のアプリケーションモジュールのうちの１以上の自動ロード式モジュールを含み、前記１以上の自動ロード式モジュールは、自動的にダウンロードされ実行されるモジュールであり、前記マイクロプロセッサは、前記自動ロード式モジュールのために前記第１の入力ポートを監視することと、前記放送信号から前記自動ロード式モジュールを取り出すことと、前記自動ロード式モジュールを格納することとを行うようにさらに構成されている、請求項１に記載のインタラクティブテレビ受信器。
【請求項３】
前記マイクロプロセッサは、前記複数のアプリケーションモジュールのうち、リクエストされておらず、かつ、自動的にダウンロードおよび実行されないアプリケーションモジュールを削除するようにさらに構成されている、請求項２に記載のインタラクティブテレビ受信器。
【請求項４】
前記第２の入力ポートは、モデムである、請求項１に記載のインタラクティブテレビ受信器。
【請求項５】
前記複数のアプリケーションモジュールは、１以上の第１のモジュールと１以上の第２のモジュールとを含み、前記第２のモジュールよりも頻繁に複数の受信器によってリクエストされる前記第１のモジュールは、前記放送信号に含まれており、前記第２のモジュールは、前記第２の信号に含まれている、請求項１に記載のインタラクティブテレビ受信器。
【請求項６】
前記複数のアプリケーションモジュールは、ディレクトリモジュールを有する第１のカルーセルを形成し、前記ディレクトリモジュールは、前記第１のカルーセルの前記複数のアプリケーションモジュールのうち前記ディレクトリモジュール以外の残りを列挙し、前記マイクロプロセッサは、前記複数のアプリケーションモジュールのうちの前記残りのためのリクエストを格納するように構成されている、請求項１に記載のインタラクティブテレビ受信器。
【請求項７】
第１のインタラクティブテレビアプリケーションによってリクエストされた複数のアプリケーションモジュールを管理する方法であって、前記第１のインタラクティブテレビアプリケーションは、テレビセットにインタラクティブ機能を提供するものであり、前記複数のアプリケーションモジュールは、前記第１のインタラクティブテレビアプリケーションのコードを含み、
前記方法は、
１以上のリクエストを格納するステップであって、前記１以上のリクエストのそれぞれは、前記複数のアプリケーションモジュールのうち、前記第１のインタラクティブテレビアプリケーションに対して現在利用可能でない１つの対応するアプリケーションモジュールを配信するためのものである、ステップと、
前記１以上のリクエストに対応する前記複数のアプリケーションモジュールを受信する複数の入力ポートを監視するステップと、
前記１以上のリクエストに対応する前記複数のアプリケーションモジュールのうちの１つを検出するステップと、
前記複数のアプリケーションモジュールのうちの前記１つを前記複数の入力ポートのうちの１つから取り出すステップと、
前記複数のアプリケーションモジュールのうちの前記１つを格納するステップと、
前記複数のアプリケーションモジュールのうちの前記１つを前記第１のインタラクティブテレビアプリケーションに提供するステップと
を包含する、方法。
【請求項８】
前記監視するステップは、前記複数の入力ポートのうちの１つを用いて、テレビ番組を含む放送信号と、前記複数のアプリケーションモジュールのうちの前記１つとを受信するステップを包含する、請求項７に記載の方法。
【請求項９】
前記複数のアプリケーションモジュールのうちの前記１つが取り出された後に、格納装置から前記リクエストを削除するステップをさらに包含する、請求項７に記載の方法。
【請求項１０】
前記複数のアプリケーションモジュールのうちの前記１つを取り出すステップは、前記複数のアプリケーションモジュールのうちの前記１つを前記放送信号から分離するステップと、前記複数のアプリケーションモジュールのうちの前記１つをロードするステップとを包含する、請求項８に記載の方法。
【請求項１１】
前記１以上のリクエストを格納するステップは、前記１以上のリクエストのそれぞれのためのリクエストデータを格納するステップを包含し、前記リクエストデータは、アプリケーションモジュールＩＤと、アプリケーションモジュールのための１つの対応するリクエストの状態を示す状態値をと含む、請求項７に記載の方法。
【請求項１２】
所与のリクエストに対して、前記所与のリクエストに対応するリクエストされたモジュールがロードすることを開始する場合に状態値を更新するステップをさらに包含する、請求項１１に記載の方法。
【請求項１３】
所与のリクエストに対して、前記所与のリクエストに対応するリクエストされたモジュールが前記第１のインタラクティブテレビアプリケーションに提供される場合に状態値を更新するステップをさらに包含する、請求項１１に記載の方法。
【請求項１４】
前記監視するステップは、
前記複数の入力ポートのうちの１つにおいて、テレビ番組を含む放送信号を受信するステップと、
前記複数の入力ポートのうちの１つにおいて、前記複数のアプリケーションモジュールのうちの前記１つを含むモデム信号を受信するステップと、
前記モデム信号において、前記複数のアプリケーションモジュールのうちの前記１つを検出するステップと
を包含する、請求項７に記載の方法。
【請求項１５】
第２のインタラクティブテレビアプリケーションによってリクエストされた複数のアプリケーションモジュールを管理するステップをさらに包含し、
前記１以上のリクエストを格納するステップは、前記第１のインタラクティブテレビアプリケーションによる１以上のリクエストを格納するステップと、前記第２のインタラクティブテレビアプリケーションによる１以上のリクエストを格納するステップとを包含する、請求項７に記載の方法。
【請求項１６】
前記１以上のリクエストを格納するステップより前に、前記第１のインタラクティブテレビアプリケーションの実行を開始するステップをさらに包含する、請求項７に記載の方法。
【請求項１７】
テレビセットにインタラクティブ機能を提供する１以上のインタラクティブアプリケーションを実行するように構成されたインタラクティブテレビシステムであって、前記１以上のインタラクティブアプリケーションのそれぞれは、複数のアプリケーションモジュールを有し、前記複数のアプリケーションモジュールは、前記１以上のインタラクティブアプリケーションのそれぞれのコードを含み、
前記インタラクティブテレビシステムは、
前記複数のアプリケーションモジュールの第１の部分を含む第１のタイプの第１の信号を送信するように構成された放送局であって、前記放送局は、前記複数のアプリケーションモジュールの第２の部分を含む第２のタイプの複数の信号を送信するようにさらに構成されている、放送局と、
前記第１の信号を受信するように構成された複数の受信器と
を含み、
前記複数の受信器のそれぞれは、前記第２のタイプの前記複数の信号のうちの１つを受信するように構成されており、前記複数の受信器のそれぞれは、前記１以上のインタラクティブアプリケーションのうち、前記複数のアプリケーションモジュールのうちの１以上に対応するインタラクティブアプリケーションを実行するように構成されており、前記１以上のインタラクティブアプリケーションのそれぞれは、前記複数のアプリケーションモジュールのうちの１以上のアプリケーションモジュールを必要とし、前記複数の受信器のそれぞれは、前記必要とされるアプリケーションモジュールのためのリクエストを格納することと、前記第１の信号および前記必要とされるアプリケーションモジュールのための前記第２のタイプの信号のうちの１つを監視することと、前記必要とされるモジュールを格納することと、前記必要とされるアプリケーションモジュールに対応する前記インタラクティブアプリケーションを実行することとを行うように構成されている、インタラクティブテレビシステム。
【請求項１８】
前記放送局は、前記複数のアプリケーションモジュールの前記第１の部分をテレビ番組データに結合するように構成されており、前記複数の受信器は、前記複数のアプリケーションモジュールの前記第１の部分を前記テレビ番組データから分離するように構成されており、前記複数の受信器は、テレビでの表示のために前記テレビ番組データをフォーマットするようにさらに構成されている、請求項１７に記載のインタラクティブテレビシステム。
【請求項１９】
前記放送局は、衛星放送チャネルを介して前記第１の信号を送信する、請求項１８に記載のインタラクティブテレビシステム。
【請求項２０】
前記放送局は、複数のモデムチャネルを介して前記第２のタイプの前記複数の信号を送信する、請求項１８に記載のインタラクティブテレビシステム。
【請求項２１】
前記アプリケーションモジュールは、カルーセルモジュールを含む、請求項７に記載の方法。
【請求項２２】
前記アプリケーションモジュールは、カルーセルモジュールを含む、請求項１７に記載のインタラクティブテレビシステム。
【発明の詳細な説明】
【０００１】
（発明の技術分野）
本発明は、インタラクティブテレビシステムに関し、さらに詳細には、インタラクティブテレビ受信器に搬送されるアプリケーションモジュールの管理に関する。
【０００２】
（関連技術の説明）
インタラクティブテレビシステムは、視聴者にサービスを提供するための各種の新しい手段を提供するために、テレビセットを用いることを可能にする。インタラクティブテレビシステムは、通常の映像番組ストリームに加えて、テキストおよびグラフィックイメージを表示することができる。インタラクティブテレビシステムはまた、視聴者のアクションまたは応答を登録することも可能である。インタラクティブテレビの提案されている特徴としては、宣伝された商品またはサービスをオーダーしたり、ゲームショーでの出場者と競ったり、または特定の番組に関する専門的な情報をリクエストすることにより、ユーザが放映された番組とインタラクトすることができるような、各種のマーケティング、エンターテイメント、および教育能力が含まれる。
【０００３】
概して、放送サービス提供者は、視聴者のテレビへ伝送するためのインタラクティブテレビ信号を生成する。インタラクティブテレビ信号は、テレビ番組からなる音声映像部分はもちろん、アプリケーションコード、または制御情報からなるインタラクティブ部分を含む。本明細書中において用いられるとおり、「アプリケーション」なる用語は、コンピュータソフトウェアアプリケーションに含まれるような、タスクに関連づけられたコードまたはデータの集合を一般に示す。放送サービス提供者は、音声映像およびインタラクティブ部分を組合せて、ユーザのテレビと接続された受信器への伝送のために、単一の信号にする。この信号は、一般に、伝送の前に圧縮され、ケーブルテレビ（ＣＡＴＶ）線、または直接衛星伝送システム等の通常の放送チャネルを介して伝送される。
【０００４】
テレビのインタラクティブ機能性は、テレビと接続されたセットトップボックスにより制御される。
セットトップボックスは、放送サービス提供者により伝送された信号を受信し、インタラクティブ部分と音声映像部分を分離し、且つ信号のそれぞれの部分を展開する。セットトップボックスは、例えば、音声映像情報がテレビへ伝送される一方で、アプリケーションを実行するために、インタラクティブ情報を用いる。セットトップボックスは、音声映像情報を、テレビへとその情報を伝送するよりも前に、インタラクティブアプリケーションにより生成されたインタラクティブグラフィックスまたは音声と組み合わせ得る。インタラクティブグラフィックスおよび音声は、視聴者へさらなる情報を提供するか、または視聴者に入力を促し得る。セットトップボックスは、視聴者の入力または他の情報を、モデム接続を介して放送サービス提供者へと提供し得る。
ＷＯ  ９７／３０５７９は、ソフトウェアおよびデータモジュールを、ネットワーク上の端末の、各種の本質的に異なる端末タイプにダウンロードするためのシステムに関し、ここでは、その相違はハードウェア、オペレーティングシステムのバージョン、または他のパラメータによるものであり得る（１頁５〜１１行参照）。
しかしながら、アプリケーション間のモジュールを共有する可能性には関与せず、それゆえ、それに対応する利点も提供しない。
【０００５】
インタラクティブテレビアプリケーションは、プログラムモジュールのセットから成り得る。モジュールは、概して、完全なアプリケーションまたは番組を形成するように他のモジュールと組み合され得るアプリケーションコードの１単位である。アプリケーションを形成しているモジュールのセットは、アプリケーションが必要とするコードの全てが、そのモジュールのセットの中にあるので、概して、自蔵式である。第１のモジュールは、アプリケーションの一部であるモジュールの全てを識別するデイレクトリモジュールである。ディレクトリモジュール内に列挙されるモジュールのセット全体が、放送チャネルを介してセットトップボックスへと伝送され、アプリケーションが実行される。第１のインタラクティブテレビアプリケーションが、実行を完了し、第２のインタラクティブテレビアプリケーションが次に実行されると、その第２のインタラクティブテレビアプリケーションのディレクトリおよび他のモジュールが、セットトップボックスへと伝送され、第２のアプリケーションが実行される。第２のアプリケーションにより用いられるモジュールセットの全体が伝送されるが、そのモジュールのいくつかは、第１のアプリケーションにより用いられたモジュールと同一のものであってよい。
【０００６】
（発明の要旨）
モジュール方式でソフトウェアアプリケーションを設計することの利点の１つは、アプリケーション間でモジュールを共有するための能力である。モジュール方式の利点は、インタラクティブアプリケーションに用いることができるセットトップボックス内の限られたメモリ量を維持すること、放送局からセットトップボックスへとアプリケーションをダウンロードするために必要な時間を低減すること、およびモジュールを共有可能にすることにより必ず書きこまれるアプリケーションコードの量を低減することを含み得る。アプリケーションのコンポーネントは、しかしながら、異なるカルーセル（モジュールのセット、下記に詳述する）内、またはアプリケーションの実行の開始時に利用できないモジュール内に常駐し得る。それゆえ、異なるモジュールの管理のためのシステムを実現することが望ましい。この管理システムが、まだ受信されていなくて、且つインタラクティブテレビ信号から抽出される必要があり得るモジュールを扱うことができることは有効である。さらに、この管理システムが、アプリケーションにより必要とされるモジュールのために、同時にいくつかのソース（例えば、放送チャネルおよびモデムチャネル）を監視することができることも有効である。
【０００７】
本発明は、インタラクティブテレビアプリケーションのモジュールを管理するためのシステムおよび方法を含む。本発明の１つの実施形態は、カルーセルモジュールを組み込み得る１以上のインタラクティブテレビ信号を受信するためのいくつかの入力ポートを備える構成のセットトップボックスを含む。インタラクティブテレビ信号は、通常、１つのインタラクティブテレビアプリケーション、テレビ番組、または他のインタラクティブテレビデータのモジュールに対応する圧縮されたデータのパケットを含む。（本明細書中において用いられる「テレビ番組」なる用語は、テレビで通常視聴されるあらゆるタイプの音声およびまたは映像プログラミングに一般に関する。）さまざまなタイプのパケットは、一般に、相互に時間多重化される。セットトップボックスは、入力ポートで受信されたパケットが、モジュールデータを含むかどうか、そして、含む場合には、モジュールが処理され、且つセットトップボックスに格納されるべきかどうかを判定するために、入力ポートを監視する。システムが、そのモジュールは格納されるべきであると判定した場合、そのモジュールに対応するパケットが、インタラクティブテレビ信号から抽出される。そのモジュールに対応するパケットの全てがインタラクティブテレビ信号から抽出されるときに、そのモジュールは処理され、且つ実行のために利用可能となる。
【０００８】
セットトップボックス内で実行しているインタラクティブテレビアプリケーションがない場合には、システムは、アプリケーションディレクトリモジュール等の自動ロードモジュールのための入力ポートを監視する。これらのアプリケーションディレクトリモジュールの内の１つが検出されるときに、システムは、ディレクトリモジュールからのデータを含むパケットを収集し始める。これらのパケットの全てが収集されたときに、システムは、ディレクトリモジュールを復元し、且つ認証する。システムは次に、カルーセルモジュール（すなわち、ディレクトリモジュールに列挙されるもの）のための入力ポートを監視し、対応するパケットを格納し、そしてカルーセルに対応するアプリケーションによる使用のためのモジュールを復元する。
【０００９】
実行アプリケーションは、セットトップボックス内ではまだ利用可能でないモジュールをリクエストし得る。これらのリクエストは、対応するモジュールのための入力ポートを監視するシステムにより格納される。このシステムは、これらのモジュールが入力ポートで検出されるときに、そのモジュールのパケットを収集し、且つモジュールを格納する。システムは、よって、一時停止中のリクエストを有する入来モジュールと整合し、モジュールを実行のために利用可能にする。システムは、そのシステムの加入者の間で、放送チャネルを介して加入者全てに伝送されることへの需要が高いモジュールに備え得る一方で、需要が少ないモジュールは、モデムチャネルを介して個々の加入者へと伝送される。
【００１０】
本発明の他の目的および利点は、以下の詳細な説明および添付の図面を参照することにより、明らかになる。
【００１１】
本発明は、各種の修正および改変が可能であるが、その特定の実施形態が、図面の例を用いて示され、且つ本明細書中において詳述される。しかしながら、図面およびその詳細な説明は、本発明を、開示された特定の形式に限定するためのものではなく、反対に、本発明は、添付の請求の範囲により定義されるような、本発明の精神および範囲に該当する、修正、同様のもの、および変形の全てを含む。
【００１２】
（好適な実施形態の詳細な説明）
本発明の１つの実施形態を下記に説明する。本実施形態において、インタラクティブテレビ受信器は、直接衛星伝送等の放送チャネルを介して、音声映像インタラクティブ信号を受け入れる。（本明細書中において用いられる「直接」衛星伝送は、インタラクティブテレビ受信器、より詳細には、アンテナにより、衛星から直接受信される伝送体（ｔｒａｎｓｍｉｓｓｉｏｎｓ）を意図する。音声映像インタラクティブ信号は、制御信号またはインタラクティブアプリケーション等のインタラクティブコンテンツはもちろん、テレビ番組、または同様の音声映像コンテンツを含む。（「放送」という用語は、本明細書中において、全ての加入受信器への単一の信号の伝送を指すために用いられる。）インタラクティブテレビ受信器はまた、モデムチャネルを介して、信号を受信するように構成される。放送およびモデムチャネルを介して伝送される信号はともに、各種のモジュールを組み込み得る。これら２つのチャネルのそれぞれは、それゆえ、本説明の目的のために、「モジュールソース」とする。モジュールソースからの信号に含まれるモジュールは、インタラクティブアプリケーションのコンポーネントを含み得る。モジュールは、アプリケーションコード、生データ、またはグラフィックス情報等の任意のタイプのデータを含むことができる。これらのモジュールは、概して、バゲッジカルーセル（ｂａｇｇａｇｅ  ｃａｒｏｕｓｅｌ）またはメリーゴーランドの循環性質と似ている周期的方式でテレビ受信器へと伝送されるので、モジュールセットは、しばしばカルーセルと呼ばれる。（アプリケーションは、「トップレベル」の番組を含むカルーセルである。）モジュールマネジャーは、モジュールがアプリケーションによりリクエストされ、モジュールソースから受信され、モジュールを必要とするアプリケーションと整合する方式で制御するようなシステム内で実現される。
【００１３】
アプリケーションがシステム内で実行していない場合には、モジュールマネジャーは、自動ロードしているモジュールのためのモジュールソースを監視する。インタラクティブアプリケーションのディレクトリモジュールは、例えば、自動ロード式であり得る。アプリケーションがシステム内で実行している場合には、そのアプリケーションは、モジュールをリクエストし得る。さらに詳細には、アプリケーションと同じカルーセルの一部ではないモジュールをリクエストし得る。モジュールマネジャーは、アプリケーションリクエストを格納し、且つそのリクエストに対応するモジュールのモジュールソースを監視する。リクエストされた複数のモジュールの内の１つが検出されたときに、モジュールマネジャーはそれを格納し、実行アプリケーションにとって利用可能にし、且つモジュールマネジャーのリクエストキューからそのリクエストを削除する。モジュールマネジャーが、リクエストされなくて、且つ自動的にロードされることができないモジュールを受信する場合には、そのモジュールは無視される（すなわち、システム内には格納されない。）。
【００１４】
図１を参照して、ソースから一連の視聴者までの、インタラクティブテレビアプリケーションおよびテレビ番組の配信を説明するブロック図が示されている。放送局１０は、いくつかの番組ソース１１を有する。これらのソースは、離れた放送ネットワークフィード、ビデオオレコーダ、コンピュータ、データ記憶装置等を含み得る。ソース１１は、インタラクティブテレビ信号に含まれることになる、インタラクティブアプリケーション、制御情報、または音声または映像情報を提供し得る。ソース１１により提供される情報は、概して、バンド幅の節約のために、圧縮ユニット１２により圧縮され得る。Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ（ＭＰＥＧ）の圧縮基準の内の１つのような、多数の圧縮アルゴリズムの内のいずれかが、特定のプログラムまたはアプリケーションに適切である場合に、用いられ得る。例えば、同調関連づけ音声および映像信号（ｓｙｎｃｈｒｏｎｉｚｅ  ａｓｓｏｃｉａｔｅｄ  ａｕｄｉｏ  ａｎｄ  ｖｉｄｅｏ  ｓｉｇｎａｌｓ）に、タイムスタンプが加えられもし得る。ある情報は、容易に、または効果的に圧縮され得ないので、その情報を圧縮せずに、情報の内のいくつかが、ソースからパケット化ユニット（ｐａｃｋｅｔｉｚａｔｉｏｎ  ｕｎｉｔ）１３まで直接送信され得る。パケット化ユニット１３は、圧縮された（または圧縮されていない）情報を受け取り、且つそれを放送チャネル上の伝送のためにパケットにフォーマットする。情報のパケット化は、下記において詳述する。パケットは、伝送の前にそのパケットを点在させる、多重化ユニット１４へと供給される。この点在されたパケットは、次に受信局２０へと送信される。（図面には、１つの受信局のみが示されているが、音声映像インタラクティブ信号は、加入受信局のグループへと送信されることが考えられる。）この図面では、音声映像インタラクティブ信号は、アンテナ１５による衛星放送を介して伝送されているように図示されている。
【００１５】
放送信号は、通信衛星１８により中継され、且つ受信局２０により受信される。  図面は、衛星伝送を図示しているが、いずれの放送媒体（例えば、ＣＡＴＶ、または直接衛星伝送）が用いられ得ることが考えられる。受信局２０は、放送局１０を運営している放送サービス提供者の加入者である多数の局の内の１つであると考えられる。放送信号は、受信アンテナ２１により集められ、本実施形態においては、セットトップボックスである、受信器２２へと供給される。セットトップボックス２２は、信号に組み込まれたテレビ番組およびインタラクティブアプリケーションを復元するために、パケット化された信号を処理する。この復元されたアプリケーションは、セットトップボックス内で実行される一方で、復元されたテレビ番組が、それらが表示されるテレビへと送信される。インタラクティブアプリケーションは、表示される以前にテレビ番組と組み合わせられるグラフィックスまたは音声を生成し得る。
【００１６】
放送局と、受信局との間の放送チャネルに加えて、（ｈｔｔｐ、またはハイパーテキスト転送プロトコル、チャネルとも呼ばれ得る）モデムチャネル等の他のチャネルが存在し得る。これらのタイプのチャネルは、システム内で２つの機能の役割を果たす。１つは、セットトップボックスが、放送局へフィードバックを提供することを可能にすることであり、もう１つは、搬送されるソース１２から受信局２０までの、番組およびアプリケーションのための別の経路を提供することである。
【００１７】
図２を参照して、セットトップボックス２２のブロック図が示されている。放送信号が受信され、チューナー３１へと供給される。チューナー３１は、放送音声映像インタラクティブ信号が伝送されるチャネルを選択し、且つその信号を処理ユニット３２へと渡す。（チューナー３１は、各種の信号ソースから信号を受信するための他の手段、本明細書中において、入力ポートとまとめて呼ばれるもの全てのもの、と置き換えられ得る。）処理ユニット３２は、必要であれば、放送信号からパケットを分離し、且つ信号に組み込まれたテレビ番組および／またはインタラクティブアプリケーションを復元する。次いでその番組およびアプリケーションは、展開ユニット３３により展開される。信号に組み込まれたテレビ番組と関連づけられた音声および映像情報が、次に、ＮＴＳＣまたはＨＤＴＶ音声／映像等の適切なテレビ方式への情報のさらなる処理および変換を実施し得るディスプレイユニット３４へと運ばれる。放送信号から復元されたアプリケーションは、ランダムアクセスメモリ（ＲＡＭ）３７へと送られ、且つ制御システム３５により実行される。モジュールマネジャーユニット３０は、制御システム３５内に含まれる。１つの実施形態において、モジュールマネジャーユニット３０は、ソフトウェアで実現されるが、ハードウェア、またはハードウェアおよびソフトウェアの組合せたものででも実現され得る。
【００１８】
制御システム３５は、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、または他のタイプのソフトウェア命令処理装置を備え得る。ＲＡＭ３７は、セットトップボックスの機能をサポートするために必要とされる、静的（例えば、ＳＲＡＭ）、動的（例えば、ＤＲＡＭ）、揮発性または不揮発性（例えば、ＦＬＡＳＨ）であるメモリユニットを備え得る。セットトップボックスに電力が与えられるときに、制御システム３５は、ＲＯＭ３６内に格納されたオペレーティングシステムコードを実行する。通常のパーソナルコンピュータ（ＰＣ）のオペレーティングシステムコードと同様に、セットトップボックスが駆動される間、オペレーティングシステムコードは、連続して実行し、且つセットトップボックスを制御情報に従って作用させ、インタラクティブおよび他のアプリケーションを実行させる。セットトップボックスはまた、モデム３８を備える。モデム３８は、視聴者データがそれにより放送局へと伝送されるリターンパス、および放送局がそれによりデータをセットトップボックスへ伝送できる別の経路の両方を提供する。
【００１９】
「セットトップボックス」なる用語が、本明細書中において用いられるが、この用語が、伝送された信号を受信および処理し、且つその処理した信号をテレビまたは他のモニタへと伝達するための、いずれの受信器または処理ユニットを指すことは理解されたい。セットトップボックスは、テレビの上に物理的に置かれるハウジング内に存在し得るが、テレビ外部の他の場所にも（例えば、テレビの横または裏側、またはテレビから離れて）存在し得、また、テレビ自体にも組み込まれ得る。セットトップボックス２２は、放送局１０から受信した信号を復調し、且つ異なるテレビ番組およびインタラクティブアプリケーション等の信号の成分を分離する役割をする。同様に、テレビ２３は、いずれの適切なテレビ方式（例えば、ＮＴＳＣまたはＨＤＴＶ）を用いるテレビ、または映像モニタであり得、またはビデオレコーダ等の他のデバイスに置きかえられ得る。
【００２０】
受信局は、放送チャネルにより放送局と効果的に接続される。この放送チャネルは、各種の伝送媒体を利用することが可能であり、且つ（例えば、直接衛星伝送のために用いられるような）同軸ケーブルおよびフリースペース等の媒体を含むと見なされる。放送チャネルは、放送局と、受信局との間に伝送経路を形成する。放送局および受信局はまた、リターンパスにより接続される。リターンパスは、概して、一方が受信局にあり、且つもう一方が放送局にある１対のモデムからなり、それぞれが標準的な電話回線に接続される。リターンパスを確立するための他の手段、例えば、伝送経路のバンド幅の一部を用いること、も考えられる。
【００２１】
図３を参照して、アプリケーション（および、実際にはいずれのカルーセル）は、一連のモジュールから成り、そのモジュールの内の１つはディレクトリモジュールである。ディレクトリモジュールは、唯一的な識別子を有するので、さらなる情報なしで、伝送中に識別することができる。ディレクトリモジュールは、アプリケーション内のモジュールのそれぞれに対する入力を備え、ディレクトリモジュール内の対応する入力を有しないいずれのモジュールも、アプリケーションによっては認識されない。ディレクトリモジュールは、インタラクティブテレビ受信器が、番組の実行に必要であり得るアプリケーションの全ての部分（すなわち、モジュール）にアクセスすることを可能にするために十分な情報を含む。ディレクトリモジュールは、残りのモジュールが適切に解釈されることができるように、アプリケーションの他のモジュールの前にアクセスされなければならない。ディレクトリモジュールは、アプリケーションのモジュールが伝送されるサイクルの間、他のモジュールへの本質的なランダムアクセスに利用できることを確実にするために、数回伝送され得る。
【００２２】
全てのアプリケーションのディレクトリモジュールは、共通のフォーマットを有する。このフォーマットは、長さが固定された要素を有する部分、長さが変化する要素を包含する部分、および認可情報を有する部分の３つの部分から成る。この長さが固定された部分は、アプリケーションおよびアプリケーション内の各モジュールに関するデータを含む。長さが変化する部分は、モジュール名およびモジュールのハッシュに関するストリングデータを含む。認可部分は、作成者認可およびディレクトリ署名を含む。
【００２３】
１つの実施形態において、アプリケーションは、自動的にダウンロードされ、且つ実行される、少なくとも１つのモジュールを備える。データまたはさらなるコードを含む他のモジュールは、すぐには必要とはされ得ないので、アプリケーションの実行が開始された後にダウンロードされ得る。これらのモジュールのダウンロードは、タイミングの制約を受けやすいが、インタラクティブテレビシステムは、これらの制約を考慮に入れ、且つ時宜にかなった方法でモジュールを搬送するように構成され得る。必要であれば、これらのモジュールの内の１つが、必要に応じて受信されたかを検証するために、他のモジュールまたはデータと多重化され得る。
【００２４】
図４を参照して、モジュール５１のそれぞれは、データセグメント５２、およびＣＲＣセグメント５３を有する。ディレクトリモジュールのデータセグメント５２は、上述されている。残りのモジュールのデータセグメント５２は、アプリケーションコードまたは生データ等のいずれのタイプのデータを含むことが可能である。各モジュールのＣＲＣセグメント５３は、エラー制御のために用いられ、且つモジュール５１全体について計算される。モジュール５１のそれぞれは、唯一的な識別子を有する。
【００２５】
モジュール５１が伝送される前に、伝送ユニット５４へとフォーマットされる。説明の都合上、番号は同じであるが文字が異なる参照符号が付けられた項目（例えば、５４ａ、５４ｂ、５４ｃ）は、番号のみで（例えば、５４）ひとまとめにして呼ばれる。伝送ユニット５４のそれぞれは、伝送ユニットのストリーム内で、伝送ユニット５４を唯一的に識別するヘッダ情報５５、および伝送されるモジュールの一部を備えるデータ５６を含む。ヘッダ５５は、伝送ユニット５４が、完全なモジュール５１へと復元することを可能にする、モジュールＩＤ、モジュールオフセット（ｍｏｄｕｌｅ  ｏｆｆｓｅｔ）、およびサイズ等の情報を含む。特定のモジュール５１を備える伝送ユニット５４は、伝送ストリーム内の他の伝送ユニット５４とインターリーブされ得る。モジュール５１の最後の伝送ユニット５４は、ＣＲＣ５３を伝達する。
【００２６】
伝送ユニット５４の方式は、伝送媒体に依存するが、概して、一連の固定された長さ（最後のパケットは適切な長さにするために引き延ばされ得る。）のパケットを用いる。一連のパケットにおける第１のパケット５８は、伝送ユニット５４のヘッダ情報を伝達する。このヘッダパケット５８は、ＣＰＵ内の割り込みを生成することが可能であり、且つＣＰＵがモジュール５１にデコードされるべきかどうか、およびどこでメモリにロードするべきかを判定することが可能な情報を含む特別なパケットである。直接衛星伝送におけるヘッダパケット５８は、割り込みを生成することが可能な、補助的なパケットを利用する。直接衛星伝送における残りのパケット５８は、単に伝送ユニットデータを伝達する、基本型のパケットを利用する。
【００２７】
放送局からインタラクティブテレビ受信器への音声映像インタラクティブ伝送は、一連の伝送ユニットを備える。所与のモジュールを形成する伝送ユニットは、概して、他の情報と時間多重化（ｔｉｍｅ  ｍｕｌｔｉｐｌｅｘｅｄ）される。この情報は、別のモジュール、または圧縮された音声もしくは映像の伝送ユニットからなり得る。インタラクティブテレビ受信器により受信される伝送ユニットは、個々のアプリケーションモジュールへと復元される。
【００２８】
図５を参照して、放送局１０から受信局２０へと伝送される信号の概略図が示される。いくつかの番組ソースのパケットは、必要であれば、単一の伝送ストリームへと多重化され得る。これらのパケットは、各種アプリケーションまたはテレビ番組ごとのデータを含み得る。図示された伝送ストリームは、２つのインタラクティブアプリケーションモジュール（Ｍ１、Ｍ２）のパケットはもちろん、テレビ番組の音声（Ａ）および映像（Ｖ）パケットを含む。パケットは、上記で説明したように、パケットを個々の番組およびモジュールへと復元できるようにフォーマットされる。いくつかのモジュールは、伝送信号内にそれらのパケットを組み込むことにより、同時に伝送することができることに留意すべきである。この図は、モジュールおよびテレビ番組のパケットの時間多重化を図示している。そのモジュールは、一緒に伝送される、同じカルーセルに属する必要はない。概して、伝送されなければならない映像データの量がより多い結果、特定のテレビ番組のための映像データのパケットが、概して、その番組のための音声データのパケットよりも多いことが、図面から読み取ることが可能である。
【００２９】
放送信号は、パケットを分離し、且つ個々のテレビ番組およびモジュールに復元するセットトップボックス２２により受信される。上記で説明したとおり、モジュールは、ＲＡＭ３７内に格納され、そこでは、それらのモジュールは、制御システム３５内で実行しているアプリケーションによる使用のために利用可能である。セットトップボックスは、カルーセルおよび／またはダウンロードされている特定のモジュールが、信用できるものであることを保証するためのセキュリティメカニズムを用い得る。認可システムが、モジュールが権限を与えられた作成者により作成されていること、およびモジュールがセットトップボックスにより受信される以前に改変されていないことを保証するために用いられ得る。
【００３０】
認可は、通常、モジュールを識別し、モジュールの信頼性および完全性の証拠として取られることができる情報の収集物である。認可は、この目的のために、「公開鍵」を用い得る。公開鍵暗号化システムにより用いられ得る各種の暗号アルゴリズムが存在する。１つの実施形態は、ＲＳＡ（Ｒｉｖｅｓｔ，Ｓｈａｍｉｒ  ＆  Ａｄｌｅｍａｎ）およびＤＥＳ（データ暗号規格）アルゴリズムを用いる。公開鍵暗号化は、一方は、個人鍵と呼ばれ、もう一方は、公開鍵と呼ばれる、１対の暗号鍵を利用する。この個人鍵は、その所有者により秘密にされる一方で、公開鍵は，自由に利用できる。個人鍵を用いて暗号化された１つのメッセージまたは他のファイルは、その個人鍵のみで解読されることができる。同様に、個人鍵で暗号化されたファイルは、公開鍵を用いてのみ解読可能である。よって、公開鍵を用いて暗号化されたメッセージが、所有者へ送信されるときに、送信者は、たとえそのメッセージが傍受できるとしても、（個人鍵を持っている）その所有者のみがそれを解読し、そのメッセージを読むことができることを確信することができる。
【００３１】
セットトップボックスは、１以上の信頼される関係者の公開鍵のコピーを保持する。セットトップボックスが、ディレクトリモジュールを受信するときに、作成者の公開鍵で署名された認可のためにモジュールをチェックする。この認可は、作成者の個人鍵であり、信頼される関係者により署名された作成者の認可を含む。セットトップボックスは、その信頼される関係者の公開鍵のコピーを有しており、作成者の認可（作成者の公開鍵）が本物であることを検証することができる。次に、作成者の認証された公開鍵は、その認可が改変されていないことを検証するために用いられることができる。セキュリティメカニズムもまた、モジュールに対するハッシュ機能を実施すること、および対応するディレクトリモジュール等にハッシュ値を含むことを含み得る。ディレクトリモジュールでの信用証明化または他のセキュリティは、通常、例えば、ディレクトリモジュール内の他のモジュールの入力を有するハッシュ値の挿入の後に実現される。
【００３２】
モジュールマネジャーは、搬送、アクセス、およびモジュールに関連する他の機能を制御する。図６を参照して、モジュールマネジャー１０の１つの実施形態の構成を説明するブロック図が示される。モジュールマネジャー１０は、一連のインターフェース１１〜１３、一連のデータベース１４〜１６、およびポストロードマネジャー（ｐｏｓｔ−ｌｏａｄ  ｍａｎａｇｅｒ）１７を含む。これらのインターフェースは、ソースインターフェース１１、クライアントインターフェース１２、および制御タスクインターフェース１３である。データベースは、信用証明データベース１４、カルーセルデータベース１５、およびリクエストデータベース１６を含む。
【００３３】
ソースインターフェース１１は、モジュールソースからのリクエストを管理する。ソースインターフェース１１は、モジュールソースからモジュールマネジャー１０への一連の単方向チャネルである。ソースインターフェース１１は、モジュールソースの内の１つから受信したモジュールを格納するために用いられることができるバッファをリクエストするためのメカニズムを含む。
【００３４】
クライアントインターフェース１２は、クライアントリクエストを扱う。クライアントインターフェース１２は、クライアントの入力の連鎖リストからなるクライアントデータベースを保持する。クライアントデータベースでの各入力は、次の入力のポインター、クライアントＩＤ、クライアント通知データ、および参照データを有する。
【００３５】
信用証明データベース１４は、さまざまなカルーセルの作成者、およびその作成者に関連づけられた信用証明に関する情報を含む。信用証明データベース１４は、作成者の入力の連鎖リストとして実現され、各入力は、所与の作成者のＩＤ、次の作成者の入力のポインター、およびその所与の作成者の信用証明の連鎖リスト内の第１の信用証明のポインターを有する。各作成者の連鎖リスト内の信用証明は、信用証明がデータベースに入る前に検証されるので、署名および信用証明フラグは、その信用証明が格納される前に削除される。各信用証明の入力は、次の信用証明の入力のポインター、アクセスの承認をするカルーセルおよびアクセスが承認されるカルーセルのＩＤ、有効期間満了日、および各種のフラグを含む。信用証明データベース１４へのアクセスは、特定の入力を追加すること、削除すること、または見つけること、および古いかまたは非グローバル（ｎｏｎ−ｇｌｏｂａｌ）である入力のグループを削除することを含み得る。
【００３６】
カルーセルデータベース１５は、モジュールマネジャー１０が認識しているカルーセルに関する情報を含む。カルーセルデータベース１５は、カルーセルの入力連鎖リストとして実現される。各入力は、カルーセルＩＤ、各種のフラグならびにポインタ、および参照カウンタを含む。ポインターは、対応するカルーセルのディレクトリモジュールの位置、およびリクエストデータベース内の関連づけられたリクエストのリストを示す。カルーセルデータベース１５は、入力を見つけること、追加すること、または削除すること、およびその入力内のデータを読み出すことまたは操作することにより、アクセスされることができる。カルーセルデータベースアクセスルーチンの内のいくつかもまた、カルーセルデータベース１５以外のものを操作する。例えば、ディレクトリモジュールがロードされるべきバッファがリクエストされるが、そのようなバッファが与えられていない場合、一時バッファが割り当てられる。
【００３７】
リクエストデータベース１６は、さまざまなモジュールの一時中止リクエストに関する情報を含む。リクエストデータベース１６は、連鎖リストのセットとして実現され、そのリストのそれぞれは、対応するカルーセルと関連づけられる。上記に指摘したとおり、カルーセルデータベース１５の各入力は、リクエストデータベース１６の関連づけられたリクエストの対応する連鎖リストのポインターを有する。各入力はまた、特定の入力を検索するために必要とされ得る時間を低減するために、ハッシュテーブルに記録される。リクエストデータベース１６の各入力は、次の入力のポインター、リクエストされたモジュールおよびそのカルーセルのＩＤ、各種フラグ、および状態およびバッファ情報を有する。各入力は、バッファのサイズはもちろんのこと、リクエストされたモジュールが格納されるべきバッファのポインターを格納する。リクエストデータベース１６は、リクエストデータベースが、リクエストされていないか、またはバッファが割り当てられていないモジュールを受信することを可能にする一時格納割り当てコンポーネントを含み得る。データベースの一時格納割り当てコンポーネントは、これらのモジュールを効率的に格納するために最適化されないかも知れないので、できるだけすぐにより永久的な記憶装置へと移動されるべきである。リクエストデータベース１６は、下記で説明するとおり、リクエストの状態を更新することはもちろん、入力を見つける、追加する、削除する、または読み出すための機能を実現する。
【００３８】
各リクエスト入力は、リクエストの状態を示す値を含む。この値は、図７の状態図に示される状態の内の１つに対応する。これらの状態は、リクエストされた、ロードしている、ゾンビ（ｚｏｍｂｉｅ）をロードしている、再割り当てしている、ポストロードしている、ゾンビをポストロードしている、ロードされた、および中止された状態を含む。モジュールがリクエストされるが、モジュールソースから到達する前には、そのリクエストは、「リクエストされた」状態である。リクエストがキャンセルされた場合には、状態は、「リクエストされた」から「キャンセルされた」へと変化する。リクエストモジュールがモジュールソースからモジュールマネジャーに到達し始めれば、状態は、「リクエストされた」から「ロードしている」へと変化する。（モジュールが、最初にリクエストされずに到達していれば、直接「ロードしている」状態へと進み得る。）「ロードしている」状態から、リクエストが「リクエストされた」、「ポストロードしている」、「再割り当てしている」、または「ゾンビをロードしている」状態へと移ることが可能である。モジュールのロードが失敗したが、再試行される場合には、状態は「リクエストされた」に逆戻りする。ロードがキャンセルされれば、リクエストは、「ゾンビをロードしている」へと変化する一方で、バッファは、モジュールソースによりまだ使用されており、その後に「キャンセルされた」に変化する。モジュールがロード完了すれば、状態は、「ポストロードしている」（バッファが一時的でなかった場合）、または「再割り当てしている」（バッファが一時的であった場合）へと移行する。リクエストが「再割り当てしている」状態にある場合には、リクエストされたモジュールが永久記憶装置へと移動したときに、「ポストロードしている」に変化する。リクエストは、「ポストロードしている」状態に留まる一方で、リクエストされたモジュールは、最終の形式へと処理される。リクエストが、「ポストロードしている」間にキャンセルされた場合には、状態は、モジュールの処理が完了するまで「ゾンビをポストロードしている」へと変化し、その後に「キャンセルされた」状態へと変化する。他の場合には、リクエストされたモジュールの処理が完了したときに、リクエストは「ロードされた」状態へと進む。
【００３９】
モジュール管理ユニットは、セットトップボックスに結合された各種のモジュールソースを監視する。上述のとおり、モジュールソースは、放送信号、ｈｔｔｐ信号、モデム通信、または入力信号をセットトップボックスに供給するための他の手段を含み得る。（本明細書中において用いられる「モジュールソース」なる用語は、衛星またはモデム伝送等の伝送ソース、および処理された、例えば、復元されて、展開された信号を運ぶモジュール管理ユニットへの入力の両方を含むことに広く解釈される。）
スタートアップ時に、モジュール管理ユニットは、アイドルする一方で、モジュールソースの内の１つで、パケットを待機している。放送局は、モジュール管理ユニットがモジュールソースの内の１つで待機しているモジュールを伝送し得る。所与のモジュールを伝送するためのチャネルまたはモジュールソースの選択は、選択されたチャネルの効率に依存し得る。例えば、加入受信器の多くにより必要とされるモジュールは、放送チャネル上で伝送されるかもしれないが、その一方で、より需要の少ないモジュールは、モデム回線上で伝送されるかもしれない。モジュール管理ユニットは、そのモジュールソースの全てを監視するので、リクエストされたモジュールは、ソースのいずれかを介して受信され得る。
【００４０】
モジュールが検出されたときに、モジュール管理ユニットは、そのモジュールをメモリにロードし始める。モジュールが完全にロードされると、格納されたモジュールのリストに入力される。次に、それがディレクトリモジュールかどうかの判定をするために検査される。そのモジュールがディレクトリモジュールである場合には、モジュール管理ユニットは、モジュールの作成者認可を認証する。証明が信用できない場合には、モジュール管理ユニットは、単純にモジュールを削除する、ユーザに警告する、またはセットトップボックスをシャットダウンする等のいくつかのアクションの内のいずれかをとるようにプログラムされ得る。証明が信用できるものである場合には、モジュールは、システムで実現されたセキュリティメカニズムに従って、その完全さを検証するためにチェックされ得る。モジュールが、エラーを含んでいると判定された場合には、削除される。モジュールにエラーがない場合には、他のモジュールをダウンロードすること、および実行のためにモジュールについての情報を提供することに使用するためのシステムに対して、利用可能となる。
【００４１】
スタートアップの後、モジュール管理ユニットは、リクエストに応答して、またはディレクトリモジュールに列挙された結果として（集合的に、「必要とされた」モジュール）、モジュールをダウンロードし得る。特定のモジュールに対するリクエストは、モジュール管理ユニットにより保持される一時中止リクエストのリストに載せられる。モジュール管理ユニットは、必要なモジュールに対応するパケットのモジュールソースを監視しながら待機する。パケットが検出され、上記ディレクトリモジュールの説明の方法で、パケットの入来ストリームから分離される。モジュール管理ユニットは、パケットが点在されている場合に、１度に複数のモジュールを含むパケットを取り出し（ｒｅｔｒｉｅｖｅ）得る。１つのモジュールに対するパケットの全てを受信が終了するときに、そのモジュールは復元される。モジュールは、エラーについて検査され、適切なエラーチェックおよびセキュリティメカニズムが実現された場合に、その信頼性が検証され得る。完成したモジュールが、一時停止中のリクエストに対応する場合に、モジュールはそのリクエストと一致する（すなわち、リクエストがキャンセルされ、モジュールはリクエストを開始したアプリケーションまたはモジュールに対して利用可能となる。）。モジュール管理ユニットは、モジュールソースで利用可能であった必要なモジュールのダウンロードを完了するときに、次に必要とするモジュールを待機し始める。
【００４２】
１つの実施形態において、モジュール管理ユニットは、制御システムで実行しているソフトウェアで実現される。モジュール管理ユニットは、また、設計上の選択として、ハードウェア、またはハードウェアおよびソフトウェアの組合せで実現され得る。同様に、特定の放送媒体および上記で説明した特定の実施形態の他の詳細は、添付の請求の範囲により定義される本発明の精神および範囲から逸脱することなく修正され得る。上述の特定の実施形態は、限定ではなく、例示的なものとして意図され、本発明の範囲が、当業者には明白である各種の修正および実施形態を含むものと考えられる。
【図面の簡単な説明】
【図１】  図１は、ソースから一連の視聴者までの、インタラクティブテレビアプリケーションおよびテレビ番組の配信を説明するブロック図である。
【図２】  図２は、本発明の１つの実施形態において用いられるセットトップボックスのブロック図である。
【図３】  図３は、本発明の１つの実施形態におけるカルーセルのコンポーネントモジュールおよびモジュールの伝送順序の説明である。
【図４】  図４は、本発明の１つの実施形態において、モジュールを含むデータがパケット化されている方式を説明するブロック図である。
【図５】  図５は、本発明の１つの実施形態において、放送局から受信局まで伝送される信号の概略図である。
【図６】  図６は、本発明の１つの実施形態の構成を説明するブロック図である。
【図７】  図７は、本発明の１つの実施形態におけるモジュールリクエストの処理を説明する状態図である。
【図１】
0004308433.tif 000002
【図２】
0004308433.tif 000003
【図３】
0004308433.tif 000004
【図４】
0004308433.tif 000005
【図５】
0004308433.tif 000006
【図６】
0004308433.tif 000007
【図７】
0004308433.tif 000008