JP2018526717A - イメージ制作中のコンテンツテスト - Google Patents

イメージ制作中のコンテンツテスト Download PDF

Info

Publication number
JP2018526717A
JP2018526717A JP2017565102A JP2017565102A JP2018526717A JP 2018526717 A JP2018526717 A JP 2018526717A JP 2017565102 A JP2017565102 A JP 2017565102A JP 2017565102 A JP2017565102 A JP 2017565102A JP 2018526717 A JP2018526717 A JP 2018526717A
Authority
JP
Japan
Prior art keywords
virtual machine
content item
instance
information
instances
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.)
Granted
Application number
JP2017565102A
Other languages
English (en)
Other versions
JP6542397B2 (ja
Inventor
エイ. ポレスキー アレクセイ
エイ. ポレスキー アレクセイ
デイヴィッド ビスカル クリストファー
デイヴィッド ビスカル クリストファー
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
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018526717A publication Critical patent/JP2018526717A/ja
Application granted granted Critical
Publication of JP6542397B2 publication Critical patent/JP6542397B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B45/00ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/212Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/825Fostering virtual characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Biotechnology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Cardiology (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

イメージ制作中にコンテンツをテストするための技術が、本明細書において説明される。コンテンツアイテムに関連付けられる情報が、第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードされてもよい。第2の仮想マシンインスタンス上で、コンテンツアイテムに関連付けられる情報を含む仮想マシンイメージの制作が開始されてもよい。第1の仮想マシンインスタンス上で、コンテンツアイテムの第1のインスタンスが実行されてもよい。コンテンツアイテムの第1のインスタンスが実行される間の時間の少なくとも一部が、仮想マシンイメージ制作中に発生してもよい。仮想マシンイメージの制作完了、及びその使用承認後、仮想マシンイメージが、他のコンテンツアイテムインスタンス上に複製されてもよく、第1の仮想マシンインスタンスが、終了され、または再利用されてもよい。

Description

本出願は、2015年6月18日に出願した米国特許出願第14/743,648号の利益を主張し、その開示全体が参照により本明細書に組み込まれる。
近年、ビデオゲームなどの電子的に提示されるコンテンツの使用は、ますます人気が高まり普及してきている。いくつかの例では、同時に実行するコンテンツアイテムの複数のインスタンスを有するのが望ましい場合がある。これは、例えば、多数のユーザがコンテンツアイテムと対話したいときに発生し得る。例えば、いくつかの場合に、1人または複数のプレーヤが、ビデオゲームの第1のインスタンスに参加してもよく、1人または複数の他のプレーヤが同じビデオゲームの第2のインスタンスに参加してもよい。ビデオゲームの各インスタンスを実行するために使用される元となるコードは同一であってもよいが、異なるインスタンス内のプレーヤには、個別の独立した体験がもたらされ得る。例えば、任意の所与の時間において、ビデオゲームの第1及び第2のインスタンスにおけるプレーヤは、異なる仮想位置で、異なるキャラクタと対戦して、異なる進行レベルで、様々な他の異なる条件下で、参加していてもよい。
コンテンツアイテムの複数インスタンスのフリートを生成するための1つの可能性のある技術は、コンテンツアイテムに関連付けられる、元となるバイナリコードまたは他のコードを含む仮想マシンイメージの作成を伴う。例えば、仮想マシンイメージによって、コンテンツアイテムが多数の他の仮想マシン上に容易かつ効率的に複製されることが可能となり、それによって、多数のコンテンツアイテムインスタンスが、ユーザ要求に応じて高速にスケールアップすることが可能となり得るため、仮想マシンイメージは有利であり得る。一方、仮想マシンイメージの1つの欠点は、イメージに含まれているコンテンツアイテムコードのサイズに応じて、それが実行用にアクティブ化され複製され得る前に仮想マシンイメージを制作するために大幅な遅延時間を要することがあり得ることである。
以下の詳細な説明は、添付図面と併せて読まれる際により良く理解され得る。例示のために、様々な開示の態様の例としての実施形態が図面に示されるが、本発明は、開示される特定の方法及び手段に限定されない。
本開示に従って使用され得る、例としてのコンテンツ展開、スケーリング、及びテレメトリシステムを示す図である。 本開示に従って使用され得る、例としてのコンテンツスケーリング及び実行システムを示す図である。 本開示に従って使用され得る、例としてのテレメトリ情報ルーティング及び処理システムを示す図である。 本開示に従って使用され得る、例としてのコンテンツアイテムテスト及び展開タイムラインを示す図である。 本開示に従って使用され得る、別の例としてのコンテンツアイテム展開プロセスのタイムラインを示す図である。 本開示に従って使用され得る、仮想マシンイメージ制作中のコンテンツアイテム実行のための例としてのプロセスを示す図である。 本開示に従って使用され得る、例としてのコンピューティングシステムを示す図である。
イメージ制作中にコンテンツをテストするための技術が、本明細書において説明される。いくつかの実施例では、ビデオゲームなどのコンテンツアイテムが、バックエンドサービスによってユーザへの展開準備ができているという標識が、開発者から受信されてもよい。この標識に応答して、サービスは、コード、バイナリファイル、及び/または他のコンテンツアイテム情報を第1の仮想マシンインスタンスにロードしてもよい。次いで、コンテンツアイテム情報のスナップショットが取られ、第2の仮想マシンインスタンスにコピーされてもよく、それは、コンテンツアイテムに関連付けられる仮想マシンイメージを制作するために使用されてもよい。仮想マシンイメージによって、例えば、コンテンツアイテムが多数の他の仮想マシンインスタンス上に容易かつ効率的に複製されることが可能となり、それによって、多数のコンテンツアイテムインスタンスが、ユーザ要求に応じて高速にスケールアップすることが可能となり得る。しかしながら、上述したように、いくつかの場合には、仮想マシンイメージを制作するためにかなりの時間を要することがある。
説明される技術によれば、仮想マシンイメージが制作されている時間の少なくとも一部の間、第1の仮想マシンインスタンスが、本明細書でテストコンテンツアイテムインスタンスと呼ばれる、コンテンツアイテムインスタンスを実行するために使用されてもよい。テストコンテンツアイテムインスタンスは、開発者に利用可能とされてもよく、例えば、開発者が、コンテンツアイテムをテストし、またはコンテンツアイテムと対話するためにイメージが完全に制作されるまで待機しなくとも、仮想マシンイメージの有益性を体験できるようにし得る。追加的に、テストコンテンツアイテムインスタンスは、いくつかの場合に、開発者が、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなる同じバックエンドサービスによって実行されるコンテンツアイテムインスタンスをテストし、及び対話することを可能にしてもよく、それによって、開発者が、それが他のユーザに提供され得る同じ環境内で、コンテンツアイテムをテストし、及び対話することを可能にする。
いくつかの実施例では、テストコンテンツアイテムインスタンスの実行前に、コンテンツアイテムが承認済みソフトウェア開発キット(SDK)を用いて作成されていることを確認し、特定バージョンのSDKを検出するために、第1の仮想マシンインスタンス上のコンテンツアイテム情報が検査されてもよい。以下で極めて詳細に説明されるように、本文脈における承認済みSDKは、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなるバックエンドサービスと統合されるSDKであってもよい。承認済みSDKは、コンテンツがマルチプレーヤビデオゲームまたは他のマルチユーザ環境とより効率的に対話可能にすることなどによって、例えば、コンテンツの摂取、構成、提供、及び展開がより容易かつ高速に達成できるようにし得る、コンテンツアイテムに組み込まれた機能性を提供してもよい。例えば、承認済みSDKが、コンテンツの実行中インスタンスに関連付けられる情報の報告を支援してもよい。SDKの検出及び承認に加えて、1つまたは複数のプロキシコンポーネントが、テストコンテンツアイテムインスタンスの実行前に、第1の仮想マシンインスタンス上にインストールされてもよい。インストールされたプロキシコンポーネントは、バックエンドサービスによるコンテンツアイテムの効率的なホスティングをさらに支援してもよい。
いくつかの場合、1つまたは複数の欠点または他の問題が、高速に識別され、効率的に訂正され得るように、テストコンテンツアイテムインスタンスが、コンテンツアイテムのテストを可能にしてもよい。また、いくつかの場合、テストコンテンツアイテムインスタンスが、コンテンツアイテムと対話し、開発者が使用のために仮想マシンイメージを承認したいか否かを確認する追加的な機会を、開発者に提供してもよい。開発者が使用のために仮想マシンイメージを承認すると、テスト仮想マシンインスタンスが、終了され、及び/または再利用されてもよく、仮想マシンイメージが、コンテンツアイテムインスタンスフリートの生成のために所望により複製されてもよい。これに対し、いくつかの場合、開発者が心変わりを経て仮想マシンイメージの使用を承認しないと決定してもよく、それによって、潜在的に不必要なコストが節約される。
図1に、本開示に従って使用され得る、例としてのコンテンツ展開、スケーリング、及びテレメトリシステム150の図が示されている。図示するように、コンテンツ開発者計算ノード100は、例えば、コンテンツ開発者または他の関係者によって操作される様々なインタフェース、コンソール、及び/またはダッシュボードを含んでもよい。ユーザ計算ノード110は、例えば、インターネット及び/または1つもしくは複数のローカルエリアネットワーク(LAN)などの1つまたは複数の広域ネットワーク(WAN)を含む1つまたは複数のネットワークを用いて、識別及び権利付与サービス105、コンテンツアイテムインスタンス情報サービス115、ならびに/またはテレメトリコンポーネント125と通信してもよい。理解されるように、図1には単一の開発者計算ノード100だけが示されているが、システム150は、任意の数の異なるコンテンツアイテムを展開する任意の数の異なる開発者及び他の関係者を含んでもよい。いくつかの場合、コンテンツ開発者計算ノード100は、コンテンツの開発を支援するために、1つまたは複数の統合開発環境(IDE)アプリケーションもしくはその一部を実行してもよい。概して、以下で極めて詳細に説明されるように、コンテンツ開発者計算ノード100は、例えば、開発者が、コンテンツアイテムを設計及び開発し、展開のためにコンテンツアイテムへのアクセスを提供し、ユーザ識別及び/または権利付与情報を提供し、コンテンツアイテムインスタンスに関連付けられるフィードバック及びメトリック、コンテンツアイテムフリート、及び履歴情報を監視及び取得すること、ならびに他の操作を可能にしてもよい。さらに以下で極めて詳細に説明するように、開発者があるコンテンツアイテムを展開する準備ができているとき、コンテンツにアクセスするための情報が、例えば、コンテンツ実行コンポーネント120に提供されてもよく、コンテンツ実行コンポーネント120は、様々なユーザにアクセス可能にされているコンテンツアイテムのインスタンスを実行するための様々な動作を実行してもよい。上述したように、いくつかの実施例では、コンテンツアイテムに関連付けられる仮想マシンイメージが制作されている時間の少なくとも一部の間、例えば、開発者がコンテンツアイテムに対して追加のテストを行うことを可能にし得る、テストコンテンツアイテムインスタンスが実行され得る。テスト対話コンポーネント101は、いくつかの実施例では、開発者が、テストコンテンツアイテムインスタンスと対話し、仮想マシンイメージの使用の承認または不承認を示し、テストコンテンツアイテムインスタンスに関連する、本明細書において説明される他の開発者動作を実行することを可能にしてもよい。
いくつかの実施例では、コンテンツの開発及び提供に加えて、開発者及び他の関係者が、提供されるコンテンツに様々なユーザがアクセスするための識別及び/または権利付与情報も提供してもよい。特に、開発者計算ノード100は、識別及び権利付与サービス105と対話して、この識別及び/または権利付与情報を提供することがあってもよい。他の実施例では、情報は、他の関係者によって識別及び権利付与サービス105に提供されてもよい。いくつかの場合、開発者または他の関係者が、1つまたは複数のコンテンツアイテムにアクセスし得る認可されたユーザの標識を提供することによって、識別プールを構成してもよい。いくつかの実施例では、識別及び権利付与サービス105は、ユーザ名、パスワードなどの、様々なユーザの識別を認証するための識別認証情報を生成または受信してもよい。ユーザ識別及びそれらの関連する認証情報は、例えば、識別情報107に記憶されてもよい。また、いくつかの実施例では、開発者または他の関係者が、それぞれの認可されたユーザに対話する権利が付与されたコンテンツアイテムを示し得る、権利付与情報106を提供してもよい。いくつかの実施例では、あるユーザが、テストバージョンもしくは完全開発済みバージョン、ユーザが支払いまたは申し込みをしたあるバージョン、または任意の他の種類のコンテンツへのアクセスを許可されるだけであってもよい。
ユーザ計算ノード110は、特定のコンテンツアイテムインスタンスとの対話のためのユーザセッションなどのコンテンツへのアクセスを要求するためにユーザによって利用されてもよい。ユーザ計算ノード110は、例えば、インターネット及び/または1つもしくは複数のローカルエリアネットワーク(LAN)などの1つまたは複数の広域ネットワーク(WAN)を含む1つまたは複数のネットワークを用いて、識別及び権利付与サービス105、コンテンツアイテムインスタンス情報サービス115、ならびに/またはコンテンツ実行コンポーネント120と通信してもよい。理解されるように、図1には単一のユーザ計算ノード110だけが示されているが、システム150は、同一または異なるコンテンツにアクセスする任意の数の異なるユーザを含んでもよい。いくつかの場合、ユーザがコンテンツへのアクセスを要求するために、ユーザがシステム150により展開されるコンテンツへのアクセスを認可されるかどうかの判断が、行われてもよい。いくつかの実施例では、システムインタフェース111は、ユーザについての識別認証情報を識別及び権利付与サービス105に提供してもよく、識別及び権利付与サービス105は、提供されたユーザ識別認証情報を、識別情報107に記憶されるユーザについての識別認証情報と照合するよう試みてもよい。合致が判断されない場合、ユーザは、例えば、いかなるコンテンツへのアクセスも否定されてもよく、ならびに/またはコンテンツへのアクセスのための登録、支払い、及び/もしくは申し込みを促されてもよく、ならびに/またはそれらの動作を実行するための様々なサービスにリダイレクトされてもよい。一方、ユーザの提供された識別認証が、記憶される識別認証情報と合致する場合、ユーザの識別が認証されてもよく、ユーザは、システム150とのさらなる対話、及びコンテンツへのアクセス要求を許可されてもよい。
ユーザ計算ノード110のコンテンツクライアント112は、次いで、コンテンツアイテムインスタンス情報サービス115と通信して、ユーザに関する情報をコンテンツアイテムインスタンス情報サービス115に提供してもよい。同様に、コンテンツアイテムインスタンス情報サービス115は、識別及び権利付与サービス105と通信して、権利付与情報106に少なくとも一部基づいて、ユーザがアクセスのために認可され権利付与されるコンテンツを判断してもよい。以下で極めて詳細に説明されるように、次いで、ユーザは、ユーザがアクセス権付与されている選択されたコンテンツアイテムへのアクセスを要求してもよく、コンテンツアイテムインスタンス情報サービス115は、そのユーザのためのユーザセッションを、コンテンツ実行コンポーネント120内で実行する選択されたコンテンツアイテムの特定のインスタンスに合致させ、割り当ててもよい。この割り当て情報は、コンテンツ実行コンポーネント120に転送されてもよく、コンテンツ実行コンポーネント120は、コンテンツクライアント112と、その割り当てられ合致されたコンテンツアイテムインスタンスとの間で通信を確立してもよい。
コンテンツのスケーリング及び実行に加えて、コンテンツ実行コンポーネント120は、また、使用中のユーザセッションの数、使用されていないユーザセッションの数、コンテンツアイテムインスタンスの存続期間、メモリ使用量などの、実行中のコンテンツアイテムインスタンスに関する様々なテレメトリ情報を収集してもよい。コンテンツ実行コンポーネント120は、この収集されたテレメトリ情報をテレメトリコンポーネント125に提供してもよく、テレメトリコンポーネント125は、以下で極めて詳細に説明されるように、テレメトリデータをルーティングし、処理してもよい。例えば、テレメトリコンポーネントは、コンテンツアイテムインスタンス情報をコンテンツアイテムインスタンス情報サービス115に提供してもよい。このコンテンツアイテムインスタンス情報は、例えば、コンテンツアイテムインスタンスへのユーザセッションの合致及び割り当て、新たなコンテンツアイテムインスタンスの開始、ならびにコンテンツ開発者及び他の関係者へのコンテンツアイテムインスタンスレベルのフィードバック及びメトリックを可能にしてもよい。コンテンツアイテムインスタンス情報サービス115に加えて、テレメトリ情報は、コンテンツアイテムフリート情報サービス及び履歴情報サービスなどの他のサービスにも提供されてもよい。これらの及び他のテレメトリデータサービスは、図3を参照して以下で極めて詳細に説明される。
図2は、本開示に従って使用され得る、例としてのコンテンツスケーリング及び実行システムを示す図である。図2に示されるように、コンテンツ実行コンポーネント120(図1にも示されている)は、スケーリングコンポーネント230を含み、スケーリングコンポーネント230は、展開されたコンテンツをスケーリングするための様々な動作を実行してもよい。特に、コンテンツアイテムが、システム150を用いて展開準備ができているとき、コンテンツアイテムの展開準備ができていることを示し、位置及び/またはアドレス情報などの、コンテンツにアクセスするための情報を提供するメッセージが、開発者計算ノード100を介して送信されてもよい。いくつかの実施例では、開発者は、また、コンテンツアイテムフリートについての名前、開発段階、及びコンテンツアイテムの説明などの追加情報も提供してもよい。アクセス情報、及びいくつかの場合に、追加情報が、コンテンツスケーリングコンポーネント230に提供されてもよく、スケーリングコンポーネント230は、仮想マシンインスタンス上のイメージとしてコンテンツアイテムの1つまたは複数のインスタンスをインストールするための命令を発行してもよい。以下で極めて詳細に説明されるように、コンテンツアイテムの追加的なインスタンスが、次いで、同一の仮想マシンインスタンス上で、及び/または任意の数の追加的な仮想マシンインスタンス上にイメージをコピーすることによって、開始されてもよい。
展開されたコンテンツアイテムについてのコンテンツアイテムインスタンスをグループ化したものが、コンテンツアイテムフリートと呼ばれる。図2において、コンテンツ実行コンポーネント120は、例としてのコンテンツアイテムフリート210を実行する。理解されるように、図2には単一のコンテンツアイテムフリート210だけが示されているが、コンテンツ実行コンポーネント120は、同一または異なる時間に任意の数の異なるコンテンツアイテムフリートを実行してもよい。図2の特定の実施例では、コンテンツアイテムフリート210は、2つの仮想マシンインスタンス220A及び220Nを含み、それぞれが3つのコンテンツアイテムインスタンスを実行する。特に、仮想マシンインスタンス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)に関連付けられ、及び/またはソフトウェア開発キット(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は、概して、コンテンツアイテムインスタンス201A〜N及び221A〜Nと、スケーリングコンポーネント230及びテレメトリランディング301などの仮想マシンインスタンス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は、取り決め一式に従って、あるキーまたは他の識別情報で情報にタグ付けし、または情報を識別してもよい。これらの取り決めは、テレメトリ情報を適当な受信者に高速かつ効率的にルーティングするために、テレメトリルーティング機能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つの異なるコンテンツ属性嗜好を指定するシナリオを考える。ここで、第1のコンテンツアイテムインスタンスは、5つ全てのユーザの嗜好に合致するが、使用されていないユーザセッションを1つしか有しておらず、一方、第2のコンテンツアイテムインスタンスは、ユーザの嗜好5つのうち4つに合致するが、使用されていないユーザセッションを10有すると仮定する。このシナリオでは、嗜好が第1のコンテンツアイテムインスタンスにより強く相関し得る他のユーザに、利用可能な第1のコンテンツアイテムインスタンスのただ1つ残っている使用されていないユーザセッションをとっておくために、ユーザを第2のコンテンツアイテムインスタンスに割り当てることが有利である場合がある。また、いくつかの実施例では、ユーザが、割り当てのために識別されたコンテンツアイテムインスタンスのうちの1つを選択できるようにするため、またはそのような選択を行うための入力を提供できるようにするために、コンテンツアイテムインスタンス情報サービス115は、ユーザの嗜好をコンテンツクライアント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は、本開示に従って使用され得る、例としてのコンテンツアイテムテスト及び展開のタイムライン405を示す図である。タイムライン405は、縮尺通りに描かれておらず、任意の特定のイベントの前、間、または後に発生する、いかなる特定の正確な時間量も示すことを意図するものではないことに留意されたい。図4に示されるように、イベント410において、例えばバックエンドサービス上で、ビデオゲームなどのコンテンツアイテムの展開準備ができているという標識が、受信される。標識は、コンテンツアイテムの開発者から受信されてもよい。コンテンツアイテム情報は、コード、バイナリファイル、開発者インストールスクリプト、及びコンテンツアイテムに関連付けられる他の情報などの、コンテンツアイテムに関連付けられる情報を含んでもよい。イベント410において受信される標識に加えて、開発者は、例えば、コンテンツアイテム情報が記憶され、取り出され得る1つまたは複数の位置の標識も提供してもよい。開発者は、例えば、コンテンツアイテムのインスタンスのフリートについての名前、コンテンツアイテムについての開発段階、コンテンツアイテムの説明、及びその他の情報も提供してもよい。
コンテンツアイテムの展開準備ができているという標識を受信すると、バックエンドサービスは、例えば、開発者によって提供される位置情報に基づいて、関連するコンテンツアイテム情報を配置してもよい。イベント412において、サービスは、コンテンツアイテム情報を第1の仮想マシンインスタンス上にロードしてもよい。コンテンツアイテム情報をロードするプロセスは、例えば、コンテンツアイテムに関連付けられるコード及び/またはバイナリファイルのロード、ならびにコンテンツアイテムに関連付けられる開発者インストールスクリプトの実行を含んでもよい。
コンテンツアイテム情報のロードが完了すると、ロードされたコンテンツアイテム情報のスナップショット(即ち、コピー)またはそれらの任意の部分が取り込まれてもよい。イベント413を実行すると、タイムライン405は、上部405A及び下部405Bに分岐する。このようなタイムライン405の分岐は、部分405A及び405Bが、互いに並行して、または部分的に並行して実行され得ることを伝えることを意図するものである。イベント414において、イベント413において作成されたスナップショットを第2の仮想マシンインスタンスにコピーするなどによって、コンテンツアイテム情報が第2の仮想マシンインスタンス上にロードされる。イベント415において、仮想マシンイメージ制作プロセスが、第2の仮想マシンインスタンス上で開始される。仮想マシンイメージ制作プロセスは、第2の仮想マシンインスタンス上にロードされるコンテンツアイテム情報に少なくとも一部基づいて、仮想マシンイメージを生成することを含んでもよい。それに応じて、仮想マシンイメージは、第2の仮想マシンインスタンス上にロードされるコンテンツアイテム情報を含んでもよい。追加的に、後述されるように、仮想マシンイメージの各複製もまた、第2の仮想マシンインスタンス上にロードされるコンテンツアイテム情報を含んでもよい。いくつかの実施例では、仮想マシンイメージは、オペレーティングシステムを伴う読み取り専用ファイルシステムイメージを含んでもよい。また、いくつかの実施例では、仮想マシンイメージは、署名され、暗号化され、圧縮され、及び情報の様々な部分またはチャンクに分割されてもよい。いくつかの実施例では、仮想マシンイメージは、アマゾンマシンイメージ(AMI)であってもよい。仮想マシンイメージを制作するのに要する期間は、仮想マシンイメージ内に含まれている情報量に少なくとも一部基づくことがある。例えば、より大量の情報を含む仮想マシンイメージは、典型的には、より少ない量の情報を含む仮想マシンイメージよりも制作により多くの時間を要し得る。
上部タイムライン405Aに戻って参照すると、コンテンツアイテム情報のスナップショットを取った後、イベント416において第1の仮想マシンインスタンス上で、SDKが検出及び承認され得ることが分かる。いくつかの実施例では、イベント413及び416の実行の間に、テスト仮想マシンインスタンスをシャットダウンし、リスタートする必要があることがある。上述したように、いくつかの実施例では、コンテンツアイテムの展開されたインスタンスをホストする1つまたは複数のサービスが、1つまたは複数のサービスと統合される1つまたは複数のSDKを公開してもよい。これらの実施例では、SDKは、コンテンツがマルチプレーヤビデオゲームまたは他のマルチユーザ環境とより効率的に対話可能にすることなどによって、例えば、コンテンツの摂取、構成、提供、及び展開が、より容易かつ高速に達成できるようにし得る、コンテンツアイテムに組み込まれたコード及び他の機能性を提供してもよい。例えば、コンテンツを作成するために使用されるSDKは、1つまたは複数のユーザのための新たなユーザセッションの構成、ならびに、使用中ユーザセッションの数、使用されていないユーザセッションの数、コンテンツアイテムインスタンス存続期間、メモリ使用量などの、実行中のコンテンツアイテムに関する情報の報告及び収集を支援してもよい。
したがって、イベント416において、コンテンツアイテムが承認済みSDKを使用して作成されていることを確認するため、及びコンテンツアイテムを作成するために使用された特定のバージョンのSDKを検出するために、第1の仮想マシンインスタンス上のコンテンツアイテム情報が検査されてもよい。本文脈における承認済みSDKは、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなるバックエンドサービスと統合されるSDKであってもよい。例えば、承認済みSDKに合致するか、または関連付けられる様々な命令を識別するために、第1の仮想マシンインスタンス上のコンテンツアイテム情報を検査することによって、SDKがイベント416において承認されてもよい。いくつかの実施例では、承認済みSDKは、図2のインスタンスインタフェース202A〜N及び222A〜Nなどのコンテンツ展開サービスのインスタンスインタフェースに情報を報告すること、または対話することが可能であってもよい。また、いくつかの実施例では、コンテンツアイテムの展開されたインスタンスとともに使用する特定バージョンのインスタンスインタフェースが、イベント416においてコンテンツアイテム情報内で検出されたSDKのバージョンに基づいて判断されてもよい。第1の仮想マシンインスタンス上でSDKを検出すること及び承認することによって、仮想マシンイメージ上、またはその複製上でSDKを引き続き検出及び承認する必要がない場合があることに留意されたい。
いくつかの実施例では、承認済みSDKが、第1の仮想マシンインスタンス上のコンテンツアイテム情報内で検出できない場合、コンテンツアイテムが、サービスによるホスティングに現在適当でないと判断されてもよい。開発者は、このエラーを通知され、承認済みSDKを含むようにコンテンツアイテムを編集または再作成するよう依頼されてもよい。このような場合、第1の仮想マシンインスタンス及び仮想マシンイメージの使用が、承認されなくてもよく、及び/または終了されてもよい。
イベント418において、プロキシコンポーネントが、第1の仮想マシンインスタンス上にインストールされる。イベント418においてインストールされたプロキシコンポーネントは、例えば、図2のプロキシコンポーネント203及び223に類似または同一であってもよい。上述したように、このようなプロキシコンポーネントは、概して、実行中のコンテンツアイテムインスタンスと、図2のスケーリングコンポーネント230及びテレメトリランディング301などの他のコンポーネントとの間の、情報及びコマンドの交換を可能にしてもよい。プロキシコンポーネント203及び223の機能及び動作は、上で詳細に説明されており、ここでは繰り返さない。
図4に示されるように、SDKの検出及び承認(イベント416)、及びプロキシコンポーネントのインストール(イベント418)の後、本明細書でテストコンテンツアイテムインスタンスと呼ばれる、第1の仮想マシンインスタンス上で実行されるコンテンツアイテムインスタンスが、期間420の間に実行するため利用可能になってもよい。特に、期間420の任意の部分の間に、1つまたは複数のユーザセッションが、テストコンテンツアイテムインスタンスに割り当てられ、接続されてもよい。いくつかの実施例では、1つまたは複数の接続されたユーザセッションが、コンテンツアイテムのテストまたはコンテンツアイテムとの対話のためにコンテンツアイテムの開発者によって動作されてもよい。図4に示されるように、テストコンテンツアイテムインスタンスは、仮想マシンイメージ制作時間(即ち、タイムラインの部分405B上のイベント414と422との間の時間)の少なくとも一部の間、実行に利用可能にされる。上述したように、テストコンテンツアイテムインスタンスを用いたコンテンツアイテムの実行及びテストは、いくつかの場合に、開発者が、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなる同じバックエンドサービスによって実行されるコンテンツアイテムインスタンスをテストし、対話することを可能にしてもよく、それによって、開発者が、それが他のユーザに提供され得る同じ環境内で、コンテンツアイテムをテストし、対話することを可能にする。いくつかの場合、1つまたは複数の欠点または他の問題が、高速に識別され、効率的に訂正され得るように、テストコンテンツアイテムインスタンスが、コンテンツアイテムをテストすることを可能にしてもよい。追加的に、テストコンテンツアイテムインスタンスは、例えば、開発者が、コンテンツアイテムをテストし、またはコンテンツアイテムと対話するためにイメージが完全に制作されるまで待機しなくとも、仮想マシンイメージの有益性を体験できるようにしてもよい。
下部タイムライン405Bに戻って参照すると、イベント422において、仮想マシンイメージ制作が完了し得ることが分かる。いくつかの実施例では、仮想マシンイメージ制作が完了すると、開発者には、仮想マシンイメージ制作が完了したこと、及び仮想マシンイメージの使用準備ができていることが通知されてもよい。続いて、イベント424において、仮想マシンイメージを使用するための承認が、判断されてもよい。例えば、仮想マシンイメージを使用するための承認が、開発者から受信されてもよい。仮想マシンイメージの使用が、仮想マシンイメージ制作の完了後すぐに開発者によって承認されなければならないという必要はないことに留意されたい。図4の具体例では、仮想マシンイメージ制作の完了(イベント422)とその使用のための承認の判断(イベント424)との間に時間遅延がある。この時間遅延は、下部タイムライン405B内のイベント422及び424間の中断によって示され、上部タイムライン405A内のイベント422及び424間の破線によっても示される。いくつかの実施例では、イベント422及び424間の時間遅延の間、仮想マシンイメージ制作が完了した後であっても、開発者は、テストコンテンツアイテムインスタンスをテストし、テストコンテンツアイテムインスタンスと対話し続けてもよい。
いくつかの実施例では、仮想マシンイメージの承認及び使用は、仮想マシンイメージが複製される仮想マシンインスタンスを取得し、使用するためのコストなど、開発者に様々なコストを生じ得る。いくつかの場合、開発者は、これらのコストが正当であり、仮想マシンイメージ制作が完了する時点ですぐに承認することが望ましいということに確信がない場合がある。したがって、これらの及びその他の場合、仮想マシンイメージ制作が完了した後であっても、開発者は、テストコンテンツアイテムインスタンス上でコンテンツアイテムをテストし、コンテンツアイテムと対話し続けたい場合がある。これによって、開発者は、仮想マシンイメージの使用を承認するか否か、及びそのような承認に関連し得るコストを負うか否かについての最終決定を行う前に、コンテンツアイテムのさらなるテスト及びコンテンツアイテムとの追加の対話を行うことが可能となる。
図4の実施例では、仮想マシンイメージの使用に対する承認を判断すること(イベント424)が、イベント426及び428の実行を引き起こす。特に、仮想マシンイメージの使用に対する承認を判断した後すぐにまたは間もなく、イベント426において、第1の仮想マシンインスタンスが終了され、または再利用されてもよい。理解されるように、一旦第1の仮想マシンインスタンスが終了され、または再利用されると、イベント426における期間420の満了によって示されるように、テストコンテンツアイテムインスタンスが実行に利用可能でなくなることとなる。
追加的に、仮想マシンイメージの使用に対する承認を判断した後、イベント428において、コンテンツアイテムフリートがアクティブ化される。特に、アクティブ化されると、コンテンツアイテムフリートは、仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製することによって生成されてもよい。上述したように、例えば、仮想マシンイメージによって、コンテンツアイテムが多数の他の仮想マシン上に容易かつ効率的に複製されることが可能となり、それによって、多数のコンテンツアイテムインスタンスが、ユーザ要求に応じて高速にスケールアップすることが可能となり得るため、仮想マシンイメージは有利であり得る。
いくつかの実施例では、仮想マシンイメージの使用に対する明示的な承認が、開発者から受信される必要がない場合があることに留意されたい。例えば、仮想マシンイメージの使用に対する承認の判断が、開発者からの明示的な承認を受信することなく推測されることがある。いくつかの実施例では、仮想マシンイメージの使用に対する承認が、仮想マシンイメージの制作の完了後自動的に推測されてもよく、フリートがアクティブ化されてもよい。
上述したように、いくつかの実施例では、開発者が、仮想マシンイメージの使用を承認しないことを選択してもよい。これは、例えば、テストコンテンツアイテムインスタンスをテストすることなどに基づいて、それらがコンテンツアイテムを満たさないと開発者が判断し、フリートアクティブ化及び実行のコストを負いたくないか、または仮想マシンイメージの使用を承認したくないときに発生することがある。いくつかの場合、開発者は、コンテンツアイテムフリートが、アクティブ化について承認されないことを明示的に示すメッセージを送信してもよい。その他の場合、明示的な承認を受信せずにイメージ制作の完了後期間が満了するなどの要因、またはその他の要因に基づいて、フリートアクティブ化の不承認が推測されることがある。図5は、仮想マシンイメージが使用のために承認されない実施例を示す。特に、図5は、イベント422の仮想マシンイメージ制作の完了までは、図4と同一である。一方、図5に示されるように、仮想マシンイメージ制作完了に続いて、イベント524において仮想マシンイメージ使用の不承認が判断される。上述したように、イベント524は、明示的な不承認の受信、または、例えば、期間満了に基づく不承認の推測を含んでもよい。イベント524の発生後、第1の仮想マシンインスタンスが、終了され、または再利用され(イベント426)、仮想マシンイメージもまた、終了され、または再利用される(イベント526)。
図6は、本開示に従って使用され得る、仮想マシンイメージ制作中のコンテンツアイテム実行のための例としてのプロセスを示す図である。図6に示されるように、動作610において、ビデオゲームなどのコンテンツアイテムの展開準備ができているという標識が、(例えば、開発者から)受信される。コンテンツアイテム情報は、コード、バイナリファイル、開発者インストールスクリプト、及びコンテンツアイテムに関連付けられる他の情報などの、コンテンツアイテムに関連付けられる情報を含んでもよい。上述したように、開発者は、また、コンテンツアイテム情報が記憶され、取り出され得る1つまたは複数の位置を示してもよい。
コンテンツアイテムの展開準備ができているという標識を受信すると、動作612において、コンテンツアイテムに関連付けられるコンテンツアイテム情報が、第1の仮想マシンインスタンス上にロードされてもよい。上述したように、コンテンツアイテム情報をロードするプロセスは、例えば、コンテンツアイテムに関連付けられるコード及び/またはバイナリファイルのロード、ならびにコンテンツアイテムに関連付けられる開発者インストールスクリプトの実行を含んでもよい。
コンテンツアイテム情報のロードが完了すると、ロードされたコンテンツアイテム情報のスナップショット(即ち、コピー)またはそれらの任意の部分が、動作614において作られてもよい。動作622において、動作614で作成されたスナップショットを第2の仮想マシンインスタンスにコピーすること、またはコンテンツアイテム情報を第2の仮想マシンインスタンス上にロードすることなどによって、コンテンツアイテム情報が第2の仮想マシンインスタンス上にロードされる。動作624において、仮想マシンイメージ制作プロセスが、第2の仮想マシンインスタンス上で開始される。上述したように、仮想マシンイメージ制作プロセスは、第2の仮想マシンインスタンス上にロードされるコンテンツアイテム情報に少なくとも一部基づいて、仮想マシンイメージを生成することを含んでもよい。それに応じて、仮想マシンイメージ、及びその各複製は、第2の仮想マシンインスタンス上にロードされるコンテンツアイテム情報を含んでもよい。
動作626において、仮想マシンイメージ制作が完了したかどうかが判断される。いくつかの実施例では、仮想マシンイメージの制作完了の標識が、開発者に送信されてもよい。仮想マシンイメージ制作が完了すると、プロセスは動作628に進み、動作628において、仮想マシンイメージを使用するための承認が受信された(または推測された)かどうかが判断される。
図6に示されるように、動作614の実行後、別の系列の動作(即ち、動作616、618、及び620)が、第1の仮想マシンイメージに関連して実行されることが分かる。特に、動作616において、SDKが、第1の仮想マシンインスタンス上で検出され、承認されてもよい。上述したように、コンテンツアイテムが承認済みSDKを使用して作成されていることを確認するため、及びコンテンツアイテムを作成するために使用された特定のバージョンのSDKを検出するために、第1の仮想マシンインスタンス上のコンテンツアイテム情報が検査されてもよい。本文脈における承認済みSDKは、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなるバックエンドサービスと統合されるSDKであってもよい。例えば、承認済みSDKに合致するか、または関連付けられる様々な命令を識別するために、第1の仮想マシンインスタンス上のコンテンツアイテム情報を検査することによって、SDKが動作616において承認されてもよい。
動作618において、プロキシコンポーネントが、第1の仮想マシンインスタンス上にインストールされる。上述したように、このようなプロキシコンポーネントは、概して、実行中のコンテンツアイテムインスタンスと、図2のスケーリングコンポーネント230及びテレメトリランディング301などの他のコンポーネントとの間の、情報及びコマンドの交換を可能にしてもよい。
動作620において、テストコンテンツアイテムインスタンスが実行に利用可能であると開発者に通知することなどによって、テストコンテンツアイテムインスタンスが、実行に利用可能とされる。サブ動作620Aにおいて、テストコンテンツアイテムインスタンスが、第1の仮想マシンインスタンス上で実行される。テストコンテンツアイテムインスタンスが実行される時間の少なくとも一部が、仮想マシンイメージ制作中に発生してもよい。上述したように、テストコンテンツアイテムインスタンスは、例えば、開発者が、コンテンツアイテムをテストし、またはコンテンツアイテムと対話するためにイメージが完全に制作されるまで待機しなくとも、仮想マシンイメージの有益性を体験できるようにしてもよい。いくつかの場合、1つまたは複数の欠点または他の問題が、高速に識別され、効率的に訂正され得るように、テストコンテンツアイテムインスタンスが、コンテンツアイテムをテストすることを可能にしてもよい。追加的に、テストコンテンツアイテムインスタンスを用いたコンテンツアイテムの実行及びテストは、いくつかの場合、開発者が、アクティブ化されたコンテンツアイテムフリートを潜在的にホストすることとなる同じバックエンドサービスによって実行されるコンテンツアイテムインスタンスをテストし、及び対話することを可能にしてもよく、それによって、開発者が、それが他のユーザに提供され得る同じ環境内で、コンテンツアイテムをテストし、及び対話することを可能にする。
図6に示されるように、少なくとも、動作628において、仮想マシンイメージ使用承認判断が受信され、または推測されたと判断されるまで(例えば、仮想マシンインスタンスの使用が承認され、または不承認とされるまで)、テストコンテンツアイテムインスタンスは、実行に利用可能とされ続けてもよい(かつ、時には実行され続けてもよい)。上述したように、仮想マシンイメージの使用が、仮想マシンイメージ制作の完了後すぐに開発者によって承認されなければならないという必要はない。むしろ、仮想マシンイメージ制作が完了した後であっても、開発者は、承認判断を遅延させることがあってもよく、テストコンテンツアイテムインスタンスをテストし、テストコンテンツアイテムインスタンスと対話し続けてもよい。したがって、仮想マシンイメージ使用承認判断が受信され、または推測されるまで、動作628及び620を通して図6のプロセスが循環し続けてもよい。上述したように、いくつかの実施例では、動作628は、仮想マシンイメージの使用を明示的に承認または不承認とする、開発者からのメッセージを受信することを含んでもよい。他の実施例では、仮想マシンイメージの使用の承認または不承認が、推測されてもよい。例えば、いくつかの場合、承認が自動的に推測されてもよい。その他の場合、開発者が、仮想マシンイメージ制作完了後指定された期間内に、明示的な承認を提供できない場合に、不承認が推測されてもよい。
動作630において、仮想マシンイメージの使用が承認されたかどうかが判断される。動作630において、仮想マシンの使用が承認されないと判断される場合、動作632において、第1の仮想マシンインスタンス及び仮想マシンイメージの両方が、終了され、及び/または再利用されてもよい。
一方、動作630において、仮想マシンの使用が承認されたと判断される場合、仮想マシンイメージ使用の承認に少なくとも基づいて、動作634、636、及び/または638が実行されてもよい。特に、プロセスは、動作634に進んでもよく、動作634において、第1の仮想マシンインスタンスが、終了され、または再利用されてもよい。動作636において、仮想マシンが、1つまたは複数の他の仮想マシンインスタンスに複製されてもよい。上述したように、例えば、仮想マシンイメージによって、コンテンツアイテムが多数の他の仮想マシン上に容易かつ効率的に複製されることが可能となり、それによって、多数のコンテンツアイテムインスタンスが、ユーザ要求に応じて高速にスケールアップすることが可能となり得るため、仮想マシンイメージは有利であり得る。動作638において、コンテンツアイテムインスタンスが、仮想マシンイメージが複製された他の仮想マシンインスタンス上で実行される。これらのコンテンツアイテムインスタンスが、コンテンツアイテムの実行中のインスタンスのスケーラブルなフリートを形成してもよく、それによって、多数のユーザが、同時に、または部分的に同時にコンテンツアイテムと接続及び対話することが潜在的に可能となる。したがって、いくつかの実施例では、仮想マシンイメージは、コンテンツアイテムにアクセスする複数のユーザにホストするために複数の仮想マシンインスタンス上で使用されてもよい。例えば、いくつかの場合、仮想マシンイメージが、複数の仮想マシンインスタンス上で使用されて、クラウドまたは他の分散型コンピューティング環境において、複数のゲームセッションまたは他のコンテンツアイテムセッションのホスティングを可能にし得る。
追加的に、本開示の実施形態は、以下の条項を考慮して説明され得る。
1.1つまたは複数のコンピューティングデバイスと、
コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードすること、
前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始すること、
前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行することであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生する、前記実行すること、
前記仮想マシンイメージの前記制作を完了すること、
前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製すること、及び、
前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行すること、
を含む動作を、実行時にシステムに実行させるコンピュータ実行可能命令が記憶されている1つまたは複数のメモリと、
を備える、仮想マシンイメージ制作中のコンテンツアイテム実行のためのシステム。
2.前記動作が、前記仮想マシンイメージの使用についての承認を判断することであって、前記仮想マシンイメージを前記複製することが、前記承認に少なくとも一部基づいて実行される、前記判断することをさらに含む、条項1に記載のシステム。
3.前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、前記コンテンツアイテムに関連付けられる前記情報が、承認済みソフトウェア開発キットに関連付けられる命令を含むことを判断するために前記第1の仮想マシンインスタンスを検査することをさらに含む、条項1に記載のシステム。
4.前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、1つまたは複数のプロキシコンポーネントを前記第1の仮想マシンインスタンス上にインストールすることをさらに含む、条項1に記載のシステム。
5.コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードすることと、
前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始することと、
前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行することであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生する、前記実行することと、
を含む、仮想マシンイメージ制作中のコンテンツアイテム実行のためのコンピュータ実施される方法。
6.前記コンテンツアイテムの前記第1のインスタンスを実行する前に、前記コンテンツアイテムに関連付けられる前記情報が、承認済みソフトウェア開発キットに関連付けられる命令を含むことを判断するために前記第1の仮想マシンインスタンスを検査することをさらに含む、条項5に記載のコンピュータ実施される方法。
7.前記承認済みソフトウェア開発キットが、前記コンテンツアイテムの実行中インスタンスに関連付けられる情報の報告を支援する、条項6に記載のコンピュータ実施される方法。
8.前記コンテンツアイテムの前記第1のインスタンスを実行する前に、1つまたは複数のプロキシコンポーネントを前記第1の仮想マシンインスタンス上にインストールすることをさらに含む、条項5に記載のコンピュータ実施される方法。
9.前記仮想マシンイメージの前記制作を完了することと、
前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製することと、
前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行することと、をさらに含む、条項5に記載のコンピュータ実施される方法。
10.前記仮想マシンイメージの使用についての承認を判断することであって、前記仮想マシンイメージを前記複製することが、前記承認に少なくとも一部基づいて実行される、前記判断することをさらに含む、条項9に記載のコンピュータ実施される方法。
11.前記承認に少なくとも一部基づいて、前記第1の仮想マシンインスタンスを終了させること、または再利用することをさらに含む、条項10に記載のコンピュータ実施される方法。
12.前記コンテンツアイテムの前記第1のインスタンスが、少なくとも前記承認を受信または推測するまで実行に利用可能である、請求項10に記載のコンピュータ実施される方法。
13.前記仮想マシンイメージが、前記コンテンツアイテムにアクセスする複数のユーザにホストするために複数の仮想マシンインスタンス上で使用される、請求項10に記載のコンピュータ実施される方法。
14.コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードすることと、
前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始することと、
前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行することであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生する、前記実行することと、
を含む動作を、少なくとも1つの計算ノード上での実行時に、前記少なくとも1つの計算ノードに実行させる命令が記憶されている、1つまたは複数の非一時的コンピュータ可読記憶媒体。
15.前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、前記コンテンツアイテムに関連付けられる前記情報が、承認済みソフトウェア開発キットに関連付けられる命令を含むことを判断するために前記第1の仮想マシンインスタンスを検査することをさらに含む、条項14に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
16.前記承認済みソフトウェア開発キットが、前記コンテンツアイテムの実行中インスタンスに関連付けられる情報の報告を支援する、条項15に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
17.前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、1つまたは複数のプロキシコンポーネントを前記第1の仮想マシンインスタンス上にインストールすることをさらに含む、条項14に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
18.前記動作が、
前記仮想マシンイメージの前記制作を完了することと、
前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製することと、
前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行することと、
をさらに含む、条項14に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
19.前記動作が、前記仮想マシンイメージの使用についての承認を判断することであって、前記仮想マシンイメージを前記複製することが、前記承認に少なくとも一部基づいて実行される、前記判断することをさらに含む、条項18に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
20.前記動作が、前記承認に少なくとも一部基づいて、前記第1の仮想マシンインスタンスを終了させること、または再利用することをさらに含む、条項19に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
21.前記コンテンツアイテムの前記第1のインスタンスが、少なくとも前記承認を受信または推測するまで実行に利用可能である、条項19に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
22.前記仮想マシンイメージが、前記コンテンツアイテムにアクセスする複数のユーザにホストするために複数の仮想マシンインスタンス上で使用される、条項14に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
少なくともいくつかの実施形態では、本明細書で説明される技術のうちの1つまたは複数の一部または全てを実施する1つまたは複数の計算ノードが、1つもしくは複数のコンピュータアクセス可能な媒体を含み、またはアクセスするように構成されるコンピュータシステムを含んでもよく、または関連付けられてもよい。コンピューティングノードとも呼ばれ得る計算ノードは、コモディティハードウェアコンピュータ、仮想マシン、ウェブサービス、コンピューティングクラスタ、及びコンピューティング機器などの、幅広いコンピューティング環境において実施されてもよい。これらのコンピューティングデバイスまたは環境のうちのいずれかが、便宜上、計算ノードとして説明されてもよい。図7は、1つまたは複数のコンピュータアクセス可能な媒体を含み、またはアクセスするように構成されるコンピュータシステムを示す。図示された実施形態では、コンピューティングデバイス15は、入力/出力(I/O)インタフェース30を介してシステムメモリ20に連結される1つまたは複数のプロセッサ10a、10b、及び/または10n(本明細書において、単数形で「プロセッサ10」、または複数形で「プロセッサ10」と呼ばれ得る)を含む。コンピューティングデバイス15は、I/Oインタフェース30に連結されるネットワークインタフェース40をさらに含む。
様々な実施形態では、コンピューティングデバイス15は、1つのプロセッサ10を含むユニプロセッサシステム、または複数(例えば、2個、4個、8個もしくは別の適当な数)のプロセッサ10を含むマルチプロセッサシステムであってもよい。プロセッサ10は、命令を実行可能な任意の適当なプロセッサであってもよい。例えば、様々な実施形態では、プロセッサ10は、x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の適当なISAなどの多様な命令セットアーキテクチャ(ISA)のいずれかを実施する組み込みプロセッサであってもよい。マルチプロセッサシステムでは、プロセッサ10のそれぞれは、一般に、しかし必須ではなく、同一のISAを実施してもよい。
システムメモリ20は、プロセッサ(複数可)10によってアクセス可能な命令及びデータを記憶するように構成されてもよい。様々な実施形態では、システムメモリ20は、スタティックランダムアクセスメモリ(SRAM)、同期式動的RAM(SDRAM)、不揮発性/フラッシュ(登録商標)型メモリ、または任意の他の種類のメモリなどの、任意の適当なメモリ技術を用いて実施されてもよい。図示される実施形態では、上述したこれらの方法、技術及びデータなどの1つまたは複数の所望の機能を実施するプログラム命令及びデータが、システムメモリ20内にコード25及びデータ26として記憶されて示される。
一実施形態では、I/Oインタフェース30は、ネットワークインタフェース40または他の周辺インタフェースを含む、デバイス内のプロセッサ10、システムメモリ20、及び任意の周辺機器の間のI/Oトラフィックを協調させるように構成されてもよい。いくつかの実施形態では、I/Oインタフェース30は、データ信号を1つのコンポーネント(例えば、システムメモリ20)から、別のコンポーネント(例えば、プロセッサ10)による使用に適したフォーマットに変換するために、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行してもよい。いくつかの実施形態では、I/Oインタフェース30は、例えば、周辺構成要素相互接続(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形などの、様々な種類の周辺バスを通して取り付けられたデバイスのためのサポートを含んでもよい。いくつかの実施形態では、I/Oインタフェース30の機能は、例えば、ノースブリッジ及びサウスブリッジなどの2つ以上の別々のコンポーネントに分割されてもよい。また、いくつかの実施形態では、システムメモリ20へのインタフェースなどのI/Oインタフェース30の機能性のうちのいくつかまたは全てが、プロセッサ10に直接組み込まれてもよい。
ネットワークインタフェース40は、コンピューティングデバイス15と、例えば、他のコンピュータシステムまたはデバイスなどの、ネットワーク50に取り付けられる他のデバイス60との間でデータが交換されることを可能にするように構成されてもよい。様々な実施形態では、ネットワークインタフェース40は、例えば、イーサネットネットワークの種類などの、任意の適当な有線または無線汎用データネットワークを介して通信をサポートしてもよい。追加的に、ネットワークインタフェース40は、ファイバチャネルSAN(ストレージエリアネットワーク)などのストレージエリアネットワークを介して、または任意の他の適当な種類のネットワーク及び/もしくはプロトコルを介して、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの、遠距離通信/電話通信ネットワークを介した通信をサポートしてもよい。
いくつかの実施形態では、システムメモリ20は、対応する方法及び装置の実施形態を実施するための、上述のようなプログラム命令及びデータを記憶するように構成されるコンピュータアクセス可能な媒体の一実施形態であってもよい。一方、他の実施形態では、プログラム命令及び/またはデータは、様々な種類のコンピュータアクセス可能な媒体上で受信され、送信され、または記憶されてもよい。概して言うと、コンピュータアクセス可能な媒体が、I/Oインタフェース30を介してコンピューティングデバイス15に連結される、例えば、ディスクまたはDVD/CDといった磁気または光学媒体などの、非一時的記憶媒体またはメモリ媒体を含んでもよい。非一時的コンピュータアクセス可能な記憶媒体は、また、システムメモリ20または別の種類のメモリとしてコンピューティングデバイス15のいくつかの実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROM(読み取り専用メモリ)などの任意の揮発性または不揮発性媒体を含んでもよい。さらに、コンピュータアクセス可能な媒体は、伝送媒体、または、ネットワークインタフェース40を介して実施され得るような、ネットワーク及び/もしくは無線リンクなどの通信媒体を介して伝達される、電気、電磁気、もしくはデジタル信号などの信号を含んでもよい。図7に示されるもののように、複数のコンピューティングデバイスの一部または全てが、様々な実施形態において説明される機能性を実施するために使用されてもよい。例えば、多様な異なるデバイス及びサーバ上で動作するソフトウェアコンポーネントは、協働して機能性を提供してもよい。いくつかの実施形態では、説明される機能性の一部が、記憶デバイス、ネットワークデバイス、または専用コンピュータシステムを使用して実施されてもよい。本明細書で使用される「コンピューティングデバイス」という用語は、少なくとも全てのこれらの種類のデバイスを指し、これらの種類のデバイスに限定されない。
前節で説明されるプロセス、方法、及びアルゴリズムのそれぞれが、1つまたは複数のコンピュータまたはコンピュータプロセッサによって実行されるコードモジュールにおいて具現化され、コードモジュールによって完全にまたは部分的に自動化されてもよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光ディスク、及び/またはその他などの、任意の種類の非一時的コンピュータ可読媒体またはコンピュータ記憶デバイス上に記憶されてもよい。プロセス及びアルゴリズムは、部分的または全体的にアプリケーション固有の回路において実施されてもよい。開示されたプロセス及び処理ステップの結果が、例えば、揮発性または不揮発性記憶装置などの、任意の種類の非一時的コンピュータ記憶装置において、永続的にまたは非永続的に記憶されてもよい。
上述した様々な特徴及びプロセスは、互いに独立して使用されてもよく、または様々なやり方で組み合わされてもよい。全ての考えられる組み合わせ及び部分的組み合わせが、開示の範囲内に入るように意図される。さらに、ある方法または処理ブロックが、いくつかの実施態様において省略されてもよい。本明細書で説明される方法及びプロセスは、また、任意の特定のシーケンスに限定されず、それに関連するブロックまたは状態は、適当な他のシーケンスで実行され得る。例えば、説明されるブロックもしくは状態は、具体的に開示されるものとは異なる順序で実行されてもよく、または複数のブロックもしくは状態は、単一のブロックもしくは状態に結合されてもよい。例としてのブロックまたは状態は、連続で、並行して、またはいくつかの他のやり方で実行されてもよい。ブロックまたは状態は、開示された例としての実施形態に追加され、または実施形態から削除されてもよい。本明細書で説明された例としてのシステム及びコンポーネントは、説明されたものとは異なったように構成されてもよい。例えば、要素は、開示された例としての実施形態に追加され、実施形態から削除され、実施形態と比較して再配列されてもよい。
様々な項目が、使用中にメモリまたは記憶装置に記憶されているものとして説明されるが、これらの項目またはそれらの部分は、メモリ管理及びデータ整合性の目的で、メモリ及び他の記憶デバイス間で移転され得ることも、理解されるであろう。代替的に、他の実施態様では、ソフトウェアモジュール及び/またはシステムのうちのいくつかまたは全てが、別のデバイス上のメモリ内で実行し、示されるコンピューティングシステムとコンピュータ間通信を介して通信してもよい。さらに、いくつかの実施形態では、システム及び/またはモジュールのうちのいくつかまたは全てが、1つまたは複数の特定用途向け集積回路(ASIC)、標準集積回路、コントローラ(例えば、適当な命令を実行することにより、かつマイクロコントローラ及び/または組み込みコントローラを含む)、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラム可能論理デバイス(CPLD)などを含むがこれらに限定されない、ファームウェア及び/またはハードウェアなどに少なくとも部分的において、他のやり方で実施され、または提供されてもよい。モジュール、システム、及びデータ構造のうちのいくつかまたは全てが、また、ハードディスク、メモリ、ネットワーク、または携帯媒体用品などの、適当なドライブによってまたは適当な接続を介して読み取られるべきコンピュータ可読媒体上に(例えば、ソフトウェア命令または構造化データとして)記憶されてもよい。システム、モジュール、及びデータ構造は、また、無線ベース及び有線/ケーブルベース媒体を含む多様なコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波、または他のアナログもしくはデジタル伝播信号の一部として)送信されてもよく、多様な形態(例えば、単一もしくは多重アナログ信号の一部として、または複数の個々のデジタルパケットもしくはフレームとして)をとってもよい。このようなコンピュータプログラム製品は、また、他の実施形態においては他の形態をとってもよい。したがって、本発明は、他のコンピュータシステム構成で実施されてもよい。
とりわけ、「can(し得る)」、「could(し得る)」、「might(してもよい)」、「may(してもよい)」、「e.g.(例えば)」などの、本明細書で用いられる条件付きの言葉は、具体的に特段の言及がない限り、または用いられる文脈内で理解される限り、概して、ある特徴、要素、及び/またはステップを、ある実施形態は含むが他の実施形態は含まないことを伝達することを意図するものである。したがって、このような条件付きの言葉は、概して、特徴、要素、及び/もしくはステップが、1つもしくは複数の実施形態に多少なりとも必要とされること、または1つもしくは複数の実施形態が、作成者の入力もしくはプロンプティングの有無に関わらず、これらの特徴、要素、及び/もしくはステップが任意の特定の実施形態に含まれるかどうか、もしくは任意の特定の実施形態において実行されるべきかどうかを決定するためのロジックを必ず含むことを示唆することを意図するものではない。「comprising(備える)」、「including(含む)」、「having(有する)」などの用語は、同義であり、包含的で、無制限の様式で使用され、追加的な要素、特徴、行為、動作などを排除しない。また、「または」という用語は、その包含的な意味で(かつ、その排他的な意味ではなく)使用され、したがって、例えば、要素のリストを接続するために使用される際、「または」という用語は、そのリスト内の要素のうちの1つ、いくつか、または全てを意味する。
ある例示的な実施形態が説明されたが、これらの実施形態は、例としてのみ提示され、本明細書で開示される発明の範囲を制限することを意図するものではない。したがって、前述の説明には、任意の特定の特徴、特性、ステップ、モジュール、またはブロックが必須または不可欠であることを示唆するよう意図するものではない。実際に、本明細書で説明される新規な方法及びシステムは、多様な他の形態で具現化されてもよく、さらに、本明細書で説明される方法及びシステムの形態において様々な省略、代替、及び変更が、本明細書に開示される発明の思想から逸脱することなく行われてもよい。添付の特許請求の範囲及びそれらの均等物は、本明細書に開示される発明のいくらかの範囲及び思想の範囲内に入ることとなる形態または修正を包含することを意図するものである。

Claims (15)

  1. 仮想マシンイメージ制作中のコンテンツアイテム実行のためのシステムであって、前記システムは、
    1つまたは複数のコンピューティングデバイスと、
    コンピュータ実行可能命令が記憶されている1つまたは複数のメモリと、
    を備え、
    前記コンピュータ実行可能命令は、実行時に前記システムに、
    コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードするステップと、
    前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始するステップと、
    前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行するステップであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生するステップと、
    前記仮想マシンイメージの前記制作を完了するステップと、
    前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製するステップと、
    前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行するステップと、
    を含む動作を実行させる、
    システム。
  2. 前記動作が、前記仮想マシンイメージの使用についての承認を判断するステップをさらに含み、前記仮想マシンイメージを複製するステップは、前記承認に少なくとも一部基づいて実行される、
    請求項1に記載のシステム。
  3. 前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、前記コンテンツアイテムに関連付けられる前記情報が、承認済みソフトウェア開発キットに関連付けられる命令を含むことを判断するために前記第1の仮想マシンインスタンスを検査するステップをさらに含む、
    請求項1に記載のシステム。
  4. 前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、1つまたは複数のプロキシコンポーネントを前記第1の仮想マシンインスタンス上にインストールするステップをさらに含む、
    請求項1に記載のシステム。
  5. 仮想マシンイメージ制作中のコンテンツアイテム実行のためのコンピュータ実施される方法であって、前記方法は、
    コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードするステップと、
    前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始するステップと、
    前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行するステップであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生するステップと、
    を含むコンピュータ実施される方法。
  6. 前記コンテンツアイテムの前記第1のインスタンスを実行する前に、前記コンテンツアイテムに関連付けられる前記情報が、承認済みソフトウェア開発キットに関連付けられる命令を含むことを判断するために前記第1の仮想マシンインスタンスを検査するステップをさらに含む、
    請求項5に記載のコンピュータ実施される方法。
  7. 前記承認済みソフトウェア開発キットが、前記コンテンツアイテムの実行中インスタンスに関連付けられる情報の報告を支援する、
    請求項6に記載のコンピュータ実施される方法。
  8. 前記仮想マシンイメージの前記制作を完了するステップと、
    前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製するステップと、
    前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行するステップと、
    をさらに含む、
    請求項5に記載のコンピュータ実施される方法。
  9. 前記仮想マシンイメージが、前記コンテンツアイテムにアクセスする複数のユーザにホストするために複数の仮想マシンインスタンス上で使用される、
    請求項5に記載のコンピュータ実施される方法。
  10. 命令が記憶されている1つまたは複数の非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの計算ノード上での実行時に、前記少なくとも1つの計算ノードに、
    コンテンツアイテムに関連付けられる情報を第1の仮想マシンインスタンス及び第2の仮想マシンインスタンス上にロードするステップと、
    前記第2の仮想マシンインスタンス上で、前記コンテンツアイテムに関連付けられる前記情報を含む仮想マシンイメージの制作を開始するステップと、
    前記第1の仮想マシンインスタンス上で、前記コンテンツアイテムの第1のインスタンスを実行するステップであって、前記コンテンツアイテムの前記第1のインスタンスが実行される間の時間の少なくとも一部が、前記仮想マシンイメージの前記制作中に発生するステップと、
    を含む動作を実行させる1つまたは複数の非一時的コンピュータ可読記憶媒体。
  11. 前記動作が、前記コンテンツアイテムの前記第1のインスタンスを実行する前に、1つまたは複数のプロキシコンポーネントを前記第1の仮想マシンインスタンス上にインストールするステップをさらに含む、
    請求項10に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  12. 前記動作が、
    前記仮想マシンイメージの前記制作を完了するステップと、
    前記仮想マシンイメージを1つまたは複数の他の仮想マシンインスタンスに複製するステップと、
    前記コンテンツアイテムの1つまたは複数の他のインスタンスを前記1つまたは複数の他の仮想マシンインスタンス上で実行するステップと、
    をさらに含む、
    請求項11に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  13. 前記動作が、前記仮想マシンイメージの使用についての承認を判断するステップをさらに含み、前記仮想マシンイメージを複製するステップは、前記承認に少なくとも一部基づいて実行される、
    請求項12に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  14. 前記動作が、前記承認に少なくとも一部基づいて、前記第1の仮想マシンインスタンスを終了させるステップまたは再利用するステップをさらに含む、
    請求項13に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
  15. 前記コンテンツアイテムの前記第1のインスタンスが、少なくとも前記承認を受信または推測するまで実行に利用可能である、
    請求項14に記載の1つまたは複数の非一時的コンピュータ可読記憶媒体。
JP2017565102A 2015-06-18 2016-06-14 イメージ制作中のコンテンツテスト Active JP6542397B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/743,648 2015-06-18
US14/743,648 US11120892B2 (en) 2015-06-18 2015-06-18 Content testing during image production
PCT/US2016/037419 WO2016205230A1 (en) 2015-06-18 2016-06-14 Content testing during image production

Publications (2)

Publication Number Publication Date
JP2018526717A true JP2018526717A (ja) 2018-09-13
JP6542397B2 JP6542397B2 (ja) 2019-07-10

Family

ID=56409678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017565102A Active JP6542397B2 (ja) 2015-06-18 2016-06-14 イメージ制作中のコンテンツテスト

Country Status (6)

Country Link
US (1) US11120892B2 (ja)
EP (1) EP3311269B1 (ja)
JP (1) JP6542397B2 (ja)
CN (1) CN107743615B (ja)
CA (1) CA2989061C (ja)
WO (1) WO2016205230A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860347B1 (en) 2016-06-27 2020-12-08 Amazon Technologies, Inc. Virtual machine with multiple content processes
US11269676B2 (en) * 2019-07-19 2022-03-08 Vmware, Inc. Managed virtual appliances

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075877A (ja) * 2007-09-20 2009-04-09 Toshiba Corp 情報処理システム、および監視方法
JP2009098909A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp 画像形成プログラムおよびプラグインプログラム
US20110004676A1 (en) * 2008-02-04 2011-01-06 Masahiro Kawato Virtual appliance deploying system
JP2011123891A (ja) * 2009-12-13 2011-06-23 Internatl Business Mach Corp <Ibm> ネットワーク環境において仮想マシンのリモート配備を管理する方法、システムおよびコンピュータ・プログラム
JP2011210032A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd 仮想マシンのマイグレーション方法およびシステム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856440B2 (en) * 2008-02-29 2010-12-21 International Business Machines Corporation Method and system for separating content identifiers from content reconstitution information in virtual machine images
US20090259855A1 (en) * 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8862633B2 (en) * 2008-05-30 2014-10-14 Novell, Inc. System and method for efficiently building virtual appliances in a hosted environment
JP5298764B2 (ja) * 2008-10-22 2013-09-25 富士通株式会社 仮想システム制御プログラム、方法及び装置
US8646028B2 (en) 2009-12-14 2014-02-04 Citrix Systems, Inc. Methods and systems for allocating a USB device to a trusted virtual machine or a non-trusted virtual machine
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
US8620870B2 (en) 2010-09-30 2013-12-31 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US20120084445A1 (en) 2010-10-05 2012-04-05 Brock Scott L Automatic replication and migration of live virtual machines
US9058238B2 (en) * 2010-10-13 2015-06-16 Sony Corporation Electronic device with customizable embedded software and methods therefor
US8443365B2 (en) 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance
US20120159423A1 (en) * 2010-12-17 2012-06-21 Ralf Becker Tenant independent add-on software packages for an enterprise platform as a service product
US8689214B2 (en) 2011-03-24 2014-04-01 Amazon Technologies, Inc. Replication of machine instances in a computing environment
US8924930B2 (en) 2011-06-28 2014-12-30 Microsoft Corporation Virtual machine image lineage
US8677315B1 (en) 2011-09-26 2014-03-18 Amazon Technologies, Inc. Continuous deployment system for software development
US20130086578A1 (en) * 2011-09-29 2013-04-04 International Business Machines Corporation Virtual image construction
AU2013263030A1 (en) 2012-05-18 2014-11-27 Aquto Corporation Charging and billing for content, services, and access
US8990806B2 (en) * 2012-07-31 2015-03-24 Hewlett-Packard Development Company, L.P. Customized virtual machine creation
US9292330B2 (en) 2012-11-29 2016-03-22 International Business Machines Corporation Replacing virtual machine disks
US9295915B2 (en) 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment
US10530822B2 (en) * 2013-12-09 2020-01-07 Bally Gaming, Inc. System and method for reducing network dependencies for streaming content
US9881144B2 (en) * 2015-06-15 2018-01-30 International Business Machines Corporation Identifying usage of code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075877A (ja) * 2007-09-20 2009-04-09 Toshiba Corp 情報処理システム、および監視方法
JP2009098909A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp 画像形成プログラムおよびプラグインプログラム
US20110004676A1 (en) * 2008-02-04 2011-01-06 Masahiro Kawato Virtual appliance deploying system
JP2011123891A (ja) * 2009-12-13 2011-06-23 Internatl Business Mach Corp <Ibm> ネットワーク環境において仮想マシンのリモート配備を管理する方法、システムおよびコンピュータ・プログラム
JP2011210032A (ja) * 2010-03-30 2011-10-20 Hitachi Ltd 仮想マシンのマイグレーション方法およびシステム

Also Published As

Publication number Publication date
CN107743615B (zh) 2022-02-15
WO2016205230A1 (en) 2016-12-22
EP3311269A1 (en) 2018-04-25
JP6542397B2 (ja) 2019-07-10
CA2989061C (en) 2022-08-09
US20160371433A1 (en) 2016-12-22
US11120892B2 (en) 2021-09-14
EP3311269B1 (en) 2020-04-08
CN107743615A (zh) 2018-02-27
CA2989061A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
US10628294B2 (en) Mock services for software infrastructures
CN104598257B (zh) 远程应用程序运行的方法和装置
WO2017048996A1 (en) Visual content development
JP6045134B2 (ja) アプリケーション性能試験のための並列作業負荷シミュレーション
CN112767135A (zh) 规则引擎的配置方法及装置、存储介质、计算机设备
CN112767133A (zh) 业务决策方法及装置、存储介质、计算机设备
CN111290965B (zh) 一种测试方法、装置、计算机设备和存储介质
JP6542397B2 (ja) イメージ制作中のコンテンツテスト
JP2023550608A (ja) 分散ポッドベースシステム内でのサービスオーケストレーション
JP2020053079A (ja) コンテンツ・デプロイメント、スケーリングおよびテレメトリ
US20160277484A1 (en) Content Deployment, Scaling, and Telemetry
CN111756784B (zh) 会话方法、会话装置、计算机设备和介质
US20160277508A1 (en) Content Deployment, Scaling, and Telemetry
US10579431B2 (en) Systems and methods for distributed management of computing resources
US10463957B2 (en) Content deployment, scaling, and telemetry
CN116521509A (zh) 智能合约测试方法、装置、设备、存储介质及产品
CN113126912A (zh) 一种个人磁盘的挂载方法及装置
CN115509671B (zh) 互动课件播放方法、装置、设备和存储介质
CN115408110B (zh) 一种Kubernetes控制面组件的性能评估方法和系统
CN111324888B (zh) 应用程序启动时的验证方法、装置、电子设备及存储介质
KR102435357B1 (ko) 블록체인 네트워크 트윈을 이용한 블록체인 통합 개발 및 관리 방법 및 시스템
Würsten et al. Filecoin Consensus
CN117519773A (zh) 程序质量保障方法、装置、存储介质以及终端
CN116974895A (zh) 测试方法、装置、电子设备、可读存储介质及程序产品
CN114138652A (zh) 软件产品功能实现方法、装置以及计算机可读存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190612

R150 Certificate of patent or registration of utility model

Ref document number: 6542397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250