JP2020053079A - コンテンツ・デプロイメント、スケーリングおよびテレメトリ - Google Patents

コンテンツ・デプロイメント、スケーリングおよびテレメトリ Download PDF

Info

Publication number
JP2020053079A
JP2020053079A JP2019216884A JP2019216884A JP2020053079A JP 2020053079 A JP2020053079 A JP 2020053079A JP 2019216884 A JP2019216884 A JP 2019216884A JP 2019216884 A JP2019216884 A JP 2019216884A JP 2020053079 A JP2020053079 A JP 2020053079A
Authority
JP
Japan
Prior art keywords
content item
user
instance
instances
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019216884A
Other languages
English (en)
Inventor
デイヴィッド ビスカル クリストファー
David Byskal Christopher
デイヴィッド ビスカル クリストファー
アラン タムキン プレストン
Alan Tamkin Preston
アラン タムキン プレストン
ルヴァスール アレクシス
Levasseur Alexis
ルヴァスール アレクシス
ポール トンプソン ジョナサン
paul thompson Jonathan
ポール トンプソン ジョナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/660,865 external-priority patent/US20160277508A1/en
Priority claimed from US14/660,850 external-priority patent/US20160277484A1/en
Priority claimed from US14/660,821 external-priority patent/US10463957B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2020053079A publication Critical patent/JP2020053079A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】コンテンツのデプロイメント、スケーリング、テレメトリのための技術を提供する。【解決手段】コンテンツアイテムをデプロイメントのためにアクセス可能にすると、コンテンツアイテムのインスタンスは、仮想マシン上にイメージとしてインストールされる。次にコンテンツアイテムの追加のインスタンスは、同一の仮想マシンインスタンス上で、任意の数の追加の仮想マシンインスタンス上へイメージをコピーすることで起動される。コンテンツアイテムのインスタンスは、複数の同時に割り当てられたユーザセッションで実行される。占有されたユーザセッション数、占有されていないユーザセッション数、コンテンツアイテムインスタンス持続時間、メモリ使用量等のコンテンツアイテムインスタンスと関連する情報を収集してよい。この情報は、承認されたユーザを適切なコンテンツアイテムインスタンスへマッチングし、割り当てるために使用される。【選択図】なし

Description

