(57)【要約】      （修正有）【課題】ソフトウェアアプリケーションをネットワークノードに割り当てるシステム及び方法を提供する。【解決手段】方法は、コンピュータベースのシステムを用い、ソフトウェアアプリケーションのリストにアクセスし、ソフトウェアアプリケーションの特性を決定し、ソフトウェアアプリケーションをネットワークノードにマッピングする。システムは前記マッピングに基づいてソフトウェアアプリケーションからの特性及びネットワークノードの予備電力容量からの特性を利用する。この情報は、監視アプリケーション又は分散アプリケーションを用いて、前記マッピングに相関されたソフトウェアアプリケーションの以降の開始を許可または制限するように実装する。【選択図】図２
2017027601.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアアプリケーションをネットワークノードに割り当てる方法であって、
プロセッサによって、ネットワークノード上で実行するように構成されたソフトウェアアプリケーションのリストにアクセスするステップと、
前記プロセッサによって、前記ソフトウェアアプリケーションのリストから特性を決定するステップと、
前記プロセッサによって、複数のネットワークノードからの各ネットワークノードに対する予備電力容量を決定するステップと、
前記プロセッサによって、前記ソフトウェアアプリケーションの特性と前記ネットワークノードの予備電力容量に基づいてソフトウェアアプリケーションをネットワークノードにマッピングするステップと、
を備える、方法。
【請求項２】
一つのネットワークノードから第２のネットワークノードへの前記ソフトウェアアプリケーションの移行を開始するステップを更に備える、請求項１記載の方法。
【請求項３】
前記リストにアクセスするステップ、前記リストから特性を決定するステップ、前記予備電力容量を決定するステップ、及び前記ソフトウェアアプリケーションをネットワークノードにマッピングするステップは単一のネットワークノードで実行される、請求項１記載の方法。
【請求項４】
前記リストにアクセスするステップ、前記リストから特性を決定するステップ、前記予備電力容量を決定するステップ、及び前記ソフトウェアアプリケーションをネットワークノードにマッピングするステップは複数のネットワークノードで実行される、請求項１記載の方法。
【請求項５】
前記少なくとも一つのソフトウェアアプリケーションの特性は電力消費である、請求項１記載の方法。
【請求項６】
前記少なくとも一つのソフトウェアアプリケーションの電力消費は直接測定により決定される、請求項５記載の方法。
【請求項７】
前記少なくとも一つのソフトウェアアプリケーションの特性はプロセスクリティカリティである、請求項１記載の方法。
【請求項８】
前記マッピングステップは、アルゴリズムに基づいてソフトウェアアプリケーションをネットワークノードに相関させるステップを含む、請求項１記載の方法。
【請求項９】
前記アルゴリズムはメタヒューリスティックアルゴリズムである、請求項８記載の方法。
【請求項１０】
前記アルゴリズムは多基準最適化アルゴリズムである、請求項８記載の方法。
【請求項１１】
一つのソフトウェアアプリケーションのネットワークノードへのマッピングは、個々のソフトウェアアプリケーションを明確に列挙しないで、ソフトウェアアプリケーションのグループを示す、請求項１記載の方法。
【請求項１２】
前記ネットワークノードの予備電力容量は、電池、発電機、キャパシタ、又はフライホイールのうちの一つで与えられる、請求項１記載の方法。
【請求項１３】
ソフトウェアアプリケーションをネットワークノードに割り当てるシステムであって、
ネットワークノード上で実行するように構成されたソフトウェアアプリケーションのリストにアクセスし、
前記ソフトウェアアプリケーションのリストから特性を決定し、
複数のネットワークノードから各ネットワークノードに対する予備電力容量を決定し、
前記ソフトウェアアプリケーションの特性と前記ネットワークノードの予備電力容量に基づいてソフトウェアアプリケーションをネットワークノードにマッピングする、
ように構成されたプロセッサを備える、システム。
【請求項１４】
一つのネットワークノードから第２のネットワークノードへの前記ソフトウェアアプリケーションの移行を開始する処理を更に備える、請求項１３記載のシステム。
【請求項１５】
前記プロセッサは更に、リストにアクセスし、そのリストから特性を決定し、予備電力容量を決定し、ソフトウェアアプリケーションをネットワークノードにマッピングする処理を単一のネットワークノード上で実行するように構成されている、請求項１３記載のシステム。
【請求項１６】
前記プロセッサは更に、リストにアクセスし、そのリストから特性を決定し、予備電力容量を決定し、ソフトウェアアプリケーションをネットワークノードにマッピングする処理を複数のネットワークノード上で実行するように構成されている、請求項１３記載のシステム。
【請求項１７】
ソフトウェアアプリケーションとネットワークノードとのインタラクティブ表現を表示するために前記プロセッサに結合されたユーザインタフェースを更に備える、請求項１３記載のシステム。
【請求項１８】
前記プロセッサは更に、少なくとも一つのソフトウェアアプリケーションの前記特性は電力消費であると設定されている、請求項１３記載のシステム。
【請求項１９】
前記プロセッサは更に、少なくとも一つのソフトウェアアプリケーションの前記電力消費を直接測定により決定するように設定されている、請求項１８記載のシステム。
【請求項２０】
前記プロセッサは更に、少なくとも一つのソフトウェアアプリケーションの前記特性はプロセスクリティカリティであると設定されている、請求項１３記載のシステム。
【請求項２１】
前記プロセッサは更に、前記マッピングはアルゴリズムに基づいてソフトウェアアプリケーションをネットワークノードに相関させることを含むように設定されている、請求項１３記載のシステム。
【請求項２２】
前記プロセッサは更に、前記アルゴリズムはメタヒューリスティックアルゴリズムであると設定されている、請求項２１記載のシステム。
【請求項２３】
前記プロセッサは更に、前記アルゴリズムは多基準最適化アルゴリズムであると設定されている、請求項２１記載のシステム。
【請求項２４】
前記プロセッサは更に、一つのソフトウェアアプリケーションのネットワークノードへのマッピングは、個々のソフトウェアアプリケーションを明確に列挙しないで、ソフトウェアアプリケーションのグループを示すように設定されている、請求項１３記載のシステム。
【請求項２５】
前記プロセッサは更に、前記ネットワークノードの予備電力容量は、電池、発電機、キャパシタ、又はフライホイールのうちの一つで与えられるように設定されている、請求項１３記載のシステム。
【請求項２６】
コンピュータ実行可能命令を含む非トランジトリなコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピュータシステム上で実行されると、
ネットワークノード上で実行されるように構成されたソフトウェアアプリケーションのリストにアクセスするステップと、
前記ソフトウェアアプリケーションのリストから特性を決定するステップと、
複数のネットワークノードから各ネットワークノードに対する予備電力容量を決定するステップと、
前記ソフトウェアアプリケーションの特性と前記ネットワークノードの予備電力容量に基づいてソフトウェアアプリケーションをネットワークノードにマッピングするステップと、
を備えるソフトウェアアプリケーションをネットワークノードに割り当てる方法を実行する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概してソフトウェアアプリケーションをマッピングする方法及びシステムに関し、より詳しくはソフトウェアアプリケーションを様々な特性に基づいてネットワークノードに割り当てる方法及びシステムに関する。
【背景技術】
【０００２】
スタンドアロンコンピュータも、物理的コンピュータやサポートインフラストラクチャを収容する集中データセンタも長年存在している。いずれの構成でも、最もクリティカルなソフトウェアアプリケーションのために別個の物理的サーバを維持することは珍しいことではない。この構成は主として、ソフトウェアアプリケーションが非常にクリティカルである場合に、フォールトトレランス保護のために使用されており、サーバの動作状態を危険にさらすかもしれない同じハードウェア上での第２の独自のソフトウェアアプリケーションの実行という危険は起こり得ない。クリティカルなソフトウェアアプリケーションのセグリゲート化はフォールトトレランスの視点から見てロバストであったが、経済的なリソース利用の視点から見て効率的でなく、多くのマシンがそれらのリソースに対して十分に利用されていなかった。
【０００３】
今日の仮想化技術の出現とともに、このアプローチはいくつかのクリティカルなソフトウェアアプリケーションが今や単一の物理的サーバを共有することができるように変化し、コロケートされた各ソフトウェアアプリケーションは同一の物理的コンピュータ上で動作する他のアプリケーションから分離される。しかしながら、このアプローチは特定の物理的サーバ上に存在するソフトウェアアプリケーションのすべてに対して一組の物理的リソースを共有するという新たな問題をもたらしている。
【０００４】
しかしながら、以下で説明されるように、所与のソフトウェアアプリケーションセットに対してどのような物理的リソースが必要とされるかを決定するという複雑さは、コンピューティング環境自体の外で正しく概算することはできないことであり、どのようにソフトウェアアプリケーションをネットワークノードに分配し得るかを決定するという複雑さは、所与の特定のリソース考察がソフトウェアアプリケーションに対してロバスト処理を維持するための基本である。
【発明の概要】
【０００５】
本発明の態様は、概して、ネットワークノードへのソフトウェアアプリケーションの割り当てに関する。本発明の実施形態は、ソフトウェアアプリケーションの特性とネットワークノードの特性に基づいてソフトウェアアプリケーションをネットワークノードに割り当てるシステム及び方法を提供する。少なくとも一つの実施形態は、ネットワークノード上で動作するソフトウェアアプリケーションの他のネットワークノードへの移行をそれらのネットワークノードの予備電力容量の特性に基づいて開始可能にするシステム及び方法を提供する。
【０００６】
本発明の一つの態様はソフトウェアアプリケーションをネットワークノードに割り当てるシステム及び方法を対象とし、本システム及び方法は、プロセッサによって、ネットワークノード上で動作するように構成されたソフトウェアアプリケーションのリストにアクセスするステップと、前記プロセッサによって、前記ソフトウェアアプリケーションのリストから特性を決定するステップと、前記プロセッサによって、複数のネットワークノードから各ネットワークノードに対する予備電力容量を決定するステップと、前記プロセッサによって、前記ソフトウェアアプリケーションの特性と前記ネットワークノードの予備電力容量に基づいてソフトウェアアプリケーションをネットワークノードにマッピングするステップと、を備える。
【０００７】
本システム及び方法において、一ネットワークノードから第２のネットワークノードへの前記ソフトウェアアプリケーションの移行を開始するステップも起こり得る。本システム及び方法において、前記リストにアクセスするステップ、前記リストから特性を決定するステップ、前記予備電力容量を決定するステップ、前記ソフトウェアアプリケーションをネットワークノードにマッピングするステップは単一のネットワークノード又は複数のネットワークノードで実行され得る。
【０００８】
本システム及び方法において、前記少なくとも一つのソフトウェアアプリケーションの特性は例えば電力消費とし得る。本システム及び方法において、前記少なくとも一つのソフトウェアアプリケーションの電力消費は直接測定により決定されるものとし得る。
【０００９】
前記システム及び方法において、前記少なくとも一つのソフトウェアアプリケーションの特性は例えばプロセスクリティカリティとし得る。
【００１０】
本システム及び方法において、ネットワークノードへの少なくとも一つのソフトウェアアプリケーションの前記マッピングは、アルゴリズムに基づいて計算され得る。本方法では、前記アルゴリズムはメタヒューリスティックアルゴリズム又は多基準最適化アルゴリズムとし得る。
【００１１】
本システム及び方法において、ネットワークノードへの一ソフトウェアアプリケーションの前記マッピングは、個々のソフトウェアアプリケーションを明確に列挙しないでソフトウェアアプリケーションのグループを表すものとし得る。本システム及び方法において、前記ネットワークノードの予備電力容量は、電池、発電機、キャパシタ、又はフライホイールのうちの一つで与えられるものとし得る。本システムでは、前記プロセッサに結合されたユーザインタフェースがソフトウェアアプリケーションとネットワークノードのインタラクティブ表現を表示するものとし得る。
【００１２】
本発明の別の態様は非トランジトリなコンピュータ可読媒体を対象とし、本コンピュータ可独媒体は、コンピュータシステム上で実行されると、ネットワークノード上で動作するように構成されたソフトウェアアプリケーションのリストにアクセスするステップと、前記ソフトウェアアプリケーションのリストから特性を決定するステップと、複数のネットワークノードから各ネットワークノードに対する予備電力容量を決定するステップと、前記ソフトウェアアプリケーションの特性と前記ネットワークノードの予備電力容量に基づいてソフトウェアアプリケーションをネットワークノードにマッピングするステップとを備える、ソフトウェアアプリケーションをネットワークノードに割り当てる方法を実行するコンピュータ実行可能命令を含む。
【００１３】
添付図面は一定の縮尺で示すことは意図されていない。図面において、様々な図に示される同一もしくは略同一のコンポーネントは同等番号で表されている。明瞭のために、すべてのコンポーネントがすべての図に示されているわけではない。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による、ソフトウェアアプリケーションをネットワークノードに割り当てるシステムが存在するクラウドコンピューティング環境である。
【図２】本発明の一実施形態による、ソフトウェアアプリケーションをネットワークノードに割り当てるプロセスのフローチャートである。
【図３】本発明の一実施形態による、監視ノードを用いてソフトウェアアプリケーションをネットワークノードに割り当てるシステムである。
【図４】単一ネットワークノードの一つの可能な実施形態を示す。
【図５】本発明の一実施形態による、分散システムを用いてソフトウェアアプリケーションをネットワークノードに割り当てるシステムである。
【図６】本発明の実施形態で使用し得るコンピュータシステムの機能ブロック図である。
【図７】図６のシステムとともに使用し得るストレージシステムの機能ブロック図である。
【発明を実施するための形態】
【００１５】
本発明はその適用が、以下に詳細に記載され、図面に示されるコンポーネントの構成及び配置の詳細に限定されるものではない。本発明は他の実施形態が可能であり、様々に実施又は実行することができる。また、本明細書で使用する語句及び用語は説明のためであり、限定とみなすべきない。「含む」「備える」「有する」「包含する」及びそれらの活用形の使用はオープンエンド、即ち「を含むが、それに限定されない」が意図されている。
【００１６】
近代経済学はコンピュータハードウェアの単一のインスタンス上で実行するコンピュータアプリケーションの数を最大化するためにクリティカルな物理的構成を推進していた。この計算密度の増加を達成するために、仮想化技術が既存のコンピュータハードウェアのフレキシビリティ及び利用性の劇的増加をもたらした。単一の物理的コンピュータのリソースをより小さな仮想マシン（ＶＭ）に割り当て、それぞれのアプリケーションを同じ物理的ホスト又はネットワークノード上で実行するようにすることによって、単一の物理的インスタンスに対するコンピュータアプリケーションの密度は数倍に増加している。
【００１７】
たゆまぬ努力によって、物理的コンピュータ又はネットワークノードからの利用可能なリソースを効率的にすべての所望のソフトウェアに提供し物理的ホスト上で動作させるという結果がもたらされている。これらのリソースは、中央処理装置（ＣＰＵ）、メモリ、ハードディスク、ネットワーク及び他のハードウェアリソースを含み得る。また、物理的ホスト又はネットワークノードを、その上に存在するミッションクリティカルなソフトウェアアプリケーションが適切に維持されるか、それらをサポートし、連続的なロバスト動作を可能にする物理的ホストに移行されるように、最適に動作させるために必要なインフラストラクチャリソースも考慮しなければならない。
【００１８】
図１はクラウドコンピューティング環境１００を全体的に示す。このクラウド環境１００は一以上のコンピューティングノードを備え、これらのコンピューティングノードは、コンピュータサーバ、ディスクストレージ、端末サーバ、及びこのような機器をサポートする適切なインフラストラクチャを含むが、それらに限定されない。この環境の一つの目的は、局所的にアクセス可能なサーバ又はパーソナルコンピュータによらずにリモート環境内でデータを入力、格納、管理、処理、又は出力することにある。このインフラストラクチャは一般に、電力、冷却、ストレージ、ネットワークアクセス、セキュリティ、及びデバイス管理についての配慮を含み得る。この環境１００内のデバイス及びインフラストラクチャは、この環境自体のニーズに固有の公衆ネットワーク、プライベートネットワーク、ハイブリッドネットワーク、又は他のネットワークトポロジーを収容するために、一以上の構成内に物理的に又は仮想的にグループ化することができる。クラウドコンピューティング環境１００へのアクセスも、有線接続方式１３０又は無線接続方式１４０のいずれかでこのような環境に接続し得る様々なデバイスによって得ることができる。これらの有線接続方式１３０は任意の物理的ケーブル方式、例えばカテゴリ５ケーブル、同軸、ファイバ、又は電気信号を伝搬する任意の他の物理的媒体を含み得るが、それらに限定されない。無線接続方式１４０は、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ＷｉＦｉ、ブルートゥース（登録商標）、セルラ、グローバル、又はスペースベース通信ネットワークを含み得るが、それらに限定されない。これらの通信方法を使用し得るデバイス例は、デスクトップコンピュータ又は端末サーバ１１０ａ、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、又は携帯タブレットデバイス１１０ｂ、ラップトップコンピュータ１１０ｃ、又は携帯電話及び同様の通信機器１１０ｄを含み得るが、それらに限定されない。更に、クラウド環境１００と他のクラウド環境１２０との間のアクセスは、これらの他のクラウド環境が１００のようなクラウド環境と同様のデバイスに接続するように構成されている場合に可能である。１００，１１０ａ−１１０ｄ及び１２０内に示されるこれらのタイプのコンピューティングデバイス及び図１に示す接続方式１３０及び１４０は一例にすぎず、コンピューティングノード及びクラウドコンピューティング環境はアドレス可能接続又は直接接続を用いて任意のタイプのネットワークを介して任意のタイプのコンピュータ化されたデバイスと通信することができる。
【００１９】
ソフトウェアアプリケーションをネットワークノード２００に割り当てるプロセスの一例が図２に示されている。最初の問題として、利用可能なソフトウェアアプリケーションのリストが最初に識別され（２１０）、アクセスされる。このリスト２１０が生成されていない場合又はダイナミックコンピュータシステムにおいてこれらのアプリケーションが時間とともに変更された場合には、リストが最初に生成され、単にアクセスされるだけではない。すべての場合において、ソフトウェアアプリケーションの既存のリストの初期生成又はアクセス２１０によって、このようなアプリケーションのリストを規定し、そのような動作を反復してプロセス２００全体を通して使用するためのソフトウェアアプリケーションの正確なリストを維持することができる。
【００２０】
ソフトウェアアプリケーションのリストが利用可能になると（２１０）、本発明の原理はソフトウェアアプリケーションのリスト２１０からソフトウェアアプリケーションの特性を決定することができる（２２０）。これらのソフトウェアアプリケーション特性２２０は、電力消費、優先順位、中央処理装置（ＣＰＵ）使用量、メモリ使用量、ハードディスク使用量、ネットワークアクセス及び使用量、並びに直ぐに現れる又は時間とともに導出又は計算される他のハードウェア及び計算リソースを含み得るが、それらに限定されない。このように、個々のソフトウェアアプリケーションをその特性に関して分類することができる。一つ又はいくつかのこのような特性は他の特性を形成するために使用できる。一例として、特定のソフトウェアアプリケーションに対する経時的電力使用量及びＣＰＵ使用量を用いてそのソフトウェアアプリケーションの更に別の固有の特性を形成することができる。このように、所与の経時的ソフトウェアアプリケーションに関して無数の特性を形成することができる。この特性化はワンタイム事象ではなく、リストされたソフトウェアアプリケーション２１０の各々の特性の正確な表現を維持するために実際は周期的であることを理解されたい。ソフトウェアアプリケーション特性のリスト２２０の初期生成が要求される間、次のリファイニングによってこれらの特性を変化させることができる。リストされた各別のソフトウェアアプリケーション２１０はそれらの固有の特性２２０を維持する。
【００２１】
インスタンス化前にこれらの個別のソフトウェアアプリケーション特性を決定することは高度に推論的な取り組みになり得る。アプリケーションがインストールされると、ソフトウェアアプリケーション特性を決定するステップ２００は仮想マシン管理支援装置などの利用可能な市販のツールからの直接モニタリングを含み得る。特定のソフトウェアアプリケーションモニタリングクライアントはリソース使用量に基づく計測を提供するとともに、アプリケーションプログラムインタフェース（ＡＰＩ）を提供し、ＡＰＩは任意のアプリケーションの特定の特性を得るため及び他の特性の計算に使用するためにプログラム的に使用することができる。
【００２２】
ソフトウェアアプリケーション特性を決定する本発明の一つの原理は、直接測定による電力消費とし得る。各インスタンス化されたソフトウェアアプリケーション又はＶＭに対しては、実際の電力消費を問い合わせ、ソフトウェアアプリケーションから時間とともに返送されるデータに基づいて電力消費推定値を決定することができる。
【００２３】
本発明の原理は複数の予測手法も示し、これらの方法は返送される値に基づいて予測を行い、逐次的学習の解を生成するために使用することができ、一実施形態ではソフトウェアアプリケーション又はＶＭが物理的ホストに展開されたとき、初期推定値と測定値との間の残留誤差を減少させる。
【００２４】
本発明のこの原理はその推定値を連続的に向上させ、これまでより正確な電力特性をもたらす。仮想マシン管理支援装置などのクライアントからの測定履歴データに直接基づく予測は、特定のユーザ設定可能なタイムフレーム及びサンプル期間を選択することができる。簡単な単一特徴の回帰モデルでは仮説ｈθｘは、
ｈθｘ＝θ０＋θ１ｘ
の形をとり、対応するパラメータθ０＆θ１に対するコスト関数は、
【数１】
2017027601.tif 000003
である。
【００２５】
一つの目標はＪ(θ０，θ１)のコスト関数を最小化することであり、これはθ０，θ１の両方についてその偏導関数を計算しその都度最小値に向けてゆっくり移動させる勾配降下のような方法を用いて達成することができる。
【数２】
2017027601.tif 000004
【００２６】
複数の特徴について得られた回帰曲線をプロットすることもでき、これは複数線形回帰又は多変数線形回帰とも称される。
【数３】
2017027601.tif 000005
【００２７】
各パラメータθｊはデータへの可能な最良フィットが得られるように調整される。すべての特徴のセットＸ＝｛Ｘ１，Ｘ２．．．Ｘｎ｝は様々なモニタリング技術クライアントにより可能にされる利用可能なモニタリング情報からなる。特定の時間ｔにおけるこれらの特徴の各々に対して対応する値Ｙが関連し、この値は該当するインスタンスにおけるＶＭで消費される電力である。
【００２８】
本発明の原理は、このプロセスはソフトウェアアプリケーションの現在の電力消費を一ネットワークノードから別のノードへの電力消費の過去の観測結果に基づいて予測することができることを実証する。ソフトウェアアプリケーションが展開されている物理的サーバのタイプ及び特性等の他のファクタも考慮し得ることに注意されたい。
【００２９】
個々のネットワークノードを電力事象後に動作可能に維持するために、予備電力容量をいくつかの物理的ノードに存在させることができる。本発明の原理は、各ネットワークノードの予備電力容量２３０は予備電力容量源へのインタフェース装置を備えたプログラマチック手段によって又は手動ユーザ入力によって決定することができることを実証する。予備電力容量の例としては、電池、発電機、キャパシタ、又はフライホイールを含んでよいが、それらに限定されない。無停電電源（ＵＰＳ）は電力事象からの実質的な保護を提供するとともに、利用可能な予備電力を決定するためにプログラマチック手段を介して問い合わされるネットワークノードに十分な予備電力容量も提供することができる。一実施形態は、予備電力容量のリストアップは各ネットワークノードの各予備電力容量に関して決定されることを示している。任意の利用可能な予備電力タイプは任意のネットワークノードで使用可能であり、任意のネットワークノード内の同様のタイプの予備電力装置又は容量に対して何の要件も存在しないこと、また任意のタイプのこのような予備電力容量があらゆるネットワークノードに存在するわけではないことを理解すべきである。
【００３０】
利用可能なアプリケーションのリスト（２１０）が利用可能になると、各ソフトウェアアプリケーションの特性が決定され（２２０）、利用可能なネットワークノードの予備電力容量が決定され（２３０）、ネットワークノードへのソフトウェアアプリケーションのマッピング（２４０）が生起する。このマッピングは、ソフトウェアアプリケーションのネットワークノードへの割り当て２００における他のプロセスと同様に、実際上インタラクティブにすることができ、またワンタイム事象にすることもできる。このマッピングプロセス２４０は、例えばネットワークノード、ソフトウェアアプリケーション又は任意の他の事象の始動時、例えばソフトウェアアプリケーションネット又はネットワークノード内のリソースのユーザ指定の周期的タイミング又は動的リアロケーションの始動時に実行されるが、それらに限定されない。ネットワークノード及び関連するリソース使用の常時再検査はシステムの全体的健康を維持するために有用である。
【００３１】
マッピングプロセス２４０の一実施形態は、特性化されたソフトウェアアプリケーションのロバストな動作を保証するためにソフトウェアアプリケーションをネットワークノードに動的に割り当てる。別の実施形態では、最もクリティカルと特性化されたソフトウェアアプリケーションは、関連する予備電力リソースに電力事象が起こるかもしれないためにそれらの動作を最も長時間サポートすることができるネットワークノードにマッピングすることができる。クリティカリティは様々な方法、例えば任意の利用可能な仮想マシン管理支援装置又はユーザ入力によってプログラマチックに決定することができるが、これらの方法に限定されない。
【００３２】
本発明の原理は、ユーザにより指定された列挙ランタイム保証を維持するために、ソフトウェアアプリケーションを物理的ホスト上に置く能力を有する。別の実施形態では、マッピングプロセスはアルゴリズムを用いて学習システムを形成し、割り当てプロセス２００から学習した反復特性に基づいて次のマッピングをリファインしてソフトウェアアプリケーションの割り当てを最適化する。
【００３３】
マッピングプロセス２４０に関する本発明の原理は、ソフトウェアアプリケーション又はＶＭが、それが存在するネットワークノード又はホストマシンの予備電力容量の利用可能ランタイムを侵害している場合に、計算が行われる際に開始することができる。一実施形態では、このような構成は現在の構成内のネットワークノード又は物理的ホスト及びソフトウェアアプリケーション又はＶＭの周期的健康検査を行うものとし得る。ソフトウェアアプリケーションの電力消費の不確かさ及び動態のために周期的妥当性検査が必要とされ得る。かっては健康だったソフトウェアアプリケーション及びネットワークノードのペアーは、一例として、ソフトウェアアプリケーション上でアクティビティが大きく増加し、それによりソフトウェアアプリケーションの電力増加と予備電力容量の減少を生じる場合に、ランタイム要件を侵害する可能性がある。これは説明のための一例であるが、特性の変化を生じさせる状況は多数あり、本発明の様々な実施形態を生じさせ得る。
【００３４】
マッピングプロセス２４０に関する本発明の原理は、このようなマッピングを生成するためにアルゴリズム又はユーザ入力の使用を含むこともできる。このマッピングは、ネットワークノードへのソフトウェアアプリケーションの割り当てにおける他のプロセスと同様に、実際上反復事象又はワンタイム事象とし得る。このマッピングプロセス２４０は、例えばネットワークノード、ソフトウェアアプリケーション、又は任意の他のイベントの始動時に、例えばソフトウェアアプリケーション又はネットワークノード内のリソースのユーザ指定の周期的タイミング又は動的リアロケーションの始動時に実行されるが、それらに限定されない。ネットワークノード及び関連するリソース使用の常時再検査はシステムの全体的健康を維持するために有用である。過去において様々なアルゴリズムが、これらの難しい問題に有効であり、良好な結果をもたらすことを実証している。
【００３５】
概して、どのような物理的リソースを所与の一組のソフトウェアアプリケーションに使用できるかを決定する複雑さのような極めて大きく困難な問題に対して、完全に標本化できないサンプル空間に適正な解を提供するためにメタヒューリスティクスアルゴリズム又は他の最適化アルゴリズムを用いて部分探索アルゴリズムを発見し、生成し又は選択することができる。実際上、目的関数は動的、多目的又は多基準である。関連方法はポピュレーションベース又はトラジェクトリベースとすることができ、最終的な解決法はネイチャーインスパイヤードコンピューティングに由来するアプローチを含むことができる。
【００３６】
このようなネイチャーインスパイヤード法は、遺伝的アルゴリズム、遺伝的プログラミング、粒子群最適化、蟻コロニー最適化、散布探索、タブー探索、確率論的局所探索、可変近傍探索、貪欲無作為化適応探索手順、カッコウ探索を含み得るが、それらに限定されない。このような問題は更に離散関数に変換し、組み合わせ最適化方法の適用を容易にすることもでき、この場合には線形プログラミング、数学的プログラミング及び最短経路アルゴリズムから木探索及び照合アルゴリズムまでの豊富な技術を使用し得る。これらの方法の使用は、最初に生成された解を時間とともに環境の動態に適応して進化させるような学習システムを生成することを可能にし得る。
【００３７】
一例として、本発明の原理は、一実施形態が改善を意図するタイプの問題に対して有効性が実証された一つのこのようなアルゴリズムとして遺伝的アルゴリズム（ＧＡ）の使用を評価する。ＧＡは多段プロセスであり、問題の解決法はダーウィン的進化により提案されたアルゴリズムに基づく選択プロセスによって「進化」される。このアルゴリズムの基礎は、一つの良い解が見つかると解はその点から進化することにある。このような技術は、確率論的探索及び最適化手順として一般に分類され、極小点に向かう傾向も示す。集団中の大きな遺伝的多様性を保証し、探索空間の大きな探索を促し、局所的最適点又は最小点を避けるために、突然変異のような操作が使用される。
【００３８】
第１のステップは、ソフトウェアアプリケーションをネットワークノードにマッピングするための集団を生成する。初期集団を生成するために、集団内の各個体のスケジュール（Ｉ）を２ステッププロセスで生成することができる。ソフトウェアアプリケーション又はＶＭをホストするためにどのような適切な物理的ホストがクラスタ又は物理的トポロジー内で利用可能かを決定するために利用可能なソフトウェアアプリケーション又は仮想化ソフトウェアに問い合わせが行われる。次に、ネットワークノードが無作為に選択される。但し、この選択はそのネットワークノードがソフトウェアアプリケーション創作者により指定されたバックアップランタイムを侵害しない場合に限られ、このソフトウェアアプリケーションのランタイムはネットワークノードの予備電力容量以内である。マッピングに進化プロセスを適用するためには、所与のマッピングはビットストリングとして表す方が容易である。
【００３９】
本発明の原理は、多重線形回帰を用いて計算された各ソフトウェアアプリケーション又はＶＭの予測電力消費及びその予測負荷での予備電力容量に対する推定ランタイムを示す。これは各個体の解又は染色体の「適合度」を形成する。これは下記の方程式で与えられる適合度関数を用いて評価される。
【数４】
2017027601.tif 000006
【００４０】
適合度評価のために、多基準解決法を採用し得る。本発明の原理は、この採用はソフトウェアアプリケーション又はＶＭに対する最大利用可能なランタイムをそれらの特性に基づいて確保し、物理的ホスト間のソフトウェアアプリケーション移行の量を最小にすることができることを示す。記載した方程式はランタイム適合度「Ｒ」及び移行適合度「Ｍ」を検討するものであり、フレキシブル値とし、設定可能にし得る。移行はネットワークのトポロジーに依存するネットワークノード間でリソースインテンシブであるので、移行は複合適合度関数の一部分とし得る。一実施形態では、２つのマッピングがＧＡにより生成され、一方が他方より少数又は最適数の移行を含む場合、少数の移行を有する方を優先させることができる。全体的な適合度関数は下記の方程式に正規化される。
ｈθｘ＝θ０＋θ１ｘ
【００４１】
Ｆ(ｉ）は集団内の固体の解の正規化された適合度を表す。ｆmaxは集団内の最良個体の適合度及びｆmin・μを表し、スカラ値は各個体の解がある値を有することを保証する。
【００４２】
固体のマッピング解は集団全体に対してそれらの適合度に従ってランク付けされる。ランク付けされるとすぐに、選択用の複数の可能なオプションがある場合に選択プロセスが開始される。該して、トーナメント方式又はルーレットホイール等の方法が繁殖用の固体を選択するために一般に使用される。この実施形態では、ルーレットホイールを使用するがいくつかの他の方法も使用し得る。
【００４３】
次の世代「Ｇ＋１」を生成するために、選択プロセスを用いて両親が選択される。ルーレットホイール選択のために、両親はそれらの適合度に基づいて確率的に選択され、これは、最大の適合度を有する両親がより頻繁に選択される可能性が高く、彼らの子孫の方が最終的に次世代になることを意味する。時には「エリート意識」として知られる概念を選択プロトコルの開始時に適用して、最適な固体を進化プロセスを完全に無視して直接次世代に移動させることもできる。これは、主として、最適解は進化相中に失われないことを保証するために行われる。両親が選択されると、「クロスオーバ」及び「突然変異」の操作が確率的に適用される。クロスオーバは一般に片方の親の染色体の一点を採取する操作を含む。
【００４４】
２人の子供が両親のビットストリングの一部分を組み合わせることにより生成される場合には両親の単一点が選択される。子供スケジュールの実現可能性が評価され、実現不能であれば固体スケジュールは廃棄される。次に、突然変異が確率的に適用される。クロスオーバ及び突然変異が確率的に適用される間、両親は多くの場合変化し、クロスオーバは通常突然変異よりもはるかに高い発生確率を有する。高すぎる値の突然変異が選択される場合には、高度の無作為さが集団内に存在し、解の品質が低下する。しかし、突然変異が起こらない場合には、マッピング解は局所最適になる。
【００４５】
本発明の原理は、これらのマッピングプロセスが完了すると、別の世代「Ｇ＋１」の固体解を生成し、プロセスを再び繰り返すことができる。ＧＡは多数回の実行が完了した後又は別の停止条件が満足された場合に終了し得る。この条件は世代反復回数、ユーザ入力又は適合度レベルとし得るが、それらに限定されない。
【００４６】
進化プロセスが完了すると、本発明の原理は最高の適合度スコアを有する解により決定される最良の解がマッピングモジュール４１０により選択され、実行されるようにすることができる。ネットワークノード又は物理的ホストからソフトウェアアプリケーション又はＶＭへのこのようなマッピングは、移行が必要とされる場合に、どのソフトウェアアプリケーション又はＶＭがどのネットワークノード又は物理的ホストに設置し得るかについての情報を含む。
【００４７】
マッピングがマッピングモジュール４１０により実行されると、一実施形態はネットワークノードへのソフトウェアアプリケーションの割り当てプロセス２００を繰り返し、ソフトウェアアプリケーション特性を時間とともに更新する。このような特性はソフトウェアアプリケーション又はＶＭのアクティビティとともに変化し、特性の正確な予測を生成するために勾配降下と組み合わされた多変数回帰のような機械学習技術を使用することができる。これは適応推定であり、ますます多くの経験サンプルがそれに供給されるので、変化し得る。これはまた、基礎ネットワークノードになされるハードウェア変化又はアプリケーション又はＶＭに対するソフトウェア変化に応じて変化し得る。
【００４８】
ネットワークノードへのソフトウェアアプリケーションの割り当て方法及びシステム２００が存在し得るいくつかにトポロジーが存在する。図３は一実施形態を示し、この場合にはネットワークノードへのソフトウェアアプリケーションの割り当ては監視ノードトポリジー内に存在する。このトポロジーでは、単一の監視ノード３１０が存在し、このノードは図４に示すコンポーネントを含む。一実施形態は汎用コンピューティングシステム４００を用いて実装することができる。このコンピューティングシステムは、図２のソフトウェアアプリケーション割り当て方法を実行するためにマッピングモジュール４１０を含むことができるとともに、マッピングモジュール４１０により決定されるソフトウェアアプリケーションの実際の移行に責任を持つ移行モジュール４２０も含むことができる。このコンピューティングシステムは物理的コンピューティングシステム自体上への様々なコンピュータアプリケーションの生成及び設置を可能にする。一以上のこのようなコンピュータアプリケーションは単一の物理的マシン上に、制限因子がその物理的マシン自体で利用可能なリソースである場合には、設置することができる。このようなソフトウェアアプリケーションの例が４３０ａ，４３０ｂ及び４３０ｎで示され、複数のソフトウェアアプリケーションはコンピューティングシステム４００上の利用可能なリソースによってのみ制限されることを理解されよう。複数のソフトウェアアプリケーションはマッピングされ、その後一つのネットワークノードから別のネットワークノードへ一つのグループとして、例えば限定はされないが、プログラム的に又はユーザによって決定された単一の名前又は論理関数を参照して、移行されることを理解すべきである。こうして、複数のソフトウェアアプリケーションは特性、例えば、限定はされないが、機能、サイズ、クリティカリティ、ユーザの好み、に基づいて又は他の入手可能な又は誘導情報に基づいて移行される。ありとあらゆる個別ソフトウェアアプリケーション又はネットワークノードの列挙は本発明のいくつかの実施形態では必ずしも必要ない。
【００４９】
一実施形態では、ソフトウェアアプリケーション４３０ａ−４３０ｎは当業界において「仮想マシン」（ＶＭ）と呼ばれるものとし得る。図に示されるように、ＶＭは物理的ホスト４００上にインスタンス化され得る。これは、完全なコンピュータシステムのスナップショットを含むシステムイメージを用いることによって達成することができ、スナップショットはオペレーティングシステム、インストールされたアプリケーション及び他の任意のファイル及び構成をキャプチャすることができる（これらはイメージがキャプチャされたとき存在可能になる）。いったんファイルに置かれると、イメージ全体をコピーし、そのイメージを用いてそのイメージが取り出されたものと同一の追加のＶＭを生成することができる。典型的な仮想化構成は図４に示され、この場合には複数の個別のＶＭ４３０ａ−４３０ｎが単一のホストサーバマシン４００にデプロイされる。各ＶＭは他のＶＭと同じ場所に配置されるが、他ＶＭを介して知ることはできない。ＶＭのから見ると環境は丁度物理的マシンのように動作する。これらの物理的ホスト上に多数のテナントを許可する主許可コンポーネントは仮想マシンモニタ又はハイパーバイザとして知られる技術の一部である。ハイパーバイザコンポーネントは、物理的ホスト４００にインストールされると、ホストコンピュータリソースを同じホスト上に存在するより小さな仮想マシンにセグメント化する。このハイパーバイザコンポーネントは責任を持って、各特定のＶＭインスタンスが他のＶＭに悪影響を与えることなく所要量のシステムリソース（ＣＰＵサイクル、ＲＡＭ及びディスク）にアクセスできるようにする。このようなハイパーバイザコンポーネントは移行機能を含むか、移行モジュール４２０の一部分として働くものとし得る。
【００５０】
図３の監視トポロジーについては、ソフトウェア割り当てプロセス２００を担うマッピングモジュール３２０を含む監視ノード３１０に加えて、いくつかの監視対象のネットワークノード３３０ａ，３３０ｂ及び３３０ｎも存在し得る。実際にはソフトウェアアプリケーションのリスト２１０、ソフトウェアアプリケーションの特性２２０、各ネットワークノードの予備電力容量２３０、及びネットワークノードへのソフトウェアアプリケーションのマッピング２４０に関する情報が監視ノード３１０で生じるが、監視ノードはネットワーク３００を介して監視対象ノード３３０ａ，３３０ｂ及び３３０ｎ並びにそれらの予備電力リソース３４０ａ−３４０ｎにアクセスすることができる。これらのノードの各々は汎用コンピュータシステムを表し、各々ソフトウェアアプリケーション又はＶＭを含み得る。更に、各監視対象のネットワークノードはそれと関連する予備電力容量３４０ａ−３４０ｎを有し、物理的ホストの追加の予備電力が物理的ネットワークノードをサポートするインフラストラクチャの故障のせいで必要になる場合にそれを提供することが意図されている。予備電力容量の例には、限定はされないが、電池、発電機、キャパシタ、又はフライホイールがある。これらの監視対象ネットワークノード３４０ａ−３４０ｎの各々と監視ノード３１０はネットワーク３００を介して接続され、デバイス間で通信することができる。
【００５１】
図５で示す別の実施形態は、ネットワークノードへのソフトウェアアプリケーションの割り当てプロセス２００を分散トポロジーで実行することができる。この実施形態では、ソフトウェアアプリケーションをネットワークノードに割り当てる一以上のシステムが図４に記載されているように存在する。これらの個別のネットワークノードは５１０ａ−５１０ｎに示され、複数のノードが存在し得ることが示されている。これらのノードの各々はイントラデバイス通信を促進するためにネットワーク５００に接続される。
【００５２】
図５の分散トポロジーにおいて、各個別ノード５１０ａ−５１０ｎはソフトウェア割り当てプロセス２００を担うマッピングモジュール５３０ａ−５３０ｎを含む。この実施形態では、監視対象ノードと監視ノードとの間に区別は存在しない。従って、ソフトウェアアプリケーションのリスト２１０、ソフトウェアアプリケーションの特性２２０、各ネットワークノードの予備電力容量２３０、及びネットワークノードへのソフトウェアアプリケーションのマッピング２４０に関する情報が各ノードで生起し、各ノードはネットワーク５００を介して他のノード５１０ａ−５１０ｎの各々にアクセスすることができ、更にそれらの予備電力リソース５２０ａ−５２０ｎにも、監視対象ノードが予備電力リソースを有する場合に、アクセスすることができる。これらのノードの各々は図４に概略的に示されるようなソフトウェアアプリケーションを含み得る汎用コンピュータシステムに相当する。更に、各監視対象ネットワークノードはそれと関連する予備電力容量５２０ａ−５２ｎを有し、物理的ホストの追加の予備電力が物理的ネットワークノードをサポートするインフラストラクチャの故障のせいで必要になる場合にそれを提供することが意図されている。予備電力容量の例としては、限定はされないが、電池、発電機、キャパシタ、又はフライホイールがある。これらのネットワークノード５１０ａ−５１０ｎの各々はネットワーク５００を介して接続され、デバイス間で通信することができる。
【００５３】
本発明の別の原理は図５の分散トポロジーにより実証され、この場合には、関連する予備電力容量５２０ａ−５２０ｎを有する複数のネットワークノード５１０ａ−５１０ｎ上に存在するソフトウェアアプリケーションはソフトウェア割り当てプロセス２００によってマッピングされ、最も役に立つ特性を維持するように決定されたソフトウェアが、インフラストラクチャの故障、例えばネットワークノードへの電力停止、の場合にロバストシステム動作を維持するために、予備電力容量を有するネットワークノードに移行される。この特性化はワンタイム事象ではなく、ソフトウェアアプリケーションリスト２１０の各々の特性の正確な表現を維持するために周期的事象であることを理解されるべきである。初代のソフトウェアアプリケーション特性のリスト２２０が必要とされるが、後続のリファイン処理によりこれらの特性を変化させることができる。各別のソフトウェアアプリケーションリスト２１０はそれらの固有の特性２２０を保持する。
【００５４】
本発明の一つの原理は監視対象ノード５１０ａ−５１０ｎの間で平行学習を可能にする。平行学習は複数の方法の組み合わせであり、複数の自立した学習システムをコラボレートさせ、メカニズム共有知識を用いて共有問題を解決して、単一のエージェントが学習する場合より短いタイムスパンでより良い結果を生成するものである。図５の実施形態である平行学習システムはこの点に関して、図３の実施形態である単一のエージェント学習システムと比較すると、より高い有効性が証明された。一つの環境内で働く確立された知識は他の環境内の学習をスピードアップするために他の環境に移すことができることを理解すべきである。
【００５５】
本発明の原理は一般に、平行方法は２つの可能なアプローチの一つの形をとることを示す。第１のアプローチは問題を小さいサブ問題に分解し、各マッピングモジュール５３０ａ−５３０ｎがサブタスクを解決する。「パーフェクト情報」と称されるすべてのエージェントの情報にアクセスできるマスタマッピングモジュールはサブプロセスからの結果を集約し、決定を行う。このマスタマッピングモジュールは任意のマッピングモジュール５３０ａ−５３０ｎ上に存在し得る。
【００５６】
本発明の別の原理は各マッピングモジュール５３０ａ−５３０ｎが独立に問題に対して働き、情報を共有しながらグローバルコンテキストで決定を行う。こうして、各サブマッピングモジュール５３０ａ−５３０ｎはそれらの環境、例えば物理的マシン又はネットワークノードのクラスタ及びそれらの制御下の予備電力について学習し、それらの情報を他のサブマッピングモジュールと同一のデータセンタ内で又は他の場所で共有する。こうして、一つのマッピングモジュールは既に近くで物理的に又は仮想的に動作している他のマッピングモジュールから入手し得る有用な情報を得ることができる。これによりエージェントは同種の問題に対して働いた経験を共有して互いに恩恵をもたらすことができ、追加の最適な解を生成することができる。
【００５７】
本発明の原理は、上記の平行学習法は進化プロセスによって生じるソフトウェアアプリケーション又はＶＭからネットワークノード又はホストへのマッピングをトポロジー的に異なるマッピングモジュール間で共有することは、それらのマッピングはそのマッピングモジュールがその管理責任を持つクラスタに特有に最適化されるので、できないことを実証する。しかしながら、ソフトウェアアプリケーション又はＶＭは同一もしくは類似のシステムイメージを有する類似のハードウェア上で始動させることができるので、個々のマッピングモジュールから生成されたデータは他のマッピングモジュールの間で転送可能とすることができる。従って、各マッピングモジュールはほぼ同等に機能することが可能になる。
【００５８】
任意の平行方法に対する最も重要な考察の一つは、一つのネットワークノードの学習経験からのデータをすべての他のネットワークノードの学習経験とどのように統合するかであることを理解すべきである。制御下のマシンに対して最良のマッピングを生成するためには、加重関数を使用することができ、電力推定の割合をトポロジー的に近い他のマッピングエージェントより観察に基づいて高くする。この理由は、ソフトウェアアプリケーション又はＶＭ上で実行される特定のアプリケーション及びプロセスは時間とともに異なる特性を生じ得るためである。従って、特定の推定の局所的推定を隣接するマッピングエージェントの推定より重くして時間とともにより高い正確さを可能にすることがより信頼可能となる。このような平行学習は探索空間及び探索時間を劇的に低減し、大量の学習知識がマッピングエージェントに移され、マッピングエージェントが極めて大きな知識の基部を受け継ぐことが可能になる。
【００５９】
本発明による様々な実施形態は図１、３，４又は５に概略的に示す一以上のコンピュータシステム上に実装することができる。例えば、単一ネットワークノード４００は単一のコンピュータシステム内又は複数のコンピュータシステム内に実装することができる。これらのコンピュータシステムは、このようなコンピュータシステム上で実行される際にソフトウェアアプリケーションのネットワークノードへの割り当て方法を実行するコンピュータ実行可能命令を備える、非トランジトリなコンピュータ可読媒体を含むものとし得る。本発明の原理は、ユーザインタフェースを用いて本発明の様々な実施形態の静的表現又はインタラクティブ表現を表示し得ることを実証する。
【００６０】
これらのコンピュータシステムは、例えば、インテルＰＥＮＴＩＵＭ（登録商標）型プロセッサ、モトローラパワーＰＣ、サンウルトラＳＰＡＲＣ、ヒューレットパッカードＰＡ−ＲＩＳＣプロセッサ等又は任意の他のタイプのプロセッサに基づく汎用コンピュータとすることができる。
【００６１】
例えば、本発明の様々な実施形態は、図６に示すシステムのような汎用コンピュータシステム６００内で実行される専用ソフトウェアとして実装することができる。コンピュータシステム６００は、一以上のメモリ装置６０４、例えばディスクドライブ、メモリ又は他のデータ記憶装置、に接続されたプロセッサ６０３を含み得る。メモリ６０４は一般的にコンピュータシステム６００の動作中プログラム及びデータを格納するために使用される。コンピュータシステム６００は、追加の記憶容量を提供するストレージシステム６０６も含み得る。コンピュータシステム６００のコンポーネントは相互接続機構６０５により結合することができ、この機構は一以上のバス（例えば、同じマシン内の組み込まれたコンポーネント間）及び／又はネットワーク（例えば、別個の個別マシン上に存在するコンポーネント間）を含み得る。相互接続機構６０５はシステム６００のシステムコンポーネント間で通信（例えば、データ、命令）を交換することができる。
【００６２】
コンピュータシステム６００は、一以上の入力装置６０２、例えばキーボード、マウス、トラックボール、マイクロフォン、タッチスクリーン、及び一以上の出力装置６０７、例えばプリント装置、表示スクリーン、スピーカも含む。更に、コンポーネントシステム６００はコンピュータシステム６００を（相互接続機構６０５に加えて又は代わりに）通信ネットワークに接続する一以上のインタフェース（図示せず）を含み得る。
【００６３】
ストレージシステム６０６（図７に詳細に示される）は一般的には、コンピュータ読み取り可能及び書き込み可能な不揮発性記録媒体７１１を含み、この媒体には、本明細書に記載された実施形態と関連する一以上の機能を実行するために、プロセッサにより実行されるプログラムを規定する信号又はプログラムにより処理されるべき情報が媒体７１１に記憶される。この媒体は、例えばディスク又はフラッシュメモリとし得る。典型的には、動作中、プロセッサは不揮発性記録媒体７１１からのデータを、媒体７１１より高速に情報にアクセスし得る別のメモリ７１２へと読み込ませる。このメモリ７１２は典型的には揮発性のランダムアクセスメモリ、例えばダイナミックランダムアクセスメモリ（ＤＲＡＭ）又はスタティックランダムアクセスメモリ（ＳＲＡＭ）である。このメモリは図に示すようにストレージシステム７０６内に位置させても、メモリシステム６０４内に位置させてもよい。プロセッサ６０３は一般に集積回路メモリ６０４，７１２内のデータを処理し、処理終了後にそのデータを媒体７１１へとコピーする。媒体７１１と集積回路メモリ素子６０４，７１２との間のデータ移動の管理には様々なメカニズムが知られており、本発明はそれらに限定されない。本発明は特定のメモリシステム６０４又はストレージシステム６０６に限定されない。
【００６４】
コンピュータシステムは特別にプログラムされた専用ハードウェア、例えば特定用途向け集積回路（ＡＳＩＣ）を含んでもよい。本発明の様々な態様はソフトウェア、ハードウェア又はファームウェア、又はそれらの任意の組み合わせに実装してもよい。更に、このような方法、動作、システム要素及びそのコンポーネントは上述したコンピュータシステムの一部分として又は独立のコンポーネントとして実装してもよい。
【００６５】
コンピュータシステム６００は、一例として本発明の様々な態様を実装し得る一つのタイプのコンピュータシステムとして示されているが、本発明の様々な態様は図６に示すコンピュータシステムに実装することに限定されないものと理解すべきである。本発明の様々な態様は図６と異なるアーキテクチャ又はコンポーネントを有する一以上のコンピュータシステムに実装してもよい。更に、本発明の実施形態の機能又はプロセスは本明細書（又は特許請求の範囲）内にプロセッサ又はコントローラで実行されるものとして記載されているが、このような記載はそれらの機能を実行するのに２つ以上のプロセッサ又はコントローラを用いるシステムも包含することが意図されている。
【００６６】
コンピュータシステム６００は高級コンピュータプログラミング言語を用いてプログラムし得る汎用コンピュータシステムとし得る。コントローラシステム６００は特別にプログラムされた汎用ハードウェアを用いて実装してもよい。コントローラシステム６００において、プログラム６０３は典型的には市販のプロセッサ、例えばインテル社から入手し得る周知のペンティアム級のプロセッサである。多くの他のプロセッサが利用可能である。このようなプロセッサは通常オペレーティングシステム、例えば、マイクロソフト社から入手し得るウィンドウズ９５、ウィンドウズ９８、ウィンドウズＮＴ、ウィンドウズ２０００（ウィンドウズＭＥ）又は振動図ＸＰ又はビスタオペレーティングシステム、アップルコンピュータから入手し得るＭＡＣ  ＯＳシステムＸ、サンマイクロシステムから入手し得るソラリスオペレーティングシステム、又は様々なソースから入力出力し得るＵＮＩＸ(登録商標）オペレーティングシステム、を実行する。多くの他のオペレーティングシステムを使用してもよい。
【００６７】
プロセッサとオペレーティングシステムは相まって高級プログラミング言語でアプリケーションプログラムが書き込まれるコンピュータプラットフォームを規定する。本発明の実施形態は特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、又はメモリに限定されないことを理解されたい。また、本発明は特定のプログラミング言語又はコンピュータシステムに限定されないことも当業者に明らかであろう。更に、他の適切なプログラミング言語及び他の適切なコンピュータシステムを使用してもよいことも理解されたい。
【００６８】
コンピュータシステムの一以上の部分を通信ネットワークに結合された一以上のコンピュータシステムに全域に分散させてもよい。例えば、上述したように、利用可能な電力容量を決定するコンピュータシステムはシステムマネージャから遠く離れて位置してもよい。これらのコンピュータシステムも汎用コンピュータシステムであってよい。例えば、本発明の様々な態様は、一以上のクライアントコンピュータにサービスを提供するように構成された一以上のコンピュータシステム（例えば、サーバ）、又は分散システムの一部分として全体的なタスクを実行するように構成された一以上のコンピュータシステムの間に分散してもよい。例えば、本発明の様々な態様は、本発明の様々な実施形態によるサーバ機能を実行する一以上のサーバシステムの間に分散されたコンポーネントを含むクライアントサーバ又は多層システム上で実行してもよい。これらのコンポーネントは、通信プロトコル（例えば，ＴＣＰ／ＩＰ）を用いて通信ネットワーク（例えば、インターネット）を介して通信する、実行コード、中間言語（ＩＬ）又は解釈（例えばＪａｖａ（登録商標））コードとしてよい。例えば、本発明の実施形態と関連するレイアウトの設計に使用される予測引き出し電力などのデバイスデータを格納するために一以上のデータベースサーバを使用してよい。
【００６９】
本発明は任意の特定のシステム又はシステム群で実行するものに限定されないことを理解されたい。また、本発明は任意の特定の分散アーキテクチャ、ネットワーク又は通信プロトコルにげんていされないことを理解されたい。
【００７０】
本発明の様々な実施形態は、ＳｍａｌｌＴａｌｋ、ＪａｂａＣ＋＋，Ａｄａ，又はＣ＃等のオブジェクト指向プログラミング言語を用いてプログラムしてよい。他のオブジェクト指向プログラミング言語を使用してもよい。代わりに、関数型、スクリプト及び／又は論理プログラミング言語を使用してもよい。本発明の様々な態様は非プログラム環境（例えば、ブラウザプログラムの窓内で見る際に、グラフィックユーザインタフェース（ＧＵＩ）のブラウザプログラムのアスペクトをレンダーする又は他の機能を実行する、ＨＴＭＬ、ＸＭＬ又は他のフォーマットで生成されたドキュメント）で実装してもよい。本発明の様々な態様はプログラムされた又はプログラムされてない要素またはそれらの組み合わせとして実装してもよい。
【００７１】
上述したシステム及び方法の実施形態は概して多数の機器ラックを有する比較的大きなデータセンタ用について記載したが、本発明の実施形態は小さいデータセンタとともに及びデータセンタ以外の施設とともに使用してもよい。いくつかの実施形態は特定のアーキテクチャに類似しないように地理的に分散配置した極めて少数のコンピュータとしてもよい。
【００７２】
上述した本発明の実施形態では、分析の結果はリアルタイムに与えられると記載されている。当業者なら理解されるように、リアルタイムという語は、結果が即時に入手可能であるというより、設計者が数分間のような短期間の間に複数の異なる設計を試みることができる程度に急速に入手できることを意味する。
【００７３】
本発明の少なくとも一つの実施形態のいくつかの態様を記載したが、様々な変更、修正及び改良が当業者に容易に想到し得ることを理解されたい。このような変更、修正、改良は本開示の一部分であることが意図され、本発明の精子の予備範囲に包含されることが意図される。従って、以上の詳細な説明及び図面はほんの一例である。
【図２】
2017027601.tif 000007
【図３】
2017027601.tif 000008
【図４】
2017027601.tif 000009
【図５】
2017027601.tif 000010
【図６】
2017027601.tif 000011
【図７】
2017027601.tif 000012
【図１】
2017027601.tif 000013
【外国語明細書】
2017027601000001.pdf