(57)【特許請求の範囲】
【請求項１】
複数のサブ・システムを備えるコンピューティング・システムに適用され、１つまたは複数のパラメータに基づいて前記コンピューティング・システムの前記複数のサブシステムに関してシステムワイドで監視−分析−計画−実行（ＭＡＰＥ）ループを行う方法であって、上記方法は、
前記コンピューティング・システムが依然として前記パラメータを満足し、かつ前記システムワイドでエネルギ利用を節約するように各サブシステムが動作すべき性能レベルを計画するステップと、
サブシステムごとに、前記サブシステムが動作すべき前記性能レベルをサブシステムに通信するステップと、
各サブシステムで、前記サブシステムに通信された前記性能レベルで動作させるステップと、
前記サブシステムのうちの１つまたは複数のそれぞれについて、前記コンピューティング・システム上で動作するアプリケーション・コンピュータ・プログラムが前記ＭＡＰＥループを行うことから生じるものとして前記サブシステムが動作すべき前記性能レベルをオーバーライドするようにするために、前記アプリケーション・コンピュータ・プログラムによって前記サブシステム用のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出すステップと
を含む方法。
【請求項２】
前記パラメータは、
前記コンピューティング・システムで動作する作業負荷の特性と、
前記コンピューティング・システムで動作するアプリケーション・コンピュータ・プログラムの特性と、
前記コンピューティング・システムの必要なＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）と、
前記コンピューティング・システムのトポロジと、
前記コンピューティング・システムの使用履歴パターンと、
前記コンピューティング・システムのネットワークと
のうちの１つまたは複数を含む、請求項１に記載の方法。
【請求項３】
前記通信するステップは、
前記サブシステムが動作すべき前記性能レベルを前記コンピューティング・システムで動作するオペレーティング・システムに通信するステップと、
前記サブシステムが動作すべき前記性能レベルを前記サブシステムに通信するために、前記サブシステム用の、前記オペレーティング・システムでインストールされたアプリケーション・プログラミング・インターフェース（ＡＰＩ）を前記オペレーティング・システムによって呼び出すステップと
を含む、請求項１又は２に記載の方法。
【請求項４】
前記通信するステップは、
前記サブシステムが動作すべき前記性能レベルを前記サブシステム用のプラグインを介して前記サブシステムに通信すること
を含む、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記一連のステップを１回または複数回繰り返すことをさらに含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記コンピューティング・システムは、単一のコンピューティング・デバイスであり、各サブシステムは、前記単一のコンピューティング・デバイスのコンポーネントである、請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記コンピューティング・システムは、複数のコンピューティング・デバイスを含み、各サブシステムは、前記コンピューティング・システムの前記コンピューティング・デバイスのうちの１つを含む、請求項１乃至５のいずれかに記載の方法。
【請求項８】
コンピューティング・システムであって、
少なくとも１つはハードウェアで実施される複数のサブシステムと、
１つまたは複数のパラメータに基づいて前記サブシステムに関してシステムワイドで監視−分析−計画−実行（ＭＡＰＥ）ループを実行し、各サブシステムと通信可能なマネージャ・コンポーネントとを備え、
前記マネージャ・コンポーネントは、
前記コンピューティング・システムが依然として前記１つまたは複数のパラメータを満足し、かつシステムワイドでエネルギ利用を節約するように各サブシステムが動作すべき性能レベルを計画し、
各サブシステムに前記サブシステムが動作すべき前記性能レベルを通信し、
各サブシステムは、前記マネージャ・コンポーネントによって前記サブシステムに通信された前記性能レベルで動作し、
前記サブシステムのうちの１つまたは複数のそれぞれについて、前記サブシステム用のアプリケーション・プログラミング・インターフェース（ＡＰＩ）をさらに含み、前記ＡＰＩは、前記コンピューティング・システム上で動作するアプリケーション・コンピュータ・プログラムが、前記マネージャ・コンポーネントが前記ＭＡＰＥループを行うことから生じるものとして前記サブシステムが動作すべき前記性能レベルをオーバーライドするようにするために前記アプリケーション・コンピュータ・プログラムによって呼出し可能である
コンピューティング・システム。
【請求項９】
前記パラメータは、
前記コンピューティング・システムで動作する作業負荷の特性と、
前記コンピューティング・システムで動作するアプリケーション・コンピュータ・プログラムの特性と、
前記コンピューティング・システムの必要なＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）と、
前記コンピューティング・システムのトポロジと、
前記コンピューティング・システムの使用履歴パターンと、
前記コンピューティング・システムのネットワークと
のうちの１つまたは複数を含む、請求項８に記載のコンピューティング・システム。
【請求項１０】
前記コンピューティング・システムは、オペレーティング・システムをさらに含み、
前記オペレーティング・システムは、前記サブシステムが動作すべき前記性能レベルを前記サブシステムのうちの１つまたは複数のそれぞれについて前記マネージャ・コンポーネントから受け取り、前記オペレーティング・システムは、前記サブシステムが動作すべき前記性能レベルを前記サブシステムに通信するために、前記サブシステム用の、前記オペレーティング・システムでインストールされたアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出す
請求項８又は９に記載のコンピューティング・システム。
【請求項１１】
前記サブシステムのうちの１つまたは複数のそれぞれについて、前記サブシステムが動作すべき前記性能レベルを前記マネージャ・コンポーネントが前記サブシステム用のプラグインを介して前記サブシステムに通信するように、前記サブシステム用の、前記マネージャ・コンポーネントでインストールされた前記プラグインをさらに含む、請求項８乃至１０のいずれかに記載のコンピューティング・システム。
【請求項１２】
前記コンピューティング・システムは、単一のコンピューティング・デバイスであり、各サブシステムは、前記単一のコンピューティング・デバイスのコンポーネントである、請求項８乃至１１のいずれかに記載のコンピューティング・システム。
【請求項１３】
前記コンピューティング・システムは、複数のコンピューティング・デバイスを含み、各サブシステムは、前記コンピューティング・システムの前記コンピューティング・デバイスのうちの１つを含む、請求項８乃至１１のいずれかに記載のコンピューティング・システム。
【請求項１４】
コンピュータで実行されると、前記コンピュータに請求項１乃至７のいずれかに記載の一連のステップを行わせるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には監視−分析−計画−実行（ｍｏｎｉｔｏｒ−ａｎａｌｙｚｅ−ｐｌａｎ−ｅｘｅｃｕｔｅ、ＭＡＰＥ）ループの実行に関し、より具体的には、特に省エネルギのための、コンピューティング・システムの複数のサブシステムに関するシステムワイドでのそのようなＭＡＰＥループの実行に関する。
【背景技術】
【０００２】
オートノミック・コンピューティング・システムは、その動作環境を感知し、その動作環境内での挙動をモデル化し、その動作環境またはそれ自体の挙動を変更するためにアクションを行うコンピューティング・システムである。オートノミック・コンピューティング・システムは、典型的には自己構成的、自己修復的、自己最適化的、かつ自己防御的である。これらは、そのようなシステムが、それら自体の構成を変更することによって変化する条件に適合することができる特性を有し、サービス崩壊を招くことなくシステム内のコンポーネントまたはリソースの追加および除去ができる機能性を有するという点で、自己構成的である。
【０００３】
オートノミック・コンピューティング・システムは、正常な状態からの逸脱を認識し、診断する能力およびそれらの状態を正常化するためにアクションを行う能力ならびにサービス崩壊を引き起こす可能性がある問題を先を見越して（proactively）回避する機能を有するという点で自己修復的である。そのようなコンピューティング・システムは、その状態および性能を監視し、環境刺激に応答するために先を見越してそれ自体を調整する能力を有するという点で、自己最適化的である。オートノミック・コンピューティング・システムは、セキュリティ脅威を認識し、回避するためにインテリジェンスを組み込み、過熱または過度な動きなどの物理的な害からそれ自体を保護する機構を有するという点で、自己防御的である。
【０００４】
図１に、従来技術のいくつかのオートノミック・コンピューティング・システム内に存在する態様すなわち監視−分析−計画−実行（ＭＡＰＥ）ループ１０２のアーキテクチャ１００を示す。マネージャ・コンポーネント１０４は、コンピューティング・システムの管理対象要素１０６に関してＭＡＰＥループ１０２を実行する。ナレッジ１０８に基づいて、マネージャ・コンポーネント１０４は、４つのアクションすなわち、監視１１０、分析１１２、計画１１４、および実行１１６を実行する。ＭＡＰＥループ１０２が、従来技術の中でオートノミック・コンピューティング・システム全体についてシステムワイドで実行されるのではなく、管理対象要素１０６など、サブシステムまたは管理対象要素ごとに個別に実行されることに留意されたい。
【０００５】
監視１１０は、管理対象要素１０６からのまたは管理対象要素１０６に関する１つまたは複数のイベントを受け取ることを含む。分析１１２は、これらのイベントを相関させ、分析して、特定の既知の状況が存在するかどうかを判定することを含む。計画１１４は、そのような状況が存在するかそのような状況が他の形で検出される場合に、１つまたは複数のアクションを決定することを介してその状況をどのように処理すべきかを決定することを含む。したがって、実行１１６は、管理対象要素１０６が決定されたこれらのアクションを実行することを含む。
【０００６】
図２に、従来技術に従って、ＭＡＰＥループ１０２がオートノミック・コンピューティング・システム２００内のサブシステム・レベルでどのように実行されるのかを示す。オートノミック・コンピューティング・システム２００は、集合的にサブシステム２０２と称する複数のサブシステム２０２Ａ、２０２Ｂ、…、２０２Ｎを含む。ＭＡＰＥループ１０２は、各サブシステム２０２でまたはサブシステム２０２ごとに実行され、各サブシステム２０２を、図１に示された管理対象要素１０６と考えることができる。したがって、各サブシステム２０２は、オートノミック・コンピューティング・システム２００の他のサブシステム２０２に関してではなく、それ自体に関して実行されるＭＡＰＥループ１０２を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、サブシステムごとでのＭＡＰＥループ１０２のそのような個別の実行は、問題がある。個々のＭＡＰＥループ１０２は、すべての他のサブシステム２０２で発生するイベントによって知らされないので、サブシステム２０２が行うべきアクションに関して誤った判断を行う可能性がある。たとえば、他のサブシステム２０２が、すぐにプロセッサ・サブシステムによるかなりの処理時間を必要とするプロセスがあると判定した場合であっても、あるプロセッサ・サブシステムのＭＡＰＥループが、そのサブシステムが、エネルギを節約するために性能レベルをステップ・ダウンしなければならないと判定する場合がある。したがって、そのプロセッサ・サブシステムは、性能レベルをステップ・ダウンするや否や、即座に処理アクティビティを実行することを要求される可能性があり、そのサブシステムが、これらの要求を処理するために即座にその性能レベルを戻してステップ・アップしなければならない可能性がある。これは、問題となり得る。というのは、性能レベルがステップ・ダウンされた後に、プロセッサ・サブシステムが性能レベルを戻してステップ・アップするのに時間を要する可能性があるからである。
【０００８】
さらに、サブシステムごとでのＭＡＰＥループ１０２の個々の実行は、オートノミック・コンピューティング・システム２００全体に関する性能劣化およびエネルギ節約劣化を引き起こす望ましくない待ち時間効果（latancy effect）をもたらす可能性がある。たとえば、すべてのサブシステム２０２が、オートノミック・コンピューティング・システム２００によって実行されつつある最小限のアクティビティに起因して、その性能レベルをステップ・ダウンしている場合がある。その後、オートノミック・コンピューティング・システム２００全体によってかなりのアクティビティが実行されることをもたらす要求が、フロントティア(front-tier)・サブシステムによって受け取られる場合がある。理想的には、フロントティア・サブシステムがこれらの要求を受け取った後に、すべてのサブシステム２０２が、それらの要求がフロントティア・サブシステムからミドルティア(middle-tier)・サブシステムへ、および最終的にバックエンド・サブシステムへ移動することを予想して、即座に性能レベルをステップ・アップする。
【０００９】
しかし、ＭＡＰＥループ１０２がサブシステムごとで個別に実行される場合には、こうはなり得ない。そうではなく、フロントティア・サブシステムは、まず、それ自体のＭＡＰＥループ１０２が実行されることに応答してその性能レベルをステップ・アップし、これは、フロントティア・サブシステムが要求を適切に処理できるようになる前に時間を要する。要求が、各ティア・サブシステムのすべてに転送されるときに、このプロセスが繰り返され、ティア・サブシステムは、順次、要求を適切に処理できるようになるまでその性能レベルをステップ・アップしなければならない。Ｎ個のサブシステム２０２のそれぞれが、ＭＡＰＥループ１０２の実行の後にその性能レベルを戻ってステップ・アップするのに同一の待ち時間ｎを有する場合に、これは、すべてのサブシステム２０２が以前にその性能レベルをステップ・ダウンした後の要求の処理が、Ｎかけるｎの遅延をもたらすことを意味し、これは、かなりの長さになり得る。すなわち、待ち時間ｎが、Ｎ個のサブシステム２０２にまたがって順次波及する。比較によれば、理想的な場合は、すべての関係するサブシステム２０２が、同時にステップ・アップされ、その結果、全体として待ち時間ｎだけが発生することである。
【００１０】
同一の待ち時間・波及効果が、従来技術で逆の状況でも発生する。すべてのサブシステム２０２が、ステップ・アップされた性能レベルで動作しているときに、バックティア・サブシステムが、まず、ＭＡＰＥループ１０２によって検出される、より少ないアクティビティが実行されつつあることに応答して、その性能レベルをステップ・ダウンする場合がある。これに応答して、シーケンス内の各ミドルティア・サブシステムが、最終的にフロントティア・サブシステムがその性能レベルをステップ・ダウンするまで、その性能レベルをステップ・ダウンする可能性がある。前と同様に、Ｎ個のサブシステム２０２のそれぞれが、そのＭＡＰＥループ１０２の実行の後に性能レベルを戻ってステップ・ダウンするのに同一の待ち時間ｎを有する場合に、これは、オートノミック・コンピューティング・システム２００全体のエネルギ効率のよい状態に達することが、Ｎかけるｎの遅延をもたらすことを意味する。というのは、待ち時間ｎが、Ｎ個のサブシステム２０２にまたがって順次伝わるからである。理想的な場合は、やはり、すべての関係するサブシステム２０２が、同時にステップ・ダウンされ、その結果、全体として待ち時間ｎだけが発生することである。
【課題を解決するための手段】
【００１１】
本発明は、システムワイドで監視−分析−計画−実行（ＭＡＰＥ）ループを行うことに関する。本発明の実施形態の方法では、ＭＡＰＥループが、１つまたは複数のパラメータに基づいてコンピューティング・システムの複数のサブシステムに関してシステムワイドで実行される。ＭＡＰＥループを行うことは、コンピューティング・システムが依然としてパラメータを満足するように、各サブシステムがシステムワイドでエネルギ利用を節約するために動作すべき性能レベルをもたらす。各サブシステムが動作すべき性能レベルが、サブシステムに通信される。各サブシステムは、サブシステムに通信された性能レベルで動作する。
【００１２】
好ましくは、本発明は、パラメータに基づいてコンピューティング・システムの複数のサブシステムに関してシステムワイドでＭＡＰＥループを行うことが、コンピューティング・システムで動作する作業負荷の特性と、コンピューティング・システムで動作するアプリケーション・コンピュータ・プログラムの特性と、コンピューティング・システムの必要なＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）と、コンピューティング・システムのトポロジと、コンピューティング・システムの使用履歴パターン(historical usage pattern)と、コンピューティング・システムのネットワークとのうちの１つまたは複数に基づいてコンピューティング・システムの複数のサブシステムに関してシステムワイドでＭＡＰＥループを行うことを含む、方法を提供する。
【００１３】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、サブシステムにサブシステムが動作すべき性能レベルを通信することが、サブシステムが動作すべき性能レベルをコンピューティング・システムで動作するオペレーティング・システムに通信することと、サブシステムが動作すべき性能レベルをサブシステムに通信するために、サブシステム用の、オペレーティング・システムでインストールされたアプリケーション・プログラミング・インターフェース（ＡＰＩ）をオペレーティング・システムによって呼び出すこととを含む、方法を提供する。
【００１４】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、サブシステムにサブシステムが動作すべき性能レベルを通信することが、サブシステムが動作すべき性能レベルをサブシステム用のプラグインを介してサブシステムに通信することを含む、方法を提供する。
【００１５】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、コンピューティング・システム上で動作するアプリケーション・コンピュータ・プログラムがＭＡＰＥループを行うことから生じるものとしてサブシステムが動作すべき性能レベルをオーバーライドするようにするために、アプリケーション・コンピュータ・プログラムによってサブシステム用のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出すことをさらに含む方法を提供する。
【００１６】
好ましくは、本発明は、その方法を１回または複数回繰り返すことをさらに含む方法を提供する。
【００１７】
好ましくは、本発明は、コンピューティング・システムが、単一のコンピューティング・デバイスであり、各サブシステムが、単一のコンピューティング・デバイスのコンポーネントである、方法を提供する。
【００１８】
好ましくは、本発明は、コンピューティング・システムが、複数のコンピューティング・デバイスを含み、各サブシステムが、コンピューティング・システムのコンピューティング・デバイスのうちの１つを含む、方法を提供する。
【００１９】
本発明の実施形態のコンピューティング・システムは、複数のサブシステムおよびマネージャ・コンポーネントを含む。サブシステムのうちの少なくとも１つは、ハードウェアで実現される。マネージャ・コンポーネントは、コンピューティング・システムが依然として１つまたは複数のパラメータを満足するようにシステムワイドでエネルギ利用を節約するために各サブシステムが動作すべき性能レベルをもたらすために、パラメータに基づいてサブシステムに関してシステムワイドでＭＡＰＥループを行う。マネージャ・コンポーネントは、各サブシステムにサブシステムが動作すべき性能レベルを通信する。次に、各サブシステムは、マネージャ・コンポーネントによってサブシステムに通信された性能レベルで動作する。
【００２０】
好ましくは、本発明は、パラメータが、コンピューティング・システムで動作する作業負荷の特性と、コンピューティング・システムで動作するアプリケーション・コンピュータ・プログラムの特性と、コンピューティング・システムの必要なＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）と、コンピューティング・システムのトポロジと、コンピューティング・システムの使用履歴パターンと、コンピューティング・システムのネットワークとのうちの１つまたは複数を含む、コンピューティング・システムを提供する。
【００２１】
好ましくは、本発明は、オペレーティング・システムをさらに含み、オペレーティング・システムは、サブシステムが動作すべき性能レベルをサブシステムのうちの１つまたは複数のそれぞれについてマネージャ・コンポーネントから受け取り、オペレーティング・システムは、サブシステムが動作すべき性能レベルをサブシステムに通信するために、サブシステム用の、オペレーティング・システムでインストールされたアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出す、コンピューティング・システムを提供する。
【００２２】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、サブシステムが動作すべき性能レベルをマネージャ・コンポーネントがサブシステム用のプラグインを介してサブシステムに通信するように、サブシステム用の、マネージャ・コンポーネントでインストールされたプラグインをさらに含む、コンピューティング・システムを提供する。
【００２３】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、サブシステム用のアプリケーション・プログラミング・インターフェース（ＡＰＩ）をさらに含み、ＡＰＩは、コンピューティング・システム上で動作するアプリケーション・コンピュータ・プログラムが、マネージャ・コンポーネントがＭＡＰＥループを行うことから生じるものとしてサブシステムが動作すべき性能レベルをオーバーライドするようにするためにアプリケーション・コンピュータ・プログラムによって呼出し可能である、コンピューティング・システムを提供する。
【００２４】
好ましくは、本発明は、コンピューティング・システムが、単一のコンピューティング・デバイスであり、各サブシステムが、単一のコンピューティング・デバイスのコンポーネントである、コンピューティング・システムを提供する。
【００２５】
好ましくは、本発明は、コンピューティング・システムが、複数のコンピューティング・デバイスを含み、各サブシステムが、コンピューティング・システムのコンピューティング・デバイスのうちの１つを含む、コンピューティング・システムを提供する。
【００２６】
本発明の一実施形態のコンピューティング・デバイスは、ハードウェアおよびハードウェア内で実施されるマネージャ・コンポーネントを含む。マネージャ・コンポーネントは、１つまたは複数のパラメータに基づいてコンピューティング・システムの複数のサブシステムに関してシステムワイドでＭＡＰＥループを行う。これは、コンピューティング・システムが依然としてパラメータを満足するようにシステムワイドでエネルギ利用を節約するために各サブシステムが動作すべき性能レベルをもたらす。
【００２７】
本発明は、サブシステムが動作すべき性能レベルをコンピューティング・システムで動作するオペレーティング・システムに通信することによって、サブシステムのうちの１つまたは複数のそれぞれについて、サブシステムが動作すべき性能レベルをマネージャ・コンポーネントがサブシステムに通信する、コンピューティング・デバイスであって、オペレーティング・システムは、サブシステムが動作すべき性能レベルをサブシステムに通信するために、サブシステム用の、オペレーティング・システムでインストールされたアプリケーション・プログラミング・インターフェース（ＡＰＩ）を呼び出す、コンピューティング・デバイスを提供する。
【００２８】
好ましくは、本発明は、サブシステムのうちの１つまたは複数のそれぞれについて、マネージャ・コンポーネントが、サブシステムが動作すべき性能レベルを、サブシステム用の、マネージャ・コンポーネントでインストールされたプラグインを介してサブシステムに通信する、コンピューティング・デバイスを提供する。
【００２９】
本発明の一実施形態の製造品は、記録可能データ記憶媒体などの有形のコンピュータ可読媒体と、１つまたは複数のコンピューティング・デバイスの１つまたは複数のプロセッサによって実行され得る１つまたは複数のコンピュータ・プログラムなどの媒体内の手段とを含む。この手段は、１つまたは複数のパラメータに基づいてコンピューティング・システムの複数のサブシステムに関してシステムワイドでＭＡＰＥループを行う。ＭＡＰＥループを行うことは、コンピューティング・システムが依然としてパラメータを満足するように、各サブシステムがシステムワイドでエネルギ利用を節約するために動作すべき性能レベルをもたらす。
【００３０】
本明細書で参照される図面は、本明細書の一部を形成する。図面に示された特徴は、そうではないと明示的に示されない限り、本発明のすべての実施形態の例示ではなく、本発明のいくつかの実施形態のみの例示であることを意図され、反対の含意が、その他の形で行われることはない。
【図面の簡単な説明】
【００３１】
【図１】従来技術による、監視−分析−計画−実行（ＭＡＰＥ）ループがそれに関して実行されるアーキテクチャを示す図である。
【図２】従来技術による、ＭＡＰＥループがサブシステムごとで実行されるコンピューティング・システムを示す図である。
【図３】本発明の実施形態による、ＭＡＰＥループがシステムワイドで実行されるコンピューティング・システムを示す図である。
【図４】本発明の一実施形態による、ＭＡＰＥループをシステムワイドで実行することによってコンピューティング・システムワイドでエネルギ利用を節約する方法を示す流れ図である。
【図５】本発明のさまざまな実施形態による、それに関して図３のコンピューティング・システムを実施でき、図４の方法を実行できるコンピューティング・システム・トポロジの１つを示す図である。
【図６】本発明のさまざまな実施形態による、それに関して図３のコンピューティング・システムを実施でき、図４の方法を実行できるコンピューティング・システム・トポロジの１つを示す図である。
【図７】本発明の実施形態による基本的なコンピューティング・デバイスを示す図である。
【発明を実施するための形態】
【００３２】
本発明の例示的実施形態の次の詳細な説明では、本明細書の一部を形成する添付図面を参照し、添付図面には、実例として、本発明を実践できる特定の例示的実施形態が示されている。これらの実施形態を、当業者が本発明を実践することを可能にするのに十分に詳細に説明する。他の実施形態を利用することができ、論理的変更、機械的変更、または他の変更を、本発明の範囲から逸脱せずに行うことができる。したがって、次の詳細な説明は、限定的な意味で解釈されてはならず、本発明の範囲は、添付の特許請求の範囲のみによって定義される。
【００３３】
図３に、本発明の実施形態によるコンピューティング・システム３００を示す。コンピューティング・システム３００は、オートノミック・コンピューティング・システムとすることができ、したがって、上の背景技術のセクションで説明したように、自己構成的、自己修復的、自己最適化的、または自己防御的、あるいはその組合せとすることができる。コンピューティング・システム３００は、集合的にサブシステム３０２と称する複数のサブシステム３０２Ａ、３０２Ｂ、…、３０２Ｎを含む。サブシステム３０２を、それぞれ、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せで実施することができる。そのようなサブシステム３０２の通常の例は、個々のコンピューティング・デバイス・コンポーネントまたはデバイス、サーバ・デバイス、ストレージ・サブシステム、プロセッサ・サブシステム、ネットワーキング・サブシステムなどのコンピューティング・デバイス全体、ならびに他のタイプのサブシステムを含む。
【００３４】
ソフトウェア、ハードウェア、またはソフトウェアおよびハードウェアの組合せで実施することができる、マネージャ・コンポーネント３０４がある。マネージャ・コンポーネント３０４は、図３では、コンピューティング・システム３００とは別々として図示されているが、別の実施形態では、マネージャ・コンポーネント３０４をコンピューティング・システム３００の一部とすることができる。マネージャ・コンポーネント３０４は、監視−分析−計画−実行（ＭＡＰＥ）ループ３１０を実行する。しかし、背景技術のセクションで説明したようにＭＡＰＥループがサブシステムごとにサブシステムごとで実行される従来技術とは異なって、マネージャ・コンポーネント３０４によって実行されるＭＡＰＥループ３１０は、コンピューティング・システム３００のすべてのサブシステム３０２について、システムワイドで実行される。一実施形態では、ＭＡＰＥループ３１０は、ＭＡＰＥループ３１０がすべてのサブシステム３０２を全体として少なくとも実質的に同時に考慮に入れるという事実を除いて、背景技術のセクションで説明したサブシステムごとで実行されるのと同一の形でシステムワイドで実行される。
【００３５】
ＭＡＰＥループ３１０は、ナレッジ、より具体的には、コンピューティング・システム３００全体に関するまたはコンピューティング・システム３００の個々のサブシステム３０２に関するあるいはその両方の１つまたは複数のパラメータを基礎として実行される。たとえば、これらのパラメータは、コンピューティング・システム３００で動作する作業負荷の特性またはコンピューティング・システム３００で動作するアプリケーション・コンピュータ・プログラム３０８の特性あるいはその両方を含むことができる。他のパラメータは、コンピューティング・システム３００の必要なＳＬＡ（ｓｅｒｖｉｃｅ  ｌｅｖｅｌ  ａｇｒｅｅｍｅｎｔ）を含むことができ、ここで、コンピューティング・システム３００は、ある当事者によって別の当事者のために管理され、前者の当事者が、そのようなＳＬＡ内でコンピューティング・システム３００のある種の性能レベルを保証するようになっている。さらに他のパラメータは、コンピューティング・システム３００のトポロジ（たとえば、その個々の構成するサブシステム３０２およびそれらが互いにどのように接続されるか）、コンピューティング・システム３００の使用履歴パターン（たとえば、コンピューティング・システム３００が日中と比較して夜にそれほど頻繁に使用されない可能性がある）、作業負荷優先順位、ならびにコンピューティング・システム３００のすべてのネットワークを含む。パラメータは、ユーザ指定とすることができる。
【００３６】
ＭＡＰＥループ３１０の実行は、依然として当該のすべてのパラメータを満足しながら、各サブシステム３０２がコンピューティング・システム３００のシステムワイドでエネルギ利用を節約するために動作すべき性能レベルをもたらす。たとえば、ＭＡＰＥループ３１０の実行が、処理集中型アクティビティが現在ストレージ・デバイス・アクセスをほとんど伴わずに実行されつつあることを判定する場合には、処理サブシステムは、ストレージ・サブシステムが５０％性能で動作することができる間に、依然としてコンピューティング・システム３００がそれに関して操作されるＳＬＡを満足しながら、１００％性能で動作することができる。一般に、サブシステム３０２が動作しなければならない性能レベルを、０％、２５％、５０％、７５％、１００％、その他など、その最高性能能力のパーセンテージに関して表すことができる。さらに、一般に、より高い性能レベルは、通常、より高いエネルギ使用と同等と考えられ、エネルギ効率を維持するために、サブシステム３０２は、それが現在実行しているかすぐに実行しなければならなくなるアクティビティと同程度の性能レベルで動作するように指示される。
【００３７】
ＭＡＰＥループ３１０は、コンピューティング・システム３００のすべてのサブシステム３０２に関してシステムワイドで実行されるので、個々のサブシステム３０２の性能レベルがどれでなければならないのかに関するよりインテリジェントな判断を、従来技術と比較して、待ち時間・波及効果なしで行うことができる。たとえば、処理サブシステムが、現在は要求を全く処理していないが、フロントティア・サブシステムが、処理サブシステムがすぐに処理しなければならなくなる可能性がある多数の要求を受取済みである場合がある。従来技術では、処理サブシステム自体に関してサブシステムごとで実行されるＭＡＰＥループは、処理サブシステムがすぐに多数の要求を処理するように求められることを知らないので、エネルギを節約するために処理システムが低性能レベル状態に置かれることをもたらす可能性がある。
【００３８】
比較により、コンピューティング・システム３００内で、すべてのサブシステム３０２に関して実行されるＭＡＰＥループ３１０は、処理サブシステムが、現在はあまり多くの処理アクティビティを実行してはいない場合であっても、すぐに多数の要求を処理しなければならなくなることを識別する。したがって、ＭＡＰＥループ３１０の結果は、処理サブシステムが、すぐに多数の要求を処理することになるので、低性能レベル状態にされないことである。というのは、ＭＡＰＥループ３１０は、システムワイドで実行されるから、言い換えると、すべてのサブシステム３０２で現在発生しているすべてのアクティビティを知っており、この情報を考慮に入れることによって個々のサブシステム３０２の性能レベルを指定することができるからである。これは、サブシステムを低性能状態に置き、即座にサブシステムを低性能状態から出すことによってコンピューティング・システム３００の性能劣化が生じることがないことを保証するので、有利である。
【００３９】
さらに、システムワイドでのＭＡＰＥループ３１０の実行は、待ち時間・波及効果を排除する。たとえば、サブシステム３０２が、すべてが現在すべて低性能レベルで動作しており、フロント・ティア・サブシステムが多数の要求を受け取る場合には、サブシステム３０２全体で順次発生する待ち時間・波及は、従来技術のようにコンピューティング・システム３００内で発生はしない。これは、フロント・ティア・サブシステムが多数の要求を受け取るときに、システムワイドのＭＡＰＥループ３１０の実行が、すべてのサブシステム３０２がすぐに高性能レベルで動作しなければならなくなる可能性があることを識別できるからである。したがって、すべてのサブシステム３０２に、同時に高性能レベルで動作させることができる。その結果は、Ｎ個のサブシステム３０２かけるサブシステムごとにｎの待ち時間という待ち時間を有するのではなく、サブシステム３０２のすべてを高性能レベルに戻すためのｎの待ち時間のみがあることである。
【００４０】
マネージャ・コンポーネント３０４が、すべてのサブシステム３０２に関する単一のシステムワイドのＭＡＰＥループ３１０（従来技術のようにサブシステム３０２に関する個別のＭＡＰＥループではなく）を実行した後に、マネージャ・コンポーネント３０４は、破線の矢印３１２によって示されるように、各サブシステム３０２に、それが動作しなければならない性能レベルを通信する。その後、各サブシステム３０２は、マネージャ・コンポーネント３０４によって通信された性能レベルで動作する。性能レベルをマネージャ・コンポーネント３０４によってサブシステム３０２に通信できる２つの異なる形を、サブシステム３０２Ａおよび３０２Ｎへの例示的関連において、これから説明する。
【００４１】
まず、サブシステム３０２Ａに関して、マネージャ・コンポーネント３０４は、サブシステム３０２Ａのためにインストールされたプラグイン３１４を有する。プラグインは、全般的に、主コンピュータ・プログラムと共に働いてその機能を強化する補助コンピュータ・プログラムと考えることができる。この場合に、プラグイン３１４は、マネージャ・コンポーネント３０４が、サブシステム３０２Ａが動作しなければならない性能レベルをサブシステム３０２Ａに直接に通信することを可能にする。したがって、サブシステム３０２Ａが、マネージャ・コンポーネント３０４でサブシステム３０２Ａのためにインストールされたプラグイン３１４を有するので、マネージャ・コンポーネント３０４は、サブシステム３０２Ａが動作しなければならない性能レベルを、矢印３１６によって示されるように、プラグイン３１４を介してサブシステム３０２Ａに直接に通信する。
【００４２】
第２に、サブシステム３０２Ｎに関して、マネージャ・コンポーネント３０４は、サブシステム３０２Ｎが動作しなければならない性能レベルを、コンピューティング・システム３００のオペレーティング・システム３０６に通信する。オペレーティング・システムは、コンピューティング・システム３００のマスタ制御コンピュータ・プログラムと考えることができ、コンピューティング・システム３００で動作するすべてのアプリケーション・コンピュータ・プログラムの標準をセットし、アプリケーション・コンピュータ・プログラムが基礎になるサブシステム３０２とインターフェースすることを可能にする。オペレーティング・システムの例は、たとえばＬＩＮＵＸ（商標）オペレーティング・システムである。
【００４３】
オペレーティング・システム３０６にインストールされているのが、サブシステム３０２Ｎが動作すべき性能レベルをオペレーティング・システム３０６がそれによって指定できる、サブシステム３０２Ｎ用のアプリケーション・プログラミング・インターフェース（ＡＰＩ）３１８である。ＡＰＩは、オペレーティング・システム３０６などの１つのエンティティによって、サブシステム３０２Ｎなどの別のエンティティと通信するのに使用される言語およびメッセージ・フォーマットと考えることができる。ＡＰＩを、関数呼出しを介して実施することができる。したがって、オペレーティング・システム３０６は、サブシステム３０２Ｎが動作すべき性能レベルを、矢印３２０によって示されるようにマネージャ・コンポーネント３０４によってサブシステム３０２Ｎに通信されるものと解釈し、ＡＰＩ  ３１８を呼び出して、矢印３２１によって示されるようにこの性能レベルをサブシステム３０２Ｎに渡す。
【００４４】
アプリケーション・コンピュータ・プログラム３０８などのアプリケーション・コンピュータ・プログラムが、マネージャ・コンポーネント３０４によって指図されるサブシステム３０２の性能レベルをオーバーライドすることを望む、ある種の状況がありえる。たとえば、システムワイドのＭＡＰＥループ３１０の実行を介するサブシステム３０２の性能レベルのステップ・ダウンおよびステップ・アップが、インテリジェントに最小限の待ち時間ｎを伴って達成される場合であっても、アプリケーション・コンピュータ・プログラム３０８が、その実行が非常に重要であり、この最小限の待ち時間でさえこうむるには長すぎると判断する場合がある。さらに、アプリケーション・コンピュータ・プログラム３０８が、この情報をマネージャ・コンポーネント３０４に通信することができない場合がある。
【００４５】
したがって、サブシステム３０２Ｂとの例示的な関連では、アプリケーション・コンピュータ・プログラム３０８は、サブシステム３０２ＢのＡＰＩ  ３２２を呼び出して、マネージャ・コンポーネント３０４によって指図されたサブシステム３０２Ｂの性能レベルをオーバーライドすることができる。ＡＰＩ  ３２２は、オペレーティング・システム３０６が、サブシステム３０２Ｂが動作すべき性能レベルをマネージャ・コンポーネント３０４からサブシステム３０２Ｂに通信するのに使用できるＡＰＩと同一のＡＰＩまたは異なるＡＰＩとすることができる。アプリケーション・コンピュータ・プログラム３０８が、マネージャ・コンポーネント３０４によって指図されたサブシステム３０２Ｂの性能レベルをオーバーライドするときに、サブシステム３０２Ｂは、アプリケーション・コンピュータ・プログラム３０８自体が他の形でサブシステム３０２Ｂに知らせるまで、マネージャ・コンポーネント３０４によって提案されるとおりにその性能レベルを変更することができる。
【００４６】
図４に、本発明の実施形態による、システムワイドのＭＡＰＥループ３１０を実行することによってコンピューティング・システム３００によるエネルギ利用を節約する方法４００を示す。方法４００のほとんどの部分は、そうではないと明示的に示される場合を除いて、マネージャ・コンポーネント３０４によって実行することができる。これに関して、マネージャ・コンポーネント３０４は、記録可能データ記憶媒体などの有形のコンピュータ可読媒体に格納された、プロセッサによって実行される１つまたは複数のコンピュータ・プログラムを含むことができる。これに関するコンピュータ・プログラムは、マネージャ・コンポーネント３０４によって実行される方法４００の機能性を実行する手段を構成することができる。
【００４７】
マネージャ・コンポーネント３０４は、前に説明したように、１つまたは複数のパラメータに基づいて、コンピューティング・システム３００のサブシステム３０２に関してシステムワイドでＭＡＰＥループ３１０を実行する（４０２）。ＭＡＰＥループの実行は、コンピューティング・システム３００全体が依然として当該のパラメータを満足できるように、システムワイドでエネルギ利用を節約するために各サブシステムが動作すべき性能レベルをもたらす。たとえば、コンピューティング・システム３００の性能に過度に影響せずに、より低い性能レベルで動作することができるサブシステム３０２を、エネルギ利用を節約するためにそのようなより低い性能レベルで動作させることができる。比較して、コンピューティング・システム３００の最低限の性能を保証するためにより高い性能レベルで動作しなければならない他のサブシステム３０２は、より低い性能レベルで動作しなくてもよい。
【００４８】
マネージャ・コンポーネント３０４は、サブシステム３０２が動作しなければならない性能レベルを各サブシステム３０２に通信する（４０４）。一実施形態では、部分４０６および４０８を、そのような通信を達成するために実行することができ、別の実施形態では、部分４０８を、そのような通信を達成するために実行することができる。前者の場合に、所与のサブシステム３０２が動作しなければならない性能レベルが、オペレーティング・システム３０６に通信され（４０６）、オペレーティング・システム３０６は、この性能レベルを、当該のサブシステム３０２に、そのサブシステム３０２用のＡＰＩ  ３１８を介して通信する。後者の場合に、所与のサブシステム３０２が動作しなければならない性能レベルは、マネージャ・コンポーネント３０４によって当該のサブシステム３０２にそのサブシステム３０２用のプラグイン３１４を介して直接に通信される（４１０）。
【００４９】
いくつかの実施形態では、アプリケーション・コンピュータ・プログラム３０８は、所与のサブシステム３０２のＡＰＩ  ３２２を呼び出して、マネージャ・コンポーネント３０４によって部分４０６および４０８を介して間接にまたは部分４１０を介して直接に通信された、当該のサブシステム３０２が動作すべき性能レベルをオーバーライドすることができる（４１２）。最終的に、各サブシステム３０２は、マネージャ・コンポーネント３０４によって直接にまたは間接にのいずれかでそれに通信された、あるいはアプリケーション・コンピュータ・プログラム３０８によってオーバーライドされた、性能レベルで動作する（４１４）。その後、方法４００を、矢印４１６によって示されるように、部分４０２から始めて１回または複数回繰り返すことができる。
【００５０】
説明したように、本発明の実施形態を、異なるタイプのサブシステム３０２を有するコンピューティング・システム３００に関して実行することができる。コンピューティング・システム３００の１つのタイプは、たとえば、サーバ・デバイスのコレクション、別々のコンピューティング・デバイスまたはコンピューティング・デバイスのコレクションで実施されるストレージ・サブシステムなどを有することができる。その場合に、各サーバ・デバイスおよび各サブシステムを、サブシステム３０２のうちの１つと考えることができる。別の実施形態では、コンピューティング・システム３００を、プロセッサ、メモリ、ハード・ディスク・ドライブなどのストレージ・デバイス、その他などの複数のコンポーネントを有する単一のコンピューティング・デバイスとすることができる。その場合に、各コンポーネントを、サブシステム３０２のうちの１つと考えることができる。
【００５１】
前者の場合に関して、図５に、本発明の一実施形態による、代表的なコンピューティング・システム３００のトポロジを示す。図５のサブシステム３０２は、それぞれ、サーバ・デバイスである。サーバ・デバイスは、第１（またはフロント）ティア・サブシステム３０２Ａから第２ティア・サブシステム３０２Ｂおよび最終的に最終（またはバック）ティア・サブシステム３０２Ｎまでのティアに編成される。この実施形態では、要求は、コンピューティング・システム３００の外部から第１ティア・サブシステム３０２Ａによって受け取られ、応答を生成するための最終的な処理のために最終ティア・サブシステム３０２Ｎまで移動し、この応答は、コンピューティング・システム３００の外部に戻る通信のために第１ティア・サブシステム３０２Ａまで戻って移動する。したがって、図５の実施形態は、コンピューティング・システム３００をサブシステム３０２としての複数の別々のサーバ・デバイスから構成し、複数のティアにまたがって編成できることを示すために提示されるものである。
【００５２】
後者の場合に関して、図６に、本発明の別の実施形態による、代表的なコンピューティング・システム３００のトポロジを示す。図６のコンピューティング・システム３００は、それ自体が単一のコンピューティング・デバイスである。このコンピューティング・デバイスは、プロセッサ、メモリ、ストレージ・デバイス、ならびに他のコンポーネントを含む。したがって、図６のサブシステム３０２は、プロセッサ・サブシステム３０２Ａ、メモリ・サブシステム３０２Ｂ、ストレージ・デバイス・サブシステム３０２Ｃ、ならびに他のコンポーネントのサブシステム３０２Ｎを含む。図６の実施形態は、コンピューティング・システム３００を、コンピューティング・システム３００のサブシステム３０２に対応する複数のコンポーネントを有する単一のコンピューティング・デバイスにすることができることを示すために提示されるものである。
【００５３】
さらに、図７に、本発明の実施形態に従ってマネージャ・コンポーネント３０４をどのように実施できるのかを指定するために、代表的な基本的なコンピューティング・デバイス７００を示す。コンピューティング・デバイス７００は、記録可能データ記憶媒体などの有形のコンピュータ可読媒体７０４などのハードウェア７０２を含む。記録可能データ記憶媒体の例は、たとえば、ハード・ディスク・ドライブおよび半導体メモリを含む。したがって、マネージャ・コンポーネント３０４は、コンピュータ可読媒体７０４に格納された１つまたは複数のコンピュータ・プログラム７０６として実施される。ハードウェア７０２のコンピュータ可読媒体７０４に格納されたコンピュータ・プログラム７０６を、マネージャ・コンポーネント３０４に帰する機能性を実施する手段と考えることができる。
【００５４】
最後に、特定の実施形態を図示し、本明細書で説明したが、当業者が、同一の目的を達成するように計画されたすべての配置を、示された特定の実施形態と置換できることを了解するであろうことに留意されたい。本願は、本発明の実施形態のすべての適応または変形を包含することが意図されている。したがって、本発明が特許請求の範囲およびその同等物のみによって限定されることが、明らかに意図されている。
【図１】
0005443483.tif 000002
【図２】
0005443483.tif 000003
【図３】
0005443483.tif 000004
【図４】
0005443483.tif 000005
【図５】
0005443483.tif 000006
【図６】
0005443483.tif 000007
【図７】
0005443483.tif 000008