<関連出願の相互参照>
本出願は、2015年3月17日に出願された、米国特許出願第14/660,850号、2015年3月17日に出願された、米国特許出願第14/660,821号、および2015年3月17日に出願された、米国特許出願第14/660,865号の利益を主張し、これらの開示は、それらの全体が参照により本明細書に組み込まれる。
近年、電子的に提示されたコンテンツの使用は、ますます一般的で、普及してきている。いくつかの実施例で、マルチプレイヤ・ゲームのような、特定の電子的に提示されたコンテンツは、多数の異なるユーザにより同時にアクセスされ、参加され得る。コンテンツ開発者は、それらのコンテンツをユーザへ容易に利用可能にするために、彼らがそうでなければ費やすことに興味がない、サーバ・デプロイメント、および管理技術の専門家になることを余儀なくされる場合が多い。特に、多くのコンテンツ開発者は、開発されているコンテンツの創造的な側面に集中することを好む。多くのコンテンツ開発者は、コンテンツを作成し、それを楽しいものにし、それを時間通りに出荷しようとする彼らの中心業務からの逸脱としてサーバ・デプロイメントおよび管理を見ている。サーバ・ベース・デプロイメントおよび管理システムに関する専門知識を得るために必要な時間に加えて、多くのコンテンツ開発者は、これらのシステムの他の機能によく不満を抱いている。例えば、多くのコンテンツ開発者は、それらのコンテンツの操作および使用に関する、このようなシステムから受信したフィードバック・レベルによく不満を抱いている。このようなフィードバックの可用性は、頻繁に制限され、得ることが困難である可能性がある。
以下の詳細な説明は、添付の図面と併せて読まれるときにより良く理解され得る。説明のために、図面に示される、本開示のさまざまな態様の例示的な実施形態があるが、本発明は、開示された特定の方法および手段に限定されない。
本開示に従い使用され得る、例示的なコンテンツ・デプロイメント、スケーリングおよびテレメトリ・システムを説明する図である。 本開示に従い使用され得る、例示的なコンテンツ・スケーリングおよび実行システムを示す図である。 本開示に従い使用され得る、例示的なテレメトリ情報ルーティングおよび処理システムを説明する図である。 本開示に従い使用され得る、例示的なコンテンツ・デプロイメントおよびスケーリング・プロセスを説明する図である。 本開示に従う、例示的なプロセス・コンテンツ実行を説明する図である。 本開示に従い使用され得る、例示的なテレメトリ情報ルーティング・プロセスを説明する図である。 本開示に従い使用され得る、例示的なコンピューティング・システムを説明する図である。
コンテンツ・デプロイメント、スケーリングおよびテレメトリのための技術を本明細書に記述する。いくつかの実施例で、コンテンツ開発者、または他の当事者は、さまざまなユーザへデプロイメントのために、ビデオ・ゲーム、および他のアプリケーションなどの、さまざまなタイプの電子的に提示されたコンテンツ・アイテムを提供できる。いくつかの事例で、テストされているコンテンツ、および/または完全に開発されたコンテンツなどの、異なるバージョンのコンテンツは、同時に、または異なる時間に提供され、利用可能にされ得る。いくつかの実施例で、コンテンツは、以下で詳細に各記述される、さまざまなバックエンドもしくは他のサービスと関連するおよび/または統合されるソフトウェア開発キット(SDK)もしくは他の要素、またはコンテンツ・アイテム・インスタンス情報サービス、インスタンス・インタフェース、および/もしくはコンテンツ実行コンポーネントなどの、コンテンツ・アイテムのデプロイされたインスタンスをホストする、またはその他の方法でこれらとやり取りできるコンポーネントを使用して、作成され得る。これらの実施例で、SDKまたは他の要素は、例えば、マルチプレイヤ・ビデオ・ゲーミング、または他のマルチユーザ環境とコンテンツがより効率的にやり取りすることを可能にすることによるなどの、コンテンツの収集、構成、プロビジョニング、およびデプロイメントをより簡単で、迅速に達成することを可能にできる、開発者により作成されるコンテンツへ組み込まれた、コードおよび他の機能性を提供できる。例えば、コンテンツを作成するために使用されるSDKは、1人以上のユーザについて新規のユーザ・セッションの構成、ならびに占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することについての情報の収集を支援することができる。
コンテンツ自体に加えて、また開発者および他の当事者らは、コンテンツを使用するために承認されるさまざまなユーザのアイデンティティ、およびいくつかの事例で、さまざまなユーザについてそれぞれのコンテンツ資格と関連する情報を提供できる。例えば、異なるビルドおよび/またはバージョンのコンテンツが利用可能である場合に、異なる承認されたユーザは、異なるビルドおよび/またはバージョンのために示され得る。コンテンツ・アイテムをデプロイメントのためにアクセス可能にすると、コンテンツ・アイテムの1つ以上のインスタンスは、仮想マシン・インスタンスにイメージとしてインストールされ得る。次にコンテンツ・アイテムの追加のインスタンスは、同一の仮想マシン・インスタンスで、および/または任意の数の追加の仮想マシン・インスタンスへイメージをコピーすることで、起動され得る。これらの、および他の技術により、コンテンツ・アイテムは、迅速で、効率的で、信頼性が高く、安全な方式で、多数のユーザに利用可能にされ得る。
いくつかの実施例で、デプロイされたコンテンツは、マルチプレイヤ・ビデオ・ゲーム、または他のマルチユーザ・アプリケーションで発生する可能性があるような、複数の異なるユーザがコンテンツを制御して、これとやり取りすることを可能にするように設計され得る。このようなマルチユーザ制御およびインタラクションを許可するために、開示された技術は、ユーザ・セッション、およびコンテンツ・アイテム・インスタンスのような概念を採用できる。いくつかの実施例で、コンテンツ・アイテムの1つ以上のインスタンスは、複数の同時に割り当てられたユーザ・セッションで実行するように構成可能であり得る。これは、例えば、複数のユーザが互いとプレイすること、もしくは互いと対戦すること、またはその他の方法で、実行するコンテンツ・アイテム・インスタンスから入力を提供して出力を受信するように共同することを可能にできる。各コンテンツ・アイテム・インスタンスは、いくつかの事例で、利用可能なユーザ・セッションの関連した数量を有することができる。いくつかの実施例で、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスと関連する情報を収集できる。この情報は、いくつかの事例で、適切なコンテンツ・アイテム・インスタンスへ承認されたユーザをマッチングして割り当てるために使用され得る。例えば、いくつかの事例で、承認されたユーザがシステムに接続するときに、ユーザは、好ましいプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、特定のユーザ・コンテンツ選好を示すことができる。この選好情報は、少なくとも1つの占有されていないユーザ・セッションを有する特定のコンテンツ・アイテム・インスタンスへユーザをマッチングするために使用され得る。いくつかの実施例で、このようなコンテンツ・アイテム・インスタンスが利用可能でない場合に、次に、ユーザの選好により良く応えることができる、追加のコンテンツ・アイテム・インスタンスを開始できる。
上記で記載されるように、いくつかの実施例で、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスと関連する情報を収集できる。いくつかの事例で、この情報を1人以上の利用可能な受信者へルーティングするルーティング機能へ、この情報を定期的に提供できる。いくつかの実施例で、利用可能な受信者は、コンテンツ・アイテム・インスタンス情報サービス、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービス、ならびにその他のものと関連することができる。コンテンツ・アイテム・インスタンス情報サービスは、例えば、コンテンツ・アイテム・インスタンスへユーザ・セッションのマッチングおよび割り当て、新規のコンテンツ・アイテム・インスタンスの起動、ならびにコンテンツ開発者、および他の当事者らへのコンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックについての情報を提供できる。コンテンツ・アイテム・フリート情報サービスは、例えば、開発者および他の当事者らへのコンテンツ・アイテム・フリート・レベル・フィードバックおよびメトリックを提供できる。コンテンツ・アイテム・フリートは、同一バージョンのコンテンツ・アイテムをすべて実行している、コンテンツ・アイテム・インスタンスのグルーピングなどの、同一の、または関連したコンテンツ・アイテムのインスタンスのグルーピングである。履歴情報サービスは、例えば、開発者および他の当事者らへ履歴フィードバックおよびメトリックを提供できる。いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービスについてのルーティング機能および/または処理機能は、ルーティングおよび/または処理のためのテレメトリ情報の受信などの、イベントに少なくとも部分的に基づくコードを実行する分散コンピューティング・ベース(例えば、クラウド・ベース)機能であり得る。一般的に言えば、このようなクラウド・ベース機能、およびこのような機能を提供するサービスは、イベントに応答してコードを実行し、計算リソースを自動的に管理することが可能である。加えて、このようなクラウド・ベース機能およびサービスは、コードを実行することを開始すること、またはわずかな時間にコンピューティング・リソースをトリガすることができ、これらのコンピューティング・リソースは、コードを実行すると削除できる。
本開示に従い使用され得る例示的なコンテンツ・デプロイメント、スケーリングおよびテレメトリ・システム150の図解を図1に示す。示されるように、コンテンツ開発者計算ノード100は、例えば、コンテンツ開発者、または他の当事者らにより操作される、さまざまなインタフェース、コンソール、および/またはダッシュボードを含み得る。ユーザ計算ノード110は、例えば、インターネットのような1つ以上のワイド・エリア・ネットワーク(WAN)、および/または1つ以上のローカル・エリア・ネットワーク(LAN)を含む、1つ以上のネットワークを使用して、アイデンティティおよび資格サービス105、コンテンツ・アイテム・インスタンス情報サービス115、および/またはテレメトリ・コンポーネント125と通信できる。理解されるように、単一の開発者計算ノード100のみを図1で示すが、システム150は、任意の数の異なるコンテンツ・アイテムをデプロイする、任意の数の異なる開発者、および他の当事者らを含むことができる。いくつかの事例で、コンテンツ開発者計算ノード100は、1つ以上の統合された開発環境(IDE)アプリケーション、またはそれらの部分を実行し、コンテンツ開発を支援できる。一般的に、以下でより詳細に記述されるように、コンテンツ開発者計算ノード100は、例えば、開発者がコンテンツ・アイテムを設計して開発し、デプロイメントのためにコンテンツ・アイテムへのアクセスを提供し、ユーザ・アイデンティティおよび/または資格情報を提供し、コンテンツ・アイテム・インスタンス、コンテンツ・アイテム・フリート、および履歴情報と関連するフィードバックおよびメトリックを監視して取得する、ならびに他の操作をすることを可能にできる。また、以下でより詳細に記述されるように、開発者が特定のコンテンツ・アイテムをデプロイする準備ができているときに、コンテンツにアクセスするための情報は、例えば、さまざまなユーザへアクセス可能にされる、コンテンツ・アイテムのインスタンスを実行するためにさまざまな操作を実行できる、コンテンツ実行コンポーネント120へ提供され得る。
いくつかの実施例で、コンテンツの開発および提供に加えて、開発者および他の当事者らは、また、さまざまなユーザについてのアイデンティティおよび/または資格情報を提供し、提供されたコンテンツにアクセスできる。特に、開発者計算ノード100は、時々アイデンティティおよび資格サービス105とやり取りし、このアイデンティティおよび/または資格情報を提供できる。他の実施例で、情報は、他の当事者らによって、アイデンティティおよび資格サービス105へ提供され得る。いくつかの事例で、開発者または他の当事者らは、1つ以上のコンテンツ・アイテムにアクセスできる承認されたユーザのインディケーションを提供することで、アイデンティティ・プールを構成できる。いくつかの実施例で、アイデンティティおよび資格サービス105は、さまざまなユーザのアイデンティティを認証するために、ユーザ名、パスワード、および同様のものなどのアイデンティティ認証情報を生成する、または受信することができる。ユーザ・アイデンティティ、およびそれらと関連する認証情報は、例えば、アイデンティティ情報107内へ、格納され得る。また、いくつかの実施例で、開発者または他の当事者らは、各承認されたユーザがやり取りする権利を与えられるコンテンツ・アイテムを示すことができる、資格情報106を提供できる。いくつかの実施例で、特定のユーザのみがテスト・バージョン、もしくは完全に開発されたバージョン、ユーザが支払った、もしくはサブスクライブした特定のバージョン、または任意の他のタイプのコンテンツにアクセスすることを許可できる。
ユーザ計算ノード110は、特定のコンテンツ・アイテム・インスタンスとのやり取りについてのユーザ・セッションなどの、コンテンツへのアクセスを要求するユーザにより利用され得る。ユーザ計算ノード110は、例えば、インターネットのような1つ以上のワイド・エリア・ネットワーク(WAN)、および/または1つ以上のローカル・エリア・ネットワーク(LAN)を含む、1つ以上のネットワークを使用して、アイデンティティおよび資格サービス105、コンテンツ・アイテム・インスタンス情報サービス115、および/またはコンテンツ実行コンポーネント120と通信できる。理解されるように、単一のユーザ計算ノード110のみを図1で示すが、システム150は、同一の、または異なるコンテンツにアクセスする、任意の数の異なるユーザを含むことができる。いくつかの事例で、コンテンツへのアクセスを要求するユーザのために、システム150によりデプロイされるコンテンツにアクセスするためにユーザを承認するかどうかの判定を行うことができる。いくつかの実施例で、システム・インタフェース111は、アイデンティティ情報107に格納されるユーザについてのアイデンティティ認証情報へ提供されたユーザ・アイデンティティ認証情報をマッチングしようとすることができるアイデンティティおよび資格サービス105へ、ユーザについてのアイデンティティ認証情報を提供できる。マッチングを判定しない場合に、次にユーザは、例えば、任意のコンテンツへのアクセスを拒否される可能性がある、および/またはコンテンツへのアクセスについて登録する、支払う、および/またはサブスクライブするように促される可能性がある、および/またはこれらの操作を実行するためにさまざまなサービスへリダイレクトされる可能性がある。他方で、ユーザの提供されたアイデンティティ認証が格納されたアイデンティティ認証情報へマッチングされる場合、ユーザのアイデンティティは、認証されることができ、ユーザは、システム150とさらにやり取りし、コンテンツへのアクセスを要求することを許可され得る。
次にユーザ計算ノード110のコンテンツ・クライアント112は、コンテンツ・アイテム・インスタンス情報サービス115と通信し、コンテンツ・アイテム・インスタンス情報サービス115へユーザについての情報を提供できる。そして次に、コンテンツ・アイテム・インスタンス情報サービス115は、アイデンティティおよび資格サービス105と通信し、資格情報106に少なくとも部分的に基づき、ユーザがアクセスについて承認され、アクセス権を与えられるコンテンツを判定できる。以下でより詳細に記述されるように、次にユーザは、ユーザがアクセス権を与えられる、選択されたコンテンツ・アイテムへのアクセスを要求することができ、コンテンツ・アイテム・インスタンス情報サービス115は、コンテンツ実行コンポーネント120内で実行する選択されたコンテンツ・アイテムの特定のインスタンスへユーザについてのユーザ・セッションをマッチングし、割り当てることができる。この割り当て情報は、コンテンツ実行コンポーネント120へ転送され得、これは、コンテンツ・クライアント112と、その割り当てられマッチングされたコンテンツ・アイテム・インスタンスとの間の通信を確立できる。
コンテンツのスケーリングおよび実行に加えて、またコンテンツ実行コンポーネント120は、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することに係るさまざまなテレメトリ情報を収集できる。コンテンツ実行コンポーネント120は、以下でより詳細に記述されるように、テレメトリ・データをルーティングして処理できるテレメトリ・コンポーネント125へ、この収集されたテレメトリ情報を提供できる。例えば、テレメトリ・コンポーネントは、コンテンツ・アイテム・インスタンス情報サービス115へ、コンテンツ・アイテム・インスタンス情報を提供できる。このコンテンツ・アイテム・インスタンス情報は、例えば、コンテンツ・アイテム・インスタンスへのユーザ・セッションのマッチングおよび割り当て、新規のコンテンツ・アイテム・インスタンスの起動、ならびにコンテンツ開発者、および他の当事者らへのコンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックを有効にすることができる。コンテンツ・アイテム・インスタンス情報サービス115に加えて、またテレメトリ情報は、コンテンツ・アイテム・フリート情報サービス、および履歴情報サービスのような、他のサービスへ提供され得る。これらの、および他のテレメトリ・データ・サービスは、図3を参照して以下でより詳細に記述される。
図2は、本開示に従い使用され得る、例示的なコンテンツ・スケーリングおよび実行システムを示す図である。図2で示されるように、コンテンツ実行コンポーネント120(図1でも示される)は、デプロイされたコンテンツをスケーリングするためのさまざまな操作を実行できる、スケーリング・コンポーネント230を含む。特に、コンテンツ・アイテムがシステム150を使用してデプロイメントのための準備ができているときに、コンテンツ・アイテムがデプロイメントのための準備ができていることを示し、位置および/またはアドレス情報のような、コンテンツにアクセスするための情報を提供するメッセージを、開発者計算ノード100を介して送信できる。いくつかの実施例で、また開発者は、コンテンツ・アイテム・フリートのための名前、開発段階、およびコンテンツ・アイテムの説明などの追加情報を提供できる。アクセス情報、およびいくつかの事例で、追加情報は、仮想マシン・インスタンス上にイメージとしてコンテンツ・アイテムの1つ以上のインスタンスをインストールする命令を発行できる、コンテンツ・スケーリング・コンポーネント230へ提供できる。以下でより詳細に記述されるように、次にコンテンツ・アイテムの追加のインスタンスは、同一の仮想マシン・インスタンスで、および/または任意の数の追加の仮想マシン・インスタンスにイメージをコピーすることで起動され得る。
デプロイされたコンテンツ・アイテムについてのコンテンツ・アイテム・インスタンスのグルーピングは、コンテンツ・アイテム・フリートと言われる。図2で、コンテンツ実行コンポーネント120は、例示的なコンテンツ・アイテム・フリート210を実行する。理解されるように、単一のコンテンツ・アイテム・フリート210のみを図2で示すが、コンテンツ実行コンポーネント120は、同時に、または異なる時間に、任意の数の異なるコンテンツ・アイテム・フリートを実行できる。図2の特定の実施例で、コンテンツ・アイテム・フリート210は、3つのコンテンツ・アイテム・インスタンスを各実行する、2つの仮想マシン・インスタンス220A、および220Nを含む。特に、仮想マシン・インスタンス220Aは、コンテンツ・アイテム・インスタンス201A〜Nを実行し、仮想マシン・インスタンス220Nは、コンテンツ・アイテム・インスタンス221A〜Nを実行する。しかしながら、開示された技術に従いコンテンツ・アイテム・フリートは、任意の数の異なるコンテンツ・アイテム・インスタンスを各実行する任意の数の仮想マシン・インスタンスを含むことができることに留意する。いくつかの実施例で、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nのうちの1つ以上、ならびにいくつかの事例で、すべてのコンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nは、複数の同時に割り当てられたユーザ・セッションで実行するように構成可能であり得る。これは、例えば、マルチプレイヤ・ビデオ・ゲーム、または他のマルチユーザ・アプリケーションで起こり得るような、複数のユーザが互いにプレイする、もしくは互いに対戦すること、またはその他の方法で単一のコンテンツ・アイテム・インスタンス内で共同することを可能にできる。
いくつかの実施例で、各コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nは、その割り当てられたユーザ・セッションから、制御入力(例えば、キャラクタの動き、武器の発射、メニューの選択など)のような、入力を受信できる。また、いくつかの実施例で、次に各コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nは、割り当てられたユーザ・セッションについてのユーザ計算ノードへ、ステート・データ更新、イベント・データ更新、および他の情報などの、コンテンツ情報を送信できる。ユーザ計算ノードは、このデータを使用して、それらのそれぞれのコンテンツ計算ノードにコンテンツをレンダリングし、提示できる。いくつかの実施例で、各ユーザ・ノードは、コンテンツ・アイテムと関連するグラフィックス・データのレンダリングのための1つ以上のグラフィックス・プロセッシング・ユニット(GPU)を含むことができる。
いくつかの他の実施例で、コンテンツは、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nにより生成されるおよび/または維持されるコンテンツ情報に基づき、コンテンツ実行コンポーネント120によりレンダリングされ得る。これらの実施例で、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nは、いくつかの事例で、それぞれ、1つ以上のGPUへのアクセスを有することができる。次にレンダリングされたコンテンツは、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nにより、割り当てられたユーザ・セッションについてのユーザ計算ノードへ送信され得る。
図2で示されるように、各コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nは、それぞれインスタンス・インタフェース202A〜Nおよび222A〜Nを含む。いくつかの実施例で、各インスタンス・インタフェース202A〜Nおよび222A〜Nは、ソフトウェア開発キット(SDK)を使用することと関連し、および/またはこれを使用して実装されることができ、コンテンツ・アイテム・インスタンスの構成、コンテンツ・アイテム・インスタンスでのユーザ・セッションの開始、およびテレメトリ情報などの、コンテンツ・アイテム・インスタンスから情報の収集を有効にすることを支援できる。例えば、いくつかの事例で、1つ以上のSDKのような、インスタンス・インタフェース202A〜Nおよび222A〜Nと関連するさまざまな命令は、開発者へ公開される、および/または提供され得る。これらの命令は、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nを有効にすることを支援し、上記で説明されるタスク、および場合により他のタスクを実行できる。開発者は、デプロイメントのためにアクセス可能にされるコンテンツ・アイテムとこれらの命令を、次に、含む、組み込む、またはその他の方法で関連付けることができる。インスタンス・インタフェース202A〜Nおよび222A〜Nにより提供されたテレメトリ情報は、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することに係る情報を含むことができる。
また図2で示されるように、インスタンス・インタフェース202A〜Nは、仮想マシン・インスタンス220Aのためのプロキシ・コンポーネント203と通信することができ、インスタンス・インタフェース222A〜Nは、仮想マシン・インスタンス220Nのためのプロキシ・コンポーネント223と通信できる。プロキシ・コンポーネント203および223は、一般に、スケーリング・コンポーネント230、およびテレメトリ・ランディング301のように、コンテンツ・アイテム202A〜Nおよび222A〜Nと仮想マシン・インスタンス220A〜Nの外部にあるコンポーネントとの間の情報、およびコマンドの交換を許可できる。特に、いくつかの実施例で、プロキシ・コンポーネント203および223は、コンテンツ・アイテム・インスタンスおよびコマンドを起動して、ユーザ・セッションを特定のコンテンツ・アイテム・インスタンスへ追加するコマンドなどの、スケーリング・コンポーネント230からのコマンドを受信できる。いくつかの実施例で、またプロキシ・コンポーネント203および223は、コンテンツ・アイテム・インスタンスを実行することについて、スケーリング・コンポーネント230、および/またはテレメトリ・ランディング301へ情報を提供できる。プロキシ・コンポーネント203および223により提供された情報は、例えば、上記で説明されるテレメトリ情報、または他の関連情報のうちのいずれかなどの、インスタンス・インタフェース202A〜Nおよび222A〜Nにより収集された情報のうちのいずれかを含むことができる。プロキシ・コンポーネント203および223は、定期的な繰り返し間隔(例えば、毎分、または5分毎)で、特定のイベントもしくは条件に応答して、連続的なもしくは断続的なストリームで、またはこれらの任意の組み合わせ、もしくは他の技術の任意の組み合わせを使用してなどの、任意の所望の間隔でコンテンツ・アイテム・インスタンス情報を提供できる。
いくつかの実施例で、スケーリング・コンポーネント230は、例えば、上記で説明されるようなプロキシ・コンポーネント203および223により提供される情報に基づき、コンテンツ・アイテム・フリート210を監視できる。いくつかの事例で、スケーリング・コンポーネント230は、この情報を使用して、追加の仮想マシン・インスタンスおよび/もしくはコンテンツ・アイテム・インスタンスをコンテンツ・アイテム・フリート210へ割り当てることで、ならびに/またはコンテンツ・アイテム・フリート210から既存の仮想マシン・インスタンスおよび/もしくはコンテンツ・アイテム・インスタンスの割り当てを解除することで、コンテンツ・アイテム・フリート210を自動的にスケーリングすることができる。いくつかの実施例で、特定の構成可能な条件は、スケーリング・コンポーネント230に追加の仮想マシン・インスタンスおよび/またはコンテンツ・アイテム・インスタンスをコンテンツ・アイテム・フリートへ割り当てさせることができる。これらの条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および/または平均数が特定の数量を満たしている、または下回っていると判定すること、フリート内の1つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または下回っていると判定すること、および/または他の条件を含むことができる。また、いくつかの実施例で、スケーリング・コンポーネント230は、特定のコンテンツ属性(例えば、モード、仮想位置、キャラクタ、武器、プロット・ライン、ストーリー・アークなど)を含むコンテンツ・アイテム・インスタンスのサブセットなどの、コンテンツ・アイテム・フリートの特定のサブセットが上記で説明された例示的な割り当て条件、または他の条件のうちのいずれかを満たす判定に基づきコンテンツ・アイテム・フリートへ、追加の仮想マシン・インスタンス、および/またはコンテンツ・アイテム・インスタンスを割り当てることができる。
また、いくつかの実施例で、特定の構成可能な条件は、スケーリング・コンポーネント230にコンテンツ・アイテム・フリートから仮想マシン・インスタンス、および/またはコンテンツ・アイテム・インスタンスの割り当てを解除させることができる。これらの条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および/または平均数が特定の数量を満たしている、または超えていると判定すること、フリート内の1つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または超えていると判定すること、および/または他の条件を含むことができる。また、いくつかの実施例で、スケーリング・コンポーネント230は、特定のコンテンツ属性(例えば、モード、仮想位置、キャラクタ、武器、プロット・ライン、ストーリー・アークなど)を含むコンテンツ・アイテム・インスタンスのサブセットのような、コンテンツ・アイテム・フリートの特定のサブセットが上記で説明される例示的な割り当て解除条件、または他の条件のうちのいずれかを満たす判定に基づき、コンテンツ・アイテム・フリートから仮想マシン・インスタンス、および/またはコンテンツ・アイテム・インスタンスの割り当てを解除できる。次に、割り当て解除された仮想マシンを最終的に終了する、および/または別の目的のために再利用できる。いくつかの事例で、割り当て解除条件が発生していると判定すると、特定の仮想マシン・インスタンスを直ちに終了する、および/または別の目的のために再利用することが有益ではない可能性があることに留意する。これは、割り当て解除のために選択された仮想マシン・インスタンスが割り当てられたユーザ・セッションでコンテンツ・アイテム・インスタンスを依然として実行していることができるためである。いくつかの実施例で、割り当て解除のために選択される仮想マシン・インスタンスでコンテンツ・アイテム・インスタンスへ追加のユーザ・セッションを割り当てることを停止する判定を行うことができる。次に、現在存在しているユーザ・セッションが期限切れであると、割り当て解除された仮想マシン・インスタンスを終了する、および/または別の目的のために再利用できる。
上記で記載されるように、スケーリング・コンポーネント230へ情報を提供することに加えて、プロキシ・コンポーネント203および223は、テレメトリ・ランディング301へ情報を提供できる。この情報は、さまざまなテレメトリ・コンポーネントによりルーティングされ、処理されるが、これは、ここで詳細に記述される。特に、図3は、本開示に従い使用され得る例示的なテレメトリ情報ルーティングおよび処理システムを説明する図である。図3で示されるように、コンテンツ実行コンポーネント120(例えば、図2で示されるような、プロキシ・コンポーネント203および223を含む)により提供された情報は、テレメトリ・コンポーネント125(図1でも示される)のテレメトリ・ランディング301へ配信され得る。テレメトリ・ランディング301へ配信されると、テレメトリ・ルーティング機能302により、テレメトリ情報にアクセスでき、テレメトリ・ルーティング機能302は、提供された情報を一般的に検証し、さまざまな要因に基づき、処理機能303A〜Dのような、1人以上の受信者へ提供された情報をルーティングできる。特に、インスタンス・レベル処理機能303Aは、コンテンツ・アイテム・インスタンス情報サービス115(図1および2でも示される)についての情報を受信して処理する。フリート・レベル情報処理機能303Bは、コンテンツ・アイテム・フリート情報サービス304についての情報を受信して処理する。履歴情報処理機能303Cは、履歴情報サービス305についての情報を受信して処理する。加えて、テレメトリ・ルーティング機能302は、任意の数の追加のサービス306についての情報を受信して処理できる任意の数の追加の処理機能303Dへ、情報をルーティングできる。
いくつかの実施例で、テレメトリ・ランディング301へテレメトリ情報を書き込むときに、プロキシ・コンポーネント203および223は、1セットの規約により、特定のキー、または他の識別情報でこの情報をタギングする、またはその他の方法で識別できる。これらの規約は、テレメトリ・ルーティング機能302を支援し、適切な受信者へテレメトリ情報を迅速で、効率的にルーティングできる。例えば、いくつかの事例で、テレメトリ情報は、以下のフォーマット、フリート識別子/インスタンス識別子/ルート識別子/タイムスタンプ/グローバル一意識別子(GUID)を使用して識別され得る。フリート識別子は、情報が関連する特定のコンテンツ・アイテム・フリートについての識別子であり得る。インスタンス識別子は、情報が関連する特定のコンテンツ・アイテム・インスタンスについての識別子であり得る。ルート識別子は、情報を送信する1人以上の受信者(例えば、任意の、またはすべての処理機能303A〜D)を示す識別子であり得る。タイムスタンプは、情報を収集する時間のような、情報と関連するタイムスタンプであり得る。いくつかの事例で、この識別情報は、適切な受信者へそれぞれのテレメトリ情報をルーティングするテレメトリ・ルーティング機能302のために要求されるすべてであり得る。
いくつかの実施例で、テレメトリ・ルーティング機能302、および/または処理機能303A〜Dのいずれかは、ルーティングおよび/または処理のためのテレメトリ情報の受信などの、イベントに少なくとも部分的に基づきコードを実行する、分散コンピューティング・ベース(例えば、クラウド・ベース)機能であり得る。例えば、いくつかの事例で、テレメトリ・ルーティング機能302は、テレメトリ・ランディング301でテレメトリ情報の受信を検出できる、および/またはこの受信を通知され得る。これに応答して、テレメトリ・ルーティング機能302は、例えば、上記で記述されるような識別情報に基づき、テレメトリ情報をルーティングするためのコードの実行を自動的に開始することができる。同様に、次に、処理機能303A〜Dは、それへルーティングされているテレメトリ情報を検出でき、および/またはこの情報を通知されることができ、次に、受信した情報を編成して格納し、例えば、任意の適切な警報または通知を生成することなどにより、受信した情報を処理するためにコードの実行を自動的に開始できる。いくつかの実施例で、イベントに少なくとも部分的に基づきコードを実行する分散コンピューティング・ベース(例えば、クラウド・ベース)機能を使用すするテレメトリ・ルーティング機能302、および/または処理機能303A〜Dの実装は、例えば、新規のテレメトリ情報がルーティングおよび/または処理のために利用不可能であるときでさえ、一定の実行を維持したルーティングおよび/または処理サービスのために要求される可能性があるコンピューティング・リソースおよびコストの量を削減することにより、有益であり得る。
コンテンツ・アイテム・インスタンス情報サービス115は、例えば、図2のコンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nを含む、コンテンツ実行コンポーネント120により実行された個々のコンテンツ・アイテム・インスタンスに関連する情報を一般的に受信して提供できる。この情報は、例えば、コンテンツ・アイテム・インスタンスを各実行することについて占有されたユーザ・セッション数、コンテンツ・アイテム・インスタンスを各実行することについて占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間情報、コンテンツ・アイテム・インスタンスを各実行する際のメモリ使用量、および同様のものを含むことができる。コンテンツ・アイテム・インスタンス情報サービス115は、この情報を使用して、例えば、特定のコンテンツ・アイテム・インスタンスへのユーザ・セッションのマッチングおよび割り当てを支援できる。特に、図1に戻り参照すると、ユーザ計算ノード110のコンテンツ・クライアント112がコンテンツ・アイテム・インスタンス情報サービス115と通信し、利用可能なコンテンツについての情報を要求すること、および利用可能なコンテンツへのアクセスを要求できることがわかる。図1でも示されるように、コンテンツ・アイテム・インスタンス情報サービス115は、アイデンティティおよび資格サービス105と通信し、資格情報106に少なくとも部分的に基づき、ユーザがアクセス権を与えられるコンテンツ・アイテムを判定できる。資格情報106が、さまざまな異なるレベルの粒度でユーザ資格を示すことができることに留意する。例えば、いくつかの事例で、資格情報106は、ユーザがシステム150により実行されるコンテンツへのアクセスを一般的に許可されるかどうかを示すことができる。他の事例で、資格情報106は、より細かい粒度レベルで提供されることができ、特定のタイトル、特定のバージョン、特定のストーリー・アーク、またはプロット・ライン、特定の仮想位置、特定のモード、特定のキャラクタ、特定の武器、および同様のものなどの、ユーザがアクセス権を与えられる特定のコンテンツを示すことができる。
いくつかの実施例で、コンテンツ・クライアント112は、すべての利用可能なコンテンツ・アイテムのリスト、または特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの特定のコンテンツ属性を有するコンテンツ・アイテムのような、ユーザがアクセス権を与えられる利用可能なコンテンツ・アイテムについての情報を、コンテンツ・アイテム・インスタンス情報サービス115が提供することを要求できる。この情報を受信すると、いくつかの実施例で、ユーザは、特定のコンテンツ・アイテムを選択し、コンテンツ・クライアント112を介して選択されたコンテンツ・アイテムへアクセスする要求を提示できる。加えて、コンテンツ・クライアント112は、また、特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、ユーザにより所望の特定のコンテンツ選好についての情報を、コンテンツ・アイテム・インスタンス情報サービス115へ提供できる。次に、コンテンツ・アイテム・インスタンス情報サービス115は、ユーザの要求、ユーザの選好、およびテレメトリ・コンポーネント125から受信したテレメトリ情報に少なくとも部分的に基づき、ユーザの選択されたコンテンツ・アイテムの特定のインスタンスへユーザの要求をマッチングすることができる。
いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス115は、ユーザの要求した選好のコンテンツ属性をマッチングする、または少なくとも部分的にマッチングするコンテンツ属性を有する選択されたコンテンツ・アイテムの1つ以上のインスタンスを識別しようとすることができる。コンテンツ・アイテム・インスタンス情報サービス115は、さまざまな異なる技術を介してコンテンツ・アイテム・インスタンスを実行するためにコンテンツ属性情報を取得できる。いくつかの実施例で、コンテンツ属性情報は、テレメトリ・コンポーネント125から利用可能にされるテレメトリ情報の部分として収集され提供され得る、図2のスケーリング・コンポーネント230から取得され得る、またはその他の方法で、コンテンツ・アイテム・インスタンス情報サービス115へ利用可能にされ得る。ユーザの選好に少なくとも部分的にマッチングするコンテンツ属性で、1つ以上のコンテンツ・アイテム・インスタンスを識別すると、次にコンテンツ・アイテム情報サービスは、テレメトリ・コンポーネント125からのテレメトリ情報に少なくとも部分的に基づき、識別されたコンテンツ・アイテム・インスタンスのうちのいずれかについて任意の占有されていないユーザ・セッションがあるかどうかを判定できる。いくつかの実施例で、次に、コンテンツ・アイテム・インスタンス情報サービス115は、少なくとも1つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスのうちの1つへユーザを割り当てることができる。いくつかの実施例で、ユーザは、ユーザの選好に最も良くマッチングするコンテンツ属性を有する少なくとも1つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスへ割り当てられ得る。他の実施例で、ユーザは、例えば、ユーザの選好、占有されていないユーザ・セッション数、および同様のものを含む、要因の組み合わせに基づきコンテンツ・アイテム・インスタンスへ割り当てられ得る。例えば、ユーザが参加するコンテンツ・アイテム・インスタンスについて5つの異なるコンテンツ属性選好を指定するシナリオを考察する。ここで、第一コンテンツ・アイテム・インスタンスがすべての5つのユーザの選好にマッチングするが、1つの占有されていないユーザ・セッションのみを有し、第二コンテンツ・アイテム・インスタンスが5つのユーザの選好からの4つにマッチングするが、10個の占有されていないユーザ・セッションを有すると想定する。このシナリオで、選好が第一コンテンツ・アイテム・インスタンスへより一層強く相関され得る、他のユーザに利用可能な第一コンテンツ・アイテム・インスタンスの単一の残りの占有されていないユーザ・セッションを維持するために、第二コンテンツ・アイテム・インスタンスへユーザを割り当てることは、有益であり得る。また、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス115は、ユーザが割り当てについて識別されたコンテンツ・アイテム・インスタンスのうちの1つを選択することを可能にするため、またはその他の方法でこのような選択を行うための入力を提供することを可能にするために、コンテンツ・クライアント112へユーザの選好を少なくとも部分的にマッチングする、少なくとも1つの占有されていないユーザ・セッションを有する識別されたコンテンツ・アイテム・インスタンスについての情報を提供できる。
いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス115は、既存のすでに起動され実行しているコンテンツ・アイテム・インスタンスへユーザをマッチングして割り当てる代わりに、スケーリング・コンポーネント230がユーザを割り当てる追加のコンテンツ・アイテム・インスタンスを起動させることを要求できる。これは、例えば、フリート内の既存のコンテンツ・アイテム・インスタンスが任意の残りの占有されていないユーザ・セッションを全く有さないときに、および/またはフリート内の既存のコンテンツ・アイテム・インスタンスがユーザの要求したコンテンツ属性選好を十分にマッチングすると判定されるコンテンツ属性を全く有さないときに、起こり得る。
特定のコンテンツ・アイテム・インスタンスへユーザをマッチングし、割り当てると、コンテンツ・アイテム・インスタンス情報サービス115は、スケーリング・コンポーネント230へ割り当てられたコンテンツ・アイテム・インスタンスのインディケーション(または新規のコンテンツ・アイテム・インスタンスを起動させる命令)を提供できる。スケーリング・コンポーネント230は、例えば、ユーザ計算ノード110でコンテンツ・クライアント112と通信するように割り当てられたコンテンツ・アイテム・インスタンスに指令することで、次に、ユーザについてのユーザ・セッション、および割り当てられたコンテンツ・アイテム・インスタンス間の通信を確立できる。上記で記載されるように、いくつかの実施例で、これらの通信は、割り当てられたコンテンツ・アイテム・インスタンスにより、ユーザ・セッションへ対応するコンテンツ・クライアント112へコンテンツ・アイテム・インスタンスと関連する、ステート情報、イベント情報、レンダリングされたグラフィックスおよびオーディオ、および/または他の情報を送信することを備え得る。また、いくつかの実施例で、これらの通信は、コンテンツ・クライアント112により、割り当てられたコンテンツ・アイテム・インスタンスへ制御入力(例えば、キャラクタの動き、武器の発射、メニュー選択など)のような、入力を送信することを備え得る。
このようにして、上記で記述されるように、コンテンツ・アイテム・インスタンス情報サービス115は、テレメトリ・コンポーネント125により提供されるコンテンツ・アイテム・インスタンス・レベル・テレメトリ情報を使用し、コンテンツ・アイテム・インスタンスへユーザ・セッションをマッチングして割り当てるプロセスを支援できる。これらのマッチング技術に加えて、コンテンツ・アイテム・インスタンス情報サービス115へ提供されたコンテンツ・アイテム・インスタンス・レベル・テレメトリ情報を使用して、例えば、コンテンツ・アイテム・インスタンス・レベル・フィードバックおよびメトリックを開発者、およびできる限り他の当事者らへ提供することもできる。特に、図1および図3の両方で示されるように、開発者計算ノード100は、コンテンツ・アイテム・インスタンス情報サービス115にアクセスし、コンテンツ・アイテム・インスタンスを各実行するために占有されたユーザ・セッション数、コンテンツ・アイテム・インスタンスを各実行するために占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間情報、コンテンツ・アイテム・インスタンスを各実行する際のメモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンス・レベル情報を要求できる。
図3に戻り参照すると、コンテンツ・アイテム・インスタンス情報サービス115に加えて、テレメトリ・ルーティング機能302は、処理機能303B〜Dのそれぞれを介して、コンテンツ・アイテム・フリート情報サービス304、履歴情報サービス305、および他の追加のサービス306へ、テレメトリ情報をルーティングできる。コンテンツ・アイテム・フリート情報サービス304は、一般に、開発者、および/または他の当事者らへコンテンツ・アイテム・フリート・レベル・テレメトリ情報を、受信して提供できる。コンテンツ・アイテム・フリート・レベル情報は、フリート内で占有されたユーザ・セッション、フリート内で占有されていないユーザ・セッション、フリートについてのインスタンス持続時間情報、フリートによるメモリ使用量、フリート内で実行するインスタンス数、インスタンス終了情報、および同様のものに関連する情報を含むことができる。占有されたユーザ・セッションについて、フリート・レベル情報は、例えば、すべてのフリート・インスタンスについて占有されたユーザ・セッションの総数、すべてのフリート・インスタンスについて占有されたユーザ・セッションの平均数、最少の占有されたセッションに関するフリート・インスタンス内で占有されたセッション数、最多の占有されたセッションに関するフリート・インスタンス内で占有されたセッション数、および同様のものを含むことができる。占有されていないユーザ・セッションについて、フリート・レベル情報は、例えば、すべてのフリート・インスタンスについて占有されていないユーザ・セッションの総数、すべてのフリート・インスタンスについて占有されていないユーザ・セッションの平均数、最少の占有されていないセッションに関するフリート・インスタンス内の占有されていないセッション数、最多の占有されていないセッションに関するフリート・インスタンス内の占有されていないセッション数、および同様のものを含むことができる。インスタンス持続時間情報について、フリート・レベル情報は、例えば、特定の期間内で終了したインスタンス数と同様に、特定の期間内で終了したフリート・インスタンスについての、合計の、平均の、最長の、および最短の持続時間を有することができる。メモリ使用量情報について、フリート・レベル情報は、例えば、フリート・インスタンスについての、合計の、平均の、最多の、および最少のメモリ使用量を有することができる。
いくつかの実施例で、コンテンツ・アイテム・フリート情報サービス304、および/またはコンテンツ・アイテム・インスタンス情報サービス115は、開発者、または他の当事者らがコンテンツ・アイテム・フリートおよび/またはインスタンスと関連する特定のイベントまたは条件を通知され得るように、警報および/または他の通知を彼らが設定することを可能にできる。警報をトリガすることができる、いくつかの例示的な条件は、指定されたレベルを満たす、超える、または下回る占有されたフリート・セッションの総数、占有されたセッションの指定された数より少ない1つ以上のフリート・インスタンス、指定されたレベルを満たす、超える、または下回る占有されていないフリート・セッションの総数、指定された平均持続時間より短いフリート・インスタンス、指定された平均または最多メモリ使用量より多いフリート・インスタンス、および他の条件である。
履歴情報サービス305は、一般に、コンテンツ・アイテム・フリート、および/またはコンテンツ・アイテム・インスタンスに関連する、履歴情報を受信し、維持し、提供できる。いくつかの実施例で、履歴情報サービスは、先に終了したコンテンツ・アイテム・フリート、および/またはコンテンツ・アイテム・インスタンスについての履歴情報、および/または全体的に、または部分的に実行され続けることができる、コンテンツ・アイテム・フリート、および/またはコンテンツ・アイテム・インスタンスについての情報を含むことができる。履歴情報サービス305は、例えば、任意の、またはすべてのインスタンス・レベル情報、および/または上記で詳細に記載されるフリート・レベル情報、および/または任意の他の関連する履歴情報を提供できる。いくつかの実施例で、履歴情報は、過去60日もしくは90日、または任意の他の関連する期間などの、特定の指定可能な履歴期間の情報を、開発者および/または他の当事者らが要求することを可能にできる。
開示された技術のさまざまな態様を実行するための、いくつかの例示的なプロセスが、ここで詳細に記述される。特に、図4は、本開示に従い使用され得る、例示的なコンテンツ・デプロイメント、およびスケーリング・プロセスを説明する図である。上記で記載されるように、コンテンツは、コンテンツ・アイテム・フリートと本明細書で言われる、コンテンツ・アイテムの複数のインスタンスを使用してデプロイされ得る。いくつかの実施例で、フリート内のコンテンツ・アイテム・インスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり得る。いくつかの実施例で、フリート内のすべてのコンテンツ・アイテム・インスタンスは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり得る。また、いくつかの実施例で、フリート内の少なくとも2つのコンテンツ・アイテム・インスタンスは、単一の仮想マシン・インスタンスで実行できる。図4で示されるように、操作410で、コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信できる。上記で記載されるように、コンテンツ・アイテムは、開発されている、および/またはテストされている、ビデオ・ゲームのようなコンテンツ、または完全に開発され、テストされ、販売されている、もしくはその他の方法で顧客、もしくは他のユーザへデプロイされているコンテンツを含むことができる。また、上記で記載されるように、いくつかの実施例で、コンテンツは、さまざまなバックエンドもしくは他のサービスと関連する、および/または統合されるSDKもしくは他の要素、または、コンテンツ・アイテム・インスタンス情報サービス115、インスタンス・インタフェース220A〜Nおよび222A〜N、および/または図2のコンテンツ実行コンポーネント120などの、コンテンツ・アイテムのデプロイされたインスタンスをホストする、もしくはその他の方法でこれらとやり取りできるコンポーネントを使用して、作成され得る。これらの実施例で、SDKまたは他の要素は、例えば、コンテンツがマルチプレイヤ・ビデオ・ゲーミング、または他のマルチユーザ環境とより効率的にやり取りすることを可能にすることなどのように、例えば、コンテンツの摂取、構成、プロビジョニング、およびデプロイメントがより簡単で、迅速に達成されることを可能にできる、開発者により作成されたコンテンツへ組み込まれたコードおよび他の機能性を提供できる。例えば、コンテンツを作成するために使用されるSDKは、1人以上のユーザについて新規のユーザ・セッションの構成、ならびに、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものなどの、コンテンツ・アイテム・インスタンスを実行することについての情報の収集を支援することができる。インディケーションは、例えば、図1の開発者計算ノード100などのような、例えば、開発者計算ノードから図1のコンテンツ実行コンポーネント120などのような、コンテンツ実行コンポーネントにより受信され得る。操作412で、コンテンツ・アイテム情報を受信する。このようなコンテンツ・アイテムは、コンテンツ・アイテム・インスタンス情報サービス115、および/または、例えば、コンテンツ実行コンポーネント120と関連するSDKで作成されているビデオ・ゲームと関連するバイナリ・ファイルなどの、ファイル、バイナリ、またはコードを含み得る。操作412で受信した情報は、例えば、コンテンツ・アイテムと関連する他のデータのコードを格納する位置などのような、コンテンツにアクセスするための情報、またはコンテンツ・アイテムにアクセスするための他の情報を含み得る。操作412で受信した情報は、例えば、コンテンツ・アイテムのインスタンスのフリートについての名前、コンテンツ・アイテムについての開発段階、コンテンツ・アイテムの説明、および他の情報を含むこともできる。操作414で、コンテンツ・アイテムの少なくとも1つのインスタンスを仮想マシン・インスタンスにイメージとしてインストールする。操作414は、例えば、コンテンツ・アイテムが開発のための準備ができているインディケーション、および任意の関連したコンテンツ・アイテム情報に基づき実行され得る。いくつかの実施例で、図2のスケーリング・コンポーネント230は、コンテンツ・アイテム・コードについての位置情報を受信し、コンテンツ・アイテム・コードについての命令を発行し、特定の仮想マシンにイメージとして、受信した位置情報で識別された位置からインストールされ得る。
操作416で、ユーザについてのアイデンティティ情報を受信する。図1のアイデンティティ情報107のような、ユーザ・アイデンティティ情報を開発者から、または他の当事者らから受信できる。上記で記載されるように、ユーザについてのアイデンティティ情報は、例えば、ユーザ名、およびパスワードのような、承認されたユーザのアイデンティティを認証するためのアイデンティティ認証情報を含み得る。理解されるように、ユーザ・アイデンティティ情報は、任意の時間に受信され、特定のコンテンツ・アイテムを実際にデプロイする前、または後のいずれか一方で、必ずしも受信される必要がなくてよい。操作418で、資格情報を受信する。図1の資格情報106のような、資格情報を開発者から、または他の当事者らから受信できる。上記で記載されるように、資格情報は、例えば、さまざまな承認されたユーザのために、承認されたユーザがアクセスする権利を与えられるコンテンツ・アイテムのインディケーションを含み得る。また上記で記載されるように、資格情報は、特定のタイトル、特定のバージョン、特定のストーリー・アーク、またはプロット・ライン、特定の仮想位置、特定のモード、特定のキャラクタ、特定の武器、および同様のものなどの、さまざまなレベルの粒度で資格を示すことができる。理解されるように、資格情報は、任意の時間に受信され、特定のコンテンツ・アイテムを実際にデプロイする前、または後のいずれか一方で、必ずしも受信される必要がなくてよい。
操作420で、承認され、コンテンツ・アイテムにアクセスする権利を与えられたユーザから要求を受信する。ユーザを認証し、ユーザのそれぞれの資格を判定して実施するためのいくつかの例示的な技術は、上記で詳細に記述されるため、ここで繰り返さない。操作422で、例えば、操作420で受信したユーザ要求に基づき、コンテンツ・アイテムについてのコンテンツ・アイテム・フリートをスケーリングする。コンテンツ・アイテム・フリートのスケーリングは、例えば、図2のスケーリング・コンポーネント230により実行され得る。いくつかの実施例で、操作422で実行されたスケーリングは、操作420で受信したユーザ要求に少なくとも部分的に基づき追加の仮想マシン・インスタンスに操作414でインストールされたイメージをコピーすることを備えることができる。また、いくつかの実施例で、コンテンツ・アイテム・フリートのスケーリングは、割り当て、および/または割り当て解除条件の検出、およびそれへ応答してさまざまな操作の実行を含むことができる。
特に、副操作424で、割り当て条件を検出するかどうかを判定する。上記で記載されるように、割り当て条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについての占有されていないユーザ・セッションの総数および/または平均数が特定の数量を満たしている、または下回っていると判定すること、フリート内の1つ以上の個々のコンテンツ・アイテム・インスタンスについての占有されていないユーザ・セッションの総数が特定の数量を満たしている、または下回っていると判定すること、および/または他の条件を備えることができる。副操作424で、割り当て条件を検出する場合に、次に副操作426で、追加の仮想マシン・インスタンスをコンテンツ・アイテム・フリートへ割り当てることができる。この割り当ては、例えば、割り当て条件の検出に基づき発生することができる。操作428で、操作414でインストールされたイメージを追加の仮想マシン・インスタンスにコピーすることで、追加のコンテンツ・アイテム・インスタンスの起動を有効にする。追加の仮想マシンは、1人または複数の追加のユーザまたはセッションを処理できる。
副操作424で割り当て条件を検出しない場合に、次に副操作430で、割り当て解除条件を検出するかどうかを判定する。上記で記載されるように、割り当て解除条件は、例えば、フリート内のすべてのコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数および/または平均数が特定の数量を満たしている、または超えていると判定すること、フリート内の1つ以上の個々のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、または超えていると判定すること、および/または他の条件を備えることができる。副操作430で割り当て解除条件を検出しない場合に、次にプロセスは、副操作424へ戻ることができる。副操作430で、割り当て解除条件を検出する場合に、次に副操作432で、コンテンツ・アイテム・フリートから仮想マシン・インスタンスの割り当てを解除できる。この割り当て解除は、例えば、割り当て解除条件の検出に基づき起こり得る。副操作434で、割り当て解除された仮想マシン・インスタンスを終了する、および/または別の目的のために再利用できる。上記で記載されるように、いくつかの事例で、割り当て解除条件が発生したと判定すると、直ちに割り当て解除された仮想マシン・インスタンスを終了する、および/または別の目的のために再利用することは、有益ではない可能性がある。むしろ、割り当て解除された仮想マシン・インスタンスでコンテンツ・アイテム・インスタンスへ追加のユーザ・セッションを割り当てることを停止する、およびその既存のユーザ・セッションの期限が切れた後に割り当て解除された仮想マシン・インスタンスを終了する、および/または別の目的のために再利用する判定を行うことができる。
副操作424および430における割り当ておよび割り当て解除条件の検出は、コンテンツ・アイテム・フリートをスケーリングすることができる方法の単なる実施例であることに留意する。特に、副操作424および430は、図4で示された順序で実行されなければならない必要はなく、異なる順序で実行され得る、および/または互いに関連して全体的に、または部分的に依存して、または独立して実行され得る。例えば、いくつかの事例で、割り当て解除条件が存在するかどうかの判定は、特定の間隔で、および/またはユーザ・セッションの終了のような、特定の構成可能なイベントに応答して実行してよく、クリーンアップ・プロセスに少なくとも部分的に基づいて実行され得る。加えて、いくつかの実施例で、割り当て条件が存在するかどうかの判定は、特定の間隔で、および/またはユーザ・セッションの生成のような特定の構成可能なイベントに応答して実行され得る。さらに、特定の期間にわたり生成された、または終了されたユーザ・セッション数のような履歴データに基づき、割り当ておよび/または割り当て解除判定も実行できることに留意する。
図5は、本開示に従いコンテンツ実行について例示的なプロセスを説明する図である。操作510で、コンテンツへのアクセス権を得ようとするユーザからアイデンティティ情報を受信できる。例えば、操作510で、図1のアイデンティティおよび資格サービス105は、図1のユーザ計算ノード110のシステム・インタフェース111からアイデンティティ情報を受信できる。上記に記載されるように、操作510で受信したアイデンティティ情報は、例えば、ユーザについてのユーザ名およびパスワードを含むことができる。操作511で、受信したアイデンティティ情報が格納されたアイデンティティ情報にマッチングするかどうかを判定する。例えば、図1のアイデンティティおよび資格サービス105は、図1のアイデンティティ情報107のような格納されたアイデンティティ情報へ、操作510で受信したアイデンティティ情報をマッチングしようと試みることができる。いくつかの実施例で、操作510で受信したユーザ名およびパスワードは、格納されたアイデンティティ情報内のユーザ名およびパスワードへマッチングされ得る。操作511でマッチングを検出する場合に、次に、操作512で、ユーザを認証できる。操作511でマッチングを検出しない場合に、次に、操作513で、ユーザを認証しない。上記に記載されるように、ユーザを認証することが不可能である場合に(例えば、マッチングを判定しない場合に)、次にユーザは、例えば、任意のコンテンツへのアクセスを拒否される可能性がある、および/またはコンテンツへのアクセスについて登録する、支払う、および/またはサブスクライブするように促される可能性がある、および/またはこれらの操作を実行するためにさまざまなサービスにリダイレクトされる可能性がある。
操作514で、ユーザについてのコンテンツ資格を判定できる。例えば、図1に示されるように、コンテンツ・アイテム・インスタンス情報サービス115は、アイデンティティおよび資格サービス105からユーザについてのコンテンツ資格情報を要求できる。いくつかの実施例で、図1の資格情報106のような、格納された資格情報は、ユーザがアクセスする権利を与えられるさまざまなコンテンツ・アイテムのような、認証されたユーザについてのコンテンツ資格情報を示すことができる。操作516で、ユーザが権利を与えられるコンテンツ・アイテムに関連するユーザへ情報を提供する。例えば、コンテンツ・アイテム・インスタンス情報サービス115は、コンテンツ・クライアント112へ、すべての利用可能なコンテンツ・アイテムのリスト、または特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものなどの、特定のコンテンツ属性を有するコンテンツ・アイテムのような、ユーザがアクセスする権利を与えられる利用可能なコンテンツ・アイテムについての情報を提供できる。
操作518で、コンテンツ・アイテムにアクセスするユーザについての要求を受信する。例えば、ユーザは、操作516で提供された情報を利用して、ユーザがアクセスしたい特定のコンテンツ・アイテムを選択できる。次にコンテンツ・クライアント112は、コンテンツ・アイテム・インスタンス情報サービス115により、操作518で受信され得る、選択されたコンテンツ・アイテムにアクセスする要求を提示できる。加えて、操作520で、選択されたコンテンツ・アイテムについてのユーザ選好を受信する。ユーザ選好は、例えば、ユーザにより望まれる、特定のプロット・ライン、ストーリー・アーク、仮想位置、レベル、モード、キャラクタ、武器、および同様のものを含むことができる。操作522で、テレメトリ情報を受信する。例えば、コンテンツ・アイテム・フリート内のコンテンツ・アイテム・インスタンスに関連するテレメトリ情報は、テレメトリ・コンポーネント125を介してコンテンツ・アイテム・インスタンス情報サービス115により受信され得る。いくつかの実施例で、受信したテレメトリ情報は、フリート内の1つ以上のコンテンツ・アイテム・インスタンスについて任意の占有されていないユーザ・セッション、フリート内の1つ以上のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッション数、または他の可用性情報があるかどうかのインディケーションのような、コンテンツ・アイテム・フリートにおいてユーザ・セッション可用性のインディケーションを含むことができる。コンテンツ・アイテム・インスタンス情報サービス115により受信され得るいくつかの他のテレメトリ情報の実施例は、上記で詳細に記述されるため、ここで繰り返されない。1分もしくは5分間隔で、または任意の他の所望の時間もしくは間隔でのような、コンテンツ・アイテム・インスタンス情報サービス115により、テレメトリ情報を繰り返し受信して更新できることに留意する。
操作524で、例えば、テレメトリ情報、および/またはユーザ選好に基づき、コンテンツ・アイテム・インスタンスへ、ユーザと関連するユーザ・セッションを割り当てる。例えば、いくつかの事例で、コンテンツ・アイテム・インスタンス情報サービス115は、テレメトリ情報に基づき、ユーザの選好にマッチングする、または部分的にマッチングするコンテンツ属性を有する、少なくとも1つの占有されていないユーザ・セッションを有する1つ以上の実行するコンテンツ・アイテム・インスタンスを識別できる。いくつかの実施例で、次にコンテンツ・アイテム・インスタンス情報サービス115は、識別されたコンテンツ・アイテム・インスタンスのうちの1つへユーザを割り当てることができる。また、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス115は、ユーザ選好のうちの1つ以上に少なくとも部分的にマッチングするコンテンツ・アイテム・インスタンスへユーザを割り当てることができる。ユーザ割り当てについてのいくつかの他の例示的な技術は、上記で詳細に記載されるため、ここで繰り返されない。また上記で記載されるように、いくつかの実施例で、コンテンツ・アイテム・インスタンス情報サービス115は、既存のすでに起動され実行しているコンテンツ・アイテム・インスタンスへユーザをマッチングして割り当てる代わりに、スケーリング・コンポーネント230がユーザを割り当てる追加のコンテンツ・アイテム・インスタンスを起動させることを要求できる。これは、例えば、フリート内の既存のコンテンツ・アイテム・インスタンスが任意の残りの占有されていないユーザ・セッションを全く有さないときに、および/またはフリート内の既存のコンテンツ・アイテム・インスタンスがユーザの要求したコンテンツ属性選好に十分にマッチングすると判定されるコンテンツ属性を全く有さないときに、起こり得る。
操作526で、割り当てられたコンテンツ・アイテム・インスタンスのインディケーションを、図2のスケーリング・コンポーネント230のようなスケーリング・コンポーネントへ提供できる。まだ起動していないコンテンツ・アイテム・インスタンスへユーザを割り当てる場合、これは、操作526で提供されたインディケーションの部分として示されることもできる。操作528で、ユーザ・セッション、および割り当てられたコンテンツ・アイテム間の通信を確立する命令を提供する。例えば、スケーリング・コンポーネント230は、ユーザにより操作されたユーザ計算ノード110でコンテンツ・クライアント112と関連するユーザ・セッションと通信するように割り当てられたコンテンツ・アイテム・インスタンスに指令することができる。
図6は、本開示に従い使用され得る、例示的なテレメトリ情報ルーティング・プロセスを説明する図である。操作610で、テレメトリ情報をコンテンツ・アイテム・インスタンスから収集する。いくつかの実施例で、図2のプロキシ・コンポーネント203および223により、操作610でテレメトリ情報を収集できる。これは、それぞれ、インスタンス・インタフェース202A〜Nおよび222A〜Nを介して、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nから情報を受信できる。上記で記載されるように、いくつかの実施例で、1つ以上のソフトウェア開発キット(SDK)のような、インスタンス・インタフェース202A〜Nおよび222A〜Nと関連するさまざまな命令を、開発者へ公開する、および/または提供できる。これらの命令は、コンテンツ・アイテム・インスタンス201A〜Nおよび221A〜Nがインスタンス・インタフェース202A〜Nおよび222A〜Nを介してプロキシ・コンポーネント203および223へテレメトリ情報を報告することを可能にすることを支援できる。開発者は、開発のためにアクセス可能にされるコンテンツ・アイテム内のこれらの命令を、次に、含む、組み込む、またはその他の方法で関連付けることができる。上記で詳細に記述されるように、各コンテンツ・アイテム・インスタンスから収集されたテレメトリ情報は、例えば、占有されたユーザ・セッション数、占有されていないユーザ・セッション数、コンテンツ・アイテム・インスタンス持続時間、メモリ使用量、および同様のものに関連する情報を含むことができる。
操作612で、識別情報を操作610で受信したテレメトリ情報へ割り当てることができる。例えば、上記で記載されるように、プロキシ・コンポーネント203および223は、1セットの規約により、特定のキー、または他の識別情報でテレメトリ情報をタギングすることができる。1つの特定の実施例で、以下のフォーマット、フリート識別子/インスタンス識別子/ルート識別子/タイムスタンプ/グローバル一意識別子(GUID)を使用して、テレメトリ情報を識別できる。フリート識別子は、テレメトリ情報が関連する特定のコンテンツ・アイテム・フリートについての識別子であり得る。インスタンス識別子は、テレメトリ情報が関連する特定のコンテンツ・アイテム・インスタンスについての識別子であり得る。ルート識別子は、情報を送信する1人以上の受信者(例えば、図3の、任意の、またはすべての処理機能303A〜D)を示す識別子であり得る。
操作614で、図3のテレメトリ・ランディング301のような、ルーティング機能へアクセス可能である(テレメトリ・ルーティング機能302へアクセス可能である)位置へテレメトリ情報、および識別情報を提供する。上記で記載されるように、いくつかの実施例で、テレメトリ情報は、毎分、または5分毎のような、定期的な繰り返し間隔でテレメトリ・ランディング301へ提供され得る。いくつかの他の実施例で、連続した情報ストリームとして、または任意の他の時間もしくは間隔で、テレメトリ情報を提供できる。
操作616で、例えば、識別情報および/またはテレメトリ情報自体に基づき、1人以上の受信者へテレメトリ情報および識別情報をルーティングする。例えば、上記で記載されるように、図3の処理機能303A〜Dのうちのいずれか1つ以上のような、受信者へテレメトリ情報をルーティングすることができる。これは、コンテンツ・アイテム・インスタンス情報サービス115、コンテンツ・アイテム・フリート情報サービス304、履歴情報サービス305、および追加のサービス306についての情報と関連することができ、この情報を処理できる。処理機能303A〜Dは、サービス115および304〜306のような、コンテンツ・アイテム・インスタンス情報分析についてのさまざまなサービスと関連できる。上記で記載されるように、いくつかの実施例で、インスタンス・レベル情報処理機能303Aは、コンテンツ・アイテム・インスタンスのフリート内の各インスタンスと関連する情報のためであり、フリート・レベル情報処理機能303Bは、コンテンツ・アイテム・インスタンスのフリートと関連する情報のためであり、履歴情報処理機能303Cは、履歴情報のためであり得る。いくつかの事例で、例えば、操作612で割り当てられた、識別情報内のルート識別子に基づき、1つ以上の処理機能303A〜D、または他の受信者へ、テレメトリ情報をルーティングすることができる。操作618で、操作616で判定された1人以上の受信者へテレメトリ情報、および識別情報を送信する。上記で記載されるように、いくつかの実施例で、テレメトリ・ルーティング機能302および/または処理機能303A〜Dのうちのいずれかは、ルーティングおよび/または処理についてのテレメトリ情報の受信のような、イベントに少なくとも部分的に基づき実行する計算サービスを含むことができる。いくつかの実施例で、イベントに少なくとも部分的に基づきコードを実行する分散コンピューティング・ベース(例えば、クラウド・ベース)機能を使用するテレメトリ・ルーティング機能302、および/または処理機能303A〜Dの実装は、例えば、テレメトリ情報のルーティングおよび/または処理のために要求される可能性がある、コンピューティング・リソースおよびコストの量を削減することで、有益であり得る。
操作620で、テレメトリ情報、および識別情報を、処理機能303A〜Dのうちの1つ以上のような、1人以上の受信者により受信する。操作622で、テレメトリ情報は、上記で記述されるそれらのように、処理されることができ、以前に受信したテレメトリ情報を更新すること、開発者、ユーザまたは他の当事者らがそれに効率的にアクセスできるようにテレメトリ情報を編成すること、およびテレメトリ情報に基づき任意の警報、または他の通知を生成することを備えることができる。加えて、操作622で、処理機能303A〜Dのうちの1つ以上は、適切なサービス(例えば、サービス115および/または304〜306のうちの1つ以上)へテレメトリ情報を提供できる。上記で記載されるように、いくつかの実施例で、操作612で割り当てられた識別情報内のルート識別子は、テレメトリ・ルーティング機能302、および処理機能303A〜Dのうちのいずれかによりアクセスされ、テレメトリ情報をルーティングする1人以上の受信者を示すことができる。また上記で記載されるように、いくつかの実施例で、インスタンス・レベル処理機能303Aは、コンテンツ・アイテム・インスタンス情報サービス115へ情報を提供することができ、フリート・レベル情報処理機能303Bは、コンテンツ・アイテム・フリート情報サービス304へ情報を提供することができ、履歴情報処理機能303Cは、履歴情報サービス305へ情報を提供することができ、任意の数の追加の処理機能303Dは、任意の数の追加のサービス306へ情報を提供できる。いくつかの実施例で、任意の、またはすべてのサービス115および304〜306は、コンテンツ・アイテム開発者へ情報を提供するためにコンテンツ・アイテム開発者アイテムへ少なくとも部分的にアクセス可能であり得る。
少なくともいくつかの実施形態で、本明細書に記述された科学技術のうちの1つ以上の部分、またはすべてを実装する1つ以上の計算ノードは、1つ以上のコンピュータ・アクセス可能媒体を含むもしくはこれらにアクセスするように構成されるコンピュータ・システムを含むことができ、またはこのコンピュータ・システムと関連することができる。計算ノードは、コンピューティング・ノードとも言われることができ、コモディティ・ハードウェア・コンピュータ、仮想マシン、ウェブ・サービス、コンピューティング・クラスタ、およびコンピューティング・アプライアンスなどの、多種多様なコンピューティング環境で実装され得る。これらのコンピューティング・デバイスまたは環境のうちのいずれかは、便宜上、計算ノードと記述され得る。図7は、1つ以上のコンピュータ・アクセス可能媒体を含む、またはこれらにアクセスするように構成されるコンピュータ・システムを示す。図示された実施形態で、コンピューティング・デバイス15は、入出力(I/O)インタフェース30を介してシステム・メモリ20へ結合される1つ以上のプロセッサ10a、10bおよび/または10n(単数で「a processor(プロセッサ)10」と、または複数で「the processors(プロセッサ)10」と本明細書で言われることができる)を含む。さらにコンピューティング・デバイス15は、I/Oインタフェース30へ結合されたネットワーク・インタフェース40を含む。
さまざまな実施形態で、コンピューティング・デバイス15は、1つのプロセッサ10を含むユニプロセッサ・システム、またはいくつかのプロセッサ10(例えば、2つ、4つ、8つまたは別の適切な数)を含むマルチプロセッサ・システムであり得る。プロセッサ10は、命令を実行することが可能な任意の適切なプロセッサであり得る。例えば、さまざまな実施形態で、プロセッサ10は、さまざまなインストラクション・セット・アーキテクチャ(ISA)のうちのいずれかを実装する、組み込みプロセッサであり得る。これは、例えば、x86、PowerPC、SPARCもしくはMIPS ISA、または任意の他の適切なISAなどである。マルチプロセッサ・システムで、プロセッサ10のそれぞれは、必ずしもそうではないが、一般的に同一のISAを実装できる。
システム・メモリ20は、プロセッサ(複数可)10によりアクセス可能な命令およびデータを格納するように構成され得る。さまざまな実施形態で、システム・メモリ20は、スタティック・ランダム・アクセス・メモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/Flash(登録商標)タイプ・メモリ、または任意の他のタイプのメモリのような、任意の適切なメモリ技術を使用して実装され得る。図示された実施形態で、上記で記述される、これらの方法、技術、およびデータのような、1つ以上の所望の機能を実装するプログラム命令およびデータは、コード25およびデータ26としてシステム・メモリ20内に格納されて示される。
1つの実施形態で、I/Oインタフェース30は、ネットワーク・インタフェース40、または他のペリフェラル・インタフェースを含む、デバイス内の、プロセッサ10、システム・メモリ20、および任意の周辺機器間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態で、I/Oインタフェース30は、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し、一方のコンポーネント(例えば、システム・メモリ20)からのデータ信号を、他方のコンポーネント(例えば、プロセッサ10)による使用に適切なフォーマットへ変換できる。いくつかの実施形態で、I/Oインタフェース30は、例えば、さまざまなペリフェラル・コンポーネント・インターコネクト(PCI)・バス規格、またはユニバーサル・シリアル・バス(USB)規格のような、種々多様なペリフェラル・バスを介して接続されたデバイスに対するサポートを含み得る。いくつかの実施形態で、I/Oインタフェース30の機能は、例えば、ノース・ブリッジ、およびサウス・ブリッジなどの、2つ以上の個別のコンポーネントに分割され得る。また、いくつかの実施形態で、システム・メモリ20へのインタフェースのような、I/Oインタフェース30の機能性のいくつか、またはすべては、プロセッサ10に直接に組み込まれ得る。
ネットワーク・インタフェース40は、例えば、他のコンピュータ・システムまたはデバイスのような、単数のネットワーク、または複数のネットワーク50へ接続された、コンピューティング・デバイス15、および他の単数のデバイス、または複数のデバイス60間でデータを交換することを可能にするように構成され得る。さまざまな実施形態で、ネットワーク・インタフェース40は、例えば、イーサネット・ネットワークのタイプのような、任意の適切な有線または無線の一般的なデータ・ネットワークを介して通信をサポートできる。加えて、ネットワーク・インタフェース40は、アナログ音声ネットワーク、もしくはデジタル・ファイバ通信ネットワークのような、テレコミュニケーション/テレフォニー・ネットワークを介して、ファイバ・チャネルSAN(ストレージ・エリア・ネットワーク)のようなストレージ・エリア・ネットワークを介して、または任意の他の適切なタイプのネットワークおよび/またはプロトコルを介して通信をサポートできる。
いくつかの実施形態で、システム・メモリ20は、対応する方法および装置の実施形態を実装するために、上記で記述されるようなプログラム命令およびデータを格納するように構成される、コンピュータ・アクセス可能媒体の1つの実施形態であり得る。しかしながら、他の実施形態においては、異なるタイプのコンピュータ・アクセス可能媒体で、プログラム命令および/またはデータを受信する、送信する、または格納できる。一般的に言えば、コンピュータ・アクセス可能媒体は、磁気または光学媒体、例えば、I/Oインタフェース30を介してコンピューティング・デバイス15へ結合されるディスクまたはDVD/CDのような、非一時的なストレージ媒体、またはメモリ媒体を含むことができる。非一時的なコンピュータ・アクセス可能ストレージ媒体は、システム・メモリ20、または別のタイプのメモリとしてコンピューティング・デバイス15のいくつかの実施形態に含まれることができる、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROM(読み出し専用メモリ)などのような、任意の揮発性または不揮発性媒体も含むことができる。さらに、コンピュータ・アクセス可能媒体は、伝送媒体、または通信媒体を介して伝達される電気、電磁気、もしくはデジタル信号のような、信号を含むことができる。通信媒体は、例えば、ネットワークおよび/または無線リンクであり、これらは、例えば、ネットワーク・インタフェース40を介して実装され得る。図7に図示されるこれらのような、複数のコンピューティング・デバイスの部分またはすべてを使用して、さまざまな実施形態で、記述された機能性を実装することができ、例えば、さまざまな異なるデバイスおよびサーバ上で実行するソフトウェア・コンポーネントは、機能性を提供するために共同することができる。いくつかの実施形態で、記述された機能性の部分は、ストレージ・デバイス、ネットワーク・デバイス、または専用コンピュータ・システムを使用して実装され得る。本明細書で使用されるような、用語「コンピューティング・デバイス」は、少なくともすべてのこれらのタイプのデバイスに関連するが、これらのタイプのデバイスに限定されない。
前節で記述される、各プロセス、方法およびアルゴリズムは、1つ以上のコンピュータまたはコンピュータ・プロセッサにより実行されるコード・モジュールで具現化され、これらにより完全に、または部分的に自動化され得る。コード・モジュールは、ハード・ドライブ、ソリッド・ステート・メモリ、光学ディスク、および/または同様のものなどの、任意のタイプの非一時的なコンピュータ可読媒体、またはコンピュータ・ストレージ・デバイスに格納され得る。プロセスおよびアルゴリズムは、特定用途向け回路に部分的に、または全体的に実装され得る。開示されたプロセスおよびプロセス・ステップの結果は、永続的に、またはその他の方法で、例えば、揮発性または不揮発性ストレージなどの、任意のタイプの非一時的なコンピュータ・ストレージに格納され得る。
前述の事項は、以下の条項を考慮してより良く理解され得る。
条項1.電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
1つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している1つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記複数のインスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを有する、前記受信すること、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える操作を、前記システムに実行させる、前記システム。
条項2.前記操作は、前記コンテンツ・アイテムと関連する1つ以上のユーザ選好を示す情報を受信することをさらに備え、
前記ユーザ・セッションは、前記1つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスに割り当てられる、請求項1に記載のシステム。
条項3.ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項1に記載のシステム。
条項4.前記複数のインスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、請求項1に記載のシステム。
条項5.電子的に提示されたコンテンツ・アイテムの実行のための方法であって、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記複数のインスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを備える、前記受信すること、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える、前記方法。
条項6.前記コンテンツ・アイテムと関連する1つ以上のユーザ選好を示す情報を受信することをさらに備え、
前記ユーザ・セッションは、前記1つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスへ割り当てられる、請求項5に記載の方法。
条項7.前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するSDKを使用して作成される、請求項5に記載の方法。
条項8.前記コンテンツ・アイテムの前記インスタンスは、起動され、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられるときに実行する、請求項5に記載の方法。
条項9.前記コンテンツ・アイテムの前記インスタンスは、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられた後に実行のために起動される、請求項5に記載の方法。
条項10.ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項5に記載の方法。
条項11.格納された情報に少なくとも部分的に基づき、前記ユーザがアクセス権を与えられる1つ以上のコンテンツ・アイテムを判定すること、
前記ユーザがアクセス権を与えられる前記1つ以上のコンテンツ・アイテムのうちの少なくとも1つのインディケーションを提供することであって、前記ユーザがアクセスを要求する前記コンテンツ・アイテムが前記提供されたインディケーション内に含まれる、前記提供すること、
をさらに備える、請求項5に記載の方法。
条項12.前記複数のインスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、請求項5に記載の方法。
条項13.命令を格納している1つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの計算ノードで実行時に、前記少なくとも1つの計算ノードに、
電子的に提示されたコンテンツ・アイテムにアクセスするユーザについての要求を受信すること、
前記コンテンツ・アイテムと関連する1つ以上のユーザ選好を示す情報を受信すること、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信することであって、前記情報は、前記複数のインスタンスでユーザ・セッション可用性のインディケーションを備える、前記受信すること、
前記複数のインスタンス、および前記1つ以上のユーザ選好と関連する前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てること、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供すること、
を備える操作、を実行させる、前記1つ以上の非一時的なコンピュータ可読記憶媒体。
条項14.前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するSDKを使用して作成される、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項15.前記複数のインスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項16.前記コンテンツ・アイテムの前記インスタンスは、起動され、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられるときに実行する、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項17.前記コンテンツ・アイテムの前記インスタンスは、前記ユーザ・セッションが前記コンテンツ・アイテムの前記インスタンスへ割り当てられた後に実行のために起動される、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項18.ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項19.前記操作は、
格納された情報に少なくとも部分的に基づき、前記ユーザがアクセス権を与えられる1つ以上のコンテンツ・アイテムを判定すること、
前記ユーザがアクセス権を与えられる前記1つ以上のコンテンツ・アイテムのうちの少なくとも1つのインディケーションを提供することであって、前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、前記提供すること、
をさらに備える、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項20.前記複数のインスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、請求項13に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
また前述の事項は、また、以下の条項を考慮してより良く理解され得る。
条項1.電子的に提示されたコンテンツ・アイテムのデプロイメントのためのシステムであって、
1つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している1つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信することと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記複数のコンテンツ・アイテム・インスタンスへ追加の仮想マシン・インスタンスを割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスへ前記追加の仮想マシン・インスタンスを割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
を備える操作、を実行させる、前記システム。
条項2.割り当てることと関連する前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定すること、のうちの少なくとも1つを備える、請求項1に記載のシステム。
条項3.前記操作は、
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも1つを実行すること、
をさらに備える、請求項1に記載のシステム。
条項4.割り当てを解除することと関連する前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも1つを備える、請求項3に記載のシステム。
条項5.前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するSDKを使用して作成される、請求項1に記載のシステム。
条項6.電子的に提示されたコンテンツ・アイテムのデプロイメントのための方法であって、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信することと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信すること、
前記複数の要求に少なくとも部分的に基づき、1つ以上の他の仮想マシン・インスタンスに前記イメージをコピーすること、
を備える、前記方法。
条項7.追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
をさらに備える、請求項6に記載の方法。
条項8.前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定すること、のうちの少なくとも1つを備える、請求項7に記載の方法。
条項9.前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも1つを実行すること、
をさらに備える、請求項6に記載の方法。
条項10.前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも1つを備える、請求項9に記載の方法。
条項11.前記複数の要求が受信される前記ユーザを認証することをさらに備える、請求項6に記載の方法。
条項12.格納された情報に少なくとも部分的に基づき、前記ユーザが前記コンテンツ・アイテムにアクセスする権利を与えられることを判定することをさらに備える、請求項6に記載の方法。
条項13.前記複数のコンテンツ・アイテム・インスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、請求項6に記載の方法。
条項14.前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するSDKを使用して作成される、請求項6に記載の方法。
条項15.前記コンテンツ・アイテムは、ビデオ・ゲームである、請求項6に記載の方法。
条項16.命令を格納している1つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの計算ノードで実行時に、前記少なくとも1つの計算ノードに、
電子的に提示されたコンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信することであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、前記受信すること、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールすること、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信すること、
前記複数の要求に少なくとも部分的に基づき、1つ以上の他の仮想マシン・インスタンスに前記イメージをコピーすること、
ことを備える操作、を実行させる、前記1つ以上の非一時的なコンピュータ可読記憶媒体。
条項17.前記操作は、
追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てることと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを、前記複数のコンテンツ・アイテム・インスタンスに割り当てること、
前記追加の仮想マシン・インスタンスに前記イメージをコピーすること、
をさらに備える、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項18.前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定することのうちの少なくとも1つを備える、請求項17に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項19.前記操作は、
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除することと関連する条件を検出すること、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除すること、
前記仮想マシン・インスタンスを終了すること、または別の目的のために再利用することのうちの少なくとも1つを実行すること、
をさらに備える、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項20.前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定すること、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定することのうちの少なくとも1つを備える、請求項19に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項21.前記操作は、前記複数の要求が受信される前記ユーザを認証することをさらに備える、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項22.前記操作は、格納された情報に少なくとも部分的に基づき、前記ユーザが前記コンテンツ・アイテムにアクセスする権利を与えられることを判定することをさらに備える、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項23.前記複数のコンテンツ・アイテム・インスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項24.前記コンテンツ・アイテムは、前記複数のコンテンツ・アイテム・インスタンスをホストするサービスと関連するSDKを使用して作成される、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項25.前記コンテンツ・アイテムは、ビデオ・ゲームである、請求項16に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
前述の事項は、また、以下の条項を考慮してより良く理解され得る。
条項1.複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するためのシステムであって、
1つ以上のコンピューティング・デバイス、および
コンピュータ実行可能命令を格納している1つ以上のメモリ、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集することであって、前記複数のインスタンスの各インスタンスは、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも1つのインディケーションを備える、前記収集すること、
前記情報に少なくとも部分的に基づき、前記情報をルーティングする複数の受信者のうちの少なくとも1人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定すること、
前記複数の受信者のうちの前記少なくとも1人へ前記情報を送信すること、
を備える操作、を実行させる、前記システム。
条項2.前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも1つ、または前記複数の受信者のうちの少なくとも1人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項1に記載のシステム。
条項3.前記操作は、前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項1に記載のシステム。
条項4.前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子(GUID)のうちの少なくとも1つを備える、請求項3に記載のシステム。
条項5.複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するための方法であって、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集すること、
前記情報をルーティングする複数の受信者のうちの少なくとも1人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定すること、
前記複数の受信者のうちの前記少なくとも1人へ前記情報を送信すること、
を備える、前記方法。
条項6.前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも1つのインディケーションを備える、請求項5に記載の方法。
条項7.前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも1つ、または前記複数の受信者のうちの少なくとも1人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項5に記載の方法。
条項8.前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項5に記載の方法。
条項9.前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子(GUID)のうちの少なくとも1つを備える、請求項8に記載の方法。
条項10.前記複数の受信者は、履歴情報のための第三受信者をさらに備える、請求項5に記載の方法。
条項11.前記複数のインスタンスのそれぞれは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項5に記載の方法。
条項12.前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する前記情報は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスへユーザ・セッションを割り当てるために使用される、請求項5に記載の方法。
条項13.前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連する、請求項5に記載の方法。
条項14.前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、請求項13に記載の方法。
条項15.命令を格納している1つ以上の非一時的なコンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの計算ノードで実行時に、前記少なくとも1つの計算ノードに、
複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を収集すること、
前記情報をルーティングする複数の受信者のうちの少なくとも1人を判定することであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためである、前記判定することと、
前記複数の受信者のうちの前記少なくとも1人へ前記情報を送信すること、
を備える操作、を実行させる、前記1つ以上の非一時的なコンピュータ可読記憶媒体。
条項16.前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも1つのインディケーションを備える、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項17.前記判定すること、および前記ルーティングすることは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも1つ、または前記複数の受信者のうちの少なくとも1人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項18.前記操作は、前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てることをさらに備え、前記判定することは、前記識別情報に少なくとも部分的に基づく、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項19.前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子(GUID)のうちの少なくとも1つを備える、請求項18に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項20.前記複数の受信者は、履歴情報のための第三受信者を備える、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項21.前記複数のインスタンスのそれぞれは、複数の同時に割り当てられたユーザ・セッションを有するように構成可能である、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項22.前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する前記情報は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスへユーザ・セッションを割り当てるために使用される、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項23.前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連する、請求項15に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
条項24.前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、請求項23に記載の1つ以上の非一時的なコンピュータ可読記憶媒体。
上記で説明されたさまざまな特徴およびプロセスは、互いから独立して使用され得る、またはさまざまな方式で組み合わされ得る。すべての可能な組み合わせ、および副組み合わせは、本開示の範囲内に入ることを意図される。加えて、特定の方法、またはプロセス・ブロックは、いくつかの実装で省略され得る。また本明細書に記述された方法およびプロセスは、いずれかの特定のシーケンスへ制限されず、それに関連するブロックまたはステートは、適切である他のシーケンスで実行されることが可能である。例えば、記述されたブロックもしくはステートは、具体的に開示された順序以外の順序で実行され得る、または複数のブロックもしくはステートは、単一のブロックもしくはステート内で組み合わされ得る。例示的なブロックまたはステートは、直列で、並列で、またはいくつかの他の方式で実行され得る。ブロックまたはステートは、開示された例示的な実施形態に追加される、またはこれらから削除され得る。本明細書に記述された例示的なシステムおよび構成要素は、記述されたものと異なって構成され得る。例えば、要素は、開示された例示的な実施形態に追加される、これらから削除される、またはこれらと比較して再配置され得る。
また、使用されながらメモリ内に、またはストレージ上に格納されるように、さまざまなアイテムを図示すること、ならびにメモリ管理、およびデータ完全性の目的のためにメモリ、および他のストレージ・デバイス間でこれらのアイテム、またはその部分を転送できることを理解するであろう。あるいは、他の実施形態で、ソフトウェア・モジュールおよび/またはシステムのいくつか、またはすべては、別のデバイス上のメモリ内で実行し、コンピュータ間通信を介して図示されたコンピューティング・システムと通信できる。さらに、いくつかの実施形態で、システムおよび/またはモジュールのいくつか、またはすべては、限定されないが、1つ以上の特定用途向け集積回路(ASIC)、標準集積回路、コントローラ(例えば、適切な命令を実行すること、およびマイクロコントローラおよび/または組み込みコントローラを含むことで)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)などを含む、少なくとも部分的にファームウェアおよび/またはハードウェアでなどの、他の方式で実装される、または提供され得る。また、モジュール、システムおよびデータ構造のいくつか、またはすべては、適切なドライブにより、または適切な接続を介して読み出される、ハード・ディスク、メモリ、ネットワークまたはポータブル・メディア物品などの、コンピュータ可読媒体上に格納される(例えば、ソフトウェア命令、または構造化データとして)ことができる。またシステム、モジュール、およびデータ構造は、無線ベースおよび有線/ケーブル・ベース・メディアを含む、さまざまなコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波、または他のアナログもしくはデジタル伝播信号の部分として)伝送されることができ、さまざまな形式(例えば、単一もしくは多重化アナログ信号の部分として、または複数の別個のデジタル・パケットもしくはフレームとして)を取ることができる。このようなコンピュータ・プログラム製品は、他の実施形態で他の形式を取ることもできる。したがって、本発明は、他のコンピュータ・システム構成で実施され得る。
特に別段に明記されない限り、またはその他の方法で使用されるような文脈内で理解される、とりわけ、「can(ことが可能である)」、「could(ことが可能である)」、「might(ことができる)」、「may(ことができる)」、「e.g.(例えば)」、および同様のものなどの、本明細書で使用される条件付き言語は、特定の実施形態が、他の実施形態が含まない、特定の特徴、要素、および/またはステップを含むことを伝えることを一般的に意図される。したがって、このような条件付き言語は、特徴、要素および/またはステップが1つ以上の実施形態のために必要な任意の方式内にあること、または1つ以上の実施形態が、創作者の入力またはプロンプティングの有無にかかわらず、これらの特徴、要素および/またはステップが含まれる、または任意の特定の実施形態で実行されるかどうかを決定するためのロジックを必ず含むことを暗示することを一般的に意図されない。用語「comprising(備える)」、「including(含む)」、「having(有する)」、および同様のものは、同意語であり、オープンエンド方式で包括的に使用され、追加の要素、特徴、行為、操作、およびその他のものを排除しない。また、用語「or(または)」は、その包括的な意味で(およびその排他的な意味でではない)使用されるため、例えば、要素のリストを接続するために使用するときに、この用語「or(または)」は、このリスト内の1つの、いくつかの、またはすべての要素を意味する。
特定の例示的な実施形態は、記述されているが、これらの実施形態は、実施例としてのみ提示されていて、本明細書に開示された本発明の範囲を限定することを意図されない。したがって、前述の説明において、任意の特定の特徴、特性、ステップ、モジュールまたはブロックが必要である、または不可欠であることを暗示することを意図されるものは何もない。実際には、本明細書に記述された新規の方法およびシステムは、さまざまな他の方式で具現化されることができ、さらに、本明細書に記述された方法およびシステムの形式で、さまざまな省略、置換、および変更は、本明細書に開示された本発明の趣旨から逸脱することなく行われることができる。添付の特許請求の範囲、およびそれらの均等物は、本明細書に開示された特定の本発明の範囲および趣旨内に入るような、このような形式または修正形態を網羅することを意図される。
以下は、親出願(特願2017−548900)の出願当初の請求項である。
[請求項1]
電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
1つ以上のコンピューティング・デバイスと、
コンピュータ実行可能命令を格納している1つ以上のメモリと、
を備え、
前記コンピュータ実行可能命令は、実行時に、前記システムに、
前記コンテンツ・アイテムにアクセスするユーザについての要求を受信するステップと、
前記コンテンツ・アイテムの複数のインスタンスと関連する情報を受信するステップであって、前記複数のインスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを含むように構成可能であり、前記情報は、前記複数のインスタンスでのユーザ・セッション可用性のインディケーションを有するステップと、
前記情報に少なくとも部分的に基づき、前記コンテンツ・アイテムのインスタンスへ前記ユーザと関連するユーザ・セッションを割り当てるステップと、
前記ユーザ・セッション、および前記コンテンツ・アイテムの前記インスタンス間の通信を確立する命令を提供するステップと、
を含む操作を実行させる、
システム。
[請求項2]
前記操作は、前記コンテンツ・アイテムと関連する1つ以上のユーザ選好を示す情報を受信するステップをさらに含み、
前記ユーザ・セッションは、前記1つ以上のユーザ選好に少なくとも部分的にさらに基づき前記コンテンツ・アイテムの前記インスタンスに割り当てられる、
請求項1に記載のシステム。
[請求項3]
ユーザ・セッション可用性の前記インディケーションは、それぞれの前記複数のインスタンスについて占有されていないユーザ・セッション数のインディケーションを備える、
請求項1に記載のシステム。
[請求項4]
前記複数のインスタンスのうちの少なくとも2つは、単一の仮想マシン・インスタンスで実行する、
請求項1に記載のシステム。
[請求項5]
前記コンテンツ・アイテムは、前記コンテンツ・アイテムの前記複数のインスタンスをホストするサービスと関連するSDKを使用して作成される、
請求項1に記載のシステム。
[請求項6]
電子的に提示されたコンテンツ・アイテムのデプロイメントのための方法であって、
前記コンテンツ・アイテムがデプロイメントのための準備ができているインディケーションを受信するステップであって、前記コンテンツ・アイテムは、複数のコンテンツ・アイテム・インスタンスを使用してデプロイされ、前記複数のコンテンツ・アイテム・インスタンスのうちの1つ以上は、複数の同時に割り当てられたユーザ・セッションを有するように構成可能であるステップと、
前記インディケーションに少なくとも部分的に基づき、第一仮想マシン・インスタンスにイメージとして少なくとも第一コンテンツ・アイテム・インスタンスをインストールするステップと、
前記コンテンツ・アイテムにアクセスするユーザについての複数の要求を受信するステップと、
前記複数の要求に少なくとも部分的に基づき、1つ以上の他の仮想マシン・インスタンスに前記イメージをコピーするステップと、
を含む、
方法。
[請求項7]
追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てるステップと関連する条件を検出するステップと、
前記条件に少なくとも部分的に基づき、前記追加の仮想マシン・インスタンスを前記複数のコンテンツ・アイテム・インスタンスへ割り当てるステップと、
前記追加の仮想マシン・インスタンスに前記イメージをコピーするステップと、
をさらに含む、
請求項6に記載の方法。
[請求項8]
前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たしている、もしくは下回っていると判定するステップと、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たしている、もしくは下回っていると判定するステップと、のうちの少なくとも1つを備える、
請求項7に記載の方法。
[請求項9]
前記複数のコンテンツ・アイテム・インスタンスから仮想マシン・インスタンスの割り当てを解除するステップと関連する条件を検出するステップと、
前記条件に少なくとも部分的に基づき、前記複数のコンテンツ・アイテム・インスタンスから前記仮想マシン・インスタンスの割り当てを解除するステップと、
前記仮想マシン・インスタンスを終了するステップと、または別の目的のために再利用するステップと、のうちの少なくとも1つを実行するステップと、
をさらに含む、
請求項6に記載の方法。
[請求項10]
前記条件は、前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの総数が特定の数量を満たす、もしくは超えると判定するステップと、または前記複数のコンテンツ・アイテム・インスタンスについて占有されていないユーザ・セッションの平均数が特定の数量を満たす、もしくは超えると判定するステップと、のうちの少なくとも1つを含む、
請求項9に記載の方法。
[請求項11]
複数のコンテンツ・アイテム・インスタンスのインスタンスから情報を提供するための方法であって、
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスから前記情報を収集するステップと、
前記情報をルーティングする複数の受信者のうちの少なくとも1人を判定するステップであって、前記複数の受信者の第一受信者は、前記複数のコンテンツ・アイテム・インスタンスの各インスタンスと関連する情報のためであり、前記複数の受信者の第二受信者は、前記複数のコンテンツ・アイテム・インスタンスと関連する情報のためであるステップと、
前記複数の受信者のうちの前記少なくとも1人へ前記情報を送信するステップと、
を含む、
方法。
[請求項12]
前記情報は、前記インスタンスについて占有されたユーザ・セッション数、前記インスタンスについてオープンしたユーザ・セッション数、前記インスタンスの持続時間、または前記インスタンスによるメモリ使用量のうちの少なくとも1つのインディケーションを備える、
請求項11に記載の方法。
[請求項13]
前記判定するステップおよび前記ルーティングするステップは、ルーティング機能により実行され、前記ルーティング機能のうちの少なくとも1つ、または前記複数の受信者のうちの少なくとも1人は、イベントに少なくとも部分的に基づきコードを実行するクラウド・ベース機能である、
請求項11に記載の方法。
[請求項14]
前記複数のコンテンツ・アイテム・インスタンスの前記インスタンスからの前記情報へ識別情報を割り当てるステップをさらに含み、
前記判定するステップは、前記識別情報に少なくとも部分的に基づき、前記識別情報は、コンテンツ・アイテム・フリート識別子、コンテンツ・アイテム・インスタンス識別子、ルート識別子、タイムスタンプ、およびグローバル一意識別子(GUID)のうちの少なくとも1つを備える、
請求項11に記載の方法。
[請求項15]
前記複数の受信者は、コンテンツ・アイテム・インスタンス情報分析についての複数のサービスと関連し、
前記複数のサービスは、開発者へ情報を提供するために前記コンテンツ・アイテムの前記開発者へ少なくとも部分的にアクセス可能である、
請求項11に記載の方法。

