(57)【要約】  テレビ製品ごとに固有のコードを有するのではなく、共通のコードベースを業務の複数の製品及び複数の製品系列に対して与える。組込みシステムを、ネットワーク接続を通してブレードアップすることができる。ソフトウェアアーキテクチャによって、プラグインモジュールのミドルウェアを通して複数の製品の提供をサポートし、そして２Ｄ及び３Ｄグラフィック用の標準化されたハードウェアの加速を与える、フレキシブルなアプローチが可能となる。プラグインが可能なことにより、販売後の性能の追加及びグレードアップが可能となる。
2012502357.tif 000002
【特許請求の範囲】
【請求項１】
ビデオディスプレイ（１２）、
ソフトウェアで実現されるテレビ性能アーキテクチャを実装するプロセッサ回路（２０）であって、
アプリケーションロジック調整ユニット（ＡＬＣＵ）（３４）と、
前記ＡＬＣＵ（３４）と通信する複数のプラグインモジュール（ＰＩＭ）（３６）であって、それぞれが所望のテレビシステム性能を表し、ここでＡＬＣＵ（３４）は情報をＰＩＭの間で伝達する、ＰＩＭと、
を含むディスプレイシステムであって、
前記ＡＬＣＵ（３４）と通信するＰＩＭと協働する新たなＰＩＭを前記ＡＬＣＵ（３４）に追加することができ、
イベントはシステム全体で定義され、
各ＰＩＭは、当該ＰＩＭが受信しようとするイベントのための少なくとも１つのイベントハンドラを登録し、前記ＡＬＣＵ３４は続いてどのイベントをどのイベントハンドラに伝達するかを、当該イベントハンドラによって供給された所望のイベントの表示によって決定する
ことを特徴とする、ディスプレイシステム。
【請求項２】
第１の性能を与えるＰＩＭ（３６）は、第１のモデル系列内で第１のアプリケーションの開始の判定を実行し、第１の性能を与えるＰＩＭ（３６）は、第２のモデル系列内で第２のアプリケーションの開始の判定を実行し、前記第２のアプリケーションの開始の判定は前記第１のアプリケーションの開始の判定とは異なるものである、請求項１に記載のシステム。
【請求項３】
第１の性能を与えるＰＩＭ（３６）は、第１のモデル系列において第１のイベントを登録し、第１の性能を与えるＰＩＭは、第２のモデル系列において第２のイベントを登録し、前記第２のイベントは前記第１のイベントとは異なるものである、請求項１に記載のシステム。
【請求項４】
ＰＩＭ間でのインターラクションは製品固有のＰＩＭレベルで定義される、請求項１に記載のシステム。
【請求項５】
各ＰＩＭ（３６）は、
特定のモデル系列に特有のインターフェースコードと、
そのＰＩＭが使用されるすべてのモデル系列に共通の性能コードと
を含んでいる請求項１に記載のシステム。
【請求項６】
前記インターフェースコードは、別のＰＩＭからＡＬＣＵ（３４）を通して受信したコールを、性能コードが理解できるコールに翻訳する、請求項５に記載のシステム。
【請求項７】
前記ＡＣＬＵ（３４）は、パブリックインターフェース、ユーティリティインターフェース、およびＰＩＭインターフェースを含んでいる、請求項１に記載のシステム。
【請求項８】
テレビシステムの第１及び第２のモデル系列に、両モデル系列に共通のアプリケーションロジック調整ユニット（ＡＬＣＵ）を設ける工程と、
前記ＡＬＣＵ（３４）と通信するよう構成され、それぞれが所望のテレビシステム性能を表す複数のプラグインモジュール（ＰＩＭ）（３６）であって、ＡＬＣＵ（３４）は情報をＰＩＭの間で伝達し、第１のモデル系列のＰＩＭのセットは第２のモデル系列のＰＩＭのセットとは異なっている、そのようなＰＩＭを設ける工程と、を含み、
第１の性能を与えるＰＩＭ（３６）は、第１のモデル系列内で第１のアプリケーションの開始の判定を実行し、第１の性能を与えるＰＩＭ（３６）は、第２のモデル系列内で第２のアプリケーションの開始の判定を実行し、前記第２のアプリケーションの開始の判定は前記第１のアプリケーションの開始の判定とは異なるものである、ことを特徴とする方法。
【請求項９】
販売された後に第１のモデル系列のテレビに新たなＰＩＭ（３６）をダウンロードして、前記ＰＩＭ（３６）によって表される、当該ダウンロード前は当該テレビになかった性能を当該テレビに与える段階、を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
第１の性能を与えるＰＩＭ（３６）は、第１のモデル系列内で第１のイベントを登録し、第１の性能を与えるＰＩＭ（３６）は、第２のモデル系列内で第２のイベントを登録し、前記第２のイベントは前記第１のイベントとは異なるものである、請求項８に記載の方法。
【請求項１１】
ＰＩＭ間でのインターラクションは製品固有のＰＩＭレベルで定義される、請求項８に記載の方法。
【請求項１２】
各ＰＩＭ（３６）は、
特定のモデル系列に特有のインターフェースコードと、
そのＰＩＭが使用されるすべてのモデル系列に共通の性能コードと
を含んでおり、前記インターフェースコードは当該モデル系列の所望の性能に特有である、請求項８に記載の方法。
【請求項１３】
前記インターフェースコードは、別のＰＩＭからＡＬＣＵ（３４）を通して受信したコールを、性能コードが理解できるコールに翻訳する、請求項１２に記載の方法。
【請求項１４】
前記ＡＣＬＵ（３４）は、パブリックインターフェース、ユーティリティインターフェース、およびＰＩＭインターフェースを含んでいる、請求項８に記載の方法。
【請求項１５】
少なくとも第１のＰＩＭは、いくつかの製品系列において第２のＰＩＭからの所定のイベントを受信するよう登録し、他の製品系列においてそのように登録していない、請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テレビ（ＴＶ）用モジュラー式フレキシブルソフトウェアアーキテクチャに関する。
【背景技術】
【０００２】
既存のＴＶ用アーキテクチャは、機能が固定されたモデルをベースとしており、したがってその製品の寿命全体にわたって機能を変更することはできない。機能特性及びアプリケーションは製品の性能（feature）の決定時に固定され、その後に変わることはない。この種のアーキテクチャは、個々の製品の性能を顧客に届けられた後に更新できるようには設計されていなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本明細書では、「フレキシブル」とは、ＴＶが顧客に届けられたあとに希望に応じてグレードアップできることをいう。さらに、「フレキシブル」の必要性は、顧客へ届けた後にグレードアップすることを越え、特に、より「モジュラー式」でより「フレキシブル」であるとは、発売されたときの製品の性能を発展させ、修正させるものであり、より有益なものとなりうる。
【０００４】
したがって、有形なコンピュータ読取可能な記憶媒体上に具現化されるＴＶシステムアーキテクチャには、アプリケーションロジック調整ユニット（application logic coordination unit:ＡＬＣＵ）、およびＡＬＣＵと通信する複数のプラグインモジュール（ＰＩＭ）が含まれる。各ＰＩＭは、要求されるＴＶシステムの性能を表す。ＰＩＭ間の相互作用は、製品の差異化をサポートして製品ごとに固有のものとなるよう、ＰＩＭレベルで定義される。すなわち、複数のＰＩＭの特定の組み合わせによって、異なるモデルごとに異なったものとなるよう、製品化ごとの更なる差異化を提供する。さらに、新しいＰＩＭを追加することによって、この新しいＰＩＭを、他の特定のＰＩＭをチェックし自分の動作を当該他のＰＩＭに基づいて適合化するようプログラムすることができる。例えば、新しいＰＩＭがＴＶのモデルＩＤを読み取ることができるようにすることができる。
【０００５】
別の側面では、一つの方法として、第１及び第２のＴＶシステムのモデル系列に、両方のモデル系列に共通のアプリケーションロジック調整ユニット（ＡＬＣＵ）を設けることができる。この方法では、さらにＡＬＣＵと通信することができるよう構成した複数のプラグインモジュール（ＰＩＭ）を設け、各ＰＩＭは要求されるＴＶシステムの性能を表し、ＡＬＣＵはＰＩＭ間での情報の伝達（routing）を行う。第１のモデル系列内のＰＩＭのセットは、第２のモデル系列内のＰＩＭのセットと異なっていてもよい。このＰＩＭのセットは、特定のＴＶモデルについて意図されている所望の性能を確立するために確立されてもよい。ＰＩＭの組み合わせは、さらなる製品の差異化を加えるために、修正されたＰＩＭを含んでいてもよい。
【０００６】
別の側面では、ディスプレイシステムには、ビデオディスプレイ、およびソフトウェア内に組み込まれたＴＶの性能のアーキテクチャを実現するプロセッサ回路が含まれる。このアーキテクチャには、アプリケーションロジック調整ユニット（application logic coordination unit:ＡＬＣＵ）、およびＡＬＣＵと通信する複数のプラグインモジュール（ＰＩＭ）が含まれる。各ＰＩＭは、要求されるＴＶシステムの性能を表す。ＡＬＣＵはＰＩＭ間での情報の伝達（routing）を行う。そして、ＡＬＣＵと通信するＰＩＭと協働するように、ＡＬＣＵに新しいＰＩＭを追加することができる。
【０００７】
いくつかの実施例においては、第１の性能を与えるＰＩＭは、第１のモデル系列における第１のアプリケーションの開始の判定を実行し、第１の性能を与えるＰＩＭは、第２のモデル系列における第２のアプリケーションの開始の判定を実行する。第２のアプリケーションの開始の判定は、第１のアプリケーションの開始の判定とは異なる。いくつかの実例では、第１の性能を与えるＰＩＭは、第１のモデル系列の第１のイベントのための登録をし、第１の性能を与えるＰＩＭは、第２のモデル系列の第２のイベントのための登録をする。第２のイベントは第１のイベントとは異なるものである。ＰＩＭ間の相互作用は、製品ごとに固有のものとなるよう、ＰＩＭレベルで定義することができる。
【０００８】
非限定的な例では、各ＰＩＭは、特定のモデル系列に固有のインターフェースコードと、ＰＩＭが使われるすべてのモデル系列に共通の性能コードを含む。インターフェースコーは、ＡＬＣＵを通して受け取った他のＰＩＭからのコールを、性能コードが理解できるコールに翻訳する。ＡＬＣＵは、パブリックインターフェース、ユーティリティインターフェース、およびＰＩＭインターフェースを含むことができる。
【０００９】
本願発明の構成及び動作に関する詳細は、図面を参照することによってより良く理解できる。図面では、同じ符号は同じ構成部分を示している。
【図面の簡単な説明】
【００１０】
【図１】本発明が使用される一例の環境を示した概略ブロック図である。
【図２】本発明に従った一例のアーキテクチャの概略ブロック図である。
【図３】本実施形態のＡＬＣＵを示す図である。
【図４】本実施形態のアーキテクチャがどのように機能するかを示した図である。
【図５】製品固有のブラウザＰＩＭ５８が、特定のキーイベントとして示されるアプリケーションの開始イベント、アプリケーションの再開イベント、アプリケーションの一時停止イベント、アプリケーションの終了イベントを含むアプリケーションのアクションイベントを、ブラウザＰＩＭ５８と関連づけられたＡＰＩ６０が待つコールに翻訳することを示した図である。
【図６】符号Ｘ２で示したモジュール式のグラフィックＰＩＭ６２を設けることができることを示した図である。
【発明を実施するための形態】
【００１１】
最初に図１を参照すると、システム１０は、ビジュアルディスプレイ１２を含むものとして示されている。本実施形態は、ビジュアルディスプレイ１２はＴＶ用ビデオディスプレイであり、フラットパネル型マトリックスタイプのディスプレイ等とすることができるが、これに限定されるものではない。
【００１２】
システム１０は、ディスプレイ１２及びＴＶチューナ１６を支持するＴＶ筐体１４を含んでいる。ＴＶチューナ１６は、ケーブルヘッドエンド、セットトップボックス、衛星受信器、地上波放送アンテナなどの、ＴＶ番組の信号源１８からの信号を受信する。チューナ１６は、後述のようにセットボックスの一部である場合もあるが、典型的には筐体１４上に設けられる。
【００１３】
筐体１４には、ＴＶプロセッサ２０が含まれている。ＴＶプロセッサ２０は、１枚又は複数枚のディスク型記録装置、ソリッドステート記録装置といった物理的なコンピュータ読取可能な記録媒体２２に記録された本ロジックの実装されたソフトウェアなどの情報にアクセスすることができる。ユーザのコマンドはリモートコントロール２４から受信することができる。
【００１４】
下記の開示は、筐体１４内の媒体２２に記録されるソフトウェア実装されたＰＩＭに焦点を当てるが、いくつかの実施例では、ＰＩＭを、セットボックスなどの外部装置と通信するためのソフトウェアドライバに接続することもできる。いずれの場合もＰＩＭは、媒体２２に記録するために、ＴＶへのネットワーク接続、ユニバーサルシリアルバス（ＵＳＢ）小型ドライブ、その他の方法によって転送することができる。さらに別の実施例として、ＰＩＭが外部プラグインカードとして実装される場合には、ＴＶプロセッサ２０から計算負荷の高いタスクを軽減するために、このようなタスクを実行する特化されたハードウェアを、カードに含めることもできる。こうすることにより、外部プラグインカードとして実装する場合の追加コストを正当化することができる。例えば、プラグインカードが１枚又は複数枚のＰＩＭカードを与えるのに使われている場合には、現在表示されているビデオの中の人の顔を認識し特定するという複雑な連想サーチを、そのプラグインカードに行わせて負荷を軽減させることができる。このような性能のためのＰＩＭは、スクリーンイメージのビデオキャプチャを取り込み、これをカードにある外部プロセッサに送るために、ＰＩＭ間の通信を実行する。その場合、戻りのデータ要求は、後述のＡＬＣＵに送信され、ＡＬＣＵはその結果をディスプレイのＰＩＭに伝達し結果を報告する。すなわち、後述の図２に示すように、「性能Ｃ」などのアイテムが、外部プロセッサ又はその他のＵＳＢ小型ドライブコントローラなどの外部装置に対するインターフェースとなりうる。
【００１５】
図１に示すように、システム１０は、ＴＶの筐体に機械的に固定されるセットトップボックスやセットバックボックスなどのセットボックス２６を含むことができ、これは筐体内部の部品と電気的に接続される。セットボックス２６はボックスプロセッサ２８を含むことができ、これは１つ又は複数のコンピュータ読取可能な記録媒体３０にアクセスして本アーキテクチャを実行する。本発明がボックスプロセッサ２８と協働するＴＶプロセッサ２０によって実行され、又は、セットボックス２６がない場合は本発明がＴＶプロセッサ２０によって実行されることが理解される。
【００１６】
望ましくは、システム１０にコンピュータの広域ネットワークインターフェース３２が含まれていてもよく、この場合はセットボックス２６に設けられ、ボックスプロセッサ２８が、インターネットなどの広域ネットワークへのアクセス及びインターネットからの後述のモジュールの受信を制御する。インターフェース３２は有線又は無線のモデムとすることができるが、これに限定されるものではない。
【００１７】
本発明の実施形態には、単一のコードベースからアップグレード可能な製品の範囲をサポートするための基礎を構築することが含まれる。さらに後述する非限定的なアーキテクチャの例は、「プラグインアプリケーション」の概念を、「プラグインミドルウェア」まで広げる。これは、単なるユーザインターフェース（ＵＩ）以上のダウンロード可能な「プラグイン」が加わることを意味する。新たな機能及び性能を、標準化された一貫した方法でシステムに追加することができる。さらに後述する非限定的なアーキテクチャの例は、開発段階及び製品が届けられた後の両方において、単一のソースコードベースで製品系列に対して追加され又は削除される種々の性能のため機構を、ダウンロード可能な「プラグイン」モジュールとして提供する。さらに後述する非限定的なアーキテクチャの例はさらに、より効率的な製品開発及び迅速な市場への投入を可能にする。
【００１８】
さらに後述する非限定的なアーキテクチャの例は、全体的なイベントの数を最小限におさえながら標準化された、しかし拡張可能なイベントの受け渡し、製品の提供を定義するグループ化されたモジュールセット、他の製品セットについての開発を継続可能としつつ一つの製品セットについて変更を凍結することができること、及び、ミドルウェアコンポーネントを全体のシステムに接続可能にする標準的な機構、を提供する。
【００１９】
したがって、各ＴＶ製品は、一般的なソフトウェアモジュールの単純な選択された組み合わせではない。製品にわたって同じままとすることが可能な共通コードは、各製品について固有にする必要があるコードとは区別される。
【００２０】
各ユニークなモジュールは、ＰＩＭ（プラグインモジュール）と呼ばれる。各ＰＩＭは、それぞれのＴＶシステムの性能を表し、これにより複数の性能が、アプリケーションロジック調整ユニット（ＡＬＣＵ）への共通インターフェースを用いるＰＩＭを通してアーキテクチャに挿入される。ＡＬＣＵは、ＰＩＭ間で、コール及びイベントの伝達を行う。ＰＩＭインターフェースは、ＰＩＭインターフェースを初期化（initialize）、ロード（load）、システムイベントへの反応（react）、及びイベント及びアクションの開始を可能にするすべてのＰＩＭについて、アプリケーションプログラミングインターフェース（ＡＰＩ）エントリーの共通のセットを含んでいる。
【００２１】
各ＰＩＭは、それが表すモジュール間で、リモートコマンドからＡＬＣＵによって使用される一般化されたシステムインターフェースへの入力のようなプロキシの役割を果たす。各ＰＩＭはまた、製品の固有のコードの収容庫（repository）としての役割も果たす。ＰＩＭを通してＡＬＣＵに接続される各ソフトウェアモジュールは、製品固有のエレメントはＰＩＭ内に保持されて、「製品中立（product newtral）」に保たれる。これによって、将来における各製品内での差異化を可能にしつつ、性能を製品間で共有することができる。
【００２２】
したがって、システム全体の動作は、中央論理制御ユニットによって定義され、各モジュールの個々の動作はプラグインをベースに追加することが可能である。個々のシステムモジュールそれぞれは互いに透明性があり、他のモジュールに影響を与えることなく変更や入れ換えが可能である。修正された又は入れ換えられたモジュールは、そのＰＩＭにおいてそのシステム動作を定義することが必要なだけであり、このＰＩＭがそのモジュールを、ＡＬＣＵを通してシステム全体に接続する。
【００２３】
ここで図２を参照する。基礎となるソフトウェアモジュールをここではアプリケーションロジック調整ユニット（ＡＬＣＵ）３４と呼ぶ。これはソフトウェアによって実行される性能であるＰＩＭ３６の間でアプリケーション動作及びシステムのイベントを伝達しあい、そして、性能ＰＩＭ３６の間で動作を同期させる。この異なるＰＩＭ３６の組み合わせによって異なるＴＶシステム製品の品揃えを提供し、異なる製品パッケージとして販売することができ、また、家庭に設置後にインターネットから個別にＴＶシステムにダウンロートすることが可能になり、それによって例えばパッケージ内の既存のモジュールをアップグレードしたり、ＴＶシステムに新しい性能を追加するために、新しい性能の対価と引き換えに新しいモジュールをパッケージに追加することができる。
【００２４】
図２に示すように、各ＰＩＭには、性能定義及び実行コードサブモジュール３８が含まれている。これはＰＩＭ毎に固有である。また、各ＰＩＭ３６には、すべてのＰＩＭについて同じ共通コードモジュール４０が含まれている。この理由については後述する。各ＰＩＭ３６には、また、ＡＬＣＵ３４のインターフェース４４と通信するＡＬＣＵインターフェース４２が含まれている。このインターフェース４２及び４４によって、ＡＬＣＵ３４からＰＩＭ３６を追加し又は削除することを容易にする共通インターフェーススキームが定義される。
【００２５】
各ＰＩＭ３６は、ソフトウェアを提供してＴＶシステム１０のためにそれぞれの性能を確立するのに加え、ＡＬＣＵ３４にコールバック（callback）を追加して必要に応じてモジュール製品特有の動作を定義することができる。これについては、以下により詳しく説明する。ＡＬＣＵ３４は１つの具体例として、シングルトンＣ＋＋クラスとして実装することができる。したがって、ＡＬＣＵ３４は、システム及びアクションイベントをＰＩＭ間で分配する伝達機構である。各ＰＩＭ３６は、後述するようにＡＬＣＵ３４インターフェースを通してイベントをＡＬＣＵ３４のイベントキューに追加することができる。
【００２６】
ＡＬＣＵ３４は、ＰＩＭ間で情報を伝達するのに加え、現在アクティブなアプリケーションを監視するとともに、リストデータのスタックにおける親子関係を監視する。このリストデータの構造は兄弟アプリケーションの関係を表している。
【００２７】
アクション及びイベントは、アクション、あるいはイベントに関するいくつかの情報の受け渡しを実行するように要求されたように定義される。アクションの一例は、１つのＰＩＭ３６によってアプリケーションを開始するようにとの要求であり、イベントの一例は、開始された他のＰＩＭと関連のあるアプリケーションへ伝達されるキーボードのキーのイベントである。
【００２８】
ＰＩＭに必要とされるインターフェース４４に加え、図３に示すＡＬＣＵ３４の例は、ＰＩＭのインストールと削除を制御するためのパブリックＡＰＩ４６を有する。さらに、ＡＬＣＵ３４には、ＡＬＣＵ３４のユーティリティのための内部ＡＰＩ４８を含んでおり、これは、ルーティング（伝達）動作を行えるようにする共通のルーティンを与える。
【００２９】
このように、ＡＬＣＵ３４の基礎アーキテクチャは、複数のＰＩＭを接続する共通の手段、ＰＩＭの接続を制御するインターフェース、そしてＡＬＣＵ３４及びＰＩＭが使うことのできる共通のユーティリティインターフェースを与える。各ＰＩＭはアクションを発することができ、これはＡＬＣＵ３４を通って別のＰＩＭにルーティングされる。ＡＬＣＵ３４はＰＩＭからイベントを受信し、これをイベントキュー（event queue）に追加する。イベントキューの各アイテムは順番に処理され、目的とするＰＩＭへ送信される。すべてのファンクションコール（function call）に対するメッセージをシステム内で処理するのではなく、メッセージの追加を各ＰＩＭベースで有利に行うことによって、ルーティングシステムのオーバーヘッドを減らすことができる。多くのＰＩＭへのブロードキャストイベントは、各ＰＩＭレジスタがコールバックハンドラを有し、興味のある各種のイベントを受信することによってハンドルされる。
【００３０】
ＡＬＣＵ３４のイベントキューは、ＡＬＣＵ３４がすべてのシステムのイベントを処理できるようコアデータ構造である。イベントキューは、早く来たものから順に処理する単純なＦＩＦＯキュー、或いは最もプライオリティが高いイベントを時間切れに間に合うよう最初に処理するプライオリティキューとして実装することができる。このようなルーティング機構の複雑さは、製品に合わせて作ることができる。
【００３１】
ＡＬＣＵ３４のイベントフォーマットは、ビット列の使われていない整数によって指定することができる。この整数には、モジュールＩＤ、イベントのタイプ、サブイベントのタイプ、そして１つ又は複数のイベントフラグを含めることができる。ここで、モジュールＩＤはイベントのソースＰＩＭを示し、イベントのタイプは何が送られたかを指定する。サブイベントのタイプ及びイベントフラグは、パラメータ及び修飾句（qualifier）をイベントに追加することができる。
【００３２】
全体的なイベントはシステム全体で定義されるが、イベント及びサブイベントの組み合わせは、ＡＬＣＵ３４に、ルーティングの粒度（granularity）を要求に合わせるための柔軟性を与える。イベントを受信するために、各ＰＩＭレジスタは、ＰＩＭが受け取ろうとするイベント及びサブイベントのためのイベントハンドラを登録する。そしてＡＬＣＵ３４はイベントを、そのように登録されたイベントハンドラか、或いは不要なブロードキャスティングや多重キャスティングメッセージを避けるために登録されたサブイベントハンドラへ転送する。
【００３３】
各ＰＩＭは、ベースＰＩＭインターフェースに由来し、これは、由来するクラスによって実装される純粋に仮想的な多くの方法を有するＣ＋＋アブストラクトクラスとすることができる。各ＰＩＭはそれ自身のインストール、削除、初期化、そしてシャットダウンをサポートすることができる。各ＰＩＭはアプリケーションの開始、システムイベント、或いはキーイベント（key event）を受信するエントリーポイントを有する。
【００３４】
ＰＩＭは、その機能によっては、すべてのイベントタイプを処理しなくてもよい。例えば、リモートコントロールのキー入力を受信する性能を与えるＰＩＭであれば、これがアプリケーション開始リクエストを受信したときに警報又はエラーを発するようにしてもよい。
【００３５】
ＡＬＣＵ３４のパブリックインターフェース４６は、ＡＬＣＵ３４内部にアクセスするシステムモジュールのためのＣインターフェースとすることができる。このパブリックインターフェースは、ＡＬＣＵ３４のイベントキューの全体的な制御のためのものであり、例えば、ＰＩＭのインストール及び削除、ＡＬＣＵ３４を例示すること、システムの状態ステータスを得ること、及びアプリケーションの親子関係及び兄弟関係を得ることに供する。
【００３６】
ＡＬＣＵ３４のユーティリティインターフェース５０は、ＡＬＣＵ３４及びＰＩＭの両方が使用することができるユーティリティとのインターフェースの役割をする。これらのユーティリティは、アクティブなアプリケーションのＩＤを返し、システム状態を質問し、ＰＩＭの動作を特定するのに必要なコールバックを追加し又は削除するといった、有益な機能である。ＡＬＣＵ３４のユーティリティインターフェース５０はまた、ＡＬＣＵ３４のベースユニットに、システムプラットフォームにアクセスするためのアブストラクションレイヤーを与え、これによりシステムプラットフォームの詳細がＡＬＣＵ３４のベースユニット部から引き出される。これはイベントのルーティングの機構である。
【００３７】
上記のアーキテクチャがどのように機能するかという例として、図４を参照する。ここで「キーイベント」は、リモートコントロール２４上のキーを操作するユーザによって生成されるものとする。キーイベントはＴＶプロセッサによって検出され、その唯一の機能がＡＬＣＵにコマンド受信（キーイベント）を知らせることであるＰＩＭ５２を通してＡＬＣＵ３４に渡される。このキーイベントはＡＬＣＵ３４の中のイベントキューに加えられる。このキーイベントは、最初に来たものからオーダーされる。キュー内のイベントは削除され、そしてキーイベントのためのコールバックを登録してある別のＰＩＭ５６へ伝達される。重要な処理は、アーキテクチャの構造を通して調停される。
【００３８】
例えば、キーイベントＰＩＭに加え、ＰＩＭは製品に特有のブラウザＰＩＭ部５８を含めることもできる。これは特定のモデル系列のためのもので、そのＰＩＭと別のＰＩＭとのインターラクションを定義する。同様に、ウェブブラウザ機能を与えるブラウザ機能部６０を含めることができ、これはすべてのモデル系列について共通である。このようなＰＩＭは、特定の製品系列の設計及び提供しようとする性能の組み合わせに依存して、いくつかの製品系列においてはキーイベントＰＩＭからのキーイベントを受信するよう登録されているが、別の製品系列では登録されていない、ということがありうる。
【００３９】
別のＰＩＭ、例えばブラウザＰＩＭ５８が、リモートコントロール２４から発せられるキーイベントを受信するよう登録されている場合には、このキーイベントは、ＡＬＣＵ３４のユーティリティを通してフィルタリングされるようにしてもよい。これによって、どのフレームワーク内のどのアプリケーションが現在ＴＶ上で注目されているかを決定することができる。これは、ＰＩＭがキー入力を見ることを可能にし、さらにシステムの動作をＰＩＭモジュール内で切り離して、ホットキー（hot-key）のサポートを可能にする。ＡＬＣＵ３４はアクティブなアプリケーション、及びアプリケーション間の親子関係を監視する。親アプリケーションは、複数の子アプリケーションを持つことができる。
【００４０】
単一のブラウザＰＩＭを複数のＴＶのモデル系列に設けることができる一方で、このようなブラウザモジュールを、特定のモデル系列用に高機能又は低機能の希望に合わせて設計することができる。これは、モデル系列ごとに、いくつかのイベントを一つのモデル系列のために、別のイベントを別のモデル系列のためにというようにイベントハンドラを登録することによって、各ＰＩＭをそのシステムの動作を定義するようにプログラミングできるからである。ＰＩＭがＡＬＵＣ３４から伝送されたイベントを受信すると、イベントはさらにＰＩＭで、関連するモジュール動作／機能コールに翻訳される。
【００４１】
性能ＰＩＭを、異なる製品ごとに単一のコードベース内でさらに簡便に追加・削除できるようにするために、上記アーキテクチャは、上述のインターフェース及び機能を用いてＰＩＭを「差し込み可能（pluggable）」にする。例えば、ブラウザＰＩＭは、全体のシステムアーキテクチャに影響を与えることなく交換することができる。この目的のために、ブラウザＰＩＭはパブリックインターフェースを備えており、これはブラウザＰＩＭからコールされるＰＩＭのパブリック機能を定義する。ＡＬＣＵ３４がブラウザＰＩＭをコークするたびに、ブラウザＰＩＭはそのコールを翻訳し、ＰＩＭのパブリック機能を呼び出す。このようにして、システムアーキテクチャに影響を与えず、ブラウザＰＩＭを追加し、削除し、別のブラウザＰＩＭと交換することができる。
【００４２】
図５は、製品固有のブラウザＰＩＭ５８が、特定のキーイベントとして示されるアプリケーションの開始イベント、アプリケーションの再開イベント、アプリケーションの一時停止イベント、アプリケーションの終了イベントを含むアプリケーションのアクションイベントを、ブラウザＰＩＭ５８と関連づけられたＡＰＩ６０が待つコールに翻訳することを示しており、これはすべてのモデル系列に共通のものである。例えば、ブラウザＰＩＭ５８がこのモデル系列に固有のアプリケーションの開始イベントを受信したときは、ブラウザＰＩＭ５８はブラウザＡＰＩ６０のパブリック機能を呼び出して、選択されたブラウザのウィンドウを表示する。ブラウザＰＩＭ５８がアプリケーションの終了イベントを示すキーイベントを受信したときは、ブラウザＡＰＩ６０を呼び出してそのウィンドウを閉じる。ブラウザＰＩＭ５８はまた、図５に示したキーフォーマットの変換の役割を担う。
【００４３】
このように、ブラウザＰＩＭ５８は、ＡＬＣＵ３４から受信した生のキー入力をブラウザが要求するキーフォーマットに変換する。ブラウザＰＩＭ５８はまた、ネットワークイベントを特定のブラウサイベントに翻訳する。異なるブラウザを使うということは、新たなブラウザのコールのセットに必要な翻訳を処理する新たなＰＩＭを生成することを意味する。併せて、図５に示したブラウザＰＩＭ５８及びブラウザＡＰＩ６０の両方を、そのためにＡＰＩ６０が構成され特定のブラウザの機能を与える、単一のＰＩＭと見なすこともできる。
【００４４】
図６に示すように、符号Ｘ２で示したモジュール式のグラフィックＰＩＭ６２を設けることもできる。本質的に、グラフィックＰＩＭ６２と関連づけられたブラウザ６０及びグラフィックレンダラ（graphic renderer）６４は共にグラフィックレンダラエージェントであり、図６に示すように、それぞれは互いに独立してディスプレイ１２に表示するためのグラフィックをレンダリングすることができる。グラフィックレンダラ６４及びブラウザＡＰＩ６０のそれぞれの出力６８、７０の合成（composite）処理を調整して最終的なスクリーンディスプレイに供給するための、グラフィックマネージャＰＩＭ６６を設けることができる。グラフィックレンダラ６４は、２Ｄ又は３Ｄのレンダラであってもよく、また、オープンジーエル（OpenGL）をサポートするものでもよい。
【００４５】
各ＰＩＭは、製品固有のアプリケーションごとの開始を含むＰＩＭレベルでのインターラクションを定義することが可能であることにより、前述のように異なるモデル系列用に適合するように潜在的に用意することができる。上記のプラグインアーキテクチャを用い、上記の各ＰＩＭによって、既存のシステムに比べシステムインテグレーションに要する時間を大幅に削減できる。多くの個別のＰＩＭを短時間で新たなシステムに組み込むことが可能である。ソフトウェアの再使用可能性（reusability）を高めることによって、最終的なソフトウェアの安定性が向上し、ソフトウェアのメインテナンスに要するマンパワーも削減できる。ＰＩＭはインターネットからダウンロード可能であるので、このような本発明を備えたＴＶは、長期間にわたり新たな性能を追加することが可能となる。
【００４６】
上述のＰＩＭに加え、限定的ではないが、ＰＩＭに次のような性能を設けることができる。すなわち、インターネットサーチ、インターネットビデオ、地域別のサービス、地図、電話機能、通信機能、コミュニティフォトサービスのアップロード／ダウンロード（例えば、Flickr）、支払い機能、情報オーバーレイ（例えば、My Page）、放送に同期したオーバーレイ、コンピュータゲーム、診断、ＥＰＧ、ＤＶＲなどである。ホームネットワーク機能を有するＰＩＭを設けることもできる。これには写真、音楽、ビデオを共有するＰＩＭ、ＤＬＮＮ ＰＩＭ、電話からブルートゥース等を介してＴＶにデータを送るプッシュＰＩＭなどが含まれる。
【００４７】
クロスメディアバー（cross-media bar）ＰＩＭ、お気に入りＰＩＭ、デバイス統合ＰＩＭを含む３Ｄ ＧＵＩ ＰＩＭなどを設けてもよい。
【００４８】
上述のように、ＰＩＭは、モデル系列に応じて何らかのコールを登録し、これによりアプリケーションの開始を受信したときに、ＰＩＭは、アプリケーションの開始の判定を行うための方法を呼び出す。もし返された値が間違いであれば、ＰＩＭはその関連するアプリケーションを開始しない。さらに、あるモデル系列内のアプリケーションは、ユーザが選択を行うまでは他のアプリケーションの開始をブロックし、別のモデル系列ではアプリケーションが他のアプリケーションをブロックしないようにすることもできる。
【００４９】
各ＰＩＭは、そのモデル系列のための適切なコールを登録するようＰＩＭをプログラミングすることによって、そして、ＰＩＭが特定の系列のための要望されるアプリケーションの開始の判定を行うようプログラミングすることによって、特定のモデル系列用に適合して設計することができるので、その同じＰＩＭを、各系列のための異なる動作を有する複数のモデル系列において使用することが可能である。
【００５０】
例えば、ハイエンドのモデル系列ではその製品に元々備わるユーザインターフェース、ネットワーク機能、及びブラウザユーザインターフェースの性能を要求するかもしれないが、そのような場合には、元々備わるユーザインターフェースを表すＰＩＭ、ＨＤワールド（HD World）のような性能を表す１つ又は複数のネットワーク機能ＰＩＭ、デジタルビデオレコーダ、デジタルリビングネットワークアライアンス（digital living network alliance：ＤＬＮＡ）などをＡＬＣＵにプラグインすることができる。
【００５１】
一方、一段低いレベルのモデル系列では、ネットワーク機能とエーウェブブラウザ（A Web Browser）ユーザインターフェース（例えば、セットアップ用のローカルページ）を与えるよう設計することができ、そのような場合には、ＤＬＮＡ、ＥＰＧ及びホームセキュリティを与えるＰＩＭをＡＬＣＵにプラグインすることができる。もう一段低いレベルのモデルには、元々備わるユーザインターフェース及びネットワーク機能を与えるように設計し、ＤＶＲ、ブルートゥース電話、そしてリモートコントロール機能をＡＬＣＵにプラグインすることができる。さらに一段低いレベルのモデルでは、ネットワーク機能がなく、元々備わるユーザインターフェースを与えるよう設計することができ、その場合には、ブルーレイＤＶＤ ＰＩＭ及びブルートゥース電話ＰＩＭをＡＬＣＵにプラグインすることができる。一番低いレベルのモデルでは、拡張ユーザインターフェースはなくＴＶ接続だけができるよう設計するこができ、その場合は、無線Ａ／Ｖ接続ＰＩＭ及びリモートコントロールＰＩＭだけを設けることができる。
【００５２】
ＴＶ用のモジュール式フレキシブルソフトウェアの非限定的なアーキテクチャの例について詳細に説明してきたが、本発明に含まれる発明の主題は、特許請求の範囲の記載によってのみ限定されるものと解すべきである。
【図１】
2012502357.tif 000003
【図２】
2012502357.tif 000004
【図３】
2012502357.tif 000005
【図４】
2012502357.tif 000006
【図５】
2012502357.tif 000007
【図６】
2012502357.tif 000008
【国際調査報告】
2012502357.tif 000009