(57)【要約】  分散されたコンピューティング資源を割り当てることは、アプリケーションプログラムによる使用のための資源を提供するオファーを作成することからなる。各オファーは性能特性および対応する資源に関連付けられた価値を指定する。アプリケーションプログラムによる使用のための資源を取得する入札が作成される。各入札は対応するアプリケーションプログラムの動作に必要なサービスレベルと対応するアプリケーションプログラムを動作させることに関連付けられた価値を指定する。各入札のサービスレベル要求および価値をオファーの一つの性能特性および価値に照合することによって、入札がオファーにマーケット取引所モデルを介して照合される。各オファーに関連付けられた資源がマッチした入札に関連付けられたアプリケーションプログラムに割り当てられ、アプリケーションプログラムの動作が割り当てられた資源に移転される。資源が監視されて、各入札のサービスレベル要求の遵守を確かなものとし、非遵守資源はマーケット取引所モデルを介して置き換えられる。
2010522931.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング資源を割り当てるコンピュータ実装された方法であって、
複数のアプリケーションプログラムのいずれかによる使用のための複数の資源を提供する複数のオファーを作成し、オファーの各々は性能単位および対応する資源に関連付けられた価値を指定し、
特定のアプリケーションプログラムによる使用のための少なくとも一つの資源の単位を取得する入札を作成し、入札は特定のアプリケーションプログラムの動作に必要なサービスレベル要求と特定のアプリケーションプログラムを動作させることに関連付けられた価値を指定し、
入札のサービスレベル要求および価値をオファーの特定の一つの性能単位および価値に照合することによって、オファーの特定の一つを入札にマーケット取引所モデルを介して照合して、これによりマッチしたオファーを作成し、
マッチしたオファーに対応する資源を特定のアプリケーションプログラムに割り当て、これにより割り当てられた資源を作成し、
特定のアプリケーションプログラムの動作を割り当てられた資源に移転する、
ことからなる方法。
【請求項２】
割り当てるステップは、マッチしたオファーに指定された価値の支払いと引き換えに、それを介してマッチしたオファーに対応する資源が特定のアプリケーションプログラムに対して確約されるサービスレベル合意を発行することからなる請求項１の方法。
【請求項３】
照合するステップは、（ａ）変更されたオファーに指定された性能単位および価値が入札に指定されたサービスレベル要求および価値にマッチするまで、オファーの少なくとも一つを変更することと、（ｂ）変更された入札に指定されたサービスレベル要求および価値がオファーの一つに指定された性能単位および価値にマッチするまで、入札を変更することと、（ｃ）変更された入札に指定されたサービスレベル要求および価値が変更されたオファーに指定された性能単位および価値にマッチするまで、オファーの少なくとも一つと入札を変更すること、の少なくとも一つからなる請求項１の方法。
【請求項４】
マーケット取引所モデルは、商品マーケットモデル、提示価格モデル、テンダリング／コントラクト−ネットモデル、オークションモデル、独占モデル、少数独占モデル、入札ベースの比例資源共有モデル、の一つからなる請求項１の方法。
【請求項５】
割り当てられた資源の性能がサービスレベル要求に従っているかどうか決定し、
割り当てられた資源の性能がサービスレベル要求に従っていないとの判断に応じて、割り当てられた資源を代替資源により置き換える、
ことから更になる請求項１の方法。
【請求項６】
置き換えるステップは、
特定のアプリケーションプログラムによる使用のための代替資源を取得する新たな入札を作成し、新たな入札は特定のアプリケーションプログラムの動作に必要なサービスレベル要求と特定のアプリケーションプログラムを動作させることに関連付けられた価値を指定し、
代替資源に対応するオファーの別の一つを新たな入札にマーケット取引所モデルを介して照合することによって、代替資源を同定し、
代替資源を特定のアプリケーションプログラムに割り当てる、
ことからなる請求項５の方法。
【請求項７】
決定するステップは、（ａ）入札に指定されたサービスレベル要求が変更されたために、割り当てられた資源の性能がサービスレベル要求に従っていないことを決定することと、（ｂ）割り当てられた資源の性能がサービスレベル要求を超えるために、割り当てられた資源の性能がサービスレベル要求に従っていないことを決定することと、の少なくとも一つからなる請求項５の方法
【請求項８】
資源は仮想資源からなる、請求項１の方法。
【請求項９】
請求項１のコンピュータ実装された方法を行うコンピュータ実行可能な命令を有する、コンピュータ読み取り可能な媒体。
【請求項１０】
コンピューティング資源を割り当てるシステムであって、
アプリケーションプログラムによる使用のための複数の資源を提供する複数のオファーを作成するように構成された資源ブローカーであって、オファーの各々は性能特性および対応する資源に関連付けられた価値を指定するものと、
特定のアプリケーションプログラムによる使用のための少なくとも一つの資源を取得する入札を作成するように構成された要求モジュールであって、入札は特定のアプリケーションプログラムの動作に必要なサービスレベル要求と特定のアプリケーションプログラムを動作させることに関連付けられた価値を指定するものと、
入札のサービスレベル要求および価値をオファーのそれぞれの性能特性および価値に照合することによって、オファーの少なくとも一つを入札にマーケット取引所モデルを介して照合して、これにより少なくとも一つのマッチしたオファーを作成するように構成されたマーケット取引所と、からなり、
資源ブローカーは更に、少なくとも一つのマッチしたオファーに対応する各資源の特定のアプリケーションプログラムへの割り当てを命令し、これにより一つ以上の割り当てられた資源を作成するように構成されており、
要求ブローカーは更に、特定のアプリケーションプログラムの動作の一つ以上の割り当てられた資源への移転を命令するように構成されている、システム。
【請求項１１】
入札は、特定のアプリケーションプログラムによる使用のための複数の資源を取得する複数の入札からなる、請求項１０のシステム。
【請求項１２】
マーケット取引所は更に、（ａ）変更されたオファーに指定された性能特性および価値が入札に指定されたサービスレベル要求および価値にマッチするまで、資源ブローカーがオファーの少なくとも一つを変更することと、（ｂ）変更された入札に指定されたサービスレベル要求および価値がオファーの一つに指定された性能特性および価値にマッチするまで、要求ブローカーが入札を変更することと、（ｃ）変更された入札に指定されたサービスレベル要求および価値が変更されたオファーに指定された性能特性および価値にマッチするまで、要求ブローカーが入札を変更し、資源ブローカーがオファーの少なくとも一つを変更することと、の少なくとも一つを許容するように構成されている、請求項１０のシステム。
【請求項１３】
マーケット取引所は、商品マーケットモデル、提示価格モデル、テンダリング／コントラクト−ネットモデル、オークションモデル、独占モデル、少数独占モデル、入札ベースの比例資源共有モデル、の少なくとも一つを利用することによって少なくとも一つのマッチするオファーを同定するように構成されている、請求項１０のシステム。
【請求項１４】
要求ブローカーは更に、割り当てられた資源の性能がサービスレベル要求に従っているかどうか決定するように構成されており、
割り当てられた資源の性能がサービスレベル要求に従っていないとの判断に応じて、割り当てられた資源の少なくとも一つが代替資源により置き換えられる、請求項１０のシステム。
【請求項１５】
マーケット取引所は更に、代替資源に対応するオファーをマーケット取引所モデルを介して同定するように構成されている、請求項１４のシステム。
【請求項１６】
要求ブローカーは、入札に指定されたサービスレベル要求が変更されたために、割り当てられた資源の性能がサービスレベル要求に従っていないことを決定する、請求項１４のシステム。
【請求項１７】
資源は仮想資源からなる、請求項１０のシステム。
【請求項１８】
コンピューティング資源を割り当てるコンピュータ実装された方法であって、
アプリケーションプログラムによる使用のための仮想資源を提供するオファーを作成し、オファーの各々は性能特性および対応する資源に関連付けられた価値を指定し、
アプリケーションプログラムによる使用のための資源を取得する入札を作成し、各入札は対応するアプリケーションプログラムの動作についてのサービスレベル要求と対応するアプリケーションプログラムを動作させることに関連付けられた価値を指定し、
入札の各々のサービスレベル要求および価値をオファーの一つの性能特性および価値に照合することによって、オファーを入札にマーケット取引所モデルを介して照合して、これによりマッチしたオファーと入札のペアを作成し、
マッチしたオファーと入札に基づいて資源を割り当てる、
ことからなる方法。
【請求項１９】
照合するステップは、（ａ）変更されたオファーに指定された性能特性および価値が入札の一つに指定されたサービスレベル要求および価値にマッチするまで、オファーの少なくとも一つを変更することと、（ｂ）変更された入札に指定されたサービスレベル要求および価値がオファーの一つに指定された性能特性および価値にマッチするまで、入札の少なくとも一つを変更することと、（ｃ）変更された入札に指定されたサービスレベル要求および価値が変更されたオファーに指定された性能単位および価値にマッチするまで、入札の少なくとも一つとオファーの少なくとも一つを変更すること、の少なくとも一つからなる請求項１８の方法。
【請求項２０】
アプリケーションプログラムの動作を割り当てられた資源に移転する、ことから更になる請求項１８の方法。
【請求項２１】
割り当てられた資源の各々の性能がマッチしたオファーと入札のペアの対応する一つに指定されたサービスレベル要求に従っているかどうか決定し、これにより性能不足資源を同定し、
性能不足資源の性能が対応するサービスレベル要求に従っていないとの判断に応じて、性能不足資源の各々を代替資源により置き換える、
ことから更になる請求項１８の方法。
【請求項２２】
期間中に利益を生成した、割り当てられた資源の各々を同定し、
期間中の利益を生成した資源の少なくとも一つに投資することを決定する、
ことから更になる請求項１８の方法。
【請求項２３】
同定するステップは、
期間中に割り当てられた資源の各々によって生成された所得を監視することと、
割り当てられた資源の各々と関連付けられた費用と支出を同定することと、
各資源の費用および支出をその生成された所得から引くことからなり、
決定するステップは、その費用および支出よりも大きな所得を有する各資源が期間中に利益を生成したことを決定する、請求項２２の方法、
【請求項２４】
期間中に損失を生成した、割り当てられた資源の各々を同定することと、
期間中に損失を生成した資源の少なくとも一つから投資撤収することを決定することと、
から更になる請求項１８の方法。
【請求項２５】
同定するステップは、
期間中に割り当てられた資源の各々によって生成された所得を監視することと、
割り当てられた資源の各々と関連付けられた費用と支出を同定することと、
各資源の費用および支出をその生成された所得から引くことからなり、
決定するステップは、その費用および支出よりも小さな所得を有する各資源が期間中に損失を生成したことを決定する、請求項２４の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］この特許出願は、２００７年３月２７日に出願され、「仮想資源マーケットを介した資源の経済的割り当てと管理」と題された、米国仮特許出願番号６０／９０８，３５０への３５Ｕ．Ｓ．Ｃ．セクション１１９の下での優先権を主張し、その完全な開示はここで引用によりここに完全に組み込まれる。
【０００２】
発明は、分散されたコンピューディング資源の割り当てと管理に関する。より特定には、発明は、経済的マーケット（例えば、取引所）を介して利用可能な資源に資源要求を動的に照合することと以前の資源照合と現在のビジネス経済に基づいて利用可能な資源を管理することに関する。
【背景技術】
【０００３】
企業組織においては、コンピュート資源、ネットワーク資源、ストレージ資源のような分散されたコンピューティング資源が、多数のアプリケーションプログラムを動作させるのに提供される。分散されたコンピューティング資源は一つの一般的な場所で提供されても良く、その場合資源は一つ以上のローカルエリアネットワークを介して通信する。この代わりに、分散されたコンピューティング資源はいくつかの場所で提供されても良く、その場合資源は一つ以上のローカルエリアネットワークとインターネットのような一つ以上のワイドエリアネットワークを介して通信する。
【０００４】
分散されたコンピューティング資源は、アプリケーションプログラムの間で割り当てられてこれらのプログラムの動作を収容することができる。例えば、コンピュート資源、ネットワーク資源、およびストレージ資源は、各アプリケーションプログラムに割り当てることができ、各アプリケーションプログラムは、その動作のためにその割り当てられた資源を利用することができる。しかしながら、従来の割り当て方法は、特定の資源が現在過小利用されており追加のアプリケーションプログラムの動作を収容できるかどうかに基づいて特定の資源をアプリケーションプログラムに割り当てる。このようにして、資源がその最大容量またはそれより先まで利用されるまで、追加のアプリケーションプログラムの動作が資源に追加される。
【０００５】
そのような従来の資源の割り当ては、ビジネスまたは運用上の優先度、または運用上の要求、またはアプリケーションプログラムのサービス品質を考慮していない。従って、より優先度の高いアプリケーションプログラムの前により優先度の低いアプリケーションプログラムが先にアドレスされたという理由だけで、限定された貴重な資源が、より優先度の高いアプリケーションへの代わりにより優先度の低いアプリケーションプログラムに割り当てられ得る。従って、そのような従来の資源の割り当ては、アプリケーションプログラムまたはアプリケーションプログラムのユーザによって特定の資源に付与された価値に基づいた資源の経済的に効率的な分散をもたらす結果とはならない。よって、従来の方法を介して割り当てられた資源は、割り当てられた資源の特定の性能特性を完全に利用することができないアプリケーションプログラムによってそれらの資源が消費されるので、過小利用され得る。この代わりに、従来の方法を介して割り当てられた資源は、割り当てられた資源のものよりももっと洗練された性能特性を要求するアプリケーションプログラムによってそれらの資源が消費されるので、性能不足であり得る。
【０００６】
しかも、従来の資源割り当て方法では、資源の効率的および／または経済的な分散を維持するように資源が動的に再割り当てされない。一旦資源がアプリケーションプログラムに最初に割り当てられると、アプリケーションプログラムはいつまでもそれらの資源上で動作する。資源にアプリケーションプログラム動作がどんどん追加されて資源が過大利用になると、従来の解決策はより多くの資源を買うことである。その従来の解決策は、既存の資源の未使用の容量を見つけるように既存の資源を再割り当てすることを考えていない。その従来の解決策はまた、プログラムの動作をより好適な資源に動的に移転することの必要性を考えていない。
【０００７】
従って、アプリケーションプログラムの間で資源を効率的に割り当てることの必要が当該分野には存在する。資源のアプリケーションプログラムへの割り当てを決定するのにアプリケーションプログラムにとっての資源の経済的価値を割り振って考慮することの必要も存在する。過小利用または性能不足の資源を同定するのに割り当てられた資源上でのアプリケーションプログラムの性能を監視し、これによりアプリケーションプログラムへのより適切な資源の新たな割り当てを許容することの更なる必要が存在する。以前の資源割り当てに基づいて資源を管理してそれらの資源の投資または投資撤収の決定をガイドすることの別な必要が存在する。
【発明の概要】
【０００８】
発明は、マーケット取引所モデルを介して分散されたコンピューティング資源を割り当てて管理する方法とシステムを含む。マーケット取引所モデルを利用することは、アプリケーションプログラムによる使用のための資源の効率的かつ経済的な割り当てをもたらすことができる。資源は、各資源の単位についてのマーケット価格に基づいて割り当てることができる。従って、アプリケーションプログラムによる使用のための資源を提供するオファーを作成することができ、各オファーは少なくとも一つの性能特性および対応する資源単位に関連付けられた価値を指定する。アプリケーションプログラムによる使用のための資源を取得する入札も作成される。各入札は対応するアプリケーションプログラムの動作に必要な少なくとも一つのサービスレベルと、対応するアプリケーションプログラムを動作させることに関連付けられた認知された価値または対応するアプリケーションプログラムのサービスレベル要求に合致するかまたは超える資源を取得することの認知された価値に相当する値、を指定する。各入札のサービスレベル要求および価値をオファーの一つの性能特性および価値に照合することによって、入札がオファーにマーケット取引所モデルを介して照合される。そして、各オファーに関連付けられた資源がマッチした入札に関連付けられたアプリケーションプログラムに割り当てられ、アプリケーションプログラムの動作が割り当てられた資源に移転される。資源が監視されて、各入札のサービスレベル要求の遵守を確かなものとし、非遵守資源はマーケット取引所モデルを介して置き換えられる。
【０００９】
性能監視は、分散されたコンピューティング環境において資源が割り当てられている各アプリケーションプログラムについて行うことができる。このようにして、割り当てられた資源の性能が継続的にまたは周期的に監視されて、資源がアプリケーションプログラムのサービスレベル要求に合致することを確かなものとする。もし資源が要求されたサービスレベルを提供していなければ、サービスレベル要求に合致するであろう資源を取得するように新たな入札を作成してマーケット取引所に提出することができる。加えて、このようにして、割り当てられた資源の性能が継続的にまたは周期的に監視されて、アプリケーションプログラムユーザが未使用の資源（即ち、資源の過剰な容量）について支払いをしていることを示すであろう量によって資源の性能がサービスレベル要求を超えないことを確かなものとする。もし資源がアプリケーションプログラムによって十分に利用されていなければ、アプリケーションプログラムのサービスレベル要求に関してより好適および／または経済的である資源を取得するように新たな入札を作成してマーケット取引所に提出することができる。
【００１０】
よって、それらの資源が過小利用または性能不足であるかどうかを決定するように割り当てられた資源の性能を監視することができる。もしそうであれば、新たな資源を同定してアプリケーションプログラムに割り当てることができ、アプリケーションプログラムの動作を新たな資源に移転することができ、これによりアプリケーションプログラムにとって適切な性能の資源を提供する。
【００１１】
期間に渡って上述したように資源が割り当てられた後に、割り当てられた資源に関連する情報を使って資源を管理することができる。関係のある期間の間に資源によって生成された実際のまたは理想化された所得から各資源の実際のまたは理想化された費用と支出を差し引くことによって、資源の各々についての利益と損失の情報が生成される。利益と損失の情報は比較されて、所有者がどの資源について投資すべきか、所有者がどの資源についてその現在のポジションを維持すべきか、所有者がどの資源から投資撤収すべきかを決定する。所有者は、利益を生じている資源に投資することができ、損失を発生している資源から投資撤収することができる。
【００１２】
従って、所有者またはユーザは、どの資源がもっとも経済的であるか、価格と性能の両方を含めて、決定するように物理的資源を評価することができる。例えば、コンピュート資源は、それぞれが異なる価格と性能特性を有する、異なるプラットフォームからなることができる。期間についての各資源の利益と損失の一覧表の比較は、どのプラットフォームがより多くの性能単位当りの所得を生成しているかを示すであろう。その情報に基づいて、所有者は、どのプラットフォームを維持し、またはそこでの所有者のポジションを増加させるか、およびどのプラットフォームから投資撤収するかを決定することができる。上述したように資源が割り当てられているので、アプリケーションプログラムによる使用のために、価格と性能特性に基づいて、どの資源がより好適であるかの指標を評価が提供する。
【００１３】
発明のこれらおよびその他の側面、目的および特徴は、添付の図面を参照し、それらと共に読まれた例示的実施形態の以下の詳細な記載から明白となるであろう。
【図面の簡単な説明】
【００１４】
【図１】図１は、発明の例示的実施形態による、分散されたコンピューティング資源を割り当てて管理するシステムを描いたブロック図である。
【図２】図２は、発明の例示的実施形態による、分散されたコンピューティング資源を割り当てて管理する方法を描いたフローチャートである。
【図３】図３は、発明の例示的実施形態による、各仮想資源についての指定された性能単位毎の価格において利用可能な仮想資源を提供するオファーを作成する方法を描いたフローチャートである。
【図４】図４は、発明の例示的実施形態による、アプリケーションプログラムの動作に必要なサービスレベル要求を同定する方法を描いたフローチャートである。
【図５】図５は、発明の例示的実施形態による、アプリケーションプログラムのサービスレベル要求に合致するのに必要な資源単位を取得する入札を作成する方法を描いたフローチャートである。
【図６】図６は、発明の例示的実施形態による、アプリケーションプログラムによる使用のための仮想資源を取得するように資源オファーを要求入札に照合する方法を描いたフローチャートである。
【図７】図７は、発明の例示的実施形態による、マッチした資源オファーと要求入札に基づいてアプリケーションプログラムの動作に必要な資源を購入する取引を完了する方法を描いたフローチャートである。
【図８】図８は、発明の例示的実施形態による、アプリケーションプログラムの動作を購入された資源に移転する方法を描いたフローチャートである。
【図９】図９は、発明の例示的実施形態による、割り当てられた資源の性能とアプリケーションプログラムのサービスレベル要求を監視する方法を描いたフローチャートである。
【図１０】図１０は、発明の例示的実施形態による、アプリケーションプログラムのための分散されたコンピューティング資源の再割り当てを描いたブロック図である。
【図１１】図１１は、発明の例示的実施形態による、期間に渡る資源割り当てに基づいた資源の維持、取得および／または投資撤収を管理する方法を描いたフローチャートである。
【発明を実施するための形態】
【００１５】
同様の符号が同様の要素を表している図面を参照して、例示的実施形態の側面が記載される。
【００１６】
図１は、発明の例示的実施形態による、分散されたコンピューティング資源を割り当てて管理するシステム１００を描いたブロック図である。システム１００は、図２−９および１１に描かれた方法を参照してより詳細に記述される。
【００１７】
図２は、発明の例示的実施形態による、分散されたコンピューティング資源を割り当てて管理する方法２００を描いたフローチャートである。方法２００が図１および２を参照して記載される。
【００１８】
一実施形態によると、分散されたコンピューティング資源は、企業組織の資源であることができる。その場合、資源のユーザは組織のメンバーである。この代わりに、分散されたコンピューティング資源は、それらの資源を割り当てる中央システムに結合された多数の組織の資源であることができる。
【００１９】
図２のステップ２０５に描かれているように、資源ブローカー１０２はコンピューティングサービスを提供するための分散されたコンピューティング資源を監視して、一つ以上のアプリケーションプログラムを動作させるのに利用可能な資源容量を同定する。例示的実施形態では、分散されたコンピューティング資源は、コンピュートファブリック１０４、ネットワークファブリック１０６、およびストレージファブリック１０８のような物理的コンピューティング資源１０３からなることができる。コンピュートファブリック１０４、ネットワークファブリック１０６、およびストレージファブリック１０８の各々は、サービスを提供するように構成された一つ以上の仮想資源１０９からなることができる。例えば、図１に描かれているように、コンピュートファブリック１０４は仮想コンピュートファブリックＣ１およびＣ２からなり、ネットワークファブリック１０６は仮想ネットワークファブリックＮ１およびＮ２からなり、ストレージファブリック１０８は仮想ストレージファブリックＳ１およびＳ２からなる。
【００２０】
例示的実施形態では、資源ブローカー１０２は、分散されたコンピューティング環境で動作し、仮想資源１０９とマーケット取引所１１２の間のインターフェースとして機能しているソフトウェアモジュールからなることができる。
【００２１】
ステップ２１０では、資源ブローカー１０２が、各資源についての指定された性能単位当りの価格において利用可能な仮想資源１０９を提供するオファーを作成する。そのようなオファーはここでは、「資源オファー１１０」１１０と呼ばれる。一つ以上の資源オファー１１０が、ファブリック１０４、１０６、１０８の各々について作成されることができる。例えば、図１に描かれているように、資源オファー１１０は、コンピュートファブリックＣ１の３つのオファー、コンピュートファブリックＣ２の２つのオファー、ネットワークファブリックＮ１の３つのオファー、ネットワークファブリックＮ２の２つのオファー、ストレージファブリックＳ１の３つのオファー、およびストレージファブリックＳ２の２つのオファーからなる。ステップ２１０は、図３を参照して以下に更に詳細に記載される。
【００２２】
そして、ステップ２１５では、資源ブローカー１０２が資源オファー１１０をマーケット取引所１１２に通信する。例示的実施形態では、マーケット取引所１１２は、分散されたコンピューティング環境で動作し、資源ブローカー１０２と要求ブローカー１１４の間のインターフェースとして機能しているソフトウェアモジュールからなることができる。
【００２３】
ステップ２２０では、要求ブローカー１１４が、アプリケーションプログラムの動作に必要なサービスレベル資源要求を同定する。例示的実施形態では、要求された資源は、図１に描かれたコンピュートファブリック１０４、ネットワークファブリック１０６、およびストレージファブリック１０８の一つ以上のようなコンピューティング、ネットワーク、およびストレージ資源からなることができる。アプリケーションプログラムは、規範アプリケーションアーキテクチャ１１６のようなよく確立されたアーキテクチャに従うことができる。図１に描かれた例示的規範アプリケーションアーキテクチャは、規範アーキテクチャＡとして描かれたメッセージハブ、規範アプリケーションアーキテクチャＢとして描かれたｎ段アプリケーション、および規範アプリケーションアーキテクチャＣとして描かれたコンピュートファームからなる。その他のアプリケーションアーキテクチャも発明の範囲内である。ステップ２２０は、図４を参照して以下に更に詳細に記載される。
【００２４】
例示的実施形態では、要求ブローカー１１４は、分散されたコンピューティング環境で動作し、アプリケーションプログラムとマーケット取引所１１２の間のインターフェースとして機能しているソフトウェアモジュールからなることができる。
【００２５】
ステップ２２５では、アプリケーションプログラムのサービスレベル要求に合致するのに必要な資源単位を購入する入札が作成される。そのような入札はここでは、「要求入札１１８」と呼ばれる。一つ以上の要求入札１１８が各プログラムについて作成されることができる。例えば、図１に描かれているように、要求入札１１８は、各規範アーキテクチャＡ、Ｂ、Ｃについてのコンピュートファブリックへの入札、ネットワークファブリックへの入札、およびストレージファブリックへの入札からなる。ステップ２２５は、図５を参照して以下に更に詳細に記載される。
【００２６】
ステップ２３０では、要求ブローカー１１４が要求入札１１８をマーケット取引所１１２に通信する。そして、ステップ２３５では、マーケット取引所１１２が資源オファー１１０を要求入札１１８に照合して、資源の各アプリケーションプログラムへの経済的かつ効率的な割り当てを決定する。ステップ２３５は、図６を参照して以下に更に詳細に記載される。
【００２７】
ステップ２４０では、マーケット取引所１１２が、マッチしたオファーと入札に基づいてアプリケーションプログラムに必要な資源を割り当てる取引を完了する。ステップ２４０は、図７を参照して以下に更に詳細に記載される。
【００２８】
ステップ２４５では、アプリケーションプログラムの動作が割り当てられた資源に移転される。ステップ２４５は、図８を参照して以下に更に詳細に記載される。
【００２９】
ステップ２５０では、要求ブローカー１１４が割り当てられた資源の性能と各アプリケーションプログラムのサービスレベル要求を監視し、割り当てられた資源の性能が各アプリケーションプログラムのサービスレベル要求に合致することを確かなものとする。ステップ２５０は、図１０を参照して以下に更に詳細に記載される。
【００３０】
ステップ２５５では、ステップ２５０で完了された性能監視に基づいて、要求ブローカー１１４が、割り当てられた資源が特定のアプリケーションプログラムのサービスレベル要求に対して過小利用であるかまたは性能不足であるかどうかを決定する。もしそうであれば、方法２００はステップ２２５に分岐して戻り、アプリケーションプログラムのサービスレベル要求に合致する新たな資源を取得する。もし要求ブローカー１１４がステップ２５５で、割り当てられた資源がアプリケーションプログラムのサービスレベル要求に合致すると決定すれば、方法２００はステップ２６０に分岐する。
【００３１】
ステップ２６０では、方法２００は、アプリケーションプログラムの動作が完了したかどうか決定する。もしそうでなければ、方法２００はステップ２５０に分岐して戻り、割り当てられた資源の性能とアプリケーションプログラムのサービスレベル要求の監視を続ける。もし方法２００がステップ２６０で、アプリケーションプログラムの動作が完了したと決定すれば、方法２００はステップ２６５に分岐し、そこで割り当てられた資源からアプリケーションプログラムの動作が除去される。
【００３２】
方法２００はまた、図１のステップ２７０に描かれているように、所定の期間に渡る資源割り当てに基づいた資源の維持、取得、投資撤収を管理することを含む。ステップ２７０は、図１１を参照して以下に更に詳細に記載される。
【００３３】
図３は、図２のステップ２１０で参照されたように、発明の例示的実施形態による、各仮想資源１０９についての指定された性能単位毎の価格において利用可能な仮想資源１０９を提供するオファーを作成する方法２１０を描いたフローチャートである。方法２１０が、図１および３を参照して記載される。
【００３４】
ステップ３０５では、資源ブローカー１０２が、アプリケーションプログラムによる使用のために利用可能な物理的資源１０３を選択する。例えば、資源ブローカー１０２は、コンピュートファブリック１０４、ネットワークファブリック１０６、およびストレージファブリック１０８のようなコンピュート、ネットワークまたはストレージ資源を選択することができる。例示的実施形態では、資源ブローカー１０２は、各資源の使用を監視して、各資源の利用されていない過剰な容量を同定することができる。そのような過剰な容量は、アプリケーションプログラムによる使用のために利用可能な資源として同定することができる。
【００３５】
そして、ステップ３１０では、資源ブローカー１０２が、アプリケーションプログラムによる使用のために利用可能な選択された物理的資源１０３の量を同定する。例示的実施形態では、各資源の量は、特定の製造者および／または部品を含むハードウェアタイプおよび／または構成と、各資源に現在利用可能な過剰な容量、からなることができる。この点では、利用可能な物理的資源１０３は組み合わされて、仮想コンピュートファブリックＣ１、Ｃ２、仮想ネットワークファブリックＮ１、Ｎ２、および仮想ストレージファブリックＳ１、Ｓ２のような仮想資源１０９を作成することができる。例えば、分散された場所において利用可能なコンピュータプロセッサは統合されて、アプリケーションプログラムによる使用のために利用可能な仮想コンピューティング資源を作成することができる。代表的な資源容量は、コンピューティング資源についてのＣＰＵサイクル、ネットワーク資源についての帯域幅、およびストレージ資源についてのディスクスペースおよび／またはメモリからなることができる。
【００３６】
利用可能な資源の量はまた、各仮想資源１０９に関連付けられた性能および信頼性特性からなることができる。例えば、そのような特性は、実行時間、応答時間、（フォルトレートのような）結果の正確性、利用可能性、信頼性、安全性、または仮想資源１０９の性能を示すその他の好適な特性からなることができる。
【００３７】
ステップ３１５では、資源ブローカー１０２が、仮想資源１０９の単位量を同定し、アプリケーションプログラムによる使用のための仮想資源１０９を提供するオファーに含める。この点では、資源ブローカー１０２は、利用可能な仮想資源１０９の最大量までの同定された単位の増分で、割り当てに利用可能な仮想資源１０９の部分を同定することができる。もし資源ブローカー１０２が仮想コンピュートファブリックＣ１、Ｃ２のような多数の仮想資源１０９を同定すれば、ステップ３１０では、資源ブローカー１０２は各仮想資源１０９の単位量を同定することができる。
【００３８】
ステップ３２０では、アプリケーションプログラムによる使用のための仮想資源１０９を提供するオファーに含められるであろう仮想資源１０９の各単位について価格が確立される。例示的実施形態では、資源ブローカー１０２は、ユーザによって資源ブローカー１０２に入力されたかまたは完了された資源割り当て取引の履歴データに基づいて資源ブローカー１０２によって求められた、資源の精巧さ、費用データ、供給、需要、またはその他の経済的データに基づいて、仮想資源１０９の単位当りの価格を計算することができる。例えば、より精巧な資源はより精巧でない資源よりも高価であることができ、高需要の資源は低需要の資源よりも高価であることができる。価格は、アプリケーションプログラムによる使用のために資源が販売されるであろう金額からなることができる。この代わりに、価値は、実際の金銭的価値には基づかない資源の認知された価値を表すことができる。例えば、認知された価値は、ビジネス企業内で確立されたビジネス要求および優先度に基づくことができる。
【００３９】
ステップ３２５では、資源ブローカー１０２は、アプリケーションプログラムによる使用のための利用可能な仮想資源１０９を提供する一つ以上の資源オファー１１０を生成する。資源オファー１１０は、ステップ３１０−３２０で求められた情報に基づいて、仮想資源１０９、利用可能な仮想資源１０９の量（容量と性能を含む）、および仮想資源１０９の単位価格を指定することができる。
【００４０】
ステップ３３０では、資源ブローカー１０２は、別の仮想資源１０９についての資源オファー１１０を生成するかどうかを決定する。例えば、もし資源ブローカー１０２が唯一利用可能なコンピュートファブリック１０４についての資源オファー１１０を生成したのであれば、資源ブローカー１０２は利用可能なネットワークおよびストレージファブリック１０６、１０８についての資源オファー１１０を生成することを決めることができる。その場合、方法２１０はステップ３０５に分岐して戻り、別の資源についての資源オファー１１０を生成する。もし方法２１０がステップ３３０で、別の仮想資源１０９についての資源オファーを生成しないと決定すれば、方法２１０はステップ２１５（図２）に分岐する。
【００４１】
図４は、図２のステップ２２０で参照されたように、発明の例示的実施形態による、アプリケーションプログラムの動作に必要なサービスレベル要求を同定する方法２２０を描いたフローチャートである。方法２２０が、図１および４を参照して記載される。
【００４２】
ステップ４０５では、アプリケーションプログラムが選択される。そして、選択されたアプリケーションプログラムのための特定のサービスレベル要求がステップ４１０−４３５で同定される。
【００４３】
ステップ４１０では、アプリケーションプログラムを動作させるのに利用可能な予算が同定される。例示的実施形態では、予算はアプリケーションプログラムのユーザによって入力され、ユーザの予算的制約に合致するように設計されることができる。例えば、ユーザは、特定のプログラムのための既知の資金に基づいてアプリケーションを動作させるのに利用可能な予算を入力することができる。別の例示的実施形態では、予算情報は、アプリケーションプログラムを動作させることに関連付けられた価値からなることができる。価値は、アプリケーションプログラムを動作させるのに必要な資源を取得するのにユーザが支払う気がある金額からなることができる。この代わりに、価値は、実際の金銭的価値に基づかないアプリケーションプログラムの認知された価値を表すことができる。例えば、認知された価値は、ユーザにとってのおよび／または分散されたコンピューティング環境内で追加のアプリケーションプログラムを動作させている他のユーザにとっての、アプリケーションプログラムの動作の優先度に基づくことができる。予算的制約は、費用に関係なく利用可能な最善の資源を取得する命令、最も廉価な資源を取得する命令、指定された総価格または資源単位当りの価格で資源を取得する命令、または別の好適な予算フォーマットを介して資源を取得する命令のような、いくつかの代替フォーマットで提供されることができる。
【００４４】
ステップ４１５では、アプリケーションプログラムが動作しなければならない期間が同定される。例示的実施形態では、動作の期間は、アプリケーションプログラムのユーザによって入力され、ユーザの予算的および顧客サービス制約に合致するように設計されることができる。例えば、ユーザは、２４／７（1日当り２４時間、週に７日）、２４／５（1日当り２４時間、週に５日）、月曜から金曜の午前8時から午後5時まで、またはアプリケーションプログラムが動作しなければならない他の好適な期間のような、アプリケーションプログラムが動作しなければならない期間を入力することができる。ユーザはまた、予算的制約に基づいて指定された動作の期間を調節することができる。例えば、ユーザは、オフピークの期間にアプリケーションプログラムを動作させることを指定して、アプリケーションプログラムを動作させることの費用を削減することができる。
【００４５】
ステップ４２０−４３５では、アプリケーションプログラムを動作させるのに必要なコンピューティング資源、ネットワーク資源、ストレージ資源、および他の資源がそれぞれ決定される。例示的実施形態によると、ステップ４２０−４３５は、特定の製造者および／または部品を含むハードウェアタイプおよび／または構成と、各資源に必要な容量を同定すること、からなることができる。要求される代表的な資源容量は、コンピューティング資源についてのＣＰＵサイクル、ネットワーク資源についての帯域幅、およびストレージ資源についてのディスクスペースおよび／またはメモリからなることができる。ステップ４２０−４３５はまた、特定のパラメータ内でアプリケーションプログラムを動作させるのに各要求される資源についての性能特性を同定すること、からなることができる。例えば、そのような特性は、実行時間、応答時間、（フォルトレートのような）結果の正確性、利用可能性、信頼性、安全性、または資源の性能を示すその他の好適な特性からなることができる。
【００４６】
例示的実施形態において、要求ブローカー１１４は、望まれるようにアプリケーションプログラムを動作させるのに必要な最小または最適資源要求に基づいて要求される資源を決定することができる。この場合、要求ブローカー１１４はその情報をアプリケーションプログラムの仕様から直接取得することができる。この代わりに、アプリケーションプログラムのユーザは、所望の、構成可能な設定を入力して、一つ以上の資源の量を指定することができる。この点では、ユーザは、要求ブローカー１１４がステップ４２０−４３５で読むことができる、所望のサービスレベルを提供するであろう特性を入力することができる。
【００４７】
例示的実施形態によると、サービスレベル要求は、閾値または範囲の形で表現することができる。例えば、要求される応答時間を、資源の性能がサービスレベル要求閾値に合致するかどうかの将来的な決定を許容する１秒未満に確立することができる。代替例として、要求される応答時間は０．５秒から１．５秒のような範囲に確立することができる。その場合、もし応答時間が指定された範囲内に収まれば、資源はサービスレベル要求に合致する。性能閾値および範囲は各サービスレベル要求について指定することができる。
【００４８】
ステップ４４０では、方法２２０は、別のアプリケーションプログラムについてサービスレベル要求を同定するかどうかを決定する。もしそうならば、方法２２０はステップ４０５に分岐して戻り、そのためのサービスレベル要求をそれが同定することになる別のアプリケーションプログラムを選択する。この点では、方法２２０は多数のアプリケーションプログラムについてのサービスレベル要求を同定することができる。例えば、サービスレベル要求は、図１に描かれた規範アーキテクチャＡ、Ｂ、Ｃの一つを利用しているアプリケーションについて同定することができる。もし方法２２０がステップ４４０で、別のアプリケーションプログラムについてのサービスレベル要求を同定しないであろうと決定すれば、方法２２０はステップ２２５（図２）に分岐する。
【００４９】
ステップ４１０−４３５を参照して記載された特定のサービスレベル要求は、特定のアプリケーションプログラムの特定の要求と、アプリケーションプログラムのユーザまたは分散されたコンピューティング資源の所有者の特定の要求に依存することができる。従って、サービスレベル要求は、ステップ４１０−４３５に記載された項目の全てまたはサブセットからなり得て、追加のサービスレベル要求も発明の範囲内である。
【００５０】
図５は、図２のステップ２２５で参照されたように、発明の例示的実施形態による、アプリケーションプログラムのサービスレベル要求に合致するのに必要な資源単位を取得する入札を作成する方法２２５を描いたフローチャートである。方法２２５が、図１および５を参照して記載される。
【００５１】
ステップ５０５では、要求ブローカー１１４が、それについて一つ以上の要求入札１１８が作成されるであろう第一のアプリケーションプログラムを選択する。そして、ステップ５１０では、要求ブローカー１１４が、選択されたアプリケーションプログラムの動作に必要な第一の資源を選択する。例えば、要求ブローカー１１４は、アプリケーションプログラムの動作に必要なコンピュート、ネットワーク、またはストレージ資源の一つを選択することができる。
【００５２】
ステップ５１５では、要求ブローカー１１４が、図４のステップ４１５−４３５で決定されたサービスレベル要求に基づいて、選択された資源のためのサービスレベル要求を読み出す。加えて、ステップ５２０では、要求ブローカー１１４が、図４のステップ４１０で決定された予算に基づいて、アプリケーションプログラムを動作させることの予算的制約を示す予算情報を読み出す。
【００５３】
そして、ステップ５２５では、要求ブローカー１１４が、サービスレベル要求と利用可能な予算に基づいて、アプリケーションプログラムの動作のための選択された資源を取得するのにそれが支払うであろう選択された資源の単位当りの価格を確立する。例示的実施形態では、要求ブローカー１１４は、ユーザによって要求ブローカー１１４に入力されたかまたは完了された資源割り当て取引の履歴データに基づいて要求ブローカー１１４によって求められた、費用データ、供給、需要、またはその他の経済的データに基づいて、資源単位当りの価格を計算することができる。要求ブローカー１１４はまた、予算情報とアプリケーションプログラムの優先度に依って、費用に関係なく利用可能な最善の資源を取得する命令、最も廉価な資源を取得する命令、指定された総価格または資源単位当りの価格で資源を取得する命令、または別の好適な予算フォーマットを介して資源を取得する命令に基づいて、単位当りの価格を確立することができる。
【００５４】
ステップ５３０では、要求ブローカー１１４が、選択されたアプリケーションプログラムによる使用のための選択された資源を取得する一つ以上の要求入札１１８を生成する。要求入札１１８は、ステップ５１５−５２５で取得された情報に基づいて、資源、資源が満たすべきサービスレベル要求、およびユーザが資源を取得するのに支払うであろう単位価格を指定することができる。前述した通り、単位価格は、実際の金銭的価値または認知された価値からなることができる。
【００５５】
ステップ５３５では、要求ブローカー１１４が、アプリケーションプログラムを動作させるのに必要な別の資源についての要求入札１１８を生成するかどうかを決定する。例えば、もし要求ブローカー１１４がコンピュート資源だけについての要求入札１１８を生成したのであれば、要求ブローカー１１４はネットワークまたはストレージ資源についての要求入札１１８を生成することを決めることができる。その場合、方法２２５はステップ５１０に分岐して戻り、別の資源についての要求入札１１８を生成する。もし方法２２５がステップ５３５で、別の資源についての要求入札１１８を生成しないと決定すれば、方法２２５はステップ５４０に分岐する。
【００５６】
そして、ステップ５４０では、要求ブローカー１１４が、別のアプリケーションプログラムについての要求入札１１８を生成するかどうかを決定する。もしそうであれば、方法２２５はステップ５０５に分岐して戻り、別のアプリケーションプログラムについての要求入札１１８を生成する。もし方法２２５がステップ５４０で、別のアプリケーションプログラムについて要求入札１１８を生成しないと決定すれば、方法２２５はステップ２３０（図２）に分岐する。
【００５７】
図６は、図２のステップ２３５で参照されたように、発明の例示的実施形態による、アプリケーションプログラムによる使用のための仮想資源１０９を取得するように資源オファー１１０を要求入札１１８に照合する方法２３５を描いたフローチャートである。方法２３５が、図１および６を参照して記載される。
【００５８】
ステップ６０２では、マーケット取引所１１２が、選択されたアプリケーションプログラムを動作させるのに利用可能である資源を同定するであろうアプリケーションプログラムを選択する。そして、ステップ６０５では、マーケット取引所１１２が、選択されたアプリケーションプログラムを動作させるのに必要な資源を選択する。より詳細には、もし選択されたアプリケーションプログラムの動作に多数の資源が必要であれば、方法２３５はそれらの資源の一つをステップ６０５で選択し、これにより選択された資源について資源オファー１１０を要求入札１１８に照合することを方法２３５に許容する。そして、以下に記載するように、照合ステップはアプリケーションプログラムの動作に必要な他の資源について繰り返されることができる。
【００５９】
ステップ６１０では、マーケット取引所１１２が、選択されたアプリケーションプログラムについて選択された資源の単位を購入する要求入札を選択する。そして、ステップ６１５では、マーケット取引所１１２が、選択された要求入札に指定されたサービスレベル要求と価格パラメータにおいて仮想資源１０９を提供する資源オファーが存在するかどうかを決定する。従って、ステップ６２０では、マーケット取引所１１２が、そのようなマッチするオファーが存在するかどうかを決定する。もしそうであれば、方法２３５はステップ６３０に分岐する。もしそうでなければ、方法２３５はステップ６２５に分岐し、そこではマーケット取引所１１２は、マッチするオファーが同定されるまで、資源および要求ブローカー１０２、１１４に資源オファー１１０および／または選択された要求入札を変更することを許容する。方法２３５はそれからステップ６３０に進む。
【００６０】
選択された要求入札にマッチする資源オファー１１０を同定するのにマーケット取引所１１２によって採用される方法は、経済的マーケットにおいて商品を割り当てるあらゆる好適なフォーマットからなることができる。例えば、マーケット取引所１１２は、商品マーケットモデル、提示価格モデル、テンダリング／コントラクト−ネットモデル、オークションモデル（ダッチオークションモデルを含む）、独占／少数独占モデル、および／または入札ベースの比例資源共有モデルのような方法を利用することができる。これらの例示的実施形態では、マーケット取引所１１２は、選択された要求入札に指定された予算パラメータ内でマーケット交換価格において資源を効率的に割り当てる経済的マーケットを運用する。
【００６１】
選択された要求入札に指定された予算パラメータを考慮する際には、マーケット取引所１１２は、資源オファーを比較して要求入札に合致する最善の資源オファーを同定することができる。例えば、もし多数の資源オファーが適当なタイプの資源をオファーするならば、マーケット取引所１１２は、要求入札による費用に関係なく利用可能な最善の資源を取得する命令、最も廉価な資源を取得する命令、指定された総価格または資源単位当りの価格で資源を取得する命令、または別の好適な予算フォーマットを介して資源を取得する命令のような、予算的制約の下で最善の資源オファーを同定することができる。
【００６２】
ステップ６３０では、マーケット取引所１１２が、マッチする資源オファーを選択された要求入札にリンクする。そして、ステップ６３５では、マーケット取引所１１２は、選択された資源の追加の単位が選択されたアプリケーションプログラムを動作させるのに必要であるかどうかを決定する。例えば、もしマッチする資源オファーがサービスレベル要求に合致するのに必要な資源の一部だけを提供するのであれば、マーケット取引所１１２は選択された資源の追加の単位が必要であると決定することができる。もしそうであれば、方法はステップ６１０に分岐して戻り、指定された価格で選択された資源の単位を購入する別の要求入札を選択する。新たに選択された要求入札は、選択された資源の量がマッチする資源オファーによって提供された資源の量に等しい量だけ削減されている、以前に選択された要求入札の変更バージョンであることができる。
【００６３】
ステップ６３５に戻って、もし選択された資源の追加の単位が必要でなければ、方法２３５はステップ６４０に分岐する。ステップ６４０では、マーケット取引所１１２は、別の資源が選択されたアプリケーションプログラムを動作させるのに必要であるかどうかを決定する。例えば、もしマーケット取引所１１２がコンピュート資源だけについてマッチする資源オファー１１０を同定したのであれば、マーケット取引所１１２はアプリケーションプログラムを動作させるのに必要なネットワークまたはストレージ資源についてマッチする資源オファー１１０を同定することを決めることができる。その場合、方法２３５はステップ６０５に分岐して戻り、別の資源についてマッチする資源オファー１１０を同定する。もしマーケット取引所１１２がステップ６４０で、別の資源についてマッチする資源オファー１１０を同定しないと決定すれば、方法２３５はステップ６４５に分岐する。
【００６４】
そして、ステップ６４５では、マーケット取引所１１２が、別のアプリケーションプログラムについて要求入札１１８と資源オファー１１０を照合するかどうかを決定する。もしそうであれば、方法２３５はステップ６０２に分岐して戻る。もしそうでなければ、方法２３５はステップ２４０（図２）に分岐する。
【００６５】
図７は、図２のステップ２４０で参照されたように、発明の例示的実施形態による、マッチした資源オファー１１０と要求入札１１８に基づいてアプリケーションプログラムの動作に必要な資源を購入する取引を完了する方法２４０を描いたフローチャートである。方法２４０が、図１および７を参照して記載される。
【００６６】
ステップ７０２では、マーケット取引所１１２がアプリケーションプログラムを選択する。そして、ステップ７０５では、マーケット取引所１１２が、要求入札とそれのアプリケーションプログラムについてのマッチする資源オファーを選択する。ステップ７１０では、要求ブローカー１１４が資源ブローカー１０２に支払いを確約し、資源オファーに指定された仮想資源１０９を利用する。ステップ７１５では、マーケット取引所１１２が要求ブローカー１１４のアカウントに勘定を借方に記入し資源ブローカー１０２のアカウントに勘定を貸方に記入して仮想資源１０９の使用についての支払いの確約を清算する。そして、ステップ７２０では、マーケット取引所１１２は、資源オファーに指定された費用の支払いがもしあればそれと引き換えに資源ブローカー１０２が資源オファーに指定された仮想資源１０９を提供すること（マッチした要求入札に指定されたサービスレベル要求に合致することの確約を含む）に合意する、要求ブローカー１１４と資源ブローカー１０２の間のサービスレベル合意を発行する。
【００６７】
ステップ７２５では、マーケット取引所１１２が、アプリケーションプログラムについて追加のマッチする要求入札１１８と資源オファー１１０が存在するかどうかを決定する。もしそうであれば、方法２４０はステップ７０５に分岐して戻り、アプリケーションプログラムの動作に必要な別の資源についての取引を完了する。もしそうでなければ、方法２４０はステップ７３０に分岐する。
【００６８】
ステップ７３０では、マーケット取引所１１２が、別のアプリケーションプログラムについて資源を取得する取引を完了するかどうかを決定する。もしそうであれば、方法２４０はステップ７０２に分岐して戻り、別のアプリケーションプログラムを選択する。もしそうでなければ、方法２４０はステップ２４５（図２）に分岐する。
【００６９】
図８は、図２のステップ２４５で参照されたように、発明の例示的実施形態による、アプリケーションプログラムの動作を購入された資源に移転する方法２４５を描いたフローチャートである。方法２４５が、図１および８を参照して記載される。
【００７０】
ステップ８０２では、アプリケーションプログラムが選択される。ステップ８０５では、資源ブローカー１０２が、選択されたアプリケーションプログラムについて購入されている仮想資源１０９を選択する。そして、ステップ８１０では、資源ブローカー１０２が、購入された仮想資源１０９をアプリケーションプログラムに割り当て、そしてステップ８１５では、要求ブローカー１１４が、アプリケーションプログラムの動作のために割り当てられた仮想資源１０９を利用することをアプリケーションプログラムに命令する。
【００７１】
ステップ８２０では、方法２４５が、アプリケーションプログラムについて別の資源が購入されたかどうかを決定する。もしそうであれば、方法２４５はステップ８０５に分岐して戻り、別の仮想資源１０９をアプリケーションプログラムに割り当てる。もしそうでなければ、方法２４５はステップ８２５に分岐する。
【００７２】
ステップ８２５では、方法２４５が、別のアプリケーションプログラムの動作を購入された資源に移転するかどうかを決定する。もしそうであれば、方法２４５はステップ８０２に分岐して戻り、別のアプリケーションプログラムを選択する。もしそうでなければ、方法２４５はステップ２５０（図２）に分岐する。
【００７３】
図９は、図２のステップ２５０で参照されたように、発明の例示的実施形態による、割り当てられた資源の性能とアプリケーションプログラムのサービスレベル要求を監視する方法２５０を描いたフローチャートである。方法２５０が、図１および９を参照して記載される。
【００７４】
ステップ９０５では、要求ブローカー１１４が、アプリケーションプログラムによって利用されている資源を選択する。例えば、要求ブローカー１１４は、アプリケーションプログラムによって利用されているコンピューティング、ネットワーク、またはストレージ資源の一つを選択することができる。
【００７５】
ステップ９１０では、要求ブローカー１１４が、選択された資源についての要求入札に指定されたアプリケーションプログラムのサービスレベル要求を決定する。例示的実施形態では、要求ブローカー１１４は、サービスレベル合意に掲載されたサービスレベル要求に基づいてその決定をすることができる。そして、ステップ９１５では、要求ブローカー１１４が、この資源について（選択された資源についての要求入札に指定されたサービスレベル要求以外の）新たなサービスレベル要求が確立されているかどうかを決定する、もしそうであれば、方法２５０はステップ９２０に分岐し、例えばアプリケーションプログラムのユーザによって入力された新たな要求を読み出すことによって、アプリケーションプログラムの新たなサービスレベル要求を決定する。方法２５０はそれからステップ９２５に進む。ステップ９１５に戻って、もし要求ブローカー１１４がアプリケーションプログラムについての新たなサービスレベル要求が確立されていないと決定すれば、方法２５０はステップ９２５に直接分岐することができる。
【００７６】
ステップ９２５では、要求ブローカー１１４が、アプリケーションプログラムによって利用されている通りの選択された資源の性能を監視する。ステップ９３０では、要求ブローカー１１４が、選択された資源の性能をアプリケーションプログラムのサービスレベル要求と比較する。そして、ステップ９３５では、要求ブローカー１１４が、資源の性能がアプリケーションプログラムのサービスレベル要求を超えるかどうか決定する。もしそうであれば、方法はステップ９４０に分岐する。
【００７７】
ステップ９４０では、要求ブローカー１１４が、資源の過剰について支払いをしているかどうかを決定する。例えば、要求ブローカー１１４は、もしアプリケーションプログラムが資源の最大利用においてまたはその近くで動作しており資源が過剰な容量を有していれば、資源の過剰について支払いをしていると決定することができる。この代わりに、もし資源は過剰な容量を有するが現在アプリケーションプログラムは資源の最大利用よりも下で動作しているのであれば、要求ブローカー１１４は資源の過剰について支払いをしていないと決定することができる。もし要求ブローカー１１４が資源の過剰について支払いをしていると決定すれば、方法２５０はステップ２５５（図２）に分岐し、そこで要求ブローカー１１４は過小利用な資源について支払いをしていると決定する。
【００７８】
ステップ９４０に戻ると、もし要求ブローカー１１４が資源の過剰について支払いをしていないと決定すれば、方法２５０はステップ９５５に分岐し、選択された資源の監視を続ける。
【００７９】
ステップ９３５に戻ると、もし要求ブローカー１１４が資源の性能はアプリケーションプログラムのサービスレベル要求を超えていないと決定すれば、方法２５０はステップ９４５に分岐する。ステップ９４５では、要求ブローカー１１４は、選択された資源の性能がアプリケーションプログラムのサービスレベル要求に合致していないかどうかを決定する。もしそうであれば、方法はステップ９５０に分岐し、そこで要求ブローカー１１４は資源がサービスレベル要求に合致することができないかどうかを決定する。例えば、要求ブローカー１１４は、もしアプリケーションプログラムが資源の最大利用においてまたはそれより下で動作しており資源がサービスレベル要求に合致するのに十分な性能を提供していなければ、選択された資源はサービスレベル要求に合致することができないと決定することがきできる。この代わりに、もしアプリケーションプログラムが一時的にサービスレベル要求に指定された利用を超えて動作していれば、要求ブローカー１１４は資源がサービスレベル要求に合致することができると決定することができる。もし要求ブローカー１１４が資源はサービスレベル要求に合致することができないと決定すれば、方法２５０はステップ２５５（図２）に分岐し、そこで要求ブローカー１１４は性能不足の資源について支払いをしていると決定する。
【００８０】
ステップ９５０に戻ると、もし要求ブローカー１１４が資源の過剰について支払いをしていないと決定すれば、方法２５０はステップ９５５に分岐し、選択された資源の監視を続ける。
【００８１】
ステップ９４５に戻ると、もし要求ブローカー１１４が資源の性能はサービスレベル要求より少なくないと決定すれば、方法２５０はステップ０９５５に分岐し、選択された資源の監視を続ける。
【００８２】
ステップ９５５から、方法はステップ９６０に進み、そこで要求ブローカー１１４は、アプリケーションプログラムによって利用されている別の資源の性能を監視するかどうかを決定する。もしそうであれば、方法２５０はステップ９０５に分岐して戻り、監視のための別の資源を選択する。もしそうでなければ、方法はステップ２５５（図２）に分岐し、そこで要求ブローカー１１４はアプリケーションプログラムによって利用されている資源は過小利用または性能不足ではないと決定することができる。
【００８３】
方法２５０は、サービスレベル合意を介して分散されたコンピューティング環境で資源を割り当てられている各アプリケーションプログラムについて行うことができる。このようにして、割り当てられた資源の性能が継続的にまたは周期的に監視されて、資源がサービスレベル要求に合致することを確かなものとする。もし資源が要求されたレベルのサービスを提供していなければ、要求ブローカー１１４は新たな要求入札１１８を生成し、それらの入札をマーケット取引所１１２に提出して、サービスレベル要求に合致するであろう資源を取得する。加えて、このようにして、割り当てられた資源の性能が継続的にまたは周期的に監視されて、要求ブローカー１１４が未使用の資源（即ち、資源の過剰な容量）について支払いをしていることを示すであろう量によって資源の性能がサービスレベル要求を超えないことを確かなものとする。もし資源がアプリケーションプログラムによって十分に利用されていなければ、要求ブローカー１１４は新たな要求入札１１８を生成し、それらの入札をマーケット取引所１１２に提出して、サービスレベル要求に関してより好適および／または経済的である資源を取得する。
【００８４】
図９に描かれた方法２５０は、割り当てられた資源の性能を監視して、それらの資源が過小利用または性能不足であるかどうかを決定する。もしそうであれば、方法２５０は図２に描かれた方法２００に戻ってステップ２２５−２４５を行う。方法２００のステップ２２５−２４５では、新たな資源が同定されてアプリケーションプログラムに割り当てられ、アプリケーションプログラムの動作が新たな資源に移転される。
【００８５】
図１０は、発明の例示的実施形態による、システム１００におけるアプリケーションプログラムのための分散されたコンピューティング資源の再割り当てを描いたブロック図である。図１０に描かれているように、要求ブローカー１１４は、現在割り当てられているネットワークおよびストレージ仮想資源１０９についてのサービスレベル合意に違反を同定している。即ち、現在割り当てられているネットワークおよびストレージ仮想資源１０９の性能は、それらの仮想資源１０９と関連するサービスレベル合意に指定されたサービスレベル要求に合致していない。より詳細には、仮想ネットワークファブリックＮ２は割り当てられた資源間に必要な通信レートを提供するのに不十分であり、要求ブローカー１１４はより速いネットワーク資源を取得する必要がある。加えて、仮想ストレージファブリックＳ２は必要な格納および検索レートを提供するのに不十分であり、要求ブローカー１１４はより弾力性のあるストレージ資源を取得する必要がある。
【００８６】
従って、要求ブローカー１１４は、指定されたサービスレベル要求に合致することができる新たなネットワークおよびストレージ資源を取得する新たな要求入札１１８を生成し、それらの入札をマーケット取引所１１２に提出する。マーケット取引所１１２はマッチする資源オファー１１０を同定し、新たなネットワークおよびストレージ仮想資源１０９をアプリケーションプログラムに割り当てるサービスレベル合意を完了する。そして、アプリケーションプログラムの動作が新たなネットワークおよびストレージ仮想資源１０９に移転される。図１０に描かれているように、アプリケーションプログラムの動作は仮想ネットワークファブリックＮ２から仮想ネットワークファブリックＮ１へおよび仮想ストレージファブリックＳ２から仮想ストレージファブリックＳ１へ移転される。
【００８７】
また、図１０に描かれているように、要求ブローカー１１４は現在割り当てられているコンピュート仮想資源１０９についての予算に違反を同定している。即ち、現在割り当てられている仮想コンピュートファブリックＣ１は、これらの資源と関連するサービスレベル合意に指定されたサービスレベル要求を超えている。より詳細には、要求ブローカー１１４は未使用のコンピュート資源について過払いしており、アプリケーションプログラムを動作させる費用を削減しそうな、サービスレベル要求内で実行される新たな資源を取得する必要がある。
【００８８】
従って、要求ブローカー１１４は、指定されたサービスレベル要求内で実行される新たなコンピュート資源を取得する一つ以上の新たな要求入札１１８を生成し、それらの入札をマーケット取引所１１２に提出する。マーケット取引所１１２は、マッチする資源オファー１１０を同定し、新たなコンピュート仮想資源１０９をアプリケーションプログラムに割り当てるサービスレベル合意を完了する。そして、アプリケーションプログラムの動作が新たなコンピュート仮想資源１０９に移転される。図１０に描かれているように、アプリケーションプログラムの動作は仮想コンピュートファブリックＣ１から仮想コンピュートファブリックＣ２へ移転される。
【００８９】
図１１は、図２のステップ２７０で参照されたように、発明の例示的実施形態による、期間に渡る資源割り当てに基づいた資源の維持、取得および／または投資撤収を管理する方法２７０を描いたフローチャートである。方法２７０が、図１および１１を参照して記載される。
【００９０】
ステップ１１０５では、資源ブローカー１０２のような資源管理者が、各物理的資源１０３によって生成された所得を監視する。例示的実施形態では、資源管理者は、各特定の物理的資源１０３に対応するサービスレベル合意についての支払いを総計することによってそのような生成された所得を監視することができる。各支払いは、サービスレベル合意に含まれる特定の物理的資源１０３の利用について要求ブローカー１１４から資源ブローカー１０２に支払われた額を表す。この点において、資源管理者は、期間中に各物理的資源１０３によって生成された所得の当座合計を維持することができる。
【００９１】
そして、ステップ１１１０では、方法は、期間が経過したかどうかを決定する。例示的実施形態では、期間は、四半期、年２回、年１回、または物理的資源１０３によって生成された所得を監視する他のあらゆる好適な期間であることができる。別の例示的実施形態では、方法２７０は、その満了が期間が経過したという警報の引き金となることができる、資源ブローカー１０２によって監視される所定の期間に基づいて、期間が経過したかどうかを決定することができる。この代わりに、方法２７０はステップ１１０５から生成された所得情報に手動でアクセスするユーザに基づいて、期間が経過したかどうかを決定することができる。いずれにせよ、もし期間が経過していなければ、方法２７０はステップ１１０５に分岐して戻り、各物理的資源１０３によって生成された所得の監視を続ける。もし期間が経過していれば、方法２７０はステップ１１１５に分岐する。
【００９２】
ステップ１１１５では、方法は、その他諸々の中で、各物理的資源を入手し維持することに関連付けられた費用と支出を同定する。例示的実施形態では、ユーザが、実際のおよび／または計画された入手および維持の費用に基づいてその情報を入力することができる。そして、ステップ１１２０では、物理的資源１０３によって生成された所得から物理的資源１０３に関連付けられている費用と支出を差し引くことによって、各物理的資源１０３の利益と損失が決定される。
【００９３】
ステップ１１２５では、特定の物理的資源１０３が選択され、ステップ１１３０では、選択された資源が期間中に利益または損失を出したかどうかが決定される。もし物理的資源の所得がその費用と支出よりも大きければ、物理的資源は期間中に利益を生成している。この代わりに、もし物理的資源の所得がその費用と支出よりも小さければ、物理的資源は期間中に損失を生成している。
【００９４】
もし選択された物理的資源が利益を生成していれば、方法２７０はステップ１１３５に分岐する。ステップ１１３５では、選択された物理的資源の利益が他の同様の資源の利益と比較される。そして、選択された物理的資源の現行のポジションを維持するかまたは選択された物理的資源に投資するかどうかの決定がステップ１１４０でなされる。例えば、もし資源が他の資源と比較して小さな利益しか出していなければ、ユーザは資源における現行のポジションを維持することを決めても良い。即ち、ユーザは、資源の更なる分は購入しないであろう。この代わりに、もし資源が他の資源と比較して大きな利益を出していれば、またはもし資源に対する需要の増加が見込まれていれば、ユーザは資源の更なる分を購入するかまたは既存の資源をグレードアップすることによって資源に投資することを決めても良い。選択された物理的資源のポジションにおいて維持または投資するかどうかを決定した後、方法２７０はステップ１１５０に進む。
【００９５】
ステップ１１３０に戻ると、もし選択された物理的資源が期間中に損失を生成していれば、方法はステップ１１４５に分岐する。ステップ１１４５では、選択された物理的資源の現行のポジションを維持するかまたは選択された物理的資源から投資撤収するかどうかの決定がなされる。例えば、もし資源が小さな損失しか経験していなければ、またはもし資源が費用を正当化する優先度の高い必要に合致していれば、ユーザは資源における現行のポジションを維持することを決めても良い。即ち、ユーザは資源から投資撤収しないであろう。この代わりに、もし資源が大きなあるいはそれ以外の望ましくない損失を経験していれば、ユーザは資源を売却するかまたは資源の支持または維持を断絶することによって資源から投資撤収することを決めても良い。他の実施形態では、ユーザは、資源と関連付けられた損失を削減するように資源の使用を削減することを決めても良いし、またはユーザは、別の資源によって生成された利益を使って資源の継続した使用を助成することを決めても良い。選択された物理的資源のポジションにおいて維持または投資撤収するかどうかを決定した後、方法２７０はステップ１１５０に進む。
【００９６】
ステップ１１５０では、別の資源のポジションを評価するかどうかが決定される。もしそうであれば、方法はステップ１１２５に分岐して戻り、別の資源を選択する。もしそうでなければ、方法２７０、そして方法２００（図２）、は終わる。
【００９７】
従って、方法２７０は、物理的資源を評価して、価格と性能の両方を含めて、どの資源が最も経済的であるかを決定することをユーザに許容する。例えば、コンピュート資源は、各々が異なる価格と性能特性を有する、異なるプラットフォームからなることができる。各資源の利益と損失の一覧表の比較は、どのプラットフォームがアプリケーションプログラムによって最も使われ、それによってより多くの所得を生成したかを示すであろう。その情報に基づいて、ユーザは、どのプラットフォームを維持するか、または会社のポジションを増やすのはどれか、どのプラットフォームから投資撤収するか、を決定することができる。資源が方法２００（図２）を参照して記載されたように割り当てられているので、方法２７０は、アプリケーションプログラムによる使用について、価格と性能特性に基づいて、どの資源がより望ましいかの指標を提供する。
【００９８】
発明は、分散されたコンピュータ資源の割り当てと管理を参照して詳細に記載されたが、発明は他の分散された資源の割り当てと管理にも適用される。例えば、発明は分散された従業員に適用することもできる。この場合には、資源オファー１１０は、従業員の利用可能な個人またはグループメンバーに関連付けられた性能と価格を同定するように生成され、それらのオファーはマーケット取引所１１２に提出される。要求入札１１８は、特定の仕事プロジェクトのために従業員からサービスを取得するように生成され、それらの入札はマーケット取引所１１２に提出される。そして、マーケット取引所１１２がマッチする入札とオファーを同定し、プロジェクトに従業員資源を割り当てる。割り当てられた資源の性能は監視することができ、従業員の過小利用または性能不足のメンバーについて修正する必要に応じて資源は再割り当てすることができる。時間に渡って、従業員の個人またはグループメンバーの利益と損失を決定することができ、利益と損失の情報は、従業員の特定の側面についての投資または投資撤収の決定を行うのに使用することができる。
【００９９】
本発明は、上述した方法および処理機能を行うコンピュータハードウェアおよびソフトウェアと共に使うことができる。当業者には理解されるであろうが、ここに記載されたシステム、方法、手順は、プログラム可能なコンピュータ、コンピュータ実行可能なソフトウェア、またはデジタル回路で実施することができる。ソフトウェアは、コンピュータ読み取り可能な媒体に格納することができる。例えば、コンピュータ読み取り可能な媒体は、フロッピー（登録商標）ディスク、ＲＡＭ、ＲＯＭ、ハードディスク、リムーバブル媒体、フラッシュメモリ、メモリスティック、光学媒体、磁気光学媒体、ＣＤ−ＲＯＭ、等を含むことができる。デジタル回路は、集積回路、ゲートアレイ、ビルディングブロックロジック、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、等を含むことができる。
【０１００】
本発明の特定の実施形態がここに詳細に記載されたが、記載は描写の目的だけのものである。ここに記載された例示的方法は単に描写的なものであり、発明の代替的実施形態では、いくつかのステップは異なる順番で行ったり、互いに並行して行ったり、または全部省略したりすることができ、および／または発明の範囲と精神を逸脱することなくいくつかの追加のステップを行うことが出来る。加えて、例示的実施形態の開示された側面の様々な変形や対応する等価なステップは、ここに記載されたものに加えて、その範囲がそのような変形および等価構造を包含するように最も広範な解釈が与えられるべきである、以下の請求項に規定された本発明の精神と範囲から逸脱することなく当業者によって行うことができる。
【図１】
2010522931.tif 000003
【図２】
2010522931.tif 000004
【図３】
2010522931.tif 000005
【図４】
2010522931.tif 000006
【図５】
2010522931.tif 000007
【図６】
2010522931.tif 000008
【図７】
2010522931.tif 000009
【図８】
2010522931.tif 000010
【図９】
2010522931.tif 000011
【図１０】
2010522931.tif 000012
【図１１】
2010522931.tif 000013
【国際調査報告】
2010522931.tif 000014