Claims (15)

  1. 電子的に提示されたコンテンツ・アイテムの実行のためのシステムであって、
    1つまたは複数のコンピューティング・デバイスと、
    コンピュータ実行可能命令を格納している1つまたは複数のメモリと、
    を備え、
    前記コンピュータ実行可能命令は、実行時に、前記システムに、
    前記コンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第1の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第1のサブセットおよび前記複数の仮想マシンの第2の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第2のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
    前記第1の仮想マシン上で実行する第1のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第1のサブセットによって報告された占有されていないユーザ・セッションの数の第1のサブセットを受信するステップと、
    前記第2の仮想マシン上で実行する第2のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第2のサブセットによって報告された占有されていないユーザ・セッションの数の第2のサブセットを受信するステップと、
    占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
    前記サービスによって、占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第1のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第1のコンテンツ・アイテム・インスタンスに割り当てるステップと、
    前記第1のユーザ・セッションと前記第1のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
    を含む動作を実行させる、
    システム。
  2. 前記動作は、前記コンテンツ・アイテムに関連付けられた1つまたは複数のユーザ選好を示す第2の情報を受信するステップをさらに含み、
    前記第1のユーザ・セッションは、前記1つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第1のコンテンツ・アイテム・インスタンスに割り当てられる、
    請求項1に記載のシステム。
  3. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第1のコンテンツ・アイテム・インスタンスは、起動され、実行する、
    請求項1に記載のシステム。
  4. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第1のコンテンツ・アイテム・インスタンスは、実行のために起動される、
    請求項1に記載のシステム。
  5. 前記動作は、
    格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる1つまたは複数のコンテンツ・アイテムを決定するステップと、
    前記ユーザがアクセス権を与えられる前記1つまたは複数のコンテンツ・アイテムの少なくとも1つのインディケーションを提供するステップと、
    をさらに含み、
    前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
    請求項1に記載のシステム。
  6. 電子的に提示されたコンテンツ・アイテムの実行のための方法であって、
    前記コンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第1の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第1のサブセットおよび前記複数の仮想マシンの第2の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第2のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
    前記第1の仮想マシン上で実行する第1のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第1のサブセットによって報告された占有されていないユーザ・セッションの数の第1のサブセットを受信するステップと、
    前記第2の仮想マシン上で実行する第2のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第2のサブセットによって報告された占有されていないユーザ・セッションの数の第2のサブセットを受信するステップと、
    占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
    前記サービスによって、占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第1のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第1のコンテンツ・アイテム・インスタンスに割り当てるステップと、
    前記第1のユーザ・セッションと前記第1のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
    を含む、
    方法。
  7. 前記方法は、前記コンテンツ・アイテムに関連付けられた1つまたは複数のユーザ選好を示す第2の情報を受信するステップをさらに含み、
    前記第1のユーザ・セッションは、前記1つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第1のコンテンツ・アイテム・インスタンスに割り当てられる、
    請求項6に記載の方法。
  8. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第1のコンテンツ・アイテム・インスタンスは、起動され、実行する、
    請求項6に記載の方法。
  9. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第1のコンテンツ・アイテム・インスタンスは、実行のために起動される、
    請求項6に記載の方法。
  10. 前記方法は、
    格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる1つまたは複数のコンテンツ・アイテムを決定するステップと、
    前記ユーザがアクセス権を与えられる前記1つまたは複数のコンテンツ・アイテムの少なくとも1つのインディケーションを提供するステップと、
    をさらに含み、
    前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
    請求項6に記載の方法。
  11. 命令を格納している1つまたは複数の非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの計算ノード上での実行時に、前記少なくとも1つの計算ノードに、
    電子的に提示されたコンテンツ・アイテムにアクセスするユーザのための要求を受信するステップであって、前記コンテンツ・アイテムは、複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスのセットを有し、コンテンツ・アイテム・インスタンスの前記セットは、前記複数の仮想マシンの第1の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第1のサブセットおよび前記複数の仮想マシンの第2の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの第2のサブセットを含み、前記コンテンツ・アイテムは、前記コンテンツ・アイテムをホストするサービスに関連付けられたソフトウェア開発キットを用いて作成され、占有されていないユーザ・セッションの数は、コンテンツ・アイテム・インスタンスの前記セットによって報告され、コンテンツ・アイテム・インスタンスの前記セットの各コンテンツ・アイテム・インスタンスは、占有されていないユーザ・セッションの数のそれぞれを報告し、前記ソフトウェア開発キットは、占有されていないユーザ・セッションの数を報告する前記コンテンツ・アイテムに埋め込まれるコードを提供するステップと、
    前記第1の仮想マシン上で実行する第1のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第1のサブセットによって報告された占有されていないユーザ・セッションの数の第1のサブセットを受信するステップと、
    前記第2の仮想マシン上で実行する第2のコンポーネントによって、コンテンツ・アイテム・インスタンスの前記第2のサブセットによって報告された占有されていないユーザ・セッションの数の第2のサブセットを受信するステップと、
    占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットを、ユーザ・セッションを前記複数の仮想マシン上で実行するコンテンツ・アイテム・インスタンスの前記セットにマッチングして割り当てるサービスに送信するステップと、
    前記サービスによって、占有されていないユーザ・セッションの数の前記第1のサブセットおよび占有されていないユーザ・セッションの数の前記第2のサブセットに少なくとも部分的に基づいて、前記ユーザに関連付けられた第1のユーザ・セッションを、コンテンツ・アイテム・インスタンスの前記セットの第1のコンテンツ・アイテム・インスタンスに割り当てるステップと、
    前記第1のユーザ・セッションと前記第1のコンテンツ・アイテム・インスタンスとの間の通信を確立する命令を提供するステップと、
    を含む動作を実行させる、
    1つまたは複数の非一時的コンピュータ可読記憶媒体。
  12. 前記動作は、前記コンテンツ・アイテムに関連付けられた1つまたは複数のユーザ選好を示す第2の情報を受信するステップをさらに含み、
    前記第1のユーザ・セッションは、前記1つまたは複数のユーザ選好に少なくとも部分的にさらに基づいて、前記第1のコンテンツ・アイテム・インスタンスに割り当てられる、
    請求項11に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  13. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられるとき、前記第1のコンテンツ・アイテム・インスタンスは、起動され、実行する、
    請求項11に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  14. 前記第1のユーザ・セッションが前記第1のコンテンツ・アイテム・インスタンスに割り当てられた後、前記第1のコンテンツ・アイテム・インスタンスは、実行のために起動される、
    請求項11に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  15. 前記動作は、
    格納された情報に少なくとも部分的に基づいて、前記ユーザがアクセス権を与えられる1つまたは複数のコンテンツ・アイテムを決定するステップと、
    前記ユーザがアクセス権を与えられる前記1つまたは複数のコンテンツ・アイテムの少なくとも1つのインディケーションを提供するステップと、
    をさらに含み、
    前記ユーザがアクセスを要求する前記コンテンツ・アイテムは、前記提供されたインディケーション内に含まれる、
    請求項11に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
