(57)【要約】      （修正有）【課題】コンテンツのデプロイメント、スケーリング、テレメトリのための技術を提供する。【解決手段】コンテンツアイテムをデプロイメントのためにアクセス可能にすると、コンテンツアイテムのインスタンスは、仮想マシン上にイメージとしてインストールされる。次にコンテンツアイテムの追加のインスタンスは、同一の仮想マシンインスタンス上で、任意の数の追加の仮想マシンインスタンス上へイメージをコピーすることで起動される。コンテンツアイテムのインスタンスは、複数の同時に割り当てられたユーザセッションで実行される。占有されたユーザセッション数、占有されていないユーザセッション数、コンテンツアイテムインスタンス持続時間、メモリ使用量等のコンテンツアイテムインスタンスと関連する情報を収集してよい。この情報は、承認されたユーザを適切なコンテンツアイテムインスタンスへマッチングし、割り当てるために使用される。【選択図】なし【特許請求の範囲】
【請求項１】
電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
１つまたは複数のコンピューティング・デバイスと、
コンピュータ実行可能命令を格納している１つまたは複数のメモリと、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記コンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第１の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第１のサブセットおよび前記複数の仮想マシンの第２の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第２のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
前記第１の仮想マシン上で実行する第１のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第１のサブセットによって報告された占有されていないユーザ・セッションの数の第１のサブセットを受信するステップと、
前記第２の仮想マシン上で実行する第２のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第２のサブセットによって報告された占有されていないユーザ・セッションの数の第２のサブセットを受信するステップと、
占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
前記サービスによって、占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第１のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第１のコンテンツ・アイテム・インスタンスに割り当てるステップと、
前記第１のユーザ・セッションと前記第１のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
を含む動作を実行させる、
システム。
【請求項２】
前記動作は、前記コンテンツ・アイテムに関連付けられた１つまたは複数のユーザ選好を示す第２の情報を受信するステップをさらに含み、
前記第１のユーザ・セッションは、前記１つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第１のコンテンツ・アイテム・インスタンスに割り当てられる、
請求項１に記載のシステム。
【請求項３】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第１のコンテンツ・アイテム・インスタンスは、起動され、実行する、
請求項１に記載のシステム。
【請求項４】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第１のコンテンツ・アイテム・インスタンスは、実行のために起動される、
請求項１に記載のシステム。
【請求項５】
前記動作は、
格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる１つまたは複数のコンテンツ・アイテムを決定するステップと、
前記ユーザがアクセス権を与えられる前記１つまたは複数のコンテンツ・アイテムの少なくとも１つのインディケーションを提供するステップと、
をさらに含み、
前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
請求項１に記載のシステム。
【請求項６】
電子的に提示されたコンテンツ・アイテムの実行のための方法であって、
前記コンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第１の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第１のサブセットおよび前記複数の仮想マシンの第２の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第２のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
前記第１の仮想マシン上で実行する第１のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第１のサブセットによって報告された占有されていないユーザ・セッションの数の第１のサブセットを受信するステップと、
前記第２の仮想マシン上で実行する第２のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第２のサブセットによって報告された占有されていないユーザ・セッションの数の第２のサブセットを受信するステップと、
占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
前記サービスによって、占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第１のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第１のコンテンツ・アイテム・インスタンスに割り当てるステップと、
前記第１のユーザ・セッションと前記第１のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
を含む、
方法。
【請求項７】
前記方法は、前記コンテンツ・アイテムに関連付けられた１つまたは複数のユーザ選好を示す第２の情報を受信するステップをさらに含み、
前記第１のユーザ・セッションは、前記１つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第１のコンテンツ・アイテム・インスタンスに割り当てられる、
請求項６に記載の方法。
【請求項８】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第１のコンテンツ・アイテム・インスタンスは、起動され、実行する、
請求項６に記載の方法。
【請求項９】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第１のコンテンツ・アイテム・インスタンスは、実行のために起動される、
請求項６に記載の方法。
【請求項１０】
前記方法は、
格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる１つまたは複数のコンテンツ・アイテムを決定するステップと、
前記ユーザがアクセス権を与えられる前記１つまたは複数のコンテンツ・アイテムの少なくとも１つのインディケーションを提供するステップと、
をさらに含み、
前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
請求項６に記載の方法。
【請求項１１】
命令を格納している１つまたは複数の非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの計算ノード上での実行時に、前記少なくとも１つの計算ノードに、
電子的に提示されたコンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第１の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第１のサブセットおよび前記複数の仮想マシンの第２の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第２のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
前記第１の仮想マシン上で実行する第１のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第１のサブセットによって報告された占有されていないユーザ・セッションの数の第１のサブセットを受信するステップと、
前記第２の仮想マシン上で実行する第２のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第２のサブセットによって報告された占有されていないユーザ・セッションの数の第２のサブセットを受信するステップと、
占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
前記サービスによって、占有されていないユーザ・セッションの数の前記第１のサブセットおよび占有されていないユーザ・セッションの数の前記第２のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第１のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第１のコンテンツ・アイテム・インスタンスに割り当てるステップと、
前記第１のユーザ・セッションと前記第１のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
を含む動作を実行させる、
１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１２】
前記動作は、前記コンテンツ・アイテムに関連付けられた１つまたは複数のユーザ選好を示す第２の情報を受信するステップをさらに含み、
前記第１のユーザ・セッションは、前記１つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第１のコンテンツ・アイテム・インスタンスに割り当てられる、
請求項１１に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１３】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第１のコンテンツ・アイテム・インスタンスは、起動され、実行する、
請求項１１に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１４】
前記第１のユーザ・セッションが前記第１のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第１のコンテンツ・アイテム・インスタンスは、実行のために起動される、
請求項１１に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【請求項１５】
前記動作は、
格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる１つまたは複数のコンテンツ・アイテムを決定するステップと、
前記ユーザがアクセス権を与えられる前記１つまたは複数のコンテンツ・アイテムの少なくとも１つのインディケーションを提供するステップと、
をさらに含み、
前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
請求項１１に記載の１つまたは複数の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願の相互参照＞
本出願は、２０１５年３月１７日に出願された、米国特許出願第１４／６６０，８５０号、２０１５年３月１７日に出願された、米国特許出願第１４／６６０，８２１号、および２０１５年３月１７日に出願された、米国特許出願第１４／６６０，８６５号の利益を主張し、これらの開示は、それらの全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
近年、電子的に提示されたコンテンツの使用は、ますます一般的で、普及してきている。いくつかの実施例で、マルチプレイヤ・ゲームのような、特定の電子的に提示されたコンテンツは、多数の異なるユーザにより同時にアクセスされ、参加され得る。コンテンツ開発者は、それらのコンテンツをユーザへ容易に利用可能にするために、彼らがそうでなければ費やすことに興味がない、サーバ・デプロイメント、および管理技術の専門家になることを余儀なくされる場合が多い。特に、多くのコンテンツ開発者は、開発されているコンテンツの創造的な側面に集中することを好む。多くのコンテンツ開発者は、コンテンツを作成し、それを楽しいものにし、それを時間通りに出荷しようとする彼らの中心業務からの逸脱としてサーバ・デプロイメントおよび管理を見ている。サーバ・ベース・デプロイメントおよび管理システムに関する専門知識を得るために必要な時間に加えて、多くのコンテンツ開発者は、これらのシステムの他の機能によく不満を抱いている。例えば、多くのコンテンツ開発者は、それらのコンテンツの操作および使用に関する、このようなシステムから受信したフィードバック・レベルによく不満を抱いている。このようなフィードバックの可用性は、頻繁に制限され、得ることが困難である可能性がある。
【０００３】
以下の詳細な説明は、添付の図面と併せて読まれるときにより良く理解され得る。説明のために、図面に示される、本開示のさまざまな態様の例示的な実施形態があるが、本発明は、開示された特定の方法および手段に限定されない。
【図面の簡単な説明】
【０００４】
【図１】本開示に従い使用され得る、例示的なコンテンツ・デプロイメント、スケーリングおよびテレメトリ・システムを説明する図である。
【図２】本開示に従い使用され得る、例示的なコンテンツ・スケーリングおよび実行システムを示す図である。
【図３】本開示に従い使用され得る、例示的なテレメトリ情報ルーティングおよび処理システムを説明する図である。
【図４】本開示に従い使用され得る、例示的なコンテンツ・デプロイメントおよびスケーリング・プロセスを説明する図である。
【図５】本開示に従う、例示的なプロセス・コンテンツ実行を説明する図である。
【図６】本開示に従い使用され得る、例示的なテレメトリ情報ルーティング・プロセスを説明する図である。
【図７】本開示に従い使用され得る、例示的なコンピューティング・システムを説明する図である。
【発明を実施するための形態】
【０００５】
コンテンツ・デプロイメント、スケーリングおよびテレメトリのための技術を本明細書に記述する。いくつかの実施例で、コンテンツ開発者、または他の当事者は、さまざまなユーザへデプロイメントのために、ビデオ・ゲーム、および他のアプリケーションなどの、さまざまなタイプの電子的に提示されたコンテンツ・アイテムを提供できる。いくつかの事例で、テストされているコンテンツ、および／または完全に開発されたコンテンツなどの、異なるバージョンのコンテンツは、同時に、または異なる時間に提供され、利用可能にされ得る。いくつかの実施例で、コンテンツは、以下で詳細に各記述される、さまざまなバックエンドもしくは他のサービスと関連するおよび／または統合されるソフトウェア開発キット（ＳＤＫ）もしくは他の要素、またはコンテンツ・アイテム・インスタンス情報サービス、インスタンス・インタフェース、および／もしくはコンテンツ実行コンポーネントなどの、コンテンツ・アイテムのデプロイされたインスタンスをホストする、またはその他の方法でこれらとやり取りできるコンポーネントを使用して、作成され得る。これらの実施例で、ＳＤＫまたは他の要素は、例えば、マルチプレイヤ・ビデオ・ゲーミング、または他のマルチユーザ環境とコンテンツがより効率的にやり取りすることを可能にすることによるなどの、コンテンツの収集、構成、プロビジョニング、およびデプロイメントをより簡単で、迅速に達成することを可能にできる、開発者により作成されるコンテンツへ組み込まれた、コードおよび他の機能性を提供できる。例えば、コンテンツを作成するために使用されるＳＤＫは、１人以上のユーザについて新規のユーザ・セッションの構成、ならびに占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することについての情報の収集を支援することができる。
【０００６】
コンテンツ自体に加えて、また開発者および他の当事者らは、コンテンツを使用するために承認されるさまざまなユーザのアイデンティティ、およびいくつかの事例で、さまざまなユーザについてそれぞれのコンテンツ資格と関連する情報を提供できる。例えば、異なるビルドおよび／またはバージョンのコンテンツが利用可能である場合に、異なる承認されたユーザは、異なるビルドおよび／またはバージョンのために示され得る。コンテンツ・アイテムをデプロイメントのためにアクセス可能にすると、コンテンツ・アイテムの１つ以上のインスタンスは、仮想マシン・インスタンスにイメージとしてインストールされ得る。次にコンテンツ・アイテムの追加のインスタンスは、同一の仮想マシン・インスタンスで、および／または任意の数の追加の仮想マシン・インスタンスへイメージをコピーすることで、起動され得る。これらの、および他の技術により、コンテンツ・アイテムは、迅速で、効率的で、信頼性が高く、安全な方式で、多数のユーザに利用可能にされ得る。
【０００７】
いくつかの実施例で、デプロイされたコンテンツは、マルチプレイヤ・ビデオ・ゲーム、または他のマルチユーザ・アプリケーションで発生する可能性があるような、複数の異なるユーザがコンテンツを制御して、これとやり取りすることを可能にするように設計され得る。このようなマルチユーザ制御およびインタラクションを許可するために、開示された技術は、ユーザ・セッション、およびコンテンツ・アイテム・インスタンスのような概念を採用できる。いくつかの実施例で、コンテンツ・アイテムの１つ以上のインスタンスは、複数の同時に割り当てられたユーザ・セッションで実行するように構成可能であり得る。これは、例えば、複数のユーザが互いとプレイすること、もしくは互いと対戦すること、またはその他の方法で、実行するコンテンツ・アイテム・インスタンスから入力を提供して出力を受信するように共同することを可能にできる。各コンテンツ・アイテム・インスタンスは、いくつかの事例で、利用可能なユーザ・セッションの関連した数量を有することができる。いくつかの実施例で、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスと関連する情報を収集できる。この情報は、いくつかの事例で、適切なコンテンツ・アイテム・インスタンスへ承認されたユーザをマッチングして割り当てるために使用され得る。例えば、いくつかの事例で、承認されたユーザがシステムに接続するときに、ユーザは、好ましいプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、特定のユーザ・コンテンツ選好を示すことができる。この選好情報は、少なくとも１つの占有されていないユーザ・セッションを有する特定のコンテンツ・アイテム・インスタンスへユーザをマッチングするために使用され得る。いくつかの実施例で、このようなコンテンツ・アイテム・インスタンスが利用可能でない場合に、次に、ユーザの選好により良く応えることができる、追加のコンテンツ・アイテム・インスタンスを開始できる。
【０００８】
上記で記載されるように、いくつかの実施例で、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスと関連する情報を収集できる。いくつかの事例で、この情報を１人以上の利用可能な受信者へルーティングするルーティング機能へ、この情報を定期的に提供できる。いくつかの実施例で、利用可能な受信者は、コンテンツ・アイテム・インスタンス情報サービス、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービス、ならびにその他のものと関連することができる。コンテンツ・アイテム・インスタンス情報サービスは、例えば、コンテンツ・アイテム・インスタンスへユーザ・セッションのマッチングおよび割り当て、新規のコンテンツ・アイテム・インスタンスの起動、ならびにコンテンツ開発者、および他の当事者らへのコンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックについての情報を提供できる。コンテンツ・アイテム・フリート情報サービスは、例えば、開発者および他の当事者らへのコンテンツ・アイテム・フリート・レベル・フィードバックおよびメトリックを提供できる。コンテンツ・アイテム・フリートは、同一バージョンのコンテンツ・アイテムをすべて実行している、コンテンツ・アイテム・インスタンスのグルーピングなどの、同一の、または関連したコンテンツ・アイテムのインスタンスのグルーピングである。履歴情報サービスは、例えば、開発者および他の当事者らへ履歴フィードバックおよびメトリックを提供できる。いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービスについてのルーティング機能および／または処理機能は、ルーティングおよび／または処理のためのテレメトリ情報の受信などの、イベントに少なくとも部分的に基づくコードを実行する分散コンピューティング・ベース（例えば、クラウド・ベース）機能であり得る。一般的に言えば、このようなクラウド・ベース機能、およびこのような機能を提供するサービスは、イベントに応答してコードを実行し、計算リソースを自動的に管理することが可能である。加えて、このようなクラウド・ベース機能およびサービスは、コードを実行することを開始すること、またはわずかな時間にコンピューティング・リソースをトリガすることができ、これらのコンピューティング・リソースは、コードを実行すると削除できる。
【０００９】
本開示に従い使用され得る例示的なコンテンツ・デプロイメント、スケーリングおよびテレメトリ・システム１５０の図解を図１に示す。示されるように、コンテンツ開発者計算ノード１００は、例えば、コンテンツ開発者、または他の当事者らにより操作される、さまざまなインタフェース、コンソール、および／またはダッシュボードを含み得る。ユーザ計算ノード１１０は、例えば、インターネットのような１つ以上のワイド・エリア・ネットワーク（ＷＡＮ）、および／または１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）を含む、１つ以上のネットワークを使用して、アイデンティティおよび資格サービス１０５、コンテンツ・アイテム・インスタンス情報サービス１１５、および／またはテレメトリ・コンポーネント１２５と通信できる。理解されるように、単一の開発者計算ノード１００のみを図１で示すが、システム１５０は、任意の数の異なるコンテンツ・アイテムをデプロイする、任意の数の異なる開発者、および他の当事者らを含むことができる。いくつかの事例で、コンテンツ開発者計算ノード１００は、１つ以上の統合された開発環境（ＩＤＥ）アプリケーション、またはそれらの部分を実行し、コンテンツ開発を支援できる。一般的に、以下でより詳細に記述されるように、コンテンツ開発者計算ノード１００は、例えば、開発者がコンテンツ・アイテムを設計して開発し、デプロイメントのためにコンテンツ・アイテムへのアクセスを提供し、ユーザ・アイデンティティおよび／または資格情報を提供し、コンテンツ・アイテム・インスタンス、コンテンツ・アイテム・フリート、および履歴情報と関連するフィードバックおよびメトリックを監視して取得する、ならびに他の操作をすることを可能にできる。また、以下でより詳細に記述されるように、開発者が特定のコンテンツ・アイテムをデプロイする準備ができているときに、コンテンツにアクセスするための情報は、例えば、さまざまなユーザへアクセス可能にされる、コンテンツ・アイテムのインスタンスを実行するためにさまざまな操作を実行できる、コンテンツ実行コンポーネント１２０へ提供され得る。
【００１０】
いくつかの実施例で、コンテンツの開発および提供に加えて、開発者および他の当事者らは、また、さまざまなユーザについてのアイデンティティおよび／または資格情報を提供し、提供されたコンテンツにアクセスできる。特に、開発者計算ノード１００は、時々アイデンティティおよび資格サービス１０５とやり取りし、このアイデンティティおよび／または資格情報を提供できる。他の実施例で、情報は、他の当事者らによって、アイデンティティおよび資格サービス１０５へ提供され得る。いくつかの事例で、開発者または他の当事者らは、１つ以上のコンテンツ・アイテムにアクセスできる承認されたユーザのインディケーションを提供することで、アイデンティティ・プールを構成できる。いくつかの実施例で、アイデンティティおよび資格サービス１０５は、さまざまなユーザのアイデンティティを認証するために、ユーザ名、パスワード、および同様のものなどのアイデンティティ認証情報を生成する、または受信することができる。ユーザ・アイデンティティ、およびそれらと関連する認証情報は、例えば、アイデンティティ情報１０７内へ、格納され得る。また、いくつかの実施例で、開発者または他の当事者らは、各承認されたユーザがやり取りする権利を与えられるコンテンツ・アイテムを示すことができる、資格情報１０６を提供できる。いくつかの実施例で、特定のユーザのみがテスト・バージョン、もしくは完全に開発されたバージョン、ユーザが支払った、もしくはサブスクライブした特定のバージョン、または任意の他のタイプのコンテンツにアクセスすることを許可できる。
【００１１】
ユーザ計算ノード１１０は、特定のコンテンツ・アイテム・インスタンスとのやり取りについてのユーザ・セッションなどの、コンテンツへのアクセスを要求するユーザにより利用され得る。ユーザ計算ノード１１０は、例えば、インターネットのような１つ以上のワイド・エリア・ネットワーク（ＷＡＮ）、および／または１つ以上のローカル・エリア・ネットワーク（ＬＡＮ）を含む、１つ以上のネットワークを使用して、アイデンティティおよび資格サービス１０５、コンテンツ・アイテム・インスタンス情報サービス１１５、および／またはコンテンツ実行コンポーネント１２０と通信できる。理解されるように、単一のユーザ計算ノード１１０のみを図１で示すが、システム１５０は、同一の、または異なるコンテンツにアクセスする、任意の数の異なるユーザを含むことができる。いくつかの事例で、コンテンツへのアクセスを要求するユーザのために、システム１５０によりデプロイされるコンテンツにアクセスするためにユーザを承認するかどうかの判定を行うことができる。いくつかの実施例で、システム・インタフェース１１１は、アイデンティティ情報１０７に格納されるユーザについてのアイデンティティ認証情報へ提供されたユーザ・アイデンティティ認証情報をマッチングしようとすることができるアイデンティティおよび資格サービス１０５へ、ユーザについてのアイデンティティ認証情報を提供できる。マッチングを判定しない場合に、次にユーザは、例えば、任意のコンテンツへのアクセスを拒否される可能性がある、および／またはコンテンツへのアクセスについて登録する、支払う、および／またはサブスクライブするように促される可能性がある、および／またはこれらの操作を実行するためにさまざまなサービスへリダイレクトされる可能性がある。他方で、ユーザの提供されたアイデンティティ認証が格納されたアイデンティティ認証情報へマッチングされる場合、ユーザのアイデンティティは、認証されることができ、ユーザは、システム１５０とさらにやり取りし、コンテンツへのアクセスを要求することを許可され得る。
【００１２】
次にユーザ計算ノード１１０のコンテンツ・クライアント１１２は、コンテンツ・アイテム・インスタンス情報サービス１１５と通信し、コンテンツ・アイテム・インスタンス情報サービス１１５へユーザについての情報を提供できる。そして次に、コンテンツ・アイテム・インスタンス情報サービス１１５は、アイデンティティおよび資格サービス１０５と通信し、資格情報１０６に少なくとも部分的に基づき、ユーザがアクセスについて承認され、アクセス権を与えられるコンテンツを判定できる。以下でより詳細に記述されるように、次にユーザは、ユーザがアクセス権を与えられる、選択されたコンテンツ・アイテムへのアクセスを要求することができ、コンテンツ・アイテム・インスタンス情報サービス１１５は、コンテンツ実行コンポーネント１２０内で実行する選択されたコンテンツ・アイテムの特定のインスタンスへユーザについてのユーザ・セッションをマッチングし、割り当てることができる。この割り当て情報は、コンテンツ実行コンポーネント１２０へ転送され得、これは、コンテンツ・クライアント１１２と、その割り当てられマッチングされたコンテンツ・アイテム・インスタンスとの間の通信を確立できる。
【００１３】
コンテンツのスケーリングおよび実行に加えて、またコンテンツ実行コンポーネント１２０は、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することに係るさまざまなテレメトリ情報を収集できる。コンテンツ実行コンポーネント１２０は、以下でより詳細に記述されるように、テレメトリ・データをルーティングして処理できるテレメトリ・コンポーネント１２５へ、この収集されたテレメトリ情報を提供できる。例えば、テレメトリ・コンポーネントは、コンテンツ・アイテム・インスタンス情報サービス１１５へ、コンテンツ・アイテム・インスタンス情報を提供できる。このコンテンツ・アイテム・インスタンス情報は、例えば、コンテンツ・アイテム・インスタンスへのユーザ・セッションのマッチングおよび割り当て、新規のコンテンツ・アイテム・インスタンスの起動、ならびにコンテンツ開発者、および他の当事者らへのコンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックを有効にすることができる。コンテンツ・アイテム・インスタンス情報サービス１１５に加えて、またテレメトリ情報は、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービスのような、他のサービスへ提供され得る。これらの、および他のテレメトリ・データ・サービスは、図３を参照して以下でより詳細に記述される。
【００１４】
図２は、本開示に従い使用され得る、例示的なコンテンツ・スケーリングおよび実行システムを示す図である。図２で示されるように、コンテンツ実行コンポーネント１２０（図１でも示される）は、デプロイされたコンテンツをスケーリングするためのさまざまな操作を実行できる、スケーリング・コンポーネント２３０を含む。特に、コンテンツ・アイテムがシステム１５０を使用してデプロイメントのための準備ができているときに、コンテンツ・アイテムがデプロイメントのための準備ができていることを示し、位置および／またはアドレス情報のような、コンテンツにアクセスするための情報を提供するメッセージを、開発者計算ノード１００を介して送信できる。いくつかの実施例で、また開発者は、コンテンツ・アイテム・フリートのための名前、開発段階、およびコンテンツ・アイテムの説明などの追加情報を提供できる。アクセス情報、およびいくつかの事例で、追加情報は、仮想マシン・インスタンス上にイメージとしてコンテンツ・アイテムの１つ以上のインスタンスをインストールする命令を発行できる、コンテンツ・スケーリング・コンポーネント２３０へ提供できる。以下でより詳細に記述されるように、次にコンテンツ・アイテムの追加のインスタンスは、同一の仮想マシン・インスタンスで、および／または任意の数の追加の仮想マシン・インスタンスにイメージをコピーすることで起動され得る。
【００１５】
デプロイされたコンテンツ・アイテムについてのコンテンツ・アイテム・インスタンスのグルーピングは、コンテンツ・アイテム・フリートと言われる。図２で、コンテンツ実行コンポーネント１２０は、例示的なコンテンツ・アイテム・フリート２１０を実行する。理解されるように、単一のコンテンツ・アイテム・フリート２１０のみを図２で示すが、コンテンツ実行コンポーネント１２０は、同時に、または異なる時間に、任意の数の異なるコンテンツ・アイテム・フリートを実行できる。図２の特定の実施例で、コンテンツ・アイテム・フリート２１０は、３つのコンテンツ・アイテム・インスタンスを各実行する、２つの仮想マシン・インスタンス２２０Ａ、および２２０Ｎを含む。特に、仮想マシン・インスタンス２２０Ａは、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎを実行し、仮想マシン・インスタンス２２０Ｎは、コンテンツ・アイテム・インスタンス２２１Ａ〜Ｎを実行する。しかしながら、開示された技術に従いコンテンツ・アイテム・フリートは、任意の数の異なるコンテンツ・アイテム・インスタンスを各実行する任意の数の仮想マシン・インスタンスを含むことができることに留意する。いくつかの実施例で、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎのうちの１つ以上、ならびにいくつかの事例で、すべてのコンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎは、複数の同時に割り当てられたユーザ・セッションで実行するように構成可能であり得る。これは、例えば、マルチプレイヤ・ビデオ・ゲーム、または他のマルチユーザ・アプリケーションで起こり得るような、複数のユーザが互いにプレイする、もしくは互いに対戦すること、またはその他の方法で単一のコンテンツ・アイテム・インスタンス内で共同することを可能にできる。
【００１６】
いくつかの実施例で、各コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎは、その割り当てられたユーザ・セッションから、制御入力（例えば、キャラクタの動き、武器の発射、メニューの選択など）のような、入力を受信できる。また、いくつかの実施例で、次に各コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎは、割り当てられたユーザ・セッションについてのユーザ計算ノードへ、ステート・データ更新、イベント・データ更新、および他の情報などの、コンテンツ情報を送信できる。ユーザ計算ノードは、このデータを使用して、それらのそれぞれのコンテンツ計算ノードにコンテンツをレンダリングし、提示できる。いくつかの実施例で、各ユーザ・ノードは、コンテンツ・アイテムと関連するグラフィックス・データのレンダリングのための１つ以上のグラフィックス・プロセッシング・ユニット（ＧＰＵ）を含むことができる。
【００１７】
いくつかの他の実施例で、コンテンツは、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎにより生成されるおよび／または維持されるコンテンツ情報に基づき、コンテンツ実行コンポーネント１２０によりレンダリングされ得る。これらの実施例で、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎは、いくつかの事例で、それぞれ、１つ以上のＧＰＵへのアクセスを有することができる。次にレンダリングされたコンテンツは、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎにより、割り当てられたユーザ・セッションについてのユーザ計算ノードへ送信され得る。
【００１８】
図２で示されるように、各コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎは、それぞれインスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎを含む。いくつかの実施例で、各インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎは、ソフトウェア開発キット（ＳＤＫ）を使用することと関連し、および／またはこれを使用して実装されることができ、コンテンツ・アイテム・インスタンスの構成、コンテンツ・アイテム・インスタンスでのユーザ・セッションの開始、およびテレメトリ情報などの、コンテンツ・アイテム・インスタンスから情報の収集を有効にすることを支援できる。例えば、いくつかの事例で、１つ以上のＳＤＫのような、インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎと関連するさまざまな命令は、開発者へ公開される、および／または提供され得る。これらの命令は、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎを有効にすることを支援し、上記で説明されるタスク、および場合により他のタスクを実行できる。開発者は、デプロイメントのためにアクセス可能にされるコンテンツ・アイテムとこれらの命令を、次に、含む、組み込む、またはその他の方法で関連付けることができる。インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎにより提供されたテレメトリ情報は、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することに係る情報を含むことができる。
【００１９】
また図２で示されるように、インスタンス・インタフェース２０２Ａ〜Ｎは、仮想マシン・インスタンス２２０Ａのためのプロキシ・コンポーネント２０３と通信することができ、インスタンス・インタフェース２２２Ａ〜Ｎは、仮想マシン・インスタンス２２０Ｎのためのプロキシ・コンポーネント２２３と通信できる。プロキシ・コンポーネント２０３および２２３は、一般に、スケーリング・コンポーネント２３０、およびテレメトリ・ランディング３０１のように、コンテンツ・アイテム２０２Ａ〜Ｎおよび２２２Ａ〜Ｎと仮想マシン・インスタンス２２０Ａ〜Ｎの外部にあるコンポーネントとの間の情報、およびコマンドの交換を許可できる。特に、いくつかの実施例で、プロキシ・コンポーネント２０３および２２３は、コンテンツ・アイテム・インスタンスおよびコマンドを起動して、ユーザ・セッションを特定のコンテンツ・アイテム・インスタンスへ追加するコマンドなどの、スケーリング・コンポーネント２３０からのコマンドを受信できる。いくつかの実施例で、またプロキシ・コンポーネント２０３および２２３は、コンテンツ・アイテム・インスタンスを実行することについて、スケーリング・コンポーネント２３０、および／またはテレメトリ・ランディング３０１へ情報を提供できる。プロキシ・コンポーネント２０３および２２３により提供された情報は、例えば、上記で説明されるテレメトリ情報、または他の関連情報のうちのいずれかなどの、インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎにより収集された情報のうちのいずれかを含むことができる。プロキシ・コンポーネント２０３および２２３は、定期的な繰り返し間隔（例えば、毎分、または５分毎）で、特定のイベントもしくは条件に応答して、連続的なもしくは断続的なストリームで、またはこれらの任意の組み合わせ、もしくは他の技術の任意の組み合わせを使用してなどの、任意の所望の間隔でコンテンツ・アイテム・インスタンス情報を提供できる。
【００２０】
いくつかの実施例で、スケーリング・コンポーネント２３０は、例えば、上記で説明されるようなプロキシ・コンポーネント２０３および２２３により提供される情報に基づき、コンテンツ・アイテム・フリート２１０を監視できる。いくつかの事例で、スケーリング・コンポーネント２３０は、この情報を使用して、追加の仮想マシン・インスタンスおよび／もしくはコンテンツ・アイテム・インスタンスをコンテンツ・アイテム・フリート２１０へ割り当てることで、ならびに／またはコンテンツ・アイテム・フリート２１０から既存の仮想マシン・インスタンスおよび／もしくはコンテンツ・アイテム・インスタンスの割り当てを解除することで、コンテンツ・アイテム・フリート２１０を自動的にスケーリングすることができる。いくつかの実施例で、特定の構成可能な条件は、スケーリング・コンポーネント２３０に追加の仮想マシン・インスタンスおよび／またはコンテンツ・アイテム・インスタンスをコンテンツ・アイテム・フリートへ割り当てさせることができる。これらの条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および／または平均数が特定の数量を満たしている、または下回っていると判定すること、フリート内の１つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または下回っていると判定すること、および／または他の条件を含むことができる。また、いくつかの実施例で、スケーリング・コンポーネント２３０は、特定のコンテンツ属性（例えば、モード、仮想位置、キャラクタ、武器、プロット・ライン、ストーリー・アークなど）を含むコンテンツ・アイテム・インスタンスのサブセットなどの、コンテンツ・アイテム・フリートの特定のサブセットが上記で説明された例示的な割り当て条件、または他の条件のうちのいずれかを満たす判定に基づきコンテンツ・アイテム・フリートへ、追加の仮想マシン・インスタンス、および／またはコンテンツ・アイテム・インスタンスを割り当てることができる。
【００２１】
また、いくつかの実施例で、特定の構成可能な条件は、スケーリング・コンポーネント２３０にコンテンツ・アイテム・フリートから仮想マシン・インスタンス、および／またはコンテンツ・アイテム・インスタンスの割り当てを解除させることができる。これらの条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および／または平均数が特定の数量を満たしている、または超えていると判定すること、フリート内の１つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または超えていると判定すること、および／または他の条件を含むことができる。また、いくつかの実施例で、スケーリング・コンポーネント２３０は、特定のコンテンツ属性（例えば、モード、仮想位置、キャラクタ、武器、プロット・ライン、ストーリー・アークなど）を含むコンテンツ・アイテム・インスタンスのサブセットのような、コンテンツ・アイテム・フリートの特定のサブセットが上記で説明される例示的な割り当て解除条件、または他の条件のうちのいずれかを満たす判定に基づき、コンテンツ・アイテム・フリートから仮想マシン・インスタンス、および／またはコンテンツ・アイテム・インスタンスの割り当てを解除できる。次に、割り当て解除された仮想マシンを最終的に終了する、および／または別の目的のために再利用できる。いくつかの事例で、割り当て解除条件が発生していると判定すると、特定の仮想マシン・インスタンスを直ちに終了する、および／または別の目的のために再利用することが有益ではない可能性があることに留意する。これは、割り当て解除のために選択された仮想マシン・インスタンスが割り当てられたユーザ・セッションでコンテンツ・アイテム・インスタンスを依然として実行していることができるためである。いくつかの実施例で、割り当て解除のために選択される仮想マシン・インスタンスでコンテンツ・アイテム・インスタンスへ追加のユーザ・セッションを割り当てることを停止する判定を行うことができる。次に、現在存在しているユーザ・セッションが期限切れであると、割り当て解除された仮想マシン・インスタンスを終了する、および／または別の目的のために再利用できる。
【００２２】
上記で記載されるように、スケーリング・コンポーネント２３０へ情報を提供することに加えて、プロキシ・コンポーネント２０３および２２３は、テレメトリ・ランディング３０１へ情報を提供できる。この情報は、さまざまなテレメトリ・コンポーネントによりルーティングされ、処理されるが、これは、ここで詳細に記述される。特に、図３は、本開示に従い使用され得る例示的なテレメトリ情報ルーティングおよび処理システムを説明する図である。図３で示されるように、コンテンツ実行コンポーネント１２０（例えば、図２で示されるような、プロキシ・コンポーネント２０３および２２３を含む）により提供された情報は、テレメトリ・コンポーネント１２５（図１でも示される）のテレメトリ・ランディング３０１へ配信され得る。テレメトリ・ランディング３０１へ配信されると、テレメトリ・ルーティング機能３０２により、テレメトリ情報にアクセスでき、テレメトリ・ルーティング機能３０２は、提供された情報を一般的に検証し、さまざまな要因に基づき、処理機能３０３Ａ〜Ｄのような、１人以上の受信者へ提供された情報をルーティングできる。特に、インスタンス・レベル処理機能３０３Ａは、コンテンツ・アイテム・インスタンス情報サービス１１５（図１および２でも示される）についての情報を受信して処理する。フリート・レベル情報処理機能３０３Ｂは、コンテンツ・アイテム・フリート情報サービス３０４についての情報を受信して処理する。履歴情報処理機能３０３Ｃは、履歴情報サービス３０５についての情報を受信して処理する。加えて、テレメトリ・ルーティング機能３０２は、任意の数の追加のサービス３０６についての情報を受信して処理できる任意の数の追加の処理機能３０３Ｄへ、情報をルーティングできる。
【００２３】
いくつかの実施例で、テレメトリ・ランディング３０１へテレメトリ情報を書き込むときに、プロキシ・コンポーネント２０３および２２３は、１セットの規約により、特定のキー、または他の識別情報でこの情報をタギングする、またはその他の方法で識別できる。これらの規約は、テレメトリ・ルーティング機能３０２を支援し、適切な受信者へテレメトリ情報を迅速で、効率的にルーティングできる。例えば、いくつかの事例で、テレメトリ情報は、以下のフォーマット、フリート識別子／インスタンス識別子／ルート識別子／タイムスタンプ／グローバル一意識別子（ＧＵＩＤ）を使用して識別され得る。フリート識別子は、情報が関連する特定のコンテンツ・アイテム・フリートについての識別子であり得る。インスタンス識別子は、情報が関連する特定のコンテンツ・アイテム・インスタンスについての識別子であり得る。ルート識別子は、情報を送信する１人以上の受信者（例えば、任意の、またはすべての処理機能３０３Ａ〜Ｄ）を示す識別子であり得る。タイムスタンプは、情報を収集する時間のような、情報と関連するタイムスタンプであり得る。いくつかの事例で、この識別情報は、適切な受信者へそれぞれのテレメトリ情報をルーティングするテレメトリ・ルーティング機能３０２のために要求されるすべてであり得る。
【００２４】
いくつかの実施例で、テレメトリ・ルーティング機能３０２、および／または処理機能３０３Ａ〜Ｄのいずれかは、ルーティングおよび／または処理のためのテレメトリ情報の受信などの、イベントに少なくとも部分的に基づきコードを実行する、分散コンピューティング・ベース（例えば、クラウド・ベース）機能であり得る。例えば、いくつかの事例で、テレメトリ・ルーティング機能３０２は、テレメトリ・ランディング３０１でテレメトリ情報の受信を検出できる、および／またはこの受信を通知され得る。これに応答して、テレメトリ・ルーティング機能３０２は、例えば、上記で記述されるような識別情報に基づき、テレメトリ情報をルーティングするためのコードの実行を自動的に開始することができる。同様に、次に、処理機能３０３Ａ〜Ｄは、それへルーティングされているテレメトリ情報を検出でき、および／またはこの情報を通知されることができ、次に、受信した情報を編成して格納し、例えば、任意の適切な警報または通知を生成することなどにより、受信した情報を処理するためにコードの実行を自動的に開始できる。いくつかの実施例で、イベントに少なくとも部分的に基づきコードを実行する分散コンピューティング・ベース（例えば、クラウド・ベース）機能を使用すするテレメトリ・ルーティング機能３０２、および／または処理機能３０３Ａ〜Ｄの実装は、例えば、新規のテレメトリ情報がルーティングおよび／または処理のために利用不可能であるときでさえ、一定の実行を維持したルーティングおよび／または処理サービスのために要求される可能性があるコンピューティング・リソースおよびコストの量を削減することにより、有益であり得る。
【００２５】
コンテンツ・アイテム・インスタンス情報サービス１１５は、例えば、図２のコンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎを含む、コンテンツ実行コンポーネント１２０により実行された個々のコンテンツ・アイテム・インスタンスに関連する情報を一般的に受信して提供できる。この情報は、例えば、コンテンツ・アイテム・インスタンスを各実行することについて占有されたユーザ・セッション数、コンテンツ・アイテム・インスタンスを各実行することについて占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間情報、コンテンツ・アイテム・インスタンスを各実行する際のメモリ使用量、および同様のものを含むことができる。コンテンツ・アイテム・インスタンス情報サービス１１５は、この情報を使用して、例えば、特定のコンテンツ・アイテム・インスタンスへのユーザ・セッションのマッチングおよび割り当てを支援できる。特に、図１に戻り参照すると、ユーザ計算ノード１１０のコンテンツ・クライアント１１２がコンテンツ・アイテム・インスタンス情報サービス１１５と通信し、利用可能なコンテンツについての情報を要求すること、および利用可能なコンテンツへのアクセスを要求できることがわかる。図１でも示されるように、コンテンツ・アイテム・インスタンス情報サービス１１５は、アイデンティティおよび資格サービス１０５と通信し、資格情報１０６に少なくとも部分的に基づき、ユーザがアクセス権を与えられるコンテンツ・アイテムを判定できる。資格情報１０６が、さまざまな異なるレベルの粒度でユーザ資格を示すことができることに留意する。例えば、いくつかの事例で、資格情報１０６は、ユーザがシステム１５０により実行されるコンテンツへのアクセスを一般的に許可されるかどうかを示すことができる。他の事例で、資格情報１０６は、より細かい粒度レベルで提供されることができ、特定のタイトル、特定のバージョン、特定のストーリー・アーク、またはプロット・ライン、特定の仮想位置、特定のモード、特定のキャラクタ、特定の武器、および同様のものなどの、ユーザがアクセス権を与えられる特定のコンテンツを示すことができる。
【００２６】
いくつかの実施例で、コンテンツ・クライアント１１２は、すべての利用可能なコンテンツ・アイテムのリスト、または特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの特定のコンテンツ属性を有するコンテンツ・アイテムのような、ユーザがアクセス権を与えられる利用可能なコンテンツ・アイテムについての情報を、コンテンツ・アイテム・インスタンス情報サービス１１５が提供することを要求できる。この情報を受信すると、いくつかの実施例で、ユーザは、特定のコンテンツ・アイテムを選択し、コンテンツ・クライアント１１２を介して選択されたコンテンツ・アイテムへアクセスする要求を提示できる。加えて、コンテンツ・クライアント１１２は、また、特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、ユーザにより所望の特定のコンテンツ選好についての情報を、コンテンツ・アイテム・インスタンス情報サービス１１５へ提供できる。次に、コンテンツ・アイテム・インスタンス情報サービス１１５は、ユーザの要求、ユーザの選好、およびテレメトリ・コンポーネント１２５から受信したテレメトリ情報に少なくとも部分的に基づき、ユーザの選択されたコンテンツ・アイテムの特定のインスタンスへユーザの要求をマッチングすることができる。
【００２７】
いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、ユーザの要求した選好のコンテンツ属性をマッチングする、または少なくとも部分的にマッチングするコンテンツ属性を有する選択されたコンテンツ・アイテムの１つ以上のインスタンスを識別しようとすることができる。コンテンツ・アイテム・インスタンス情報サービス１１５は、さまざまな異なる技術を介してコンテンツ・アイテム・インスタンスを実行するためにコンテンツ属性情報を取得できる。いくつかの実施例で、コンテンツ属性情報は、テレメトリ・コンポーネント１２５から利用可能にされるテレメトリ情報の部分として収集され提供され得る、図２のスケーリング・コンポーネント２３０から取得され得る、またはその他の方法で、コンテンツ・アイテム・インスタンス情報サービス１１５へ利用可能にされ得る。ユーザの選好に少なくとも部分的にマッチングするコンテンツ属性で、１つ以上のコンテンツ・アイテム・インスタンスを識別すると、次にコンテンツ・アイテム情報サービスは、テレメトリ・コンポーネント１２５からのテレメトリ情報に少なくとも部分的に基づき、識別されたコンテンツ・アイテム・インスタンスのうちのいずれかについて任意の占有されていないユーザ・セッションがあるかどうかを判定できる。いくつかの実施例で、次に、コンテンツ・アイテム・インスタンス情報サービス１１５は、少なくとも１つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスのうちの１つへユーザを割り当てることができる。いくつかの実施例で、ユーザは、ユーザの選好に最も良くマッチングするコンテンツ属性を有する少なくとも１つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスへ割り当てられ得る。他の実施例で、ユーザは、例えば、ユーザの選好、占有されていないユーザ・セッション数、および同様のものを含む、要因の組み合わせに基づきコンテンツ・アイテム・インスタンスへ割り当てられ得る。例えば、ユーザが参加するコンテンツ・アイテム・インスタンスについて５つの異なるコンテンツ属性選好を指定するシナリオを考察する。ここで、第一コンテンツ・アイテム・インスタンスがすべての５つのユーザの選好にマッチングするが、１つの占有されていないユーザ・セッションのみを有し、第二コンテンツ・アイテム・インスタンスが５つのユーザの選好からの４つにマッチングするが、１０個の占有されていないユーザ・セッションを有すると想定する。このシナリオで、選好が第一コンテンツ・アイテム・インスタンスへより一層強く相関され得る、他のユーザに利用可能な第一コンテンツ・アイテム・インスタンスの単一の残りの占有されていないユーザ・セッションを維持するために、第二コンテンツ・アイテム・インスタンスへユーザを割り当てることは、有益であり得る。また、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、ユーザが割り当てについて識別されたコンテンツ・アイテム・インスタンスのうちの１つを選択することを可能にするため、またはその他の方法でこのような選択を行うための入力を提供することを可能にするために、コンテンツ・クライアント１１２へユーザの選好を少なくとも部分的にマッチングする、少なくとも１つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスについての情報を提供できる。
【００２８】
いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、既存のすでに起動され実行しているコンテンツ・アイテム・インスタンスへユーザをマッチングして割り当てる代わりに、スケーリング・コンポーネント２３０がユーザを割り当てる追加のコンテンツ・アイテム・インスタンスを起動させることを要求できる。これは、例えば、フリート内の既存のコンテンツ・アイテム・インスタンスが任意の残りの占有されていないユーザ・セッションを全く有さないときに、および／またはフリート内の既存のコンテンツ・アイテム・インスタンスがユーザの要求したコンテンツ属性選好を十分にマッチングすると判定されるコンテンツ属性を全く有さないときに、起こり得る。
【００２９】
特定のコンテンツ・アイテム・インスタンスへユーザをマッチングし、割り当てると、コンテンツ・アイテム・インスタンス情報サービス１１５は、スケーリング・コンポーネント２３０へ割り当てられたコンテンツ・アイテム・インスタンスのインディケーション（または新規のコンテンツ・アイテム・インスタンスを起動させる命令）を提供できる。スケーリング・コンポーネント２３０は、例えば、ユーザ計算ノード１１０でコンテンツ・クライアント１１２と通信するように割り当てられたコンテンツ・アイテム・インスタンスに指令することで、次に、ユーザについてのユーザ・セッション、および割り当てられたコンテンツ・アイテム・インスタンス間の通信を確立できる。上記で記載されるように、いくつかの実施例で、これらの通信は、割り当てられたコンテンツ・アイテム・インスタンスにより、ユーザ・セッションへ対応するコンテンツ・クライアント１１２へコンテンツ・アイテム・インスタンスと関連する、ステート情報、イベント情報、レンダリングされたグラフィックスおよびオーディオ、および／または他の情報を送信することを備え得る。また、いくつかの実施例で、これらの通信は、コンテンツ・クライアント１１２により、割り当てられたコンテンツ・アイテム・インスタンスへ制御入力（例えば、キャラクタの動き、武器の発射、メニュー選択など）のような、入力を送信することを備え得る。
【００３０】
このようにして、上記で記述されるように、コンテンツ・アイテム・インスタンス情報サービス１１５は、テレメトリ・コンポーネント１２５により提供されるコンテンツ・アイテム・インスタンス・レベル・テレメトリ情報を使用し、コンテンツ・アイテム・インスタンスへユーザ・セッションをマッチングして割り当てるプロセスを支援できる。これらのマッチング技術に加えて、コンテンツ・アイテム・インスタンス情報サービス１１５へ提供されたコンテンツ・アイテム・インスタンス・レベル・テレメトリ情報を使用して、例えば、コンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックを開発者、およびできる限り他の当事者らへ提供することもできる。特に、図１および図３の両方で示されるように、開発者計算ノード１００は、コンテンツ・アイテム・インスタンス情報サービス１１５にアクセスし、コンテンツ・アイテム・インスタンスを各実行するために占有されたユーザ・セッション数、コンテンツ・アイテム・インスタンスを各実行するために占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間情報、コンテンツ・アイテム・インスタンスを各実行する際のメモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンス・レベル情報を要求できる。
【００３１】
図３に戻り参照すると、コンテンツ・アイテム・インスタンス情報サービス１１５に加えて、テレメトリ・ルーティング機能３０２は、処理機能３０３Ｂ〜Ｄのそれぞれを介して、コンテンツ・アイテム・フリート情報サービス３０４、履歴情報サービス３０５、および他の追加のサービス３０６へ、テレメトリ情報をルーティングできる。コンテンツ・アイテム・フリート情報サービス３０４は、一般に、開発者、および／または他の当事者らへコンテンツ・アイテム・フリート・レベル・テレメトリ情報を、受信して提供できる。コンテンツ・アイテム・フリート・レベル情報は、フリート内で占有されたユーザ・セッション、フリート内で占有されていないユーザ・セッション、フリートについてのインスタンス持続時間情報、フリートによるメモリ使用量、フリート内で実行するインスタンス数、インスタンス終了情報、および同様のものに関連する情報を含むことができる。占有されたユーザ・セッションについて、フリート・レベル情報は、例えば、すべてのフリート・インスタンスについて占有されたユーザ・セッションの総数、すべてのフリート・インスタンスについて占有されたユーザ・セッションの平均数、最少の占有されたセッションに関するフリート・インスタンス内で占有されたセッション数、最多の占有されたセッションに関するフリート・インスタンス内で占有されたセッション数、および同様のものを含むことができる。占有されていないユーザ・セッションについて、フリート・レベル情報は、例えば、すべてのフリート・インスタンスについて占有されていないユーザ・セッションの総数、すべてのフリート・インスタンスについて占有されていないユーザ・セッションの平均数、最少の占有されていないセッションに関するフリート・インスタンス内の占有されていないセッション数、最多の占有されていないセッションに関するフリート・インスタンス内の占有されていないセッション数、および同様のものを含むことができる。インスタンス持続時間情報について、フリート・レベル情報は、例えば、特定の期間内で終了したインスタンス数と同様に、特定の期間内で終了したフリート・インスタンスについての、合計の、平均の、最長の、および最短の持続時間を有することができる。メモリ使用量情報について、フリート・レベル情報は、例えば、フリート・インスタンスについての、合計の、平均の、最多の、および最少のメモリ使用量を有することができる。
【００３２】
いくつかの実施例で、コンテンツ・アイテム・フリート情報サービス３０４、および／またはコンテンツ・アイテム・インスタンス情報サービス１１５は、開発者、または他の当事者らがコンテンツ・アイテム・フリートおよび／またはインスタンスと関連する特定のイベントまたは条件を通知され得るように、警報および／または他の通知を彼らが設定することを可能にできる。警報をトリガすることができる、いくつかの例示的な条件は、指定されたレベルを満たす、超える、または下回る占有されたフリート・セッションの総数、占有されたセッションの指定された数より少ない１つ以上のフリート・インスタンス、指定されたレベルを満たす、超える、または下回る占有されていないフリート・セッションの総数、指定された平均持続時間より短いフリート・インスタンス、指定された平均または最多メモリ使用量より多いフリート・インスタンス、および他の条件である。
【００３３】
履歴情報サービス３０５は、一般に、コンテンツ・アイテム・フリート、および／またはコンテンツ・アイテム・インスタンスに関連する、履歴情報を受信し、維持し、提供できる。いくつかの実施例で、履歴情報サービスは、先に終了したコンテンツ・アイテム・フリート、および／またはコンテンツ・アイテム・インスタンスについての履歴情報、および／または全体的に、または部分的に実行され続けることができる、コンテンツ・アイテム・フリート、および／またはコンテンツ・アイテム・インスタンスについての情報を含むことができる。履歴情報サービス３０５は、例えば、任意の、またはすべてのインスタンス・レベル情報、および／または上記で詳細に記載されるフリート・レベル情報、および／または任意の他の関連する履歴情報を提供できる。いくつかの実施例で、履歴情報は、過去６０日もしくは９０日、または任意の他の関連する期間などの、特定の指定可能な履歴期間の情報を、開発者および／または他の当事者らが要求することを可能にできる。
【００３４】
開示された技術のさまざまな態様を実行するための、いくつかの例示的なプロセスが、ここで詳細に記述される。特に、図４は、本開示に従い使用され得る、例示的なコンテンツ・デプロイメント、およびスケーリング・プロセスを説明する図である。上記で記載されるように、コンテンツは、コンテンツ・アイテム・フリートと本明細書で言われる、コンテンツ・アイテムの複数のインスタンスを使用してデプロイされ得る。いくつかの実施例で、フリート内のコンテンツ・アイテム・インスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり得る。いくつかの実施例で、フリート内のすべてのコンテンツ・アイテム・インスタンスは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり得る。また、いくつかの実施例で、フリート内の少なくとも２つのコンテンツ・アイテム・インスタンスは、単一の仮想マシン・インスタンスで実行できる。図４で示されるように、操作４１０で、コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信できる。上記で記載されるように、コンテンツ・アイテムは、開発されている、および／またはテストされている、ビデオ・ゲームのようなコンテンツ、または完全に開発され、テストされ、販売されている、もしくはその他の方法で顧客、もしくは他のユーザへデプロイされているコンテンツを含むことができる。また、上記で記載されるように、いくつかの実施例で、コンテンツは、さまざまなバックエンドもしくは他のサービスと関連する、および／または統合されるＳＤＫもしくは他の要素、または、コンテンツ・アイテム・インスタンス情報サービス１１５、インスタンス・インタフェース２２０Ａ〜Ｎおよび２２２Ａ〜Ｎ、および／または図２のコンテンツ実行コンポーネント１２０などの、コンテンツ・アイテムのデプロイされたインスタンスをホストする、もしくはその他の方法でこれらとやり取りできるコンポーネントを使用して、作成され得る。これらの実施例で、ＳＤＫまたは他の要素は、例えば、コンテンツがマルチプレイヤ・ビデオ・ゲーミング、または他のマルチユーザ環境とより効率的にやり取りすることを可能にすることなどのように、例えば、コンテンツの摂取、構成、プロビジョニング、およびデプロイメントがより簡単で、迅速に達成されることを可能にできる、開発者により作成されたコンテンツへ組み込まれたコードおよび他の機能性を提供できる。例えば、コンテンツを作成するために使用されるＳＤＫは、１人以上のユーザについて新規のユーザ・セッションの構成、ならびに、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することについての情報の収集を支援することができる。インディケーションは、例えば、図１の開発者計算ノード１００などのような、例えば、開発者計算ノードから図１のコンテンツ実行コンポーネント１２０などのような、コンテンツ実行コンポーネントにより受信され得る。操作４１２で、コンテンツ・アイテム情報を受信する。このようなコンテンツ・アイテムは、コンテンツ・アイテム・インスタンス情報サービス１１５、および／または、例えば、コンテンツ実行コンポーネント１２０と関連するＳＤＫで作成されているビデオ・ゲームと関連するバイナリ・ファイルなどの、ファイル、バイナリ、またはコードを含み得る。操作４１２で受信した情報は、例えば、コンテンツ・アイテムと関連する他のデータのコードを格納する位置などのような、コンテンツにアクセスするための情報、またはコンテンツ・アイテムにアクセスするための他の情報を含み得る。操作４１２で受信した情報は、例えば、コンテンツ・アイテムのインスタンスのフリートについての名前、コンテンツ・アイテムについての開発段階、コンテンツ・アイテムの説明、および他の情報を含むこともできる。操作４１４で、コンテンツ・アイテムの少なくとも１つのインスタンスを仮想マシン・インスタンスにイメージとしてインストールする。操作４１４は、例えば、コンテンツ・アイテムが開発のための準備ができているインディケーション、および任意の関連したコンテンツ・アイテム情報に基づき実行され得る。いくつかの実施例で、図２のスケーリング・コンポーネント２３０は、コンテンツ・アイテム・コードについての位置情報を受信し、コンテンツ・アイテム・コードについての命令を発行し、特定の仮想マシンにイメージとして、受信した位置情報で識別された位置からインストールされ得る。
【００３５】
操作４１６で、ユーザについてのアイデンティティ情報を受信する。図１のアイデンティティ情報１０７のような、ユーザ・アイデンティティ情報を開発者から、または他の当事者らから受信できる。上記で記載されるように、ユーザについてのアイデンティティ情報は、例えば、ユーザ名、およびパスワードのような、承認されたユーザのアイデンティティを認証するためのアイデンティティ認証情報を含み得る。理解されるように、ユーザ・アイデンティティ情報は、任意の時間に受信され、特定のコンテンツ・アイテムを実際にデプロイする前、または後のいずれか一方で、必ずしも受信される必要がなくてよい。操作４１８で、資格情報を受信する。図１の資格情報１０６のような、資格情報を開発者から、または他の当事者らから受信できる。上記で記載されるように、資格情報は、例えば、さまざまな承認されたユーザのために、承認されたユーザがアクセスする権利を与えられるコンテンツ・アイテムのインディケーションを含み得る。また上記で記載されるように、資格情報は、特定のタイトル、特定のバージョン、特定のストーリー・アーク、またはプロット・ライン、特定の仮想位置、特定のモード、特定のキャラクタ、特定の武器、および同様のものなどの、さまざまなレベルの粒度で資格を示すことができる。理解されるように、資格情報は、任意の時間に受信され、特定のコンテンツ・アイテムを実際にデプロイする前、または後のいずれか一方で、必ずしも受信される必要がなくてよい。
【００３６】
操作４２０で、承認され、コンテンツ・アイテムにアクセスする権利を与えられたユーザから要求を受信する。ユーザを認証し、ユーザのそれぞれの資格を判定して実施するためのいくつかの例示的な技術は、上記で詳細に記述されるため、ここで繰り返さない。操作４２２で、例えば、操作４２０で受信したユーザ要求に基づき、コンテンツ・アイテムについてのコンテンツ・アイテム・フリートをスケーリングする。コンテンツ・アイテム・フリートのスケーリングは、例えば、図２のスケーリング・コンポーネント２３０により実行され得る。いくつかの実施例で、操作４２２で実行されたスケーリングは、操作４２０で受信したユーザ要求に少なくとも部分的に基づき追加の仮想マシン・インスタンスに操作４１４でインストールされたイメージをコピーすることを備えることができる。また、いくつかの実施例で、コンテンツ・アイテム・フリートのスケーリングは、割り当て、および／または割り当て解除条件の検出、およびそれへ応答してさまざまな操作の実行を含むことができる。
【００３７】
特に、副操作４２４で、割り当て条件を検出するかどうかを判定する。上記で記載されるように、割り当て条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについての占有されていないユーザ・セッションの総数および／または平均数が特定の数量を満たしている、または下回っていると判定すること、フリート内の１つ以上の個々のコンテンツ・アイテム・インスタンスについての占有されていないユーザ・セッションの総数が特定の数量を満たしている、または下回っていると判定すること、および／または他の条件を備えることができる。副操作４２４で、割り当て条件を検出する場合に、次に副操作４２６で、追加の仮想マシン・インスタンスをコンテンツ・アイテム・フリートへ割り当てることができる。この割り当ては、例えば、割り当て条件の検出に基づき発生することができる。操作４２８で、操作４１４でインストールされたイメージを追加の仮想マシン・インスタンスにコピーすることで、追加のコンテンツ・アイテム・インスタンスの起動を有効にする。追加の仮想マシンは、１人または複数の追加のユーザまたはセッションを処理できる。
【００３８】
副操作４２４で割り当て条件を検出しない場合に、次に副操作４３０で、割り当て解除条件を検出するかどうかを判定する。上記で記載されるように、割り当て解除条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および／または平均数が特定の数量を満たしている、または超えていると判定すること、フリート内の１つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または超えていると判定すること、および／または他の条件を備えることができる。副操作４３０で割り当て解除条件を検出しない場合に、次にプロセスは、副操作４２４へ戻ることができる。副操作４３０で、割り当て解除条件を検出する場合に、次に副操作４３２で、コンテンツ・アイテム・フリートから仮想マシン・インスタンスの割り当てを解除できる。この割り当て解除は、例えば、割り当て解除条件の検出に基づき起こり得る。副操作４３４で、割り当て解除された仮想マシン・インスタンスを終了する、および／または別の目的のために再利用できる。上記で記載されるように、いくつかの事例で、割り当て解除条件が発生したと判定すると、直ちに割り当て解除された仮想マシン・インスタンスを終了する、および／または別の目的のために再利用することは、有益ではない可能性がある。むしろ、割り当て解除された仮想マシン・インスタンスでコンテンツ・アイテム・インスタンスへ追加のユーザ・セッションを割り当てることを停止する、およびその既存のユーザ・セッションの期限が切れた後に割り当て解除された仮想マシン・インスタンスを終了する、および／または別の目的のために再利用する判定を行うことができる。
【００３９】
副操作４２４および４３０における割り当ておよび割り当て解除条件の検出は、コンテンツ・アイテム・フリートをスケーリングすることができる方法の単なる実施例であることに留意する。特に、副操作４２４および４３０は、図４で示された順序で実行されなければならない必要はなく、異なる順序で実行され得る、および／または互いに関連して全体的に、または部分的に依存して、または独立して実行され得る。例えば、いくつかの事例で、割り当て解除条件が存在するかどうかの判定は、特定の間隔で、および／またはユーザ・セッションの終了のような、特定の構成可能なイベントに応答して実行してよく、クリーンアップ・プロセスに少なくとも部分的に基づいて実行され得る。加えて、いくつかの実施例で、割り当て条件が存在するかどうかの判定は、特定の間隔で、および／またはユーザ・セッションの生成のような特定の構成可能なイベントに応答して実行され得る。さらに、特定の期間にわたり生成された、または終了されたユーザ・セッション数のような履歴データに基づき、割り当ておよび／または割り当て解除判定も実行できることに留意する。
【００４０】
図５は、本開示に従いコンテンツ実行について例示的なプロセスを説明する図である。操作５１０で、コンテンツへのアクセス権を得ようとするユーザからアイデンティティ情報を受信できる。例えば、操作５１０で、図１のアイデンティティおよび資格サービス１０５は、図１のユーザ計算ノード１１０のシステム・インタフェース１１１からアイデンティティ情報を受信できる。上記に記載されるように、操作５１０で受信したアイデンティティ情報は、例えば、ユーザについてのユーザ名およびパスワードを含むことができる。操作５１１で、受信したアイデンティティ情報が格納されたアイデンティティ情報にマッチングするかどうかを判定する。例えば、図１のアイデンティティおよび資格サービス１０５は、図１のアイデンティティ情報１０７のような格納されたアイデンティティ情報へ、操作５１０で受信したアイデンティティ情報をマッチングしようと試みることができる。いくつかの実施例で、操作５１０で受信したユーザ名およびパスワードは、格納されたアイデンティティ情報内のユーザ名およびパスワードへマッチングされ得る。操作５１１でマッチングを検出する場合に、次に、操作５１２で、ユーザを認証できる。操作５１１でマッチングを検出しない場合に、次に、操作５１３で、ユーザを認証しない。上記に記載されるように、ユーザを認証することが不可能である場合に（例えば、マッチングを判定しない場合に）、次にユーザは、例えば、任意のコンテンツへのアクセスを拒否される可能性がある、および／またはコンテンツへのアクセスについて登録する、支払う、および／またはサブスクライブするように促される可能性がある、および／またはこれらの操作を実行するためにさまざまなサービスにリダイレクトされる可能性がある。
【００４１】
操作５１４で、ユーザについてのコンテンツ資格を判定できる。例えば、図１に示されるように、コンテンツ・アイテム・インスタンス情報サービス１１５は、アイデンティティおよび資格サービス１０５からユーザについてのコンテンツ資格情報を要求できる。いくつかの実施例で、図１の資格情報１０６のような、格納された資格情報は、ユーザがアクセスする権利を与えられるさまざまなコンテンツ・アイテムのような、認証されたユーザについてのコンテンツ資格情報を示すことができる。操作５１６で、ユーザが権利を与えられるコンテンツ・アイテムに関連するユーザへ情報を提供する。例えば、コンテンツ・アイテム・インスタンス情報サービス１１５は、コンテンツ・クライアント１１２へ、すべての利用可能なコンテンツ・アイテムのリスト、または特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、特定のコンテンツ属性を有するコンテンツ・アイテムのような、ユーザがアクセスする権利を与えられる利用可能なコンテンツ・アイテムについての情報を提供できる。
【００４２】
操作５１８で、コンテンツ・アイテムにアクセスするユーザについての要求を受信する。例えば、ユーザは、操作５１６で提供された情報を利用して、ユーザがアクセスしたい特定のコンテンツ・アイテムを選択できる。次にコンテンツ・クライアント１１２は、コンテンツ・アイテム・インスタンス情報サービス１１５により、操作５１８で受信され得る、選択されたコンテンツ・アイテムにアクセスする要求を提示できる。加えて、操作５２０で、選択されたコンテンツ・アイテムについてのユーザ選好を受信する。ユーザ選好は、例えば、ユーザにより望まれる、特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものを含むことができる。操作５２２で、テレメトリ情報を受信する。例えば、コンテンツ・アイテム・フリート内のコンテンツ・アイテム・インスタンスに関連するテレメトリ情報は、テレメトリ・コンポーネント１２５を介してコンテンツ・アイテム・インスタンス情報サービス１１５により受信され得る。いくつかの実施例で、受信したテレメトリ情報は、フリート内の１つ以上のコンテンツ・アイテム・インスタンスについて任意の占有されていないユーザ・セッション、フリート内の１つ以上のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッション数、または他の可用性情報があるかどうかのインディケーションのような、コンテンツ・アイテム・フリートにおいてユーザ・セッション可用性のインディケーションを含むことができる。コンテンツ・アイテム・インスタンス情報サービス１１５により受信され得るいくつかの他のテレメトリ情報の実施例は、上記で詳細に記述されるため、ここで繰り返されない。１分もしくは５分間隔で、または任意の他の所望の時間もしくは間隔でのような、コンテンツ・アイテム・インスタンス情報サービス１１５により、テレメトリ情報を繰り返し受信して更新できることに留意する。
【００４３】
操作５２４で、例えば、テレメトリ情報、および／またはユーザ選好に基づき、コンテンツ・アイテム・インスタンスへ、ユーザと関連するユーザ・セッションを割り当てる。例えば、いくつかの事例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、テレメトリ情報に基づき、ユーザの選好にマッチングする、または部分的にマッチングするコンテンツ属性を有する、少なくとも１つの占有されていないユーザ・セッションを有する１つ以上の実行するコンテンツ・アイテム・インスタンスを識別できる。いくつかの実施例で、次にコンテンツ・アイテム・インスタンス情報サービス１１５は、識別されたコンテンツ・アイテム・インスタンスのうちの１つへユーザを割り当てることができる。また、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、ユーザ選好のうちの１つ以上に少なくとも部分的にマッチングするコンテンツ・アイテム・インスタンスへユーザを割り当てることができる。ユーザ割り当てについてのいくつかの他の例示的な技術は、上記で詳細に記載されるため、ここで繰り返されない。また上記で記載されるように、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス１１５は、既存のすでに起動され実行しているコンテンツ・アイテム・インスタンスへユーザをマッチングして割り当てる代わりに、スケーリング・コンポーネント２３０がユーザを割り当てる追加のコンテンツ・アイテム・インスタンスを起動させることを要求できる。これは、例えば、フリート内の既存のコンテンツ・アイテム・インスタンスが任意の残りの占有されていないユーザ・セッションを全く有さないときに、および／またはフリート内の既存のコンテンツ・アイテム・インスタンスがユーザの要求したコンテンツ属性選好に十分にマッチングすると判定されるコンテンツ属性を全く有さないときに、起こり得る。
【００４４】
操作５２６で、割り当てられたコンテンツ・アイテム・インスタンスのインディケーションを、図２のスケーリング・コンポーネント２３０のようなスケーリング・コンポーネントへ提供できる。まだ起動していないコンテンツ・アイテム・インスタンスへユーザを割り当てる場合、これは、操作５２６で提供されたインディケーションの部分として示されることもできる。操作５２８で、ユーザ・セッション、および割り当てられたコンテンツ・アイテム間の通信を確立する命令を提供する。例えば、スケーリング・コンポーネント２３０は、ユーザにより操作されたユーザ計算ノード１１０でコンテンツ・クライアント１１２と関連するユーザ・セッションと通信するように割り当てられたコンテンツ・アイテム・インスタンスに指令することができる。
【００４５】
図６は、本開示に従い使用され得る、例示的なテレメトリ情報ルーティング・プロセスを説明する図である。操作６１０で、テレメトリ情報をコンテンツ・アイテム・インスタンスから収集する。いくつかの実施例で、図２のプロキシ・コンポーネント２０３および２２３により、操作６１０でテレメトリ情報を収集できる。これは、それぞれ、インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎを介して、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎから情報を受信できる。上記で記載されるように、いくつかの実施例で、１つ以上のソフトウェア開発キット（ＳＤＫ）のような、インスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎと関連するさまざまな命令を、開発者へ公開する、および／または提供できる。これらの命令は、コンテンツ・アイテム・インスタンス２０１Ａ〜Ｎおよび２２１Ａ〜Ｎがインスタンス・インタフェース２０２Ａ〜Ｎおよび２２２Ａ〜Ｎを介してプロキシ・コンポーネント２０３および２２３へテレメトリ情報を報告することを可能にすることを支援できる。開発者は、開発のためにアクセス可能にされるコンテンツ・アイテム内のこれらの命令を、次に、含む、組み込む、またはその他の方法で関連付けることができる。上記で詳細に記述されるように、各コンテンツ・アイテム・インスタンスから収集されたテレメトリ情報は、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものに関連する情報を含むことができる。
【００４６】
操作６１２で、識別情報を操作６１０で受信したテレメトリ情報へ割り当てることができる。例えば、上記で記載されるように、プロキシ・コンポーネント２０３および２２３は、１セットの規約により、特定のキー、または他の識別情報でテレメトリ情報をタギングすることができる。１つの特定の実施例で、以下のフォーマット、フリート識別子／インスタンス識別子／ルート識別子／タイムスタンプ／グローバル一意識別子（ＧＵＩＤ）を使用して、テレメトリ情報を識別できる。フリート識別子は、テレメトリ情報が関連する特定のコンテンツ・アイテム・フリートについての識別子であり得る。インスタンス識別子は、テレメトリ情報が関連する特定のコンテンツ・アイテム・インスタンスについての識別子であり得る。ルート識別子は、情報を送信する１人以上の受信者（例えば、図３の、任意の、またはすべての処理機能３０３Ａ〜Ｄ）を示す識別子であり得る。
【００４７】
操作６１４で、図３のテレメトリ・ランディング３０１のような、ルーティング機能へアクセス可能である（テレメトリ・ルーティング機能３０２へアクセス可能である）位置へテレメトリ情報、および識別情報を提供する。上記で記載されるように、いくつかの実施例で、テレメトリ情報は、毎分、または５分毎のような、定期的な繰り返し間隔でテレメトリ・ランディング３０１へ提供され得る。いくつかの他の実施例で、連続した情報ストリームとして、または任意の他の時間もしくは間隔で、テレメトリ情報を提供できる。
【００４８】
操作６１６で、例えば、識別情報および／またはテレメトリ情報自体に基づき、１人以上の受信者へテレメトリ情報および識別情報をルーティングする。例えば、上記で記載されるように、図３の処理機能３０３Ａ〜Ｄのうちのいずれか１つ以上のような、受信者へテレメトリ情報をルーティングすることができる。これは、コンテンツ・アイテム・インスタンス情報サービス１１５、コンテンツ・アイテム・フリート情報サービス３０４、履歴情報サービス３０５、および追加のサービス３０６についての情報と関連することができ、この情報を処理できる。処理機能３０３Ａ〜Ｄは、サービス１１５および３０４〜３０６のような、コンテンツ・アイテム・インスタンス情報分析についてのさまざまなサービスと関連できる。上記で記載されるように、いくつかの実施例で、インスタンス・レベル情報処理機能３０３Ａは、コンテンツ・アイテム・インスタンスのフリート内の各インスタンスと関連する情報のためであり、フリート・レベル情報処理機能３０３Ｂは、コンテンツ・アイテム・インスタンスのフリートと関連する情報のためであり、履歴情報処理機能３０３Ｃは、履歴情報のためであり得る。いくつかの事例で、例えば、操作６１２で割り当てられた、識別情報内のルート識別子に基づき、１つ以上の処理機能３０３Ａ〜Ｄ、または他の受信者へ、テレメトリ情報をルーティングすることができる。操作６１８で、操作６１６で判定された１人以上の受信者へテレメトリ情報、および識別情報を送信する。上記で記載されるように、いくつかの実施例で、テレメトリ・ルーティング機能３０２および／または処理機能３０３Ａ〜Ｄのうちのいずれかは、ルーティングおよび／または処理についてのテレメトリ情報の受信のような、イベントに少なくとも部分的に基づき実行する計算サービスを含むことができる。いくつかの実施例で、イベントに少なくとも部分的に基づきコードを実行する分散コンピューティング・ベース（例えば、クラウド・ベース）機能を使用するテレメトリ・ルーティング機能３０２、および／または処理機能３０３Ａ〜Ｄの実装は、例えば、テレメトリ情報のルーティングおよび／または処理のために要求される可能性がある、コンピューティング・リソースおよびコストの量を削減することで、有益であり得る。
【００４９】
操作６２０で、テレメトリ情報、および識別情報を、処理機能３０３Ａ〜Ｄのうちの１つ以上のような、１人以上の受信者により受信する。操作６２２で、テレメトリ情報は、上記で記述されるそれらのように、処理されることができ、以前に受信したテレメトリ情報を更新すること、開発者、ユーザまたは他の当事者らがそれに効率的にアクセスできるようにテレメトリ情報を編成すること、およびテレメトリ情報に基づき任意の警報、または他の通知を生成することを備えることができる。加えて、操作６２２で、処理機能３０３Ａ〜Ｄのうちの１つ以上は、適切なサービス（例えば、サービス１１５および／または３０４〜３０６のうちの１つ以上）へテレメトリ情報を提供できる。上記で記載されるように、いくつかの実施例で、操作６１２で割り当てられた識別情報内のルート識別子は、テレメトリ・ルーティング機能３０２、および処理機能３０３Ａ〜Ｄのうちのいずれかによりアクセスされ、テレメトリ情報をルーティングする１人以上の受信者を示すことができる。また上記で記載されるように、いくつかの実施例で、インスタンス・レベル処理機能３０３Ａは、コンテンツ・アイテム・インスタンス情報サービス１１５へ情報を提供することができ、フリート・レベル情報処理機能３０３Ｂは、コンテンツ・アイテム・フリート情報サービス３０４へ情報を提供することができ、履歴情報処理機能３０３Ｃは、履歴情報サービス３０５へ情報を提供することができ、任意の数の追加の処理機能３０３Ｄは、任意の数の追加のサービス３０６へ情報を提供できる。いくつかの実施例で、任意の、またはすべてのサービス１１５および３０４〜３０６は、コンテンツ・アイテム開発者へ情報を提供するためにコンテンツ・アイテム開発者アイテムへ少なくとも部分的にアクセス可能であり得る。
【００５０】
少なくともいくつかの実施形態で、本明細書に記述された科学技術のうちの１つ以上の部分、またはすべてを実装する１つ以上の計算ノードは、１つ以上のコンピュータ・アクセス可能媒体を含むもしくはこれらにアクセスするように構成されるコンピュータ・システムを含むことができ、またはこのコンピュータ・システムと関連することができる。計算ノードは、コンピューティング・ノードとも言われることができ、コモディティ・ハードウェア・コンピュータ、仮想マシン、ウェブ・サービス、コンピューティング・クラスタ、およびコンピューティング・アプライアンスなどの、多種多様なコンピューティング環境で実装され得る。これらのコンピューティング・デバイスまたは環境のうちのいずれかは、便宜上、計算ノードと記述され得る。図７は、１つ以上のコンピュータ・アクセス可能媒体を含む、またはこれらにアクセスするように構成されるコンピュータ・システムを示す。図示された実施形態で、コンピューティング・デバイス１５は、入出力（Ｉ／Ｏ）インタフェース３０を介してシステム・メモリ２０へ結合される１つ以上のプロセッサ１０ａ、１０ｂおよび／または１０ｎ（単数で「ａ  ｐｒｏｃｅｓｓｏｒ（プロセッサ）１０」と、または複数で「ｔｈｅ  ｐｒｏｃｅｓｓｏｒｓ（プロセッサ）１０」と本明細書で言われることができる）を含む。さらにコンピューティング・デバイス１５は、Ｉ／Ｏインタフェース３０へ結合されたネットワーク・インタフェース４０を含む。
【００５１】
さまざまな実施形態で、コンピューティング・デバイス１５は、１つのプロセッサ１０を含むユニプロセッサ・システム、またはいくつかのプロセッサ１０（例えば、２つ、４つ、８つまたは別の適切な数）を含むマルチプロセッサ・システムであり得る。プロセッサ１０は、命令を実行することが可能な任意の適切なプロセッサであり得る。例えば、さまざまな実施形態で、プロセッサ１０は、さまざまなインストラクション・セット・アーキテクチャ（ＩＳＡ）のうちのいずれかを実装する、組み込みプロセッサであり得る。これは、例えば、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣもしくはＭＩＰＳ  ＩＳＡ、または任意の他の適切なＩＳＡなどである。マルチプロセッサ・システムで、プロセッサ１０のそれぞれは、必ずしもそうではないが、一般的に同一のＩＳＡを実装できる。
【００５２】
システム・メモリ２０は、プロセッサ（複数可）１０によりアクセス可能な命令およびデータを格納するように構成され得る。さまざまな実施形態で、システム・メモリ２０は、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、不揮発性／Ｆｌａｓｈ（登録商標）タイプ・メモリ、または任意の他のタイプのメモリのような、任意の適切なメモリ技術を使用して実装され得る。図示された実施形態で、上記で記述される、これらの方法、技術、およびデータのような、１つ以上の所望の機能を実装するプログラム命令およびデータは、コード２５およびデータ２６としてシステム・メモリ２０内に格納されて示される。
【００５３】
１つの実施形態で、Ｉ／Ｏインタフェース３０は、ネットワーク・インタフェース４０、または他のペリフェラル・インタフェースを含む、デバイス内の、プロセッサ１０、システム・メモリ２０、および任意の周辺機器間のＩ／Ｏトラフィックを調整するように構成され得る。いくつかの実施形態で、Ｉ／Ｏインタフェース３０は、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し、一方のコンポーネント（例えば、システム・メモリ２０）からのデータ信号を、他方のコンポーネント（例えば、プロセッサ１０）による使用に適切なフォーマットへ変換できる。いくつかの実施形態で、Ｉ／Ｏインタフェース３０は、例えば、さまざまなペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）・バス規格、またはユニバーサル・シリアル・バス（ＵＳＢ）規格のような、種々多様なペリフェラル・バスを介して接続されたデバイスに対するサポートを含み得る。いくつかの実施形態で、Ｉ／Ｏインタフェース３０の機能は、例えば、ノース・ブリッジ、およびサウス・ブリッジなどの、２つ以上の個別のコンポーネントに分割され得る。また、いくつかの実施形態で、システム・メモリ２０へのインタフェースのような、Ｉ／Ｏインタフェース３０の機能性のいくつか、またはすべては、プロセッサ１０に直接に組み込まれ得る。
【００５４】
ネットワーク・インタフェース４０は、例えば、他のコンピュータ・システムまたはデバイスのような、単数のネットワーク、または複数のネットワーク５０へ接続された、コンピューティング・デバイス１５、および他の単数のデバイス、または複数のデバイス６０間でデータを交換することを可能にするように構成され得る。さまざまな実施形態で、ネットワーク・インタフェース４０は、例えば、イーサネット・ネットワークのタイプのような、任意の適切な有線または無線の一般的なデータ・ネットワークを介して通信をサポートできる。加えて、ネットワーク・インタフェース４０は、アナログ音声ネットワーク、もしくはデジタル・ファイバ通信ネットワークのような、テレコミュニケーション／テレフォニー・ネットワークを介して、ファイバ・チャネルＳＡＮ（ストレージ・エリア・ネットワーク）のようなストレージ・エリア・ネットワークを介して、または任意の他の適切なタイプのネットワークおよび／またはプロトコルを介して通信をサポートできる。
【００５５】
いくつかの実施形態で、システム・メモリ２０は、対応する方法および装置の実施形態を実装するために、上記で記述されるようなプログラム命令およびデータを格納するように構成される、コンピュータ・アクセス可能媒体の１つの実施形態であり得る。しかしながら、他の実施形態においては、異なるタイプのコンピュータ・アクセス可能媒体で、プログラム命令および／またはデータを受信する、送信する、または格納できる。一般的に言えば、コンピュータ・アクセス可能媒体は、磁気または光学媒体、例えば、Ｉ／Ｏインタフェース３０を介してコンピューティング・デバイス１５へ結合されるディスクまたはＤＶＤ／ＣＤのような、非一時的なストレージ媒体、またはメモリ媒体を含むことができる。非一時的なコンピュータ・アクセス可能ストレージ媒体は、システム・メモリ２０、または別のタイプのメモリとしてコンピューティング・デバイス１５のいくつかの実施形態に含まれることができる、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭ（読み出し専用メモリ）などのような、任意の揮発性または不揮発性媒体も含むことができる。さらに、コンピュータ・アクセス可能媒体は、伝送媒体、または通信媒体を介して伝達される電気、電磁気、もしくはデジタル信号のような、信号を含むことができる。通信媒体は、例えば、ネットワークおよび／または無線リンクであり、これらは、例えば、ネットワーク・インタフェース４０を介して実装され得る。図７に図示されるこれらのような、複数のコンピューティング・デバイスの部分またはすべてを使用して、さまざまな実施形態で、記述された機能性を実装することができ、例えば、さまざまな異なるデバイスおよびサーバ上で実行するソフトウェア・コンポーネントは、機能性を提供するために共同することができる。いくつかの実施形態で、記述された機能性の部分は、ストレージ・デバイス、ネットワーク・デバイス、または専用コンピュータ・システムを使用して実装され得る。本明細書で使用されるような、用語「コンピューティング・デバイス」は、少なくともすべてのこれらのタイプのデバイスに関連するが、これらのタイプのデバイスに限定されない。
【００５６】
前節で記述される、各プロセス、方法およびアルゴリズムは、１つ以上のコンピュータまたはコンピュータ・プロセッサにより実行されるコード・モジュールで具現化され、これらにより完全に、または部分的に自動化され得る。コード・モジュールは、ハード・ドライブ、ソリッド・ステート・メモリ、光学ディスク、および／または同様のものなどの、任意のタイプの非一時的なコンピュータ可読媒体、またはコンピュータ・ストレージ・デバイスに格納され得る。プロセスおよびアルゴリズムは、特定用途向け回路に部分的に、または全体的に実装され得る。開示されたプロセスおよびプロセス・ステップの結果は、永続的に、またはその他の方法で、例えば、揮発性または不揮発性ストレージなどの、任意のタイプの非一時的なコンピュータ・ストレージに格納され得る。
【００５７】
前述の事項は、以下の条項を考慮してより良く理解され得る。
条項１．電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
１つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している１つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記複数のインスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを有する、前記受信すること、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える操作を、前記システムに実行させる、前記システム。
【００５８】
条項２．前記操作は、前記コンテンツ・アイテムと関連する１つ以上のユーザ選好を示す情報を受信することをさらに備え、
前記ユーザ・セッションは、前記１つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスに割り当てられる、請求項１に記載のシステム。
【００５９】
条項３．ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項１に記載のシステム。
【００６０】
条項４．前記複数のインスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、請求項１に記載のシステム。
【００６１】
条項５．電子的に提示されたコンテンツ・アイテムの実行のための方法であって、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記複数のインスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを備える、前記受信すること、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える、前記方法。
【００６２】
条項６．前記コンテンツ・アイテムと関連する１つ以上のユーザ選好を示す情報を受信することをさらに備え、
前記ユーザ・セッションは、前記１つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスへ割り当てられる、請求項５に記載の方法。
【００６３】
条項７．前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するＳＤＫを使用して作成される、請求項５に記載の方法。
【００６４】
条項８．前記コンテンツ・アイテムの前記インスタンスは、起動され、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられるときに実行する、請求項５に記載の方法。
【００６５】
条項９．前記コンテンツ・アイテムの前記インスタンスは、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられた後に実行のために起動される、請求項５に記載の方法。
【００６６】
条項１０．ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項５に記載の方法。
【００６７】
条項１１．格納された情報に少なくとも部分的に基づき、前記ユーザがアクセス権を与えられる１つ以上のコンテンツ・アイテムを判定すること、
前記ユーザがアクセス権を与えられる前記１つ以上のコンテンツ・アイテムのうちの少なくとも１つのインディケーションを提供することであって、前記ユーザがアクセスを要求する前記コンテンツ・アイテムが前記提供されたインディケーション内に含まれる、前記提供すること、
をさらに備える、請求項５に記載の方法。
【００６８】
条項１２．前記複数のインスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、請求項５に記載の方法。
【００６９】
条項１３．命令を格納している１つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの計算ノードで実行時に、前記少なくとも１つの計算ノードに、
電子的に提示されたコンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムと関連する１つ以上のユーザ選好を示す情報を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記情報は、前記複数のインスタンスでユーザ・セッション可用性のインディケーションを備える、前記受信すること、
前記複数のインスタンス、および前記１つ以上のユーザ選好と関連する前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える操作、を実行させる、前記１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７０】
条項１４．前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するＳＤＫを使用して作成される、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７１】
条項１５．前記複数のインスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７２】
条項１６．前記コンテンツ・アイテムの前記インスタンスは、起動され、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられるときに実行する、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７３】
条項１７．前記コンテンツ・アイテムの前記インスタンスは、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられた後に実行のために起動される、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７４】
条項１８．ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７５】
条項１９．前記操作は、
格納された情報に少なくとも部分的に基づき、前記ユーザがアクセス権を与えられる１つ以上のコンテンツ・アイテムを判定すること、
前記ユーザがアクセス権を与えられる前記１つ以上のコンテンツ・アイテムのうちの少なくとも１つのインディケーションを提供することであって、前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、前記提供すること、
をさらに備える、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７６】
条項２０．前記複数のインスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、請求項１３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００７７】
また前述の事項は、また、以下の条項を考慮してより良く理解され得る。
条項１．電子的に提示されたコンテンツ・アイテムのデプロイメントのためのシステムであって、
１つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している１つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信することと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記複数のコンテンツ・アイテム・インスタンスへ追加の仮想マシン・インスタンスを割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスへ前記追加の仮想マシン・インスタンスを割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
を備える操作、を実行させる、前記システム。
【００７８】
条項２．割り当てることと関連する前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定すること、のうちの少なくとも１つを備える、請求項１に記載のシステム。
【００７９】
条項３．前記操作は、
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも１つを実行すること、
をさらに備える、請求項１に記載のシステム。
【００８０】
条項４．割り当てを解除することと関連する前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも１つを備える、請求項３に記載のシステム。
【００８１】
条項５．前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するＳＤＫを使用して作成される、請求項１に記載のシステム。
【００８２】
条項６．電子的に提示されたコンテンツ・アイテムのデプロイメントのための方法であって、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信することと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信すること、
前記複数の要求に少なくとも部分的に基づき、１つ以上の他の仮想マシン・インスタンスに前記イメージをコピーすること、
を備える、前記方法。
【００８３】
条項７．追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
をさらに備える、請求項６に記載の方法。
【００８４】
条項８．前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定すること、のうちの少なくとも１つを備える、請求項７に記載の方法。
【００８５】
条項９．前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも１つを実行すること、
をさらに備える、請求項６に記載の方法。
【００８６】
条項１０．前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも１つを備える、請求項９に記載の方法。
【００８７】
条項１１．前記複数の要求が受信される前記ユーザを認証することをさらに備える、請求項６に記載の方法。
【００８８】
条項１２．格納された情報に少なくとも部分的に基づき、前記ユーザが前記コンテンツ・アイテムにアクセスする権利を与えられることを判定することをさらに備える、請求項６に記載の方法。
【００８９】
条項１３．前記複数のコンテンツ・アイテム・インスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、請求項６に記載の方法。
【００９０】
条項１４．前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するＳＤＫを使用して作成される、請求項６に記載の方法。
【００９１】
条項１５．前記コンテンツ・アイテムは、ビデオ・ゲームである、請求項６に記載の方法。
【００９２】
条項１６．命令を格納している１つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの計算ノードで実行時に、前記少なくとも１つの計算ノードに、
電子的に提示されたコンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信すること、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信すること、
前記複数の要求に少なくとも部分的に基づき、１つ以上の他の仮想マシン・インスタンスに前記イメージをコピーすること、
ことを備える操作、を実行させる、前記１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９３】
条項１７．前記操作は、
追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを、前記複数のコンテンツ・アイテム・インスタンスに割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
をさらに備える、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９４】
条項１８．前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定することのうちの少なくとも１つを備える、請求項１７に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９５】
条項１９．前記操作は、
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも１つを実行すること、
をさらに備える、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９６】
条項２０．前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも１つを備える、請求項１９に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９７】
条項２１．前記操作は、前記複数の要求が受信される前記ユーザを認証することをさらに備える、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９８】
条項２２．前記操作は、格納された情報に少なくとも部分的に基づき、前記ユーザが前記コンテンツ・アイテムにアクセスする権利を与えられることを判定することをさらに備える、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【００９９】
条項２３．前記複数のコンテンツ・アイテム・インスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１００】
条項２４．前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するＳＤＫを使用して作成される、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１０１】
条項２５．前記コンテンツ・アイテムは、ビデオ・ゲームである、請求項１６に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１０２】
前述の事項は、また、以下の条項を考慮してより良く理解され得る。
条項１．複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するためのシステムであって、
１つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している１つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集することであって、前記複数のインスタンスの各インスタンスは、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも１つのインディケーションを備える、前記収集すること、
前記情報に少なくとも部分的に基づき、前記情報をルーティングする複数の受信者のうちの少なくとも１人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定すること、
前記複数の受信者のうちの前記少なくとも１人へ前記情報を送信すること、
を備える操作、を実行させる、前記システム。
【０１０３】
条項２．前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも１つ、または前記複数の受信者のうちの少なくとも１人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項１に記載のシステム。
【０１０４】
条項３．前記操作は、前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項１に記載のシステム。
【０１０５】
条項４．前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子（ＧＵＩＤ）のうちの少なくとも１つを備える、請求項３に記載のシステム。
【０１０６】
条項５．複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するための方法であって、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集すること、
前記情報をルーティングする複数の受信者のうちの少なくとも１人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定すること、
前記複数の受信者のうちの前記少なくとも１人へ前記情報を送信すること、
を備える、前記方法。
【０１０７】
条項６．前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも１つのインディケーションを備える、請求項５に記載の方法。
【０１０８】
条項７．前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも１つ、または前記複数の受信者のうちの少なくとも１人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項５に記載の方法。
【０１０９】
条項８．前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項５に記載の方法。
【０１１０】
条項９．前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子（ＧＵＩＤ）のうちの少なくとも１つを備える、請求項８に記載の方法。
【０１１１】
条項１０．前記複数の受信者は、履歴情報のための第三受信者をさらに備える、請求項５に記載の方法。
【０１１２】
条項１１．前記複数のインスタンスのそれぞれは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項５に記載の方法。
【０１１３】
条項１２．前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する前記情報は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスへユーザ・セッションを割り当てるために使用される、請求項５に記載の方法。
【０１１４】
条項１３．前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連する、請求項５に記載の方法。
【０１１５】
条項１４．前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、請求項１３に記載の方法。
【０１１６】
条項１５．命令を格納している１つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの計算ノードで実行時に、前記少なくとも１つの計算ノードに、
複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を収集すること、
前記情報をルーティングする複数の受信者のうちの少なくとも１人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定することと、
前記複数の受信者のうちの前記少なくとも１人へ前記情報を送信すること、
を備える操作、を実行させる、前記１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１１７】
条項１６．前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも１つのインディケーションを備える、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１１８】
条項１７．前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも１つ、または前記複数の受信者のうちの少なくとも１人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１１９】
条項１８．前記操作は、前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２０】
条項１９．前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子（ＧＵＩＤ）のうちの少なくとも１つを備える、請求項１８に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２１】
条項２０．前記複数の受信者は、履歴情報のための第三受信者を備える、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２２】
条項２１．前記複数のインスタンスのそれぞれは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２３】
条項２２．前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する前記情報は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスへユーザ・セッションを割り当てるために使用される、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２４】
条項２３．前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連する、請求項１５に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２５】
条項２４．前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、請求項２３に記載の１つ以上の非一時的なコンピュータ可読記憶媒体。
【０１２６】
上記で説明されたさまざまな特徴およびプロセスは、互いから独立して使用され得る、またはさまざまな方式で組み合わされ得る。すべての可能な組み合わせ、および副組み合わせは、本開示の範囲内に入ることを意図される。加えて、特定の方法、またはプロセス・ブロックは、いくつかの実装で省略され得る。また本明細書に記述された方法およびプロセスは、いずれかの特定のシーケンスへ制限されず、それに関連するブロックまたはステートは、適切である他のシーケンスで実行されることが可能である。例えば、記述されたブロックもしくはステートは、具体的に開示された順序以外の順序で実行され得る、または複数のブロックもしくはステートは、単一のブロックもしくはステート内で組み合わされ得る。例示的なブロックまたはステートは、直列で、並列で、またはいくつかの他の方式で実行され得る。ブロックまたはステートは、開示された例示的な実施形態に追加される、またはこれらから削除され得る。本明細書に記述された例示的なシステムおよび構成要素は、記述されたものと異なって構成され得る。例えば、要素は、開示された例示的な実施形態に追加される、これらから削除される、またはこれらと比較して再配置され得る。
【０１２７】
また、使用されながらメモリ内に、またはストレージ上に格納されるように、さまざまなアイテムを図示すること、ならびにメモリ管理、およびデータ完全性の目的のためにメモリ、および他のストレージ・デバイス間でこれらのアイテム、またはその部分を転送できることを理解するであろう。あるいは、他の実施形態で、ソフトウェア・モジュールおよび／またはシステムのいくつか、またはすべては、別のデバイス上のメモリ内で実行し、コンピュータ間通信を介して図示されたコンピューティング・システムと通信できる。さらに、いくつかの実施形態で、システムおよび／またはモジュールのいくつか、またはすべては、限定されないが、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、標準集積回路、コントローラ（例えば、適切な命令を実行すること、およびマイクロコントローラおよび／または組み込みコントローラを含むことで）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、コンプレックス・プログラマブル・ロジック・デバイス（ＣＰＬＤ）などを含む、少なくとも部分的にファームウェアおよび／またはハードウェアでなどの、他の方式で実装される、または提供され得る。また、モジュール、システムおよびデータ構造のいくつか、またはすべては、適切なドライブにより、または適切な接続を介して読み出される、ハード・ディスク、メモリ、ネットワークまたはポータブル・メディア物品などの、コンピュータ可読媒体上に格納される（例えば、ソフトウェア命令、または構造化データとして）ことができる。またシステム、モジュール、およびデータ構造は、無線ベースおよび有線／ケーブル・ベース・メディアを含む、さまざまなコンピュータ可読伝送媒体上で生成されたデータ信号として（例えば、搬送波、または他のアナログもしくはデジタル伝播信号の部分として）伝送されることができ、さまざまな形式（例えば、単一もしくは多重化アナログ信号の部分として、または複数の別個のデジタル・パケットもしくはフレームとして）を取ることができる。このようなコンピュータ・プログラム製品は、他の実施形態で他の形式を取ることもできる。したがって、本発明は、他のコンピュータ・システム構成で実施され得る。
【０１２８】
特に別段に明記されない限り、またはその他の方法で使用されるような文脈内で理解される、とりわけ、「ｃａｎ（ことが可能である）」、「ｃｏｕｌｄ（ことが可能である）」、「ｍｉｇｈｔ（ことができる）」、「ｍａｙ（ことができる）」、「ｅ．ｇ．（例えば）」、および同様のものなどの、本明細書で使用される条件付き言語は、特定の実施形態が、他の実施形態が含まない、特定の特徴、要素、および／またはステップを含むことを伝えることを一般的に意図される。したがって、このような条件付き言語は、特徴、要素および／またはステップが１つ以上の実施形態のために必要な任意の方式内にあること、または１つ以上の実施形態が、創作者の入力またはプロンプティングの有無にかかわらず、これらの特徴、要素および／またはステップが含まれる、または任意の特定の実施形態で実行されるかどうかを決定するためのロジックを必ず含むことを暗示することを一般的に意図されない。用語「ｃｏｍｐｒｉｓｉｎｇ（備える）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｈａｖｉｎｇ（有する）」、および同様のものは、同意語であり、オープンエンド方式で包括的に使用され、追加の要素、特徴、行為、操作、およびその他のものを排除しない。また、用語「ｏｒ（または）」は、その包括的な意味で（およびその排他的な意味でではない）使用されるため、例えば、要素のリストを接続するために使用するときに、この用語「ｏｒ（または）」は、このリスト内の１つの、いくつかの、またはすべての要素を意味する。
【０１２９】
特定の例示的な実施形態は、記述されているが、これらの実施形態は、実施例としてのみ提示されていて、本明細書に開示された本発明の範囲を限定することを意図されない。したがって、前述の説明において、任意の特定の特徴、特性、ステップ、モジュールまたはブロックが必要である、または不可欠であることを暗示することを意図されるものは何もない。実際には、本明細書に記述された新規の方法およびシステムは、さまざまな他の方式で具現化されることができ、さらに、本明細書に記述された方法およびシステムの形式で、さまざまな省略、置換、および変更は、本明細書に開示された本発明の趣旨から逸脱することなく行われることができる。添付の特許請求の範囲、およびそれらの均等物は、本明細書に開示された特定の本発明の範囲および趣旨内に入るような、このような形式または修正形態を網羅することを意図される。
【０１３０】
以下は、親出願（特願２０１７−５４８９００）の出願当初の請求項である。
[請求項１]
電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
１つ以上のコンピューティング・デバイスと、
コンピュータ実行可能命令を格納している１つ以上のメモリと、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信するステップと、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信するステップであって、前記複数のインスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを有するステップと、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てるステップと、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供するステップと、
を含む操作を実行させる、
システム。
[請求項２]
前記操作は、前記コンテンツ・アイテムと関連する１つ以上のユーザ選好を示す情報を受信するステップをさらに含み、
前記ユーザ・セッションは、前記１つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスに割り当てられる、
請求項１に記載のシステム。
[請求項３]
ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、
請求項１に記載のシステム。
[請求項４]
前記複数のインスタンスのうちの少なくとも２つは、単一の仮想マシン・インスタンスで実行する、
請求項１に記載のシステム。
[請求項５]
前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するＳＤＫを使用して作成される、
請求項１に記載のシステム。
[請求項６]
電子的に提示されたコンテンツ・アイテムのデプロイメントのための方法であって、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信するステップであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの１つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であるステップと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールするステップと、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信するステップと、
前記複数の要求に少なくとも部分的に基づき、１つ以上の他の仮想マシン・インスタンスに前記イメージをコピーするステップと、
を含む、
方法。
[請求項７]
追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てるステップと関連する条件を検出するステップと、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てるステップと、
前記追加の仮想マシン・インスタンスに前記イメージをコピーするステップと、
をさらに含む、
請求項６に記載の方法。
[請求項８]
前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定するステップと、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定するステップと、のうちの少なくとも１つを備える、
請求項７に記載の方法。
[請求項９]
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除するステップと関連する条件を検出するステップと、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除するステップと、
前記仮想マシン・インスタンスを終了するステップと、または別の目的のために再利用するステップと、のうちの少なくとも１つを実行するステップと、
をさらに含む、
請求項６に記載の方法。
[請求項１０]
前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定するステップと、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定するステップと、のうちの少なくとも１つを含む、
請求項９に記載の方法。
[請求項１１]
複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するための方法であって、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集するステップと、
前記情報をルーティングする複数の受信者のうちの少なくとも１人を判定するステップであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためであるステップと、
前記複数の受信者のうちの前記少なくとも１人へ前記情報を送信するステップと、
を含む、
方法。
[請求項１２]
前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも１つのインディケーションを備える、
請求項１１に記載の方法。
[請求項１３]
前記判定するステップおよび前記ルーティングするステップは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも１つ、または前記複数の受信者のうちの少なくとも１人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、
請求項１１に記載の方法。
[請求項１４]
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てるステップをさらに含み、
前記判定するステップは、前記識別情報に少なくとも部分的に基づき、前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子（ＧＵＩＤ）のうちの少なくとも１つを備える、
請求項１１に記載の方法。
[請求項１５]
前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連し、
前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、
請求項１１に記載の方法。
【図１】
2020053079.tif 000002
【図２】
2020053079.tif 000003
【図３】
2020053079.tif 000004
【図４】
2020053079.tif 000005
【図５】
2020053079.tif 000006
【図６】
2020053079.tif 000007
【図７】
2020053079.tif 000008
【外国語明細書】
2020053079.tif 000009
2020053079.tif 000010
2020053079.tif 000011
2020053079.tif 000012
2020053079.tif 000013
2020053079.tif 000014
2020053079.tif 000015
2020053079.tif 000016
2020053079.tif 000017
2020053079.tif 000018
2020053079.tif 000019
2020053079.tif 000020
2020053079.tif 000021
2020053079.tif 000022
2020053079.tif 000023
2020053079.tif 000024
2020053079.tif 000025
2020053079.tif 000026
2020053079.tif 000027
2020053079.tif 000028
2020053079.tif 000029
2020053079.tif 000030
2020053079.tif 000031
2020053079.tif 000032
2020053079.tif 000033
2020053079.tif 000034
2020053079.tif 000035
2020053079.tif 000036
2020053079.tif 000037
2020053079.tif 000038
2020053079.tif 000039
2020053079.tif 000040
2020053079.tif 000041
2020053079.tif 000042
2020053079.tif 000043
2020053079.tif 000044
2020053079.tif 000045
2020053079.tif 000046
2020053079.tif 000047
2020053079.tif 000048
2020053079.tif 000049
2020053079.tif 000050
2020053079.tif 000051
2020053079.tif 000052
2020053079.tif 000053
2020053079.tif 000054
2020053079.tif 000055
2020053079.tif 000056
2020053079.tif 000057
2020053079.tif 000058
2020053079.tif 000059
2020053079.tif 000060
2020053079.tif 000061
2020053079.tif 000062