(57)【要約】  データセンターの選択及び提示のためのアーキテクチャ及び方法。例えば、装置の一実施形態は、データセンター情報を管理するためのブローカーコンポーネントであって、該データセンター情報を含むアップデートを受信し、クエリに応答して該データセンター情報を提供するためのブローカーコンポーネントと、該ブローカーコンポーネントから読み取られたデータセンター情報に基づいてクラウドユーザのためにデータセンター選択及び／又は推奨を実施するための選択エンジンであって、該データセンター選択及び／又は推奨が、該エンドユーザによって指定されたデータセンター要件及び／又は選好に基づいて行われる、選択エンジンと、選択されたデータセンターと連動し、データを送信して、該選択エンジンによって行われた該選択及び／又は推奨からの該データセンターの選択時に、該ユーザのために該データセンターを設定するための提示コンポーネントと、を備える。
2017509046.tif 000002
【特許請求の範囲】
【請求項１】
データセンター情報を管理するためのブローカーコンポーネントであって、前記データセンター情報を含むアップデートを受信し、クエリに応答して前記データセンター情報を提供するためのブローカーコンポーネントと、
前記ブローカーコンポーネントから読み取られたデータセンター情報に基づいてクラウドユーザのためにデータセンター選択及び／又は推奨を実施するための選択エンジンであって、前記データセンター選択及び／又は推奨が、前記エンドユーザによって指定されたデータセンター要件及び／又は選好に基づいて行われる、選択エンジンと、
選択されたデータセンターと連動し、データを送信して、前記選択エンジンによって行われた前記選択及び／又は推奨からの前記データセンターの選択時に、前記ユーザのために前記データセンターを設定するための提示コンポーネントと、を備える、装置。
【請求項２】
データセンターに関する情報についてのクエリを生成することであって、前記クエリが、データセンター情報を含むデータストレージに向けられる、生成することと、
前記クエリを使用して前記データストレージで検索を実施して、一組のデータセンター候補を生成することと、
データセンター利用についての費用閾値を示す費用要件、性能閾値を含む性能要件、及び／又は信頼性閾値を含む信頼性要件を含む、クラウドユーザによって指定された要件に基づいて前記クラウドユーザのために前記データセンター候補のうちの１つ以上の優先順位を決定することと、
前記優先順位決定に基づいて前記クラウドユーザのために前記データセンターのうちの１つを選ぶことと、を含む、データセンターを選択するための方法。
【請求項３】
複数の仮想デバイスコントローラ、及び前記仮想デバイスコントローラ間の関係を定義するデータを含む仮想データセンター層であって、
前記仮想デバイスコントローラの各々が、物理データセンターリソース及びその関連機器構成を表し、前記組み合わせられた複数の仮想デバイスコントローラが、仮想データセンターを形成する、仮想データセンター層と、
前記仮想データ層を物理データセンターに提示するコマンドに応答して、前記複数の仮想デバイスコントローラを、前記物理データセンター上の前記関連データセンターリソースにマッピングするためのクラウド仲介層と、を備える、仮想データセンター装置。
【請求項４】
エンドユーザによって選択可能かつ編集可能な複数のオブジェクトを含む、グラフィカルユーザインターフェース（ＧＵＩ）と、
複数の仮想デバイスコントローラを備える仮想デバイスコントローラ層であって、各仮想デバイスコントローラが、物理データセンターリソース及びその関連機器構成を表し、前記組み合わせられた複数の仮想デバイスコントローラが、仮想データセンターを形成する、仮想デバイスコントローラ層と、を備え、
複数の前記ＧＵＩの前記オブジェクトの各々が、仮想デバイスコントローラ層内の特定の仮想デバイスコントローラを表し、かつそれにマッピングし、
ユーザが、データセンターリソース及び前記データセンターリソースの前記関連機器構成を、これらのリソースの前記仮想デバイスコントローラと関連付けられた前記オブジェクトを選択することによって編集することができる、装置。
【請求項５】
データセンター間の移行を開始及び管理するためのデータセンター提示コンポーネントと、
第１のデータセンターにて設定される分散ファイルシステムエンジンの第１のインスタンス、及び第２のデータセンターにて設定される分散ファイルシステムエンジンの第２のインスタンスであって、クラウドユーザのために前記第１のデータセンター及び前記第２のデータセンターにて記憶されたファイル間の同期を維持するための分散ファイルシステムエンジンの第１及び第２のインスタンスと、
前記第２のデータセンターから第３のデータセンターへの移行を、前記第３のデータセンター上に前記分散ファイルシステムエンジンの第３のインスタンスを開くことによってもたらすための前記データセンター提示コンポーネントであって、前記分散ファイルシステムの前記第３のインスタンスが、ファイルを前記第１及び／又は第２のデータセンターから前記第３のデータセンターに投入し、前記分散ファイルシステムが、前記第１及び第２のデータセンターにて記憶された前記ファイルの全てが前記第３のデータセンターにコピーされる前に、前記データセンター提示コンポーネントが前記第２のデータセンターをオフラインにすることを可能にする、前記データセンター提示コンポーネントと、を備える、データセンターを移行させるための装置。
【請求項６】
データセンターサービスのためのマーケットプレースを実装するための装置であって、
データセンター情報を管理するためのブローカーコンポーネントであって、前記データセンター情報を含むアップデートを受信し、クエリに応答して前記データセンター情報を提供するためのブローカーコンポーネントと、
前記データセンター情報を記憶するための前記ブローカーコンポーネントによってアクセル可能なデータベースであって、前記データベース中の各レコードが、物理データセンタープロバイダ又は仮想データセンタープロバイダのためのデータを含む、データベースと、
物理データセンタープロバイダのための各レコードであって、前記物理データセンタープロバイダを識別する第１の識別コード、前記物理データセンタープロバイダによって提供されるリソースを指定するリソースデータ、及び前記リソースの使用に関連する費用を指定する費用データを含む、各レコードと、
仮想データセンタープロバイダのための各レコードであって、指定の費用で指定の期間、物理データセンタープロバイダの前記リソースを使用する権利を購入したユーザを識別する第２の識別コード、前記物理データセンタープロバイダを更に指定する前記レコード、及び前記物理データセンタープロバイダによって提供される前記リソースを含む、各レコードと、
前記物理データセンターレコード及び前記仮想データセンターレコードを含む前記ブローカーコンポーネントによってアクセス可能な前記データベースから読み取られたデータセンターレコードに基づいてクラウドユーザのために選択及び／又は推奨を実施するための選択エンジンであって、前記データセンター選択及び／又は推奨が、前記エンドユーザによって指定されたデータセンター要件及び／又は選好に基づいて行われる、選択エンジンと、を備える、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１５年１月２日出願の米国特許出願第１４／５８８，６１３号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１２２号、２０１５年１月２日出願の米国特許出願第１４／５８８，６２０号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１２５号、及び２０１５年１月２日出願の米国特許出願第１４／５８８，６２６号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１２８号、及び２０１５年１月２日出願の米国特許出願第１４／５８８，６３１号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１３３号、及び２０１５年１月２日出願の米国特許出願第１４／５８８，６５８号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１３７号、及び２０１５年１月２日出願の米国特許出願第１４／５８８，６０７号、及び２０１４年１月６日出願の米国仮出願第６１／９２４，１４３号の利益を主張するものであり、これらは全て、参照により本明細書に組み込まれる。
【０００２】
（発明の分野）
本発明は、概して、データ処理システムの分野に関する。より具体的には、本発明は、クラウドプロバイダ選択及び提示のためのシステム及び方法に関する。
【背景技術】
【０００３】
（関連技術の説明）
クラウドコンピューティングは、サービスとしてのインフラストラクチャ（infrastructure as a service）（ＩａａＳ）、サービスとしてのプラットフォーム（platform as a service）（ＰａａＳ）、及びサービスとしてのソフトウェア（software as a service）（ＳａａＳ）のモデルを使用して提供され得る。これらのモデルのうちのいずれも、様々なコンピューティングリソース（例えば、サーバ、ルータ、ロードバランサ、スイッチなど）から成るクラウドベースの「データセンター」中に実装され得る。
【０００４】
ＩａａＳは、最も基本的なモデルである。ＩａａＳのプロバイダは、物理又は仮想コンピュータ（即ち、仮想マシンを使用するもの）、並びに仮想マシンディスクイメージライブラリ、ファイルベースのストレージを含むストレージリソース、ファイアウォール、ロードバランサ、ＩＰアドレス、仮想ローカルエリアネットワーク（ＶＬＡＮ）、及びソフトウェアバンドルなどの他のリソースを提供する。ＩａａＳプロバイダは、これらのリソースを、データセンターにインストールされた大型のプールから動的に供給し得る。それらのアプリケーションを展開するために、クラウドユーザは、オペレーティングシステムイメージ及びアプリケーションソフトウェアをクラウドリソース上にインストールする。このモデルでは、クラウドユーザは、オペレーティングシステム及びアプリケーションソフトウェアを維持する。クラウドプロバイダは、典型的には、割り当てられ消費されたリソースの量に基づいてユーザに請求する。
【０００５】
ＰａａＳモデルでは、クラウドプロバイダは、オペレーティングシステム、ウェブサーバ、プログラム言語実行環境、及びデータベースを含む、完全なコンピューティングプラットフォームを届ける。アプリケーション開発者は、下層であるハードウェア層及びソフトウェア層の購入及び管理に関する費用及び複雑さ無しで、ソフトウェアソリューションを開発し、このクラウドプラットフォーム上で起動する。一部のＰａａＳ実装では、下層のリソース（例えば、コンピューティング、ストレージなど）は、自動で拡張して、アプリケーション要求を一致させ、クラウドユーザがリソースを手動で割り当てる必要をなくす。
【０００６】
ＳａａＳモデルでは、クラウドプロバイダは、クラウド中にアプリケーションソフトウェアをインストールして維持し、クラウドユーザは、クラウドクライアント（「オンデマンドソフトウェア」モデルと称される場合もある）からソフトウェアにアクセスする。これは、アプリケーションをクラウドユーザ自身のコンピュータ上にインストールして起動する必要性を排除し、保守及びサポートを簡素化する。クラウドアプリケーションは、事実上無制限の拡張性を提供し（ローカルで実行されるアプリケーションとは対照的）、これは、変化する作業要求を満たすために、ランタイム中、複数の仮想マシン上にタスクをクローン化することによって達成され得る。ロードバランサは、作業を、（１つのアクセスポイントしか見えない）ユーザに気付かれることなく一組の仮想マシンにわたって分配する。
【図面の簡単な説明】
【０００７】
本発明のより良好な理解は、以下の図面と共に以下の発明を実施するための形態から得ることができる。
【図１Ａ】クラウド解析及び提示サービスの一実施形態を示す。
【図１Ｂ】クラウドプロバイダマーケットに関連する詳細を示すグラフを示す。
【図２Ａ】本発明の一実施形態に従うシステムアーキテクチャを示す。
【図２Ｂ】本発明の一実施形態に従う方法を示す。
【図２Ｃ】本発明の一実施形態に従う方法を示す。
【図３】本発明の一実施形態で用いられるデータセンターアービトラージの図式例を示す。
【図４】選択エンジンアーキテクチャの一実施形態を示す。
【図５Ａ】グラフィカルユーザインターフェースを含む仮想化及び提示コンポーネントの一実施形態に関連する更なる詳細を示す。
【図５Ｂ】グラフィカルユーザインターフェースを含む仮想化及び提示コンポーネントの一実施形態に関連する更なる詳細を示す。
【図５Ｃ】グラフィカルユーザインターフェースを含む仮想化及び提示コンポーネントの一実施形態に関連する更なる詳細を示す。
【図５Ｄ】グラフィカルユーザインターフェースを含む仮想化及び提示コンポーネントの一実施形態に関連する更なる詳細を示す。
【図６】仮想データセンターを物理データセンターに提示するための一実施形態で用いられる複数の論理層を示す。
【図７】グローバルブローカーの一実施形態に関連する更なる詳細を示す。
【図８】仮想データセンターオーバーレイの一実施形態を示す。
【図９】データセンターを移行させるために使用される分散ファイルシステムエンジンの一実施形態を示す。
【図１０】データセンターを移行させるために使用される分散ファイルシステムエンジンの一実施形態を示す。
【図１１Ａ】データセンターを移行させるためのシャドウストレージシステムの一実施形態を示す。
【図１１Ｂ】データセンターを移行させるためのシャドウストレージシステムの一実施形態を示す。
【図１２Ａ】本発明の一実施形態において、データセンターを移行させるために用いられるゲートウェイ及びネットワークインフラストラクチャ及びネットワークインフラストラクチャを示す。
【図１２Ｂ】本発明の一実施形態において、データセンターを移行させるために用いられるゲートウェイ及びネットワークインフラストラクチャ及びネットワークインフラストラクチャを示す。
【図１２Ｃ】本発明の一実施形態において、データセンターを移行させるために用いられるゲートウェイ及びネットワークインフラストラクチャ及びネットワークインフラストラクチャを示す。
【図１３Ａ】本発明の一実施形態に従うエージェント及びデータ収集プロセスを示す。
【図１３Ｂ】本発明の一実施形態に従うエージェント及びデータ収集プロセスを示す。
【図１４】グローバルブローカー及び選択エンジンとの通信の一実施形態の更なる詳細を示す。
【発明を実施するための形態】
【０００８】
クラウドサービス選択及び提示のための装置、方法、及びマシン可読媒体の実施形態が以下に記載される。説明を通して、説明の目的のために、多数の特定の詳細が本発明の完全な理解を提供するために記載されている。しかしながら、本発明が、これらの特定の詳細の一部がなくても実施できることは当業者にとって明らかであろう。他の例において、周知の構造及び装置は示されていないか、又は、本発明の基本原理を曖昧にすることを避けるためにブロック図の形態で示されている。
【０００９】
本明細書に記載の本発明の実施形態は、クラウドに移行するユーザに利するように、ますます増加しているクラウドサービスプロバイダを活用する。具体的には、これらの実施形態は、どのクラウドサービスプロバイダが実際にクラウドフットプリントを提供しているかに関係なくデータセンターを管理し移動させるためのメカニズムを含む。一実施形態では、クラウドフットプリントは、ＩａａＳフットプリントである。しかしながら、本発明の基本原理はまた、ＰａａＳ又はＳａａＳサービスを提供するデータセンターにわたって実装されてもよい。
【００１０】
図１は、本発明の一実施形態に従うクラウド解析及び提示サービス（ＣＡＰＳ）１００の高レベルアーキテクチャを示す。以下で詳述するように、ＣＡＰＳ１００は、クラウドプロバイダ１２１〜１２４によって提供される多様なデータセンターを裁定して、仮想データセンターのための最適な価格、性能、可用性、及び／又は地理的範囲を作り出す能力を含む、いくつかの強力なモデルを可能にする。具体的には、ＣＡＰＳ  １００の一実施形態は、クラウドユーザ１１１〜１１５によって指定される要件を考慮して、費用データ、リソースデータ、性能データ、地理的範囲データ、信頼性データ、及び／又は任意の他の関連するクラウドプロバイダ変数を解析する。関連データを評価した後、ＣＡＰＳ  １００は、クラウドユーザのために１つ以上のクラウドプロバイダを自動的に選択する。あるいは又は加えて、ＣＡＰＳ  １００は、クラウドアービトラージを行い、クラウドプロバイダ間の測定可能な差異を利用すること（例えば、クラウドプロバイダ価格決定、性能、サービスレベルの合意、又は他の測定可能な測定基準間の差異を含む、クラウドプロバイダ間の不均衡を生かした取引の組み合わせを成立させること）によって、一組の「候補」クラウドプロバイダを推奨し得る。エンドユーザは、次に、推奨されたクラウドプロバイダ候補の中から選択し得る。
【００１１】
以下で詳述するように、ＣＡＰＳ  １００の一実施形態は、あるクラウドプロバイダから別のプロバイダへ移行する決定が成されると、データセンターリソースを仮想化し、データセンター移行を可能にするための、仮想化及び提示論理を含む（例えば、図２Ａに示す仮想化及び提示コンポーネント２３１を参照されたい）。具体的には、ＣＡＰＳ  １００の一実施形態は、数例を挙げると、ルータ、スイッチ、ロードバランサ、ＷＡＮアクセレレータ、ファイアウォール、ＶＰＮコンセントレータ、ＤＮＳ／ＤＨＣＰサーバ、作業負荷／仮想マシン、ファイルシステム、ネットワーク接続型ストレージシステム、オブジェクトストレージ、及びバックアップストレージを含む（がこれらに限定されない）全てのデータセンターリソースの仮想化又は論理的表現を生成する。この「仮想データセンター」表現は、データセンターを含むアトミックコンポーネントを反映し、各論理デバイスの基本コミッショニング状態を管理する。ＣＡＰＳ  １００は、次に、仮想化された表現を、物理データセンターを実装するのに必要なフォーマットに翻訳するか、又は仮想データセンターを（例えば、図９に関して以下で考察するものなど、完全に仮想化された実装を使用して）直接クラウドプロバイダ上で実行することによって、仮想データセンターを新たな物理データセンター上に提示する。
【００１２】
大きいプロバイダと同じだけＩａａＳをその顧客に届けることが可能な小さいクラウドサービスプロバイダが何千も存在するが、それらは、断片化しているか、又は局地的であると見なされている。現在上位の北米クラウドサービスプロバイダを示す図１Ｂに示すチャートを検討されたい。マーケットシェアの対数的低下に留意されたい。曲線上のロングテールを勧誘することによって、ＣＡＰＳ  １００は、データセンターサービスをまとめるための「マーケットメーカー」になる。一実施形態では、ＣＡＰＳ  １００は、これらのデータセンターサービスを購入及び販売するための仲介モデルを用い、即ち、買い手と売り手との間の取引を手配し、契約が実行されると手数料を受け取るということである。これは、断片化したマーケット全体にわたる移動を可能にし、完全買収を必要とせずに集合したマーケットプレースを作成するため、クラウドユーザ１１１〜１１５及びクラウドプロバイダ１２１〜１２４の両者に有益である。
【００１３】
クラウド売り手１２１〜１２４は、費用及び他の変数、例えば、期間（制限期間に対する特定の費用）、サービスレベルの合意、地理的位置、ネットワークリソース（ある特定の分配アプリケーションに対する適合性）、及び／又はある特定のアプリケーションのための専用ハードウェアリソースに基づいて、ＣＡＰＳプラットフォーム１００に入札し得る。このデータは、過去の顧客取引からのこれまでのレコードによって（例えば、顧客からのフィードバック又は他の評価システムを使用して）更に増補され得る。「アービトラージ」の概念は、故に、クラウドの買い手の要件をクラウド売り手の特徴のより大きなリストと一致させることにまで拡大する。単純な例は、価格及び期間である。売り手は、割引料金での容量を有し得るが、これは特定の期間のみである（例えば、別の顧客が将来の所与の時点で容量を予約しているため）。これは、より可動性のデータセンターアーキテクチャを有するか、又は買い手のデータセンターに対する短期の要件のみを有する一部の買い手には機能し得る。しかしながら、総合的には、大数の法則が有効となるため、ＣＡＰＳ  １００が各売り手に買い手を見つけ、それにより両者が利益を得る可能性が増加することになる。
【００１４】
図２Ａに示すように、ＣＡＰＳ  １００の一実施形態は、グローバルブローカー２１０、一組のユーザ選択エンジン２２０〜２２２（例えば、各クラウドユーザに１つ）、並びに仮想化及び提示コンポーネント２３１を含む、複数のコンポーネントを含む。グローバルブローカー２１０は、全ての利用可能なクラウドプロバイダ１２１〜１２４のデータベース２１１、及びクラウドプロバイダによって提供されるデータセンターの属性を管理する。例として、データベース２１１は、費用データ、リソースデータ、性能データ、地理的範囲データ、信頼性データ、及び／又はクラウドプロバイダ１２１〜１２４によって操作されるデータセンターに関連する任意の他の関連情報を含んでもよい。データベース２１１は、クラウドプロバイダ１２１〜１２４自体によって動的に、又はＣＡＰＳ  １００のメンバーによって静的にアップデートされ得る。例えば、特定のクラウドプロバイダが、特定の期間、そのデータセンターリソースに対する費用構造を変更した場合、それは、データベース２１１中のこの変更についての費用／期間をアップデートし得る。同様に、クラウドプロバイダが、そのハードウェア／ソフトウェアをアプデートしたか、又は新たなデータセンターを新たな場所で開いた場合、それは、データベース２１１をアップデートして、変更を反映させ得る。
【００１５】
一実施形態では、グローバルブローカー２１０は、アプリケーションプログラミングインターフェース（ＡＰＩ）を露出させて、データベース２１１への更新を可能にする。クラウドプロバイダ１２１〜１２４は、次に、ＡＰＩを利用して、データベース２１１を動的にアップデートし得る。これは、例えば、クラウドプロバイダ１２１〜１２４の各々にてインストールされたＣＡＰＳソフトウェアを介して、及び／又はクラウドプロバイダにてブラウザクライアントによってアクセス可能なウェブサーバを介して、達成され得る。静的プロバイダアップデートはまた、ＡＰＩを介して実装されてもよい。
【００１６】
一実施形態では、ユーザ選択エンジン２２０〜２２２が、各クラウドユーザに対してデータセンター選択／推奨を実施するために実行される。図２Ａに示す例では、選択エンジン２２０が実行されて、データセンター選択／推奨をユーザＡに提供し、選択エンジン２２１が実行されて、データセンター選択／推奨をユーザＢに提供し、選択エンジン２２２が実行されて、データセンター選択／推奨をユーザＣに提供する。動作中、各選択エンジン２２０〜２２２は、対応するクラウドユーザ（例えば、費用、性能、信頼性、地理的位置など）のためのデータセンター要件を提供され、次に、これらの要件と一致するブローカーデータベースからの候補クラウドプロバイダを識別する。
【００１７】
以下でより詳細に考察するように、各選択エンジン２２０〜２２２は、ユーザの要件に一致するクラウドプロバイダ１２１〜１２４の優先順位決定リスト（例えば、リストの上位にあるものはリストの下位にあるものよりも近い一致である）を生成し得る。リストは、推奨の根拠を説明する比較解析と共に、一組のクラウドプロバイダ「推奨」として、エンドユーザに提供され得る。あるいは、一実施形態では、選択エンジンは、ユーザのためにクラウドプロバイダのうちの１つを自動的に選択し得る（以下で考察するように、データセンター間の移行を実施し得る）。
【００１８】
一実施形態では、選択エンジン２２０〜２２２は、周期的及び／又は自動的にグローバルブローカーデータベース２１１からアップデートを受信して、新たな及び／又はデータセンター選択及び／又は推奨を提供する。例えば、特定のクラウドプロバイダ１２１〜１２４が、そのサービスの顕著に低下した費用を有する場合、これは、選択エンジンに、そのクラウドプロバイダを選択させ、かつ／又はそのクラウドプロバイダを優先順位決定リストの上位に配置させる（それにより、新たなクラウドプロバイダへの移行を正当化する）。選択エンジンがアップデートを受信し、データセンターの優先順位決定リストを生成する頻度は、ＣＡＰＳ  １００及び／又は各クラウドユーザの選好に応じて異なり得る。
【００１９】
図４は、データセンター要件（例えば、ユーザ要件／選好４２５によって指定される）を示す、クエリをブローカー２１０に送信するためのデータセンター優先順位決定論理４２０を含む選択エンジン２２０に関連する更なる詳細を図示する。例えば、ユーザ入力４２５に基づいて、データセンター優先順位決定論理４２０は、指定の地理領域内であり、かつある特定の能力（例えば、ロードバランシング、自動フェイルオーバー能力など）を有するデータセンターにのみ関心があることを指定するクエリを送信し得る。その結果、ブローカー２１０によって提供されたデータセンター候補は、要求されたパラメータを持つものに限定されることになる。
【００２０】
図４に示すように、データセンター優先順位決定論理４２０は、次に、アービトラージコンポーネント４０１、性能コンポーネント４０２、及び信頼性コンポーネント４０３を含む、様々な加重コンポーネントに基づいて、データセンター候補の優先順位を決定し得る。図３ではコンポーネントは３つのみ示されるが、様々な他の／追加のコンポーネントが、本発明の基本原理に準拠しながらも、データセンター優先順位決定論理４２０に含まれ得る（例えば、地理的位置、エンドユーザからのデータセンター評価など）。
【００２１】
一実施形態では、加重が、ユーザ指定の要件／選好４２５に基づいて、各コンポーネント４０１〜４０３に割り当てられる。例えば、特定のクラウドユーザが、低費用のデータセンターサービスに関心がある場合には、アービトラージコンポーネント４０１は、性能コンポーネント４０２及び可用性コンポーネント４０３よりも重く加重され得る。別のクラウドユーザはまた、低費用に関心があり得るが、最低の性能４０２及び／又は信頼性４０３要件を指定し得る。かかる場合においては、データセンター優先順位決定論理４２０は、最低要件を満たさないこれらのデータセンターを除去した後、費用に基づいて残りのデータセンター候補の優先順位を決定することになる。また別のクラウドユーザは、データセンター信頼性４０３について主に懸念していてもよく、その結果、信頼性コンポーネント４０３が、アービトラージ４０１又は性能４０２コンポーネントよりも重く加重され得る。様々な異なる／更なるアルゴリズムがデータセンター優先順位決定論理４２０によって実装されて、相対的コンポーネント加重に基づいて、優先順位決定された選択又は推奨４１０を生成し得る。
【００２２】
図２Ａに戻り、新たなクラウドプロバイダが選択されると、仮想化及び提示コンポーネント２３１は、新たなクラウドプロバイダへの移行を管理する。上述のように、仮想化及び提示コンポーネント２３１の一実施形態は、数例を挙げると、ルータ、スイッチ、ロードバランサ、ＷＡＮアクセレレータ、ファイアウォール、ＶＰＮコンセントレータ、ＤＮＳ／ＤＨＣＰサーバ、作業負荷／仮想マシン、ファイルシステム、ネットワーク接続型ストレージシステム、オブジェクトストレージ、及びバックアップストレージなどの、各クラウドユーザによって必要とされるデータセンターリソースの「仮想データセンター」表現を維持する。この「仮想データセンター」表現は、データセンターを含むアトミックコンポーネントを反映し、各論理デバイスの基本コミッショニング状態（例えば、各デバイスに対するユーザ固有の設定）を管理する。一実施形態では、仮想化及び提示コンポーネント２３１は、各仮想データセンターを管理／移行するのに必要なデータの全てのそれ自体のデータベース２３２を維持する。あるいは、仮想化及び提示コンポーネント２３１は、このデータの記憶について、グローバルブローカーデータベース２１１に依存する。
【００２３】
新たなデータセンターが選択されると、仮想化及び提示コンポーネント２３１は、仮想データセンターを新たなデータセンター上に提示する。述べたように、新たなデータセンターへの提示は、仮想化された表現を、（例えば、クラウドプロバイダの指定のハードウェアハードウェア／ソフトウェアリソースに基づいて）物理データセンターの実装に必要なフォーマットに翻訳することを伴い得るか、又は仮想データセンターを、（例えば、図９に関して以下で考察するものなど、完全に仮想化された実装を使用して）直接クラウドプロバイダ上で実行することにより得る。提示が完了すると、古いデータセンターはオフラインにされる。
【００２４】
図２Ｂは、ユーザ指定のデータセンター仕様及び要件に基づいて、新たなデータセンターを選択するための方法の一実施形態を示し、図２Ｃは、あるデータセンターから別のデータセンターへの移行のための方法の一実施形態を示す。
【００２５】
まず図２Ｂを見ると、２５０にて、ユーザは、データセンターについての仕様を入力する。本明細書で使用する場合、「仕様」は、例えば、ルータ、スイッチ、ロードバランサ、ＷＡＮアクセレレータ、ファイアウォール、ＶＰＮコンセントレータ、ＤＮＳ／ＤＨＣＰサーバ、作業負荷／仮想マシン、ファイルシステム、ネットワーク接続型ストレージシステム、オブジェクトストレージ、及びバックアップストレージの配列を含む、データセンターの特定のコンポーネント及びアーキテクチャを含む。一実施形態では、仮想化及び提示コンポーネント２３１は、ユーザに、データセンターコンポーネント及びコンポーネント間の相互接続をグラフィックで選択するためのグラフィカルユーザインターフェース（ＧＵＩ）を提供し得る（例えば、図８及び関連の文章を参照されたい）。ＧＵＩは、ウェブベースであってもよく（例えば、ブラウザを介してアクセス可能なウェブページを介して提供される）、又はスタンドアロン型アプリケーションとして実装されてもよい。一実施形態では、仮想化及び提示コンポーネント２３１は、クラウドユーザにデータセンターアーキテクチャに関する一連の質問をすることによって、データセンター仕様を決定する。あるいは又は加えて、仮想化及び提示コンポーネント２３１は、ユーザに、ユーザのデータセンター要件に基づいて選択される一組の事前構築されたデータセンターテンプレートを提供してもよい。テンプレートの各々は、ある特定の組の必要とされるリソースと関連付けられてもよく、かつ／又はそれと関連付けられた特定のパラメータを有してもよい。
【００２６】
ユーザがどのようにデータセンター仕様を入力するかに関わらず、２５１では、仮想化及び提示コンポーネントは、仕様を使用して仮想データセンター表現を築く。上で考察したように、一実施形態では、仮想表現は、全ての必要とされるデータセンターリソース及びアーキテクチャレイアウト（例えば、リソース間の相互接続）の抽象的表面を含む。仮想表現は、データセンターを含むアトミックコンポーネントを反映し、各論理デバイスの基本コミッショニング状態を管理する。
【００２７】
２５２にて、ユーザは、データセンター候補の優先順位を決定するために検討される様々な因子を示す。上で考察したように、これは、ユーザの選好／要件に基づいて、加重を、データセンター費用、性能、及び／又は信頼性データなどの変数と関連付けることを伴い得る。２５３では、一組のデータセンター候補が、仕様及び要件に基づいて指定される。例えば、既に考察したように、特定のクラウドユーザが、低費用のデータセンターサービスに関心がある場合には、費用変数は、性能及び可用性変数よりも重く加重され得る。様々な異なる優先順位決定アルゴリズムが実装されて、相対的コンポーネント加重に基づいて、優先順位決定された選択又は推奨を生成し得る。
【００２８】
２５４では、データセンターが、指定されたデータセンター候補から選択される。一実施形態では、選択は、クラウドユーザによって（例えば、候補の優先順位リストを閲覧した後で）実施される。別の実施形態では、選択は、クラウドユーザのために自動的に実施される。
【００２９】
データセンターがどのように選択されるかに関わらず、２５５では、仮想データセンターは、選択された物理データセンターに提示される。述べたように、新たなデータセンターへの提示は、仮想化された表現を、（例えば、クラウドプロバイダの指定のハードウェアハードウェア／ソフトウェアリソースに基づいて）物理データセンターの実装に必要なフォーマットに翻訳することを伴い得るか、又は仮想データセンターを、（例えば、図９に関して以下で考察するものなど、完全に仮想化された実装を使用して）直接クラウドプロバイダ上で実行することにより得る。提示が完了すると、データセンターはオンラインにされ得る。
【００３０】
図２Ｃは、既存のデータセンターを新たなデータセンターに移行させる方法の一実施形態を示す。２６０では、データセンターアップデートが受信及び評価され、２６１では、新たなデータセンターへの移行が正当化されるかについての決定が（例えば、価格、性能、及び／又は信頼性の検討に基づいて）行われる。述べたように、グローバルブローカー２１０は、連続的な動的アップデートをクラウドプロバイダ１２１〜１２４から受信してもよく、かつ／又は静的に（即ち、ＣＡＰＳ  １００のメンバーによって）アップデートされてもよい。これらのアップデートがグローバルブローカー２１０中に記憶されると、各選択エンジン２２０〜２２２は、その選択ポリシーを実行して、新たなデータセンターへの移行がエンドユーザの利益となるかを決定し得る。例えば、移行する決定は、現行のデータセンター及び／又は他の候補データセンターに対する変更（例えば、データセンターの費用、ＳＬＡ、階層、加えて、費用、時間帯、限られた期間の性能、可用性などに対する変更）に基づいてもよい。
【００３１】
新たなデータセンターを選択するための意思決定プロセスの一実施形態のグラフィック描写を図３に示す。示すように、現行のデータセンターに関連する費用が（例えば、費用アービトラージボックス３７１に示す）許容範囲を外れたことを検出すると、移行イベント３７０が生成され得る。このイベントは、スケジュールされたイベント（例えば、クラウドプロバイダは費用変更の予告を提供し得る）であってもよく、この場合、選択エンジンは、スケジューラを用いて、移行イベントを誘発し、特定の時点（例えば、費用が目標範囲を超えて上昇することが予期される時点）でデータセンターを移動させる。ボックス３７２に示すように、グローバルブローカーは、全てのモニタリングされたデータセンターに関するデータによって、提示フィードを介して継続的にアップデートされてもよい。一組の全てモニタリングされたデータセンターは、費用、性能、場所、及び／又は可用性などのスクリーニング基準に基づいて、選択エンジンによってフィルタリングされ、一組の候補データセンター提示に達する。次に、１つの特定のデータセンターが、許容範囲内に収まらない現行の提示、候補と現行の提示との間の閾値を上回る差異、及び／又はスクリーニング基準の変更などの「イベント」に基づいて、その一組の候補から選択される。最終結果は、イベントが（自動で又はクラウドユーザによって手動で）誘発されて、データセンターを移行させることである。
【００３２】
図２Ｃに戻ると、２６２にて、新たなデータセンターがその一組の候補から選択され、２６３にて、仮想データセンターが、新たに選択されたデータセンターに（例えば、本明細書に記載の様々な提示技法を使用して）提示される。
【００３３】
図５Ａ〜Ｄ示すように、一実施形態は、仮想データセンターを作成及び管理するためのグラフィカルユーザインターフェース及びコマンドラインインターフェースを含む。一実施形態では、仮想データセンター中で用いられる仮想コントローラの各々は、固有のグラフィックによって表される。図５Ａは、ある特定の一組の仮想コントローラを表すグラフィックを示し、これは、ゲートウェイグラフィック５０２、ネットワークルータグラフィック５０３、ネットワークスイッチグラフィック５０４、ファイアウォールグラフィック５０５、ロードバランサグラフィック５０６、ＷＡＮアクセレレーショングラフィック５０７、作業負荷／仮想マシングラフィック５０８、ＤＮＳサーバグラフィック５０９、ファイルシステムグラフィック５１０、ＤＨＣＰサーバグラフィック５１１、バックアップストレージグラフィック５１２、ネットワーク接続型ストレージグラフィック５１３、ＶＰＮコンセントレータグラフィック５１４、オブジェクトストアグラフィック５１５、を含む。
【００３４】
これらのグラフィック画像によって表される仮想コントローラの各々の簡単な説明を以下に記載する。一実施形態では、下層リソースへのアクセスは、仮想化及び提示コンポーネント２２１によって露出した管理インターフェースを介して提供される。
【００３５】
データセンター５０１は、例えば、地理的位置、ＳＬＡ、階層などの提示の上位属性をキャプチャするプロセスである。これは、上位ビューにて地理的異種データセンターをグループ化するために使用される非稼働オブジェクトである。仮想データセンターの属性には、サービスレベルの合意、データセンター階層、価格決定カテゴリを挙げることができる。
【００３６】
ゲートウェイルータ５０２は、インターネット上の公共ルートに関与する。属性には、ＷＡＮ設定、ルートエントリ、ルートプロトコル、インターフェースモニタリング、ＤＮＳプロパティ、トポロジー／ルーティング情報、及びアフィニティルールを挙げることができる。
【００３７】
ネットワークルータ５０３は、仮想データセンター内の全てのサブネットワーク間のルーティングに関与する。まさに現実のルータのように、異なるサブネットワークに結び付けられた異なるインターフェースで、複数のネットワークルータのインスタンスが作成される。属性には、ネットワーク設定、ルートエントリ、ルートプロトコル、インターフェースモニタリング、アフィニティルールを挙げることができる。
【００３８】
ネットワークスイッチ５０４は、サブネットワークの概念を具現化する。サブネットワーク内で異なるデバイスを互いに接続しているインターフェースは、このエンティティによってモデル化される。接続された各デバイスに対するテレメトリが収集される場合、ネットワークスイッチは、データセンターの利用、したがって費用、及び性能を識別するための管理されたエンティティであり得る。属性には、ネットワーク設定、モニタリング、及びアフィニティルールを挙げることができる。
【００３９】
ファイアウォール５０５は、典型的にはクラウドプロバイダによって提供される特徴であるが、ＣＡＰＳ  １００によって（直接か、又はＡｐｐ  Ｓｔｏｒｅコンセプトを通して）提供される追加的特徴であり得る。ファイアウォールは、ネットワークアドレス翻訳（ＮＡＴ）、分散型サービス妨害（ＤＤＯＳ）保護、及びフローモニタリングを含むがこれらに限定されない、広範な可能性のあるオファーを提供し得る。属性には、ネットワーク設定、ファイアウォールポリシー、モニタリングポリシー、及びアフィニティルールを挙げることができる。
【００４０】
ロードバランサ５０６は、スケールアウトの目的で、いくつかの同一の作業負荷を共にマッピングするために使用されるデバイスである。属性には、ネットワーク設定、アドレス可能なエンドステーション、バランシングポリシー、モニタリング、及びアフィニティルールを挙げることができる。
【００４１】
ＷＡＮアクセレレータ５０７は、ＷＡＮ上でデータセンターを相互接続するために使用可能なサービスである。この要素は、重複排除圧縮アルゴリズムを提供するＲｉｖｅｒｂｅｄなどのデバイスを含み得る。これらのサービスは、クラウドユーザへの仮想作業負荷としてクラウドプロバイダによって提供され得る。２つ又以上の仮想データセンター間では、ＷＡＮアクセレレータのインスタンスは、ＷＡＮに向かうデータを圧縮するために用いられ得る（各サイトにて１つ）。属性には、ネットワーク設定、エンドポイント設定、ＳＬＡ、ベースユーザ権限、モニタリング、及びアフィニティルールを挙げることができる。
【００４２】
作業負荷／仮想マシン５０８は、ＯＳイメージの汎用設定を維持する。これは、ＶＭＤＫ、ＩＳＯなどの多様なフォーマットにこれらのイメージを運ぶことに関与する。これらのイメージを常に維持することによって、移行プロセスは大きく合理化される。属性には、ＣＰＵクラス及び量、メモリ、ローカルストレージ、オペレーティングシステムイメージ、ネットワーク設定、並びにアフィニティルールを挙げることができる。
【００４３】
ＤＮＳサーバ５０９は、仮想データセンターがＩａａＳデータセンターの内部及び外部両方の命名を提供するための方法を提供する。これは、ホスティングＩａａＳサービスプロバイダ及びＳｉａｒａｓグローバルディレクトリ／ブローカーの命名サービスの両方に結び付けられるはずである。属性には、ドメイン名、アドレス指定、移行特徴、モニタリング、及びアフィニティルールを挙げることができる。
【００４４】
ファイルシステム５１０は、ネットワーク接続型ストレージ（ＮＡＳ）に関連し得る。これは、共有リソースであってもよいが、アドレス指定能力又は可能性のあるユーザベース権限のいずれかを通した、多少の関連権限を有し得る。ファイルシステムの移行コンポーネントの基本的特徴としては、データの移行が挙げられる。一実施形態では、仮想コントローラが、あるファイルシステムインスタンスから別のファイルシステムインスタンスへとデータを転送する能力をサポートする。移行は仮想ファイルシステムコントローラよりも上位の層にて調整されるが、コントローラは、最低でも転送のための「シンク」及び「ソース」メカニズムを提供するはずである。以下でより詳細に考察されるように、一実施形態では、データの手動転送を必要としない分散ファイルシステム（例えば、Ｈａｄｏｏｐなど）が用いられる。ファイルシステムの各インスタンスは、既存のノードに自動的に結合し、必要なローカルデータをダウンロードする。ファイルシステムの属性には、サイズ、ネットワーク設定、ＳＬＡ、ベースユーザ権限、バクアップポリシー、及びアフィニティルールを挙げることができる。
【００４５】
ＤＨＣＰサーバ５１１は、データセンタープロバイダに、アドレス指定方式及びＡＣＬを定義すること、並びに論理データセンター中のデバイスに対する他の制御を許す。属性には、サブネットワーク設定、モニタリング、及びアフィニティルールを挙げることができる。
【００４６】
バックアップストレージ５１２は、任意の高可用性アプリケーションの中心的な特質であり、これは、ローカルＩａａＳサービスプロバイダの特質的な特徴であり得るか、又はＣＡＰＳに付加価値を与え得る特徴であり得る。後者の場合、物理データセンターから移行されるデータの量及びそれに関連する費用が問題となるであろう。
【００４７】
ネットワーク接続型ストレージ５１３は、階層１ＩａａＳクラウドデータセンター中、又はプライベートデータセンター内で利用可能であり得る高性能ストレージ方法であり得る。これらのコントローラは、これらのリソースを管理するために使用される。属性には、ＬＵＮ及びサイズ、ＲＡＩＤポリシー、ネットワーク構成、ＳＬＡ、ベースユーザ特権、バックアップポリシー、及びアフィニティルールを挙げることができる。
【００４８】
ＶＰＮ集信装置５１４は、遠隔クライアントがデータセンターに接続するために使用する終端局である。ＶＤＩアプリケーション及び他の基本的なセキュア接続は、ＶＰＮ集信装置を用いるか、又は単純なセキュアＶＰＮエンドポイントとして作用する。属性には、ネットワーク設定、ファイアウォールポリシー、モニタリングポリシー、及びアフィニティルールを挙げることができる。
【００４９】
ＩａａＳクラウドプロバイダは、オブジェクトストアグラフィック５１５によって表されるオブジェクトストレージ容量を提供することができる。オブジェクトストア仮想コントローラが、１つのオブジェクトストレージ設備を別のものにマッピングする変換機能を提供することが最適である。これは、Ｃｈｅｆ又はＣｌｏｕｄ  ＦｏｕｎｄｒｙなどのクラウドＰａａＳアブストラクションソリューションを利用して、ＡＰＩの変更に対処するためエンドアプリケーションの責務であってもよい。一実施形態では、ＣＡＰＳの役割は、動作が効率的に行われることを確実にすること、及び新しい提示が処理を継続するためにデータを利用できるようにすることである。属性には、サイズ、ネットワーク構成、ＳＬＡ、ベースユーザ特権、バックアップポリシー、及びアフィニティルールを挙げることができる。
【００５０】
図５Ｂは、仮想データセンターを構築するために仮想化及び提示コンポーネント２２１（例えば、公開されている管理インターフェースにアクセス可能なコマンドラインを介して）によって実行され得る例示的な一連のコマンド５１０を示す。コマンドラインインターフェースを例示目的で示すが、同じ組のコマンドが、ユーザがグラフィカルユーザインターフェース中でエレメントを操作するのに応答して実行されてもよい（例えば、図５Ｃ〜Ｄに示す通り）。この例では、「データセンター「Ｂｏｂ」を作成する」というコマンドにより、グラフィック５０１により表される、「Ｂｏｂ」という名称のデータセンターの仮想コントローラが作成される。「『Ｂｏｂ』にサブネットワーク『メイン』１９２．１６８．１．０／２４を作成する」というコマンドにより、仮想データセンター「Ｂｏｂ」の下にネットワークスイッチ仮想コントローラ５０４が作成され、追加の組の「作成」コマンドにより、ゲートウェイ仮想コントローラ５０２、ファイルシステム仮想コントローラ５１０、２つの仮想マシン仮想コントローラ５０８が、ネットワークスイッチ５０４の下に作成される。結果として得られる仮想データセンターは、次いで、「提示」コマンドによってデータセンター５２０に提示される。本明細書に記載されるように、仮想データセンターを物理データセンターに提示するために、様々な異なる技法を用いることができる。仮想データセンターの提示が成功した後、「移動」コマンドを実行して、仮想データセンターを新しい物理データセンター５２１に移行することができる。
【００５１】
図５Ｃは、仮想データセンターの作成及び管理のための例示的なグラフィカルユーザインターフェース（ＧＵＩ）である「ダッシュボード」を示す。ＷＡＮアクセレレータにより一緒に連結されるデータセンターＡ５５３及びデータセンターＢ５５４という２つのデータセンターのためのネットワークトポロジーが、ＧＵＩウインドウ５５１内に示される。一実施形態では、ユーザは、仮想コントローラを表すグラフィック要素を選択し、それをドラッグすることによって、表示されているネットワークトポロジー内の仮想コントローラを作成、編集、及び削除することができる。例えば、ＧＵＩの領域５５０内に表示されている仮想コントローラ要素を選択することができ、それらの要素のそれぞれと関連付けられた構成データを編集することができる。あるいは、ユーザは、ＧＵＩウインドウ５５１から直接仮想コントローラを選択して、そのコントローラと関連付けられた変数を編集してもよい。
【００５２】
アービトラージ（即ち、データセンター費用）、性能、及び信頼性に関連するデータを提供するために、サイトステータスウインドウ５５２も示されている。グラフィックアービトラージ要素下において、ユーザは、各データセンターの使用量と関連付けられている、指定最大費用、ターゲット費用、及び現在の費用を含む、様々な費用情報にアクセスすることができる。加えて、グラフィックアービトラージ要素下において、ユーザは、費用値の変更（図２Ｄでは「イベント」と称される）に応じたトリガ及び動作を指定することができる。例えば、ユーザは、費用値が特定の閾値を上回った場合に移行が起こるはずであることを指定することができる。
【００５３】
グラフィック性能要素下において、ユーザは、ネットワーク性能、ＣＰＵ性能、及びストレージ性能を含む、現在の性能を確認することができる。ユーザはまた、性能値の変更に応じてトリガ及び動作を指定することもできる。例えば、ユーザは、任意の特定の変数の性能が指定の閾値を下回った場合にデータセンターが移行されるはずであることを指定することができる。
【００５４】
グラフィック障害管理要素下において、ユーザは、様々な種類のシステム警報（例えば、極めて重要な警報、重要な警報、深刻でない警報等）を含む、様々な障害／信頼性データにアクセスすることができる。ここでも、ユーザは、信頼性の変更に応じてトリガ及び動作を指定することができる。例えば、ユーザは、極めて重要な警報又は重要な警報の数が指定の閾値を上回った場合に、データセンターが移行されるはずであることを指定することができる。
【００５５】
一実施形態では、図５Ｃに示される管理ＧＵＩにより、以下の機能／特徴が提供される：
分散データセンターは、それらの対応する地理で可視となるはずである。
アクティブな提示は、どのＩａａＳサービスプロバイダによりサービスが提供されているかを示す。
場所、費用、時間、性能、ＳＬＡ、階層、複製を含む、仮想データセンターが提示されるはずのポリシーを定義する能力、
代替的なデータセンター（モニタされるサイト）がエンドユーザに可視となるはずであること、
性能の問題、費用の問題、可用性の問題（例えば、アセットの提供時間を限定しているＩａａＳプロバイダは、カウントダウンタイマーを有する場合がある）を含め、問題がどこにあるかを明確に認識する能力、
定刻前に移動を計画する能力、及び恐らくは目的地のリソースが利用可能なままであるかをモニタする能力、
異なるデータセンターインスタンス内にある費用、及び所与のデータセンター内にある費用を明確に認識する能力（例えば、時間毎の報告機構が、月末、四半期末、若しくは年末に設備の財務フォレンジックを行うために維持されてもよい）、並びに／又は
データセンターの移動に関するポリシーを構成する能力。これには、人的介入を必要としない警報の通知、及び所定のメンテナンス時間枠に基づいて移行をスケジュールする能力（例えば、アービトラージイベントが生じた場合には、翌朝午前２時に移動させる）が含まれ得る。既存の提示がデータセンター内の障害に起因して機能しなくなった場合に、即座に移動させることは、特別な事例であり得る。
【００５６】
図５Ｄは、ウインドウ５５１に示されている階層的仮想コントローラ配置をより詳細に示す。上述のように、ユーザは、単純に、仮想コントローラ５６０〜５９９のそれぞれを表すグラフィック要素を選択し、それをドラッグすることによって、仮想データセンターを設計することができる。図５Ｄに示されている特定のトポロジーでは、ゲートウェイ５６０は、データセンターＡと関連付けられており、ゲートウェイ５６１は、データセンターＢと関連付けられている。階層的配置で、ネットワークルータ５６３、ファイアウォール５６２、及びＷＡＮアクセレレータ５６４が、ゲートウェイ５６０下に直接に論理的に位置付けられており、別のネットワークルータ５８２、ファイアウォール５８３、及びＷＡＮアクセレレータ５８１が、ゲートウェイ５６１下に直接に位置付けられている。示されるように、２つのＷＡＮアクセレレータ５６４及び５８１を通信可能に連結する専用のＷＡＮ相互接続を用いて、２つのデータセンター間の冗長性及び／又はフェイルオーバーを確保することができる。一実施形態では、以下に考察されるように、ＷＡＮ相互接続を使用して、移行プロセス（即ち、仮想データセンターを新しい物理データセンターに移行するとき）を合理化することができる。
【００５７】
第１の組のネットワークスイッチ５６５〜５６７が、データセンターＡのネットワークルータ５６３の下に論理的に位置付けられており、第２の組のネットワークスイッチ５８４〜５８６が、データセンターＢのネットワークルータ５８２の下に論理的に位置付けられている。スイッチ５６５は、一組のＡｐａｃｈｅサーバを、ロードバランサ５６８、一組のワークロード／ＶＭユニット５６９〜５７１（処理タスクを実行するため）、及びファイルシステム５７２から構成されるローカルネットワークに連結させる。スイッチ５６６は、メモリキャッシュサブシステム（「Ｍｅｍｃａｃｈｅ」）を実装するために第２の組のワークロード／ＶＭユニット５７３〜５７６に連結し、スイッチ５６７は、データベースを実装するために別の組のワークロード／ＶＭユニット５７７〜５７９及びオブジェクトストア５８０に連結する。
【００５８】
図５Ｄに示される例において、ミラー化された組のコンポーネントが、データセンターＢに構成される。例えば、スイッチ５８４は、一組のＡｐａｃｈｅサーバを、ロードバランサ５８７、ワークロード／ＶＭユニット５８８〜５９０（処理タスクを実行するため）、及びファイルシステム５９１から構成されるローカルネットワークに連結させる。スイッチ５８５は、メモリキャッシュサブシステム（「Ｍｅｍｃａｃｈｅ」）を実装するために第２の組のワークロード／ＶＭユニット５９２〜５９５に連結し、スイッチ５８６は、データベースを実装するために別の組のワークロード／ＶＭユニット５９６〜５９８及びオブジェクトストア５９９に連結する。
【００５９】
一実施形態では、単純に、示される階層的アーキテクチャ内の仮想コントローラをクリックし、それをドラッグすることによって、処理、ネットワーキング、及びストレージリソースといった更なるデータセンター要素が追加されてもよい。例えば、処理能力を増加させるために、追加のワークロード／ＶＭコントローラが各対応するスイッチ下に追加されてもよい。同様に、データセンタートポロジーに新しいサブシステムを追加するために、追加のスイッチが、ルータ５６３、５８２下に追加されてもよい。
【００６０】
以下に記載される実施形態のいくつかにおいて、ファイルシステム５７２及び５９１は、ＷＡＮ相互接続を通じて２つのデータセンター間での同期を維持する能力が組み込まれた、分散ファイルシステムである（例えば、Ｈａｄｏｏｐ等）。
【００６１】
図５Ｄに示されるアーキテクチャを用いた特定の例として、ロードバランス装置５６８、５８７によってロードのバランスがとれたＡｐａｃｈｅサーバ群によって、ウェブサービスが提供され得る。これらは、単一のサブネットワーク内にあってもよい。Ｍｅｍｃａｃｈｅサーバが、それらの対応するデータベースのアクティブなキャッシュを維持するために、第２のサブネットワークを形成してもよい。データベースサーバ群５７７〜５７９、５９６〜５９８は、それぞれ、共通のデータストア５８０、５９９から動作する。
【００６２】
動作中、ＵＲＬ要求がゲートウェイ５６０、５６１からデータセンターに入ると、この要求は、ファイアウォール５６２、５８３によってスクリーニングされた後、ロードバランサ５６８、５８７に転送され、これにより、要求がＡｐａｃｈｅサーバのうちの１つにリダイレクトされる。高ロードの条件下では、サーバの数が、この事例では自動的にスピンアップし得る。例えば、サーバの範囲が画定され得、それらのサーバプールを拡大及び縮小するためにトリガが用いられ得る。特有なのは、示されるアーキテクチャが、任意の所与のクラウドプロバイダが提供するものに対して直交する実際の論理データセンターであり、そのため本質的にポータブルとなっていることである。
【００６３】
上述の例に戻り、ＵＲＬが処理されると、アクティブなＡｐａｃｈｅサーバが、要求をＭｅｍｃａｃｈｅサーバに転送することになる。Ｍｅｍｃａｃｈｅにダーティビットが存在する（例えば、データが期限切れである）場合、一実施形態では、Ｍｅｍｃａｃｈｅが、リフレッシュするのに数秒待機するのではなく、即座に（例えば、２００ミリ秒以内に）期限切れデータに応答する。イベントが発生すると、Ｍｅｍｃａｃｈｅは、次のサーババンクからデータベースクエリをトリガする。そうする際に、エンドユーザがブラウザのリフレッシュをクリックすると、典型的に、最新のデータが得られる。換言すると、データの再要求をエンドユーザに任せることにより、「裏で」アップデートするのに必要な時間がＭｅｍｃａｃｈｅに与えられる。
【００６４】
図６は、仮想データセンターをクラウドプロバイダに提示するための仮想化及び提示論理２２１の一実施形態に使用される様々な層を示す。具体的には、図５Ａ〜Ｄに示されるＧＵＩを使用して、及び／又はサードパーティユーザインターフェース６０２（例えば、サードパーティによって設計されたＧＵＩを使用して）によって、抽象的な仮想データセンター表示６０１が構築され得る。一実施形態では、抽象的なＧＵＩ層６０１からの各オブジェクト（例えば、図５Ｄに示されるグラフィックオブジェクト５６０〜５９９等）が、仮想デバイスコントローラ層６０３内の特定のコントローラにマッピングされる。各仮想デバイスコントローラは、下層のハードウェア部分（例えば、ルータ、スイッチ、ゲートウェイ等）並びにデータへのアクセスを提供するためのインターフェースを実装するのに必要なデータを含む仮想データ構造を備える。例えば、インターフェースは、レプレゼンテーションステートトランスファー（representation state transfer）（ＲＥＳＴ）又は任意の他のインターフェースモデルを用いて実装することができる。
【００６５】
結果として得られる組の仮想デバイスコントローラ６０３は、クラウドＡＰＩ（例えば、ＪＣｌｏｕｄｓ）を使用して実装され得るクラウド仲介層６０４を介して提示されたデータセンター６０５内の対応する物理デバイスにマッピングされ得る。一実施形態では、仮想デバイスコントローラの表示をマッピンッグし、かつ／又はクラウドプロバイダによって提供されるリソースに実装することが可能な形式に変換するための別個の「プラグイン」モジュールが提供される。結果として、図６では、仮想データセンターの表示をクラウドプロバイダＡにマッピングする及び／又は変換するためにプラグインＡが使用され、仮想データセンターの表示を変換及び提示するためにプラグインＢが使用され得る。したがって、新しいデータセンターがブローカー２１０によりそのサービスを登録したときに、下層の仮想データセンター表示は、修正する必要がない。むしろ、既存の仮想データセンターを新しい物理データセンターにマッピング及び／又は変換するためには、新しいプラグインのみが必要となる。これらのプラグインは、クラウドプロバイダプレミス内のサーバ（例えば、クラウドプロバイダＬＡＮ）及び／又はＣＡＰＳ１００に実装され得る。
【００６６】
グローバルブローカー２１０の一実施形態に関連する更なる詳細は、図７に示される。前述のように、グローバルブローカー２１０には、リソースデータ（例えば、利用可能な処理、ネットワーキング、及びストレージプラットフォームの種類を指定する）、性能データ（例えば、処理タスク又はネットワーク通信タスクに関連する待ち時間に基づいて測定される）、費用（例えば、１日当たりの何ドルか、又は他の使用量単位）、地理データ（例えば、地理的位置を示す）、及び信頼性日付（例えば、特定の期間にわたる重大な警報の数）を含むがこれらに限定されない、各プロバイダに関連するデータを含む、データセンターデータベース２１１が含まれる。
【００６７】
一実施形態では、データセンターデータベース２１１へのアクセスを提供するために、クラウドプロバイダインターフェース７０１、クラウドユーザインターフェース７０２、プロビジョニングインターフェース７０３、及び管理インターフェース７０４を含む、様々なアプリケーションプログラミングインターフェース（ＡＰＩ）が公開されている。一実施形態では、各インターフェースには、データベースに操作を行うため（例えば、レコードの作成、レコードの削除、レコードの修正等のため）の一組のコマンドが含まれる。クラウドプロバイダには、クラウドプロバイダインターフェース７０１を介したデータセンターデータベース２１１へのアクセスが提供され、クラウドユーザには、クラウドユーザインターフェース７０２を介したアクセスが提供され、データベースプロビジョニングは、プロビジョニングインターフェース７０３を介して行われ、管理操作は、管理インターフェース７０４を介して提供される。更に、メッセージバス７０５が提供され、これにより、全てのクラウドユーザが、利用可能なリソースの最新の表示を維持することが可能となる（以下に考察されるように、データセンター結果を、クラウドユーザが待機する待ち行列に提供することによって）。
【００６８】
一実施形態では、ＣＡＰＳ  １００により、システムの継続的な実行に必要とされるありとあらゆるハウスキーピング機能を行うために、管理インターフェース７０４が使用される。管理インターフェースによってサポートされ得る機能には、次の能力が挙げられる：
アクティブな買い手及び売り手に関するデータの表示及び修正能力、
買い手及び売り手のアクセス権限を制限するアクセス制御リスト（ＡＣＬ）を制御する能力、
メッセージバス７０５のスループットをモニタする能力、
異なるロードに対応するために、追加の計算及びストレージ要素をスピンアップ又はスピンダウンする能力、
ＳａａＳに基づくデータセンターマネージャクライアントを管理する能力、
低水準コマンドラインのデバッグ及び診断ツールに入る能力、
システムを終了させ、新しいデータセンターへの移動に備える能力、
複数のデータセンターで起動しているものを含む、システムの全ての起動中のインスタンスを認識する能力、
フェイルオーバーソリューションを管理する能力、及び／又は
デバッグ目的で顧客を静的に管理する能力。
【００６９】
一実施形態では、プロビジョニングインターフェース７０３により、ＣＡＰＳ  １００がデータセンターデータベース２１１にアップデートを提供すること（例えば、検査されたデータセンター及び／又はパートナーデータセンターの新しいエントリを追加し、もはや稼働していないか、又は望ましいものではないデータセンターを削除すること）が可能となる。非パートナーのカテゴリ（例えば、ＣＡＰＳ  １００がリソースを利用していることを能動的に認識しないＩａａＳプロバイダ）では、変更が生じたときにデータセンターデータベース２１１にアップデートを提供するかはＣＡＰＳ  １００次第である。
【００７０】
一実施形態では、データセンター「ゾーン」（Ａｍａｚｏｎにより使用される）等の構成技法は、クラウドユーザに対して透過的にならない。例えば、ゾーンは、単純に、異なるデータセンターとして識別され得る。結果として、ある仮想データセンターをクラウドプロバイダ（例えば、Ａｍａｚｏｎ）のゾーンで用いることができ、ある仮想データセンターを異なるクラウドプロバイダ（例えば、Ｒａｃｋｓｐａｃｅ）で用いることができる。この結果として、クラウドユーザが、異なるサイト／ゾーンの単一のプロバイダを有することを望むことを指定することができる（例えば、ある特定のサイトに対するアフィニティを示すアフィニティルールを用いて）。
【００７１】
一実施形態では、プロビジョニングインターフェース７０３に含まれる機能としては、次の能力が挙げられる：
ＩａａＳデータセンター（売り手）のレコードを追加／削除／確認する能力、
静的／動的な売り手のレコードをアップデートする能力、
レコードのプッシュを買い手に強制する能力、
新しい買い手及び場合によっては関連ＳａａＳインフラストラクチャを（Ｓｉａｒａｓテンプレートを用いて）作成する能力、及び／又は
登録されている買い手及び売り手に関する統計及びレポートを確認する能力。
【００７２】
一実施形態では、クラウドプロバイダインターフェース７０１は、利用可能なサービスの詳細を公表することを望んでいるクラウドプロバイダに対して開かれている。ＡＰＩは、手入力のためのＳａａＳウェブポータルに関係しており、自動化システムによるＭ２Ｍの組み込みが可能である。このインターフェースの機能としては、クラウドプロバイダのレコードを追加／削除／確認／アップデートする能力を挙げることができる。
【００７３】
一実施形態では、クラウドユーザ管理インターフェース７０４は、管理仮想データセンターを起動するクラウドユーザに公開されている。これらのシステムは、クラウド自体で（ＳａａＳとして）又は企業アプリケーションとしてのいずれかで起動している可能性がある。このインターフェースの目的は、管理される仮想データセンターが現在の実行体験に関して報告するための手段を提供することである。このインターフェースは、ＣＡＰＳ  １００によってクラウドユーザに提供される管理ソフトウェアを通じてのみ起動される閉鎖型システムとして実装され得る（即ち、顧客は、このインターフェースへの直接アクセスを有さない）。一実施形態では、クラウドユーザインターフェースに含まれる機能としては、次の能力が挙げられる：
仮想データセンターの観測された性能に対するアップデートを報告する能力、
特定のサービスプロバイダによって観測された任意の停止状態を報告する能力、
仮想データセンター内に構成される任意の障害（例えば、仲介システム間の不適合性、又は報告された能力若しくは利用可能なリソースの欠如）を報告する能力、並びに／あるいは
顧客満足度報告手段及び障害管理機構を提供する能力。
【００７４】
一実施形態では、グローバルブローカーが、クラウドユーザのＤＮＳエントリのリダイレクトを担う。その際、データセンターの移行が即座にアップデートされ得る。更に、グローバルブローカー２１０の一実施形態は、スケールをサポートするように設計される。具体的には、複数のクライアントを必要とするいずれのインターフェースも、スケールアウトアーキテクチャをサポートする。
【００７５】
上述のように、仮想化及び提示コンポーネント２２１は、仮想化された表示を、物理データセンターを実装するのに必要な形式に変換すること（即ち、抽象的なデータをデータセンターの物理リソースによって使用可能な形式に変換するプラグイン）、又は仮想データセンターをクラウドプロバイダで直接実行することのいずれかによって、物理データセンターに仮想データセンターを提示することができる。
【００７６】
図８は、一般的なクラウドプロバイダ８３０によって提供される複数の仮想マシン８２１〜８２６で起動する仮想データセンターオーバーレイ８００を含む、完全に仮想化された実装を用いる後者のシナリオを示す。したがって、この実施形態には、仮想データセンター８００の各コンポーネント８０１〜８０６を、最も一般的なものから最も洗練されたものまで、あらゆるクラウドプロバイダにおいて提示することができる、完全に再仮想化されたクラウド層が含まれる。図８に示される特定の例では、各コンポーネントは、一般的なクラウドプロバイダ８３０によって公開されている異なるＶＭにおいて起動する。具体的には、仮想ゲートウェイ８０１がＶＭ  ８２１において起動する。仮想カーネルを有する３つの異なるカーネルＫｅｒｎｅｌ  ＶＭ  ８０２、８０４、及び８０５が、それぞれ、ＶＭ  ８２２、８２４、及び８２５で起動する。示されるように、オペレーティングシステム又は他のソフトウェア画像８１１、８１２、及び８１３は、それぞれ、カーネルＶＭ  ８０２、８０４、及び８０５よりも上位で実行され得る。仮想スイッチ８０３はＶＭ  ８２３で起動し、仮想ファイルシステム８０６はＶＭ  ８２６で起動する。
【００７７】
図８に示されるように、仮想データセンター８００を形成する仮想コンポーネント８０１〜８０６のそれぞれが、コンポーネント間にセキュアトンネルを作成するために、層２トンネリングプロトコル（Ｌ２ＴＰ）トンネル、セキュアソケット層（ＳＳＬ）トンネル、又は別のセキュアなプロセス間プロトコルを使用して、通信し得る。更に、示されるように、仮想ゲートウェイ８０１は、ＶＭ  ８２１を介して提供されるパブリックＩＰインターフェースを介して、他のコンポーネント８０２〜８０６をパブリックネットワークに通信可能に接続させる。
【００７８】
仮想データセンターオーバーレイを用いることには複数の利点がある。まず、変換が必要とされないため、仮想データセンターオーバーレイは、一貫性のあるＶＭを提供することができる任意の物理データセンターでシームレスに展開することができる。より均質なＳＬＡ及びセキュリティプロファイルが、データセンターサービスの様々なティアに課され得る。更に、実際のデータセンターのはるかに優れた制御及び可視性が提供され、結果として経時的により均質に提供され得る。例えば、性能及び費用を継続的に測定するために、全てのエンティティ（例えば、ｖＧａｔｅｗａｙ、ＫＶＭ、ｖＳｗｉｔｃｈ、ｖＦｉｌｅＳｙｓｔｅｍ等）にエージェントが含まれてもよい。
【００７９】
上述のように、本発明の一実施形態に実装されるファイルシステム５１０、５７２、５９１は、分散ファイルシステムであり、これは、ＷＡＮ相互接続を通じて２つ（又はそれ以上）のデータセンター間の同期を維持するための能力が組み込まれている。図９は、クラウドプロバイダ９００のファイルシステム９２０を利用する第１の仮想データセンター９１０、及びクラウドプロバイダ９０１の関連ファイルシステム９３０を利用する第２の仮想データベンダー９１１を含む、１つのそのような実施形態を示す。ファイルシステム９２０及び９３０のそれぞれは、それぞれ、ファイルシステム９２０のロケーション部分９２１をファイルシステム９３０の遠隔部分９３２と同期させ、ム９２０の遠隔部分９２２と同期させるための、分散ファイルシステムエンジン９２３及び９３３を含む。同期の結果として、ファイルシステム９２０のローカル部分９２１になされたいずれの変更も、ファイルシステム９３０の遠隔部分に自動で反映され、ファイルシステム９３０のローカル部分９３１になされたいずれの変更も、ファイルシステム９２０の遠隔部分９２２に自動で反映される。一実施形態では、ファイルシステムの「ローカル」コンポーネント９２１、９３１は、それぞれの仮想データセンター９１０、９１１によって作成され、編集され、及び／又はそうでなければアクセスされる、コンポーネントである。対照的に、「遠隔」コンポーネントは、異なる仮想データセンター９１０、９１１から作成、編集、及び／又はそうでなければアクセスされるものである。
【００８０】
一実施形態では、分散ファイルシステムエンジン９２３、９３３は、Ｈａｄｏｏｐ分散ファイルシステム（ＨＤＦＳ）エンジンであり、ローカル及び遠隔の部分がＨａｄｏｏｐノードに実装されている。ＨＤＦＳは、複数のマシンにわたって大きなファイルを記憶し、複数のホストにわたってデータを複製することによって信頼性を達成する、分散型でスケール可能なポータブルファイルシステムである。結果として、Ｈａｄｏｏｐインスタンスは、ホストにＲＳＩＤストレージを必要としない。データノードは、互いに通信してデータを複製し、コピーを移動させ、データの硬度な複製を維持することができる。図９に示される実装では、Ｈａｄｏｏｐプロトコルを使用して、ファイルシステム９２０、９３０のローカル部分９２１及び９３１と遠隔部分９３２及び９２２とをそれぞれ同期させさせることができる。しかしながら、本発明の基本原理は、任意の特定の分散ファイルシステムプロトコルに限定されるものではないことに留意すべきである。
【００８１】
本発明の一実施形態では、分散ファイルシステム（上述のもの等）を使用して、データセンター移行プロセスを合理化することができる。例えば、図１０に示されるように、ユーザがクラウドプロバイダ９００から新しいクラウドプロバイダ９０２への移行を選ぶと、新しい提示が完了したときに（例えば、本明細書に記載される仮想データセンター技法を使用して）、仮想データセンター９１２の下層ファイルシステム９４０は、分散ファイルシステムエンジン９４３のプロトコルを用いて投入され得る。例えば、図１０において、ファイルシステム９４０のローカル部分９４１は、クラウドプロバイダ９０１の既存のファイルシステム９３０の遠隔部分９３２から投入され得る。同様に、ファイルシステム９４０の遠隔部分９４２は、クラウドプロバイダ９０１の既存のファイルシステム９３０のローカル部分９３１から投入され得る。一実施形態では、ファイルシステム９４０のローカル部分９４１及び遠隔部分９４２の全コンテンツは、必ずしもクラウドプロバイダ９０２がオンラインになる前に完全に投入されるわけではない。むしろ、ローカル９４１及び遠隔９４２の分散ファイルシステムノードが作成され、ランタイム中に投入され得る（仮想データセンター９１２がオンラインになった後）。ローカルでは利用可能でないデータ要求がローカルノード９４１又は遠隔ノード９４２で受信されると、このデータは、それぞれ、遠隔ノード９３２又は９３１から取り出され、それによって、ランタイム中にローカルノード９４１及び遠隔ノード９４２に投入され得る。結果として、仮想データセンター９１２は、クラウドプロバイダ９０２上で、以前の実装（即ち、ファイルシステム９４０のデータの全てが事前に必要となるもの）よりも一層効率的にスピンアップし得る。
【００８２】
図１１Ａは、分散ファイルシステムエンジン１１３０（前述の実施形態にあるように）によって管理されるファイルシステム１１２０に連結された仮想データセンター１１１０を起動しているクラウドプロバイダ１１００を示す。この実施形態では、仮想データセンターファイルシステム１１２０のシャドウコピー１１２１を記憶するために、シャドウストレージシステム１１０１が使用される。仮想データセンターの分散ファイルシステムエンジン１１３０に通信可能に連結された分散ファイルシステムエンジン１１３１は、ファイルシステム１１２０の同期されたシャドウコピー１１２１を維持するように構成される。一実施形態では、ローカルファイルシステム１１２０に変更が行われると、分散ファイルシステムエンジン１１３０〜１１３１は、シャドウファイルシステム１１２１にこれらの変更を反映するように連動する。この実施形態における違いは、シャドウストレージ１１０１が、それ自体がエンドユーザによってアクセス可能なデータセンターではないことである。むしろ、それは、シャドウのストレージのためだけに用いられる。
【００８３】
一実施形態では、シャドウストレージシステム１１０１は、データセンター移行プロセスを合理化するために使用される。例えば、図１１Ｂに示されるように、ユーザがクラウドプロバイダ１１００から新しいクラウドプロバイダ１１０２への移行を選ぶと、新しい提示が完了したときに（例えば、本明細書に記載される仮想データセンター技法を使用して）、仮想データセンター１１１１の下層ファイルシステム１１２２は、分散ファイルシステムエンジン１１３２のプロトコルを用いて投入され得る。例えば、図１１Ｂでは、ファイルシステム１１２２は、シャドウストレージシステム１１０１に記憶されたファイルシステム１１２１のシャドウコピーから投入され得る。
【００８４】
上述の実施形態にあるように、ファイルシステム１１２１の全コンテンツが、必ずしもクラウドプロバイダ１１０２がオンラインになる前にファイルシステム１１２２に完全に投入されるわけではない。むしろ、分散ファイルシステムノード１１２２が作成され、ランタイム中に投入され得る（仮想データセンター１１１１がオンラインになった後）。ローカルでは利用可能でないデータ要求がファイルシステム１１２２で受信されると、このデータは、シャドウファイルシステム１１２１から取り出され、それによって、ランタイム中にファイルシステム１１２２に投入され得る。結果として、仮想データセンター１１１１は、クラウドプロバイダ１１０２上で、以前の実装よりも一層効率的にスピンアップし得る。
【００８５】
図１２Ａに示されるように、一実施形態では、独自のゲートウェイデバイス１２５０及び１２５１を、それぞれ、異なるデータセンター１２００及び１２１０に使用して、クラウド分析及び提示サービス１０００が実装されてもよい。ゲートウェイ１２５０は、そのため、データセンター内での移行を行うとき、データセンター間に仮想プライベートネットワーク（ＶＰＮ）接続等のセキュア接続を確立するために使用され得る。一実施形態では、ＶＰＮ接続は、重複排除圧縮アルゴリズム（例えば、Ｒｉｖｅｒｂｅｄ）を提供するもの等、購入したＷＡＮアクセレレータリンクを含む。
【００８６】
データセンター１２００内には、仮想データセンター１２３０及びファイルシステム１２２０を有するテナント１２０１と、仮想データセンター１２３１及びファイルシステム１２２１を有するテナント１２０２という２つのテナントが示されている。仮想データセンター１２３２及びファイルシステム１２２２を有する追加のテナント１２０３は、データセンター１２１０内に位置している。本明細書に使用されるとき、「テナント」とは、本明細書に記載される仮想データセンターサービスに申し込んだクラウドユーザである。示される実施形態では、テナント１２０１の仮想データセンター１２３０を、データセンター１２００からデータセンター１２１０に移行するために、専用のＶＰＮ接続が使用される。この場合、ＶＰＮ接続がデータセンター（ＣＡＰＳ  １００によって購入）間の専用リンクであるため、テナント１２０１にはデータセンター移行のための追加の費用が発生しない。
【００８７】
図１２Ｂに示されるように、一実施形態では、クラウドプロバイダＡ〜Ｃのそれぞれにローカルゲートウェイデバイス１３００〜１３０２を提供することに加えて、クラウド分析及び提示サービス１０００により、様々なプロバイダ間の高速でセキュアな相互接続をサポートする追加のゲートウェイ／ルータデバイス１３１０〜１３１３を備えるネットワークファブリック（例えば、専用のネットワークインフラストラクチャ／バックボーン等）を構築／購入することができる。
【００８８】
一実施形態では、クラウド分析及び提示サービス１０００は、任意の２つのクラウドプロバイダのデータセンター間に専用の高速接続が存在するかどうかを判定するために、図１２Ｃに示されるもの等、プロバイダ接続テーブル１２９０を維持する。図１２Ｃに示される特定のレイでは、プロバイダ１〜３は、全て、専用のネットワークインフラストラクチャ（例えば、ＣＡＰＳ  １００によって維持／購入される）を介して相互接続されているが、クラウドプロバイダ４及び５にはそのような接続は存在しない。一実施形態では、クラウド分析及び提示サービス１０００及び／又は選択エンジン２２０〜２２２は、データセンター推奨又は選択を行うときに、このテーブル１２９０を参照し得る。例えば、データセンター３及び５が、類似の費用、性能、及び信頼性特徴を有するが、データセンター３は、専用の高速接続により現在のデータセンターに連結されている場合、選択エンジンは、データセンター５よりもデータセンター３への移行を推奨し得る。
【００８９】
上述のように、グローバルブローカー２１０は、費用、性能、及び／又は信頼性のアップデートを含み得る、クラウドプロバイダからのフィードバックにより動的にアップデートされ得る。図１３Ａは、性能及び／又は信頼性のアップデートが、特定のテナントに関して仮想データセンター１３０１内で実行されるエージェント１３２０〜１３２１によって動的に提供される１つの実施形態を示す。この特定の実施形態では、エージェント１３２０〜１３２１は、それぞれ、仮想データセンター１３０１のリソースで実行されているワークロード１３１０〜１３１１に挿入される。エージェント１３２０〜１３２１は、それぞれのワークロード１３１０〜１３１１の実行をモニタし、性能データを収集する。例えば、エージェント１３２０〜１３２１は、ワークロード１３１０〜１３１１によるプログラムコードの実行を完了するのに必要な時間を測定することができ、かつ／又は仮想データセンター内の他のコンポーネント（例えば、ファイルシステム１３２５）をピングし、各コンポーネントから応答を取得する時間を測定することができる。この情報は、次いで、ゲートウェイ１３３０を介してグローバルブローカー２１０へと報告し戻され、クラウドプロバイダ１３００の正規化された性能測定値を計算するのに使用され得る。
【００９０】
図１３Ｂは、別個のデータ収集ワークロード１３６０が、仮想データセンター１３０１内で性能及び／又は信頼性データを収集するための他のワークロード１３５０〜１３５２と並行して実行される、別の実施形態を示す。データ収集ワークロード１３６０は、他のワークロード１３５０〜１３５２及びファイルシステム１３５３等の他のデータセンターコンポーネントをピングし、応答を受信するのにかかった時間を測定することができる（時間がながければ、比較的性能が低いことが示される）。データ収集ワークロード１３６０はまた、（例えば、プログラムコードにタグを挿入するか、又は他のプログラム追跡技法を行って）その独自のプログラムコードを実行するのに必要な時間を計算することもできる。これは、クラウドプロバイダ１３００のリソースにおいて別のワークロードとして実行されるため、その独自の実行に関連する性能が、他のワークロード１３５０〜１３５２の性能を示す。これは、次いで、ゲートウェイ１３３０を介してグローバルブローカー２１０に性能結果を返却することができる。
【００９１】
別の実施形態では、ゲートウェイ１３３０自体が、ワークロード１３５０〜１３５２から性能データを収集し（例えば、上述のようにワークロードをピングし）、結果として得られるデータをグローバルブローカー２１０へと返却してもよい。
【００９２】
図１３Ａ〜Ｂに示される実施形態のいずれにおいても、エージェント１３２０〜１３２１又はデータ収集ワークロード１３６０はまた、仮想データセンターの信頼性をモニタすることができる。例えば、ピングに対する応答が、指定される期間後にも受信されない場合、測定されているコンポーネントが利用可能でなくなったという決定がなされ得る。この信頼性情報は、次いで、ゲートウェイ１３３０を介してグローバルブローカー２１０へと送信され得る。
【００９３】
上述のように、一実施形態において、ＣＡＰＳ  １００アーキテクチャは、ＣＡＰＳ  １００アーキテクチャを使用して構築され得るデータセンターサービスを売買するためのオンライン市場として用いることができる更に、市場は、クラウドユーザによる購入及び実際のクラウドプロバイダによる販売に限定されない。むしろ、一実施形態では、任意のユーザ又はエンティティが、公開市場においてデータセンターサービスを売買することができる。したがって、特定のクラウドプロバイダは、データセンターサービスを別のクラウドプロバイダ（以下に考察される仮想プロバイダを含む）から購入することができる。逆に、クラウドユーザは、別のクラウドユーザ又は別のクラウドプロバイダにデータセンターサービスを販売することができる。例えば、特定のクラウドプロバイダは、データセンターサービスの想定される利用に数ヶ月先立って販売を提供してもよい（例えば、１２月／１月のデータセンターの利用を６月に販売する）。ＣＡＰＳ１００によって提供される公開市場を用いて、別のユーザ又はクラウドプロバイダがこれらのサービスを購入し、その後でそれらを再販売してもよい（例えば、１２月／１月時点での現行料金に応じて高額でか又は損失を出して）。この手法では、データセンターサービスの先物市場が、ＣＡＰＳ１００により確立される。
【００９４】
図１４は、グローバルブローカー２１０及びデータセンターデータベース２１１を、どのようにして、そのようなオンライン市場を可能にするように構成することができるかを示す。上述のように、データセンターデータベース２１１は、リソースデータ、性能データ、費用データ、地理的位置データ、信頼性データ、及びクラウドユーザに関与し得る任意の他のデータを含む、ＣＡＰＳ１００に登録されているクラウドプロバイダのそれぞれに関する最新のレコードを含む。レコード１４０１は、Ａｍａｚｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＡＷＳ）に関する現在の情報の全てと関連付けられており、その全てを含む。対照的に、レコード１４０２は、ＡＷＳデータセンターサービスを何らかの指定された期間、特定の金額で購入したユーザ（又は別のクラウドプロバイダ）を表す（仮想ＡＷＳ（ｖＡＷＳ）データベースのレコードとして特定される）。上述の例に戻ると、このユーザは、数ヶ月先立って１２月／１月のデータセンターサービスをＡＷＳから購入したが、これらのデータセンターサービスを使用するつもりがない（又は一部分のみを使用する目的で購入したか、若しくは購入後に、購入したサービスの全てが必要ではないことに気付いた）。一実施形態では、データセンターサービスの将来の（又は現在の）権利を購入したいずれのユーザも、グローバルブローカー２１０のデータセンサーデータベース２１１内に、これらのサービスの可用性を登録することができる。グローバルブローカー２１０は、そのため、様々な選択エンジン２２０〜２２２から生成されるデータベースクエリに応答して、これらのサービスを含み得る。これらのサービスの費用が現在の市場価格よりも低い場合（その他は全て等しい）、選択エンジン２２０〜２２２は、これらのサービスを現在の市場価格で提供されるものよりも推奨／選択することになる（それによって、売り手がより低い価格で購入したと想定し、売り手に利益をもたらす）。
【００９５】
図１４は、選択エンジンとグローバルブローカー２１０との間の通信に関連する更なる詳細を示す。具体的には、クエリパラメータ１４０５は、選択エンジン２２０〜２２２のそれぞれからデータベースクエリエンジン１４００へと送信され得、このエンジンが、次いで、このパラメータを使用してデータセンターデータベース２１１にクエリする。例えば、選択エンジン２２０は、ニューヨーク及び日本にあるデータセンターと関係する場合があり、選択エンジン２２１は、カリフォルニアにあるデータセンターと関係する場合があり、選択エンジン２２２は、ヨーロッパにあるデータセンターと関係する場合がある。これに応じて、データベースクエリエンジンは、クエリ（又は一連のクエリ）を実行して、データベース２１１から指定された基準を満たす全てのデータセンターを取り出すことができる。一実施形態では、結果は、上述の「候補」データセンターである（即ち、いくつかの最低限の初期基準を満たすもの、この事例では、地理的位置に基づく）。
【００９６】
一実施形態では、データベースクエリエンジン１４００の結果は、待ち行列１４１０におけるエントリとして提供され、選択エンジンのそれぞれが、待ち行列１４１０からエントリを読み出し／フィルタリングする。一実施形態では、プロデューサー／コンシューマアーキテクチャが実装され、ここでは、データベースクエリエンジン１４００がプロデューサー（待ち行列に新しいエントリを書き込む）として機能し、選択エンジン２２０〜２２２が待ち行列のコンシューマ（待ち行列の「リスナー」と称されることも多い）として機能する。上述の例に戻ると、選択エンジン２２０は、ニューヨーク及び日本にあるデータセンターと関連付けられた待ち行列１４１０からのエントリのみを取り出し、選択エンジン２２１は、カリフォルニアにあるデータセンターと関連付けられた待ち行列１４１０からのエントリのみを取り出し、選択エンジン２２２は、ヨーロッパにあるデータセンターと関連付けられた待ち行列１４１０からのエントリのみを取り出すことになる。様々な選択エンジン２２０〜２２２は、次いで、上述のようにフィルタリング／重み付け操作を行って、クラウドユーザの代わりに推奨又は選択に到達する候補データセンターを更にフィルタリングすることができる（例えば、費用、性能、及び信頼性等に基づいてフィルタリングする）。図１４には明示的に示されていないが、各選択エンジンは、その検索（例えば、選択エンジン２２０についてはニューヨーク及び日本）に関連するエントリのみを取り出すように、待ち行列に対するクエリを生成してもよい。
【００９７】
上述したように、本発明の実施形態は、様々なステップを含んでもよい。ステップは、汎用又は特殊目的のプロセッサに特定のステップを実行させる機械実行可能な命令に具現化することができる。あるいは、これらの工程は、工程を実行するためのハードワイヤードロジックを含む特定のハードウェア構成要素によって又はプログラミングされたコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせによって実行することができる。
【００９８】
本発明の要素はまた、機械実行可能なプログラムコードを記憶する機械可読媒体として提供することができる。機械可読媒体として、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ及び光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、又は、電子プログラムコードを記憶するのに適した他の種類の媒体／機械可読媒体を挙げることができるが、これらに限定されるものではない。
【００９９】
上記の説明全体を通じて、説明の目的のために、多数の特定の詳細が本発明の完全な理解を提供するために記載された。しかしながら、本発明は、これらの特定の詳細の一部がなくても実施できることは、当業者にとって明らかであろう。例えば、本明細書に記載された機能モジュール及び方法は、ソフトウェア、ハードウェア、又はそれらの任意の組み合わせとして実装されてもよいことは、当業者にとって容易に明らかであろう。更に、本発明のいくつかの実施形態は、モバイルコンピューティング環境のコンテキストで本明細書において記載されているが、本発明の基本原理は、モバイルコンピューティングの実装に限定されるものではない。実質的に任意の種類のクライアント又はピアデータ処理装置は、例えば、デスクトップ又はワークステーションコンピュータを含むいくつかの実施形態で使用することができる。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されるべきである。
【図１Ａ】
2017509046.tif 000003
【図２Ａ】
2017509046.tif 000004
【図２Ｂ】
2017509046.tif 000005
【図２Ｃ】
2017509046.tif 000006
【図４】
2017509046.tif 000007
【図７】
2017509046.tif 000008
【図８】
2017509046.tif 000009
【図９】
2017509046.tif 000010
【図１０】
2017509046.tif 000011
【図１１Ａ】
2017509046.tif 000012
【図１１Ｂ】
2017509046.tif 000013
【図１２Ａ】
2017509046.tif 000014
【図１２Ｂ】
2017509046.tif 000015
【図１３Ａ】
2017509046.tif 000016
【図１３Ｂ】
2017509046.tif 000017
【図１４】
2017509046.tif 000018
【図１Ｂ】
2017509046.tif 000019
【図３】
2017509046.tif 000020
【図５Ａ】
2017509046.tif 000021
【図５Ｂ】
2017509046.tif 000022
【図５Ｃ】
2017509046.tif 000023
【図５Ｄ】
2017509046.tif 000024
【図６】
2017509046.tif 000025
【図１２Ｃ】
2017509046.tif 000026
【国際調査報告】
2017509046.tif 000027
2017509046.tif 000028
2017509046.tif 000029