JP2019216884A 2015-03-17 2019-11-29 コンテンツ・デプロイメント、スケーリングおよびテレメトリ Pending JP2020053079A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US14/660,850 2015-03-17
US14/660,821 2015-03-17
US14/660,865 US20160277508A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,865 2015-03-17
US14/660,850 US20160277484A1 (en) 2015-03-17 2015-03-17 Content Deployment, Scaling, and Telemetry
US14/660,821 US10463957B2 (en) 2015-03-17 2015-03-17 Content deployment, scaling, and telemetry

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017548900A Division JP2018514023A (ja) 2015-03-17 2016-03-17 コンテンツ・デプロイメント、スケーリングおよびテレメトリ

Publications (1)

Publication Number Publication Date
JP2020053079A true JP2020053079A (ja) 2020-04-02

Family

ID=56098325

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017548900A Pending JP2018514023A (ja) 2015-03-17 2016-03-17 コンテンツ・デプロイメント、スケーリングおよびテレメトリ
JP2019216884A Pending JP2020053079A (ja) 2015-03-17 2019-11-29 コンテンツ・デプロイメント、スケーリングおよびテレメトリ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017548900A Pending JP2018514023A (ja) 2015-03-17 2016-03-17 コンテンツ・デプロイメント、スケーリングおよびテレメトリ

