(58)【調査した分野】(Int.Cl.,DB名)
データセンタでのリソース割り当てを計算するシステムであって、前記システムは、プログラム実行サービス(PES)プラットフォームと、データセンタと、管理コンポーネントと、配置コンポーネントと、を備え、
前記プログラム実行サービス(PES)プラットフォームは、複数のデータセンタを含み、各データセンタは、1つ以上の計算リソースを1人以上のユーザに提供するように構成可能な1つ以上のコンピューティングシステムを含み、
前記複数のデータセンタのデータセンタは、ユーザのコンピューティングデバイスから、計算リソースへのアクセスを取得する要求を受信するように構成され、
前記管理コンポーネントは、
前記コンピューティングデバイスに関連した前記ユーザを識別し、
前記ユーザのアイデンティティに少なくとも部分的に基づいて、前記ユーザに関連したユーザメタデータにアクセスし、
前記ユーザメタデータに少なくとも部分的に基づいて、1組のリソース配置ルールを選択する、
ように構成され、
前記配置コンポーネントは、前記1組のリソース配置ルールに少なくとも部分的に基づいて、前記データセンタの1つ以上のコンピューティングシステムからコンピューティングシステムを識別するように構成され、
前記1組のリソース配置ルールは、前記計算リソースにアクセスできるエンティティに関連した1組のユーザから、ユーザの百分率を制限する第1のルールと、前記データセンタの利用率に基づき、前記計算リソースの利用できるインスタンスをスケールする第2のルールと、を含み、
前記管理コンポーネントは、前記コンピューティングシステム上で前記計算リソースへのアクセスを前記ユーザに提供するようにさらに構成され、
前記1組のリソース配置ルールは、前記ユーザに関連した前記エンティティに関連付けられている、
システム。
前記計算リソースへのアクセスを前記ユーザに提供することは、前記コンピューティングシステム上で前記計算リソースの前記インスタンスへのアクセスを前記ユーザに提供することを含む、
請求項2に記載のシステム。
前記計算リソースは、前記ユーザが前記プログラム実行サービス(PES)プラットフォームによって提供された複数のサービスにアクセスすることを可能にする仮想デスクトップを含む、
請求項1に記載のシステム。
計算リソースへのアクセスを取得する要求であって、ユーザのコンピューティングデバイスから受信される要求を、プログラム実行サービス(PES)プラットフォームのデータセンタにて受信するステップと、
前記コンピューティングデバイスに関連した前記ユーザを識別するステップと、
前記ユーザのアイデンティティに少なくとも部分的に基づいて、前記ユーザに関連したユーザメタデータにアクセスするステップと、
前記ユーザメタデータに少なくとも部分的に基づいて、1組のリソース配置ルールを選択するステップと、
前記1組のリソース配置ルールに少なくとも部分的に基づいて、前記データセンタの1つ以上のコンピューティングシステムからコンピューティングシステムを識別するステップであって、前記1組のリソース配置ルールは、前記計算リソースにアクセスできるエンティティに関連した1組のユーザから、ユーザの百分率を制限する第1のルールと、前記データセンタの利用率に基づき、前記計算リソースの利用できるインスタンスをスケールする第2のルールと、を含むステップと、
前記コンピューティングシステム上で前記ユーザに前記計算リソースへのアクセスを提供するステップと、
を含み、
前記1組のリソース配置ルールは、前記ユーザに関連した前記エンティティに関連付けられている、
方法。
前記プログラム実行サービス(PES)プラットフォームは、前記データセンタを含む複数のデータセンタを含み、各データセンタは、1人以上のユーザに前記1つ以上のコンピューティングシステムの少なくとも1つによって対応された1つ以上の計算リソースへのアクセスを提供するように構成可能な1つ以上のコンピューティングシステムを含む、
請求項10に記載の方法。
前記計算リソースは、前記ユーザが前記プログラム実行サービス(PES)プラットフォームによって提供された複数のサービスにアクセスすることを可能にする仮想デスクトップを含む、
請求項10に記載の方法。
【発明を実施するための形態】
【0007】
I.はじめに
従来のデスクトップコンピューティング環境では、ユーザは、典型的には、ユーザの机の近くに物理的に位置するデスクトップコンピュータのコンピューティング又はストレージリソースにアクセスする。デスクトップコンピュータは、ユーザがデスクトップコンピュータによって実行することができるアプリケーション(例えば、ワープロアプリケーション、電子メールアプリケーションなど)にアクセスすることを可能にするディスプレイ及びデータ入力デバイス(例えば、キーボード及びマウス)に接続することができる。ラップトップコンピューティング環境は、携帯型ラップトップコンピュータがデスクトップコンピュータの代わりに使用されることを除き、デスクトップコンピューティング環境と概ね類似のものである。従来のデスクトップ又はラップトップコンピューティング環境の短所としては、ユーザがアクセスすることができるのはデスクトップ又はラップトップコンピュータ上に記憶されているアプリケーションのみである点、及び、異なるコンピューティングプラットフォーム全体にわたってアプリケーション、又は、データを簡単に共用することができない点が挙げられる。広範囲にわたる固定及び携帯型のコンピューティングデバイス(例えば、デスクトップ、ラップトップ、タブレット、スマートフォン、電子ブックリーダなど)の使用の増大で、ユーザは、これらのプラットフォームの各々上で同じアプリケーション及びデータにアクセスすることを望む場合がある。例えば、ユーザは、ワープロアプリケーションを使用してユーザの会社内に位置するユーザのデスクトップコンピュータで文書を編集したいと思う場合がある。ユーザは、その後、航空機の接続を待ちながら空港でユーザのラップトップで文書を編集し続けたいと思う場合がある。その後、飛行機内に、又は、会議に向かうタクシーの中にいる間、ユーザは、スマートフォンで文書を見るか、又は、編集したいと思う場合がある。これらの状況(又はその他)では、ユーザは、同じワープロアプリケーションを使用し、同じ文書をシームレスに編集して、(各装置の計算上及び物理的な制約に従って)各コンピューティングデバイスと対話するときに類似のユーザ体験を持ちたいと思う場合がある。つまり、ユーザは、ユーザがどこにいようと、また、ユーザがどんなコンピューティングデバイスをその瞬間に使用していようと、ユーザのアプリケーション及びデータへのユーザアクセスを可能にする「仮想デスクトップ」を持ちたいと思う場合がある。
【0008】
本出願は、ユーザが各個のコンピューティングデバイス上に記憶された個々のアプリケーション及びデータにアクセスすることによってよりもむしろ、ユーザが、アプリケーション及びデータに対応するプログラム実行サービス(時には、「クラウドコンピューティング」サービスと呼ばれる)との接続を使用することによって広範囲にわたるコンピューティングデバイス全体にわたってアプリケーション及びデータへのアクセスを達成することができるシステム及び方法の実施例を説明する。様々な実行例では、このプログラム実行サービスは、ユーザが自分たちのコンピューティングデバイスで使用したいアプリケーションを買うか、又は、レンタルすることができるアプリケーション市場を提供することができる。プログラム実行サービスは、また、ユーザが、ユーザのコンピューティングデバイスの全てにわたって自動的に同期されるデータにアクセスすることを可能にするデータストレージを提供することができる。様々なクラウド対応の実行例の詳細な実施例をここで説明する。
【0009】
プログラム実行サービス(PES)の一部として含まれるデータセンタのコンピュータシステムによって対応されるか、又は、提供される計算リソースへのアクセスを提供するシステム及び方法の実施例を本明細書で説明する。
図1Aは、通信ネットワーク106を介してマルチユーザコンピューティングシステム104に計算リソースを提供することができるPES環境100の一実施例を例示する。
【0010】
PES環境100は、アプリケーション及び/又は仮想デスクトップ環境へのアクセスを含むことができる、仮想マシンインスタンスなど計算リソースへのオンデマンドのアクセスを提供するPESプラットフォーム120(PES120という場合がある)を含む。
図9に関してさらに詳細に説明するように、計算リソースは、1組のデスクトップ配置ルール及び/又は1組の計算リソース配置ルールに基づいて立ち上げられ得るか、又は、その他の方法でインスタンス化され得る。
【0011】
PESプラットフォーム120は、永久的に又は必要に応じてアプリケーションを実行する計算リソースを提供することができる。PESプラットフォーム120によって提供される計算リソースとしては、データ処理リソース、データストレージリソース、データ通信リソース、アプリケーションリソース、ファイル管理リソース、ユーザ認証リソース、仮想デスクトップリソースなど様々な形式のリソースを挙げることができる。そのようなものと限定されるものではないが、仮想デスクトップリソースは、PESプラットフォーム120と通信するために使用されたユーザコンピューティングシステム104上に記憶及び/又は対応されるのとは対照的に、PESプラットフォーム120上に記憶及び/又は対応されるファイル及び/又はアプリケーションと相互作用するインターフェースを含むことができる。仮想デスクトップリソースは、オペレーティングシステムと関連づける(又は、オペレーティングシステムをエミュレートする)ことができる。例えば、ウィンドウズアプリケーションを実行するように構成可能なウィンドウズ仮想デスクトップがあり得る。仮想デスクトップは、ユーザが、例えば、アプリケーション、ファイル管理プログラム及び/又はファイルストレージなどのPESプラットフォームによって提供されるサービスにアクセスすることを可能にすることができる。
【0012】
場合によっては、仮想デスクトップは、ユーザコンピューティングシステム104のデスクトップと全く同じであり得るか、又は、全く同じように見え得る。例えば、仮想デスクトップは、PESプラットフォーム120を介して利用可能なアプリケーションリソースへのアクセスを提供し得、かつ、グラフィックインタフェースを介してPESプラットフォーム120にて記憶されたファイルを管理するファイル管理機能を提供し得る。場合によっては、仮想デスクトップは、アプリケーションなど単一のリソースへのアクセスを提供するように構成され得る。場合によっては、仮想デスクトップは、データセンタ102のコンピューティングシステム上でアクセス可能であるグラフィックコンテナである。このコンテナはユーザコンピューティングシステム104にストリーミングされ得、かつ、ファイル管理プログラム及びファイルストレージに関連付けられ得る。さらに、場合によっては、仮想デスクトップは、ユーザコンピューティングシステム104上のユーザコンピューティングシステム104上でアクセス可能であるアプリケーションであり得る。他の場合、仮想デスクトップは、データセンタ102のコンピューティングシステムとの通信を確立することによってアクセスされ得、該コンピューティングシステムは、仮想デスクトップ用グラフィックインタフェースをユーザコンピューティングシステム104にストリーミングすることができる。仮想デスクトップは、ブラウザを介して典型的にはアクセスされないが、場合によっては、仮想デスクトップとのグラフィックインタフェースが、ウェブブラウザを介して提示され得る。
【0013】
各形式の計算リソースは、汎用であり得るか、又は、いくつかの特定の構成で利用可能であり得る。例えば、データ処理リソースは、仮想マシンインスタンスとして利用可能であり得る。場合によっては、計算リソースは、オペレーティングシステムで構成された仮想マシンによる計算ノードであり得る。計算ノードは、サーバなどの物理コンピューティングデバイス上で実行され得る。インスタンスは、Webサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバなどを含め、アプリケーションを実行するように構成され得る。データストレージリソースとしては、ファイルストレージデバイス、ブロック記憶デバイスなどを挙げることができる。アプリケーションリソースとしては、レンタル及び/又は購入されるアプリケーションを挙げることができる。さらに、アプリケーションリソースとしては、実行中にPESプラットフォーム120によって対応され、及び/又は、実行中にユーザコンピューティングシステム104に一時的に又は永久にストリーミングされるアプリケーションを挙げることができる。
【0014】
計算リソースの各形式又は構成は、多くのプロセッサ、多量のメモリ及び/又は大規模な記憶容量から成る大規模なリソース、及び、より少しのプロセッサ、より小規模のメモリ容量及び/又はより小規模な記憶容量から成る小規模なリソースなど、異なるサイズで利用可能であり得る。顧客は、例えば、いくつかの小規模な処理リソースをWebサーバとして、及び/又は1つの大規模な処理リソースをデータベースサーバとして割り当てることを選び得る。
【0015】
PESプラットフォーム120は、いくつかのデータセンタ類102A〜102N(本明細書では単数形で「データセンタ102」と、又は、複数形で「データセンタ類102」と呼ぶ場合がある)を含む対応するコンピューティング環境114を含み,該データセンタ類は、ユーザ又は顧客に上述の計算リソースへのアクセスを提供する。対応するコンピューティング環境及びデータセンタ類の更なる実施例が、2011年1月4日に付与された、「Configuring Communications Between Computing Nodes」という名称の、米国特許第7,865,586号示されており、この特許は、全体が参照により本明細書に組み入れられる。一部の実例では、対応するコンピューティング環境は、また、クラウドコンピューティング環境と呼ぶ場合がある。
【0016】
4個のデータセンタ102が例示されているが、PESプラットフォーム120は、1個のデータセンタ、10個のデータセンタ、又は、50個のデータセンタなど、任意の数のデータセンタを含み得る。さらに、データセンタ類102は、単一の対応するコンピューティング環境114の一部として概念的に例示されているが、データセンタ類102は、地理的に異なる位置に位置し得る。例えば、データセンタ102Aは、地理的地域122A内に位置し得、データセンタ類102B及び102Cは、地理的地域122Bに位置し得、データセンタ102Nは、
図1Aでは例示されていないさらに別の地理的地域に位置し得る。以下で説明するように、地理的地域122A、122Bは、異なる都市、郡、又は、州に、又は、異なる国にさえ位置する可能性がある。
【0017】
データセンタ類102は、コンピュータシステム及び関連のコンポーネントを収容及び操作するために利用される設備である。例えば、データセンタ102は、典型的には、冗長及びバックアップ電源、通信、冷却、及びセキュリティシステムを含む。ユーザに様々な計算リソースへのアクセスを提供する、本明細書で開示する概念及び技術を実行するデータセンタ102の1つの例示的な構成を
図3に関して以下で説明する。
【0018】
PESプラットフォーム120の顧客及び他のユーザは、ネットワーク106でデータセンタ類102によって提供される計算リソースにアクセスし得る。ネットワーク106は、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、セルラーネットワークなどを含む任意の形式の有線又は無線ネットワークを含むことができる。データセンタ類102は、コンピュータシステム及び関連のコンポーネントを収容及び操作するために利用される設備である。例えば、データセンタ102は、典型的には、冗長及びバックアップ電力、通信、冷却、及びセキュリティシステムを含む。ユーザに様々なコンピューティングへのアクセスを提供する、本明細書で開示する概念及び技術を実行するデータセンタ102の1つの例示的な構成リソースを
図3に関して以下で説明する。さらに、場合によっては、ネットワーク106は、インターネットを含むことができる。さらに、場合によっては、ネットワーク106は、データセンタ類102をリモート顧客又はユーザに接続する既知の任意の他のネットワーキングトポロジを含むことができる。また、そのようなネットワークの組合せが、また、利用され得ることを認識されたい。
【0019】
図1Aに例示するように、顧客又はユーザは、1つ以上のユーザコンピューティングシステム104A〜104C(本明細書では単数形で「ユーザコンピューティングシステム104」と、又は、複数形で「ユーザコンピューティングシステム類104」と呼ぶ場合がある)を介してPESプラットフォーム120と通信し得る。3つのユーザコンピューティングシステム104が例示されるが、PES環境100は、任意の数のユーザコンピューティングシステム104を含み得る。さらに、ユーザコンピューティングシステム類104はPESプラットフォーム120にアクセスするためにユーザによって利用され得る任意の形式のコンピューティングシステムを含み得る。例えば、ユーザコンピューティングシステム104は、サーバコンピュータ、デスクトップ、又は、ラップトップパーソナルコンピュータ、タブレットコンピュータ、無線電話(例えば、スマートフォン)、個人用携帯情報端末(PDA)、電子ブックリーダ(例えば、eリーダ)、ゲームコンソール、セットトップボックス、又は、PESプラットフォーム120にアクセスすることができる任意の他のコンピューティングデバイスであり得る。
【0020】
ユーザコンピューティングシステム類104の各々は、1つ以上の異なる地理的地域122A〜122Bに位置し得る。例えば、例示するように、ユーザコンピューティングシステム104Aは、地理的地域122Aに位置し得、ユーザコンピューティングシステム類104B及び104Cは、地理的地域122Bに位置し得る。別の実施例として、コンピューティングシステム104の各々は、独自の地理的地域122に位置し得るか、又は、同じ地理的地域122に位置し得る。
【0021】
各地理的地域122は、異なるサイズであり得る。例えば、地理的地域122は、住宅、又は、ビル(例えば、企業、企業本部、又は、空港)であり得る。第2の実施例として、地理的地域122は、1平方マイルなど地理的面積であり得る。場合によっては、地理的地域122は、地政学的な境界に基づき得る。例えば、地理的地域122Aは都市、郡、州、又は、国であることができるし、地理的地域122Bは別の都市、郡、州、又は、国であることができる。一部の実例では、地理的地域122は、少なくともある程度、ネットワーキング装置に基づいて画定され得る。例えば、地理的地域122Aは、地理的地域122A内に位置するルータ(図示せず)の範囲に基づいて画定され得る。
【0022】
ユーザコンピューティングシステム104は、ネットワーク106を介して、PESプラットフォーム120、又は、そのデータセンタ類102と通信し得る。データセンタ類102と通信することは、データセンタ類102のコンピュータシステムと通信することを含み得る。例えば、ユーザコンピューティングシステム104が、データセンタコンピューティングシステム上で対応される仮想デスクトップ、又は、アプリケーションにアクセスし得る。いくつかの接続プロトコルが、データセンタコンピューティングシステムにアクセスするために使用され得る。例えば、ユーザコンピューティングシステム104は、リモートデスクトッププロトコル(RDP)対応の接続、又は、ユーザデータグラムプロトコル(UDP)対応の接続を使用してデータセンタのコンピュータシステムと通信し得る。さらに、ユーザコンピューティングシステム104は、別のマシンによって対応されるアプリケーションにアクセスするか、又は、該アプリケーションをストリーミングする任意のプロトコルを使用してデータセンタにて対応されるアプリケーションインスタンスにアクセスし得る。例えば、ユーザコンピューティングシステム104は、App−V(ワシントン州レドモンドのマイクロソフト社入手可能)、又は、ThinApp(カリフォルニア州パロアルトのVMware社から入手可能)などのアプリケーション仮想化又はアプリケーションストリーミングソフトウェアを使用することによってデータセンタ上で対応されるアプリケーションにアクセスし得る。
【0023】
A.データセンタ選択
先述したように、ユーザコンピューティングシステム104は、PESプラットフォーム120にアクセスして様々な計算リソースへのアクセスを取得し得る。典型的には、PESプラットフォーム120との通信は、単一のデータセンタ102と通信することによって行われる。が、場合によっては、ユーザコンピューティングシステム104は、複数のデータセンタ類102と通信し得る。論じる内容を簡素化するために、かつ、特記がない限り、本明細書で説明する実施例は、ユーザコンピューティングシステム104が単一のデータセンタ102で所与の時点にて通信していると想定することになる。しかしながら、異なる時点にて、ユーザコンピューティングシステム104は、特にユーザコンピューティングシステム104が異なる地理的地域122に移動したか、又は、異なる計算リソースにアクセスしようとしているときに異なるデータセンタ類102と通信し得る。
【0024】
場合によっては、ユーザは、通信するデータセンタ102を選択し得る。ユーザによって選択されたデータセンタ102は、最適下限であり得ることが多い。例えば、ユーザによって選択されたデータセンタ102は、最低の待ち時間接続を提供しない場合がある。さらに、ユーザによって選択されたデータセンタ102は、ユーザがアクセスすることを望む1つ以上の計算リソースを含んでいない場合がある。
【0025】
待ち時間の低減又は最小の待ち時間を提供する接続上でユーザコンピューティングシステム104と通信することができるデータセンタ102を自動的に選択するシステム及び方法の実施例を本明細書で説明する。場合によっては、接続の待ち時間は、所与の時点にて他のデータセンタとの接続部と比較して低減されていないか、又は、最小ではない場合があるが、一定期間にわたって低減されるか、又は、最小であり得る。さらに、一部の実例では、選択したデータセンタ102は、絶対最小待ち時間接続を提供しない場合があるが、待ち時間閾値レベル未満である待ち時間接続を提供し得る。場合によっては、システムは、少なくともある程度、データセンタとユーザコンピューティングシステム間の通信チャネルの待ち時間に相関する1つ以上の待ち時間因子の計算に基づいてデータセンタを選択することができる。さらに、選択したデータセンタ102は、ユーザがアクセスに望むと識別した1つ以上の計算リソースを含む1組のデータセンタ類102から識別され得る。
【0026】
特定の実施形態では、データセンタ102は、ユーザコンピューティングシステム104と対応するコンピューティング環境114のデータセンタ類102の1つ以上との間の接続に関連したいくつかの待ち時間因子を測定することによって選択され得る。例えば、データセンタ102は、データセンタ類102とユーザコンピューティングシステム104との間の地理的距離に基づいて選択され得る。データセンタ102の選択を以下で
図6及び
図7に関してさらに説明する。
【0027】
B.デスクトップインスタンス配置
データセンタ102と通信することは、アプリケーション及び仮想デスクトップなど、計算リソースへのアクセスを提供する1つ以上のデータセンタコンピュータと通信することを含み得る。幾人かのユーザ(例えば、従業員又は顧客)に計算リソースを提供するためにデータセンタ102を使用するエンティティは、場合によっては、どのように計算リソースがデータセンタ102にて配信されるかのルールを指定することを望み得る。例えば、仲介サービスを提供するエンティティは、データセンタ102コンピュータシステムがオフラインになったときに影響を受ける従業員(又は、顧客)の数を低減したいと思う場合がある。この点を踏まえて、エンティティは、1つ又は2つのデータセンタ102コンピュータシステム内の部署全体を統合する代わりにいくつかのコンピュータシステム間で取引を処理する従業員を分散したいと思う場合がある。
【0028】
本開示の実施形態は、ユーザ(例えば、管理者)が、ユーザを雇用するか、又は、ユーザに関連するエンティティのためにデータセンタ102にて計算リソース(例えば、仮想デスクトップ)の配置及び/又は構成のルールを提供することを可能にする。データセンタ102は、配置ルールを使用して、ユーザのために計算リソースに対応するようにデータセンタコンピュータシステムを選択することができる。例えば、データセンタ102は、ユーザがエンジニアリング企業の経理課の課員であると判定することができる。エンジニアリング企業にて管理者によって指定されたルールに基づいて、データセンタ102は、企業の経理課の他の課員に対応していないデータセンタコンピュータを選択することができる。さらに、データセンタ102は、確実に、この経理課従業員用に作成された仮想デスクトップが、本人の職務権限を実行するためにこの経理課従業員に必要とされるアプリケーションで予め構成されるようにすることができる。
【0029】
C.アプリケーションへのアクセス
プログラム実行サービス(PES)のユーザは、アプリケーション市場を介して利用可能である様々なアプリケーション及びオペレーティングシステムの間で選択し得る。ユーザは、自分の仮想デスクトップインスタンス上で使用したいオペレーティングシステム及びアプリケーションを検索し得る。PESプラットフォーム120は、ユーザによって選ばれたオペレーティングシステムを実行する仮想デスクトップインスタンスから実行可能であるようにアプリケーションを構成し得る。例えば、ユーザは、自分の仮想デスクトップインスタンス上でアップル社MAC OSをインストールすることを選び得る。また、自分の仮想デスクトップインスタンスにおいてマイクロソフトパワーポイントソフトウェアを含むことを選び得る。ユーザは、自宅にてユーザのラップトップコンピュータからパワーポイントソフトウェアに初めにアクセスし得る。ユーザは、その後、別の都市に旅行し得、ユーザは、PESプラットフォーム120上で仮想デスクトップインスタンスとの接続を用いてユーザのホテルにてユーザのラップトップコンピュータから同じソフトウェア及びオペレーティングシステム環境にアクセスしたいと思っている。PESプラットフォーム120は、ユーザ及びユーザのラップトップコンピュータに関連したメタデータをチェックし得、かつ、ユーザがプログラムにアクセスする権限が与えられていると判定し得る。
【0030】
ユーザは、その後、営業会議に出向いて、ユーザのタブレット装置からプレゼンテーションを行い得る。PESプラットフォーム120は、ユーザ及びユーザのタブレット装置に関連したメタデータをチェックし得、かつ、ユーザがユーザのタブレット装置からPESプラットフォーム120上で仮想デスクトップインスタンス上でパワーポイントソフトウェアにアクセスする権限が与えられていると判定し得る。
【0031】
D.クラウドフォルダ同期
多くの人々が、2つ以上のコンピューティングデバイスを有する。ユーザは、デスクトップコンピュータ、サーバコンピュータ、テーブル機器、スマートフォンなど、いくつかの異なる装置からPESプラットフォーム120上で遠隔操作にて記憶されたファイルにアクセスしたいと思う場合がある。ユーザは、これらの装置上でファイルにアクセスし得るが、一部の実施形態では、セキュリティ及びアクセスレベル設定が、ユーザのみが特定の装置上でファイルを同期させることを可能にするように構成され得る。ファイルをコンピューティングデバイスの上で同期させることが可能にされると、他のコンピューティングデバイスから、又は、仮想デスクトップインスタンス上でファイルに行われた全ての変更をコンピューティングデバイスに自動的に同期させることができる。一部の実例では、ファイルは、ネットワーク接続性に関係なくコンピューティングデバイス上でアクセス可能であるように構成され得る。
【0032】
例えば、ユーザは、会社のデスクトップPC、タブレット装置、及びスマートフォンを有し得、これらは、全て、PESプラットフォーム120上に記憶されたファイルにアクセスするように構成される。ユーザは、PESプラットフォーム120上で対応される仮想デスクトップインスタンスを介して、自分のデスクトップPCでMicrosoft Word(商標)文書で作業し得る。仮想デスクトップインスタンス上でMicrosoft Word文書を編集した後に、ユーザは、会社の自分のデスクトップPCをオフにし得る。ユーザは、空港に到着すると同じMicrosoft Word文書を編集することを望み得る。
【0033】
ユーザの様々なコンピューティングデバイス間に多くの同期点があり得る。ユーザのボブが仮想デスクトップインスタンスFooを有する以下の例示的な実施例を考察してみよう。仮想デスクトップインスタンスFooを使用してボブによって修正されたファイルは、ボブのコンピューティングデバイスの1つ、例えば、コンピューティングデバイス0と同期され得る。コンピューティングデバイス0上の仮想デスクトップインスタンスFooを使用してボブによって修正されたファイルは、また、PESと同期され得、PESは、ボブによってアクセス可能なファイルストレージに(例えば、仮想デスクトップFooによってアクセス可能なフォルダFooに)修正されたファイルのコピーを記憶するようになっている。ユーザボブは、その後、PESによって、しかし、第2のコンピューティングデバイス、例えば、コンピューティングデバイス1を使用して、記憶されたファイルの1つ以上にアクセスすることを選び得る。コンピューティングデバイス1は、ファイルに(例えば、PES上のフォルダFooから)にアクセスすることができ、ボブは、コンピューティングデバイス1の上で仮想デスクトップインスタンスFooを使用してコンピューティングデバイス1上でファイルで作業して該ファイルを修正し続けることができるようになっている。PESは、PES内のファイルストレージとコンピューティングデバイス1上のローカルストレージとの間でファイルを同期させることができる。したがって、PES内に記憶されたファイルは、ボブのコンピューティングデバイス0及び1の両方と同期させることができる。したがって、コンピューティングデバイス0及び1の一方又は両方での文書の変更は、PESと、及び、仮想デスクトップインスタンスFooと同期させることができる。さらに、PESとのネットワーク接続性が失われたか、又は、ローカルアクセスが必要である場合、ユーザのボブは、コンピューティングデバイス0及びコンピューティングデバイス1上でファイルにアクセスすることができる。
【0034】
II.例示的なプログラム実行サービス環境
図1Bは、通信ネットワーク106を介して計算リソースをマルチユーザコンピューティングシステム104に提供することができるプログラム実行サービス環境100の更なる実施例を例示する。
図1Aに例示するコンポーネントに加えて、プログラム実行サービス環境100は、ネットワーク106を介してPESプラットフォーム120と通信する1つ以上のプロバイダコンピューティングシステム108を含むことができる。
【0035】
プロバイダコンピューティングシステム108のユーザは、ネットワーク130を介して、特定の形式の機能性のために、アプリケーション市場130にサービス画像を提出し得、アプリケーション市場130は、PESプラットフォーム120の一部として含められ、かつ、
図2に関してさらに詳細に説明する。サービス画像は、アプリケーションの画像、仮想デスクトップ構成、又は、アプリケーション市場130を介して提供され得る任意の他の形式の計算リソースを含み得る。アプリケーション市場130は、提出されたサービス画像、並びに、市場に提出された他のサービス画像をユーザコンピューティングシステム類104のユーザに提供し得る。したがって、ユーザコンピューティングシステム104を利用するユーザは、以下で
図10に関してさらに説明するように、アプリケーション市場130から入手可能であるサービス画像を閲覧し、所望のサービス画像を取得して、取得されたサービス画像をユーザコンピューティングシステム104にて、又は、データセンタ102のコンピュータシステムにおいて立ち上げ得る。
【0036】
場合によっては、プロバイダコンピューティングシステム108のユーザは、PESプラットフォーム120に属するエンティティに属し得る。他の場合において、プロバイダコンピューティングシステム108のユーザは、PESプラットフォームに属さないサードパーティであり得る。取得されたサービス画像がサードパーティプロバイダによって電子サービス画像市場100に提出された場合、取得されたサービス画像は、運用、維持、提供されるか、又は、サードパーティプロバイダにその他の方法で関連するプロバイダ対応のコンピューティング環境110において立ち上げられ得る。プロバイダ対応のコンピューティング環境110は、1つ以上の物理コンピュータシステムを含み得、場合によっては、それ自身がPESプラットフォームであり得る。
【0037】
PESプラットフォーム120は、対応するコンピューティング環境114からデータセンタ102を選択することを容易にし得る任意のシステムを含み得る対応するコンピューティング環境リソース割り当てシステム140をさらに含み得る。対応するコンピューティング環境リソース割り当てシステム140は、データセンタ102及びユーザコンピューティングシステム104とデータセンタ102にて利用可能である計算リソースとの間の接続の予想待ち時間を含むいくつかの因子に基づいてデータセンタ102を選択し得る。
【0038】
データセンタ102を選択することを容易にするために、場合によっては、対応するコンピューティング環境リソース割り当てシステム140は、データセンタ類102に関連したメタデータに共通のリポジトリ112からアクセスすることができる。このメタデータは、データセンタ102に関連し得る任意の情報を含むことができる。例えば、メタデータとしては、データセンタの102の場所、データセンタ102にて利用可能である計算リソース、データセンタ102と様々な地理的地域122との間の接続の待ち時間情報、データセンタ102にアクセスできるエンティティのアイデンティティ、ユーザ又は関連のエンティティがデータセンタ102にアクセスする権限が与えられているか否かを判定するアクセスルールなどを挙げることができる。
【0039】
一部の実例では、ユーザは、データをユーザコンピューティングシステム104とデータセンタ102間で同期させたいと思う場合がある。さらに、例えば、ユーザが地理的ロケーションを切り替えるのでユーザが新しいデータセンタ102にアクセスする場合、データをデータセンタ類102間で同期させることが必要であり得る。そのような場合、PESプラットフォーム120は、データ同期を容易にするために、ファイル同期システム170を使用し得る。ファイル同期システム170を
図11に関して以下でさらに詳細に説明する。
【0040】
PESプラットフォーム120の一部として示すが、一部の実例では、対応するコンピューティング環境リソース割り当てシステム140及びアプリケーション市場130の1つ以上は、PESプラットフォーム120と分離することができる。さらに、場合によっては、対応するコンピューティング環境リソース割り当てシステム140及びアプリケーション市場の1つ以上は、対応するコンピューティング環境114の一部として含められ得る。さらに、場合によっては、共通のリポジトリ112は、対応するコンピューティング環境114の一部として含められ得る。
【0041】
III.例示的な電子サービス画像市場
図2は、一部の実施形態では、プログラム実行サービス環境100の一部として含むことができるアプリケーション市場130の実施例を例示する。先述したように、アプリケーション市場は、サービス画像をユーザに提供することができる。これらのサービス画像としては、アプリケーション、仮想デスクトップ及びPESプラットフォーム120、又は、サードパーティエンティティに関連したエンティティによって提供される他の計算リソースを挙げることができる。
【0042】
例示する実施形態では、アプリケーション市場130は、電子カタログ216、市場インターフェース212、アプリケーションリポジトリ220、請求システム218及び使用モニタシステム214を含むいくつかのシステムを含むことができるコンピュータ環境として示す。場合によっては、アプリケーション市場130のシステムは、単一のコンピューティングシステムの一部であり得る。他の場合において、アプリケーション市場130のシステムの少なくとも一部は、複数のコンピュータシステム全体にわたって分散され得る。そのような場合、コンピュータシステムは、ネットワーク106など、1つ以上のネットワークを使用して相互接続され得る。アプリケーション市場130のシステムの各々を以下でさらに詳細に説明する。しかしながら、アプリケーション市場130は、
図2に例示するよりも少ないか、又は、多いコンポーネントを有し得る。さらに、アプリケーション市場130は、様々なネットワーク、又は、Webサービス及び/又はピアツーピアネットワーク構成を含み得る。したがって、
図2のアプリケーション市場130の描写は、例示的であり、本開示に制限的ではないと取るべきである。
【0043】
市場インターフェース212は、サードパーティプロバイダによるネットワーク提出、及び、アプリケーション市場130内のサービス画像のユーザ又は顧客による閲覧及び取得を容易にする。したがって、プロバイダ、又は、プロバイダコンピューティングシステム108を利用する他のユーザは、1つ以上のサービス画像を市場インターフェース212を介してアプリケーション市場130に提出し得る。提出されたサービス画像は、その後、電子カタログ216内に含められ得る。アプリケーションなどサービス画像を提出する実施形態つまりプロセスが、2011年9月29日出願の,「Electronic Marketplace for Hosted Service Images」という名称の米国特許出願第13/248,227号でさらに詳細に説明されおり、この特許は、全体が参照により本明細書に組み入れられる。
【0044】
電子カタログ216は、複数のプロバイダから入手可能であるサービス画像、及び、アプリケーション市場100の運営者によって提供されたサービス画像に関する情報を含み、該運営者は、PESプラットフォーム130の運営者と同じ運営者であり得る。したがって、市場システム212は、複数のプロバイダ及び市場によってオファーされたサービス画像のサービス画像情報を取得して、ウェブサイトなど単一のネットワークリソースからサービス画像を顧客に提供し得る。顧客は、その後、サービス画像をアプリケーション市場から取得し、サービス画像市場との単一の相互作用、又は、サービス画像市場に行われた注文において、又は、PESプラットフォーム120との複数の相互作用の一部として、対応するコンピューティング環境114又はそのデータセンタ102においてサービス画像を立ち上げ得る。電子カタログ216は、品目(商品及びサービスなどの)及びサービス画像(例えばアプリケーション及び仮想デスクトップ)に関する情報を含むカタログであり得るか、又は、一方のカタログは、品目に関する情報を含み、他方のカタログは、本開示の範囲から逸脱することなく、サービス画像に関する情報を含む別個のカタログであり得る。
【0045】
例示的に、市場インターフェース212が、ユーザコンピューティングシステム104を利用する顧客がサービス画像(例えば、アプリケーション、又は、仮想デスクトップ)を閲覧し、サービス画像に適合するクエリを提出して、特定のサービス画像に関する情報及び詳細を見得る1つ以上のユーザインターフェースを生成し得る。
【0046】
顧客がアプリケーション市場130から所望のサービス画像を選択した後、市場インターフェース212は、サービス画像の構成及び取得を容易にして、データセンタ102のコンピュータシステム上でサービス画像の立ち上げを引き起こし得る。この点に関しては、市場インターフェース212は、支払い情報、並びに、場合によっては、サービス画像をどのようにデータセンタ102でのコンピュータシステム上で実行するべきかを指定する情報をユーザコンピューティングシステム104から受信し得る。一部の実施形態では、顧客は、選択したサービス画像に対応する特定のデータセンタ102を選択し得る。
【0047】
サービス画像が立ち上げられてデータセンタ102にてコンピュータシステム上で実行されると、アプリケーション市場130は、サービス画像によって提供された機能性又はサービスの使用を使用モニタシステム214を介してモニタすることができる。さらに、アプリケーション市場130は、請求システム218を介して顧客に請求書を送り及び/又は相応にサービス画像プロバイダを支払うことができる。請求システム218は、支払い情報を市場システム212との相互作用を介して受信及び提供し得る。一部の実施形態では、請求システム218は、更なるサーバを介して、電話の相互作用を介して、又は、他のメカニズムを介してなど、他のプロセスを介して支払い情報を代替的に受信及び提供し得る。さらに、アプリケーション市場130は、顧客にサービス画像の構成を管理、モニタ、修正するなどのツールを提供し得る。
【0048】
サービス画像は、アプリケーションリポジトリ220にて記憶され得る。ユーザが、アプリケーション、又は、予め構成された仮想デスクトップなど、サービス画像を購入、レンタル、又は許可するか、又は、該サービス画像へのアクセス取得するとき、アプリケーション市場130は、サービス画像のコピーを取得するためにアプリケーションリポジトリにアクセスし得、かつ、本明細書で説明するプロセスを使用して選択されたデータセンタ102にてコンピュータシステム上にインストールすることができる。
【0049】
一部の実施形態では、アプリケーションのプロバイダは、提供されるアプリケーションの配置又は購入を制限するルールをアプリケーション市場130に提供し得る。例えば、プロバイダは、アプリケーションの配置をプロバイダと同じ国内に位置するデータセンタ類102に制限し得る。プロバイダは、プロバイダの国の輸出制限法の遵守を確実にするために領土のルールを指定することができる。別の実施例として、プロバイダは、アプリケーションの配置をプロバイダに関連したエンティティがアクセスの購入を有するデータセンタ類102に制限し得る。例えば、アプリケーションが従業員使用専用に開発された場合、プロバイダは、アプリケーションを従業員がアクセスすることができるデータセンタ類102に限定するべきであると指定し得る。
【0050】
IV.例示的なデータセンタ
図3は、一部の実施形態では、プログラム実行サービス環境100の一部として含むことができるデータセンタ102の実施例を例示する。先述したように、データセンタ102は、対応するコンピューティング環境114の一部であり得、かつ、アプリケーション市場130又はサードパーティプロバイダに関連して対応される素早くプロビジョニングされてリリースされた計算リソースのコレクションを含み得る。計算リソースとしては、互いと通信するいくつかのコンピューティングデバイス、ネットワーキングデバイス、及び記憶デバイスを挙げることができる。一部の実施形態では、コンピューティングデバイスは、物理コンピューティングデバイス(例えば、データセンタコンピュータ302)に対応し得る。他の実施形態では、コンピューティングデバイスは、1つ以上の物理コンピューティングデバイスによって実行された仮想マシンインスタンス(例えば、インスタンス306)に対応し得る。さらに他の実施形態では、コンピューティングデバイスは、仮想コンピューティングデバイス及び物理コンピューティングデバイスに対応し得る。
【0051】
図3に示す例示的なデータセンタ102は、アプリケーションを実行する計算リソースを提供するいくつかのデータセンタコンピュータ302A〜302N(本明細書では単数形で「データセンタコンピュータ302」と、又は、複数形で「データセンタコンピュータ類302」と呼ぶ場合がある)を含む。データセンタコンピュータ類302は、上述の計算リソースを提供するように適切に構成されたクライアントシステム、及び、タワー又はラックマウントサーバコンピュータを含む任意の形式のコンピューティングデバイスであり得る。例えば、一実行例では、データセンタコンピュータ類302は、計算リソースのインスタンス306A〜306Nを提供するように構成される。
【0052】
一実施形態では、インスタンス306A〜306N(本明細書では単数形で「インスタンス306」と、又は、複数形で「インスタンス306」と呼ぶ場合がある)は、仮想マシンインスタンスである。特定の実施形態では、インスタンス306は、本明細書に記載しているように、PESプラットフォーム120に関連したエンティティまたはサードパーティエンティティによって提供されたサービス画像のインスタンスに基づき得るか、又は、該インスタンスであり得る。仮想マシンインスタンスとしては、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実行例のインスタンスを挙げることができる。仮想マシンインスタンスの実施例では、データセンタコンピュータ類302の各々は、インスタンスを実行することができるインスタンスマネージャ308を実行するように構成され得る。インスタンスマネージャ308は、例えば、単一のデータセンタコンピュータ302で複数のインスタンス306の実行を有効にするように構成されたハイパーバイザ、又は、別の形式のプログラムであり得る。インスタンス306の各々は、アプリケーションの全て又は一部を実行するように構成され得る。さらに、場合によっては、インスタンス306は、仮想デスクトップ環境へのアクセスを提供するように構成され得る。
【0053】
本明細書で開示する実施形態を主として仮想マシンインスタンスという文脈において説明するが、他の形式のインスタンスが本明細書で開示する概念及び技術で利用することができることを認識されたい。例えば、本明細書で開示する技術は、ストレージリソースのインスタンス、データ通信リソースのインスタンス、及び他の形式のリソースと共に利用され得る。本明細書で開示する実施形態は、また、仮想マシンインスタンスを利用することなく、コンピュータシステム上で直接にアプリケーションの全て又は一部を実行することがあり得る。
【0054】
図3に示すデータセンタ102は、また、場合によっては、データセンタコンピュータ類302及び/又はインスタンス306を含むデータセンタ102の動作を管理するソフトウェア又はハードウェアコンポーネントを実行することができる管理コンピュータ304を含む。特に、管理コンピュータ304は、管理コンポーネント310を実行することがあり得る。場合によっては、PESプラットフォーム120のユーザ(例えば、管理者)は、データセンタ102及び顧客により購入されるインスタンス206の動作の様々な様相を構成するために管理コンポーネント310にアクセスするためにユーザコンピューティングシステム104を利用することがあり得る。場合によっては、顧客(例えば、企業顧客の管理者)は、データセンタ102の購入又はレンタルされた部分を構成するために管理コンポーネント310にアクセスし得る。例えば、顧客は、インスタンスを購入してインスタンスの構成に変更を行うか、又は、以下でさらに説明するように、更なるユーザ(例えば、企業顧客の更なる従業員)にデータセンタ102のコンピュータリソースを割り当てる配置ルールを供給し得る。顧客は、また、購入されたインスタンスを需要に応じてどのようにスケーリングするべきかに関する設定を指定することがあり得る。さらに、顧客は、また、管理コンポーネント310にインスタンスを立ち上げる要求を提供することがあり得る。一部の実施形態では、ユーザは、データセンタ102の機能性及び/又は管理に関する知識を有していない場合がある。そのような場合、データセンタ102は、例えば、管理コンポーネント310を使用して、ユーザによる使用のためにデータセンタ102の計算リソースを自動的に構成し得る。
【0055】
管理コンピュータ304は、PESプラットフォーム108のユーザ(例えば、管理者)によって定義されたルールに基づいてインスタンス306をスケーリングすることができる自動スケーリングコンポーネント312をさらに含み得る。一実施形態では、例えば、自動スケーリングコンポーネント312は、ユーザが、いつ新しいインスタンスをインスタンス化するべきか判定する際に使用されるスケールアップルール、及び、いつ既存のインスタンスが終了させるべきか判定する際に使用されるスケールダウンルールを指定することを可能にする。一部の実施形態では、スケールアップ及びスケールダウンルールは、少し例を挙げれば、データセンタ102における利用、サービス保証の品質、時刻、及び/又は、データセンタ102へのアクセスが提供される顧客に基づき得る。
【0056】
場合によっては、自動スケーリングコンポーネント312は、単一の管理コンピュータ304で、又は、データセンタ102及び/又はPESプラットフォーム120内の複数のコンピュータ全体にわたって並行して実行され得る。さらに、自動スケーリングコンポーネント312は、PESプラットフォーム120において異なるデータセンタ302又は他のコンピューティングデバイス上で実行されるいくつかのサブコンポーネントから成り得る。自動スケーリングコンポーネント312は、ソフトウェア、ハードウェア、又は、2つの任意の組合せとして実行され得る。場合によっては、自動スケーリングコンポーネント312は、例えば、内部管理ネットワークでPESプラットフォーム120において利用可能な計算リソースをモニタすることを容易にし得る。あるいは又はさらに、利用可能な計算リソースは、データセンタリソース割り当てシステム330によってモニタされ得る。
【0057】
管理コンピュータ304は、また、計算リソースの新しいインスタンス306の配置を補助するために配置コンポーネント314を含み得る。配置コンポーネント314は、新しいインスタンス306がどのように構成されるべきか記述するデータを含む構成をユーザ又はシステムから受信し得る。例えば、新しいインスタンス306Aが仮想デスクトップ向けであると仮定すると、この構成は、新しいインスタンス306Aと共にインストールされるべきか、又は、インスタンス306Aの仮想デスクトップによってアクセス可能であるべき1つ以上のアプリケーションを指定することがあり得る。
【0058】
さらに、配置コンポーネント314は、新しいインスタンス306を構成する、実行されるべきスクリプト及び/又は他の形式のコードを提供するか、アプリケーションキャッシュをどのように準備するべきか指定するキャッシュウォーミングロジック、及び、インスタンス306作成を容易にすることができる他の形式の情報を提供し得る。場合によっては、構成、キャッシュウォーミングロジック、及び他の情報は、管理コンポーネント310を利用するユーザによって、又は、この情報を配置コンポーネント314に直接に提供することによって指定され得る。他のメカニズムは、また、配置コンポーネント314の動作を構成するために利用されることがあり得る。
【0059】
一部の実施形態では、データセンタ102はデータセンタリソース割り当てシステム330を含み、データセンタリソース割り当てシステム330は、計算リソースへのアクセスをユーザに提供するためにデータセンタコンピュータ302を選択することを容易にすることができる任意のシステムを含み得る。データセンタリソース割り当てシステム330は、データセンタコンピュータ302への負荷、データセンタコンピュータ302で利用可能なリソース、要求される形式の計算リソース、要求側ユーザに関連したメタデータなどを含むいくつかの要素に基づいてデータセンタコンピュータ302を選択し得る。場合によっては、データセンタリソース割り当てシステム330は、ユーザ及び/又はユーザが関連づけられるエンティティに関連した管理者によって提供されたインスタンス又は計算リソース配置ルールに基づいてデータセンタを選択し得る。これらの計算リソース配置ルールとしては、ユーザが計算リソースにアクセスすることを可能にするためにどこにインスタンス306を設置するべきか判定するために使用することができる任意の要素を挙げることができる。計算リソース配置ルール及びデータセンタコンピュータの選択を
図8及び
図9に関して以下で先に詳細に論じる。
【0060】
計算リソース配置ルール及び/又は属性、又は、データセンタ102に関連したメタデータは、データセンタリポジトリ332にて記憶され得る。属性、又は、データセンタ102に関連した、メタデータは、データセンタに関連づけることができる任意の情報を含むことができる。例えば、メタデータとしては、データセンタ102にて利用可能である物理リソースに関する情報、データセンタ102にて利用可能であるソフトウェアリソース、データセンタ102の場所、データセンタ102にアクセスする権限が与えられたユーザ及び/又はエンティティのアイデンティティ、データセンタ102に関連した待ち時間情報などを挙げることができる。
【0061】
図3に示す例示的なデータセンタ102では、ネットワーク306が、データセンタコンピュータ類302A〜302N、管理コンピュータ304、データセンタリソース割り当てシステム330、及びデータセンタリポジトリ332を相互接続するために利用される。ネットワーク306としては、LANを含め、ネットワーク106に関して先述した任意の形式のネットワークを挙げることができる。さらに、ネットワーク306は、また、
図1A及び
図1Bに例示するネットワーク106に接続され得る。
図1A、
図1B、及び
図3に例示するネットワークトポロジは、大幅に簡素化したものであり、より多くのネットワーク及びネットワーキング装置が、本明細書で開示する様々なコンピューティングシステムを相互接続するために利用され得ることを認識されたい。データセンタ類102A〜102Nの各々間、各データセンタ102内のデータセンタコンピュータ類302A〜302Nの各々間、及び、PESプラットフォーム120の各顧客により購入又はレンタルされるインスタンス306間の負荷をバランス調整する適切な負荷バランス調整装置、又は、ソフトウェアモジュールが、また、利用されることがあり得る。
【0062】
図3で説明するデータセンタ102は、単に例示的であり、他の実行例が利用されることがあり得ることを認識されたい。特に、管理コンポーネント310、自動スケーリングコンポーネント312及び配置コンポーネント314によって実行されると本明細書で説明する機能性は、互いによって実行されることがあり得るか、他のコンポーネントによって実行されることがあり得るか、又は、上記又は他のコンポーネントの組合せによって実行されることがあり得る。さらに、データセンタリソース割り当てシステム330によって実行されると説明する機能性は、管理コンピュータ304の1つ以上のコンポーネントによって実行されるか、また、その逆でもあり得る。さらに、場合によっては、データセンタリソース割り当てシステム330は、管理コンピュータ304の一部として含められ得るか、又は、逆もあり得る。さらに、データセンタ102の様々なコンポーネントがソフトウェア、ハードウェア、又は、ソフトウェア及びハードウェアの組合せで実行され得ることを認識されたい。
【0063】
V.例示的なリソース割り当てシステム
図4Aは、一部の実施形態では、プログラム実行サービス環境100の一部として含めることができる対応されたコンピューティング環境リソース割り当てシステム140の実施例を例示する。先述したように、対応するコンピューティング環境リソース割り当てシステム140は、対応するコンピューティング環境114からのデータセンタ102の選択を容易にする任意のシステムを含むことができる。対応するコンピューティング環境リソース割り当てシステム140は、データセンタ102を識別するのを助けるために使用することができるいくつかのサブシステムを含むことができる。これらのサブシステムとしては、データセンタコンピュータ容量識別モジュール402、インスタンス利用モジュール404、待ち時間計算モジュール406、及び、アプリケーションリソース識別モジュール408を挙げることができる。
【0064】
データセンタコンピュータ容量識別モジュール402を使用して、対応するコンピューティング環境リソース割り当てシステム140は、各データセンタ102のデータセンタコンピュータ類302の容量に関係する容量情報を識別することができる。容量とは、プロセッサ、メモリ及びストレージリソースなどデータセンタコンピュータ類302に関連した物理リソース、又は、アプリケーション、又は、仮想マシン容量などソフトウェアリソースを指すことができる。さらに、データセンタコンピュータ容量識別モジュール402によって判定される情報としては、データセンタコンピュータ類302の容量に関連した任意の情報を挙げることができる。例えば、データセンタ容量情報としては、データセンタコンピュータ類302、又は、データセンタ102によってサポートされた全容量、データセンタ102にて使用される及び/又は利用可能な容量、データセンタ102にて利用可能であるデータセンタコンピュータ類302の形式などを挙げることができる。
【0065】
一部の実施形態では、対応するコンピューティング環境リソース割り当てシステム140は、データセンタリソース割り当てシステム330にアクセスすることによってデータセンタコンピュータ類302の容量情報を識別することができる。あるいは又はさらに、対応するコンピューティング環境リソース割り当てシステム140は、データセンタ類102の容量情報を判定するために共通のリポジトリ112にアクセスし得る。
【0066】
インスタンス利用モジュール404は、データセンタ102にて利用される及び/又は利用可能なインスタンス302の量を識別することができる。場合によっては、データセンタ102によってサポートされ得るインスタンス302の数は無制限である。他の場合において、データセンタ102によってサポートされ得るインスタンス302の数は、利用可能な計算リソース(例えば、データセンタコンピュータ類302のプロセッサ又はメモリ)及び/又はデータセンタコンピュータ類302の管理者設定に基づく。データセンタコンピュータ容量識別モジュールと同様に、場合によっては、インスタンス利用モジュール404は、データセンタ102でのインスタンス306の利用を判定するためにデータセンタ102のデータセンタリソース割り当てシステム330及び共通のリポジトリ112の1つ以上にアクセスし得る。一部の実施形態では、インスタンス利用モジュール404は、データセンタコンピュータ容量識別モジュール402の一部として含められ得る。
【0067】
アプリケーションリソース識別モジュール408は、データセンタリソース割り当てシステム330及び/又は共通のリポジトリ112にアクセスすることによって、データセンタ102にて利用可能であるアプリケーション又はサービス画像を識別することができる。一部の実施形態では、特定のアプリケーションが、データセンタ類102のサブセットから制限され得る。例えば、アプリケーションプロバイダは、例えば、経費上の理由から、又は、アプリケーションが輸出法に違反しないようにするために、アプリケーションへのアクセスを提供することができるデータセンタ類102を制限することを望む場合がある。場合によっては、データセンタ102が、アプリケーションについて限られた数のライセンスにアクセスし得る。そのような場合、アプリケーションリソース識別モジュール408は、ライセンスがアプリケーションに利用可能か否かを識別することができる。一部の実施形態では、アプリケーションリソース識別モジュール408は、データセンタ容量識別モジュール402及び/又はインスタンス利用モジュール404の一部として含められ得る。
【0068】
特定の場合、データセンタ102と通信する際にできるだけ小さい待ち時間を有することが重要である。重要である。待ち時間計算モジュール406は、データセンタ102とユーザコンピューティングシステム104との間の予想待ち時間を計算することができ、その結果、最小の待ち時間のデータセンタ選択が最適化される。データセンタ102を選択して予想待ち時間を計算するプロセスを
図6及び
図7に関して以下でさらに説明する。
【0069】
VI.例示的なデータセンタリソース割り当てシステム
図4Bは、一部の実施形態では、データセンタ102の一部として含めることができるデータセンタリソース割り当てシステム330の実施例を例示する。一部の実例では、各データセンタ102は、PESプラットフォーム120の対応するコンピューティング環境リソース割り当てシステム140と通信することができる独自のデータセンタリソース割り当てシステム330を含み得る。
【0070】
図4Bを
図4Aと比較するとわかるように、データセンタリソース割り当てシステム330は、対応するコンピューティング環境リソース割り当てシステム140と類似のシステムを含むことができる。一部の実施形態では、対応するコンピューティング環境リソース割り当てシステム140のシステムは、PESプラットフォーム120内のリソースの利用可能性を識別することを容易にし得、一方、データセンタリソース割り当てシステム330は、データセンタリソース割り当てシステム330を含む特定のデータセンタ102内のリソースの利用可能性を識別することを容易にし得る。
【0071】
一部の実例では、データセンタリソース割り当てシステム330は、データセンタコンピュータ容量識別モジュール452と、インスタンス利用モジュール454と、待ち時間計算モジュール456と、アプリケーションリソース識別モジュール458とを含むことができる。場合によっては、データセンタリソース割り当てシステム330のシステムは、対応するコンピューティング環境リソース割り当てシステム140による判定及び/又は計算を容易にするために、情報を対応するコンピューティング環境リソース割り当てシステム140の対応するシステムに提供し得る。
【0072】
したがって、例えば、データセンタコンピュータ容量識別モジュール452は、データセンタ102のデータセンタコンピュータ類302の容量情報を、対応するコンピューティング環境リソース割り当てシステム140のデータセンタコンピュータ容量識別モジュール402に提供し得る。同様に、インスタンス利用モジュール454は、データセンタ102のインスタンス306の利用及び/又は利用可能性に関する情報を対応するコンピューティング環境リソース割り当てシステム140のインスタンス利用モジュール404に提供し得る。さらに、アプリケーションリソース識別モジュール458は、データセンタ102にて利用可能なアプリケーションに関係する情報をアプリケーションリソース識別モジュール408に提供することができる。
【0073】
上述のシステムに加えて、データセンタリソース割り当てシステム330は、また、待ち時間計算モジュール456を含むことができる。待ち時間計算モジュール456は、ユーザコンピューティングシステム104との接続の予想待ち時間を計算する待ち時間計算モジュール406を容易にする情報を識別することができる。例えば、待ち時間計算モジュール456は、地理的地域122Bにおけるユーザコンピューティングシステム104との接続について履歴待ち時間情報を提供することができる。
【0074】
一部の実施形態では、データセンタリソース割り当てシステム330の一部のサブシステムは、組合せ及び/又は随意的であり得る。例えば、場合によっては、データセンタリソース割り当てシステム330は、待ち時間計算モジュール456を含まない場合がある。第2の実施例として、データセンタコンピュータ容量識別モジュール452及びインスタンス利用モジュール454は組み合わされ得る。
【0075】
VII.例示的なデスクトップインスタンス
図5は、一部の実施形態では、データセンタ102のデータセンタコンピュータ302によって対応することができるインスタンス500の実施例を例示する。例えば、インスタンス500は、ユーザに、データセンタコンピュータ302のインスタンスマネージャ308によってデータセンタコンピュータ302で作成された仮想デスクトップへのアクセスを提供するために作成することができるインスタンス306の実施例であり得る。場合によっては、インスタンス500は、ユーザによる要求に応答して配置コンポーネント314によって作成されるか、又は、作成させられ得る。
【0076】
一般に、インスタンス500は、ユーザに仮想デスクトップなど、計算リソース又は計算ノードへのアクセスを提供するためにインスタンス化される仮想マシンを含む。しかしながら、場合によっては、インスタンス500は、仮想マシンの使用なしでデータセンタコンピュータ302で作成され得る。
【0077】
図5に例示する実施例では、インスタンス500は、デスクトップ環境502を含む。デスクトップ環境502としては、仮想デスクトップを表す任意の形式の環境を挙げることができる。例えば、該デスクトップ環境は、PESプラットフォーム120により記憶及び/又は対応されるファイル及び/又はアプリケーションと相互作用するインターフェースを含むことができる。場合によっては、デスクトップ環境502は、別のインスタンス306によって含まれるか又は対応されるデータ及び/又はアプリケーションにアクセスするショートカットを含むことができる。さらに、場合によっては、デスクトップ環境502は、デスクトップの他にファイル及びアプリケーションにアクセスする更なる又は代替的なインターフェースを提供することができる。例えば、デスクトップ環境502は、ファイルマネージャを含むことができるか、又は、ファイルマネージャとすることができる。場合によっては、根底にあるオペレーティングシステム及び/又はハードウェアに関係なく、デスクトップ環境502は、特定の見た目と感じを提示し得る。例えば、デスクトップ環境502は、ウィンドウズデスクトップ、Linuxデスクトップ、又は、iOSデスクトップをエミュレートするように構成することができる。他の場合、インスタンス500は、ユーザによって選択された仮想マシン計算リソースの一部であり得る。そのような場合、デスクトップ環境502は、仮想マシン計算リソースの選択されたオペレーティングシステム(例えば、ウィンドウズ、Linuxなど)のデスクトップ環境であり得る。
【0078】
デスクトップ環境502は、アプリケーションアクセスモジュール504と、アプリケーション市場インターフェース506と、ファイルアクセスモジュール508とを含むことができる。ユーザがインスタンス500を介して(例えば、デスクトップ環境502上のショートカットから)アプリケーションにアクセスしようとするとき、アプリケーションアクセスモジュール504は、ユーザにアプリケーションへのアクセスを提供することができる。場合によっては、アプリケーションアクセスモジュール504は、ユーザによって所望されたアプリケーションを含む別のインスタンスへのアクセスを取得することができる。一部の実施形態では、アプリケーションへのアクセスを取得することは、アプリケーションアクセスモジュール504が、ユーザはアプリケーションにアクセスする権限が与えられているか否かを判断することを含み得、該権限が与えられていない場合、アプリケーションアクセスモジュール504は、アプリケーション市場インターフェース506を使用して、ユーザに、アプリケーション市場130からアプリケーションを購入又はレンタルする機会を提供することができる。さらに、ユーザは、アプリケーション市場インターフェース506を使用して、アプリケーション市場130を介して利用可能なアプリケーション、又は、サービス画像を閲覧することができる。
【0079】
ファイルアクセスモジュール508は、ユーザに、インスタンス500と共に含まれていないファイル又はデータへのアクセスを提供することができる。例えば、ユーザがデスクトップ環境502を介してファイルにアクセスしようとする場合、ファイルアクセスモジュール508はファイルを見つけることができ、該ファイルは、別のインスタンス306、又は、記憶サーバなど、別のデータセンタコンピュータ302内に記憶され得る。ファイルアクセスモジュール508は、ファイルを見つけると、ユーザに、デスクトップ環境502を介してファイルへのアクセスを提供することができる。ファイルがユーザによって修正された場合、ファイルアクセスモジュール508は、修正されたファイルに同じ又は異なるコンピューティングデバイス上でユーザがアクセスすることができるようにファイルを同期させることができる。ファイルを同期させるプロセスを
図12及び
図13を参照して以下で説明する。
【0080】
VIII.例示的なデータセンタ選択プロセス
図6は、データセンタ選択プロセス600の実施例を例示する。プロセス600は、少なくともある程度、ユーザ(例えば、顧客又はその従業員)による使用のためにデータセンタを選択することができる任意のシステムによって実行することができる。例えば、プロセス600は、少し例を挙げれば、全部、一部を問わず、PESプラットフォーム120、対応するコンピューティング環境リソース割り当てシステム140、データセンタコンピュータ容量識別モジュール402、インスタンス利用モジュール404、待ち時間計算モジュール406、アプリケーションリソース識別モジュール408及びデータセンタリソース割り当てシステム330によって実行することができる。任意の数のシステムが、全部、一部を問わず、プロセス600を実行することができるが、論じる内容を簡素化するために、プロセス600の各部を特定のシステムを参照して説明する。
【0081】
特定の場合、プロセス600は、ユーザのコンピュータシステムとデータセンタとの間の待ち時間の目安に少なくとも部分的に基づいてユーザの最適データセンタを選択する。有利なことに、特定の実施形態では、プロセス600は、自動的に及び/又はユーザの知識なしに実行することができる。他の実施形態では、ユーザが、プロセス600を開始し得る。
【0082】
プロセス600は、ブロック602にて始まり例えば、PESプラットフォーム120は、計算リソースへのアクセスをユーザコンピューティングシステム104(例えば、ユーザコンピューティングシステム104A)から取得する要求を受信する。このコンピューティング要求は、ユーザコマンドに応答して、又は、ユーザコンピューティングシステム104に関連したアプリケーション、又は、システムから自動的に受信され得る。さらに、要求される計算リソースとしては、PESプラットフォーム120によって提供され得る任意の形式のリソースを挙げることができる。例えば、計算リソースは、アプリケーション、仮想デスクトップ環境、データセンタにて又はユーザコンピューティングシステム104にて対応されるアプリケーション用計算リソース、ファイルストレージ空間、又は、PESプラットフォーム120によって提供され得る任意の他のリソースとすることができよう。
【0083】
ブロック604にて、対応するコンピューティング環境リソース割り当てシステム140は、ユーザコンピューティングシステム104の地理的位置を識別する。ユーザコンピューティングシステム104の地理的位置を識別することは、特異性の閾値度内のユーザコンピューティングシステムの104の場所を識別することを含み得る。例えば、ブロック604は、特定のアドレス、郵便番号、町、国、国、又は、ユーザコンピューティングシステム104が位置する任意の他の地理的地域を識別することを含み得る。
【0084】
さらに、対応するコンピューティング環境リソース割り当てシステム140は、ユーザコンピューティングシステム104の地理的位置を識別又は確認する1つ以上のメカニズムを使用することができる。例えば、リソース割り当てシステム140は、場所を識別するためにユーザコンピューティングシステム104のインターネットプロトコル(IP)アドレスを使用し得る。別の実施例として、対応するコンピューティング環境リソース割り当てシステム140は、ユーザコンピューティングシステムの104の場所を識別するために全地球測位システム(GPS)データを使用し得る。さらに別の実施例では、対応するコンピューティング環境リソース割り当てシステム140は、その場所を確立するためにユーザコンピューティングシステム104のユーザに問い合わせし得る。
【0085】
ブロック606にて、対応するコンピューティング環境リソース割り当てシステム140は、ユーザコンピューティングデバイス104の半径内のブロック602にて要求された計算リソースを含む1組のデータセンタ類102を判定する。対応するコンピューティング環境リソース割り当てシステム140は、要求された計算リソースを含むその1組のデータセンタ類102を識別することを容易にするために、データセンタコンピュータ容量識別モジュール402、インスタンス利用モジュール404、及びアプリケーションリソース識別モジュール408の1つ以上を使用し得る。さらに、場合によっては、対応するコンピューティング環境リソース割り当てシステム140は、要求された計算リソースを含む1組のデータセンタ類102を判定することを容易にするために、各データセンタ102のデータセンタリソース割り当てシステム330にアクセスし得る。さらに、場合によっては、対応するコンピューティング環境リソース割り当てシステム140は、その1組のデータセンタ類102をユーザがアクセスする権限が与えられているデータセンタから判定する。データセンタ102が要求されたリソースを含むか否かを判定することは、また、例えば、ユーザ、又は、ユーザを雇用するエンティティに関連したユーザプロファイル、又は、1組のデスクトップ配置ルールに基づいて、データセンタ102が更なるリソースを含むか否かを判定することを含み得、該1組のデスクトップ配置ルールを以下でさらに詳細に説明する。例えば、対応するコンピューティング環境リソース割り当てシステム140は、ユーザに関連した使用プロファイルがユーザがストレージリソースの使用閾値よりも多く利用することを示す場合には各データセンタ102が少なくともデータストレージ利用可能性の利用可能性閾値を含むか否かを判定し得る。
【0086】
場合によっては、半径は、予め定義され得るか、又は、ユーザによって設定され得る。他の場合において、ユーザコンピューティングシステム104に対して場所に関係なく計算リソースを含む全てのデータセンタが識別され得る。一部の実施形態では、ブロック602にて受信された要求は、複数の計算リソースを識別し得る。そのような場合、対応するコンピューティング環境リソース割り当てシステム140は、所望の計算リソースの全てを含む組のデータセンタ類102を識別する。
【0087】
しかしながら、データセンタ類102のどれも所望の計算リソースの全てを含むというわけではない場合、対応するコンピューティング環境リソース割り当てシステム140は、最大数の要求された計算リソースを含む組のデータセンタ類102を識別し得る。場合によっては、ユーザは、その他より重要であると特定の要求の計算リソースを識別し得る。そのような場合、対応するコンピューティング環境リソース割り当てシステム140は、含むのが要求された計算リソースのいくつかであるが全てではないデータセンタ類102を識別するときに、より重要な計算リソースをより高く重み付けし得る。
【0088】
半径という用語が使用されるが、リソース割り当てシステム140により調べられる地理的地域は、必ずしも円形、又は、ユーザコンピューティングデバイス104の中心であるわけではない。その代わりに、場合によっては、検索される地理的地域は、任意の他の幾何学的形状であり得るか、又は、州又は国など、地理的領域の地政学的な内訳に基づき得る。
【0089】
一部の実施形態では、ブロック606にて識別されるその1組のデータセンタ類102は、ユーザ、又は、ユーザに関連したメタデータの任意の属性に基づいてフィルタリングされ得る。例えば、データセンタの選択は、リソースへのアクセスを要求するユーザの所属に基づいてフィルタリングされ得る。例えば、ユーザがエンティティの従業員であると仮定して、エンティティが3つのデータセンタへのアクセスを購入した場合、たとえ更なるデータセンタがユーザによって所望された計算リソースを含む半径内に存在するとしても、ブロック606にて識別されるその1組のデータセンタ類102は、3つのデータセンタに制限されることになる。別の実施例として、識別されるその1組のデータセンタ類102は、ユーザによって購入されたサービス品質に基づいてフィルタリングされ得る。したがって、ユーザが休止時間なしでデータセンタ102の計算リソースへの恒常的なアクセスを必要とする、プラチナレベルのアクセスを購入し得る。そのような場合、ブロック606にて識別されるデータセンタ類102は、青銅レベルのアクセスで満足するユーザに使用されたデータセンタ102と比較すると、より高い信頼性率及びより低い予約率を有するデータセンタ類102を識別するようにフィルタリングされ得る。
【0090】
一部の実施形態では、データセンタ類102がブロック606にて識別されない場合、対応するコンピューティング環境リソース割り当てシステム140は、検索する半径を拡張し得る。あるいは又はさらに、対応するコンピューティング環境リソース割り当てシステム140は、計算リソースを、リソースを含むデータセンタからブロック606にて検索された半径内のデータセンタにコピーさせ得る。他の場合において、検索された半径内のデータセンタ類102が所望の計算リソースを含まない場合、ユーザは、計算リソースへのアクセスを拒絶され得る。
【0091】
一部の実施形態では、ブロック606は、随意的であり得る。例えば、場合によっては、各データセンタ102は、同じリソースを含み得、及び/又は、指定の半径内に位置し得る。第2の実施例として、プロセス600は、全てのデータセンタ類102について実行され得る。
【0092】
ブロック608にて、待ち時間計算モジュール406は、ブロック606にて識別された1組のデータセンタから、各データセンタ102の待ち時間因子を計算する。待ち時間因子は、データセンタ102とユーザコンピューティングシステム104との間の通信における予想待ち時間を表す。さらに、待ち時間因子は、少し例を挙げれば、データセンタ102とユーザコンピューティングシステム104との間の距離、1つ以上の待ち時間試験の結果、及び履歴待ち時間情報を含む様々な要因に基づくことができる。一部の実施形態では、待ち時間因子は、ユーザコンピュータシステム104及び/又はデータセンタ102に関連した特定のシステムに基づいて計算される。例えば、待ち時間因子はデータセンタ102での出現コンピューティングシステム(例えば、ネットワーク106にデータセンタを接続するネットワーク306でのルータ又はゲートウェイ)とユーザコンピューティングシステム104との間の通信に基づき得る。第2の実施例として、待ち時間因子は、ユーザコンピューティングシステム104と通信する地理的地域122内に位置するルータとデータセンタ102でのシステムとの間の通信に基づき得る。場合によっては、データセンタ類102の少なくとも一部の待ち時間因子は、並行して計算され得、その結果、各データセンタ102の待ち時間因子が順番に計算される場合と比較してプロセス600の実行が速められる。待ち時間因子の計算を
図7に関して以下でさらに詳細に論じる。
【0093】
対応するコンピューティング環境リソース割り当てシステム140は、ブロック610にて最低待ち時間因子でデータセンタ102を識別する。2つ以上のデータセンタ102が最低待ち時間因子を共有する場合、対応するコンピューティング環境リソース割り当てシステム140は、データセンタ102を選択するために決着をつける因子を使用することができる。決着をつける因子としては、別のデータセンタよりも優る1つのデータセンタを選択するために使用され得る任意の特性を挙げることができる。例えば、決着をつける因子は、各データセンタ102での割当てを解除されたリソース、ユーザコンピューティングシステム104までの各データセンタ102の距離、各データセンタ102にアクセスできる更なるユーザなどの各データセンタ102の利用率の1つ以上に基づくことができる。あるいは、対応するコンピューティング環境リソース割り当てシステム140は、最低待ち時間速度を共有するその1組のデータセンタ類102からランダムにてデータセンタ102を選択し得る。別の代替案として、対応するコンピューティング環境リソース割り当てシステム140は、処理される各々の各要求について特定の順番で異なるデータセンタ102を選択する総当りプロセスを使用し得る。
【0094】
一部の実施形態では、ブロック610にて選択されるデータセンタ102は、最低待ち時間因子を有するデータセンタではなく、1つ以上の更なる要件を満たす最低待ち時間因子を有するデータセンタ102であり得る。例えば、冗長のために、例えば、各データセンタ102は利用可能なプロセッサリソースの最高90%を割り当てるように構成されると想定しよう。データセンタ102aが利用可能なプロセッサリソースの90%を既に割り当てていた場合、データセンタ102aは、たとえ特定の要求側ユーザコンピューティングシステム104の最低待ち時間因子に関連しているとしても選択される資格はあり得ない。
【0095】
ブロック612にて、対応するコンピューティング環境114は、ユーザコンピューティングシステム104のユーザに、識別されたデータセンタ102の計算リソースへのアクセスを許可する。一部の実施形態では、データセンタ102へのユーザアクセスを許可することは、ユーザの1つ以上のアカウントをデータセンタ102と関連づけることを含むことができる。あるいは又はさらに、データセンタ102へのユーザアクセスを許可することは、ユーザコンピューティングシステム104をデータセンタ102と関連づけることを含むことができる。さらに、場合によっては、ユーザの各ユーザコンピューティングシステム104は、例えば、ユーザの利用可能なデータ及びリソースにおける一貫性を維持するためにデータセンタ102に関連づけられ得る。さらに、場合によっては、データセンタ102へのアクセスを許可することは、ユーザ又は関連のユーザコンピューティングシステム104がPESプラットフォーム120のデータ又は計算リソースにアクセスしようとするたびにデータセンタ102に自動的に接続することを含み得る。
【0096】
一部の実施形態では、対応するコンピューティング環境リソース割り当てシステム140は、プロセス600に関連した1つ以上の動作を実行する順番を決定するために、ユーザコンピューティングシステム104の場所を使用し得る。例えば、待ち時間計算がブロック608にて実行される順番は、ユーザコンピューティングシステム104の場所に基づき得る。
【0097】
IX.例示的な待ち時間因子計算プロセス
図7は、待ち時間因子計算プロセス700の実施例を例示する。プロセス700は、少なくともある程度、データセンタ102の待ち時間因子を計算することができる任意のシステムによって実行することができる。待ち時間因子としては、ユーザコンピューティングシステム104とデータセンタ102との間で通信する待ち時間の予想レベルの目安を挙げることができる。さらに、プロセス700は、プロセス600の一部として、例えば、ブロック608の一部として実行され得る。プロセス700は、全部、一部を問わず、例えば、少し例を挙げれば、PESプラットフォーム120、対応するコンピューティング環境リソース割り当てシステム140、待ち時間計算モジュール406、データセンタリソース割り当てシステム330、及び待ち時間計算モジュール456によって実行することができる。任意の数のシステムが、全部、一部を問わず、プロセス700を実行することができるが、論じる内容を簡素化するために、プロセス700の部分を特定のシステムを特定のシステムを参照して説明する。
【0098】
プロセス700は、ブロック702にて始まり、例えば、待ち時間計算モジュール406は、ユーザコンピューティングシステム104の地理的位置を受信する。地理的位置は、対応するコンピューティング環境リソース割り当てシステム140、又は、ユーザコンピューティングシステム104の地理的位置を判定することができる任意のその他のシステムから受信され得る。あるいは、待ち時間計算モジュール406は、例えば、ユーザコンピューティングシステム104のIPアドレスに基づいて地理的位置自体を判定し得る。一部の実施形態では、ブロック702は、ブロック604に関して先に説明した実施形態の一部又は全部を含むことができる。
【0099】
ブロック704にて、待ち時間計算モジュール406は、データセンタ102の識別を受信する。待ち時間計算モジュール406は、ブロック706にてデータセンタ102の地理的位置を判定する。データセンタ102の地理的位置は、共通のリポジトリ112にアクセスすることによって判定され得る。あるいは、各データセンタ102の地理的位置は、待ち時間計算モジュール406にて記憶され得る。別の代替案として、待ち時間計算モジュール406は、地理的位置を判定するためにデータセンタ102に問い合わせし得る。
【0100】
ユーザコンピューティングシステム102及びデータセンタ102の地理的位置に基づいて、待ち時間計算モジュール406は、ブロック708にてユーザコンピューティングシステム104とデータセンタ102との間の距離を計算することができる。場合によっては、この距離は、少なくともある程度、ユーザコンピューティングシステム104とデータセンタ102との間の物理的距離に基づき得る。あるいは又はさらに、この距離は、少なくともある程度、データセンタ102とユーザコンピューティングシステム104との間の1つ以上のネットワーク通信路の長さに基づき得る。
【0101】
ブロック710にて、待ち時間計算モジュール406は、ブロック708にて計算された距離に基づいて第1の待ち時間番号L1を判定し得る。一部の実施形態では、第1の待ち時間番号は、さらに、少なくともある程度、ユーザコンピューティングシステム104とデータセンタ102の間で利用される接続及び/又はネットワークハードウェアの形式に基づき得る。例えば、データセンタ102とユーザコンピューティングシステム104との間のルートの半分が光ファイバを含む場合、銅線がルートのその部分に対応した場合と異なる第1の待ち時間番号が判定され得る。
【0102】
待ち時間計算モジュール406は、ブロック712にて第2の待ち時間番号L2を取得するために、1つ以上の待ち時間試験を実行する。待ち時間試験としては、2つのコンピューティングシステム間の待ち時間の推定値を取得するために使用することができる任意の形式のネットワーク又は接続試験を挙げることができる。例えば、待ち時間試験としては、ピング動作、トレースルート動作、トレースルート6動作、トラサート(tracert)動作、トレースパス動作などを挙げることができる。複数の待ち時間試験が実行される実施形態では、ブロック712は、待ち時間試験の結果を統合すること(例えば、平均化、合計することなど)を含むことができる。
【0103】
ブロック714にて、待ち時間計算モジュール406は、データセンタ102とユーザコンピューティングシステム104に最も近いネットワークホップとの間の履歴待ち時間情報を検索する。ネットワークホップとしては、通信パケットをデータセンタ102とユーザコンピューティングシステム104との間で送り及び/又は転送する任意のネットワーク又は通信ハードウェア(例えば、ルータ、又は、ゲートウェイ)を挙げることができる。ユーザコンピューティングシステム104に最も近いネットワークホップは、ユーザコンピューティングシステム104に物理的に最も近いネットワークホップ及び/又はPESプラットフォーム120にユーザコンピューティングシステム104によって送られたときに最初にパケットを受信するネットワークホップを指し得る。一部の実施形態では、ネットワークホップを識別することは、ルックアップテーブルにアクセスし及び/又はネットワークトポロジマップにアクセスしてユーザコンピューティングシステム104に最も近いネットワークホップを判定することを含むことができる。ルックアップテーブル及び/又はネッワークマップは、ネットワーク106内に含まれた共通のリポジトリ112又は公的にアクセス可能なリポジトリに記憶され得る。
【0104】
履歴待ち時間情報を使用して、待ち時間計算モジュール406は、ブロック716にて第3の待ち時間番号L3を生成する。第3の待ち時間番号は、履歴待ち時間情報(例えば、履歴待ち時間情報の平均又は時間重み付き平均など)から導出され得る。ブロック718にて、待ち時間計算モジュール406は、第1の待ち時間番号、第2の待ち時間番号及び第3の待ち時間番号に基づいてデータセンタ102について待ち時間因子Dを計算する。さらに、場合によっては、各待ち時間番号は、例えば、経験的に判定された重み付け因子(例えば、A1、A2及びA3)を使用して重み付けされ得る。したがって、例えば、待ち時間因子は、以下の式1を使用して計算され得る。
D=A1*L1+A2*L2+A3*L3 (1)
【0105】
式1を用いて計算した待ち時間因子が第1、第2及び第3の待ち時間番号の重み付け合計であるが、待ち時間因子を待ち時間番号の他の数学的な組合せに基づかせることが可能である。さらに、場合によっては、待ち時間因子は、待ち時間番号、又は、その組合せの1つ以上により索引が付される待ち時間因子の表にアクセスすることによって判定され得る。
【0106】
一部の実施形態では、待ち時間番号の1つ以上は、待ち時間因子を計算することから除外され得る。そのような実例では、
図7の関連のブロックは、随意的であり得る。例えば、待ち時間因子は、履歴待ち時間情報に関係する第3の待ち時間番号なしで計算され得る。そのような場合、ブロック714及び716は、随意的であり得る。
【0107】
場合によっては、待ち時間番号又は因子の1つ以上は、データセンタ102とユーザコンピューティングシステム104との間の通信チャネルの待ち時間に少なくともある程度相関する。したがって、一部の実施形態では、プロセス7及びプロセス6は、ユーザコンピューティングシステム104と他のデータセンタ類102との間の通信チャネルと比較して最小の待ち時間を有すると予想されるデータセンタ102を選択するために使用することができる。あるいは又はさらに、プロセス7及びプロセス6は、ユーザコンピューティングデバイス104と通信するときに閾値レベルを下回る待ち時間を有すると予想されるデータセンタ102を選択するために使用することができる。
【0108】
X.例示的なデスクトップ配置構成プロセス
図8は、デスクトップ配置構成プロセス800の実施例を例示する。プロセス800は、少なくともある程度、インスタンス(例えば、仮想デスクトップ、アプリケーション、など)の割り当ての1組のルール(例えば、デスクトップ配置ルール)に基づいてPESプラットフォーム120及び/又はその1つ以上のデータセンタ類102を構成することができる任意のシステムによって実行することができる。例えば、プロセス800は、全部、一部を問わず、少し例を挙げれば、PESプラットフォーム120、対応するコンピューティング環境114、対応するコンピューティング環境リソース割り当てシステム140、データセンタリソース割り当てシステム330、管理コンピュータ304、管理コンポーネント310及び配置コンポーネント314によって実行することができる。任意の数のシステムが、全部、一部を問わず、プロセス800を実行することができるが、論じる内容を簡素化するために、プロセス800の部分を特定のシステムを特定のシステムを参照して説明する。
【0109】
図8が仮想デスクトップ及びデスクトップ配置ルールを参照して説明するが、プロセス800は、この点を踏まえて有限ではない。プロセス800は、仮想デスクトップ、アプリケーション、プロセッサ利用、データストレージなどを含む任意の形式の計算リソースを割り当てる方法を判定する任意の形式の計算リソース配置ルールに基づいてデータセンタ類102を構成するために使用することができる。
【0110】
プロセス800は、例えば、対応するコンピューティング環境114が、ユーザ認証情報を例えば、ユーザコンピューティングシステム104を介してユーザから受信するブロック802にて始まる。場合によっては、対応するコンピューティング環境114の特定のデータセンタ102が、認証情報を受信する。全ての場合において必要とされるというわけではないが、典型的には、ユーザは、少なくとも一部の他のユーザと比較すると上位の許可(例えば、管理者又は他のスーパーユーザ)に関連している。
【0111】
ブロック804にて、対応されたコンピュータ環境114は、デスクトップ配置ルールをユーザから受信する。デスクトップ配置ルールは、特定のデータセンタ102、又は、複数のデータセンタに関連付けることができる。例えば、デスクトップ配置ルールは、ユーザがアクセスする権限が与えられている全てのデータセンタ類102に関連付けられ得る。第2の実施例として、デスクトップ配置ルールは、特定のグループ(例えば、エンティティのディベロッパチーム又はマーケティングチーム)のユーザがアクセスする権限が与えられている全てのデータセンタと関連づけられ得る。
【0112】
さらに、デスクトップ配置ルールは、データセンタ102にて仮想デスクトップを配置する任意の形式のルールを含むことができる。例えば、デスクトップ配置ルールは、データセンタ102での任意の特定のコンピューティングシステムがエンティティのユーザ、又は、エンティティの下位グループ又は部署(例えば、経理、研究開発など)のユーザの閾値百分率のみに対応すると指定し得る。場合によっては、デスクトップ配置ルールは、特定の群の構成員が2人としてデータセンタ102の同じコンピュータシステムによって対応されないと指定することができる。さらに、場合によっては、デスクトップ配置ルールは、ユーザのサブセットは、ラック、バックアップバッテリ、電源バス、ラックスイッチ、電源、ルータ、データストレージ、データストレージシステムなどを共有しないコンピュータシステムに割り当てられると指定し得る。有利なことに、特定の実施形態では、特定のコンピューティングシステムから、又は、何らかの形式のリソース(例えば、バックアップバッテリ)を共有する1組のコンピューティングシステムから計算リソースを割り当てられるユーザの百分率を制限することによって、アクセスを失うか、又は、別のコンピューティングシステムに移動される必要があるユーザの数が、コンピューティングシステムがアクセス不能になるか、又は、リソース(例えば、データセンタ102でのルータ)がアクセス不能になった場合に制限され、その結果、計算リソースが失われるときに発生する可能性がある負の結果が低減される。
【0113】
場合によっては、デスクトップ配置ルールは、デスクトップ配置ルールにより支配されるユーザに関連したユーザプロファイルに基づき得る。例えば、デスクトップ配置ルールは、ユーザプロファイルがユーザがいくつかのグラフィクス重視アプリケーションを利用することを示すユーザにはデータセンタ102の一部の他のコンピューティングシステムよりも強力なグラフィックカードを含むデータセンタ102のコンピューティングシステムが割り当てられると指定し得る。第2の実施例として、ユーザプロファイルがユーザが多くの記憶空間を必要とすることを示すユーザには、閾値を超える記憶空間利用可能性を有するデータストレージに関連するか、又は、他のデータストレージの記憶空間利用可能性を上回るデータセンタ102のコンピューティングシステムへアクセスが割り当てられ得る。
【0114】
さらに、場合によっては、デスクトップ配置ルールは、1組のユーザが直接に又は仮想デスクトップを介してアクセスする権限が与えられているアプリケーションを指定するルールを含むことができる。さらに、デスクトップ配置ルールは、ユーザにより提供が求められる仮想デスクトップのデフォルト構成を指定し得る。
【0115】
さらに、上述したように、一部の実施形態では、デスクトップ配置ルールは、デスクトップ又は仮想デスクトップだけではなく、任意の形式の計算リソースに関連づけることができる。
【0116】
ブロック806にて、対応するコンピューティング環境114は、デスクトップ配置ルールに関連したエンティティ(例えば、ユーザを雇用する企業)を識別する。一部の実施形態では、対応するコンピューティング環境114は、ブロック806にてエンティティに関連したユーザの下位グループを識別する。ユーザの下位グループは、例えば、エンティティの組織構造内の部署、又は、特定の場所(例えば、エンティティ英国事務所)に位置する一群のユーザであり得る。一部の実施形態では、ブロック806は、随意的である。例えば、ユーザはユーザの個人利用向けにデスクトップ配置ルールを設定し得る。
【0117】
対応するコンピューティング環境114は、ブロック808にて、ユーザが、ブロック806にて識別されたエンティティのためにデスクトップ配置ルールを設定する権限が与えられていることを確認する。権限のこの判定は、少なくともある程度、ブロック802にて受信されたユーザ認証情報に基づいて行われ得る。さらに、場合によっては、権限の判定は、エンティティでのユーザの部署、役割、又は職位など、ユーザに関連したメタデータに基づいて行われ得る。
【0118】
ブロック810にて、対応するコンピューティング環境114は、ユーザに関連した1つ以上のデータセンタ類102を識別する。あるいは又はさらに、対応するコンピューティング環境114は、デスクトップ配置ルールに基づいて1つ以上のデータセンタ類102を識別し得る。一部の実施形態では、ブロック810は、随意的である。例えば、デスクトップ配置ルールは、対応するコンピューティング環境114の全てのデータセンタ類102についてデスクトップ配置ルールを指定し得る。
【0119】
ブロック812にて、対応するコンピューティング環境114は、デスクトップ配置ルールをブロック810にて識別された1つ以上のデータセンタ類102のエンティティと関連づける。デスクトップ配置ルールを1つ以上のデータセンタ類102のエンティティと関連づけることは、デスクトップ配置ルールをブロック810にて識別された各データセンタ102のデータセンタリポジトリ332にて記憶することを含むことができる。さらに、場合によっては、ブロック812は、デスクトップ配置ルールを管理コンピュータ304に提供することを含むことができる。
【0120】
XI.例示的なデスクトッププロビジョニングプロセス
図9は、デスクトッププロビジョニングプロセス900の実施例を例示する。プロセス900は、少なくともある程度、データセンタ102のコンピューティングシステム(例えば、データセンタコンピュータ302)上でインスタンスを配置することができる任意のシステムによって実行することができる。例えば、プロセス900は、全部、一部を問わず、少し例を挙げれば、PESプラットフォーム120、対応するコンピューティング環境114、データセンタ102、管理コンピュータ304、管理コンポーネント310、及び、配置コンポーネント314によって実行することができる。任意の数のシステムが、全部、一部を問わず、プロセス900を実行することができるが、論じる内容を簡素化するために、プロセス900の部分を特定のシステムを特定のシステムを参照して説明する。
【0121】
図9を仮想デスクトップ及びデスクトップインスタンスを参照して説明するが、プロセス900は、この点を踏まえて有限ではない。プロセス900は、例えば、アプリケーション、ストレージフォルダなどを含む、データセンタ102のコンピューティングシステムにてインスタンス化する任意の形式のインスタンスを配置するために使用することができる。
【0122】
プロセス900は、例えば、管理コンピュータ304が、仮想デスクトップセッションへのアクセスを取得する要求をユーザコンピューティングシステム104から受信するブロック902にて始まる。要求は、ユーザ又はアプリケーションから受信され得る。先述したように、要求は、仮想デスクトップに限定されない。例えば、要求は、アプリケーションのインスタンスへのアクセス用であり得る。
【0123】
ブロック904にて、管理コンポーネント310は、ユーザコンピューティングシステム104に関連したユーザを識別する。管理コンポーネント310は、ブロック902にて要求と共に受信された認証情報に基づいてユーザを識別し得る。あるいは又はさらに、管理コンポーネント310は、ユーザコンピューティングシステム104に関連したIPアドレス又は名前など、ユーザコンピューティングシステム104に関連したメタデータに基づいてユーザを識別し得る。場合によっては、ユーザを識別する代わりに、又は、それに加えて、管理コンポーネント310は、ユーザに関連したエンティティ、部署、又は、他のグループを識別し得る。一部の実施形態では、ブロック904は、随意的である。例えば、デスクトップインスタンスのプロビジョニングは、データセンタ102の各データセンタコンピュータ302の利用の目安、又は、要求側ユーザ又は関連のエンティティの識別を必要としない任意の他の因子などに基づき得る。
【0124】
判断ブロック906にて、配置コンポーネント314は、ユーザに関連したアクティブデスクトップインスタンス306が存在するか否かを判定する。アクティブインスタンス306は、データセンタコンピュータ302で稼動している、つまり、目下実行されているインスタンスを含み得る。さらに、場合によっては、アクティブインスタンス306は、データセンタコンピュータ302にてキャッシュされたインスタンスを含み得る。配置コンポーネント314がユーザに関連したアクティブデスクトップが存在すると判定した場合、配置コンポーネント314は、ブロック908にて、既存のデスクトップインスタンス306に対応するデータセンタコンピュータ302での既存のデスクトップインスタンス306へのアクセスをユーザに提供し得る。
【0125】
一部の実施形態では、判断ブロック906及びブロック908の1つ以上は、随意的であり得る。例えば、要求側ユーザが新しいユーザであるか、又は、ブロック902にて受信された要求が明示的に新しいデスクトップインスタンスを要求する場合、判断ブロック906は随意的であり得る。別の実施例として、既存のデスクトップインスタンス306に対応しているデータセンタコンピュータ302への負荷、又は、該データセンタコンピュータの利用が閾値を超えた(例えば、データセンタコンピュータ302にアクセスする更なるユーザのため)場合、ユーザは既存のデスクトップインスタンスへのアクセスを許可され得ないので、ブロック908は随意的であり得る。あるいは、既存のデスクトップインスタンスは、ブロック908の一部として別のデータセンタコンピュータ302に転送され得、その結果、ユーザは、最初に閾値負荷又は利用を満たす既存のデスクトップインスタンスに対応したデータセンタコンピュータ302にもかかわらず、既存のデスクトップインスタンスへのアクセスを取得することができる。
【0126】
配置コンポーネント314がユーザに関連したアクティブデスクトップが存在しないと判定した場合、管理コンポーネント310は、ブロック910にてユーザに関連したメタデータを識別する。あるいは又はさらに、管理コンポーネントは、ユーザコンピューティングシステム104に関連したメタデータを識別する。一部の実施形態では、管理コンポーネント310は、エンティティでのユーザの役割、職位、部署など、ユーザに関連した情報を取得するためにディレクトリにアクセスすることによってメタデータを識別する。このディレクトリは、ライトウェイトディレクトリアクセスプロトコル(LDAP)、又は、分散型ディレクトリにアクセスして維持する任意の他の既知のアプリケーションプロトコルを使用して実行及び/又はアクセスされ得る。場合によっては、ディレクトリは、データセンタリポジトリ332にて記憶され得る。一部の実施形態では、メタデータは、計算リソースのユーザの使用に関連したユーザプロファイル情報を含み得る。例えば、ユーザプロファイルは、ユーザがグラフィック重視であるいくつかのアプリケーション(例えば、アニメーションプログラム、モデリングプログラムなど)を利用するか否かを示し得る。第2の実施例として、ユーザプロファイルは、ユーザは、そのユーザを雇用するエンティティに属する他のユーザ、又は、データセンタ102の他のユーザと比較して多くのデータを生成して、したがって、他のユーザよりも多くの記憶空間を必要とし得ることを示し得る。
【0127】
ブロック912にて、管理コンポーネント310は、ブロック910にて取得されたメタデータに基づいて、デスクトップ配置ルールを識別する。これらのデスクトップ配置ルールは、データセンタリポジトリ332からアクセスされ得る。例えば、ユーザが仲介エンティティにて貿易部署に属すると識別された場合、管理コンポーネント310は、仲介エンティティの貿易部署に関連したデスクトップ配置ルールを検索し得る。
【0128】
配置コンポーネント314は、ブロック914にてデスクトップ配置ルールに基づいてデータセンタコンピュータ302を識別する。
図8に関して先に説明したように、デスクトップ配置ルールは、インスタンス(例えば、仮想デスクトップインスタンス)に対応し及び/又は計算リソースをユーザに提供するためにデータセンタ102のデータセンタコンピュータ302を選択する任意のルールを含み得る。例えば、デスクトップ配置ルールは、データセンタコンピュータはエンティティの部署から二人以上の従業員に対応しないと指定し得る。第2の実施例として、デスクトップ配置ルールは、特定の部署又は特定のエンティティが同じデータセンタコンピュータ302へのアクセスを共有しないと指定し得る。一部の実施形態では、配置コンポーネント314は、データセンタコンピュータ302を識別することを容易にするために、ユーザの使用プロファイルを使用することができる。
【0129】
一部の実施形態では、配置コンポーネント314は、データセンタコンピュータ302を識別することを容易にするためにデータセンタリソース割り当てシステム330を使用し得る。例えば、配置コンポーネント314は、データセンタコンピュータ容量識別モジュール452を使用して、データセンタコンピュータ302の利用可能な容量を識別し得る。第2の実施例として、配置コンポーネント314は、インスタンス利用モジュール454を使用してデータセンタコンピュータ302での更なるインスタンスの利用可能性を判定し得る。さらに、配置コンポーネント314は、アプリケーションリソース識別モジュール458を使用して、データセンタコンピュータ302がユーザによって要求されたか、又は、仮想デスクトップインスタンスの構成のデスクトップ配置ルールの一部として指定されたアプリケーションリソースへのアクセスを有するか否かを判定し得る。
【0130】
データセンタコンピュータ302が選択されると、配置コンポーネント314は、ブロック916にて識別されたデータセンタコンピュータ302上でデスクトップインスタンスを作成する。場合によっては、デスクトップインスタンスの作成は、デスクトップ配置ルールに基づき得る。例えば、デスクトップ配置ルールは、デスクトップインスタンス(例えば、デスクトップインスタンスのために割り当てられる記憶量、又は、デスクトップインスタンスを介したアクセスのために予め構成されるアプリケーション)の構成を指定し得る。
【0131】
ブロック918にて、管理コンポーネント310は、ユーザにデスクトップインスタンスへのアクセスを提供する。一部の実施形態では、ブロック918は、デスクトップインスタンスの作成及び/又はデスクトップインスタンスへのアクセスを記録することをさらに含み得る。さらに、場合によっては、別のユーザ(例えば、管理者)は、デスクトップインスタンスの作成及び/又はデスクインスタンスへのアクセスを知らされ得る。
【0132】
XII.例示的なアプリケーションアクセスプロセス
図10は、PESプラットフォーム120のデータセンタから入手可能であるアプリケーションにアクセスするプロセスの実施形態を例示する。
図1Bで先述したように、各データセンタは、いくつかの仮想デスクトップインスタンスを実行するように構成可能な1つ以上の物理コンピューティングシステムを含む。各仮想デスクトップインスタンスは、Microsoft Windows(登録商標)オペレーティングシステム、MAC OS(登録商標)オペレーティングシステム、Linuxオペレーティングシステム、Oracle(登録商標)Solarisオペレーティングシステムなど、オペレーティングシステムを含み得る。各仮想デスクトップインスタンス内に含まれたオペレーティングシステムは、1つ以上のアプリケーションをアプリケーション市場130において実行するように構成され得る。仮想デスクトップインスタンスは、ネットワークを介してPESのユーザによってアクセスされ得る。さらに、PESのユーザは、アプリケーション、又は、仮想デスクトップインスタンスを市場インターフェース212を介してアプリケーション市場130において検索し得る。
【0133】
例示する実施形態では、プロセス1000は、アプリケーション市場130へのアクセスをPESのユーザに関連したユーザコンピューティングデバイスに提供するブロック1002にて始まる。アプリケーション市場にアクセスするユーザコンピューティングデバイスは、市場インターフェース212を介して仮想デスクトップインスタンスによって実行されるアプリケーションを検索し得る。例えば、ユーザは、アプリケーション市場130において市場インターフェース212を介してMatlab(登録商標)ソフトウェアのLinuxバージョンを検索し得る。
【0134】
プロセス1000は、ブロック1004に引き続き進んで、ユーザコンピューティングデバイスから仮想デスクトップインスタンス上でアプリケーションにアクセスする要求をユーザから受信する。要求は、アプリケーション市場130を介してユーザによって行われ得る。先に参照した実施例では、ユーザは、Matlab(登録商標)ソフトウェアのLinuxバージョンへのアクセスを要求し得る。ユーザの仮想デスクトップインスタンスは、少なくともLinuxオペレーティングシステムと、Matlab(登録商標)ソフトウェアとを含み得る。
【0135】
プロセス1000は、ブロック1006に引き続き進んで、ユーザコンピューティングデバイスに関連したメタデータにアクセスする。メタデータは、ユーザがユーザコンピューティングデバイス上でPESからアプリケーションにアクセスする権限が与えられているか否かを示し得る。例えば、ユーザコンピューティングデバイスに関連したメタデータは、ユーザが会社内に位置するデスクトップPCを目下使用していることを示し得、ユーザのPESアカウントに関連したセキュリティ設定及びアプリケーション市場優先事項に従って、ユーザは、会社内のデスクトップPCからMatlab(登録商標)ソフトウェアにアクセスする権限が与えられている。別の実施例では、別のユーザコンピューティングデバイスに関連したメタデータは、ユーザがスマートフォンから仮想デスクトップインスタンスにアクセスしていることを示し得、ユーザのPESアカウントに関連したセキュリティ設定及びアプリケーション市場優先事項に従って、ユーザがMatlab(登録商標)ソフトウェアに自身のスマートフォンからアクセスする権限が与えられていない。一部の実施形態では、メタデータは、例えば、ユーザのアプリケーション市場アカウント、アカウント形式、アクセスレベル、ユーザが使用しているデバイスの形式の名前(タブレット、デスクトップコンピュータなど)、メディアアクセス制御(MAC)アドレス、ユーザの場所、ユーザのドメイン、ユーザがアプリケーション市場130にアクセスしているのが住宅用インターネットを介してか、又は、ユーザの雇用主によって提供された接続を介してか、及び/又はユーザは、アプリケーション市場130にアクセスするためにプロキシを使用しているか否かなどの情報を含み得る。
【0136】
プロセス1000は、少なくともある程度メタデータに基づいて、ユーザがユーザコンピューティングデバイス上でアプリケーションにアクセスする権限が与えられているか否かを判定するために判断ブロック1008に引き続き進む。一部の実施形態では、ユーザがアプリケーションにアクセスする権限が与えられているか否かを判定することは、アプリケーションがユーザに関連するか、又は、ユーザの仮想デスクトップインスタンスが位置するデータセンタ102でのアクセスに利用可能であるか否かを判定することを含み得る。場合によっては、アプリケーションのコピーがユーザの仮想デスクトップインスタンスが位置するデータセンタ102にて利用可能ではない場合、データセンタ102の管理コンピュータ304は、アプリケーションのコピーをPESプラットフォーム120に要求し得る。あるいは、ユーザはアプリケーションへのアクセスを拒絶され得る。ユーザがアプリケーションにアクセスする権限が与えられていない場合、プロセス1000は終了する。
【0137】
しかしながら、ユーザがアプリケーションにアクセスする権限が与えられている場合、プロセスは、ブロック1010に引き続き進んで、仮想デスクトップインスタンス上で実行されるようにアプリケーションを構成する。アプリケーションは、オペレーティングシステム、又は、ユーザ及びアプリケーション市場130による他の設定に好適であるように構成され得る。一部の実施形態では、アプリケーションはPESプラットフォーム120においてデータセンタ102内の物理コンピューティングシステム上に常駐し得、物理コンピューティングシステムは、ユーザが接続される物理コンピューティングシステムと異なる場合がある。場合によっては、アプリケーションは、アプリケーションリポジトリ220にあり得る。場合によっては、アプリケーションの一部又は全部のコピーは、ユーザが接続される物理コンピューティングシステムにダウンロードされ得る。
【0138】
プロセスは、ブロック1012に引き続き進んで、アプリケーションを仮想デスクトップインスタンスから実行させる。プロセスは、その後、ブロック1014に引き続き進んで、少なくとも仮想デスクトップインスタンスからの一部のアプリケーションへのアクセスをユーザコンピューティングデバイスに提供する。
【0139】
一部の実施形態では、アプリケーションのユーザインターフェースのみが、ユーザのコンピューティングデバイスに提供され、ユーザインターフェースは、ユーザコンピューティングデバイスからの入力を受理して、アプリケーションにユーザ入力を提供する。一部の他の実施形態では、ユーザのコンピューティングデバイスに提供されるアプリケーションの部分は、アプリケーションのコピー全体であり得る。例えば、上記のユースケースでは、Matlab(登録商標)ソフトウェア全体が、ユーザのコンピューティングデバイスに提供され得る。一部の他の実例では、少なくともアプリケーションの一部へのアクセスを提供することは、アプリケーションの一部をユーザコンピューティングデバイスに配信する(例えば、ストリーミング)ことを含み得る。例えば、上記のユースケースでは、Matlab(登録商標)ソフトウェア及びMatlabソフトウェアのインターフェースにおいてユーザによって目下使用されているライブラリのみが、ユーザコンピューティングデバイスに提供される。
【0140】
別の実施例では、少なくとも一部のアプリケーションへのアクセスを提供することは、ローカル仮想デスクトップインスタンスをコンピューティングインスタンスにストリーミングすることを含み得る。ローカル仮想デスクトップインスタンスは、ユーザコンピューティングデバイス上でアプリケーションを実行するように構成することができる。例えば、ユーザコンピューティングデバイスは、Linuxオペレーティングシステムと、Linuxオペレーティングシステム上で実行中であるアプリケーション(Matlab(登録商標)ソフトウェア)とを含む仮想デスクトップインスタンスを受信し得る。他の実施形態では、仮想マシン又はコンテナは、ユーザコンピューティングシステム104へストリーミングされ得る。この仮想マシン又はコンテナは、ユーザコンピューティングシステム104へストリーミングされるとき、及び/又は、アプリケーションのストリーミングが完了した後にアプリケーションを実行するように構成され得る。特定の実施形態では、ユーザコンピューティングシステム104へストリーミングされるアプリケーションの仮想マシン、コンテナ及び/又は任意の部分は、ユーザがアプリケーションを使用する現行セッションを完了した後にユーザコンピューティングシステム104から除去される。有利なことに、特定の実施形態では、アプリケーション、又は、その一部をユーザコンピューティングシステム104にストリーミングし、その後、使用セッションが完了するとアプリケーション、又は、その一部を除去することによって、ユーザは、アプリケーションを使用する一時的なライセンスを購入することができる。さらに、ユーザは、通常、例えば、ユーザコンピューティングシステム104の記憶空間制約、メモリ制約、グラフィクス制約、又は、他のハードウェア及び/又はソフトウェア制約のためにアプリケーションを実行することができない恐れがあるユーザコンピューティングシステム104上でアプリケーションを使用し得る。使用セッションは、アプリケーションの単一の使用期間、又は、アプリケーションのレンタル又はライセンシング期間を含むことができる。他の場合では、使用セッションは、アプリケーションがユーザコンピューティングシステム104へストリーミングされるときに始まり、ユーザコンピューティングシステム104がデータセンタ102にて対応されるデータセンタ102及び/又はインスタンスから切り離されたときに終了する期間を含み得る。
【0141】
本開示によるアプリケーション市場130は、仮想デスクトップインスタンス上で実行されるアプリケーションの代金を支払うためのユーザ向けの様々なオプションを提供し得る。例えば、ユーザは、自分が興味があるアプリケーションを購入、レンタル、又は使用許諾することを選び得る。場合によっては、ユーザのグループが、グループライセンスの代金を支払うことを選び得る。したがって、一部の状況では、ユーザがユーザコンピューティングデバイス上でアプリケーションにアクセスするように構成されるか否かを判定するために使用されたメタデータは、ユーザがアプリケーション市場130からアプリケーションを購入、レンタル、又は、使用許諾したか否かを含み得る。アプリケーション市場130の請求システム218は、アプリケーション市場から入手可能であるアプリケーション、オペレーティングシステム、仮想デスクトップなどの購入、レンタル、又は、ライセンシングを管理するように構成することができる。
【0142】
ユーザがアプリケーションを購入する代わりにレンタルするか又は使用許諾することを選んだ場合、アプリケーション市場130はレンタル又はライセンス期間の終了前にユーザに通知し得る。通知は、ある期間についてユーザがレンタル又はライセンス契約を更新するオプション、及び、ソフトウェアを購入するオプションを含み得る。一部の実施形態では、レンタル期間の満了時に、ユーザのアプリケーションに対応するデータセンタコンピュータ302は、例えば、ユーザが更なるレンタル期間の代金を支払うのを辞退した場合にアプリケーションへアクセス継続を自動的に遮断し得る。一部のそのような場合、データセンタコンピュータ302は、ユーザに関連した仮想デスクトップインスタンスからアクセス可能であり得るユーザに関連した記憶デバイス及び/又はフォルダ(例えば、クラウドフォルダ)にユーザデータを自動的に保存し得る。さらに、場合によっては、データは、1つ以上のユーザコンピューティングシステム104に自動的に同期され得る。
【0143】
XIII.例示的なファイル同期システム
文書を同期させるために、PESプラットフォーム120は、
図11に示すファイル同期システム1100を実行することができる。例示する実施形態では、ファイル同期システム1100は、接続性モジュール1102と、同期モジュール1104と、ファイルアクセスモジュール1106とを含む。接続性モジュール1102は、PESとユーザのコンピューティングデバイスとの間の接続を確立するために使用することができる。以下で論じるように、一部の実行例では、PESとユーザのコンピューティングデバイスとの間の接続性は、双方向である。一部のそのような実行例では、PESとコンピューティングデバイスとの間の双方向接続は、仮想デスクトップインスタンスへのアクセスを配信してPESとコンピューティングデバイスとの間でファイルを同期させるために使用される。引き続き上記の実施例〜については、ファイルアクセスモジュール1106は、タブレット装置に関連したメタデータに基づいて、該装置は特定のWord文書にアクセス及び修正する権限が与えられたコンピューティングデバイスであると判定し得る。したがって、タブレット装置は、Word文書の同期コピーを維持する権限が与えられており、該同期コピーは、タブレット装置がインターネット接続を有しないときにさえユーザがアクセス可能であり得る。例えば、ユーザがWord文書を編集しているとき、タブレット装置は、PESにネットワーク接続を失うことがあり得る。しかしながら、ファイルは、タブレット装置と同期されるように構成されるので、ネットワーク接続が失われている間に行われた修正は、同期モジュール1104を介してPESプラットフォーム120上で遠隔操作にて記憶されたファイルのコピーと同期させることができる。例えば、ファイルの修正は、ユーザコンピューティングデバイス上でローカルに記憶され得、ネットワーク接続性が再開したとき、修正は、PESプラットフォーム上に記憶されたファイルとの同期のために同期モジュール1104に伝達することができる。
【0144】
ユーザは、その後、タクシーに乗っている間にスマートフォンからPESとの接続を介して同じ文書を編集しようとし得る。スマートフォンが紛失しやすいことから、ユーザ(又は、雇用主など、ユーザに関連したエンティティ)は、特定の装置上で、又は、ユーザが特定の位置(例えば、輸出制限又は規制を実行するため)にいるときには特定の文書へのアクセスを制限し得る。したがって、この実施例では、ファイルアクセスモジュール1106は、スマートフォン又はユーザの場所に関連したメタデータに基づいて、ユーザは、タクシー内でスマートフォンからファイルの内容を変更する権限が与えられていないと判定し得る。したがって、ユーザがスマートフォンから行おうとした変更は、PESプラットフォーム120によって記憶されず及び/又はスマートフォン上でローカルに記憶されない。
【0145】
別の実施例では、ユーザは、PESプラットフォーム120上の仮想デスクトップインスタンスを介して会社のデスクトップPC上の重要なCAD図を編集し得る。ユーザが会社PCをシャットダウンした後、CAD図に行った編集は、PESプラットフォーム120上に記憶される。ユーザは、自宅でラップトップコンピュータをオンにして、ローカルに記憶されたCAD図の同期コピーを編集しようとし得る。ファイルアクセスモジュール1106は、CAD図及び/又はユーザのラップトップコンピュータに関連したメタデータに基づいて、ユーザが直接にラップトップコンピュータからCAD図を修正する権限が与えられていないと判定し得る。しかしながら、ファイルアクセスモジュール1106は、ユーザはPES上の仮想デスクトップインスタンスを介してCAD図を編集する権限が与えられていると判定し得る。これは、CAD図が仮想デスクトップインスタンスから編集可能であり得るにすぎないことを意味する。したがって、ユーザがラップトップコンピュータから直接にCAD図の同期コピーに行おうとした変更のいずれもPESプラットフォーム120によって記憶することができない。しかしながら、ユーザがラップトップから接続性モジュール1102を介して仮想デスクトップインスタンスに接続する権限が与えられ、かつ、CAD図を編集するプログラムを仮想デスクトップインスタンスから実行する場合、仮想デスクトップインスタンスとの接続を介して図面を編集することが可能にされ得る。
【0146】
XIV.第一の例示的なファイル同期プロセス
図12は、PESプラットフォーム120の制御下のファイル同期システム1100を使用するファイルの同期プロセスの実施例を例示する。例示する実施形態では、プロセス1200は、接続性モジュール1102が、PESとユーザのコンピューティングデバイスとの間の接続(双方向性であり得る)を形成するブロック1202にて始まる。プロセスは、引き続き、ブロック1204に進み、PESプラットフォーム120は、ファイルをPESプラットフォーム120上で修正する要求をコンピューティングデバイスから受信する。プロセスは、引き続き、ブロック1206に進み、PESプラットフォーム120は、ファイルアクセスモジュール1106を使用してファイルメタデータにアクセスする。この例示する実施形態では、ファイルメタデータは、ファイルをコンピューティングデバイスなどと同期させることができるか否かを示す設定を含み得る。
【0147】
プロセスは、引き続き、ブロック1208に進み、少なくともファイルメタデータに基づいて、ファイルがコンピューティングデバイスと同期されるように構成されているか否かを判定する。一部の実施形態では、このステップは、ファイルアクセスモジュール508によって実行され得る。ファイルがコンピューティングデバイスと同期されるように構成されていない場合、プロセス1200は終了する。しかしながら、ファイルがコンピューティングデバイスと同期させることができると判定された場合、プロセス1200は、引き続き、ブロック1210に進み、ブロック1202内に形成された双方向接続を使用してファイルを同期モジュール1104によってコンピューティングデバイスと同期させる。プロセスは、ブロック1210後に終了する。
【0148】
場合によっては、ユーザは、仮想デスクトップインスタンス上で実行されるように構成されるアプリケーションを介してファイルを同期させるか、又は、修正する必要があり得る。例えば、ユーザは、Linuxオペレーティングシステムと、Matlab(登録商標)ソフトウェアとを含む仮想デスクトップインスタンスを構成したと考えられる。ユーザは、Matlab(登録商標)プログラム、及び、様々なコンピューティングデバイス上で作製したシミュレーションを同期させることを望み得る。ユーザが仮想デスクトップインスタンスを介してPESプラットフォーム120への既存の接続を既に有する場合、ユーザは、特定形式のファイルを修正又は開くことができるプログラムをローカルに有する必要はないと考えられる。
【0149】
XV.第二の例示的なファイル同期プロセス
図13は、データセンタでの仮想デスクトップインスタンスとの既存の接続を介したファイルの同期プロセスの実施例を例示する。この実施形態では、プロセス1300は、PES内の仮想デスクトップインスタンス上のアプリケーションへのアクセスが、接続性モジュール1102によって提供されるブロック1302にて始まる。プロセス1300は、引き続き、ブロック1304に進み、PESは、仮想デスクトップインスタンス上のアプリケーションを介してファイルを修正する要求をコンピューティングデバイスから受信し得る。プロセス1300は、引き続き、ブロック1306に進み、PESは、ファイルアクセスモジュール1106を介してファイルメタデータにアクセスする。ファイルメタデータは、ファイルが、例えば、第1のコンピューティングデバイスによって修正されるように構成されているか否かを示し得る。
【0150】
プロセス1300は、引き続き、ブロック1308に進み、ファイルがコンピューティングデバイスによって修正されるように構成されているか否かを判定する。上記で論じたユースケースでは、Matlab(登録商標)プログラムが、ユーザのデスクトップコンピュータ、ラップトップコンピュータと同期されるように構成され得るが、タブレット装置は対象外である。別の実施例では、ユーザは、海外の営業会議に旅立ち得、Matlab(登録商標)シミュレーションは、会議中に容易に見せることができるように自分のタブレット装置と同期させるように構成され得る。場合によっては、ファイルは、ユーザコンピューティングデバイスと同期されるように構成され得るが、ユーザコンピューティングデバイスによってローカルに編集可能ではあり得ない。これらの場合、ファイルは仮想デスクトップインスタンスを介してのみ編集可能であるように構成され得る。したがって、メタデータは、特定のコンピューティングデバイスがファイルを修正する権限が与えられているか否かを判定し、権限が与えられている場合、PESにより記憶されるファイルのコピーは、ユーザによって行われたファイルの修正を反映するために同期されるべきか否かを判定するために使用され得る。
【0151】
ファイルがコンピューティングデバイスによって修正されるように構成されていない場合、プロセス1300は終了する。しかしながら、ファイルアクセスモジュール1106がファイルはコンピューティングデバイスによって修正されるように構成されていると判定した場合、プロセス1300は、ブロック1310に引き続き進み、ファイルを仮想デスクトップ上のアプリケーションを介してコンピューティングデバイスによって修正することを可能にする。仮想デスクトップ上のアプリケーションを介してコンピューティングデバイスによって行われた修正は、PESによって同期及び記憶される。プロセスは、ブロック1310後に終了する。例えば、Matlab(登録商標)シミュレーションファイルは、ユーザのタブレット装置と同期され、かつ、仮想デスクトップインスタンスを介してタブレット装置によって修正されるように構成され得る。ユーザがPESプラットフォーム120上の仮想デスクトップインスタンス上でMatlab(登録商標)シミュレーションファイルの変更を行った後、シミュレーションファイルのアップデートは、タブレット装置に同期され、また、PESプラットフォーム120上の仮想デスクトップインスタンスに接続され得る。ファイルが、また、仮想デスクトップインスタンスとの接続を介してタブレット装置によって修正されるように構成される場合、ユーザは、タブレット装置からファイルを修正し得る。ユーザが行った修正は、他の権限が与えられているコンピューティングデバイスとPESによって同期されることになる。一部の実施形態では、ユーザは、タブレット装置上のネットワーク接続の有無を問わずファイルの同期されたローカルコピーを見得る。
【0152】
場合によっては、2つ以上のコンピューティングデバイスが、ファイルの同期コピーを維持するように構成され得る。また、場合によっては、ファイルの2つ以上のバージョンが記憶されるように構成され得る。例えば、ユーザは、Matlab(登録商標)シミュレーションファイルの変更をオフィスコンピュータから行なうことができ、該オフィスコンピュータは、Matlab(登録商標)ソフトウェアを実行する仮想デスクトップインスタンスに接続される。更新ファイルをテストした後、ユーザは自分が行ったばかりの変更を元に戻すことを決心し得る。ユーザは、自分が行った全ての変更なしで前バージョンであるシミュレーションファイルの同期コピーを維持することを選び得る。別の実施例では、ユーザは、ラップトップ上で営業会議用の最も安定したバージョンであるMatlab(登録商標)シミュレーションのバージョンを同期させることを選び得る。ユーザは、最新バージョンを同期させないことを選び得る。その代わりに、ユーザは、ラップトップコンピュータに維持したいと思うファイルのバージョンを指定し得る。特定のコンピューティングデバイスに維持したいと思うバージョンを選ぶことができるように、ファイルの複数のバージョンが、ユーザに提供され得る。
【0153】
一部の実施形態では、同じファイルの複数のバージョンの違いが、ユーザに提示され得、これは、ユーザがファイルのどのバージョンをコンピューティングデバイス上に維持したらよいかを決める際にユーザの手助けとなることができる。
【0154】
XVI.実施形態
本開示の実施形態は、以下の条項に照らして説明することができる。
[条項1]
データセンタでのリソース割り当てを計算する方法であって、
いくつかのデータセンタを含むプログラム実行サービス(PES)プラットフォームの制御下で、各データセンタは、ユーザに1つ以上のコンピューティングシステムの少なくとも1つによって対応された計算ノードへのアクセスを提供するように構成可能な1つ以上のコンピューティングシステムを含み、計算ノードは、ユーザがPESプラットフォームによって提供された複数のサービスにアクセスすることを可能にする仮想デスクトップを含み、
ユーザのコンピューティングデバイスから計算ノードへのアクセスを取得する要求をPESプラットフォームのデータセンタにて受信することと、
コンピューティングデバイスに関連したユーザを識別することと、
ユーザのアイデンティティに少なくとも部分的に基づいてユーザに関連したユーザメタデータにアクセスすることと、
ユーザメタデータに少なくとも部分的に基づいて1組のリソース配置ルールを選択することであって、1組のリソース配置ルールは、1組のユーザ上に及ぼすコンピューティングシステム故障の影響を低減するように選択され、1組のユーザは、ユーザを含む、選択することと、
1組のリソース配置ルールに少なくとも部分的に基づいてコンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別することと、
コンピューティングシステム上でユーザに計算ノードへのアクセスを提供すること、
を含む方法。
[条項2]
コンピューティングシステム上でユーザに計算ノードへのアクセスを提供することは、
コンピューティングシステム上で計算ノードのインスタンスを作成することと、
コンピューティングシステム上でユーザに計算ノードのインスタンスへのアクセスを提供することを含む、条項1に記載の方法。
[条項3]
ユーザに関連した計算ノードのアクティブインスタンスが存在するか否かを判定することとをさらに含む、
ユーザに関連したアクティブインスタンスが存在すると判定することに応答して、
この方法は、
アクティブインスタンスを含む第2のコンピューティングシステムを識別することと、
第2のコンピューティングシステムがその1組のリソース配置ルールを満たすか否かを判定することとをさらに含み、コンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別することは、第2のコンピューティングシステムがその1組のリソース配置ルールを満たすと判定することに応答して第2のコンピューティングシステムを識別することを含む、条項1に記載の方法。
[条項4]
データセンタでのリソース割り当てを計算するシステムであって、
各々、1人以上のユーザに1つ以上の計算リソースを提供するように構成可能な1つ以上のコンピューティングシステムを含むいくつかのデータセンタを含むプログラム実行サービス(PES)プラットフォームと、
計算リソースへのアクセスを取得するために要求をユーザのコンピューティングデバイスから受信するように構成されたいくつかのデータセンタのデータセンタと、
コンピューティングデバイスに関連したユーザを識別し、
ユーザのアイデンティティに少なくとも部分的に基づいてユーザに関連したユーザメタデータにアクセスして、
ユーザメタデータに少なくとも部分的に基づいて1組のリソース配置ルールを選択するように構成された管理コンポーネントと、
1組のリソース配置ルールに少なくとも部分的に基づいてコンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別するように構成された配置コンポーネントと、
を含み、
管理コンポーネントは、さらに、コンピューティングシステム上でユーザに計算リソースへのアクセスを提供するように構成される、システム。
[条項5]
配置コンポーネントは、さらに、コンピューティングシステム上で計算リソースのインスタンスを作成するように構成される、条項4に記載されたシステム。
[条項6]
ユーザに計算リソースへのアクセスを提供することは、コンピューティングシステム上でユーザに計算リソースのインスタンスへのアクセスを提供することを含む、条項5に記載されたシステム。
[条項7]
配置コンポーネントは、さらに、ユーザに関連した計算リソースのアクティブインスタンスが存在するか否かを判定するように構成される、条項4に記載されたシステム。
[条項8]
配置コンポーネントは、さらに、アクティブインスタンスを含む第2のコンピューティングシステムを識別し、かつ、第2のコンピューティングシステムが、ユーザに関連した計算リソースのアクティブインスタンスが存在すると判定することに応答して1組のリソース配置ルールを満たすか否かを判定するように構成される、条項7に記載されたシステム。
[条項9]
コンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別することは、第2のコンピューティングシステムがその1組のリソース配置ルールを満たすと判定することに応答して第2のコンピューティングシステムを識別することを含む、条項8に記載されたシステム。
[条項10]
計算リソースは、ユーザがPESプラットフォームによって提供された複数のサービスにアクセスすることを可能にする仮想デスクトップを含む、条項4に記載されたシステム。
[条項11]
計算リソースは、アプリケーションインスタンスを含む、条項4に記載されたシステム。
[条項12]
データセンタは、管理コンポーネントと、配置コンポーネントとを含む、条項4に記載されたシステム。
[条項13]
コンピューティングシステムにデータセンタにてリソース割り当てを計算する方法を実行するように指示するコンピュータ実行可能命令を含む固定物理コンピュータストレージであって、
この方法は、
計算リソースへのアクセスを取得する要求をプログラム実行サービス(PES)プラットフォームのデータセンタにて受信することであって、要求は、ユーザのコンピューティングデバイスから受信される、受信することと、
コンピューティングデバイスに関連したユーザを識別することと、
ユーザのアイデンティティに少なくとも部分的に基づいてユーザに関連したユーザメタデータにアクセスすることと、
ユーザメタデータに少なくとも部分的に基づいて1組のリソース配置ルールを選択するように構成された管理コンポーネントと、
1組のリソース配置ルールに少なくとも部分的に基づいてコンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別することと、
コンピューティングシステム上でユーザに計算ノードへのアクセスを提供すること、
を含む、固定物理コンピュータストレージ。
[条項14]
PESプラットフォームは、データセンタを含むいくつかのデータセンタを含み、各データセンタが、1人以上のユーザに1つ以上のコンピューティングシステムの少なくとも1つによって対応された1つ以上の計算リソースへのアクセスを提供するように構成可能な1つ以上のコンピューティングシステムを含む、条項13に記載された固定物理コンピュータストレージ。
[条項15]
コンピューティングシステム上でユーザに計算リソースへのアクセスを提供することは、
コンピューティングシステム上で計算ノードのインスタンスを作成することと、
コンピューティングシステム上でユーザに計算リソースのインスタンスへのアクセスを提供することを含む、条項13に記載された固定物理コンピュータストレージ。
[条項16]
この方法は、ユーザに関連した計算リソースのアクティブインスタンスが存在するか否かを判定することと、
をさらに含み、
ユーザに関連したアクティブインスタンスが存在すると判定することに応答して、
この本方法は、
アクティブインスタンスを含む第2のコンピューティングシステムを識別することと、
第2のコンピューティングシステムがその1組のリソース配置ルールを満たすか否かを判定することと、
をさらに含み、
コンピューティングシステムをデータセンタの1つ以上のコンピューティングシステムから識別することは、第2のコンピューティングシステムがその1組のリソース配置ルールを満たすと判定することに応答して第2のコンピューティングシステムを識別することを含む、条項13に記載された固定物理コンピュータストレージ。
[条項17]
計算リソースは、ユーザがPESプラットフォームによって提供された複数のサービスにアクセスすることを可能にする仮想デスクトップを含む、条項13に記載された固定物理コンピュータストレージ。
[条項18]
複数のサービスは、以下、即ち、アプリケーション、ファイル管理プログラム、又は、ファイルストレージの1つ以上を含む、条項17に記載された固定物理コンピュータストレージ。
[条項19]
計算リソースは、アプリケーションインスタンスを含む、条項13に記載された固定物理コンピュータストレージ。
[条項20]
リソース配置ルールは、リソースアクセスルールを含む、条項13に記載された固定物理コンピュータストレージ。
[条項21]
方法は、リソース配置ルールに少なくとも部分的に基づいて計算リソースを構成することをさらに含む、条項13に記載された固定物理コンピュータストレージ。
[条項22]
ユーザメタデータは、ユーザに関連したエンティティのアイデンティティを含み、ユーザメタデータに少なくとも部分的に基づいて1組のリソース配置ルールを判定することは、エンティティのアイデンティティに少なくとも部分的に基づいて1組のリソース配置ルールを判定することを含む、条項13に記載された固定物理コンピュータストレージ。
【0155】
XVII.用語
いくつかのコンピューティングシステムを本開示を通じて説明してきた。これらのシステムの説明は、本開示の教示、又は、適用可能性を制限するとは意図されていない。例えば、本明細書で説明するユーザシステムとしては、一般的に、少し例を挙げれば、デスクトップ、ラップトップ、テレビゲームプラットフォーム、テレビセットトップボックス、テレビ(例えば、インターネットTV)、電子制御電気製品、及び無線モバイル機器(例えばスマートフォン、PDA、タブレットなど)など、任意のコンピューティングデバイスを挙げることができる。さらに、本明細書で説明するユーザシステムは、異なる形式の装置であるか、異なるアプリケーションを含むか、又は、その他の方法で異なる方法で構成されることが可能である。さらに、本明細書で説明するユーザシステムは、任意の形式のオペレーティングシステム(「OS」)を含むことができる。例えば、本明細書で説明するモバイルコンピューティングシステムは、Android(商標)OS、Windows(登録商標)OS、Mac(登録商標)OS、Linux、又は、UNIXベースのOSなどを実装することができる。
【0156】
さらに、例示するシステムの様々なコンポーネントの処理は、複数のマシン、ネットワーク、及び他の計算リソースにわたって分散させることができる。さらに、システムの2つ以上のコンポーネントをより少数のコンポーネントに結合することができる。例えば、データセンタリソース割り当てシステム330の一部として示す様々なシステムは、複数のコンピューティングシステムにわたって分散させるか、又は、又は、単一のコンピューティングシステムに結合することができる。さらに、例示するシステムの様々なコンポーネントは、専用コンピュータハードウェアシステムにおいてよりはむしろ、1つ以上の仮想マシンにおいて実装することができる。同様に、図示するデータリポジトリは、例えば、ストレージエリアネットワーク、又は、他の分散型ストレージシステムを含め、物理及び/又は論理データストレージを表すことができる。さらに、一部の実施形態では、図示するコンポーネント間の接続は、ハードウェア間の実際の接続よりもむしろデータフローの可能なパスを表す。可能な接続部の一部の実施例を図示するが、図示するコンポーネントのサブセットのいずれも、様々な実行例ではコンポーネントの任意の他のサブセットと通信することができる。
【0157】
実施形態によっては、本明細書で説明する任意のアルゴリズム、方法、又は、プロセスの特定の行為、イベント、又は、機能は、異なるシーケンスで実行することができ、追加、統合、又は、全てまとめて省略することができる(例えば、全ての説明する行為、又は、イベントが、アルゴリズムの実践に必要であるというわけではない)。さらに、特定の実施形態では、行為、又は、イベントは、順次によりもむしろ、同時に、例えば、マルチスレッド型処理、割込み処理、又は、複数のプロセッサ、又は、プロセッサコアを介して、又は、他の並列のアーキテクチャ上で実行することができる。
【0158】
様々な例示するシステムの各々は、本明細書で説明する様々な機能を実行するようにプログラム及び構成されるコンピューティングシステムとして実装され得る。コンピューティングシステムは、説明する機能を実行するためにネットワークで通信及び相互運用する複数の異なったコンピュータ、又は、コンピューティングデバイス(例えば、物理サーバ、ワークステーション、ストレージアレイなど)を含み得る。各々のそのようなコンピューティングデバイスは、典型的には、メモリ又は他の固定コンピュータ可読記憶媒体内に記憶されたプログラム命令又はモジュールを実行するプロセッサ(又は、マルチプロセッサ)を含む。本明細書で開示する様々な機能は、そのようなプログラム命令において実施され得るが、開示する機能の一部又は全部は、代替的にコンピュータシステムの特定用途向け回路(例えば、ASIC又はFPGA)において実行され得る。コンピューティングシステムが複数のコンピューティングデバイスを含む場合、これらの装置は、同じ位置に配置され得るが同じ位置に配置される必要はない。開示する方法及びタスクの結果は、ソリッドステートメモリーチップ及び/又は磁気ディスクなど物理記憶装置を異なる状態に変換することによって持続的に記憶され得る。説明する各プロセスは、関連のサーバコードでプログラムされる1つ以上の物理サーバなど1つ以上のコンピューティングデバイスによって実行され得る。
【0159】
とりわけ、「〜することができる」、「〜ことがあり得る」、「〜得る」、「例えば」など、本明細書で使用する条件付き言語は、特記がない限り、又は、使用時に前後関係において別段の理解の仕方がない限り、特定の実施形態が、特定特徴部、要素及び/又は段階を含むが、他の実施形態は含まないことを伝達することを一般的に意図する。したがって、そのような条件付き言語は、一般的に、特徴部、要素及び/又は段階が1つ又はそれ以上の実施形態に何らかの形で必要とされること、又は、1つ又はそれ以上の実施形態が、著者入力又はプロンプト表示の有無を問わず、これらの特徴部、要素及び/又は段階が任意の特定の実施形態においては含まれるか又は実行されるべきであるか否かを判断するための論理を必ず含むことを意味することを意図したものではない。「を備える」、「を含む」、「を有する」などの用語は、同義であり、かつ、制限なしに包括的に使用されており、更なる要素、特徴部、行為、作業などを除外するものではない。また、「又は」という用語は、例えば、要素のリストを関連づけるために使用するときには、「又は」という用語は、リスト内の要素の1つ、一部、又は、全てを意味するように、包括的な意味で(かつ、排他的な意味ではなく)使用している。さらに、不定冠詞「a」及び「an」は、特記がない限り、「1つ以上の」か、又は、「少なくとも1つの」を意味すると解釈するべきである。
【0160】
語句「X、Y及びZの少なくとも1つ」などの結合言語は、特記がない限り、その他の方法で、項目、項などがX、Y、又はZであり得ることを伝えるために一般に使用されるように文脈と共に理解される。したがって、そのような結合言語は、一般的に、特定の実施形態がXの少なくとも1つ、Yの少なくとも1つ、及びZの少なくとも1つが各々存在することを必要とすることを意味すると意図されてはいない。
【0161】
上記の詳細な説明では、様々な実施形態に適用されるように新奇な特徴を図示、説明及び指摘してきたが、例示する装置又はアルゴリズムの形又は詳細における様々な省略、置換、及び変更を本開示の精神から逸脱することなく行なうことができることが理解されるであろう。したがって、前述の説明におけるいかなるものも、任意の特定の特徴、特性、ステップ、モジュール、又は、ブロックが必要又は不可欠であることを意味するとは意図されていない。認識されるように、本明細書で説明するプロセスは、一部の特徴部を他とは別々には使用又は実践することができるように、本明細書で定める特徴及び利点の全てを提供するわけではない形態内で実施することができる。本発明の範囲は、前述の説明ではなく特許請求項の範囲により定義される。特許請求項の範囲の意味及び均等性の範囲に該当する全ての変更は、本発明の範囲内に包含されるべきである。