(57)【要約】      （修正有）【課題】ホストシステムに動作可能なように結合されたネットワークストレージデバイスを使用し、マスストレージを仮想化するためのシステム及び方法を提供する。【解決手段】サーバアーキテクチャ１００において、ネットワークを介して接続されるゲームサーバ、管理サーバ及びストレージサーバを含む複数のコンピューティングデバイスを含む。これらのデバイスのすべてが外部ネットワーク１１１への接続を有する必要はない。ゲームサーバは、ストリーミングのため及びオンラインマルチプレーヤゲームをプレイできるために外部ネットワーク１１１から到達可能である。管理サーバは、トラフィックをストリーミング配信するためのなんらかのタイプのルータとしてのネットワーク１１１への接続をサポートする。通常のインターネットトラフィックのために、管理サーバは、標準的なネットワークアドレストランスレータ（ＮＡＴ）ルータのように動作する。【選択図】図１
2020038686.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
プロセッサと、
前記プロセッサに結合されたメモリと、
を備え、
前記プロセッサが方法を実行するように構成され、前記方法が、
ネットワークストレージデバイスからコンピュータアプリケーションを実行するために必要なオペレーティングシステムデータおよびアプリケーションデータを受信することと、
前記オペレーティングシステムデータおよびアプリケーションデータを使用し、前記コンピュータアプリケーションを実行することと、
リモートクライアントコンピューティングデバイスに、前記オペレーティングシステムデータおよびアプリケーションデータを使用し、前記コンピュータアプリケーションを実行することによって生成された出力をストリーミング配信することと、
を含む、システム。
【請求項２】
前記システムを前記リモートクライアントコンピューティングデバイス、及びネットワークストレージデバイスに１つ以上のネットワークを介して接続するように構成されたネットワークインタフェースをさらに含む、請求項１に記載のシステム。
【請求項３】
前記ネットワークストレージデバイスがストレージサーバである、請求項１に記載のシステム。
【請求項４】
前記ネットワークストレージデバイスが、前記ネットワークストレージデバイスによって復号できない暗号化されたアプリケーションデータを含む、請求項１に記載のシステム。
【請求項５】
前記システムが暗号化されたアプリケーションデータを復号できる、請求項４に記載のシステム。
【請求項６】
前記ネットワークストレージデバイスがユーザーデータを含む、請求項１に記載のシステム。
【請求項７】
前記ユーザーが前記要求されたアプリケーションを実行する許可を有しているかどうかを判断するために前記ユーザーデータを分析することをさらに含む、請求項６に記載のシステム。
【請求項８】
前記ネットワークストレージデバイスが保存データサーバから追加のユーザーデータを取り出すことができる、請求項６に記載のシステム。
【請求項９】
前記ネットワークストレージデバイスがネットワーク接続を介して前記保存データサーバに接続される、請求項８に記載のシステム。
【請求項１０】
前記ネットワークストレージデバイスが前記システムのためのオペレーティングシステム（ＯＳ）データを含む、請求項１に記載のシステム。
【請求項１１】
前記コンピュータアプリケーションを実行するために必要な前記データが、前記システムのための追加のＯＳデータを含む、請求項１に記載のシステム。
【請求項１２】
要求に応答して前記ネットワークストレージデバイスによって前記システムに配信される前記データが前記要求されたデータの最新版であるように、前記ネットワークストレージデバイスが自動的に更新される、請求項１に記載のシステム。
【請求項１３】
前記コンピュータアプリケーションをストリーム配信する前記ユーザー要求が、管理サーバによって渡された後に前記システムによって受信される、請求項１に記載のシステム。
【請求項１４】
前記管理サーバが、ネットワークを介して前記システム及び前記ネットワークストレージデバイスに接続される、請求項１３に記載のシステム。
【請求項１５】
前記ネットワークストレージデバイスが、前記管理サーバによって復号できない暗号化されたアプリケーションデータを含む、請求項１３に記載のシステム。
【請求項１６】
前記管理サーバが、前記データを使用し、前記コンピュータアプリケーションを実行することにより生成される前記出力を、前記リモートクライアントコンピューティングデバイスに配信するために前記システムを準備する、請求項１３に記載のシステム。
【請求項１７】
前記管理サーバが、前記システムの１つ以上の構成要素に、前記コンピュータアプリケーションをストリーム配信する前記ユーザー要求に応えて動力を供給する、請求項１６に記載のシステム。
【請求項１８】
前記システムが、ハードウェア制御インタフェースを使用し、前記管理サーバによって動力を供給される、請求項１７に記載のシステム。
【請求項１９】
前記ハードウェア制御インタフェースが、汎用入出力（ＧＰＩＯ）を使用し、電源切り替え信号をトグルすることを含む、請求項１８に記載のシステム。
【請求項２０】
前記ハードウェア制御インタフェースが、ローカルエリアネットワーク（ＬＡＮ）を介してウェークアップ信号を送信することを含む、請求項１８に記載のシステム。
【請求項２１】
前記ハードウェア制御インタフェースが、汎用非同期送受信機（ＵＡＲＴ）コマンドポートを備える、請求項１８に記載のシステム。
【請求項２２】
前記管理サーバが、コンピュータアプリケーションを実行する前記要求に応えて前記システムによる使用のために前記ネットワークストレージデバイスの資源を割り当てる、請求項１３に記載のシステム。
【請求項２３】
前記管理サーバが、ソフトウェア更新が必要である場合に、前記システムのソフトウェア更新を開始する、請求項１３に記載のシステム。
【請求項２４】
前記システムが、前記リモートクライアントコンピューティングデバイスからのストリーミング要求に応えてクラウドサービスサーバによって前記リモートクライアントコンピューティングデバイスに割り当てられる、請求項１に記載のシステム。
【請求項２５】
前記リモートクライアントコンピューティングデバイスからの前記ストリーミング要求が、前記ユーザーによって活用されるストリーミングクライアントを通して前記クラウドサービスサーバに配信される、請求項２４に記載のシステム。
【請求項２６】
前記クラウドサービスサーバが、前記システムからストリーム配信するために前記ストリーミングクライアントに命令を提供する、請求項２５に記載のシステム。
【請求項２７】
ネットワーク上で動作するように構成されたサーバ上の、方法であって、
ネットワークストレージデバイスからコンピュータアプリケーションを実行するために必要なオペレーティングシステムデータおよびアプリケーションデータを受信することと、
前記オペレーティングシステムデータおよびアプリケーションデータを使用し、前記コンピュータアプリケーションを実行することと、
前記オペレーティングシステムデータおよびアプリケーションデータを使用し、前記コンピュータアプリケーションを実行することによって生成される出力をリモートクライアントコンピューティングデバイスにストリーム配信することと、
を含む、方法。
【請求項２８】
非一過性コンピュータ可読媒体の中で実施されるプロセッサ実行可能命令を有する非一過性コンピュータ可読媒体であって、プロセッサによる前記命令の実行が前記プロセッサに、アセットを共用するための方法を実装させ、前記方法が、
ネットワークストレージデバイスからコンピュータアプリケーションを実行するために必要なオペレーティングシステムデータおよびアプリケーションデータを受信することと、
前記コンピュータアプリケーションを実行することと、
前記オペレーティングシステムデータおよびアプリケーションデータを使用し、前記コンピュータアプリケーションを実行することによって生成される出力をリモートクライアントコンピューティングデバイスにストリーム配信することと、
を含む、非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様はストレージの仮想化に関する。本開示の追加の態様は、埋め込みプラットフォーム用に設計されたクラウドコンピューティングアプリケーションのためのストレージの仮想化に関する。
【背景技術】
【０００２】
電気通信システムの帯域幅及びデータ転送速度が進歩し続ける中で、今日のコンピューティングニーズの多くは、一般的に「クラウドコンピューティング」と呼ばれるネットワークベースの分散コンピューティングシステムに移行している。一般的に言えば、クラウドコンピューティングは特定のコンピューティングタスクを１つ以上のリモートコンピューティング資源にオフロードし、リモートコンピューティング資源を活用してサービスを提供することを必要とする。多くの例では、コンピューティング資源はクラウドに完全にまたはほぼ完全にオフロードすることができ、エンドユーザーのデバイスはクラウドコンピューティングタスクにユーザーインタフェースをほとんどまたはわずかしか提供せず、潜在的に、インターネットに接続されている任意のデバイスが特定のアプリケーションのためのクライアントとして機能できるようにする。以前、クラウドコンピューティングはクライアント‐サーバモデルとして実装され、リモートサーバが所望されるコンピューティング機能をローカルクライアントデバイスに提供し、ローカルクライアントデバイスが独自に特定のコンピューティングタスクを実行する必要性を回避していた。より最近になると、クラウドコンピューティングは進化して、計算資源の順応性が、資源全体で動的に拡大し、負荷のバランスをとることによって提供される遠隔実行を包含するようになった。クラウドコンピューティングは、遠隔で実行するが、ローカルクライアントに対して必ずしも報告を返さない機能によりますます特徴付けられるようになってきた。クラウド上で実行される多くの機能は、順応性のある計算及び資源の動的な割当てを可能にするためにクラウド上の他の機能に報告する。
【０００３】
クラウドコンピューティングは、リモートデータストレージソリューション、音楽ストリーミングサービス及びビデオストリーミングサービスを含む多種多様のコンピューティングサービスで、ならびに他のコンシューマソリューション及びビジネスソリューションで採用されている。一般に、クラウドコンピューティングは、共用資源の使用による効率の向上、特定のデバイスに対する制限なしにコンテンツにアクセスする上での柔軟性の増大、ハードウェアアップグレードが利用できるようになるときの初期費用の減少、及び他の優位点を含むいくつかの周知の利点を有する。
【０００４】
クラウドコンピューティングがまだ広範囲に採用されていない１つの活動領域が、たえず人気があるビデオゲーミングの分野である。パーソナルコンピュータ（ＰＣ）用のゲーム、家庭用コンソール用のゲーム、携帯型コンソール用のゲーム等を含むビデオゲームは、消費者の間で人気のある娯楽の発信源のままである。利用可能なビデオゲームタイトルの大きな増え続けるコレクションによって、クラウドゲーミングは多くのビデオゲームデマンドに特に魅力的なソリューションを提供している。理想的には、クラウドゲーミングの枠組みの中で、ユーザーはゲームの物理的なコピーを必要とすることなく、タイトルがダウンロードするのを待機する必要なく、及びゲームを実行するために必要とされるハードウェアシステムまたは資源をローカルで所有することなく、遠隔に記憶されているタイトルの膨大なコレクションの中から任意のビデオゲームタイトルに瞬時にアクセスできるだろう。残念なことに、この種のサービスを従来のクラウドコンピューティングサーバ設計の中で実装することは、これまで多くのビデオゲームプラットフォームのためのクラウドゲーミングの広範囲な採用を妨げてきたいくつかの技術的な課題を示している。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つの課題は、今日のビデオゲームの多くが、レンダリングするために多大な量のコンピューティング資源を必要とする高度なグラフィックにより非常にテンポが速く、アクションが多い点である。特に、ゲームの計算及びグラフィックレンダリング計算のすべてが遠隔で実行されるビデオストリーミングベースのサーバ設計では、ゲームがこれらすべてのタスクを実行し、圧縮された音声／ビデオストリームを、制御入力に応えて知覚可能な遅延が最小からなしでクライアントデバイスに配信できる必要がある。それ以外の場合、これはプレーヤのタイミングを邪魔し、従来のローカルで実行されるゲーミングセッションの反応性を再現できないことがある。
【０００６】
別の課題は、一方で汎用的な性質のパーソナルコンピュータ、ラップトップコンピュータ、及び他のコンピューティングシステムで実行するように設計されるＰＣゲームと、他方でビデオゲームコンソールとして知られる特殊化されたシステムで実行するように設計されるコンソールゲームとの間に従来違いがあるという事実に由来する。ビデオゲームコンソールは、通常、特にビデオゲーミング環境のために適応された一意のコンピューティングアーキテクチャを有する埋め込みプラットフォームとして設計される。専用のコンソールハードウェアをビデオゲーミングプラットフォームとして使用することは、特に今日のビデオゲームの多くを作り出すために必要とされるグラフィックスレンダリング及びゲーミング計算の高いコンピューティング資源需要のためにハードウェアを最適化する形でいくつかの利点を提供する。結果として、ＰＣゲームは多少の人気を達成してきたが、コンソールゲームは従来ビデオゲーム市場を支配し、将来も支配し続けてよい。
【０００７】
しかしながら、ビデオゲームコンソール及び他の埋め込みプラットフォームをクラウドストリーミングサービスに適応させることは、いくつかの課題を示している。特殊化されたプラットフォームのハードウェアアーキテクチャまたはソフトウェアアーキテクチャの広範囲な修正は特殊化されたプラットフォーム用に設計されたアプリケーションとの互換性の問題を示すことがある。結果として、従来のストレージサーバ及びストレージ仮想化の技術はこれらのプラットフォームの多くのために設計されたアプリケーションのクラウドベースのストリーミングにとって実行可能なソリューションではない。さらに、現代のコンソールアーキテクチャは、ユーザーの要件及び欲求に応えて絶えず変化し、更新されている。したがって、クラウドストリーミングサービスによって活用されるシステムが最新のアーキテクチャに更新されていない場合、問題が生じることがある。
【０００８】
本開示が発生するのは、この状況においてである。
【課題を解決するための手段】
【０００９】
本開示の実施態様は、コンソール、ＰＣ、またはバーチャルマシンである場合もある『ゲームサーバ』を含んでよい。このシステムは、最終的にはリモートクライアントコンピューティングデバイスへのストリーミング用のコンピュータアプリケーションを実装し、さらに、例えばシステムを管理する、アプリケーションを開始する、及びアプリケーションをストリーミング配信する等、多様なサービスを実行する。本開示の追加の実施形態は、ゲームサーバを管理する任意選択の管理サーバを含む。管理サーバは、例としてゲームサーバに動力を供給して、ストレージサーバ上で資源を割り当ててよい、またはソフトウェア更新を開始してよい。管理サーバはゲームサーバによって使用されるためにストレージサーバ上でストレージを割り当ててよい。管理サーバは、ゲームサーバの電源をオンにする前にこの機能を実行してよい。
【００１０】
システム起動中、ゲームサーバは、ストレージサーバからそのオペレーティングシステム（またはその部分）をロードしようと試み、ストレージサーバにアクセスする方法に関する情報は、例えばＤＨＣＰを介して管理サーバによって提供されてよい。ストレージサーバの場所は、提供されることがあるブートストラップ構成情報の１つの特定の態様にすぎないことに留意されたい。例としてであって、制限としてではなく、管理サーバはネットワーキング、日付／時刻、ロギング、ホスト名、及び他のホストごとの設定等の他の設定情報を提供してもよい。さらに、ＤＨＣＰはおそらく最も一般的なプロトコルであるが、ＴＦＴＰ、ＨＴＴＰ等の他のプロトコルが使用されてもよい。ゲームサーバに動力を供給した後、管理サーバはストリーミングのためにゲームサーバを準備するための操作を実行してよい。ゲームサーバは次いでアプリケーションデータをリモートクライアントコンピューティングデバイスにストリーミング配信してよい。
【００１１】
本開示の別の実施態様では、ユーザーはストリーミングクライアントを使用し、クライアントコンピューティングデバイスとストリーミングセッションを開始してよい。クライアントコンピューティングデバイスは、次いでクラウドサービス操作またはサーバによってゲームサーバを割り当てられてよい。このクラウドサービス操作は、命令及び認証情報をストリーミングクライアントに提供し、ストリーミングクライアントが所与のゲームサーバからストリーミング配信できるようにしてよい。ストリーミングクライアントは、例えばＴＣＰまたはＵＤＰ接続を介して等、ネットワーク接続またはインターネットを介してゲームサーバ上で『ストリーミングサービス』に接続してよい。ストリーミングセッションは、いったんストリーミングサービスに接続されると開始されてよい。この間、ゲームサーバは、ストレージサーバを介してユーザーデータ及びアプリケーションデータを利用できる。いったんゲームサーバが、アプリケーションデータを使用し、アプリケーションを実行するために必要とされる適切なアプリケーションデータ、ユーザーデータ、及びオペレーティングシステムデータを受信すると、アプリケーションはゲームサーバによって実行されてよく、アプリケーションデータを使用し、アプリケーションを実行することによって生成される出力はストリーミングクライアントにストリーミング配信されてよい。
【図面の簡単な説明】
【００１２】
本開示の教示は、添付の図面に合わせて以下の発明を実施するための形態を検討することによって容易に理解できる。
【００１３】
【図１】本開示の態様に係るサーバアーキテクチャを示すブロック図である。
【図２】本開示の態様に係るクライアントによって開始されたゲームの開始を示す流れ図である。
【図３】本開示の態様に係るストリーミング配信されたユーザーインタフェース（ＵＩ）から開始されたゲーム開始を示す流れ図である。
【図４】本開示の態様に係るストレージアーキテクチャのブロック図である。
【図５】本開示の特定の態様に係る例のシステムのブロック図である。
【発明を実施するための形態】
【００１４】
以下の発明を実施するための形態は説明ために多くの具体的な詳細を含んでいるが、当業者は以下の詳細に対する多くの変形形態及び改変形態は本発明の範囲内にあると理解するだろう。したがって、以下に説明される本発明の例示的な実施形態は、特許請求されている本発明に対する一般性を失うことなく、特許請求されている本発明に対して制限を課すことなく説明される。
【００１５】
［前置き］
本開示の態様は、ホストシステムに動作可能なように結合されるネットワークストレージデバイスを使用し、マスストレージを仮想化するためのシステム及び方法に関する。多様な実施態様では、ネットワークストレージデバイス及びホストシステムは別の「端末」コンピューティングシステムのためにマスストレージデバイスを集合的にエミュレートしてよい。ネットワークストレージデバイスは、コンピュータアプリケーションの実装のために必要とされるゲームデータ及びユーザーデータに加え、ホストシステムのためのオペレーティングシステムデータも含むので、このエミュレーションはホストシステムの最小可能メモリを活用しながら、実行できる。
【００１６】
［サーバアーキテクチャ］
本開示の多様な態様をよりうまく説明するために、本開示の態様に係るサーバアーキテクチャ１００の第１の例示的な例が図１に示される。図１に示されるサーバアーキテクチャ１００は、インターネットまたはローカルネットワーク１１１等のネットワークを介して接続されるゲームサーバ１０２、管理サーバ１０４、及びストレージサーバ１０６を含む複数のコンピューティングデバイスを含む。特定の実施態様では、これらのデバイスのすべてが外部ネットワーク１１１への接続を有する必要はない。例えば、ゲームサーバ１０２は、ストリーミングのために、及びオンラインマルチプレーヤゲームをプレイできるために外部ネットワーク１１１から到達可能であってよい。管理サーバ１０４は、トラフィックをストリーミング配信するためのなんらかのタイプの『ルータ』としてのネットワーク１１１への接続をサポートしてよい。例としてであって、制限としてではなく、通常のインターネットトラフィックのために、管理サーバは標準的なネットワークアドレストランスレータ（ＮＡＴ）ルータのように動作してよい。
【００１７】
例のサーバアーキテクチャでは、ゲームサーバ１０２はゲームサーバ１０２上で実行されるアプリケーションの出力をリモートクライアントコンピューティングデバイス１０８にストリーミング配信する。本明細書で使用されるように、「実行する」はＣＰＵ等のプロセッサでアプリケーションを実行することを指す。クライアントコンピューティングデバイスは、例えば、サーバ、埋め込みシステム、携帯電話、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯ゲームコンソール、ワークステーション、ゲームコンソール、スマートウォッチ等のウェアラブルデバイス、仮想現実（ＶＲ）デバイス、及び／または「Ｇｏｏｇｌｅ  ｇｌａｓｓ」またはＭｉｃｒｏｓｏｆｔ  Ｈｏｌｅｎｓ等の拡張現実（ＡＲ）デバイスを含んでよい。アプリケーション出力は、インターネット等のネットワークを介してストリーミング配信されてよい。アプリケーション出力は、さらにクライアントコンピューティングデバイス１０８をゲームサーバ１０２に接続するために活用されてよい、ストリーミングクライアント１３０のインスタンスを通してストリーミング配信されてもよい。例としてであって制限としてではなく、ストリーミングクライアントは、コンピューティングデバイスによって実行されるソフトウェアで実装されてよい。ストリーミングクライアント１３０はクラウドサービスアプリケーションを介してゲームサーバ１０２に割り当てられてよく、ストリーミングサービス１２５を介して残りのシステムアーキテクチャと通信してよい。
【００１８】
管理サーバ１０４が、必ずしもストリーミングルータ／ロードバランシングの役割を実行する必要はなく、したがってストレージサーバ１０６のように、インターネット接続性を必ずしも必要としないことに留意されたい。代替実施態様では、サーバアーキテクチャ１００は、任意選択でストリーミングサービス１２５とストリーミングクライアント１３０との間に別個のルータ１３５を含んでよい。いくつかの実施態様では、１つのデバイスがルータ１３５とストリーミングクライアント１３０との両方の機能を実行してよい。他の実施態様では、ルータ機能は、ストリーミングクライアント１３０とは別個である別のデバイスによって実行されてよい。
【００１９】
クラウドサービスアプリケーションが実装されてよいいくつかの方法がある。特に、バックグラウンドで請求書作成、サーバ可用性の監視、ロギング等に関係する多様なサービスが行われてよい。例としてであって、制限としてはなく、管理サービス１４１は、それがどのくらいの数のゲームサーバを管理するのか、これらの内のいくつが使用されているのか、いくつが『壊れているのか』、及びいくつが未使用であるのかを『クラウドコントローラ』に周期的に報告してよい。係る例では、セッション起動中、ストリーミングクライアント１３０は、『認証サーバ』に対するなんらかの形の認証を実行して、ユーザーが特定のゲームをプレイすることを許可されているかどうかを検証する。成功すると、ストリーミングクライアント１３０は、インターネット接続試験を実行してよく、該インターネット接続試験中、ネットワーク帯域幅及びいくつかの近傍のデータセンタへの待ち時間は、ストリーミング配信元の最善のデータセンタを決定するために測定されてよい。試験結果に基づいて、クラウドコントローラはストリーミングクライアント１３０を未使用のゲームサーバ１０２に割り当てる。
【００２０】
また、接続試験は、例えばユーザーが、自分のネットワーク接続がストリーミング配信するための最小の要件を満たしているかどうかを確かめることができるようにするために認証と並行して行われてもよい。さらに、専用の接続試験は、ユーザーの接続のプロパティを予測できる（例えば、既知のＩＰアドレスからの以後のストリーミングの場合）高信頼度がある状況では省略されてよい。
【００２１】
ストリーミングセッションの認証を実行することに加えて、『クラウドコントローラ』はサーバ割り当てを実行してもよい。係るシステムは容量、可用性、待ち行列、クライアントに対するネットワーク接続性、効率的なハードウェア活用、保守、及びストリーミングサーバにユーザーをどこで及びいつ割り当てるのかが決定されるときの外部サービス依存性等の多様な競合する要因のバランスをとらなくてはならない。
【００２２】
示されている例では、複数のクライアントコンピューティングデバイス（１０８、１０８'、１０８"等）が特定のアプリケーションの出力データのストリームを受信するために、それぞれ独立したゲームサーバに接続し得るように、複数のゲームサーバ（１０２、１０２'、１０２"等）が提供されてよい。さらに、各それぞれのクライアントコンピューティングデバイス１０８はゲームサーバ１０２に接続するためにストリーミングクライアント（１３０、１３０'、１３０"等）の特定のインスタンスを活用してよい。
【００２３】
ゲームサーバ１０２は、アプリケーションを実行し、ゲームマシンユーザーインタフェース１２１、ゲーム起動サービス１２３、マシンマネージャ１２４、及び／またはストリーミングクライアント１３０を介してクライアントデバイス１０８に接続できるストリーミングサービス１２５を含む実行アプリケーションの出力をストリーミング配信することに関係する多様なサービスを実行してよい。任意選択の管理サーバ１０４は、ゲームサーバ１０２を管理する。管理サーバ１０４は、例えばゲームサーバ１０２に動力を供給する、ゲームサーバ１０２による使用のためにストレージサーバ１０６で資源を割り当てる、及び／またはゲームサーバ１０２及び／またはストレージサーバ１０６のためにソフトウェア更新を初期化する等のいくつかの機能を実行するために管理サービス１４１を活用してよい。管理サーバ１０４は、管理バス１１２を介してゲームサーバ１０２に接続されてよい。通常、サーバアーキテクチャ１００の多様な構成要素は、起動遅延を最小限に抑えるためにすでに動力を供給され、ストリーミング配信準備完了状態に置かれる。しかしながら、１つ以上の構成要素は、保守または節電の理由からときおり停止されることがある。
【００２４】
管理サーバ１０４は、ゲームサーバ１０２による使用のためにストレージサーバ１０６上でストレージを割り当てた後にゲームサーバ１０２をオンにするために管理サービス１４１を活用してよい。次いで、管理サーバ１０４は、ハードウェア制御インタフェース１２０を通してゲームサーバ１０２に電力を供給してよい。ハードウェア制御インタフェース１２０は、汎用入出力（ＧＰＩＯ）を使用し、電源切り替え信号をトグルすることを介して管理サーバ１０４によって活用されてよい。代わりに、管理サーバ１０４は、ローカルエリアネットワーク（ＬＡＮ）または汎用非同期送受信機（ＵＡＲＴ）コマンドポートを介して送信されるウェークアップ信号を活用してよい。
【００２５】
起動中、ゲームサーバ１０２は、そのオペレーティングシステムまたはその部分をストレージサーバ１０６によって記憶される情報からロードしようと試みてよい。本明細書に使用されるように、「ロードする」はコード及び／またはデータをマスストレージからメモリに取り出すプロセスを指す。ストレージサーバ１０６は、ストレージサービス１６１及びストレージマネージャサービス１６２を含む、アプリケーションデータ、オペレーティングシステム（ＯＳ）データ、及び／またはユーザーデータの記憶ならびにゲームサーバ１０２への配信に関係する多様なサービスを実行してよい。ストレージサーバのこれらの態様は図２〜図４に関して説明される。ゲームサーバ１０２によって必要とされるオペレーティングシステムデータへのアクセスに関する情報は、管理サーバ１０４によってゲームサーバに提供されてよく、動的ホスト構成プロトコル（ＤＨＣＰ）を介して提供されてよい。代わりに、ストレージサーバ１０６は、特にＯＳデータがそこに記憶される実施態様で、この情報を提供してよい。管理サーバ１０４でこれを実行する優位点は、管理サーバ１０４が（発見及び構成から実行時操作までの）ゲームサーバに対する究極的な最高権威の機能を果たす点である。
【００２６】
いったんゲームサーバ１０２が動力を供給され、ストレージサーバ１０６から必要なアプリケーションデータ、ユーザーデータ、及び／またはＯＳデータを受信すると、管理サーバ１０４はクライアントコンピューティングデバイス１０８にアプリケーション出力データをストリーミング配信するためにゲームサーバ１０２を準備するための操作を実行してよい。管理サーバ１０４は管理サービス１４１を活用して、マシンマネージャ１２４にアプリケーションを開始するように命令してよい。次いでマシンマネージャ１２４はゲーム起動サービス１２３を活用して、アプリケーションを開始する。ゲームサーバ１０２が無事に準備されると、ゲームサーバ１０２はアプリケーションデータのクライアントコンピューティングデバイス１０８への出力をストリーミング配信してよい。
【００２７】
上述のサーバアーキテクチャは、アプリケーションまたはゲームを初期化し、その出力データをその後クライアントコンピューティングデバイスにストリーム配信できるいくつかの方法を可能にする。しかしながら、本明細書の原理に係るストレージ仮想化は、ゲームストリーミングを超えるクラウドコンピューティングアプリケーション、及びコンピューティングデバイスのためのストレージ仮想化が所望される、特にストレージ仮想化がコンピューティングデバイスに修正を行わずに所望される局所的な実施態様を含む他の状況で実装されてよいことが理解される。
【００２８】
クライアントコンピューティングデバイスへのストリーミング配信のためにアプリケーションまたはゲームを初期化する方法の説明に役立つ例が、図２に関して提供される。クライアントにより開始されるゲーム開始２００は、ユーザーが特定のゲーム「ゲームＩＤ」を開始する要求２７０を送信するためにストリーミングクライアント２０６を利用する図２に示される。要求２７０は管理サーバを通して任意選択で送信され、（ゲームサーバの電源をオンにする等）図１に関して説明されるそれらの管理機能を実行するために管理サービス２１２によって活用される。要求はゲームサーバ上でゲーム起動サービス２２４に配信される。ゲーム起動サービス２２４は次いでストレージサーバに位置するストレージマネージャサービス２３６からゲーム情報を要求してよい２７２。ストレージマネージャサービスは、ゲームがストリーミング配信に利用できるかどうかをチェックし、要求するユーザーが要求されたゲームをプレイすることを許されているかどうかをさらにチェックしてよい。代替実施形態では、係るセキュリティチェックは、追加のセキュリティのために管理サーバ及び他のどこかで実行されてもよい。ユーザーがゲームをプレイする適切な許可を有する場合、ストレージマネージャサービス２３６はストレージサーバ上でゲームを利用できるようにし、『ｇａｍｅ＿ｍｏｕｎｔ＿ｉｎｆｏ』認証情報２７４をゲーム起動サービス２２４に提供する。代替実施態様では、この資格チェックは外部サービス（例えば、Ｓｏｎｙ  Ｃｏｍｐｕｔｅｒ  ＥｎｔｅｒｔａｉｎｍｅｎｔのＰｌａｙＳｔａｔｉｏｎ  Ｎｅｔｗｏｒｋ（ＰＳＮ）等のゲームコンソールと関連付けられたオンラインサービス）またはクラウドコントローラのチェックを介して行われてもよい。
【００２９】
代替実施態様では、ゲーム開始２００は『クラウド』から、つまりクライアント２０６から直接的にではなく生じることがある。係る実施態様では、上述された『クラウドコントローラ』は、認証結果を効果的に管理サービス２１２に直接的に送信できるだろう。これは部分的には設計の理由のため、及び部分的にはセキュリティの理由のため有利であることがある。具体的には、理論上、クライアントはゲーム名になりすますことができるだろう。これは、ゲーム開始がクライアントデバイスから生じないときに行うのがより困難である。認証結果はとりわけゲームＩＤを含んでよい。他の実施態様では、クライアント２０６は認証結果を管理サービス２１２に送信する。
【００３０】
他の代替実施態様では、ゲーム開始２００が実施され、クライアント２０６がｓｔａｒｔＳｅｓｓｉｏｎ（ｌａｕｎｃｈＲｅｑｕｅｓｔ）を行う。
【００３１】
ゲーム起動サービス２２４は、次いでゲームデータ「ｍｏｕｎｔＧａｍｅ（Ｇａｍｅ＿ｍｏｕｎｔ＿ｉｎｆｏ）」２７６を、ゲームデータ２６０が記憶されるストレージサーバから組み込んでよい。ストレージサービス２４８はゲームデータのデータ転送を制御する。データ２７６が正しく組み込まれると、ゲーム起動サービス２２４はゲーム「ｓｔａｒｔＧａｍｅＰｒｏｃｅｓｓ」２７８を起動してよく、開始されたゲーム２８０の出力データは次いで、ストリーミングサービス（不図示、図１に関して説明済み）がストリーミングクライアント２０６に対する音声ストリーミング及びビデオストリーミングを開始しているのであれば、ストリーミングクライアント２０６にストリーミング配信されてよい。
【００３２】
例えばパッチ、ＤＬＣ、媒体、デバッグツール等の前もって知られていない、つまりオンデマンドでアクセスされるユーザーデータまたは任意の他のデータはこのようなやり方で組み込まれてもよく、ユーザーデータ及びユーザー保存ゲームデータは、以下に説明されるようにストレージサーバ上でまたはクラウドサービスを通して利用可能であってよい。通常、ユーザーデータに対するアクセスは多くの場合（例えば言語等のシステム設定にアクセスするために）アプリケーションに対するアクセスに先行するが、保存データは、ゲームアプリケーションがそれを要求するまでアクセスされない可能性がある。
【００３３】
ストリーミングクライアント２０６起動時、『ｕｓｅｒＩＤ』はストリーミングクライアント２０６からゲームサーバに渡されてよく、これによりストレージサーバに記憶されるユーザーのデータへのアクセスを入手することがトリガされる。ストレージサーバは再びユーザーのためにユーザーデータを準備し、これは他のどこかに記憶される場合にクラウドストレージへのアクセスを入手することを伴ってよい。図４は、クラウドストレージに関して潜在的なストレージアーキテクチャを強調する。最終的には、ｕｓｅｒ＿ｍｏｕｎｔ＿ｉｎｆｏがゲームサーバに返され、これによりゲームサーバはユーザーデータを組み込むことができる。システムのアーキテクチャに応じて、この組み込みはゲーム起動サービス２２４の一部であることもあれば、ユーザーログインサービスがあることもある。本開示の代替実施形態では、追加のユーザーは、セッションが開始されるとストリーミングセッションに「加わって」よい。追加のユーザーは、例えば周辺コンピューティングデバイスの、ゲーム出力データをストリーミング配信しているクライアントコンピューティングデバイスへの接続によってストリーミングセッションに接続してよい。代替実施形態では、追加のユーザーは、例えばクライアントデバイスネットワークの特徴によって許可されるように、ストリーミングセッションへのネットワークを介した接続により遠隔でストリーミングセッションに接続してよい。追加のユーザーがストリーミングセッションに接続する、またはストリーミングセッションへの接続を要求すると、ストリーミングクライアント２０６はゲームサーバに追加のユーザーを追加するように通知してよい。追加のユーザーは、最初にストリーミングセッションを要求したユーザーのためにユーザーデータ及びゲームデータを組み込む上述の方法と同様の方法でストリーミングセッションに追加されるだろう。
【００３４】
アプリケーションまたはゲームを初期化し、出力データをクライアントコンピューティングデバイスにストリーミング配信する第２の方法の例示的な例は、図３に示される。図３の例の技術３００では、ユーザーは、ストリーミングクライアントに図２に示される事前選択されたアプリケーションタイトルに対する要求を送信させることと対照的に、ストリーミングアプリケーションタイトルのカタログから所望されるストリーミングアプリケーションを選択する。したがって、図３の例の技術３００は、図２に示される方法と同様の方法で実装されてよい。しかしながら、図３は、ユーザーがゲームサーバからストリーミングクライアントにストリーミング配信されるユーザーインタフェース３２１からアプリケーションを選択してよいことを示す。ユーザーインタフェースは、ユーザーにストリーミング配信のために利用できるアプリケーションのリストを提供してよい。ユーザーインタフェース（ＵＩ）は、クライアントコンピューティングデバイス上のアプリケーションが起動された後にクライアントにストリーミング配信されてよく、アプリケーションの起動の結果、ストリーミングクライアントは、図１に説明されるアーキテクチャに従ってゲームサーバのストリーミングサービスに接続してよい。また、ＵＩは、例えばＣＤＮからサービスを提供される、またはクライアントアプリに埋め込まれるＨＴＭＬ５ベースのＵＩを使用し、クライアント側でレンダリングされてもよい。
【００３５】
現在の説明のために、ユーザーインタフェース（ＵＩ）が、ゲームを最終的に実行する同じゲームサーバからストリーミング配信されることが仮定されてよいが、本開示の態様は係る実装態様に制限されていない。代わりに、ＵＩ及びゲームが異なるマシンで実行することが可能である。その場合、『ＵＩサーバ』及び『ゲームサーバ』があってよい。係る状況では、ＵＩサーバはゲームサーバに、ゲームサーバがどのゲームを開始する必要があるのかを通知してよい。すべてではないがいくつかの実施態様で、ユーザーデータ／ゲームデータの組み込みはゲームサーバ上で独占的に起こってよい。
【００３６】
ユーザーがユーザーインタフェースからのストリーミング配信のためのアプリケーションを選択すると、特定のゲーム「ｓｔａｒｔＧａｍｅＦｒｏｍＵＩ」を開始する要求３７０は、クライアントコンピューティングデバイスからユーザーインタフェースを通ってゲーム起動サービス３２４に送信される。要求３７０は任意選択で管理サーバを通して送信され、（ゲームサーバの電源をオンにする等）図１に関して説明されるようにそれらの管理機能を実行するために管理サービスによって活用される。代替実施形態では、管理サーバは、クライアントコンピューティングデバイスをゲームマシンＵＩに接続する要求を受信すると、図１に関して説明されるそれらの管理機能を実行してよい。
【００３７】
ＵＩが例えば上述されたように完全にサーバ側である場合は、係るｓｔａｒｔＧａｍｅＦｒｏｍＵＩは完全にサーバ側のままであってよい。係る実施態様では、ユーザーがプレイするゲームを選択するとき、その後ゲーム起動が発生する何らかの形の認証が起こってよい。いくつかの実施態様では、ＵＩは、ユーザーが、起動時に余分な認証を行う必要なくプレイする権限を与えられているゲームを示すにすぎないことがある。ＵＩが完全にサーバ側である場合、ゲーム起動は、ＵＩがゲーム起動サービス２２４に対するゲーム開始要求を送信することによって起こってよく、これによりゲームデータ組み込みを含む上述されたゲーム開始が始まるだろう。
【００３８】
代わりに、ｓｔａｒｔＧａｍｅＦｒｏｍＵＩ要求は、ＵＩが完全にクライアント側であるならばクライアントから生じるだろう。例えば、いくつかの実施態様では、ゲームカタログはクライアント側に位置してよく、この結果図２によって示される起動フローが生じる。ゲーム起動のためにクライアントとゲームサーバとの間に直接的な通信フローはない。しかしながら、次世代サーバの場合、新しい特徴のため、クライアントとゲームサーバとの間に何らかの形の通信経路があってよい。これにより、クライアントとサーバとの間に直接的なｓｔａｒｔＧａｍｅＦｒｏｍＵＩ要求の下地が作られてよい。例としてであって、制限としてではなく、１つの考えられる使用ケースは『同じサーバ上でのゲーム切り替え』である。現在、ユーザーがゲームＡをプレイ中であり、ゲームＢをプレイすることを望む場合、ゲームサーバの切り替えは、ゲームサーバ上で新しいゲームを開始する能力がない場合に起こる。新世代ゲームシステムを本開示の態様と組み合わせて用いると、同じゲームサーバで新しいゲームに切り替えることが可能である。図３の流れは暗にこれを説明している。ゲーム切り替え使用の場合、クライアント側ＵＩはゲームサーバ１０２がまだそのユーザーに割り当てられているのであれば、ゲームサーバ１０２に新しいゲームに切り替わるように告げるだけだろう。
【００３９】
再び図３を参照すると、要求３７０はゲームサーバ上でゲーム起動サービス３２４に配信される。ゲーム起動サービス３２４は次いでストレージサーバに位置するストレージマネージャサービス３３６からゲーム情報を要求してよい３７２。ストレージマネージャサービスは、ゲームがストリーミング配信のために利用可能であるかどうかをチェックしてよく、要求するユーザーが要求されたゲームをプレイすることを許されているかどうかをさらにチェックしてよい。代替実施形態では、係るセキュリティチェックは、追加のセキュリティのために管理サーバ及び他のどこかで実行されてもよい。ユーザーがゲームをプレイする適切な許可を有する場合、ストレージマネージャサービス３３６はゲームをストレージサーバで利用可能にし、『ｇａｍｅ＿ｍｏｕｎｔ＿ｉｎｆｏ』認証情報３７４をゲーム起動サービス２２４に返す。認証信任状は、プロトコル（例えば、ＮＦＳ、ｉＳＣＳＩ、ＨＴＴＰ、なんらかのクラスタ化されたストレージプロトコル等）、認証情報、及びアドレスの組合せを含んでよい、ｇａｍｅ＿ｍｏｕｎｔ＿ｉｎｆｏのストレージターゲットの一部にすぎないことがある。本開示の態様に従って、ストレージは単一のサーバによって提供される必要があり、これはコンテンツの可用性または競合する性能要件のために有利であってよい。
【００４０】
ゲーム起動サービス３２４は、次いでゲームデータ「ｍｏｕｎｔＧａｍｅ（Ｇａｍｅ＿ｍｏｕｎｔ＿ｉｎｆｏ）」３７６を、ゲームデータ３６０が記憶されるストレージサーバから組み込んでよい。ストレージサーバ３４８はゲームデータのデータ転送を制御する。データ３７６が正しく組み込まれると、ゲーム起動サービス３２４はゲーム「ｓｔａｒｔＧａｍｅＰｒｏｃｅｓｓ」３７８を開始してよく、開始されたゲーム３８０の出力データは次いで、ストリーミングサービス（不図示、図１に関して説明済み）がユーザー３０５に対して音声ストリーミング及びビデオストリーミングを開始しているならばクライアントコンピューティングデバイスにストリーミング配信されてよい。
【００４１】
また、ユーザーデータは係る方法で組み込まれてもよく、ユーザーデータ及びユーザー保存ゲームデータは、以下に説明されるようにストレージサーバでまたはクラウドサービスを通して利用可能であってよい。ユーザー３０５のゲームマシンＵＩ３２１への接続時、『ｕｓｅｒＩＤ』はストリーミングクライアントからゲームサーバに渡されてよく、これによりストレージサーバに記憶されるユーザーのデータへのアクセスを入手することがトリガされる。ストレージサーバは再びユーザーのためにユーザーデータを準備し、これは他のどこかに記憶される場合にクラウドストレージへのアクセスを入手することを伴ってよい。図４は、クラウドストレージに関して潜在的なストレージアーキテクチャを強調する。最終的には、ｕｓｅｒ＿ｍｏｕｎｔ＿ｉｎｆｏがゲームサーバに返され、これによりゲームサーバはユーザーデータを組み込むことができる。システムのアーキテクチャに応じて、この組み込みはゲーム起動サービス３２４の一部であることもあれば、ユーザーログインサービスがあることもある。本開示の代替実施形態では、追加のユーザーは、セッションが起動されると、ストリーミングセッションに「加わって」よい。追加のユーザーは、例えば周辺コンピューティングデバイスの、ゲームデータをストリーミング配信しているクライアントコンピューティングデバイスへの接続によってストリーミングセッションに接続してよい。代替実施形態では、追加のユーザーは、例えばクライアントデバイスネットワークの特徴によって許可されるように、ストリーミングセッションへのネットワークを介した接続により遠隔でストリーミングセッションに接続してよい。追加のユーザーがストリーミングセッションに接続する、またはストリーミングセッションへの接続を要求すると、ストリーミングクライアントはゲームサーバに追加ユーザーを追加するように通知してよい。追加ユーザーは、最初にストリーミングセッションを要求したユーザーのためにユーザーデータ及びゲームデータを組み込む上述された方法と同様の方法でストリーミングセッションに追加されるだろう。
【００４２】
図４は、本開示の多様な実施態様に係るストレージアーキテクチャのより詳細な概要を示す。例のストレージサーバアーキテクチャ４００では、ゲームサーバ４０２はネットワーク接続４０４を介してストレージサーバ４０６に接続される。ネットワーク接続は、例えばトランスミッションコントロールプロトコル（ＴＣＰ）またはユーザーデータグラムプロトコル（ＵＤＰ）接続等のローカル接続またはインターネット接続であってよい。ゲームサーバ４０２はブートローダ４１１を含んでよい。ブートローダはオペレーティングシステムカーネル４１３及び少量のユーザーアプリケーション空間４１５を含んでよい。したがって、ゲームサーバは、ゲームサーバの中に含まれるハードドライブまたは光ドライブからオペレーティングシステムデータまたはユーザーアプリケーション空間データをロードしない。ブートローダ４１１の機能は、本開示の多様な実施態様に従って、ゲームサーバがストレージサーバ４０６に記憶されているオペレーティングシステムデータ４２５の場所を突き止め、活用し得るように、ゲームサーバ４０２に十分な命令を提供することである。この機能は図１の例のアーキテクチャに関して実行されてよく、管理サーバはゲームサーバ４０２が必要なオペレーティングシステムデータの場所を突き止めるのを支援する。さらに、上記図２及び図３の例の実施形態に関して、ゲームサーバ４０２は、ストリーミングセッションが開始されると、組み込まれたオペレーティングシステムデータ４０５、組み込まれたゲームデータ４０７、及び組み込まれたユーザーデータ４０９を含んでよい。
【００４３】
ストレージサーバ４０６は、１つ以上のゲームサーバ用のオペレーティングシステムデータ４２５、１つ以上のアプリケーションまたはゲーム用のアプリケーションデータまたはゲームデータ４２７、及び１人以上のユーザー用のユーザーデータ４２９を含んでよい。デーがゲームサーバ４０２によってだけ読み取り可能であるように、ストレージサーバ４０６に記憶されるデータは暗号化されてよい。ゲームデータ及びユーザーデータは実際に、通常暗号化される。現在、同じ暗号鍵が使用されるので、任意のゲームサーバはつねに任意のユーザーデータを開くことができる。いくつかの実施態様では、追加のセキュリティはユーザーごとに異なる鍵を提供することによって実装されてよい。係る実施態様では、ゲームサーバ１０２は、所与のユーザーがデータを読み取ることができるために必要とされる鍵を入手するように構成されてよい。他の実施態様では、ストレージサーバ１０６が特定のユーザーのデータへのアクセスを与える前になんらかの追加の認証ステップがあってよい。これは、ゲームサーバをハッキングする人物が任意のユーザーのデータにアクセスできるのを防ぐためだろう。
【００４４】
また、特定の実施態様は、ゲームサーバ４０２がアクセスできる情報をさらに制限するために、ネットワークベースのアクセス制御（例えば、ＩＰアドレス／ポートフィルタリング）、ネットワーク認証、及びオペレーティングシステム許可を使用してもよい（ゲームサーバ操作は、読み取り専用ネットワークエキスポートを介して単一のシステムユーザーアカウント及びこの多くに制限される）。他の実施態様では、認証は、固定認証情報（例えば、ユーザーＩＤまたはパスワード）を用いるよりむしろその目的とされた使用の後に取り消される時間制限アクセストークン（例えば、ケルベロストークン）によって実装することもできるだろう。
【００４５】
ストレージサーバ４０６は、最新版の対応するシステムまたはアプリケーションを操作し、初期化することと一致する方法でその中に記憶されたデータを更新できてよい。また、ストレージサーバは、例えばユーザーアカウントデータ等のユーザーデータまたは特定のアプリケーションの保存されたゲーム状態に関するユーザーデータを含んでよい、保存データサーバ４７５から追加のユーザーデータ４８０を要求し、受信することもできてよい。ストレージサーバ４０６は、クラウド接続もしくはネットワーク接続４５０を介して、または管理バスもしくはローカル接続を介して保存データサーバ４７５に接続されてよい。
【００４６】
例としてであって制限としてではなく、図５は本開示の多様な実施態様に係る２つのデバイス５０２及び５０６を含む分散コンピューティングシステムのより詳細な概要を提供し、コンピューティングシステム５０２及び５０６は本開示の特定の態様に従ってネットワークを介してデータを転送するように構成される。これらのデバイス５０２及び５０６は、図１〜図４に関して説明される態様と共通する１つ以上の態様を有する命令を実行するように構成されてよい。デバイス５０２及び５０６のどちらかまたは両方は、本明細書に説明される方法の多様な態様を実装するために適切なソフトウェア及び／またはハードウェアで構成されてよい。デバイス５０２及び５０６のどちらかまたは両方は、サーバ、埋め込みシステム、携帯電話、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯ゲームコンソール、ワークステーション、ゲームコンソール、スマートウォッチ等のウェアラブルデバイスであってよい。
【００４７】
特定の実施態様に従って、デバイス５０２はゲームサーバであってよく、デバイス５０６はストレージサーバであってよい。ゲームサーバ５０２はインターネットまたはローカル接続を使用するネットワーク５９９を介してストレージサーバ５０６にゲームデータ５５４に対する要求を送信してよい。要求５５２は、当初、例えばリモートクライアントコンピューティングデバイス、ストリーミングクライアント、ユーザーインタフェース及び利用可能なアプリケーションタイトルのカタログを活用するストリーミングアプリケーション、または管理サーバによって送信または処理された可能性がある。
【００４８】
デバイス５０２及び５０６のどちらかは、例えばシングルコア、デュアルコア、クワッドコア、マルチコア、プロセッサ‐コプロセッサ、セルプロセッサ等の周知のアーキテクチャに従って構成されてよい１つ以上のプロセッサユニット５７０を含んでよい。また、デバイス５０２及び５０６のどちらかは、１つ以上のメモリユニット５７２（例えば、ＲＡＭ、ＤＲＡＭ、ＲＯＭ等）を含んでもよい。プロセッサユニット５７０は、メモリ５７２に記憶されてよい１つ以上のプログラム５７４を実行してよく、プロセッサ５７０は、例えばデータバス５７６を介してメモリにアクセスすることによってメモリ５７２に動作可能なように結合されてよい。メモリユニット５７２はデータ５７７を含んでよく、プロセッサユニット５７０はプログラム５７４を実装する際にデータ５７７を活用してよい。システム５０２及び５０６のどちらかのためのデータ５７７は、例えば本開示の多様な態様に従って、ゲームサーバ５０２からストレージサーバ５０６に伝送されるゲームデータ５５２に対する要求、及びオペレーティングシステムデータ５５４、ユーザーデータ５５６、またはストレージサーバ５０６からゲームサーバ５０２への要求されたゲームデータ５５８を含んでよい。プログラム５７４は、任意選択で、例えば図１、図２、図３、及び／または図４の方法と共通する１つ以上の特徴を有する方法等、プロセッサによって実行されるときに、ゲームデータに対する要求５５２を提供すること、またはオペレーティングシステムデータ５５４、ユーザーデータ５５６、もしくは要求されたゲームデータ５５８を配信することと関連付けられた１つ以上の操作を実行する命令を含んでよい。例えば、ゲームサーバ５０２のプログラム５７４は、図１に示されるサーバアーキテクチャ及び／または図２及び／または図３に示されるストリーミングセッション開始方法の態様に従って、プロセッサ５７０によって実行されるときに、デバイスに該少なくとも１つの受取人デバイス５０６からゲームデータを要求させる、及び／またはゲームサーバ５０２により配信されるリモートクライアントコンピューティングデバイス（不図示）からのアセットに対する要求５５２に応えて要求されたゲームデータ５５８を配信させる命令を含んでよい。ストレージサーバ５０６のプログラム５７４は、プロセッサ５７０によって実行されるときに、ストレージサーバにオペレーティングシステムデータ５５４、ユーザーデータ５５６、または図２及び／もしくは図３に示されるストリーミングセッション開始方法の態様に従ってゲームサーバ１０２によって活用できる要求されたゲームデータ５５８を配信させる命令を含んでよい。
【００４９】
いくつかの実施態様では、ゲームサーバ５０２のメモリ５７２に記憶されるデータ５７７は、図４に示されるサーバアーキテクチャの態様に従ってＯＳカーネル５１３及びユーザーアプリケーション空間データ５１５だけを含む。したがって、この例の実施態様では、ゲームサーバ５０２によってストレージサーバ５０６に配信されるゲームデータに対する要求５５２により、ストレージサーバ５０６は、ゲームサーバ５０２がストリーミングクライアントまたはクライアントコンピューティングデバイスへの配信のためにゲームデータ５５６を開始するために必要とされる所望されるプログラム５７４を実行し得るように、ゲームサーバ５０２に必要なオペレーティングシステムデータ５５４を配信する。
【００５０】
本開示の特定の実施態様では、ストレージサーバ５０６は、オペレーティングシステムデータ５５４、ユーザーデータ５５６、またはアプリケーションデータもしくはゲームデータ５５８が記憶されるマスストレージ５８４用の１つ以上のデバイスを含んでよい。例としてではあるが、制限としてではなく、マスストレージ５８４は、プログラム及び／またはデータを記憶するためにディスクドライブ、ＣＤ−ＲＯＭドライブ、フラッシュストレージ、テープドライブ、ブルーレイドライブ等を含んでよい。マスストレージはＯＳカーネル及びユーザーアプリケーション空間データを含んでよい。マスストレージ５８４に記憶されるデータは暗号化されてよく、ストレージサーバ５０６によって可読ではないことがある。特定の実施態様では、マスストレージ５８４に記憶されるデータは、ゲームサーバ５０２によってのみ可読であってよい。管理サーバは、図１に示されるストリーミングアーキテクチャの態様に従って、ゲームデータ要求５５２に関して適切なアプリケーションデータまたはゲームデータ５５４にゲームサーバ５０２またはストレージサーバ５０６のどちらかを向けることができてよい。しかしながら、特定の実施形態では、管理サーバは記憶されたゲームデータ５５４を読み取ることもできない。
【００５１】
また、デバイス５０２及び５０６のどちらかは、例えばバス５７６を介して、システムの他の構成要素を通信してよい、入出力（Ｉ／Ｏ）回路５７９、電源（Ｐ／Ｓ）５８０、クロック（ＣＬＫ）５８１、及びキャッシュ５８２等の周知のサポート回路５７８を含んでもよい。デバイス５０２及び５０６のどちらかは、任意選択でディスクドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、フラッシュメモリ等のマスストレージデバイス５８４を含んでよく、マスストレージデバイス５８４はプログラム及び／またはデータを記憶してよい。しかしながら、特定の実施態様では、ゲームサーバデバイス５０２は、マスストレージ５８４を含まない可能性がある。また、デバイス５０２及び５０６のどちらかは任意選択でディスプレイ装置５８６を含んでもよい。ディスプレイ装置５８６は、陰極線管（ＣＲＴ）、平面ディスプレイ、タッチスクリーン、またはテキスト、数字、グラフィック記号、または他の視覚オブジェクトを表示する他のデバイスの形であってよい。いくつかの実施態様では、ゲームサーバ５０２及びストレージサーバ５０６は、例えばゲームサーバハードウェアとの物理的なユーザー対話がない場合、コストを削減するためにこれらの構成要素（例えば、ＨＤＭＩ（登録商標）ポート、サウンドカード、ＷｉＦｉ（登録商標）、ＵＳＢ、及び他のインタフェースポート）のいくつかを省略してよい。係る場合でも、ゲームサーバ５０２及びストレージサーバ５０６はまだ専用のグラフィックアクセラレータ（ＧＰＵ）を含んでよいが、グラフィックアクセラレータはディスプレイ５８６にそれらをレンダリングする必要はない。いくつかの実施態様では、ディスプレイ自体が省略されてよい。
【００５２】
また、デバイス５０２及び５０６のどちらかは、デバイス５０２／５０６とユーザーとの間の対話を促進するためにユーザーインタフェース５８８を含んでもよい。ユーザーインタフェース５８８はキーボード、マウス、ライトペン、ゲームコントロールパッド、タッチインタフェース、または他のデバイスを含んでよい。また、ユーザーインタフェースは、スピーカ及び／またはマイク等の音声Ｉ／Ｏデバイスを含んでもよい。ユーザーインタフェース５８８の部分は、システム５０２／５０６とのユーザー対話を促進するためにディスプレイ装置５８６で表示できるグラフィックユーザーインタフェース（ＧＵＩ）を含んでよい。
【００５３】
ユーザーは、ユーザーインタフェース５８８を通してコンピュータシステムのどちらかと対話してよい。例として、デバイス５０２はクラウドゲーミングサーバであってよく、デバイス５０６はクラウドストレージサーバであってよく、ユーザーはゲームサーバ５０２によって実行され、ネットワークインタフェースによってゲームサーバ５０２に接続されるストリーミングクライアントを通してクライアントコンピューティング装置にストリーミング配信されるビデオゲームまたはアプリケーションと対話してよい。システム５０２／５０６は、許容できる帯域幅及び待ち時間を接続に提供できる、例えばＬＴＥ等のサービスを通したローカルネットワークまたはセルラー通信等、Ｗｉ−Ｆｉ、イーサネット（登録商標）ポート、または他の接続方法の使用を可能にするように構成されたネットワークインタフェース５９０を含んでよい。ネットワークインタフェース５９０は、電気通信ネットワークを介して通信を容易にするために適切なハードウェア、ソフトウェア、ファームウェア、またはそのなんらかの組合せを組み込んでよく、本開示の特定の態様に従って信頼できないプロトコルを使用し、データトランスポートをサポートしてよい。ネットワークインタフェース５９０は、ローカルエリアネットワーク、及びインターネット等の広域ネットワークを介して有線通信または無線通信を実装するように構成されてよい。デバイス５０２及び５０６のどちらかは、ネットワーク上で１つ以上のデータパケット５９９を介してデータ及び／またはファイルに対する要求を送信及び受信してよい。
【００５４】
上記の構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはそのなんらかの組合せで実装されてよい。
【００５５】
［結論］
本開示の態様は、本開示の多様な実施態様に係るマスストレージ仮想化に対する必要性が所望されてよい特定の例としてクラウドゲーミングに関して説明されてきたが、本開示の実施態様はこのように制限されていない。本開示の実施態様は、クラウドコンピューティングまたはクラウドゲーミングを含まないことがある任意のコンピューティングデバイスのためのエミュレーションにマスストレージを提供してよい
【００５６】
上記は本発明の好ましい実施形態の完全な説明であるが、多様な代替策、修正形態、及び同等物を使用することが可能である。したがって、本発明の範囲は、本説明を参照して決定されるべきではなく、代わりに同等物のその完全な範囲とともに添付の特許請求の範囲を参照して決定されるべきである。本明細書に説明される任意の特徴は、好まれるかどうかに関わりなく、本明細書に説明される任意の他の特徴と組み合わされてよい。続く特許請求の範囲では、不定冠詞「ａ」または「ａｎ」は、特に明記される場合を除き、冠詞に続く項目の１つ以上の量を指す。添付の特許請求の範囲は、係る制限が明示的に句「のための手段」を使用する所与の請求項で列挙されない限り、ミーンズプラスファンクション制限を含むとして解釈されるべきではない。
【図１】
2020038686.tif 000003
【図２】
2020038686.tif 000004
【図３】
2020038686.tif 000005
【図４】
2020038686.tif 000006
【図５】
2020038686.tif 000007