Country Status (6)

Country Link
EP (1) EP3271817A2 (ja)
JP (2) JP2018514023A (ja)
KR (2) KR102168740B1 (ja)
CN (1) CN107430519B (ja)
CA (1) CA2979691C (ja)
WO (1) WO2016149462A2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109491715B (zh) * 2018-11-06 2021-10-22 深圳市风云实业有限公司 基于Windows NT的应用管理方法、装置及终端
WO2022245126A1 (ko) * 2021-05-18 2022-11-24 주식회사 카카오 액세스 카드를 이용한 서비스 제공 방법, 서비스 필터링 방법 및 상기 방법을 수행하는 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000033182A (ja) * 1998-07-17 2000-02-02 Namco Ltd ゲームシステム及び情報記憶媒体
JP2013109548A (ja) * 2011-11-21 2013-06-06 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
JP2014135049A (ja) * 2012-12-21 2014-07-24 Sony Computer Entertainment America Llc クラウドベースのゲームスライス生成および即時再生との無摩擦ソーシャルシェアリング

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070093297A1 (en) * 2005-10-26 2007-04-26 Waterleaf Ltd. On-line, real-time game playing with search facility
US8458530B2 (en) * 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
JP5617712B2 (ja) * 2011-03-17 2014-11-05 沖電気工業株式会社 コンテンツ配信サーバ、コンテンツ配信システム、コンテンツ配信プログラム及びコンテンツ配信方法
WO2012140969A1 (ja) * 2011-04-14 2012-10-18 株式会社村田製作所 高周波フロントエンド回路
US8924930B2 (en) * 2011-06-28 2014-12-30 Microsoft Corporation Virtual machine image lineage
US9189285B2 (en) * 2012-12-14 2015-11-17 Microsoft Technology Licensing, Llc Scalable services deployment
US9433862B2 (en) * 2013-02-12 2016-09-06 Microsoft Technology Licensing, Llc Dynamic allocation of computing resources in remote gaming environment
US20140245319A1 (en) * 2013-02-27 2014-08-28 Greenbutton Limited Method for enabling an application to run on a cloud computing system
US9295915B2 (en) * 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000033182A (ja) * 1998-07-17 2000-02-02 Namco Ltd ゲームシステム及び情報記憶媒体
JP2013109548A (ja) * 2011-11-21 2013-06-06 Sony Computer Entertainment Inc 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
JP2014135049A (ja) * 2012-12-21 2014-07-24 Sony Computer Entertainment America Llc クラウドベースのゲームスライス生成および即時再生との無摩擦ソーシャルシェアリング

