説明

オンライン共同社会および接続体験のためのアーキテクチャー

【課題】本明細書では、オンラインの共同社会および接続体験のためのアーキテクチャーについて、種々の態様を開示する。
【解決手段】このアーキテクチャーは、ホスト計算機を実行するアプリケーションにおいて具現化することができ、このアプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービスにホストされたモジュールを発見する、このようなモジュールを起動する、複数のこのような同時実行モジュール間で切り換える、そして複数対複数のテキスト、音声、およびビデオ機能を提供するというような、機能を提供する。また、このアプリケーションは、ホスト計算機におけるマネージド・ランタイム・コードとインターフェースすることによって、異なるプラットフォームを有する複数の計算機間において、入力手段、出力手段、およびネットワーク通信手段を提供することができる。

【発明の詳細な説明】
【技術分野】
【0001】
ここに開示する主題は、計算の分野に関し、更に特定すれば、メディア・コンテンツのような分野に関するが、これは単に例示の非限定的分野に過ぎない。
【背景技術】
【0002】
ゲーミング・コーンソール、ゲーミング・ハンドヘルド、音楽プレーヤー、パーソナル・コンピューター(PC)等のような娯楽デバイスは、ユーザーが互いに通信するための、例えば、ビデオおよび/または音声による手段が体系立てられておらず、明確に定められていない。更に、このようなデバイスは、写真、音楽、ビデオ等のようなデーターを、一貫性があり、ロバストに、そして豊富に共有する手段を有していない。
【発明の概要】
【発明が解決しようとする課題】
【0003】
つまり、プラットフォーム間のデーター通信および共有のための枠組みを提供することができるアーキテクチャーが求められている。
【課題を解決するための手段】
【0004】
オンラインの共同社会および接続体験のためのアーキテクチャーの種々の態様を、本明細書において開示する。このアーキテクチャーは、ホスト計算機を実行するアプリケーションにおいて具現化することができ、このアプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービスにホストされたモジュールを発見する、このようなモジュールを起動する、複数のこのような同時実行モジュール間で切り換える、そして複数対複数のテキスト、音声、およびビデオ機能を提供するというような、機能を提供する。また、このアプリケーションは、ホスト計算機におけるマネージド・ランタイム・コード(managed runtime code)とインターフェースすることによって、異なるプラットフォームを有する複数の計算機間において、入力手段、出力手段、およびネットワーク通信手段を提供することができる。
【0005】
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられていることは注記してしかるべきであろう。この摘要は、特許請求する主題の鍵となる特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断する際に補助として用いられることを意図するのでもない。
【図面の簡単な説明】
【0006】
以上の摘要、および以下の詳細な説明は、添付図面と関連付けて読むと一層理解が深まる。本開示を例示するために、開示の種々の態様を図示する。しかしながら、本開示は、図示する具体的な態様に限定されるのではない。以下の図が含まれる。
【図1】図1は、異なるタイプの娯楽用デバイスがデーターを通信し共有するためのクロス・プラットフォーム・アーキテクチャーを有していない先行技術のシステムを示す。
【図2】図2は、データーの通信および共有に対処することができる種々のタイプ(および同じタイプ)の種々のデバイスのための構造化クロス・プラットフォーム・メカニズムがあることを示す。
【図3】図3は、アプリケーションおよび/またはプラグイン・アーキテクチャーを用いて、どのようにしてクロス・プラットフォーム相互作用を遂行することができるかを示す。
【図4】図4は、ネーティブ・アプリケーションと相互作用する基本メディア・コンテンツ共有モジュールの想定場面の一例を示す。
【図5】図5は、図4の主題の上に構築する、ホスト変更メディア・コンテンツの想定場面を開示する。
【図6】図6は、リモート計算機変更メディア・コンテンツの効果を示すことによって、図4および図5の上に更に構築する。
【図7】図7は、クロス・プラットフォーム・アプリケーション・メカニズムの作成、使用、提供等のブロック図フロー・チャートの一例を示す。
【図8】図8は、図1から図7および図9を参照しながら論ずるクロス・プラットフォーム・アプリーケーションの種々の態様と合わせて用いることができるマルチメディア・コンソールの一例をブロック図形態で示す。
【図9】図9は、図1から図8を参照しながら論ずる主題に合わせたネットワーキング環境の一例を示す。
【発明を実施するための形態】
【0007】
図1は、異なるタイプの娯楽デバイスが、データーを通信および共有するためのクロス・プラットフォーム・アーキテクチャーを有していない先行技術のシステムを示す。娯楽デバイスA160は、タイプ1のものであるとすることができ、娯楽デバイスB162もタイプ1のものであるとすることができる。双方のデバイス160、162は、2台のパーソナル・コンピューター(PC)のように、同じタイプであるので、これらは、送信制御プロトコル/インターネット・プロトコル(TCP/IP)のような、種々のプロトコルを通じて容易に通信することができる。この想定場面では、構造化通信および共有メカニズムがあるものとする。
【0008】
対照的に、異なるタイプのデバイスは、共通の通信および共有メカニズムがないために、構造化した態様で互いに通信することができない場合がある。図1では、娯楽デバイスA160はタイプ1のもの、即ち、PCとすることができ、娯楽デバイスC164はタイプ2のもの、例えば、音楽プレーヤーとすることができる。これら2つのデバイス、PCおよび音楽プレーヤーは、豊富にそして広く通信することができない場合がある。勿論、異なるタイプのデバイス間における相互作用は、基本的なテキストまたはその他の単純なデーターの共有のように、存在する場合もあるが、一方のデバイスのコンテンツは、殆どの部分が、他方のデバイスには理解できない可能性がある(そして、その逆も成り立つ)。
【0009】
このようなデーターの構造化クロス・プラットフォーム通信および共有の欠如は、複数のデバイスに該当する可能性がある。図1は、タイプ1の娯楽デバイスA160は、タイプ3である娯楽デバイスDと、構造化した態様で、通信することもできないことを示す。タイプ3デバイス166、例えば、ゲーミング・ハンドヘルドは、タイプ2デバイス164、音楽プレーヤー等と通信することができない可能性がある。
【0010】
図1とは対照的に、図2は、構造化クロス・プラットフォーム・メカニズムがあれば、種々のタイプ(および同じタイプ)の種々のデバイスが容易に互いにデーターを通信し共有できることを示す。つまり、図2によれば、タイプ1の計算機A200は、タイプ2の計算機C202と相互作用することができ、タイプ3の計算機D206と相互作用することができ、更に、それ自体と同じタイプ、タイプ1である計算機B204と相互作用することができる。
【0011】
このような相互作用は、機能の中でもとりわけデーターの通信および/または共有を含むことができるが、音声、テキスト、および/またはビデオの通信、写真、音楽(オーディオ・ファイルを含む)、ビデオ等の共有を含むことができ、しかもこれらに限定されるのではない。端的に言えば、この相互作用はあらゆる種類のディジタル・コンテンツにも関与することができる。このような相互作用は、リアル・タイムでもそうでなくても、要
求に応じて実行することができる。更に、1:1の相互作用に限定される必要はなく、代わりに、複数のユーザーおよび/または計算システムが関与することもできる。この設定では、共同社会の体験は、複数のプラットフォームを跨いでコンテンツを通信および共有することによって維持することができ、これらのプラットフォームが、PC、ゲーミング・コンソール、音楽プレーヤー、セル・フォン、パーソナル・ディジタル・アシスタント(PDA)等のどれにおいて実行するかには関係ない。
【0012】
次に、図3は、アプリケーションおよび/またはプラグイン・アーキテクチャーを用いて、クロス・プラットフォーム相互作用をどのように遂行することができるかを示す。図3において、タイプ1の計算機A200が、タイプ2の計算機C202と相互作用を行う。現在開示している主題の一態様では、このようなデーターの通信および/または共有は、クロス・プラットフォーム・アプリケーション300を用いて遂行することができる。このアプリケーション300は、異なるそして離れた計算機において複数のユーザー302、304、306をサポートすることができる。これらのデバイスは、先に論じたように、PC、ゲーミング・コンソール等を含む、異なるタイプであってよい。このクロス・プラットフォーム・アプリケーションを用いると、ユーザー302、304、306は、音声、テキスト、ビデオ、およびその他の通信手段を用いて会議を行うことができる(308)。
【0013】
更に、クロス・プラットフォーム・アプリケーション300は、プラグイン・アーキテクチャーをサポートすることができる。つまり、種々のプラグイン・モジュールを開発し、コア・アプリケーション300と相互作用させることができる。このようなプラグイン・モジュールは、音声、テキスト、および/またはビデオ通信、および/または写真、音楽、および/またはビデオ共有等を追加するのかまたは強化するのかには関係なく、種々の計算解決策を含むことができる。プラグイン・アーキテクチャー310によってこれを遂行することができる1つの方法は、前述のプラグイン・モジュールに構築される適切なインターフェースを設計するために用いることができるコア・インターフェース312を露出することによって行われる。コア・インターフェース312は、(1)プラグインが描画できるようなグラフィクス・デバイス、(2)プラグインがある種の入力を取り込んで処理することができるような入力、(3)プラグインが種々のユーザー間でデーターを同期させることができるようなネットワーキング等のような、種々の機能の制御を仲介することができる。
【0014】
現在開示している主題の更に別の態様では、クロス・プラットフォーム・アプリケーションがプラットフォームに知られ得ないことが可能である。限定ではなく一例として、アプリケーション300は、.NETのようなマネージド・コード・フレームワーク(managed code framework)と相互作用することができる。これは、前述の相互作用のために管理されているコードの利用を可能にすることができ、更に異なるタイプのコードが、マネージド・コード・フレームワークによって提供される中間言語を通じて相互作用することを可能にすることもできる。尚、この目標を遂行するためには(.NETだけでなく)種々のクロス・プラットフォーム・ルーチンを用いることができること、そして、開示する主題の他の態様の中には、このようなマネージド・コード・フレームワークを用いる必要がないものもあることは、当業者には全く言うまでもないであろう。
【0015】
マネージド・ランタイム(managed runtime)が用いられる場合、これらはプロセス制御、入力制御、ネットワーキング(ユーザーのセッション進入または退出の通知、ならびにパケットを任意のユーザーにアドレスして送る能力を含む)、グラフィクス・レンダリング、ローカル・ストレージへのアクセス等のために基本モデルまたはネームスペース(namespace)を提供することができる。このようなランタイムと相互作用するネーティブ・アプリケーションは、ローカル・デバイスにおけるモジュールまたはオンライン・サービス
にホストされているモジュールを発見するための基本的機能を提供することができ、また、これらはこのようなモジュールの起動、同時に実行しているモジュール間における切り換え、複数対複数のテキスト、音声、ビデオ・チャット等にも備えることができる。
【0016】
ネーティブ・アプリケーションのその他の例示的且つ非限定的な特徴の中には、モジュールを実際に実行するマネージド・ランタイムをホストすること、テキスト、音声、ビデオ、コントローラー、ストレージ等を含むモジュールに入力を供給すること、テキスト、音声、ビデオ、グラフィクス、ストレージ等を含むモジュールから出力を供給すること、ガジェットから出力をレンダリングする手段を設けること、他の相手を体験に加入するように促す手段を提供すること、永続的テキスト、音声、ビデオ・チャットを全てのユーザー間で維持することが含まれる。これらは、ネーティブ・アプリケーションの複数の特徴のうち一部に過ぎず、図3におけるクロス・プラットフォーム・アプリケーション300または図4におけるネーティブ・アプリケーション414としてでもそれには関係なく、本願の他の部分でも様々に明示されている。
【0017】
これより図4に移ると、ネーティブ・アプリケーションと相互作用を行う、基本的メディア・コンテンツ共有モジュールの想定場面例が示されている。尚、初めに、「メディア・コンテンツ」は、本明細書全体において論じられる(そして、任意の有形媒体に格納可能な)任意のコンテンツを含む、つまり、この用語は排他的ではなく内包できであることは、注記してしかるべきである。更に、本明細書における「コンテンツ」という用語は、これらの用語が当業者によって理解されているように、任意の「データー」および/または「コード」を含む。図4において、モジュール402は、写真共有および/または編集プラグイン、あるいはその他の何らかのアプレットとすることができ、何らかのメディア・コンテンツ416、例えば、写真(しかしながら、「メディア・コンテンツ」の観念は写真、テキスト、およびこのようなデーターに限定されず、逆に、ゲーミング・コンテンツ、ビデオおよび/またはオーディオ・コンテンツ等も含むことができる)を供給する。このメディア・コンテンツ416は、グラフィクス・インターフェース408を通じて、ネーティブ・アプリケーション414に伝えることができる。ネーティブ・アプリケーション414は、コンテンツ・フレームワーク418、例えば、音声チャットまたはテキスト・チャットのような、ある種のアプレットまたはプログラムを設けることができる。つまり、真の結果は、写真をチャット・プログラムに埋め込むまたはペーストすることができるように、メディア・コンテンツ416をコンテンツ・フレームワーク418に埋め込むことができる(430)ということにすることができる。そして、更に、現在開示している主題の別の態様では、メディア・コンテンツ416およびコンテンツ・フレームワーク418が1つであり同一であってもよい(例えば、コンソール・ゲーム)。最後に、このメディア・コンテンツ416は、次に、ネーティブ・アプリケーション414のネーティブ・ネットワーキング420機能を通じて、他のユーザーと共有することができる。
【0018】
ネーティブ・アプリケーション414は、他のリモート・ホストおよびクライアントとの相互作用を可能にするための、インターフェースの状態および露出の維持というような、種々の機能を設けることができる。前者の場合、アプリケーション414はネットワークを跨って分離されている計算機というような、複数の計算機を跨いで一貫性のある状態を維持することができる。限定ではなく一例として、アプリケーション414は、種々のモジュール間における種々の接続に関する問い合わせ(例えば、ソケット状態)に回答することができる。後者の場合、再度限定ではなく一例として、ネットワーキング・インターフェース404は前述のメディア・コンテンツ416を、種々のプラットフォームに跨る種々のユーザーと共有する際に補助することができる。制御インターフェース406は、コンテンツ416の操作を種々の方法で可能にすることができる。グラフィクス・インターフェース408は、グラフィクス・コンテンツの入手を可能にすることができる。入力インターフェース410は、メディア・コンテンツに効果を有することができる入力を
受け入れることができる。そして、ストレージ・インターフェース412は、種々の記憶方式の制御を可能にすることができる。ネーティブ・アプリケーション414によって露出されるこれらのインターフェース404、406、408、410、および412は、一例に過ぎず非限定的である。本開示に開示される前後の文脈を読めば明らかなように、他のインターフェースも本明細書において想起される。
【0019】
アプリケーション414自体は、据置型であれ携帯用であれ、種々の計算機、PCまたはラップトップ、PDA、およびセルラ・フォン等に存在することができる。アプリケーション414は、プログラム全体としてまたはアプレットとして具現化することもできる。これは、ピア・ツー・ピア・ネットワーク・アーキテクチャーにおいて、またはクライアント・サーバ・アーキテクチャーにおいて機能することができる。図9および図10と関連のある論述から明白となろうが、このアプリケーションは、種々のソフトウェア、ハードウェア、またはファームウェア設定において存在し、他の計算機および/またはモジュールと、種々のタイプのネットワークを通じて相互作用することができる。
【0020】
図5は、図4の主題の上に構築し、ホスト変更メディア・コンテンツの想定場面を開示する。図4に示したように、コンテンツ・フレームワーク418に埋め込まれた(430)元のメディア・コンテンツ416は、コンテンツ・フレームワーク418(先に論じたように、このフレームワーク418は、任意の種類のプログラム、アプリケーション、またはアプレットとすることができ、グラフィクス・ベース、テキスト・ベース、ビデオ・ベース等のいずれでも構わない)のユーザー・インターフェースを通じて変更することができる。つまり、図5によれば、ユーザーは、フレームワーク418のユーザー・インターフェースを通じて、メディア・コンテンツ416を操作することができ、この操作を、入力インターフェース410を通じて、モジュール402に伝えることができる。次に、新たな(ホスト)変更メディア・コンテンツ500をフレームワーク418に伝えて、この中でフレーミング(frame)することができる。次に、この新たなコンテンツ500は、リモート(物理的にリモートであるかまたは論理的にリモートであるかには関係なく)計算機において実行している他のアプリケーションと共有することができるので、ホスト510において行われる変更をこのような他の計算機においても反映することができる。
【0021】
図6は、リモート計算機変更メディア・コンテンツの効果を示すことによって、図4および図5の上に更に構築する。図5のホスト変更コンテンツ500は、更に、異なる(または同一の)プラットフォームにおけるリモート・ユーザーによって変化させることができる。図6によれば、第1プラットフォーム・タイプを有するリモート・デバイス602は、図5に示した変更コンテンツ500を変化させることができ、この変化がリモート変更メディア・コンテンツ600として現れるようにすることができる。これらの変化は、ネーティブ・アプリケーション414によって提供されるコンテンツ・フレームワーク418内に現れることができる。具体的には、ネットワーキング・インターフェース404は、リモート・デバイス602からの任意の変化をしかるべきモジュール402に中継することができるので、このモジュール402は、次に、これらの変化を変更コンテンツ500にレンダリングし、こうしてリモート変更コンテンツ600が得られる。
【0022】
端的に言えば、標準的アプリケーション、またはプログラム、および/またはアプレットとして具現化することができるネーティブ・アプリケーション414は、他の計算機とデーターを通信および/または共有する(更に一層広く言えば、相互作用を行う)ことを望む任意の計算機に存在することができ、このようなデバイスは同じプラットフォームまたは異なるプラットフォームを有することもできる。このタスクを遂行する1つの方法は、ネットワーキング・インターフェース404、制御インターフェース406、グラフィクス・インターフェース408、入力インターフェース410、および/またはストレージ・インターフェース412のようなインターフェースによって例示されるように、アプ
リケーション414のような、所与の計算機に対してネーティブな任意のアプリケーションが、何らかのコア・インターフェース312(図3に示す)を提供することである。
【0023】
このようなインターフェースは、本明細書に開示するインターフェースの組を超えて拡張可能にすることもできる。例えば、図6に示すように、カスタム化可能インターフェース421を設けることができ、このインターフェースは、GPSデーター、カメラ・データー等のように、種々の機能へのアクセスを露出することができる。つまり、カスタム化可能インターフェース421は、任意のモジュールが、GPS、Bluetooth、カメラ、またはモーション検出デバイスのような、ホスト計算機510の特殊目的機能またはデバイスと通信することを可能にする任意のタイプのインターフェースの代役をつとめることができる。更に、ネーティブ・アプリケーション414を、.NETのようなマネージド・ランタイム・コード400と関連付けることができるので、種々のモジュールまたはプラグインを用いてネーティブ・アプリケーション414と相互作用することができる。
【0024】
このように、現在開示している主題の別の態様では、ネーティブ・アプリケーション414の機能は、少なくとも3つの異なるアーキテクチャーにおいて現れることができる。(1)デバイス(例えば、コンソールであるが、これに限定されない。何故なら、任意の計算機が本明細書では想起されるからである)において実行中のネーティブ・アプリケーションは、他のデバイスにおいて実行中の種々の他のアプリケーション間でセッションをホストすることができる。(2)異なるデバイスにおける他のモジュールと通信するモジュールは、ネーティブ・アプリケーションの代わりに、動的リンク・ライブラリ(DLL:dynamically linked library)を通じてそうすることができる(ここで、DLLは、他のデバイスと通信している各デバイスに置くことができ、初回のインストールのためまたは他のDLLとのバージョン変更問題(versioning issues)を解決するためのいずれでも、オンライン・ソースからダウンロードすることができる。更に、複数回のモジュール・リブートに跨ってサービスの連続性を確保するため、例えば、複数回のモジュールのロードに跨ってビデオ・チャットを維持するためには、特殊オペレーティング・システム・サポートが必要になる場合もあることを注記しておく)。(3)オペレーティング・システム(OS)は、ネーティブ・アプリケーションを管理することができる(即ち、図4、図5、および図6を参照して先に論じた通信トラフィックを監督することができる)。これら3つの設定のいずれもが、本明細書において開示する主題と一貫性があり、要望に応じて、所望の形態で採用することができる。
【0025】
アプリケーション414(または、代わりに、DLLまたはOSが監視するアプリケーション)は、モジュール間の接続を維持することを責務とすることができる。これは、このようなモジュール(例えば、モジュール402)のプロパティを指定し、モジュール同士をどのように接続するか指定することができる。以下で示すように、このような接続は、ピア・ツー・ピア・コンテキストまたはサーバ・クライアント・コンテキストとすることができる。更に、ネーティブ・アプリケーション・アーキテクチャーでは、例えば、セッション・ホストが1つのコンソールから別のコンソールに移動するとき(例えば、前者のコンソールがセッションから引き上げるという想定場面において)、ホスト移動が起こる可能性がある。つまり、現在開示している主題の利点の1つは、このようなコンソールの各々で実行中のネーティブ・アプリケーションが接続を保証することができるので、開発者は種々のコンソールにおける種々のモジュール間の接続を管理する時間を節約できることである。
【0026】
最後に、図7は、クロス・プラットフォーム・アプリケーション・メカニズムの作成、使用、提供等のブロック図フロー・チャートの一例を示す。ブロック700において、前述のアプリケーション(例えば、アプリケーション414)をリモート・ソースから計算機にダウンロードすることができる。しかしながら、これを予め計算機にロードしておく
ことも可能であることを注記しておく。次に、ブロック702において、一旦アプリケーションをダウンロードしたなら、ランタイム・マネージド・コードのような、ネーティブ・ホスト計算資源と相互作用するために、このアプリケーションをインストールすることができる。一旦インストールされたなら、前述のような種々の機能、およびデーター同期、リアル・タイム更新等のような追加機能を実行するために、アプリケーションを用いることができる。
【0027】
このアプリケーションをインストールすることによって、異なるプラットフォームを有する計算機が、互いに通信すること、および/またはデーターを共有することが可能になり、これらのプラットフォームが、標準的PCオペレーティング・システム、移動体オペレーティング・システム、閉ざされたオペレーティング・システム(「閉ざされた」システムの概念は、署名コード(signed code)のようなあるタイプのコードだけ実行を許可するゲーミング・コンソールのような、非汎用コンピューターを含む)等のうちどれを含むかには関係ない。
【0028】
ブロック704において、リモート・デバイスからメディア・コンテンツを受信し、このようなコンテンツをネーティブまたはホスト計算機と共有するように、アプリケーションを構成する。このようなメディア・コンテンツは、次に、ホスト計算システムによって操作することができ、メディア・コンテンツにおけるいずれの変化も、ブロック706に示すように、リモート・システム戻して反映させることができる。更にまた、先に論じたアプリケーションは、アプリケーションに対してローカルなまたはアプリケーションに対してリモートな(即ち、仮想機械の想定場面におけるように、物理的であれ論理的であれ、異なる計算機に存在する)プラグイン・プログラム、アプリケーション、またはアプレットのようなモジュールと相互作用することができる。最後に、ブロック708において、アプリケーションは、異なるプラットフォームを実行しているホストおよびリモート・デバイス間の通信を開いたままにしておくことができる(例えば、ブロック700から706においてデーターを共有する間)。前述のように、このような通信は、テキスト、音声、ビデオ、オーディオを含むことができ、更に、任意のその他の種類の電子通信も含むことができる。
【0029】
尚、本開示の他の態様では、アプリケーションが適所にあれば、ユーザーが任意のコントローラー142(1)、142(2)ボタン(図8に示すような)を押したときはいつでも、意図する受信側に任意のコマンドを渡す前に、この信号をアプリケーションによって解釈し、それによって操作することができる。このように、アプリケーションは、異なるモジュールを選択することができる(ローカルであれ、ネットワークを通じてであれ)というように、任意のコンソールの制御フローを管理することができる。この真の効果は、アプリケーションが、閉じた計算システム間で容易なデーター共有を行うことができる計算システムに備えているということである。
【0030】
現在開示している主題の例示的かつ非限定的な一態様では、ビデオおよび/またはチャットが常に利用可能である(アプリケーション・リブートが発生したときであっても)外観を与えるように、ビデオおよび/またはチャット・スレッドを維持することができる。音声データーのような、通信データーのその他の態様は、(これらのロードが、ビデオ、写真、ゲーム等のいずれを含んでも関係なく)任意のデーター・ロード間でシームレスに現れることができる。
III.オンライン・コンテンツ用計算機およびネットワークの一例
【0031】
以上で論じた計算機は、ネーティブ(例えば、ホスト510)であれリモート602であれ、ゲーミング・コンソール、音楽プレーヤー、PC、および異なるプラットフォーム、類似のプラットフォーム、または同じプラットフォームを有するこのようなその他のデ
バイスとして具現化することができる。また、本明細書では、ハンドヘルド・デバイス、ラップトップ、セル・フォン等も考えられる。図8を参照すると、ブロック図が、先に論じたクロス・プラットフォーム・アプリケーションの種々の態様と共に用いることができるマルチメディア・コンソールの一例を示す。このコンソールは、ゲーム指向コンソールまたはPCを含み、例えば、ディジタル・オーディオ処理機能を備えることができる。具体的には、図8において、マルチメディア・コンソール100が示されており、中央処理ユニット(CPU)101が、レベル1(L1)キャッシュ102、レベル2(L2)キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納することができ、したがってメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させることができる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100に電源を入れたときに、ブート・プロセスの初期フェーズの間にロードされる。あるいは、初期ブート・フェーズの間にロードされる実行可能コードを、フラッシュ・メモリー・デバイス(図示せず)に格納することもできる。更に、ROM106は、CPU101とは離れて配置することもできる。これらのメモリー・デバイスは、前述のアプリケーション、プログラム、アプレット、非管理コード等の一部または全体をキャッシュすることができる。
【0032】
グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114は、高速および高分解能グラフィクス処理のためのビデオ処理パイプラインを形成する。データーは、グラフィクス処理ユニット108からビデオ・エンコーダー/ビデオ・コデック114に、バスを通じて通信される。ビデオ処理パイプラインは、テレビジョンまたはその他のディスプレイへの送信のために、データーをA/V(オーディオ/ビデオ)ポート140に出力することができる。メモリー・コントローラー110がGPU108およびCPU101に接続されており、限定ではないが、RAM(ランダム・アクセス・メモリー)のような、種々の形式のメモリー112へのプロセッサのアクセスをし易くする。
【0033】
マルチメディア・コンソール100は、I/Oコントローラー120、システム管理コントローラー122、オーディオ処理ユニット123、ネットワーク・インターフェース・コントローラー124、第1USBホスト・コントローラー126、第2USBコントローラー128、および好ましくはモジュール118上に実行することができるフロント・パネルI/Oサブアセンブリ130を含むことができる。USBコントローラー126および128は、ペリフェラル・コントローラー142(1)〜142(2)、ワイヤレス・アダプター148、および外部メモリー・ユニット146(例えば、フラッシュ・メモリー、外部CD/DVD ROMドライブ、リムーバブル・メディア等)のホストとしての役割を果たすことができる。ネットワーク・インターフェース124および/またはワイヤレス・アダプター148は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む、多種多様の様々な有線またはワイヤレス・インターフェース・コンポーネントのうち任意のものでよい。
【0034】
システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を備えることができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部でも外部でもよい。アプリケーション・データーは、マルチメディア・コンソール100による実行、プレーバック(playback)等のために、メディア・ドライブ144を通じてアクセスすることができる。メディア・ドライブ144は、シリアル
ATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを通じて、I/Oコントローラー120に接続することができる。
【0035】
システム管理コントローラー122は、マルチメディア・コンソール100の可用性を確保することに関する種々のサービス機能を提供することができる。オーディオ処理ユニット123およびオーディオ・コデック132は、前述の現在開示している主題の態様にしたがって、高信頼度、3D、サラウンド、およびステレオ・オーディオ処理による、対応するオーディオ処理パイプラインを形成することができる。オーディオ・データーは、オーディオ処理ユニット123とオーディオ・コデック126との間において、通信リンクを通じて伝えることができる。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ能力を有するデバイスによる再生のために、A/Vポート140にデーターを出力する。
【0036】
フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン142の機能をサポートし、更にマルチメディア・コンソール100の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケータの機能もサポートすることができる。システム電源モジュール136は、電力をマルチメディア・コンソール100のコンポーネントに供給することができる。ファン138は、マルチメディア・コンソール100内部にある回路を冷却することができる。
【0037】
CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスによって相互接続することができる。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、ペリフェラル・バス、ならびに種々のバス・アーキテクチャのうち任意のものを用いたプロセッサー・バスまたはローカル・バスが含まれる。
【0038】
マルチメディア・コンソール100に電力を投入するか、またはリブートすると、アプリケーション・データーをシステム・メモリー143からメモリー112および/またはキャッシュ102、104にロードすることができ、CPU101において実行することができる。このようなアプリケーション・データーは、オンラインで得られたデーターの一部を含むことができる。アプリケーションは、マルチメディア・コンソール100において利用可能な異なるメディア・タイプにナビゲートするときに、一貫性のあるユーザー体験を提供するグラフィカル・ユーザー・インターフェースを提示することもできる。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収蔵されているその他のメディアをメディア・ドライブ144から起動(launch)または再生(play)して、追加の機能をマルチメディア・コンソール100に提供することもできる。
【0039】
マルチメディア・コンソール100は、単に単体システムをテレビジョンまたはその他のディスプレイに接続することによって、その単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール100は、1人以上のユーザーがシステムと相互作用すること、ムービーを見ること、音楽を聞くこと等を可能にすることができる。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプター148を通じて利用可能なブロードバンド接続の統合により、マルチメディア・コンソール100は、更に、それよりも大きなネットワーク共同体における参加者として動作することができる。このような参加者として、これは、PCであれまたはサーバーであれ、計算機と相互作用し、情報を受信することができ、この情報は最終的に格納することができる。
【0040】
次に、図9は、図1から図8を参照しながら論じた主題に合ったネットワーキング環境の一例を示す。先に論じたゲーミング・コンソール100は、計算機153、156、1
57のうち任意の1つに対応することができ、あるいはこのような計算機153、156、157に跨って分散させることもできる。これは、通信ネットワーク/バス154を通じて種々のその他のオブジェクト155および記憶装置158と相互作用することができ、このようなオブジェクトおよびデバイスは他の計算機に対応することができる(ハードウェア、ファームウェア、またはソフトウェアのどれかには関係ない)。クロス・プラットフォーム・アプリケーションは、実現例に応じて、ピア・ツー・ピア・ネットワークまたはクライアント・サーバに基づくネットワークにおいて通信することができる。
【0041】
最後に、本明細書において記載する種々の技法は、ハードウェアまたはソフトウェアと共に実現することができ、しかるべき場合には双方の組み合わせで実現することもできることも、注記してしかるべきであろう。つまり、ここに開示する主題の方法および装置は、あるいはそのある種の態様または一部は、フロッピ・ディスク、CD−ROM、ハード・ドライブ、または他の任意の機械読み取り可能記憶媒体のような有形記憶媒体に具現化したプログラム・コード(即ち、命令)の形態をなすことができ、このプログラム・コードを、コンピューターのような機械にロードして実行すると、この機械が本主題を実施する装置となる。
【0042】
プログラマブル・コンピューターにおけるプログラム・コードの実行という場合では、計算機は概略的にプロセッサ、当該プロセッサ(揮発性および不揮発性メモリーおよび/または記憶エレメントを含む)によって読み取り可能な記憶媒体、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むことができる。例えば、データー処理アプリケーション・プログラミング・インターフェース(API)等の使用によって、本発明のドメイン特定プログラミング・モデルの態様の作成および/または実現例を利用することができる1つ以上のプログラムは、コンピューター・システムと通信するために、上位手続き言語またはオブジェクト指向プログラミング言語で実現することが好ましい。しかしながら、プログラム(1つまたは複数)は、望ましければ、アセンブリまたは機械語で実現することもできる。いずれの場合でも、言語は、コンパイラ言語またはインタプリタ言語でもよく、組み合わせてもよい。
【0043】
ここに開示した態様によって用いられるいずれの言語も、種々のタスクを実行するための命令を含むことができる。つまり、例えば、ネーティブ・ランタイムは、例えば、複数回に跨るモジュールのロードにおいて音声/ビデオ・チャットを維持するために必要な接続を維持することができる。ネーティブ・アプリケーションは、モジュールに、現在のセッションに接続しているユーザーについての知識を露出することができる(このようにして、モジュールは、これらが起動する時点で、現在誰が接続されているのか常に把握することができる。図4に示すように、例えば、ネーティブ・アプリケーション414は実際のコンテンツ・フレームワーク418とすることができる(この場合、アプリケーション414は、情報と、現セッションに関するユーザー・インターフェース(UI)とを表示する私的モジュールを実行することができる。モジュールは、例えば、セッション中にあるいずれの人をも可視化する能力を有し、更にUIに実際にデーターを操作させる能力とを有し、例えば、人を招待し、人に開始させ、感動を表し、新たなモジュールを起動し、セッション中の各1人が新たなモジュールも開始させる等を実行することができる)。また、セッションには無関係の個人サービスも提供することができる(例えば、株式チッカー、ニュース、電子メール等)。更に、ネーティブ・アプリケーションはその他の豊富なサービスをモジュールに提供することができる。例えば、セル・フォンまたはその他の付属ハードウェアからのGPS情報のような特殊能力、セッションに接続しているユーザーからの豊富なプロファイル・データー等を提供することができる。
【0044】
更にまた、本開示は、種々の図面に図示しこれまで論じたように、複数の態様例に関連付けて説明したが、他の同様の態様も用いることができ、または、本開示から逸脱するこ
となく、本開示の同じ機能を実行するために、記載した態様に対して変更や追加を行うこともできることは言うまでもない。例えば、本開示の種々の態様では、クロス・プラットフォーム計算機間の相互作用について、プロセスおよび方法を説明した。しかしながら、これら記載した態様と同等のメカニズムも、本明細書における教示は想定している。したがって、本開示はいずれの1つの態様にも限定されるのではなく、逆に添付した特許請求の範囲にしたがった広さおよび範囲で解釈するものとする。

【特許請求の範囲】
【請求項1】
複数の計算機間におけるクロス・プラットフォーム相互作用を可能にするシステムであって、
第1プラットフォームを有する第1計算機(153、156、157、100、200、202、204、206)と、
前記第1プラットフォームとは別の第2プラットフォームを有する第2計算機(153、156、157、100、200、202、204、206)と、
前記第2計算機に存在するアプリケーション(300)と、
を含み、該アプリケーションが、前記第1計算機と前記第2計算機との間におけるデーターの通信および共有を可能にするように構成されており、前記アプリケーションが、インターフェースの組を通じてモジュールと相互作用するように構成されており、前記アプリケーションが、前記第1計算機からの第1コンテンツを前記第2計算機において受信し、前記コンテンツをマネージド・ランタイム環境において処理するように構成された、システム。
【請求項2】
請求項1記載のシステムにおいて、前記アプリケーションは、更に、前記モジュールから第2コンテンツを受信し、該第2コンテンツを前記第1計算機に伝えるように構成された、システム。
【請求項3】
請求項1記載のシステムにおいて、前記アプリケーションは、前記インターフェースの組を通じて、前記第1コンテンツを前記モジュールに供給する、システム。
【請求項4】
請求項1記載のシステムにおいて、前記アプリケーションは、前記第1計算機と前記第2計算機との間において、テキスト、音声、およびビデオ・フォーマットのうち少なくとも1つでデーターの通信および共有を可能にするように構成された、システム。
【請求項5】
請求項1記載のシステムにおいて、前記アプリケーションは、前記第1計算機とリアル・タイムで相互作用するように構成された、システム。
【請求項6】
請求項1記載のシステムにおいて、前記マネージド・ランタイム環境は.NETである、システム。
【請求項7】
請求項1記載のシステムにおいて、前記データーの通信および共有は、ピア・ツー・ピア・ネットワークを通じて行われる、システム。
【請求項8】
請求項1記載のシステムにおいて、前記モジュールは、プラグイン・アプレットである、システム。
【請求項9】
請求項1記載のシステムにおいって、前記アプリケーションは、リモート・ソースからダウンロードされる、システム。
【請求項10】
請求項1記載のシステムにおいて、前記インターフェースの組は拡張可能である、システム。
【請求項11】
請求項1記載のシステムにおいて、前記第1計算機および前記第2計算機のうち少なくとも1つは、閉ざされたデバイスである、システム。
【請求項12】
請求項1記載のシステムにおいて、前記第1計算機および前記第2計算機のうち少なくとも1つは、移動体デバイスである、システム。
【請求項13】
複数の計算機間におけるクロス・プラットフォーム相互作用を可能にするためのコンピューター実行可能命令を有するコンピューター読み取り可能記憶媒体(102、104、106、112、143、146、158)であって、
ホスト計算機からリモート計算機にコンテンツ(416)を供給する(700)ように構成された命令と、
インターフェースの組のうち少なくとも1つを通じて、受信した前記コンテンツをモジュールに供給する(702)ように構成された命令と、
前記リモート計算機または前記モジュールのいずれかから、前記ホスト計算機に対してネーティブなアプリケーションによってコンテンツを受信する(704)ように構成された命令と、
前記アプリケーションと、前記ホスト計算機とは異なるプラットフォームを有する複数の計算機との間においてコンテンツを交換する(708)ように構成された命令であって、前記コンテンツの交換が、マネージド・ランタイム環境において行われる、命令と、
を含む、コンピューター読み取り可能記憶媒体。
【請求項14】
請求項13記載のコンピューター読み取り可能記憶媒体において、前記コンテンツは、テキスト、音声、およびビデオ・データーのうち少なくとも1つである、コンピューター読み取り可能記憶媒体。
【請求項15】
請求項13記載のコンピューター読み取り可能記憶媒体において、前記交換は、ピア・ツー・ピア・ネットワークを通じて行われる、コンピューター読み取り可能記憶媒体。
【請求項16】
請求項13記載のコンピューター読み取り可能記憶媒体であって、更に、前記ネーティブ・アプリケーションを前記ホスト計算機にダウンロードする命令を含む、コンピューター読み取り可能記憶媒体。
【請求項17】
異なるタイプの複数の計算娯楽デバイス間においてデーターの通信および共有を可能にする方法であって、
記憶装置からコンテンツ(416)を取り出すステップ(700)と、
前記コンテンツをアプリケーションに送るステップ(702)と、
ホスト計算機において実行している前記アプリケーションによって、前記コンテンツを受信するステップ(704)と、
前記ホスト計算機において実行しているコンテンツ・フレームワーク(418)に、前記コンテンツを埋め込むステップ(430)と、
前記コンテンツのコピーを、前記ホスト計算機において実行している前記アプリケーションと実質的に類似のアプリケーションを実行しているリモート計算機に供給するステップであって、前記実質的に類似のアプリケーションおよび前記ホスト計算機アプリケーションの双方が、共通のマネージド・ランタイム・フレームワークと関連付けられた、ステップと、
を含む、方法。
【請求項18】
請求項17記載の方法であって、更に、前記ホスト計算システムにおいて実行しているプラットフォームとは別のプラットフォームを実行している前記リモート計算機から、前記ホスト計算システムにおいて、前記コンテンツに対する追加コンテンツを受信するステップを含む、方法。
【請求項19】
請求項17記載の方法において、前記コンテンツの前記取り出しは、前記ホスト計算機と関連のあるプラグイン・デバイスによって実行される、方法。
【請求項20】
請求項17記載の方法において、前記複数の計算機のうち少なくとも1つは、閉ざされたデバイスである、方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−84299(P2013−84299A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【外国語出願】
【出願番号】特願2013−478(P2013−478)
【出願日】平成25年1月7日(2013.1.7)
【分割の表示】特願2010−542236(P2010−542236)の分割
【原出願日】平成20年12月11日(2008.12.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】