(57)【要約】ネイティブに実装された仮想マシンを含む、消費者電子機器デバイスのための共通クライアントについて、説明する。本発明の一実施形態は、オーディオおよびビデオデコーダ、ネイティブに実装されたホストプロセス、ネイティブに実装された仮想マシン、再生デバイスのオーディオおよびビデオデコーダを使用して、オーディオおよびビデオの再生を調整するように構成される、ネイティブに実装されたプロセスを含む、共通クライアント、仮想マシン内で実行し、仮想マシン内で実行するスクリプトを、ネイティブに実装されたプロセスを使用して、オーディオおよびビデオの再生を開始させるように構成される、ＶＭフレームワーク、ならびに仮想マシン内で実行されるように構成されるスクリプトとして実装される、ユーザインターフェースを含む。
2013516923.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続された再生デバイスであって、
オーディオおよびビデオデコーダと、
ネイティブに実装されたホストプロセスと、
ネイティブに実装された仮想マシンと、
共通クライアントと
を含み、
前記共通クライアントは、
前記再生デバイスのオーディオおよびビデオデコーダを使用して、オーディオおよびビデオの再生を調整するように構成される、ネイティブに実装されたプロセスと、
前記仮想マシン内で実行し、かつ、前記仮想マシン内で実行するスクリプトが、前記ネイティブに実装されたプロセスを使用して、オーディオおよびビデオの再生を開始することを可能にするように構成される、ＶＭフレームワークと、
前記仮想マシン内で実行されるように構成されるスクリプトとして実装される、ユーザインターフェースと
を含む、インターネットに接続された再生デバイス。
【請求項２】
前記ネイティブに実装されたプロセスはまた、ＵＲＩオブジェクトをローカルにキャッシュするように構成され、
前記ＶＭフレームワークは、前記仮想マシン内でスクリプトを実行することによって生成される、ＵＲＩ要求を傍受し、前記ＵＲＩ要求を前記ネイティブに実装されたプロセスに提供するように構成され、
前記ネイティブに実装されたプロセスは、ＵＲＩオブジェクトを遠隔サーバから要求する前に、要求されたＵＲＩオブジェクトが、前記ローカルキャッシュ内に位置しないことを検証するように構成される、
請求項１に記載のインターネットに接続された再生デバイス。
【請求項３】
前記共通クライアントは、前記仮想マシン内で実行するように構成される、スクリプトと、ネイティブにコンパイルされたコードとの組み合わせとして、展開される、アプリケーションのためのランタイム環境を提供し、
前記ＶＭフレームワークは、前記アプリケーションスクリプトが、前記仮想マシン内での前記アプリケーションスクリプトの実行の間、前記共通クライアントのネイティブに実装されたプロセスおよび前記アプリケーションのネイティブにコンパイルされたコードを利用することを可能にするように構成される、
請求項１に記載のインターネットに接続された再生デバイス。
【請求項４】
前記ユーザインターフェースは、前記再生デバイスによって再生することができるコンテンツを遠隔サーバ上で識別する、インターネットコンテンツガイドを含む、請求項３に記載のインターネットに接続された再生デバイス。
【請求項５】
前記インターネットコンテンツガイドはまた、前記インターネットコンテンツガイド内で識別されたコンテンツと関連付けられる、ビデオプレーヤアプリケーションに関する情報を含み、
前記ＶＭフレームワークは、ユーザが、再生のために、インターネットコンテンツガイドユーザインターフェース内で一連のコンテンツを選択するのに応答して、少なくとも１つのビデオプレーヤアプリケーションを要求するように構成され、前記インターネットコンテンツガイドは、前記少なくとも１つのビデオプレーヤアプリケーションが、前記選択されたコンテンツの再生の間、利用されることを示し、
前記ネイティブに実装されたプロセスは、要求されたビデオプレーヤアプリケーションを前記ＶＭフレームワークに提供するように構成され、
前記ＶＭフレームワークは、前記ネイティブに実装されたプロセスによって提供されたビデオプレーヤアプリケーションインスタンスを作成し、前記インターネットコンテンツガイドに、インターフェース情報を提供するように構成され、
前記インターネットコンテンツガイドユーザインターフェースは、前記ビデオプレーヤアプリケーションと併用して、ビデオプレーヤインターフェース情報を利用して、コンテンツ再生を調整するように構成される、
請求項４に記載のインターネットに接続された再生デバイス。
【請求項６】
コンテンツプレーヤアプリケーションが要求される、請求項５に記載のインターネットに接続された再生デバイス。
【請求項７】
広告プレーヤアプリケーションが要求される、請求項５に記載のインターネットに接続された再生デバイス。
【請求項８】
メトリックプレーヤアプリケーションが要求される、請求項５に記載のインターネットに接続された再生デバイス。
【請求項９】
前記ＶＭフレームワークはまた、プロキシプレーヤアプリケーションのインスタンスを作成する、請求項５に記載のインターネットに接続された再生デバイス。
【請求項１０】
前記ネイティブに実装されたプロセスは、遠隔サーバから情報を読み出すように構成される、デバイスアプリケーションプロセスと、前記再生デバイスのオーディオおよびビデオデコーダを使用して、オーディオおよびビデオの再生を処理するように構成される、プラットフォームサービスプロセスとを含み、
前記仮想マシンは、ネイティブに実装されたフラッシュプレーヤ内に実装される、フラッシュ仮想マシンであり、
前記ＶＭフレームワークは、一式のアクションスクリプトクラスを含む、アクションスクリプトフレームワークであり、
前記デバイスアプリケーションプロセスは、前記フラッシュプレーヤのＸＭＬＳｏｃｋｅｔ機能を介して、前記アクションスクリプトフレームワークと通信するように構成される、
請求項１に記載のインターネットに接続された再生デバイス。
【請求項１１】
アプリケーションは、ＳＷＦおよび前記デバイスアプリケーションプロセスに対するネイティブにコンパイルされたプラグインとして、前記共通クライアント上に展開される、請求項１０に記載のインターネットに接続された再生デバイス。
【請求項１２】
前記デバイスアプリケーションプロセスおよび前記デバイスアプリケーションプロセスに対するアプリケーションネイティブにコンパイルされたプラグインは、共有ライブラリとして実装される、請求項１１に記載のインターネットに接続された再生デバイス。
【請求項１３】
前記共通クライアントはさらに、インストーラを含み、
前記共通クライアントは、ソフトウェアプラットフォームを提供するように構成され、前記共通クライアントの構成要素は、前記インストーラを使用して、動的にロードすることができる、
請求項１に記載のインターネットに接続された再生デバイス。
【請求項１４】
前記仮想マシンは、ネイティブにコンパイルされたフラッシュプレーヤ内に実装される、フラッシュ仮想マシンであり、
前記ネイティブに実装されたプロセスは、
一式のサービスおよびＡＰＩを提供するように構成される、デバイスアプリケーションコンテナと、
前記再生デバイスと前記デバイスアプリケーションコンテナとの間に、抽象化レイヤを提供するように構成される、プラットフォームランタイムプロセスと
を含み、
前記ＶＭフレームワークは、前記フラッシュ仮想マシン内で実行するフラッシュアプリケーションが、関連付けられたネイティブに実装されたモジュールと通信することを可能にする、一式のＡＰＩを公開するように構成される、ＵＩアプリケーションコンテナを含み、
前記ユーザインターフェースは、アプリケーションバンドルとして実装され、
ＳＷＦと、
ネイティブにコンパイルされたコードモジュールと
を含み、
前記ユーザインターフェースのＳＷＦは、前記ＵＩアプリケーションコンテナＡＰＩを介して、前記ネイティブにコンパイルされたコードモジュールと通信するように構成され、
前記ネイティブにコンパイルされたコードモジュールは、前記デバイスアプリケーションコンテナによって提供されるサービスおよびＡＰＩを使用して、前記フラッシュ仮想マシンによって提供されない、前記ユーザインターフェースの機能性を実装するように構成される、
請求項１３に記載のインターネットに接続された再生デバイス。
【請求項１５】
前記アプリケーションバンドルはさらに、マニフェストを含む、請求項１４に記載のインターネットに接続された再生デバイス。
【請求項１６】
前記インストーラは、遠隔サーバから、アプリケーションを動的にロードするように構成され、前記アプリケーションは、
ＳＷＦと、
ネイティブにコンパイルされたコードモジュールと、
マニフェストと
を含む、請求項１４に記載のインターネットに接続された再生デバイス。
【請求項１７】
前記インストーラは、再生デバイスＲＯＭ内に実装され、前記インストーラは、デバイスメモリ内に前記ソフトウェアプラットフォームを動的にロードするように構成される、請求項１４に記載のインターネットに接続された再生デバイス。
【請求項１８】
前記ユーザインターフェースは、遠隔サーバから、前記ユーザインターフェースによって取得されたナビゲーション階層を使用して生成される、インターネットコンテンツガイドを含む、請求項１に記載のインターネットに接続された再生デバイス。
【請求項１９】
前記ユーザインターフェースは、コントローラ上の矢印ボタンを使用して、前記階層ＩＣＧ内のナビゲーションを有効にするように構成される、請求項１８に記載のインターネットに接続された再生デバイス。
【請求項２０】
前記ユーザインターフェースは、コントローラ上のジョイスティックを使用して、前記ナビゲーション階層内のナビゲーションを有効にするように構成される、請求項１８に記載のインターネットに接続された再生デバイス。
【請求項２１】
再生デバイス上でメディアを再生するための方法であって、前記再生デバイスは、ホストプロセスと、メディアデコーダと、ネイティブに実装された仮想マシンと、共通クライアントとを含み、前記共通クライアントは、ＶＭフレームワークを使用して、ユーザインターフェースを実装するように構成され、前記ＶＭフレームワークは、前記仮想マシン内で実行し、遠隔サーバから、コンテンツを読み出し、前記メディアデコーダを使用して、メディアの再生を調整するように構成される、ネイティブに実装されたプロセスと通信するように構成され、
前記方法は、
前記共通クライアントを使用して、インターネットコンテンツガイドのためのナビゲーション階層を取得することと、
前記ナビゲーション階層を使用して、前記仮想マシン内で実行するユーザインターフェースアプリケーションスクリプトによって生成される、ユーザインターフェースを表示することと、
前記ユーザインターフェースを介して、前記インターネットコンテンツガイド内で識別される、一連のコンテンツのユーザ選択を受信することであって、前記インターネットコンテンツガイドは、前記コンテンツと関連付けられた一意の識別子を含む、ことと、
前記要求されたコンテンツと関連付けられた前記一意の識別子を、前記ＶＭフレームワークを使用して、前記共通クライアントのネイティブに実装されたプロセスに、パスすることと、
前記共通クライアントのネイティブにコンパイルされたプロセスを使用して、前記一意の識別子によって識別されたメディアを取得することと、
前記再生デバイスのメディアデコーダを使用して、前記取得されたメディアをデコードすることと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（背景）
本発明は、概して、消費者電子機器デバイスに関し、より具体的には、インターネットを介して、アクセスされたコンテンツを再生するように構成される、消費者電子機器デバイスに関する。
【背景技術】
【０００２】
テレビ、ＤＶＤ／ブルーレイプレーヤ、セットトップボックス、携帯電話、およびゲームコンソールが挙げられるが、それらに限定されない、益々多くの種々の消費者電子機器デバイスが、インターネットへの接続の機能を保有する。膨大な種々のコンテンツが、インターネット上に存在し、多数のソースからアクセス可能である。各ソースは、典型的には、その独自のユニークな方法において、コンテンツを公開する。パーソナルコンピュータは、ウェブブラウザアプリケーションならびにオーディオ、ビデオ、音楽、テキスト、および／または静止画像が挙げられ得るが、それらに限定されない、コンテンツの閲覧を可能にする、種々のプラグインを使用して、インターネットを介して、コンテンツにアクセスすることができる。コンテンツの発見は、多くの場合、具体的サイトの推奨、他のユーザの推奨、および／または検索エンジンによって、促進される。ウェブブラウザおよび検索エンジンを使用するナビゲーションは、キーボードおよびマウスまたはタッチパッド等のポインティングデバイスの使用に依存する。消費者電子機器デバイスは、典型的には、ユーザ入力デバイスとして、遠隔制御またはゲームコントローラを提供する。そのような入力デバイスは、ウェブブラウザを使用するナビゲーション、および／または検索エンジンを介した検索に好適ではない。したがって、消費者電子機器デバイスの製造業者は、典型的には、デバイスに、限定数のソースからインターネットを介して、コンテンツにアクセスさせる、特定のデバイス専用のユーザインターフェースを開発する。コンテンツが、ユーザインターフェースを介してアクセス可能な各サイトを統合するためには、相当な努力が必要とされ、その努力は、製造業者およびデバイスの種別毎に再現される。
【発明の概要】
【課題を解決するための手段】
【０００３】
（発明の概要）
本発明の実施形態による、ネイティブに実装された仮想マシン（ＶＭ）を使用して、再生デバイス上でインターネットコンテンツをリアルタイムで再生する、ユーザインターフェースを提供するためのシステムおよび方法について、説明する。本発明の一実施形態は、オーディオおよびビデオデコーダ、ネイティブに実装されたホストプロセス、ネイティブに実装された仮想マシン、再生デバイスのオーディオおよびビデオデコーダを使用して、オーディオおよびビデオの再生を調整するように構成される、ネイティブに実装されたプロセスを含む、共通クライアント、仮想マシン内で実行し、仮想マシン内で実行するスクリプトを、ネイティブに実装されたプロセスを使用して、オーディオおよびビデオの再生を開始させるように構成される、ＶＭフレームワーク、ならびに仮想マシン内で実行されるように構成されるスクリプトとして実装される、ユーザインターフェースを含む。
【０００４】
別の実施形態では、ネイティブに実装されたプロセスはまた、ＵＲＩオブジェクトをローカルにキャッシュするように構成され、ＶＭフレームワークは、仮想マシン内でスクリプトを実行することによって生成される、ＵＲＩ要求を傍受し、ＵＲＩ要求をネイティブに実装されたプロセスに提供するように構成され、ネイティブに実装されたプロセスは、ＵＲＩオブジェクトを遠隔サーバから要求する前に、要求されたＵＲＩオブジェクトが、ローカルキャッシュ内に位置しないことを検証するように構成される。
【０００５】
さらなる実施形態では、共通クライアントは、仮想マシン内で実行するように構成される、スクリプトと、ネイティブにコンパイルされたコードの組み合わせとして、展開される、アプリケーションのためのランタイム環境を提供し、ＶＭフレームワークは、アプリケーションスクリプトに、仮想マシン内でのアプリケーションスクリプトの実行の間、共通クライアントのネイティブに実装されたプロセスおよびアプリケーションのネイティブにコンパイルされたコードを利用させるように構成される。
【０００６】
なおもさらなる実施形態では、ユーザインターフェースは、再生デバイスによって再生することができるコンテンツを遠隔サーバ上で識別する、インターネットコンテンツガイドを含む。
【０００７】
なおも別の実施形態では、インターネットコンテンツガイドはまた、インターネットコンテンツガイド内で識別されたコンテンツと関連付けられる、ビデオプレーヤアプリケーションに関する情報を含み、ＶＭフレームワークは、ユーザが、再生のために、インターネットコンテンツガイドユーザインターフェース内で一連のコンテンツを選択するのに応答して、少なくとも１つのビデオプレーヤアプリケーションを要求するように構成され、インターネットコンテンツガイドは、少なくとも１つのビデオプレーヤアプリケーションが、選択されたコンテンツの再生の間、利用されることを示し、ネイティブに実装されたプロセスは、要求されたビデオプレーヤアプリケーションをＶＭフレームワークに提供するように構成され、ＶＭフレームワークは、ネイティブに実装されたプロセスによって提供されたビデオプレーヤアプリケーションインスタンスを作成し、インターネットコンテンツガイドに、インターフェース情報を提供するように構成され、インターネットコンテンツガイドユーザインターフェースは、ビデオプレーヤアプリケーションと併用して、ビデオプレーヤインターフェース情報を利用して、コンテンツ再生を調整するように構成される。
【０００８】
なおもさらなる実施形態では、コンテンツプレーヤアプリケーションが要求される。
【０００９】
なおも別の実施形態では、広告プレーヤアプリケーションが要求される。
【００１０】
再び、さらなる実施形態では、メトリックプレーヤアプリケーションが要求される。
【００１１】
再び、別の実施形態では、ＶＭフレームワークはまた、プロキシプレーヤアプリケーションのインスタンスを作成する。
【００１２】
さらなる付加的実施形態では、ネイティブに実装されたプロセスは、遠隔サーバから情報を読み出すように構成される、デバイスアプリケーションプロセスと、再生デバイスのオーディオおよびビデオデコーダを使用して、オーディオおよびビデオの再生を処理するように構成される、プラットフォームサービスプロセスと、を含み、仮想マシンは、ネイティブに実装されたフラッシュプレーヤ内に実装される、フラッシュ仮想マシンであり、ＶＭフレームワークは、一式のアクションスクリプトクラスを備える、アクションスクリプトフレームワークであり、デバイスアプリケーションプロセスは、フラッシュプレーヤのＸＭＬＳｏｃｋｅｔ機能を介して、アクションスクリプトフレームワークと通信するように構成される。
【００１３】
別の付加的実施形態では、アプリケーションは、ＳＷＦおよびデバイスアプリケーションプロセスに対するネイティブにコンパイルされたプラグインとして、共通クライアント上に展開される。
【００１４】
依然として、なおもさらなる実施形態では、デバイスアプリケーションプロセスおよびデバイスアプリケーションプロセスに対するアプリケーションのネイティブにコンパイルされたプラグインは、共有ライブラリとして実装される。
【００１５】
依然として、なおも別の実施形態では、共通クライアントはさらにインストーラを含み、共通クライアントは、ソフトウェアプラットフォームを提供するように構成され、共通クライアントの構成要素は、インストーラを使用して、動的にロードすることができる。
【００１６】
再び、なおもさらなる実施形態では、仮想マシンは、ネイティブにコンパイルされたフラッシュプレーヤ内に実装される、フラッシュ仮想マシンであって、ネイティブに実装されたプロセスは、一式のサービスおよびＡＰＩを提供するように構成される、デバイスアプリケーションコンテナと、再生デバイスとデバイスアプリケーションコンテナとの間に、抽象化レイヤを提供するように構成される、プラットフォームランタイムプロセスと、を含み、ＶＭフレームワークは、フラッシュ仮想マシン内で実行するフラッシュアプリケーションに、関連付けられたネイティブに実装されたモジュールと通信させる、一式のＡＰＩを公開するように構成される、ＵＩアプリケーションコンテナを含み、ユーザインターフェースは、ＳＷＦと、ネイティブにコンパイルされたコードモジュールと、を含む、アプリケーションバンドルとして実装される。加えて、ユーザインターフェースＳＷＦは、ＵＩアプリケーションコンテナＡＰＩを介して、ネイティブにコンパイルされたコードモジュールと通信するように構成され、ネイティブにコンパイルされたコードモジュールは、デバイスアプリケーションコンテナによって提供されるサービスおよびＡＰＩを使用して、フラッシュ仮想マシンによって提供されない、ユーザインターフェースの機能性を実装するように構成される。
【００１７】
再び、なおも別の実施形態では、アプリケーションバンドルはさらに、マニフェストを含む。
【００１８】
依然として、さらなる付加的実施形態では、インストーラは、遠隔サーバから、アプリケーションを動的にロードするように構成され、アプリケーションは、ＳＷＦと、ネイティブにコンパイルされたコードモジュールと、マニフェストと、を含む。
【００１９】
依然として、別の付加的実施形態では、インストーラは、再生デバイスＲＯＭ内に実装され、インストーラは、デバイスメモリ内にソフトウェアプラットフォームを動的にロードするように構成される。
【００２０】
再び、なおもさらなる実施形態では、ユーザインターフェースは、遠隔サーバから、ユーザインターフェースによって取得されたナビゲーション階層を使用して生成される、インターネットコンテンツガイドを含む。
【００２１】
再び、なおも別の実施形態では、ユーザインターフェースは、コントローラ上の矢印ボタンを使用して、階層ＩＣＧ内のナビゲーションを有効にするように構成される。
【００２２】
なおもさらなる付加的実施形態では、ユーザインターフェースは、コントローラ上のジョイスティックを使用して、ナビゲーション階層内のナビゲーションを有効にするように構成される。
【００２３】
本発明の方法の実施形態は、共通クライアントを使用して、インターネットコンテンツガイドのためのナビゲーション階層を取得するステップと、ナビゲーション階層を使用して、仮想マシン内で実行するユーザインターフェースアプリケーションスクリプトによって生成される、ユーザインターフェースを表示するステップと、ユーザインターフェースを介して、インターネットコンテンツガイド内で識別される、一連のコンテンツのユーザ選択を受信するステップであって、インターネットコンテンツガイドは、コンテンツと関連付けされた一意の識別子を含む、ステップと、要求されたコンテンツと関連付けられた一意の識別子を、ＶＭフレームワークを使用して、共通クライアントのネイティブに実装されたプロセスに、パスするステップと、共通クライアントのネイティブにコンパイルされたプロセスを使用して、一意の識別子によって識別されたメディアを取得するステップと、再生デバイスのメディアデコーダを使用して、取得されたメディアをデコードするステップと、を含む。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明のある実施形態による、共通クライアントを例証する。
【図２】図２は、本発明のある実施形態による、共通クライアントを使用して、共通クライアントに対するＳＷＦとネイティブにコンパイルされた共有ライブラリの組み合わせとして実装される、アプリケーションの展開を例証する。
【図３】図３は、本発明のある実施形態による、ソフトウェアプラットフォームおよびアプリケーションバンドルを動的にロードするように構成される、共通クライアントを例証する。
【図４】図４は、本発明のある実施形態による、共通クライアントによって提供される、ソフトウェアプラットフォームランタイム環境内で起動し、ネイティブにコンパイルされたデバイスアプリケーションバンドルによって提供されるサービスおよびＡＰＩを利用する、アプリケーションのネイティブにコンパイルされたモジュールを概念的に例証する。
【図５】図５は、本発明のある実施形態による、コンテンツをローカルにキャッシュする、共通クライアント上において、オブジェクトＵＲＩを要求するためのプロセスを例証する。
【図６】図６は、本発明のある実施形態による、フラッシュプレーヤ、ネイティブに実装されたプラットフォームサービスプロセス、およびマルチメディアフレームワーク間の通信を例証する。
【図７】図７は、本発明のある実施形態による、インターネットコンテンツガイドユーザインターフェースを含む、共通クライアント上にアプリケーションをロードするためのシステムを例証する。
【図８】図８は、本発明のある実施形態による、インターネットコンテンツガイドユーザインターフェース内において、ユーザによって選択されたコンテンツを再生するためのビデオプレーヤアプリケーションのロードを概念的に例証する。
【図９】図９は、本発明のある実施形態による、インターネットコンテンツガイドユーザインターフェース内において、ユーザによって選択されたコンテンツを再生するための第三者ビデオプレーヤアプリケーションのロードを概念的に例証する。
【図１０】図１０は、本発明のある実施形態による、ユーザが、インターネットコンテンツガイドユーザインターフェースを使用して、再生のためのコンテンツを選択するのに応じた、コンテンツプレーヤプロキシアプリケーションのロードを概念的に例証する。
【図１１】図１１は、本発明のある実施形態による、遠隔サーバから、共通クライアントに、コンテンツプレーヤアプリケーションをダウンロードするためのプロセスを概念的に例証する。
【発明を実施するための形態】
【００２５】
（詳細な説明）
ここで、図面を参照して、本発明の実施形態による、ネイティブに実装された仮想マシン（ＶＭ）を使用して、再生デバイス上でコンテンツをリアルタイムで再生する、ユーザインターフェースを生成するためのシステムおよび方法について、説明する。仮想マシンは、プログラム可能マシンのソフトウェア実装であって、ソフトウェア実装は、より高いレベルでの記号的抽象化では、別のプロセッサ内において制約される。フラッシュＶＭは、マルチメディア、ベクターグラフィック、およびアクションスクリプトのためのＡｄｏｂｅ  Ｓｙｓｔｅｍｓ  Ｉｎｃｏｒｐｏｒａｔｅｄ（Ｓａｎ  Ｊｏｓｅ、Ｃａｌｉｆｏｒｎｉａ）によって規定されるファイルフォーマットである、Ｓｍａｌｌ  Ｗｅｂ  Ｆｒｏｍａｔ（ＳＷＦ）ファイルを再生可能であって、また、インターネットを介して、ビデオを送達するために使用することができる、コンテナファイルフォーマットである、フラッシュビデオをデコード可能である。フラッシュＶＭは、カスタマイズされたユーザインターフェースを生成する機能を提供する。しかしながら、フラッシュＶＭは、リアルタイム環境において、性能を妨害し得る、制限を課す。具体的には、フラッシュＶＭは、再生性能と、ネットワークで繋がれたサーバとリアルタイムで相互作用するための再生デバイスの機能と、を制限し得る。したがって、本発明の実施形態による、再生デバイスは、外部サーバとの通信およびコンテンツの再生を含むが、それらに限定されない、具体的機能性を実装する、ネイティブにコンパイルされたコードを含む。いくつかの実施形態では、ネイティブにコンパイルされたコードは、ローカルリソースキャッシュを実装し、フラッシュアプリケーションが、頻繁に利用されるリソースをロードする、速度を改善する。いくつかの実施形態では、アプリケーションは、ＳＷＦファイルと、関連付けられたプラグインまたはネイティブコードの動的にロードされたモジュールとの組み合わせとして展開される、再生デバイス上にインストールすることができる。多くの実施形態では、コンテンツプレーヤアプリケーションは、再生デバイス上にインストールされ、コンテンツおよびコンテンツと関連付けられた広告の再生、ならびに一連のメトリックを可能にすることができる。
【００２６】
以下の議論の多くは、フラッシュプレーヤ、フラッシュＶＭ、およびＳＷＦファイルを指す。容易に理解され得るように、消費者電子機器デバイス上で実装可能な任意の仮想マシンを、フラッシュプレーヤ／フラッシュＶＭの代わりに使用することができる。したがって、フラッシュプレーヤ、フラッシュＶＭ、ＳＷＦファイル、およびアクションスクリプトは、本発明の実施形態による、別の仮想マシンと関連付けられた同等構成要素によって、容易に代用することができる。
【００２７】
（共通クライアントを含む、再生デバイス）
本発明の実施形態による、再生デバイスは、典型的には、インターネットアクセス機能とメディア再生ハードウェアおよび／またはソフトウェアを組み合わせた、テレビ、セットトップボックス、ＤＶＤ／ブルーレイディスクプレーヤ、携帯電話ハンドセット、またはゲームコンソールの形態をとる。いくつかの実施形態では、共通クライアントは、再生デバイスによって利用され、ユーザインターフェースを生成し、メディア再生ハードウェアおよび／またはソフトウェアを使用して、再生のためのコンテンツを読み出し、アプリケーションのためのランタイム環境を提供する。共通クライアントの提供は、異なる再生デバイスに対して、ソフトウェアを開発する際に伴われる開発努力の量を低減させるが、しかしながら、製造業者は、典型的には、その製品のユーザインターフェースが、他の製造業者の製品と異なる外観と雰囲気を有することを所望する。いくつかの実施形態では、共通クライアントは、カスタマイズされたユーザインターフェースを生成するための機能を含む。多くの実施形態では、共通クライアントは、フラッシュＶＭのネイティブ実装を含み、ユーザインターフェースは、フラッシュ内にオーサリングすることができる。共通クライアントはまた、クライアントに、ネットワークで繋がれたサーバとリアルタイムで相互作用し、再生デバイスのハードウェアおよび／またはソフトウェアのメディア再生機能を使用して、コンテンツの再生を処理させる、ネイティブにコンパイルされたコードを含むことができる。いくつかの実施形態では、ネイティブにコンパイルされたコードは、アプリケーションが、ＳＷＦファイルおよび関連付けられたプラグインまたはネイティブコードの動的にロードされたモジュールの組み合わせとして、展開されることができる、ソフトウェアプラットフォームランタイムを生成する。他の実施形態では、種々の技法のいずれかを利用して、本発明の実施形態に従って、カスタマイズされたユーザインターフェースの生成を可能にすることができる。
【００２８】
（共通クライアント実装）
本発明のある実施形態による、カスタムユーザインターフェースを表示し、インターネットコンテンツを再生するように構成される、共通クライアントを含む、再生デバイスが、図１に例証される。再生デバイス１０は、ハードウェアと、コンテンツ再生およびインターネットを介した通信を処理する、オペレーティングシステムと、を含む。オペレーティングシステムは、Ｌｉｎｕｘ（登録商標）派生物等、消費者電子機器デバイス上での使用に好適な任意のオペレーティングシステムであることができる。再生デバイスはまた、ＳＷＦファイルを実行し、フラッシュムービーを再生可能である、ネイティブにコンパイルされたフラッシュＶＭを提供する、フラッシュプレーヤ６２を含む。好適なフラッシュプレーヤの実施例として、Ｂｌｕｅｓｔｒｅａｋ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．（Ｍｏｎｔｒｅａｌ、Ｃａｎａｄａ）のＭａｃｈ  ＢｌｕｅおよびＡｄｏｂｅ  Ｓｙｓｔｅｍｓ  Ｉｎｃｏｒｐｏｒａｔｅｄ（Ｓａｎ  Ｊｏｓｅ、Ｃａｌｉｆｏｒｎｉａ）のＳｔａｇｅｃｒａｆｔ（ＦｌａｓｈＬｉｔｅ）が挙げられる。フラッシュＶＭは、インターネットコンテンツにアクセスし、再生デバイス上でアプリケーションを実行するために使用することができる、ＩＣＧを含むが、それらに限定されない、ユーザインターフェースを生成するために利用することができる。図１に例証される、共通クライアントの重要な側面は、フラッシュＶＭの動作が、ネイティブにコンパイルされたアプリケーション／プロセスによって向上されることである。例証される実施形態では、フラッシュＶＭの動作は、バイナリとしてコンパイルされ、遅過ぎるであろう機能性、あるいはフラッシュＶＭを通して起動される、および／またはアクションスクリプト内に実装される場合、制約される技術を実装する、ネイティブにコンパイルされたデバイスアプリケーション１４およびプラットフォームサービス１６を使用して、向上される。デバイスアプリケーションおよびプラットフォームサービスの機能性は、ネイティブにコンパイルされたコードが、フラッシュＶＭ内で実行するＳＷＦファイルによって利用することができる、フラッシュＶＭ外の機能性を実装するために利用され得る様式の実施例として、以下にさらに論じられる。
【００２９】
（フラッシュアプリケーションへのネイティブに実装された機能性の提供）
ネイティブにコンパイルされたデバイスアプリケーション１４は、ＩＣＧによって、コンテンツと関連付けられた一意の識別子（ＵＲＩ等であるが、それに限定されない）を使用して、再生のためのコンテンツを選択するように、ユーザがトラバースすることができる、階層パスを含む、ＩＣＧを生成するために使用される、ナビゲーション階層の取得を含むが、それらに限定されない、ユーザインターフェースの構築において使用される、遠隔サーバから情報を読み出すためのプロセスを効率的に実装する。多くの実施形態では、デバイスアプリケーション１４は、ファイル-システムに書き込みを行い、フラッシュＶＭに内蔵される、フラッシュＸＭＬＳｏｃｋｅｔ機能を使用して、非同期的に、フラッシュアプリケーションユーザインターフェースと通信する能力等の機能性を実装する。ネイティブにコンパイルされたプラットフォームサービス１６の主要機能は、再生デバイスのハードウェアおよび／またはソフトウェアのメディア再生機能を使用して、メディア再生機能性を処理するためのサポートを提供することである。多くの実施形態では、プラットフォームサービスは、ＤｉｖＸ，Ｉｎｃ．（Ｓａｎ  Ｄｉｅｇｏ、ＣＡ）によって規定される、ＤｉｖＸ（登録商標）およびＤｉｖＸ  Ｐｌｕｓ（登録商標）フォーマットを含む、種々のフォーマットにおける、コンテンツのストリーミング、逆多重化、デコード、および再生制御を処理する、マルチメディアフレームワークサブシステムを含む。プラットフォームサービスはまた、デバイスユーザインターフェースまたはアプリケーションユーザインターフェースのユーザインターフェース構成要素をロードする際の待ち時間を短縮する、ローカルコンテンツキャッシングサブシステムを含むことができる。ローカルコンテンツキャッシングサブシステムはまた、コンテンツおよび広告を事前にロードし、再生待ち時間を短縮するために使用することができる。プラットフォームサービスは、アプリケーションおよびデバイスセキュリティの管理、ならびにＤＲＭ保護コンテンツの再生の調整を含む、種々の他の機能を処理することができる。
【００３０】
フラッシュアプリケーションは、デバイスアプリケーション１４およびプラットフォームサービス１６によって提供される機能性を利用し得る、フラッシュＶＭ内で実行することができる。多くの事例では、デバイスユーザインターフェース２０を含む、フラッシュアプリケーションは、一式のアクションスクリプトクラスである、アクションスクリプトフレームワークを通して、デバイスアプリケーション１４およびプラットフォームサービス１６に結合する。いくつかの実施形態では、アクションスクリプトフレームワークは、ＳＷＦファイルとして実装され、アプリケーション、ウィジェット、プレーヤ、およびアプリケーション拡張子もまた、ＳＷＦとして展開され、アクションスクリプトフレームワークＳＷＦにロードされる。
【００３１】
前述のように、本発明の実施形態による、再生デバイスのためのアプリケーションは、フラッシュアプリケーションおよびデバイスアプリケーションプラグインの組み合わせとして、展開される。本発明のある実施形態による、前述の共通クライアントに類似する共通クライアントに対して、関連付けられた共有ライブラリを伴う、フラッシュアプリケーションとして展開されるアプリケーションが、図２に例証される。デバイスアプリケーションが、共有ライブラリであるとき、アプリケーション２４と関連付けられたプラグイン２３もまた、共有ライブラリとして展開することができる。その場合、そのようなアプリケーションのためのユーザインターフェース構成要素２４は、同一アプリケーションのためのデバイスアプリケーションが展開されたプラグイン２３に依存し、その逆ではない。以下にさらに論じられるように、代替技法を利用して、ネイティブコードを共通クライアントにロードし、フラッシュアプリケーションに、フラッシュＶＭの機能以上の付加的機能性を提供することができる。
【００３２】
図１に例証される共通クライアントは、フラッシュＶＭ、アクションスクリプトフレームワーク、デバイスアプリケーション、およびプラットフォームサービスを伴う、具体的構成を利用し、ユーザインターフェースを実装し、アプリケーションをサポートするが、これらの構成要素によって行われる機能は、種々の方法で行われることができる。フラッシュＶＭの機能以上の機能性を行うためのＳＷＦファイルと、関連付けられたネイティブにコンパイルされたコードとの組み合わせとして展開されるアプリケーションをサポートする、共通クライアントは、本発明の実施形態による、種々の構成のうちのいずれかにおいて、実装することができる。本発明のある実施形態による、再生デバイスが、ネイティブにコンパイルされたソフトウェアプラットフォームを動的にロードし、デバイスアプリケーションおよびプラットフォームサービスによって行われる機能に類似する機能が、ソフトウェアプラットフォームランタイムおよびデバイスアプリケーションコンテナによって行われる、アプリケーションランタイム環境を提供する、共通クライアントは、以下にさらに論じられる。
【００３３】
（共通クライアントソフトウェアプラットフォームの動的ロード）
本発明のある実施形態による、ソフトウェアプラットフォームおよびアプリケーションを動的にロードする、共通クライアントがインストールされる、消費者電子機器デバイスが、図３に例証される。図１に示される、共通クライアント１０の場合のように、共通クライアント１０'は、遅過ぎるであろう機能、あるいはフラッシュＶＭを通して起動される、および／またはアクションスクリプト内に実装される場合、制約される技術を実装する、ネイティブに実装されたフラッシュプレーヤおよびネイティブにコンパイルされたソフトウェアプラットフォームを含む。しかしながら、図３に示される共通クライアント１０'のソフトウェアプラットフォームおよびソフトウェアプラットフォームによってサポートされるアプリケーションは、動的にロードおよび更新することができる。ソフトウェアプラットフォームを動的にロードさせることは、再生デバイスのＲＯＭ内に記憶されるネイティブコードの量を低減させ、付加的デバイスサービスおよび特徴を追加するとき、アプリケーションおよびユーザインターフェース構成要素の動的追加を可能にする。ソフトウェアプラットフォームおよびアプリケーションの動的ロードは、米国仮出願第６１／４３０，１３５号に論じられており、その開示は、参照することによって、前述に組み込まれる。
【００３４】
特に、図３に関して、共通クライアント１０'は、インストーラ２６と、ホストアプリケーション２５と、を含む。動的にロードされたソフトウェアプラットフォームの構成要素は、デバイスアプリケーションコンテナ３２と、プラットフォームランタイムプロセス３４と、を含む、ネイティブにコンパイルされたデバイスアプリケーションプロセス３０の構成要素を含む。ＵＩアプリケーションコンテナ３７は、消費者電子デバイスのフラッシュＶＭ３６にロードされる。デバイスユーザインターフェースを含む、フラッシュアプリケーションは、フラッシュアプリケーションモジュール４１と、フラッシュＶＭを補完する機能性を実装する、ネイティブに実装されたデバイスモジュール４２と、バンドルのコンテンツおよびその構成詳細を記述するアプリケーションマニフェストファイル４３と、を含むことができる、アプリケーションバンドル４０として、再生デバイス上にロードされる。例証される実施形態では、共通クライアントはまた、Ｗｅｂｋｉｔウェブブラウザ３８をネイティブに実装し、アプリケーションバンドルは、ＨＴＭＬ５アプリケーションを含むことができる。
【００３５】
デバイスアプリケーションコンテナ３２は、種々のデバイスユーザインターフェース実装によって再使用することができ、デベロッパに、アプリケーションバンドルの一部として、ロードおよび実行することができる、ネイティブデバイスモジュールに書き込みを行わせる、一式のサービスおよびＡＰＩを提供する。本発明の実施形態による、デバイスモジュール４２が、デバイスアプリケーション３２内のＡＰＩおよびサービスを利用して、フラッシュＶＭ外の機能を果たすことができる様式が、図４に例証される。ＵＩアプリケーションコンテナ３７は、フラッシュＶＭ内で起動し、アプリケーションバンドルに、ユーザインターフェースを起動させ、ソフトウェアプラットフォームの一部としてロードされた主要ユーザインターフェースに統合されるように構成される。ＵＩアプリケーションコンテナはまた、アプリケーションバンドルに、デバイスアプリケーションコンテナ３２の機能を活用させる、一式のサービスおよびＡＰＩを公開することができる。多くの実施形態では、プラットフォームランタイムプロセス２６は、ソフトウェアプラットフォーム上で起動するアプリケーションに、具体的デバイス機能性のための抽象化レイヤを提示する。プラットフォームランタイムプロセス２６によって提示される抽象化レイヤおよびデバイスアプリケーションコンテナ３２によって提供されるサービスおよびＡＰＩは、各アプリケーションバンドル内で利用されるネイティブにエンコードされたデバイスモジュールに、非常に少量のネイティブコードのみを使用して、書き込みを行わせる。したがって、アプリケーションを移植および維持するために必要とされる努力は、大幅に削減することができる。加えて、アプリケーションバンドルを動的にロードするための能力は、バンドルのネイティブにエンコードされた部分および／または下層ソフトウェアプラットフォームのネイティブにエンコードされた部分を、更新サーバから、最新バージョンのアプリケーションおよび／またはソフトウェアプラットフォーム構成要素を単にフェッチすることによって、容易に更新することができることを意味する。
【００３６】
前述の議論から容易に理解され得るように、共通クライアントは、ネイティブに実装されたフラッシュプレーヤ／フラッシュＶＭが、ネイティブにコンパイルされたアプリケーション／プロセスによって向上される、種々の方法において、実装することができる。このように実装された共通クライアント上にロードされる、アプリケーションは、フラッシュＶＭによって提供される機能性および／またはアクションスクリプトを使用して実装することができる機能性に限定されない。代わりに、アプリケーションは、付加的機能性をネイティブに実装し、共通クライアントによって、ネイティブに提供される、付加的通信およびメディア再生機能性にアクセスすることができる。デバイスユーザインターフェースを含む、種々のアプリケーションの実装、ならびに本発明の実施形態による、共通クライアントが、ネイティブに実装されたアプリケーション／プロセスを利用し、アプリケーションによる要求を処理し、メディアをダウンロードおよび再生する様式は、以下にさらに論じられる。
【００３７】
（ネイティブに実装された機能性）
前述の共通クライアントは、アクションスクリプトを使用して、ネイティブに実装されたフラッシュＶＭ上で行うことができない、または効率的に行うことができない、機能性を効率的に実装する、ネイティブに実装されたプロセスを含む。ローカルプロセスを使用して、一般的に行われる、機能として、メディアの再生と、遠隔サーバとの通信と、が挙げられる。これらの機能は、インターネットコンテンツガイド（ＩＣＧ）ユーザインターフェースを含む、種々のアプリケーションに照らして、以下に論じられる。
【００３８】
（共通クライアントを使用するカスタムユーザインターフェースの生成）
本発明の実施形態による、共通クライアントは、フラッシュＶＭおよびネイティブに実装されたコードを利用して、カスタマイズされたユーザインターフェースを生成することができる。多くの実施形態では、再生デバイスのインターネット接続は、多くの場合、遠隔施設上でコンテンツにアクセスするために使用することができる、インターネットコンテンツガイド（ＩＣＧ）ユーザインターフェースを生成するために利用され得る、ナビゲーション階層の形態において、メタデータへのアクセスを提供する。いくつかの実施形態では、ユーザインターフェースは、階層的であって、再生デバイスによって再生可能なコンテンツのリストのみを含有する。ユーザインターフェースの階層性質によって、ユーザは、遠隔制御またはゲームコントローラ上の矢印ボタンまたはジョイスティックを使用して、ＩＣＧをナビゲートすることができる。ユーザインターフェース内に含有される情報は、再生デバイスのメディア再生ハードウェアおよび／またはソフトウェアを使用して、再生のための適切なコンテンツサイトから、インターネットを介して、コンテンツを読み出すために利用することができる。ＩＣＧの生成は、２０１１年１月５日出願の米国特許出願第１２／９８５，２２２号「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ａｃｃｅｓｓｉｎｇ  Ｃｏｎｔｅｎｔ  Ｕｓｉｎｇ  ａｎ  Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｅｎｔ  Ｇｕｉｄｅ」に説明されており、その開示は、参照することによって、全体として本明細書に組み込まれる。
【００３９】
（コンテンツのローカルキャッシング）
再生デバイス上でのインターネットコンテンツのキャッシングは、フラッシュアプリケーションの性能を改善することができる。したがって、本発明の実施形態による、多くの再生デバイスは、ローカルコンテンツキャッシングを利用する。次いで、再生デバイスは、キャッシュされたコンテンツを使用して、アクセス時間を短縮し、ネットワークトラフィックを最適化することができる。いくつかの実施形態では、ローカルコンテンツキャッシングは、ＵＲＩ要求を傍受し、ネイティブに実装されたキャッシュマネージャプロセスにリダイレクトする、フラッシュＶＭ内のカスタムＵＲＩハンドラを使用して、実装される。いくつかの実施形態では、ＵＲＩ傍受およびリダイレクトは、修正されたＨＴＴＰクライアントを使用して、実装することができる。キャッシュマネージャは、永続記憶装置から、ランタイムキャッシュを維持するために使用される、メモリプール内に、キャッシュされたデータ（該当する場合）をロードすることによって、キャッシュされたデータへのアクセスを設定することができる。次いで、キャッシュマネージャは、対応するＵＲＩオブジェクトのためのローカルキャッシュを検索することによって、フラッシュアプリケーションからリダイレクトされたＵＲＩ要求を処理することができる。ＵＲＩオブジェクトが、ローカルにキャッシュされていない場合、キャッシュマネージャは、ＨＴＴＰ要求を開始し、ＵＲＩオブジェクトを取得することができる。キャッシュマネージャはまた、キャッシュ内の期限切れアイテム（すなわち、信頼できないことを示す、タイムスタンプを伴う、キャッシュされたオブジェクト）のリフレッシュを管理することができる。
【００４０】
本発明のある実施形態による、ＨＴＴＰ取得要求を介して、コンテンツを読み出す、再生デバイス上でローカルコンテンツキャッシュを管理するためのプロセスが、図５に例証される。プロセス６０は、ＵＲＩ要求が受信され、キャッシュがクエリされると、開始する（６２）。ＵＲＩオブジェクトが見つからないと、ＨＴＴＰ取得要求が行われ（６４）、ＵＲＩオブジェクトを取得する。次いで、ＨＴＴＰ応答が、キャッシュ内に記憶され（６６）、プロセスは、オリジナルＵＲＩ要求を行ったフラッシュアプリケーションによって使用されるためのＵＲＩオブジェクトを返す（６８）。要求されたＵＲＩオブジェクトが、キャッシュ内に見つかると、ＵＲＩオブジェクトの鮮度がチェックされ（７０）、キャッシュされたＵＲＩオブジェクトが信頼性があるかどうか判定する。ＵＲＩオブジェクトが新鮮である場合、キャッシュされたＵＲＩオブジェクトが、返される（６８）。多くの実施形態では、キャッシュされたＵＲＩオブジェクトが新鮮ではないとき、検証ステップが行われ、ＨＴＴＰを介して、サーバにクエリが行われ（７２）、キャッシュ入力が、依然として、有効であるかどうかをチェックする。ＵＲＩオブジェクトがキャッシュされているため、データが、修正された場合、ＨＴＴＰ取得要求が行われる（６４）。そうでなければ、キャッシュされたＵＲＩオブジェクトが、返される（６８）。具体的プロセスが、図５に例証されるが、具体的アプリケーションの要件に適切な他のプロセスも、本発明の実施形態に従って、利用することができる。
【００４１】
種々の技法のいずれも、コンテンツを選択し、キャッシュ内に記憶するために利用することができる。いくつかの実施形態では、要求されたコンテンツは、キャッシュに追加される。いくつかの実施形態では、ユーザインターフェースの状態を使用して、ユーザインターフェースによって提示される、ナビゲーション選択肢に基づいて、要求される可能性が高い、コンテンツを事前にフェッチする。多くの実施形態では、キャッシュされたコンテンツは、コンテンツを選択する際に使用され、新しいコンテンツをキャッシュに追加すると、上書きされることができる、関連付けられた期日経過および／または優先順位を有する。いくつかの実施形態では、コンテンツの種類、コンテンツのサイズ、および／またはコンテンツの期日経過に基づく制限を含むが、それらに限定されない、キャッシュ内に記憶することができる、コンテンツに制限がかけられる。
【００４２】
（メディアの再生）
本発明の多くの実施形態による、共通クライアント上に実装される、ユーザインターフェースは、ユーザに、典型的には、マルチメディアコンテンツの逆多重化、暗号解読、デコード、およびレンダリングを調整する、ネイティブに実装されたプロセスを使用して達成される、再生のためのコンテンツを選択させる。多くの事例では、これらの機能を処理する、ネイティブに実装されたプロセスは、共通クライアントのマルチメディアフレームワークと称されることができる。典型的シナリオでは、マルチメディアフレームワークは、フラッシュＶＭ内で起動するアプリケーションから、再生のためのＵＲＩまたはＵＲＬを受信する。マルチメディアフレームワークは、再生デバイスのメディア再生リソースを利用して、メディア再生を達成する。多くの実施形態では、フラッシュＶＭとマルチメディアフレームワークとの間の通信は、フラッシュＶＭと種々の再生デバイスリソースとの間の通信を処理する、プラットフォームサービスによって、仲介される。
【００４３】
本発明のある実施形態による、コンテンツの再生の間の、フラッシュＶＭ、プラットフォームサービス、およびマルチメディアフレームワーク間の通信を示す、シーケンス図が、図６に例証される。例証される実施形態では、フラッシュプレーヤは、ＵＲＩをプラットフォームサービスプロセスに提供し、プラットフォームサービスモジュールは、命令をマルチメディアフレームワークに提供し、ＵＲＩを開く。類似シーケンスの通信は、マルチメディアフレームワークに、ＵＲＩによって識別されるメディアを再生するように命令する。ＵＲＩによって示されるメディアの再生の完了に応じて、メディアフレームワークは、再生が完了したことの通知をプラットフォームサービスに提供し、プラットフォームサービスは、再生が完了したことのＸＭＬメッセージをフラッシュアプリケーションに提供する。具体的シーケンスの通信およびプロセスが、図６に例証されるが、具体的再生デバイスおよび具体的ネイティブに実装されたプロセスに適切な他の通信技法もまた、本発明の実施形態に従って、実装することができる。
【００４４】
（フラッシュアプリケーションの展開）
本発明のある実施形態による、遠隔サーバからＩＣＧメタデータを取得し、コンテンツサーバからコンテンツを再生し、遠隔サーバからフラッシュアプリケーションを読み出すように構成される、再生デバイスが、図７に例証される。システム１００は、前述の共通クライアントに類似する、共通クライアントを含み、ローカルまたはインターネット１０６を介してコンテンツサイト１０４でアクセス可能なコンテンツを再生するように構成される、少なくとも１つの再生デバイス１０２を含む。各再生デバイス１０２は、インターネットを介して、メタセンター１０８の一部である、コンテンツメタデータデータベースから、ナビゲーション階層情報を読み出し、読み出された情報を使用して、再生デバイスのコントローラによって、ナビゲート可能なＩＣＧを生成する。メタセンターは、コンテンツメタデータデータベース内のコンテンツメタデータの収集および再生デバイスへのナビゲーション階層の通信を管理するように構成される、１つ以上のサーバである。メタセンター１０８は、いくつかのコンテンツサイト１０４から利用可能なコンテンツに関するメタデータを取得することによって、コンテンツメタデータデータベースを構築する。メタセンターによるメタデータの収集は、２０１１年１月５日出願の米国特許第１２／９８５，２２２号「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ａｃｃｅｓｓｉｎｇ  Ｃｏｎｔｅｎｔ  Ｕｓｉｎｇ  ａｎ  Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｅｎｔ  Ｇｕｉｄｅ」により完全に説明されており、その開示は、参照することによって、前述に組み込まれる。再生デバイスはまた、クラウドに提供され得る、アップセンター１７０から、フラッシュアプリケーションを取得することができる。多くの実施形態では、アプリケーションは、再生デバイス上での実行が可能な任意の機能性を提供することができ、第三者（１７２）によって、提供されてもよい。他の実施形態では、本発明の実施形態に従って、種々のアーキテクチャを利用して、再生デバイスに、アプリケーションをダウンロードさせることができる。前述のように、フラッシュＶＭによってもたらされるもの以上の機能を必要とする、アプリケーションは、ＳＷＦとネイティブコード（プラグインまたは動的にダウンロードされたモジュールを含むが、それらに限定されない）の組み合わせとして、展開することができる。種々のアプリケーションは、前述に概略されたように、実装することができる。特に着目すべきは、コンテンツプレーヤおよび広告プレーヤであって、以下にさらに論じられる。
【００４５】
（コンテンツプレーヤおよび広告プレーヤ）
多くの異なる広告およびメトリックサーバソリューションが、存在し、異なるコンテンツプロバイダが、その事業の必要性に応じて、これらの選択肢を統合する。最も多くの場合、ビデオコンテンツプロバイダは、ウェブブラウザがコンテンツにアクセスすると表示される広告とともに、コンテンツをインターネット上に公開する。多くの実施形態では、再生デバイスは、コンテンツの再生および関連付けられた広告を可能にする、アプリケーションを含む。ＩＣＧは、米国特許第１２／９８５，２２２号に説明されるプロセスに従って、内蔵することができる。ＩＣＧは、コンテンツサイト上に位置するコンテンツおよびコンテンツと関連付けられた広告に関する情報を含むことができる。再生デバイスは、コンテンツおよび広告に関する情報を読み出し、コンテンツおよび広告の両方を視聴者に提示することができる。コンテンツサイトのオペレータの代わりに、広告を提示し、メトリックを収集するのに加え、広告プレーヤアプリケーションは、再生デバイスおよび／またはＩＣＧのオペレータに特異的付加的広告を提示するために使用されることができる。アプリケーションはまた、再生デバイス上で提示された広告および／または再生デバイスの動作の他の側面に関するメトリックを収集することができる。
【００４６】
いくつかの実施形態では、種々のビデオプレーヤアプリケーションは、広告プレーヤ、コンテンツプレーヤ、およびメトリックプレーヤを含むが、それらに限定されない、本発明の実施形態による、共通クライアントによって、ロードすることができる。用語「ビデオプレーヤ」または「ビデオプレーヤアプリケーション」は、本発明の実施形態による、共通クライアント上での再生のためのコンテンツプロバイダのビデオコンテンツを統合するために使用される、異なる種類の１つ以上のプレーヤアプリケーションを説明する、一般的用語である。本用語はまた、協働する一式のプレーヤ（広告、コンテンツ、および／またはメトリックプレーヤ）を説明するためにも使用することができる。用語「ビデオプレーヤ」が使用されるが、ビデオプレーヤは、任意の種類のコンテンツを再生することができる。用語「広告プレーヤ」は、バックエンド上の広告サービスと相互作用し、広告を視聴されているビデオに関連付ける、ビデオプレーヤを説明するために使用することができる。コンテンツプレーヤは、実際のビデオコンテンツのレンダリングに焦点を当てたビデオプレーヤである。サイトは、具体的コンテンツプレーヤ（例えば、ビデオ、音楽、または写真）、広告プレーヤ、およびメトリックプレーヤを必要としてもよい。しかしながら、所与のコンテンツ、広告、またはメトリックプレーヤは、２つ以上のサイトによって、使用することができ、具体的コンテンツサイトと関連付けられた各種類のプレーヤのうちの２つ以上が存在してもよい。
【００４７】
プレーヤは、典型的には、フラッシュＶＭ内に常駐する共通クライアント（例えば、アクションスクリプトフレームワークまたはＵＩコンテナ）の一部によって、ロードされる。再生デバイスのデフォルトコンテンツプレーヤとフラッシュＶＭにロードされた付加的プレーヤとの間の相互作用は、ビジネルルールとして、規定することができる。本発明のある実施形態による、汎用コンテンツプレーヤが、再生デバイス上で利用される、ビデオプレーヤインフラストラクチャの機能的構成要素が、図８に例証される。例証される実施形態では、デバイスのＩＣＧユーザインターフェース（ＩＶＮ）２０４は、共通クライアントのフラッシュフレームワークの一部を形成する、アプリケーションローダプロセス２０４によって、ロードされる。ユーザ命令に応答して、ＩＣＧアプリケーションは、汎用コンテンツプレーヤアプリケーション２０６を立ち上げ、付加的コンテンツプレーヤアプリケーションをロードするために必要とされる、汎用コンテンツプレーヤに、情報をパスすることができる（２０８、２１０）。付加的構成要素は、典型的には、パッケージ内に、一意のＩＤ、構成要素を含有するモジュールへのＵＲＬ、およびプレーヤアプリケーションの種類を伴って、説明される。広告プレーヤ２０８は、広告プレーヤインターフェースを実装し、メトリックプレーヤ２１０は、メトリックプレーヤインターフェースを実装する。コンテンツプレーヤは、種々の種類の広告が、表示されるべきとき、広告プレーヤによって、コンテンツプレーヤ２０６に通知するために使用される、広告コールバックインターフェースを公開する。共通クライアントのユーザインターフェースは、コンテンツプレーヤアプリケーション２０６によって、広告表示メッセージ（バーナー、プリロール、ミッドロール、およびポストロール）およびコンテンツ状態メッセージならびにコンテンツ内で見つけられたメタデータ等、ユーザインターフェースアプリケーションにイベントを送信するために使用される、プレーヤコールバックインターフェースを開示することができる。
【００４８】
共通クライアントフラッシュフレームワークはまた、コンテンツ特異的コンテンツプレーヤアプリケーションの使用を可能にする。本発明のある実施形態による、ＩＣＧユーザインターフェースが、カスタムコンテンツプレーヤアプリケーションが関連付けられる、コンテンツを再生するためのユーザ命令を受信すると、コールされる、ビデオプレーヤの機能的構成要素が、図９に例証される。例証される実施形態では、カスタムコンテンツプレーヤアプリケーション２１２は、広告プレーヤ２０８と、メトリックプレーヤ２１０と、を含む。
【００４９】
前述のように、コンテンツと関連付けられていない広告もまた、再生デバイスによって、表示されることができ、メトリックは、再生デバイスによって、収集することができる。付加的広告およびメトリックプレーヤアプリケーションは、本目的のために、再生デバイスによって、利用されることができ、デバイスのユーザインターフェースは、要求されたプレーヤを直接コールすることができる。代替として、図１０に例証されるように、より明快なソリューションは、プレーヤプロキシを返すことである。例証される実施形態では、ＩＣＧユーザインターフェース２０６は、共通クライアントのメトリックプレーヤアプリケーション２１６をコールする、コンテンツプレーヤプロキシアプリケーション２１４、およびコンテンツプレーヤアプリケーション２１６をコールする。定義されたビジネスルールに応じて、プロキシ２１４は、共通クライアントのコンテンツプレーヤアプリケーションまたは第三者コンテンツプレーヤアプリケーションのいずれかをコールすることができる。第三者広告およびメトリックプレーヤアプリケーション（２０８、２１０）もまた、コールされることができる。
【００５０】
特定のコンテンツのためにアクティブ化されるプレーヤ（ビデオ、広告、およびメトリック）は、そのコンテンツと関連付けられた情報によって、判定される。特定のコンテンツのためのＩＣＧデータは、ＩＣＧユーザインターフェースによって、取得される。特定のコンテンツプレーヤを必要とする、コンテンツを再生する前に、ＩＣＧユーザインターフェースアプリケーションは、共通クライアントフラッシュフレームワークを使用して、必要とされるコンテンツプレーヤをロードする。本発明の実施形態による、プレーヤを立ち上げるためのプロセスが、図１１に例証される。例証される実施形態では、ＩＣＧユーザインターフェースアプリケーション２０６が、立ち上げられ、遠隔サーバから、特定のコンテンツを再生するためのプレーヤアプリケーションを識別する情報を含む、ＩＣＧ情報を受信する。関連付けられたコンテンツプレーヤ、広告プレーヤ、および／またはメトリックプレーヤによって、コンテンツの再生を要求する、ユーザ命令に応答して、ＩＣＧユーザインターフェースアプリケーション２０６は、共通クライアントフラッシュフレームワーク２０２内のアプリケーションローダ２０４を利用して、適切なプレーヤアプリケーションを要求する。例証される実施形態では、コンテンツプレーヤアプリケーション２０８が、要求される。アプリケーションローダ２０４は、ＩＣＧユーザインターフェースアプリケーション２０６からの要求の一部として受信されたＵＲＬを使用して、コンテンツプレーヤ２０８をロードするための要求を発行することによって、要求に応答する。ローカルキャッシングが、共通クライアント内で利用されると、ローカルリソースキャッシュ２３０がチェックされ、コンテンツプレーヤ２０８がキャッシュされたかどうか判定する。コンテンツプレーヤ２０８が、キャッシュされていない場合、コンテンツプレーヤは、アプリケーションサーバ１７０からロードされ、キャッシュされる。アプリケーションローダ２０４が、要求されたコンテンツプレーヤ２０８のインスタンスを作成し、それに対するインターフェースをＩＣＧユーザインターフェースアプリケーション２０６に返し、次いで、インスタンスが作成されたコンテンツプレーヤと相互作用することができる。
【００５１】
再生デバイスによって再生されるコンテンツのソースに基づいて、ビデオプレーヤアプリケーションをコールするための具体的プロセスが示されるが、本発明の実施形態に従って、共通クライアントのＩＣＧ内にリスト化されたコンテンツを提供する、サイトの代わりに、広告の再生およびメトリックの収集を可能にする、種々のプロセスのいずれかを利用することができる。
【００５２】
本発明は、ある具体的側面において説明されたが、多くの付加的修正および変形例が、当業者には明白であろう。したがって、本発明は、具体的に説明されるもの以外にも、実践されてもよいことを理解されたい。したがって、本発明の実施形態は、あらゆる観点から、制限ではなく、例証として、見なされるべきである。
【図１】
2013516923.tif 000003
【図２】
2013516923.tif 000004
【図３】
2013516923.tif 000005
【図４】
2013516923.tif 000006
【図５】
2013516923.tif 000007
【図６】
2013516923.tif 000008
【図７】
2013516923.tif 000009
【図８】
2013516923.tif 000010
【図９】
2013516923.tif 000011
【図１０】
2013516923.tif 000012
【図１１】
2013516923.tif 000013
【国際調査報告】
2013516923.tif 000014