Also Published As

Publication number Publication date
WO2016149462A2 (en) 2016-09-22
KR20190080990A (ko) 2019-07-08
CA2979691C (en) 2021-09-07
EP3271817A2 (en) 2018-01-24
CN107430519A (zh) 2017-12-01
CN107430519B (zh) 2021-01-12
CA2979691A1 (en) 2016-09-22
KR102073461B1 (ko) 2020-02-04
KR20170134493A (ko) 2017-12-06
KR102168740B1 (ko) 2020-10-23
JP2018514023A (ja) 2018-05-31
WO2016149462A3 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
CN103973741B (zh) 用于在云系统中进行远程调试的方法和装置
JP2007518186A (ja) コマンドライン環境を使用する遠隔システム管理
US9959112B2 (en) Customizing a software application based on a user's familiarity with the software application
US10218817B2 (en) Digital rights list for device groups
Raj et al. Learning Docker
JP2020053079A (ja) コンテンツ・デプロイメント、スケーリングおよびテレメトリ
CN113835822A (zh) 跨云平台虚拟机迁移方法、装置、存储介质及电子装置
US20160277484A1 (en) Content Deployment, Scaling, and Telemetry
US10592864B2 (en) Share token issuance for declarative document authoring
US11341270B2 (en) Automatically redacting logs
US20160277508A1 (en) Content Deployment, Scaling, and Telemetry
JP6542397B2 (ja) イメージ制作中のコンテンツテスト
CN111756784B (zh) 会话方法、会话装置、计算机设备和介质
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
US10463957B2 (en) Content deployment, scaling, and telemetry
US11190369B2 (en) Method and system for joining an online meeting
US20240012680A1 (en) Techniques for inter-cloud federated learning
Abhinand et al. Study on the Development and Implementation of Ubiquitous Bots for the Discord Interface
Fernando Designing Microservices Platforms with NATS: A modern approach to designing and implementing scalable microservices platforms with NATS messaging
Jiang et al. Design and implementation of an improved cloud storage system
Patterson et al. KubeFlow operations guide
CN108139950B (zh) 分布式扩展执行的方法及计算系统
Qasem et al. Design and implementation of a framework for provisioning algorithms as a service
CN117971376A (zh) 一种数据处理方法、装置、云端设备及介质
Lovisetto et al. A foundation for extensible and decentralized social networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211027