(57)【要約】  本明細書では、オンラインの共同社会および接続体験のためのアーキテクチャーについて、種々の態様を開示する。このアーキテクチャーは、ホスト計算機を実行するアプリケーションにおいて具現化することができ、このアプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービスにホストされたモジュールを発見する、このようなモジュールを起動する、複数のこのような同時実行モジュール間で切り換える、そして複数対複数のテキスト、音声、およびビデオ機能を提供するというような、機能を提供する。また、このアプリケーションは、ホスト計算機におけるマネージド・ランタイム・コードとインターフェースすることによって、異なるプラットフォームを有する複数の計算機間において、入力手段、出力手段、およびネットワーク通信手段を提供することができる。【選択図】      図４
2011515721.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機間におけるクロス・プラットフォーム相互作用を可能にするシステムであって、
第１プラットフォームを有する第１計算機（１５３、１５６、１５７、１００、２００、２０２、２０４、２０６）と、
前記第１プラットフォームとは別の第２プラットフォームを有する第２計算機（１５３、１５６、１５７、１００、２００、２０２、２０４、２０６）と、
前記第２計算機に存在するアプリケーション（３００）と、
を含み、該アプリケーションが、前記第１計算機と前記第２計算機との間におけるデーターの通信および共有を可能にするように構成されており、前記アプリケーションが、インターフェースの組を通じてモジュールと相互作用するように構成されており、前記アプリケーションが、前記第１計算機からの第１コンテンツを前記第２計算機において受信し、前記コンテンツをマネージド・ランタイム環境において処理するように構成された、システム。
【請求項２】
請求項１記載のシステムにおいて、前記アプリケーションは、更に、前記モジュールから第２コンテンツを受信し、該第２コンテンツを前記第１計算機に伝えるように構成された、システム。
【請求項３】
請求項１記載のシステムにおいて、前記アプリケーションは、前記インターフェースの組を通じて、前記第１コンテンツを前記モジュールに供給する、システム。
【請求項４】
請求項１記載のシステムにおいて、前記アプリケーションは、前記第１計算機と前記第２計算機との間において、テキスト、音声、およびビデオ・フォーマットのうち少なくとも１つでデーターの通信および共有を可能にするように構成された、システム。
【請求項５】
請求項１記載のシステムにおいて、前記アプリケーションは、前記第１計算機とリアル・タイムで相互作用するように構成された、システム。
【請求項６】
請求項１記載のシステムにおいて、前記マネージド・ランタイム環境は.ＮＥＴである、システム。
【請求項７】
請求項１記載のシステムにおいて、前記データーの通信および共有は、ピア・ツー・ピア・ネットワークを通じて行われる、システム。
【請求項８】
請求項１記載のシステムにおいて、前記モジュールは、プラグイン・アプレットである、システム。
【請求項９】
請求項１記載のシステムにおいって、前記アプリケーションは、リモート・ソースからダウンロードされる、システム。
【請求項１０】
請求項１記載のシステムにおいて、前記インターフェースの組は拡張可能である、システム。
【請求項１１】
請求項１記載のシステムにおいて、前記第１計算機および前記第２計算機のうち少なくとも１つは、閉ざされたデバイスである、システム。
【請求項１２】
請求項１記載のシステムにおいて、前記第１計算機および前記第２計算機のうち少なくとも１つは、移動体デバイスである、システム。
【請求項１３】
複数の計算機間におけるクロス・プラットフォーム相互作用を可能にするためのコンピューター実行可能命令を有するコンピューター読み取り可能記憶媒体（１０２、１０４、１０６、１１２、１４３、１４６、１５８）であって、
ホスト計算機からリモート計算機にコンテンツ（４１６）を供給する（７００）ように構成された命令と、
インターフェースの組のうち少なくとも１つを通じて、受信した前記コンテンツをモジュールに供給する（７０２）ように構成された命令と、
前記リモート計算機または前記モジュールのいずれかから、前記ホスト計算機に対してネーティブなアプリケーションによってコンテンツを受信する（７０４）ように構成された命令と、
前記アプリケーションと、前記ホスト計算機とは異なるプラットフォームを有する複数の計算機との間においてコンテンツを交換する（７０８）ように構成された命令であって、前記コンテンツの交換が、マネージド・ランタイム環境において行われる、命令と、
を含む、コンピューター読み取り可能記憶媒体。
【請求項１４】
請求項１３記載のコンピューター読み取り可能記憶媒体において、前記コンテンツは、テキスト、音声、およびビデオ・データーのうち少なくとも１つである、コンピューター読み取り可能記憶媒体。
【請求項１５】
請求項１３記載のコンピューター読み取り可能記憶媒体において、前記交換は、ピア・ツー・ピア・ネットワークを通じて行われる、コンピューター読み取り可能記憶媒体。
【請求項１６】
請求項１３記載のコンピューター読み取り可能記憶媒体であって、更に、前記ネーティブ・アプリケーションを前記ホスト計算機にダウンロードする命令を含む、コンピューター読み取り可能記憶媒体。
【請求項１７】
異なるタイプの複数の計算娯楽デバイス間においてデーターの通信および共有を可能にする方法であって、
記憶装置からコンテンツ（４１６）を取り出すステップ（７００）と、
前記コンテンツをアプリケーションに送るステップ（７０２）と、
ホスト計算機において実行している前記アプリケーションによって、前記コンテンツを受信するステップ（７０４）と、
前記ホスト計算機において実行しているコンテンツ・フレームワーク（４１８）に、前記コンテンツを埋め込むステップ（４３０）と、
前記コンテンツのコピーを、前記ホスト計算機において実行している前記アプリケーションと実質的に類似のアプリケーションを実行しているリモート計算機に供給するステップであって、前記実質的に類似のアプリケーションおよび前記ホスト計算機アプリケーションの双方が、共通のマネージド・ランタイム・フレームワークと関連付けられた、ステップと、
を含む、方法。
【請求項１８】
請求項１７記載の方法であって、更に、前記ホスト計算システムにおいて実行しているプラットフォームとは別のプラットフォームを実行している前記リモート計算機から、前記ホスト計算システムにおいて、前記コンテンツに対する追加コンテンツを受信するステップを含む、方法。
【請求項１９】
請求項１７記載の方法において、前記コンテンツの前記取り出しは、前記ホスト計算機と関連のあるプラグイン・デバイスによって実行される、方法。
【請求項２０】
請求項１７記載の方法において、前記複数の計算機のうち少なくとも１つは、閉ざされたデバイスである、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示する主題は、計算の分野に関し、更に特定すれば、メディア・コンテンツのような分野に関するが、これは単に例示の非限定的分野に過ぎない。
【背景技術】
【０００２】
ゲーミング・コーンソール、ゲーミング・ハンドヘルド、音楽プレーヤー、パーソナル・コンピューター（ＰＣ）等のような娯楽デバイスは、ユーザーが互いに通信するための、例えば、ビデオおよび／または音声による手段が体系立てられておらず、明確に定められていない。更に、このようなデバイスは、写真、音楽、ビデオ等のようなデーターを、一貫性があり、ロバストに、そして豊富に共有する手段を有していない。
[発明の概要]
[発明が解決しようとする課題]
つまり、プラットフォーム間のデーター通信および共有のための枠組みを提供することができるアーキテクチャーが求められている。
[課題を解決するための手段]
【０００３】
オンラインの共同社会および接続体験のためのアーキテクチャーの種々の態様を、本明細書において開示する。このアーキテクチャーは、ホスト計算機を実行するアプリケーションにおいて具現化することができ、このアプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービスにホストされたモジュールを発見する、このようなモジュールを起動する、複数のこのような同時実行モジュール間で切り換える、そして複数対複数のテキスト、音声、およびビデオ機能を提供するというような、機能を提供する。また、このアプリケーションは、ホスト計算機におけるマネージド・ランタイム・コード(managed runtime code)とインターフェースすることによって、異なるプラットフォームを有する複数の計算機間において、入力手段、出力手段、およびネットワーク通信手段を提供することができる。
【０００４】
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられていることは注記してしかるべきであろう。この摘要は、特許請求する主題の鍵となる特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断する際に補助として用いられることを意図するのでもない。
【図面の簡単な説明】
【０００５】
以上の摘要、および以下の詳細な説明は、添付図面と関連付けて読むと一層理解が深まる。本開示を例示するために、開示の種々の態様を図示する。しかしながら、本開示は、図示する具体的な態様に限定されるのではない。以下の図が含まれる。
【図１】
【０００６】
図１は、異なるタイプの娯楽用デバイスがデーターを通信し共有するためのクロス・プラットフォーム・アーキテクチャーを有していない先行技術のシステムを示す。
【図２】
【０００７】
図２は、データーの通信および共有に対処することができる種々のタイプ（および同じタイプ）の種々のデバイスのための構造化クロス・プラットフォーム・メカニズムがあることを示す。
【図３】
【０００８】
図３は、アプリケーションおよび／またはプラグイン・アーキテクチャーを用いて、どのようにしてクロス・プラットフォーム相互作用を遂行することができるかを示す。
【図４】
【０００９】
図４は、ネーティブ・アプリケーションと相互作用する基本メディア・コンテンツ共有モジュールの想定場面の一例を示す。
【図５】
【００１０】
図５は、図４の主題の上に構築する、ホスト変更メディア・コンテンツの想定場面を開示する。
【図６】
【００１１】
図６は、リモート計算機変更メディア・コンテンツの効果を示すことによって、図４および図５の上に更に構築する。
【図７】
【００１２】
図７は、クロス・プラットフォーム・アプリケーション・メカニズムの作成、使用、提供等のブロック図フロー・チャートの一例を示す。
【図８】
【００１３】
図８は、図１から図７および図９を参照しながら論ずるクロス・プラットフォーム・アプリーケーションの種々の態様と合わせて用いることができるマルチメディア・コンソールの一例をブロック図形態で示す。
【図９】
【００１４】
図９は、図１から図８を参照しながら論ずる主題に合わせたネットワーキング環境の一例を示す。
【発明を実施するための形態】
【００１５】
図１は、異なるタイプの娯楽デバイスが、データーを通信および共有するためのクロス・プラットフォーム・アーキテクチャーを有していない先行技術のシステムを示す。娯楽デバイスＡ１６０は、タイプ１のものであるとすることができ、娯楽デバイスＢ１６２もタイプ１のものであるとすることができる。双方のデバイス１６０、１６２は、２台のパーソナル・コンピューター（ＰＣ）のように、同じタイプであるので、これらは、送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）のような、種々のプロトコルを通じて容易に通信することができる。この想定場面では、構造化通信および共有メカニズムがあるものとする。
【００１６】
対照的に、異なるタイプのデバイスは、共通の通信および共有メカニズムがないために、構造化した態様で互いに通信することができない場合がある。図１では、娯楽デバイスＡ１６０はタイプ１のもの、即ち、ＰＣとすることができ、娯楽デバイスＣ１６４はタイプ２のもの、例えば、音楽プレーヤーとすることができる。これら２つのデバイス、ＰＣおよび音楽プレーヤーは、豊富にそして広く通信することができない場合がある。勿論、異なるタイプのデバイス間における相互作用は、基本的なテキストまたはその他の単純なデーターの共有のように、存在する場合もあるが、一方のデバイスのコンテンツは、殆どの部分が、他方のデバイスには理解できない可能性がある（そして、その逆も成り立つ）。
【００１７】
このようなデーターの構造化クロス・プラットフォーム通信および共有の欠如は、複数のデバイスに該当する可能性がある。図１は、タイプ１の娯楽デバイスＡ１６０は、タイプ３である娯楽デバイスＤと、構造化した態様で、通信することもできないことを示す。タイプ３デバイス１６６、例えば、ゲーミング・ハンドヘルドは、タイプ２デバイス１６４、音楽プレーヤー等と通信することができない可能性がある。
【００１８】
図１とは対照的に、図２は、構造化クロス・プラットフォーム・メカニズムがあれば、種々のタイプ（および同じタイプ）の種々のデバイスが容易に互いにデーターを通信し共有できることを示す。つまり、図２によれば、タイプ１の計算機Ａ２００は、タイプ２の計算機Ｃ２０２と相互作用することができ、タイプ３の計算機Ｄ２０６と相互作用することができ、更に、それ自体と同じタイプ、タイプ１である計算機Ｂ２０４と相互作用することができる。
【００１９】
このような相互作用は、機能の中でもとりわけデーターの通信および／または共有を含むことができるが、音声、テキスト、および／またはビデオの通信、写真、音楽（オーディオ・ファイルを含む）、ビデオ等の共有を含むことができ、しかもこれらに限定されるのではない。端的に言えば、この相互作用はあらゆる種類のディジタル・コンテンツにも関与することができる。このような相互作用は、リアル・タイムでもそうでなくても、要求に応じて実行することができる。更に、１：１の相互作用に限定される必要はなく、代わりに、複数のユーザーおよび／または計算システムが関与することもできる。この設定では、共同社会の体験は、複数のプラットフォームを跨いでコンテンツを通信および共有することによって維持することができ、これらのプラットフォームが、ＰＣ、ゲーミング・コンソール、音楽プレーヤー、セル・フォン、パーソナル・ディジタル・アシスタント（ＰＤＡ）等のどれにおいて実行するかには関係ない。
【００２０】
次に、図３は、アプリケーションおよび／またはプラグイン・アーキテクチャーを用いて、クロス・プラットフォーム相互作用をどのように遂行することができるかを示す。図３において、タイプ１の計算機Ａ２００が、タイプ２の計算機Ｃ２０２と相互作用を行う。現在開示している主題の一態様では、このようなデーターの通信および／または共有は、クロス・プラットフォーム・アプリケーション３００を用いて遂行することができる。このアプリケーション３００は、異なるそして離れた計算機において複数のユーザー３０２、３０４、３０６をサポートすることができる。これらのデバイスは、先に論じたように、ＰＣ、ゲーミング・コンソール等を含む、異なるタイプであってよい。このクロス・プラットフォーム・アプリケーションを用いると、ユーザー３０２、３０４、３０６は、音声、テキスト、ビデオ、およびその他の通信手段を用いて会議を行うことができる（３０８）。
【００２１】
更に、クロス・プラットフォーム・アプリケーション３００は、プラグイン・アーキテクチャーをサポートすることができる。つまり、種々のプラグイン・モジュールを開発し、コア・アプリケーション３００と相互作用させることができる。このようなプラグイン・モジュールは、音声、テキスト、および／またはビデオ通信、および／または写真、音楽、および／またはビデオ共有等を追加するのかまたは強化するのかには関係なく、種々の計算解決策を含むことができる。プラグイン・アーキテクチャー３１０によってこれを遂行することができる１つの方法は、前述のプラグイン・モジュールに構築される適切なインターフェースを設計するために用いることができるコア・インターフェース３１２を露出することによって行われる。コア・インターフェース３１２は、（１）プラグインが描画できるようなグラフィクス・デバイス、（２）プラグインがある種の入力を取り込んで処理することができるような入力、（３）プラグインが種々のユーザー間でデーターを同期させることができるようなネットワーキング等のような、種々の機能の制御を仲介することができる。
【００２２】
現在開示している主題の更に別の態様では、クロス・プラットフォーム・アプリケーションがプラットフォームに知られ得ないことが可能である。限定ではなく一例として、アプリケーション３００は、.ＮＥＴのようなマネージド・コード・フレームワーク(managed code framework)と相互作用することができる。これは、前述の相互作用のために管理されているコードの利用を可能にすることができ、更に異なるタイプのコードが、マネージド・コード・フレームワークによって提供される中間言語を通じて相互作用することを可能にすることもできる。尚、この目標を遂行するためには（.ＮＥＴだけでなく）種々のクロス・プラットフォーム・ルーチンを用いることができること、そして、開示する主題の他の態様の中には、このようなマネージド・コード・フレームワークを用いる必要がないものもあることは、当業者には全く言うまでもないであろう。
【００２３】
マネージド・ランタイム(managed runtime)が用いられる場合、これらはプロセス制御、入力制御、ネットワーキング（ユーザーのセッション進入または退出の通知、ならびにパケットを任意のユーザーにアドレスして送る能力を含む）、グラフィクス・レンダリング、ローカル・ストレージへのアクセス等のために基本モデルまたはネームスペース(namespace)を提供することができる。このようなランタイムと相互作用するネーティブ・アプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービスにホストされているモジュールを発見するための基本的機能を提供することができ、また、これらはこのようなモジュールの起動、同時に実行しているモジュール間における切り換え、複数対複数のテキスト、音声、ビデオ・チャット等にも備えることができる。
【００２４】
ネーティブ・アプリケーションのその他の例示的且つ非限定的な特徴の中には、モジュールを実際に実行するマネージド・ランタイムをホストすること、テキスト、音声、ビデオ、コントローラー、ストレージ等を含むモジュールに入力を供給すること、テキスト、音声、ビデオ、グラフィクス、ストレージ等を含むモジュールから出力を供給すること、ガジェットから出力をレンダリングする手段を設けること、他の相手を体験に加入するように促す手段を提供すること、永続的テキスト、音声、ビデオ・チャットを全てのユーザー間で維持することが含まれる。これらは、ネーティブ・アプリケーションの複数の特徴のうち一部に過ぎず、図３におけるクロス・プラットフォーム・アプリケーション３００または図４におけるネーティブ・アプリケーション４１４としてでもそれには関係なく、本願の他の部分でも様々に明示されている。
【００２５】
これより図４に移ると、ネーティブ・アプリケーションと相互作用を行う、基本的メディア・コンテンツ共有モジュールの想定場面例が示されている。尚、初めに、「メディア・コンテンツ」は、本明細書全体において論じられる（そして、任意の有形媒体に格納可能な）任意のコンテンツを含む、つまり、この用語は排他的ではなく内包できであることは、注記してしかるべきである。更に、本明細書における「コンテンツ」という用語は、これらの用語が当業者によって理解されているように、任意の「データー」および／または「コード」を含む。図４において、モジュール４０２は、写真共有および／または編集プラグイン、あるいはその他の何らかのアプレットとすることができ、何らかのメディア・コンテンツ４１６、例えば、写真（しかしながら、「メディア・コンテンツ」の観念は写真、テキスト、およびこのようなデーターに限定されず、逆に、ゲーミング・コンテンツ、ビデオおよび／またはオーディオ・コンテンツ等も含むことができる）を供給する。このメディア・コンテンツ４１６は、グラフィクス・インターフェース４０８を通じて、ネーティブ・アプリケーション４１４に伝えることができる。ネーティブ・アプリケーション４１４は、コンテンツ・フレームワーク４１８、例えば、音声チャットまたはテキスト・チャットのような、ある種のアプレットまたはプログラムを設けることができる。つまり、真の結果は、写真をチャット・プログラムに埋め込むまたはペーストすることができるように、メディア・コンテンツ４１６をコンテンツ・フレームワーク４１８に埋め込むことができる（４３０）ということにすることができる。そして、更に、現在開示している主題の別の態様では、メディア・コンテンツ４１６およびコンテンツ・フレームワーク４１８が１つであり同一であってもよい（例えば、コンソール・ゲーム）。最後に、このメディア・コンテンツ４１６は、次に、ネーティブ・アプリケーション４１４のネーティブ・ネットワーキング４２０機能を通じて、他のユーザーと共有することができる。
【００２６】
ネーティブ・アプリケーション４１４は、他のリモート・ホストおよびクライアントとの相互作用を可能にするための、インターフェースの状態および露出の維持というような、種々の機能を設けることができる。前者の場合、アプリケーション４１４はネットワークを跨って分離されている計算機というような、複数の計算機を跨いで一貫性のある状態を維持することができる。限定ではなく一例として、アプリケーション４１４は、種々のモジュール間における種々の接続に関する問い合わせ（例えば、ソケット状態）に回答することができる。後者の場合、再度限定ではなく一例として、ネットワーキング・インターフェース４０４は前述のメディア・コンテンツ４１６を、種々のプラットフォームに跨る種々のユーザーと共有する際に補助することができる。制御インターフェース４０６は、コンテンツ４１６の操作を種々の方法で可能にすることができる。グラフィクス・インターフェース４０８は、グラフィクス・コンテンツの入手を可能にすることができる。入力インターフェース４１０は、メディア・コンテンツに効果を有することができる入力を受け入れることができる。そして、ストレージ・インターフェース４１２は、種々の記憶方式の制御を可能にすることができる。ネーティブ・アプリケーション４１４によって露出されるこれらのインターフェース４０４、４０６、４０８、４１０、および４１２は、一例に過ぎず非限定的である。本開示に開示される前後の文脈を読めば明らかなように、他のインターフェースも本明細書において想起される。
【００２７】
アプリケーション４１４自体は、据置型であれ携帯用であれ、種々の計算機、ＰＣまたはラップトップ、ＰＤＡ、およびセルラ・フォン等に存在することができる。アプリケーション４１４は、プログラム全体としてまたはアプレットとして具現化することもできる。これは、ピア・ツー・ピア・ネットワーク・アーキテクチャーにおいて、またはクライアント・サーバ・アーキテクチャーにおいて機能することができる。図９および図１０と関連のある論述から明白となろうが、このアプリケーションは、種々のソフトウェア、ハードウェア、またはファームウェア設定において存在し、他の計算機および／またはモジュールと、種々のタイプのネットワークを通じて相互作用することができる。
【００２８】
図５は、図４の主題の上に構築し、ホスト変更メディア・コンテンツの想定場面を開示する。図４に示したように、コンテンツ・フレームワーク４１８に埋め込まれた（４３０）元のメディア・コンテンツ４１６は、コンテンツ・フレームワーク４１８（先に論じたように、このフレームワーク４１８は、任意の種類のプログラム、アプリケーション、またはアプレットとすることができ、グラフィクス・ベース、テキスト・ベース、ビデオ・ベース等のいずれでも構わない）のユーザー・インターフェースを通じて変更することができる。つまり、図５によれば、ユーザーは、フレームワーク４１８のユーザー・インターフェースを通じて、メディア・コンテンツ４１６を操作することができ、この操作を、入力インターフェース４１０を通じて、モジュール４０２に伝えることができる。次に、新たな（ホスト）変更メディア・コンテンツ５００をフレームワーク４１８に伝えて、この中でフレーミング(frame)することができる。次に、この新たなコンテンツ５００は、リモート（物理的にリモートであるかまたは論理的にリモートであるかには関係なく）計算機において実行している他のアプリケーションと共有することができるので、ホスト５１０において行われる変更をこのような他の計算機においても反映することができる。
【００２９】
図６は、リモート計算機変更メディア・コンテンツの効果を示すことによって、図４および図５の上に更に構築する。図５のホスト変更コンテンツ５００は、更に、異なる（または同一の）プラットフォームにおけるリモート・ユーザーによって変化させることができる。図６によれば、第１プラットフォーム・タイプを有するリモート・デバイス６０２は、図５に示した変更コンテンツ５００を変化させることができ、この変化がリモート変更メディア・コンテンツ６００として現れるようにすることができる。これらの変化は、ネーティブ・アプリケーション４１４によって提供されるコンテンツ・フレームワーク４１８内に現れることができる。具体的には、ネットワーキング・インターフェース４０４は、リモート・デバイス６０２からの任意の変化をしかるべきモジュール４０２に中継することができるので、このモジュール４０２は、次に、これらの変化を変更コンテンツ５００にレンダリングし、こうしてリモート変更コンテンツ６００が得られる。
【００３０】
端的に言えば、標準的アプリケーション、またはプログラム、および／またはアプレットとして具現化することができるネーティブ・アプリケーション４１４は、他の計算機とデーターを通信および／または共有する（更に一層広く言えば、相互作用を行う）ことを望む任意の計算機に存在することができ、このようなデバイスは同じプラットフォームまたは異なるプラットフォームを有することもできる。このタスクを遂行する１つの方法は、ネットワーキング・インターフェース４０４、制御インターフェース４０６、グラフィクス・インターフェース４０８、入力インターフェース４１０、および／またはストレージ・インターフェース４１２のようなインターフェースによって例示されるように、アプリケーション４１４のような、所与の計算機に対してネーティブな任意のアプリケーションが、何らかのコア・インターフェース３１２（図３に示す）を提供することである。
【００３１】
このようなインターフェースは、本明細書に開示するインターフェースの組を超えて拡張可能にすることもできる。例えば、図６に示すように、カスタム化可能インターフェース４２１を設けることができ、このインターフェースは、ＧＰＳデーター、カメラ・データー等のように、種々の機能へのアクセスを露出することができる。つまり、カスタム化可能インターフェース４２１は、任意のモジュールが、ＧＰＳ、Bluetooth、カメラ、またはモーション検出デバイスのような、ホスト計算機５１０の特殊目的機能またはデバイスと通信することを可能にする任意のタイプのインターフェースの代役をつとめることができる。更に、ネーティブ・アプリケーション４１４を、.ＮＥＴのようなマネージド・ランタイム・コード４００と関連付けることができるので、種々のモジュールまたはプラグインを用いてネーティブ・アプリケーション４１４と相互作用することができる。
【００３２】
このように、現在開示している主題の別の態様では、ネーティブ・アプリケーション４１４の機能は、少なくとも３つの異なるアーキテクチャーにおいて現れることができる。（１）デバイス（例えば、コンソールであるが、これに限定されない。何故なら、任意の計算機が本明細書では想起されるからである）において実行中のネーティブ・アプリケーションは、他のデバイスにおいて実行中の種々の他のアプリケーション間でセッションをホストすることができる。（２）異なるデバイスにおける他のモジュールと通信するモジュールは、ネーティブ・アプリケーションの代わりに、動的リンク・ライブラリ（ＤＬＬ：dynamically linked library）を通じてそうすることができる（ここで、ＤＬＬは、他のデバイスと通信している各デバイスに置くことができ、初回のインストールのためまたは他のＤＬＬとのバージョン変更問題(versioning issues)を解決するためのいずれでも、オンライン・ソースからダウンロードすることができる。更に、複数回のモジュール・リブートに跨ってサービスの連続性を確保するため、例えば、複数回のモジュールのロードに跨ってビデオ・チャットを維持するためには、特殊オペレーティング・システム・サポートが必要になる場合もあることを注記しておく）。（３）オペレーティング・システム（ＯＳ）は、ネーティブ・アプリケーションを管理することができる（即ち、図４、図５、および図６を参照して先に論じた通信トラフィックを監督することができる）。これら３つの設定のいずれもが、本明細書において開示する主題と一貫性があり、要望に応じて、所望の形態で採用することができる。
【００３３】
アプリケーション４１４（または、代わりに、ＤＬＬまたはＯＳが監視するアプリケーション）は、モジュール間の接続を維持することを責務とすることができる。これは、このようなモジュール（例えば、モジュール４０２）のプロパティを指定し、モジュール同士をどのように接続するか指定することができる。以下で示すように、このような接続は、ピア・ツー・ピア・コンテキストまたはサーバ・クライアント・コンテキストとすることができる。更に、ネーティブ・アプリケーション・アーキテクチャーでは、例えば、セッション・ホストが１つのコンソールから別のコンソールに移動するとき（例えば、前者のコンソールがセッションから引き上げるという想定場面において）、ホスト移動が起こる可能性がある。つまり、現在開示している主題の利点の１つは、このようなコンソールの各々で実行中のネーティブ・アプリケーションが接続を保証することができるので、開発者は種々のコンソールにおける種々のモジュール間の接続を管理する時間を節約できることである。
【００３４】
最後に、図７は、クロス・プラットフォーム・アプリケーション・メカニズムの作成、使用、提供等のブロック図フロー・チャートの一例を示す。ブロック７００において、前述のアプリケーション（例えば、アプリケーション４１４）をリモート・ソースから計算機にダウンロードすることができる。しかしながら、これを予め計算機にロードしておくことも可能であることを注記しておく。次に、ブロック７０２において、一旦アプリケーションをダウンロードしたなら、ランタイム・マネージド・コードのような、ネーティブ・ホスト計算資源と相互作用するために、このアプリケーションをインストールすることができる。一旦インストールされたなら、前述のような種々の機能、およびデーター同期、リアル・タイム更新等のような追加機能を実行するために、アプリケーションを用いることができる。
【００３５】
このアプリケーションをインストールすることによって、異なるプラットフォームを有する計算機が、互いに通信すること、および／またはデーターを共有することが可能になり、これらのプラットフォームが、標準的ＰＣオペレーティング・システム、移動体オペレーティング・システム、閉ざされたオペレーティング・システム（「閉ざされた」システムの概念は、署名コード(signed code)のようなあるタイプのコードだけ実行を許可するゲーミング・コンソールのような、非汎用コンピューターを含む）等のうちどれを含むかには関係ない。
【００３６】
ブロック７０４において、リモート・デバイスからメディア・コンテンツを受信し、このようなコンテンツをネーティブまたはホスト計算機と共有するように、アプリケーションを構成する。このようなメディア・コンテンツは、次に、ホスト計算システムによって操作することができ、メディア・コンテンツにおけるいずれの変化も、ブロック７０６に示すように、リモート・システム戻して反映させることができる。更にまた、先に論じたアプリケーションは、アプリケーションに対してローカルなまたはアプリケーションに対してリモートな（即ち、仮想機械の想定場面におけるように、物理的であれ論理的であれ、異なる計算機に存在する）プラグイン・プログラム、アプリケーション、またはアプレットのようなモジュールと相互作用することができる。最後に、ブロック７０８において、アプリケーションは、異なるプラットフォームを実行しているホストおよびリモート・デバイス間の通信を開いたままにしておくことができる（例えば、ブロック７００から７０６においてデーターを共有する間）。前述のように、このような通信は、テキスト、音声、ビデオ、オーディオを含むことができ、更に、任意のその他の種類の電子通信も含むことができる。
【００３７】
尚、本開示の他の態様では、アプリケーションが適所にあれば、ユーザーが任意のコントローラー１４２（１）、１４２（２）ボタン（図８に示すような）を押したときはいつでも、意図する受信側に任意のコマンドを渡す前に、この信号をアプリケーションによって解釈し、それによって操作することができる。このように、アプリケーションは、異なるモジュールを選択することができる（ローカルであれ、ネットワークを通じてであれ）というように、任意のコンソールの制御フローを管理することができる。この真の効果は、アプリケーションが、閉じた計算システム間で容易なデーター共有を行うことができる計算システムに備えているということである。
【００３８】
現在開示している主題の例示的かつ非限定的な一態様では、ビデオおよび／またはチャットが常に利用可能である（アプリケーション・リブートが発生したときであっても）外観を与えるように、ビデオおよび／またはチャット・スレッドを維持することができる。音声データーのような、通信データーのその他の態様は、（これらのロードが、ビデオ、写真、ゲーム等のいずれを含んでも関係なく）任意のデーター・ロード間でシームレスに現れることができる。
ＩＩＩ．オンライン・コンテンツ用計算機およびネットワークの一例
【００３９】
以上で論じた計算機は、ネーティブ（例えば、ホスト５１０）であれリモート６０２であれ、ゲーミング・コンソール、音楽プレーヤー、ＰＣ、および異なるプラットフォーム、類似のプラットフォーム、または同じプラットフォームを有するこのようなその他のデバイスとして具現化することができる。また、本明細書では、ハンドヘルド・デバイス、ラップトップ、セル・フォン等も考えられる。図８を参照すると、ブロック図が、先に論じたクロス・プラットフォーム・アプリケーションの種々の態様と共に用いることができるマルチメディア・コンソールの一例を示す。このコンソールは、ゲーム指向コンソールまたはＰＣを含み、例えば、ディジタル・オーディオ処理機能を備えることができる。具体的には、図８において、マルチメディア・コンソール１００が示されており、中央処理ユニット（ＣＰＵ）１０１が、レベル１（Ｌ１）キャッシュ１０２、レベル２（Ｌ２）キャッシュ１０４、およびフラッシュＲＯＭ（リード・オンリー・メモリー）１０６を有する。レベル１キャッシュ１０２およびレベル２キャッシュ１０４は、一時的にデーターを格納することができ、したがってメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させることができる。フラッシュＲＯＭ１０６は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール１００に電源を入れたときに、ブート・プロセスの初期フェーズの間にロードされる。あるいは、初期ブート・フェーズの間にロードされる実行可能コードを、フラッシュ・メモリー・デバイス（図示せず）に格納することもできる。更に、ＲＯＭ１０６は、ＣＰＵ１０１とは離れて配置することもできる。これらのメモリー・デバイスは、前述のアプリケーション、プログラム、アプレット、非管理コード等の一部または全体をキャッシュすることができる。
【００４０】
グラフィクス処理ユニット（ＧＰＵ）１０８およびビデオ・エンコーダー／ビデオ・コデック（コーダー／デコーダー）１１４は、高速および高分解能グラフィクス処理のためのビデオ処理パイプラインを形成する。データーは、グラフィクス処理ユニット１０８からビデオ・エンコーダー／ビデオ・コデック１１４に、バスを通じて通信される。ビデオ処理パイプラインは、テレビジョンまたはその他のディスプレイへの送信のために、データーをＡ／Ｖ（オーディオ／ビデオ）ポート１４０に出力することができる。メモリー・コントローラー１１０がＧＰＵ１０８およびＣＰＵ１０１に接続されており、限定ではないが、ＲＡＭ（ランダム・アクセス・メモリー）のような、種々の形式のメモリー１１２へのプロセッサのアクセスをし易くする。
【００４１】
マルチメディア・コンソール１００は、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、オーディオ処理ユニット１２３、ネットワーク・インターフェース・コントローラー１２４、第１ＵＳＢホスト・コントローラー１２６、第２ＵＳＢコントローラー１２８、および好ましくはモジュール１１８上に実行することができるフロント・パネルＩ／Ｏサブアセンブリ１３０を含むことができる。ＵＳＢコントローラー１２６および１２８は、ペリフェラル・コントローラー１４２（１）〜１４２（２）、ワイヤレス・アダプター１４８、および外部メモリー・ユニット１４６（例えば、フラッシュ・メモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、リムーバブル・メディア等）のホストとしての役割を果たすことができる。ネットワーク・インターフェース１２４および／またはワイヤレス・アダプター１４８は、ネットワーク（例えば、インターネット、ホーム・ネットワーク等）へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む、多種多様の様々な有線またはワイヤレス・インターフェース・コンポーネントのうち任意のものでよい。
【００４２】
システム・メモリー１４３は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ１４４が設けられており、ＤＶＤ／ＣＤドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を備えることができる。メディア・ドライブ１４４は、マルチメディア・コンソール１００の内部でも外部でもよい。アプリケーション・データーは、マルチメディア・コンソール１００による実行、プレーバック(playback)等のために、メディア・ドライブ１４４を通じてアクセスすることができる。メディア・ドライブ１４４は、シリアルＡＴＡバスまたはその他の高速接続（例えば、ＩＥＥＥ１３９４）のようなバスを通じて、Ｉ／Ｏコントローラー１２０に接続することができる。
【００４３】
システム管理コントローラー１２２は、マルチメディア・コンソール１００の可用性を確保することに関する種々のサービス機能を提供することができる。オーディオ処理ユニット１２３およびオーディオ・コデック１３２は、前述の現在開示している主題の態様にしたがって、高信頼度、３Ｄ、サラウンド、およびステレオ・オーディオ処理による、対応するオーディオ処理パイプラインを形成することができる。オーディオ・データーは、オーディオ処理ユニット１２３とオーディオ・コデック１２６との間において、通信リンクを通じて伝えることができる。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ能力を有するデバイスによる再生のために、Ａ／Ｖポート１４０にデーターを出力する。
【００４４】
フロント・パネルＩ／Ｏサブアセンブリ１３０は、電力ボタン１５０およびイジェクト・ボタン１４２の機能をサポートし、更にマルチメディア・コンソール１００の外面上に露出する任意のＬＥＤ（発光ダイオード）またはその他のインディケータの機能もサポートすることができる。システム電源モジュール１３６は、電力をマルチメディア・コンソール１００のコンポーネントに供給することができる。ファン１３８は、マルチメディア・コンソール１００内部にある回路を冷却することができる。
【００４５】
ＣＰＵ１０１、ＧＰＵ１０８、メモリー・コントローラー１１０、およびマルチメディア・コンソール１００内部にある種々のその他のコンポーネントは、１系統以上のバスによって相互接続することができる。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、ペリフェラル・バス、ならびに種々のバス・アーキテクチャのうち任意のものを用いたプロセッサー・バスまたはローカル・バスが含まれる。
【００４６】
マルチメディア・コンソール１００に電力を投入するか、またはリブートすると、アプリケーション・データーをシステム・メモリー１４３からメモリー１１２および／またはキャッシュ１０２、１０４にロードすることができ、ＣＰＵ１０１において実行することができる。このようなアプリケーション・データーは、オンラインで得られたデーターの一部を含むことができる。アプリケーションは、マルチメディア・コンソール１００において利用可能な異なるメディア・タイプにナビゲートするときに、一貫性のあるユーザー体験を提供するグラフィカル・ユーザー・インターフェースを提示することもできる。動作において、アプリケーションおよび／またはメディア・ドライブ１４４内に収蔵されているその他のメディアをメディア・ドライブ１４４から起動(launch)または再生(play)して、追加の機能をマルチメディア・コンソール１００に提供することもできる。
【００４７】
マルチメディア・コンソール１００は、単に単体システムをテレビジョンまたはその他のディスプレイに接続することによって、その単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール１００は、１人以上のユーザーがシステムと相互作用すること、ムービーを見ること、音楽を聞くこと等を可能にすることができる。しかしながら、ネットワーク・インターフェース１２４またはワイヤレス・アダプター１４８を通じて利用可能なブロードバンド接続の統合により、マルチメディア・コンソール１００は、更に、それよりも大きなネットワーク共同体における参加者として動作することができる。このような参加者として、これは、ＰＣであれまたはサーバーであれ、計算機と相互作用し、情報を受信することができ、この情報は最終的に格納することができる。
【００４８】
次に、図９は、図１から図８を参照しながら論じた主題に合ったネットワーキング環境の一例を示す。先に論じたゲーミング・コンソール１００は、計算機１５３、１５６、１５７のうち任意の１つに対応することができ、あるいはこのような計算機１５３、１５６、１５７に跨って分散させることもできる。これは、通信ネットワーク／バス１５４を通じて種々のその他のオブジェクト１５５および記憶装置１５８と相互作用することができ、このようなオブジェクトおよびデバイスは他の計算機に対応することができる（ハードウェア、ファームウェア、またはソフトウェアのどれかには関係ない）。クロス・プラットフォーム・アプリケーションは、実現例に応じて、ピア・ツー・ピア・ネットワークまたはクライアント・サーバに基づくネットワークにおいて通信することができる。
【００４９】
最後に、本明細書において記載する種々の技法は、ハードウェアまたはソフトウェアと共に実現することができ、しかるべき場合には双方の組み合わせで実現することもできることも、注記してしかるべきであろう。つまり、ここに開示する主題の方法および装置は、あるいはそのある種の態様または一部は、フロッピ・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意の機械読み取り可能記憶媒体のような有形記憶媒体に具現化したプログラム・コード（即ち、命令）の形態をなすことができ、このプログラム・コードを、コンピューターのような機械にロードして実行すると、この機械が本主題を実施する装置となる。
【００５０】
プログラマブル・コンピューターにおけるプログラム・コードの実行という場合では、計算機は概略的にプロセッサ、当該プロセッサ（揮発性および不揮発性メモリーおよび／または記憶エレメントを含む）によって読み取り可能な記憶媒体、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含むことができる。例えば、データー処理アプリケーション・プログラミング・インターフェース（ＡＰＩ）等の使用によって、本発明のドメイン特定プログラミング・モデルの態様の作成および／または実現例を利用することができる１つ以上のプログラムは、コンピューター・システムと通信するために、上位手続き言語またはオブジェクト指向プログラミング言語で実現することが好ましい。しかしながら、プログラム（１つまたは複数）は、望ましければ、アセンブリまたは機械語で実現することもできる。いずれの場合でも、言語は、コンパイラ言語またはインタプリタ言語でもよく、組み合わせてもよい。
【００５１】
ここに開示した態様によって用いられるいずれの言語も、種々のタスクを実行するための命令を含むことができる。つまり、例えば、ネーティブ・ランタイムは、例えば、複数回に跨るモジュールのロードにおいて音声／ビデオ・チャットを維持するために必要な接続を維持することができる。ネーティブ・アプリケーションは、モジュールに、現在のセッションに接続しているユーザーについての知識を露出することができる（このようにして、モジュールは、これらが起動する時点で、現在誰が接続されているのか常に把握することができる。図４に示すように、例えば、ネーティブ・アプリケーション４１４は実際のコンテンツ・フレームワーク４１８とすることができる（この場合、アプリケーション４１４は、情報と、現セッションに関するユーザー・インターフェース（ＵＩ）とを表示する私的モジュールを実行することができる。モジュールは、例えば、セッション中にあるいずれの人をも可視化する能力を有し、更にＵＩに実際にデーターを操作させる能力とを有し、例えば、人を招待し、人に開始させ、感動を表し、新たなモジュールを起動し、セッション中の各１人が新たなモジュールも開始させる等を実行することができる）。また、セッションには無関係の個人サービスも提供することができる（例えば、株式チッカー、ニュース、電子メール等）。更に、ネーティブ・アプリケーションはその他の豊富なサービスをモジュールに提供することができる。例えば、セル・フォンまたはその他の付属ハードウェアからのＧＰＳ情報のような特殊能力、セッションに接続しているユーザーからの豊富なプロファイル・データー等を提供することができる。
【００５２】
更にまた、本開示は、種々の図面に図示しこれまで論じたように、複数の態様例に関連付けて説明したが、他の同様の態様も用いることができ、または、本開示から逸脱することなく、本開示の同じ機能を実行するために、記載した態様に対して変更や追加を行うこともできることは言うまでもない。例えば、本開示の種々の態様では、クロス・プラットフォーム計算機間の相互作用について、プロセスおよび方法を説明した。しかしながら、これら記載した態様と同等のメカニズムも、本明細書における教示は想定している。したがって、本開示はいずれの１つの態様にも限定されるのではなく、逆に添付した特許請求の範囲にしたがった広さおよび範囲で解釈するものとする。
【図１】
2011515721.tif 000003
【図２】
2011515721.tif 000004
【図３】
2011515721.tif 000005
【図４】
2011515721.tif 000006
【図５】
2011515721.tif 000007
【図６】
2011515721.tif 000008
【図７】
2011515721.tif 000009
【図８】
2011515721.tif 000010
【図９】
2011515721.tif 000011
【国際調査報告】
2011515721.tif 000012
2011515721.tif 000013