(57)【要約】  【課題】あるアプリケーションが資源を手放す前に、動的資源割り当てプログラムが別のアプリケーションに資源を割り当てる場合に、問題が発生する場合がある。  【解決手段】本発明はソフトウェアによって使用される資源を動的に割り当てる方法であって、システム（２００）に関連付けられた第１のソフトウェア（２６０）の第１のスクリプトを受け取ることであって、第１のスクリプトは、第１のソフトウェアが資源の動的な割り当てに対応することを可能にすることと、システムに関連付けられる第２のソフトウェア（２３０）の第２のスクリプトを受け取ることであって、第２のスクリプトは、前記第２のソフトウェアが資源の動的な割り当てに対応することを可能にし、システムは、資源の動的な割り当てを提供するように拡張することができることとを含む。  【選択図】図２
2007115246.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアによって使用される資源を動的に割り当てる方法であって、
システム（２００）に関連付けられた第１のソフトウェア（２６０）の第１のスクリプトを受け取ること（４０２）であって、前記第１のスクリプトは、前記第１のソフトウェアが前記資源の動的な割り当てに対応することを可能にすること（４０２）と、
前記システムに関連付けられる第２のソフトウェア（２３０）の第２のスクリプトを受け取ること（４０４）であって、前記第２のスクリプトは、前記第２のソフトウェアが前記資源の動的な割り当てに対応することを可能にし、前記システムは、前記資源の動的な割り当てを提供するように拡張することができること（４０４）と
を含む方法。
【請求項２】
前記第１のソフトウェアの前記第１のスクリプトを前記受け取ることは、前記第１のソフトウェアの前記第１のスクリプトを受け取ることをさらに含み、前記第１のスクリプトは、メッセージ、プレビュー、及び準備から成る群から選択される動作を用いて実行することができ、
前記第２のソフトウェアの前記第２のスクリプトを前記受け取ることは、前記第２のソフトウェアの前記第２のスクリプトを受け取ることをさらに含み、前記第２のスクリプトは、メッセージ、プレビュー、及び準備から成る群から選択される動作を用いて実行することができる
請求項１に記載の方法。
【請求項３】
前記第１のスクリプト及び前記第２のスクリプトを使用することであって、それによって、前記第１のソフトウェア又は前記第２のソフトウェアに関する資源の割り当てが、前記第１のソフトウェア又は前記第２のソフトウェアにどのような影響を与えるかを判断すること
をさらに含む請求項１に記載の方法。
【請求項４】
前記スクリプトによって決定された情報を使用することであって、それによって、割り当てられる資源の量を調整すること
をさらに含む請求項３に記載の方法。
【請求項５】
ソフトウェアによって使用される資源を動的に割り当てる装置であって、
システム（２００）に関連付けられた第１のソフトウェア（２６０）の第１のスクリプトを受け取るためのスクリプトインターフェース（１１０）であって、アプリケーションハンドシェークコントローラ（１２０）が、前記第１のスクリプトを使用することにより、前記第１のソフトウェアが前記資源の動的な割り当てに対応することを可能にする、スクリプトインターフェース（１１０）と、
前記システムに関連付けられる第２のソフトウェア（２３０）の第２のスクリプトを受け取るための前記スクリプトインターフェース（１１０）であって、前記アプリケーションハンドシェークコントローラ（１２０）は、前記第２のスクリプトを使用することにより、前記第２のソフトウェアが前記資源の動的な割り当てに対応することを可能にし、前記システムは、前記資源の動的な割り当てを提供するように拡張することができる、前記スクリプトインターフェース（１１０）と
を備えるソフトウェアによって使用される資源を動的に割り当てる装置。
【請求項６】
前記第１のソフトウェア及び前記第２のソフトウェアは、オペレーティングシステム及びアプリケーションから成る群から選択される
請求項５に記載の装置。
【請求項７】
前記第１のスクリプト及び前記第２のスクリプトは、メッセージ、プレビュー、及び準備（prepare）から成る群から選択される動作を用いて実行することができる
請求項５に記載の装置。
【請求項８】
前記資源は、中央処理装置（ＣＰＵ）、メモリ、及び入出力（ＩＯ）デバイスから成る群から選択される
請求項５に記載の装置。
【請求項９】
前記第１のスクリプト及び前記第２のスクリプトは、スクリプトディレクトリに記憶される
請求項５に記載の装置。
【請求項１０】
前記スクリプトディレクトリは、「ｒｃ」ディレクトリと類似の構造を有する
請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、資源の割り当てに関する。より詳細には、本発明の実施の形態は、ソフトウェアによって使用される資源を動的に割り当てるためのシステムの拡張又は縮小（contract）に関する。
【背景技術】
【０００２】
今日のコンピューティングワールドでは、コンピューティングシステムのワークロードが時間と共に変化する場合がある。たとえば、１つのコンピュータは、中央処理装置（ＣＰＵ）、メモリ、及び／又は入出力（Ｉ／Ｏ）デバイス等の資源について時間と共に異なる量を必要とするいくつかのアプリケーションを実行する場合がある。その結果、アプリケーションがいくつの資源を必要とするかに応じて異なる量の資源をアプリケーションに提供するために、動的資源割り当てが使用されてきた。たとえば、コンピュータシステムは、当該コンピュータシステムで実行される２つのアプリケーション（たとえば、アプリケーションＡ及びアプリケーションＢ）間で共有される３つのＣＰＵ及び３つのメモリデバイスを有する場合がある。午前中、アプリケーションＡは多くの資源を必要とする場合がある一方、アプリケーションＢは少ない資源しか必要としない。そこで、コンピュータシステムの動的資源割り当てプログラムは、午前中、ＣＰＵの２つ及びメモリデバイスの２つをアプリケーションＡに割り当てる一方、１つのＣＰＵ及びメモリデバイスの１つをアプリケーションＢに割り当てることができる。当日遅くなって、アプリケーションＢが多くの資源を必要とする場合がある一方、アプリケーションＡは少ない資源しか必要としない。この場合、動的資源割り当てプログラムは、ＣＰＵの２つ及びメモリデバイスの２つをアプリケーションＢに割り当てることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、アプリケーションＡが資源を手放す準備ができる前に、動的資源割り当てプログラムがアプリケーションＢに資源を割り当てる場合に、問題が発生する場合がある。
【課題を解決するための手段】
【０００４】
本発明の実施の形態は、ソフトウェアによって使用される資源を動的に割り当てるための方法及び装置に関する。一実施の形態では、第１のソフトウェアのスクリプトが受け取られる。このスクリプトは、システムに関連付けられている。このスクリプトによって、このソフトウェアは、資源の動的な割り当てに対応することが可能になる。さらに、別のソフトウェアの別のスクリプトが受け取られる。このスクリプトも、システムに関連付けられており、このスクリプトによっても、第２のソフトウェアは、資源の動的な割り当てに対応することが可能になる。スクリプトを受け取ることによって、特に、資源の動的な割り当てを提供するようにシステムを拡張することができる。
【０００５】
添付図面は、本明細書に援用されて、本明細書の一部を成す。これらの添付図面は、本発明の実施の形態を示し、明細書本文と共に、本発明の原理を説明する役割を果たす。
【０００６】
本明細書本文で参照される図面は、特に注釈がある場合を除き、一律の縮尺で描かれていると理解されるべきではない。
【発明を実施するための最良の形態】
【０００７】
次に、本発明のさまざまな実施の形態を詳細に参照する。さまざまな実施の形態の例は添付図面に示されている。本発明は、これらの実施の形態と共に説明されるが、これらの実施の形態は、それら実施の形態に本発明を限定することを目的としているものではないことが理解されよう。逆に、本発明は、代替形態、変更形態、及び均等物を包含することを目的としている。これら代替形態、変更形態、及び均等物は、添付の特許請求の範囲によって規定された本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が述べられる。それ以外の場合には、本発明の態様を不必要に分かりにくくしないように、既知の方法、手順、コンポーネント、及び回路は詳細に説明されていない。
【０００８】
［ソフトウェアシステム及び機能的概要］
図１は、本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための装置を示している。図１のブロックは、図示したものとは異なって配置することもでき、追加の機能又は本明細書で説明するものよりも少ない機能を実施することもできる。さらに、図１のブロックによって表される機能は、さまざまな方法で結合することができる。装置１００は、ハードウェア、ソフトウェア、ファームウェア、又はそれらを組み合わせたものとすることができる。装置１００は、コンピュータシステムに関連付けることができる。装置１００は、スクリプトインターフェース１１０及びアプリケーションハンドシェークコントローラ１２０を含む。スクリプトインターフェース１１０は、装置１００が関連付けられたコンピュータシステムへのスクリプトの追加又は当該コンピュータシステムからのスクリプトの除去に使用することができる。アプリケーションハンドシェークコントローラ１２０は、コンピュータシステムに関連付けられたソフトウェアに資源を動的に割り当てることの一部としてスクリプトを使用することができる。さらに、アプリケーションハンドシェークコントローラ１２０は、スクリプトを使用して、ソフトウェアアプリケーションハンドシェークコントローラへの資源割り当て又はソフトウェアアプリケーションハンドシェークコントローラからの資源割り当て解除に対応することができる。より明らかになるように(As will become more evident)、アプリケーションハンドシェークコントローラ１２０は、特に、プラットフォームマネージャ又はオペレーティングシステムに関連付けることができる。
【０００９】
すでに述べたように、アプリケーションＡが資源を手放す準備ができる前に、動的資源割り当てプログラムがアプリケーションＢへ資源を割り当てる場合に、問題が発生する場合がある。したがって、アプリケーションの混乱をできるだけ少なくし、且つ、システム資源を調整中であることをアプリケーションに通知するように資源を割り当てるための方法及び装置１００が必要とされている。この通知によって、アプリケーションは、必要なステップを取って、変化に適切に対応することが可能になる。
【００１０】
さらに、従来の動的資源割り当てプログラムは、アプリケーションを装置１００及びアプリケーションハンドシェークコントローラ１２０と統合する簡単な方法を提供していない。したがって、特に、アプリケーションがシステムに追加された時又はシステムから削除された時に、資源を動的に割り当てるシステムの能力を変更（たとえば、拡張又は縮小）するための方法及び装置１００が必要とされている。
【００１１】
別の例では、従来の動的資源割り当てプログラムは、システムアドミニストレータが、動的に資源を割り当てることに関して動的資源割り当てプログラムに命令する手動コマンドを入力することを必要とする。したがって、手動コマンドを必要とすることなく、資源を割り当てる方法及び装置１００が必要とされている。
【００１２】
本発明の実施の形態によれば、アプリケーションハンドシェークコントローラ１２０は、ソフトウェアに関して資源をどのように割り当てるかを決定することの一部として、ソフトウェアに関連付けられたスクリプトを使用する。ソフトウェアは、特に、アプリケーション又はオペレーティングシステムとすることができる。ソフトウェアが（たとえば、ソフトウェアをインストールすることによって）コンピュータシステムに追加される場合、１つ又は２つ以上の追加スクリプトをコンピュータシステムに容易に関連付けることができる。アプリケーションハンドシェークコントローラ１２０は、資源の変更が行われていることをアプリケーションに通知することの一部として、追加されたスクリプトを使用することができる。同様に、ソフトウェアが（たとえば、ソフトウェアをインストール解除すること（de-installing）によって）コンピュータシステムから除去される場合、そのソフトウェアに関連付けられた１つ又は２つ以上のスクリプトをコンピュータシステムから容易に除去することができる。
【００１３】
したがって、より明らかになるように、特に、システムへのスクリプトの追加及び／又はシステムからのスクリプトの除去を行うことによって、資源を動的に割り当てるコンピュータシステムの能力を変更する容易な方法が提供される。さらに、より明らかになるように、特に、スクリプトを使用することによって、資源のソフトウェアへの割り当て又は資源のソフトウェアから割り当て解除を行うかどうかの判断にソフトウェアを関与させることが可能になる。このように、ソフトウェアの性能に対する混乱が最小にされ、場合によっては取り除かれることさえある。資源の割り当て及び／又は割り当て解除が或るソフトウェアを混乱させるかどうかの判断は、一般に、「クリティカル資源解析（critical resource analysis）」と呼ばれる。さらに、明らかになるように、資源の割り当て又は割り当て解除にソフトウエアを関与させることによって、性能を増大させることができ、顧客の経験をより良くする結果となりうる。
【００１４】
図２は、本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための一例示のシステムのブロック図である。図２のブロックは、図示したものとは異なって配置することもでき、追加の機能又は本明細書で説明するものよりも少ない機能を実施することもできる。さらに、図２のブロックによって表される機能は、さまざまな方法で結合することができる。図２に示すように、このシステムは、２つのコンピュータ２１０、２４０を含む。アプリケーション２３０、２６０の形のソフトウェアは、コンピュータ２１０、２４０及びセル２２０、２５０の双方に関連付けられる。セル２２０、２５０は、ＣＰＵ２２２、２２４、２５２、２５４、メモリ２２６、２５６、及びＩ／Ｏデバイス２２８、２５８を含む。セル２２０、２５０は、さまざまなコンポーネントをコンピュータに関連付けるのに使用することができる。たとえば、セル２２０、２５０は、コンピュータ２１０、２４０にホットプラグすることができ、したがって、ＣＰＵ２２２、２２４、２５２、２５４、メモリ２２６、２５６、及び／又はＩ／Ｏデバイス２２８、２５８等のセル２２０、２５０のさまざまなコンポーネントをコンピュータ２１０、２４０に関連付けることができる。また、コンピュータ２４０は、スクリプトインターフェース１１０及びアプリケーションハンドシェークコントローラ１２０を有する装置１００も含む。
【００１５】
一例では、図２に示すような装置１００は、メモリの使用を再構成する機会をアプリケーションに与えるのに使用することができる。たとえば、Ｏｒａｃｌｅ（登録商標）等のアプリケーションに、そのプロセスの一部として、メモリ、ＣＰＵ、及び／又はＩ／Ｏデバイスの使用を再構成する機会が与えられた場合、アプリケーションは、除去されることになるセルに存在するメモリ、ＣＰＵ、及び／又はＩ／Ｏデバイスの使用を停止することができる。より具体的には、アプリケーションは、そのアプリケーションに割り当てられているＣＰＵの個数又は割り当て解除されているＣＰＵの個数に基づいて、使用中のスレッドの個数を調整することもできる。これは、本発明の実施の形態をどのように使用できるかの一例にすぎない。
【００１６】
別の例では、コンピュータ２１０を使わなくなること（decommissing）の一部として、図２に示すような装置１００を使用することができる。この使わなくなることは、アプリケーション２３０をコンピュータ２１０からコンピュータ２４０へ移動させることを含むことができる。たとえば、アプリケーション２３０をコンピュータ２１０から除去してコンピュータ２４０にインストールすることができる。スクリプトインターフェース１１０は、１つ又は２つ以上のスクリプトを、たとえばデバイス２８０に記憶されたスクリプト２７０に追加するのに使用することができる。アプリケーションハンドシェークコントローラ１２０は、資源２５２、２５４、２５６等をアプリケーション２３０若しくは２６０に動的に割り当てること、及び／又は、資源２５２、２５４、２５６等をアプリケーション２３０若しくは２６０から動的に割り当て解除することの一部として、追加されたスクリプトを使用することができる。その際に、資源の動的割り当てを提供するコンピュータ２４０の能力を容易に拡張することができる。
【００１７】
図３は、本発明の別の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための一例示の区画されたコンピュータシステムのブロック図である。図３のブロックは、図示したものとは異なって配置することもでき、追加の機能又は本明細書で説明するものよりも少ない機能を実施することもできる。さらに、図３のブロックによって表される機能は、さまざまな方法で結合することができる。図３に示すように、コンピュータ３００は、２つのパーティション３１０、３７０に区画されている。パーティション３１０、３７０のそれぞれには、異なるオペレーティングシステムが存在することがある。パーティション３１０は、２つのセル３２０、３３０、プラットフォームマネージャ３４０、装置１００、２つのアプリケーション３５０、３６０、及びデバイス２８０に存在するスクリプト２７０を含む。セル３２０、３３０、３８０、３９０は、各ＣＰＵ３２２、３２４、３３２、３３４、３８２、３８４、３９２、３９４、メモリ３２６、３３６、３８６、３９６、Ｉ／Ｏデバイス３２８、３３８、３８８、３９８等の資源を含む。装置１００は、アプリケーションハンドシェークコントローラ１２０及びスクリプトインターフェース１１０を含む。装置１００のアプリケーションハンドシェークコントローラ１２０は、プラットフォームマネージャ３４０の一部とすることもできる。スクリプト２７０は、ストレージデバイス２８０に記憶することができる。本明細書で解説するように、アプリケーションハンドシェークコントローラ１２０は、スクリプト２７０及びプラットフォームマネージャ３４０と相互作用して、パーティション３１０、３７０間での資源の移動を助けることができる。
【００１８】
［資源の割り当て］
本明細書ですでに述べたように、資源の例は、特に、ＣＰＵ、メモリ、及びＩ／Ｏデバイスである。これらの資源は、システムに関連付けることができる。システムの例には、図２に示すシステム２００、又は、図２若しくは図３のいずれかに示すいずれかのコンピュータ２１０、２４０、３００が含まれる。これらの資源は、たとえば、システムがブートされる時に存在することによってシステムに関連付けることもできるし、セルをシステムにホットプラグすることによってシステムに関連付けることもできる。本発明の実施の形態によれば、ソフトウェアは、システムに関連付けられたソフトウェアに関する資源の割り当て若しくは割り当て解除を行うかどうかの判断、及び／又は、システムに関連付けられたソフトウェアに関する資源の割り当て若しくは割り当て解除をどのように行うのかの判断に関与する。用語「割り当てる」は、割り当てること又は割り当て解除することを指すことができる。これは、当該技術分野では、「ソフトウェアが自身をサイズに従って分類することを可能にする（allowing software to size itself）」と呼ばれることが多い。
【００１９】
たとえば、資源がソフトウェアに関して割り当てられること、及び／又は割り当て解除されることに起因して、システムに関する資源が変更される前、及び／又は、変更された後に、ソフトウェアは、自身を「サイズに従って分類する」ことができるようにされる。より具体的には、特に、たとえば、セルをコンピュータにホットプラグした結果として、資源を或るパーティションから別のパーティションへ移動させた結果として、アプリケーション等の或るソフトウェアが資源をもはや必要とせず、別のアプリケーション等の別のソフトウェアがその資源を使用できると判断した結果として、資源を割り当て及び／又は割り当て解除することができる。割り当て又は割り当て解除に関与することができるオペレーションのタイプの例には、特に、セルＯＬ＊（Cell OL*）オペレーション（ＯＬはオンラインの略語である）、インスタントキャパシティ（Instant Capacity）、ＣＰＵ資源の仮想パーティション移動、仮想マシンリサイズオペレーション、ワークロード管理（ＷＬＭ）資源パーティションリサイズオペレーションが含まれる。
【００２０】
セルＯＬ＊オペレーションの例は、セルオンライン削除及びセルオンライン追加である。インスタントキャパシティプログラムでは、サーバは、配備された時にＣＰＵの十分な搭載を受けることができるが、顧客は、通常の前払い金又は「前金」を除いて、使用するつもりであるＣＰＵの代金しか支払っていない。顧客は、変更を必要とする時に、インスタントキャパシティを使用して、単純なＵＮＩＸ（登録商標）の（ｒ）コマンドを用いて、必要とされるＣＰＵを直ちにアクティブにすることができる。さらに、或るＣＰＵの故障が検出された時は、ＣＰＵを自動的にアクティブにすることもできる。
【００２１】
Ｏｒａｃｌｅ（登録商標）等のアプリケーションに、そのプロセスの一部として、メモリ、ＣＰＵ、及び／又はＩ／Ｏデバイスの使用を再構成する機会が与えられた場合、アプリケーションは、除去されることになるセルに存在するメモリ、ＣＰＵ、及び／又はＩ／Ｏデバイスの使用を停止することができる。より具体的には、アプリケーションは、そのアプリケーションに割り当てられているＣＰＵの個数又は割り当て解除されているＣＰＵの個数に基づいて、使用中のスレッドの個数を調整することもできる。これは、本発明の実施の形態をどのように使用できるかの一例にすぎない。
【００２２】
［ソフトウェア］
本発明の実施の形態によれば、ソフトウェアは、特に、アプリケーション２３０、２６０、３５０、３６０（図２及び図３）又はオペレーティングシステム（図２に示すコンピュータ２１０、２４０に関連付けられたオペレーティングシステム、又は図３に示すパーティション３１０、３７０に関連付けられたオペレーティングシステム等）とすることができる。これらのアプリケーションは、Ｏｒａｃｌｅ（登録商標）又はＢＥＡ（登録商標）等、通常は資源割り当て問題に関与するアプリケーションとすることができる。さらに、ソフトウェアは、ＨＰ（登録商標）のＷＯＲＫＬＯＡＤ  ＭＡＮＡＧＥＲ（ＷＬＭ）等のワークロードアプリケーション又はウェブサーバとすることもできる。
【００２３】
ソフトウェアは、ハードウェアトポロジーを認識することができ、ハードウェアトポロジーの性能又は正確さのための最適化を行うことができる。Ｏｒａｃｌｅ（登録商標）データベースは、ハードウェアトポロジーを認識しているソフトウェアの一例である。
【００２４】
［アプリケーションハンドシェークコントローラ］
アプリケーションハンドシェークコントローラ１２０は、資源をどのように割り当てるかの決定にソフトウェアを関与させることができる。たとえば、資源がソフトウェアに割り当てられる前、又は、資源がソフトウェアから割り当て解除される前に、アプリケーションハンドシェークコントローラ１２０は、そのソフトウェアに関連付けられた１つ又は２つ以上のスクリプト２７０を実行して、割り当て及び／又は割り当て解除がそのソフトウェアにどのような影響を与え得るかを判断することができる。アプリケーションハンドシェークコントローラ１２０は、割り当て及び／又は割り当て解除を進めるかどうかを決定する際に、スクリプトによって提供された情報を使用することができる。割り当てが起きる原因は、本明細書で説明したように、特に、たとえば、セルをシステムにプラグ接続したために、又は、或るソフトウェアから別のソフトウェアへ資源を再割り当てしたために、たとえば、資源がシステムに追加されたことによるものとすることができる。割り当て解除が起きる原因は、特に、たとえば、セルがシステムから除去されたために、又は、資源が或るソフトウェアから別のソフトウェアへ再割り当てされたために、たとえば、資源がシステムから除去されたことによるものとすることができる。
【００２５】
アプリケーションハンドシェークコントローラ１２０は、オペレーティングシステム又はプラットフォームマネージャ３４０に関連付けることができる。図２に示すアプリケーションハンドシェークコントローラ１２０の場合、アプリケーションハンドシェークコントローラ１２０は、一実施の形態によれば、装置１００によって実行されるクリティカル資源解析（ＣＲＡ）に関与して、アプリケーションが、やがて行われる資源変更の準備を行うことを可能にすることができる。図３に示すアプリケーションハンドシェークコントローラ１２０の場合、プラットフォームマネージャ３４０は、特に、或るパーティション３１０、３７０から別のパーティション３１０、３７０へ資源をどのように移動させるか、及び／又は、移動させることをいつ容認できるかを決定する際に、アプリケーションハンドシェークコントローラ１２０と通信することができる。さらに、アプリケーションハンドシェークコントローラ１２０（図３）は、クリティカル資源解析（ＣＲＡ）に関与することもできる。
【００２６】
スクリプト２７０及び／又はアプリケーションハンドシェークコントローラ１２０を使用することによって、システムアドミニストレータが手動コマンドを入力する必要なしに、資源割り当てを自動的に行うことができる。たとえば、システムがますます動的になるにつれて、資源は、その日の或る部分の間、或るパーティションに移動され、その日の別の部分の間、別のパーティションへ移動される場合がある。本発明の実施の形態によれば、これを、手動コマンドを使用することなく自動的に行うことができる。加えて、一実施の形態によれば、資源の変化が起こる前に、アプリケーションはそれら変化の通知を受けることができるので、オペレーションは、より高い信頼性のあるものとすることができる。
【００２７】
［スクリプト］
スクリプト２７０は、資源を動的に割り当てるコンピュータシステムの能力を変更する簡単な方法を提供することができる。さらに、スクリプトによって、ソフトウェアが、そのソフトウェアにより使用される資源の割り当てを行うか又は割り当て解除を行うかどうかの決定に関与することを可能にすることができる。このように、ソフトウェアの性能に対する混乱は、除去されるとまではいかないが、最小にされる。
【００２８】
資源のソフトウェアへの割り当て又は資源のソフトウェアからの割り当て解除は、ソフトウェアの性能に影響を与える可能性がある。同様に、特に、図２に示すシステム２００若しくは図２又は図３に示すコンピュータ２１０、２４０、３００等のシステムへのソフトウェアの追加、システムからのソフトウェアの除去、及び／又はシステム間でのソフトウェアの移動は、システムに関連付けられたさまざまなソフトウェアに資源をどのように割り当てるかに影響を与える可能性がある。
【００２９】
別の実施の形態によれば、ソフトウェアは、どのように資源を動的に割り当てるかを決定することに関与することができる。たとえば、本明細書で解説したように、ソフトウェアが、どのように資源を動的に割り当てるかに関与することを可能にするのに、スクリプトを使用することができる。より具体的には、本明細書で解説したように、資源が或るアプリケーション用の使用から除去されようとしている時、そのアプリケーションに関連付けられたスクリプトを実行して、その資源の除去がそのアプリケーションに対して有する影響を判断することができる。スクリプトは、特に、たとえば、資源の除去が、アプリケーションの性能に大幅に影響を与えることを示すこともできるし、場合により、アプリケーションの実行を不可能にすることさえあることを示すこともできる。
【００３０】
さらに、スクリプトは、資源の割り当て又は割り当て解除が、たとえば、アプリケーション等のソフトウェアを所有する或る企業と、そのソフトウェアが存在するシステムを実行する別の企業との間のサービス契約の違反となるかどうかを判断するのに使用することもできる。たとえば、２つの企業は、或る速度の範囲内で実行するのに十分な資源がアプリケーションに提供されるというサービス契約を結んでいる場合がある。資源の割り当て解除によって、アプリケーションが実行できる速度が遅くなる可能性があり、その結果、サービス契約の違反が生じる。同様に、資源の割り当てによって、速度が増加する可能性があるが、その結果、アプリケーションは、サービス契約に基づいて提供を受ける資格を有する資源よりも多くの資源の提供を受けることになる。アプリケーションに関連付けられたスクリプトは、資源の実際の割り当て又は割り当て解除に先立って、サービス契約を違反することになるかどうかを判断するのに使用することができる。
【００３１】
スクリプトは、ファイルシステム又はディレクトリ等のスクリプト構造に記憶することができる。このスクリプト構造は、一実施の形態によれば、システムへのスクリプトの追加／システムからのスクリプトの除去を行う方法を提供する。たとえば、スクリプトは、ストレージデバイスのディレクトリに記憶することができる。このディレクトリは、「／ｕｓｒ／ｓｂｉｎ／ａｈ．ｄ／」等の「ｒｃ」ディレクトリと類似の構造を有する。システムのアドミニストレータは、「ｒｃスクリプト」をよく知っているので、これによって、システムのアドミニストレータ及びアプリケーション開発者が採用することが容易になる。一実施の形態によれば、１つ又は２つ以上のスクリプトを各アプリケーションに関連付けることができる。以下の表１は、本発明の実施の形態による、システムに関連付けられた各アプリケーションを有する１つ又は２つ以上のスクリプトを記憶するための３つの代替的なスクリプト構造（structures）（たとえば、ディレクトリ１、２、３）を示している。
【００３２】
【表１】
2007115246.tif 000003
【００３３】
説明を簡単にするために、２つのアプリケーションがシステムに関連付けられているものと仮定する。一実施の形態によれば、各ソフトウェアには１つのスクリプトが関連付けられる。たとえば、スクリプトＡ（ライン２）をアプリケーションＡに関連付けることができ、スクリプトＢ（ライン３）をアプリケーションＢに関連付けることができる。別の実施の形態によれば、各ソフトウェアに２つ以上のスクリプトを関連付けることができる。たとえば、スクリプトＡ１、Ａ２（ライン５、６）をアプリケーションＡに関連付けることができ、スクリプトＢ１、Ｂ２（ライン７、８）をアプリケーションＢに関連付けることができる。
【００３４】
さらに別の実施の形態では、サブディレクトリＡ（ライン１０）及びサブディレクトリＢ（ライン１３）等のサブディレクトリを使用してスクリプトを編成することができる。たとえば、アプリケーションＡに関連付けられたスクリプトＡ１、Ａ２（ライン１１、１２）を或るサブディレクトリＡ（ライン１０）の下に編成することができ、アプリケーションＢに関連付けられたスクリプトＢ１、Ｂ２（ライン１４、１５）を別のサブディレクトリＢ（ライン１３）の下に編成することができる。たとえば、複雑なアプリケーションには、ディレクトリ２及びディレクトリ３等のより複雑なスクリプト構造を使用することができる。たとえば、アプリケーションに関連付けられた１つのスクリプトは、資源の割り当て及び／又は割り当て解除を取り扱うために実行することができる。アプリケーションに関連付けられた第２のスクリプトは、たとえば、アプリケーションが使用するスレッドの個数を調整するために実行することができる。
【００３５】
本発明の実施の形態によれば、各スクリプトは、どのような引数がそれらスクリプトに渡されたかに応じて、さまざまな動作を実行する。以下は、本発明の実施の形態による、スクリプト及びスクリプトが実行できる動作の概要を示す表２を示している。その後には、表２の説明が続いている。
【００３６】
【表２】
2007115246.tif 000004
【００３７】
スクリプトは、ファイルシステム又はディレクトリ等のスクリプト構造（表１を参照）に記憶される。たとえば、ライン１は、スクリプトが、「／ｕｓｒ／ｓｂｉｎ／ａｈ．ｄ／」等の「ｒｃ」ディレクトリと類似の構造を有するディレクトリに記憶されることを示す。
【００３８】
一実施の形態によれば、或る１つの資源が或る１つのソフトウェアに関して動的に割り当てられる候補又は割り当て解除される候補になった時に、ソフトウェアのすべてに関連付けられたすべてのスクリプトを実行することができる。さらに、スクリプトは、ライン１のＮＮＮによって示されるような辞書式順序で実行することができる。たとえば、アプリケーションＡ、Ｂ、Ｃにそれぞれ関連付けられたスクリプト１、２、３が存在する場合、それらのスクリプトは、１、２、３の順序で実行することができる。たとえば、スクリプトＡがスクリプトＢよりも小さなＮＮＮを指定している場合、スクリプトＡは、スクリプトＢの前に実行することができる。一実施の形態によれば、ＮＮＮは、スクリプトが実行される順序を強く要求するものではなく依頼するためのプリフィックスである。たとえば、依頼された順序付けを保証しない理論的根拠は、番号００１が、実行される最初のスクリプトであると予想して、アプリケーションＡが所定の場所にスクリプトを配置できるということである。しかしながら、異なるアプリケーションＢが番号０００でインストールされうる。その結果、アプリケーションＢのスクリプトが最初に実行される。それらの数字の目的は、アプリケーションが、１つは００１の番号が付けられ２つ目は００２の番号が付けられた２つのスクリプトを送る（deliver）ことを可能にすることである。この番号付けの結果、スクリプト番号００１は、００２の前に実行されることが保証される。スクリプトは、ライン２〜４に示すように、セル、ＣＰＵ、メモリ等の資源の削除及び／又は除去の一部として使用することができる。
【００３９】
スクリプトは、一実施の形態によれば、複数のフェーズで実行することができる。たとえば、或るフェーズは、たとえば「＿ｍｓｇ」動作を使用してメッセージを生成するのに使用することができる。次のフェーズは、たとえば「＿ｐｒｅｖｉｅｗ」動作を使用して、資源の割り当て又は割り当て解除がソフトウェアに影響を与えるかどうかを判断することにスクリプトを関与させるのに使用することができる。別のフェーズは、たとえば「ｐｒｅｐ＿」動作を使用して、資源の割り当て又は割り当て解除の準備を行うのに使用することができる。そして、さらに別のフェーズは、たとえば「ｐｏｓｔ＿」動作を使用して、割り当て又は割り当て解除が実行されたことを示すのに使用することができる。最後に、より明らかになるように、割り当て又は割り当て解除が実際に実行される前に、実行された処理を「ｕｎｄｏ＿」動作を使用して破棄するために、取り消し動作が提供される。
【００４０】
動作は、フェーズが何であるかを指定するのに使用することができる。動作を示す引数をスクリプトに渡すことができる。表１の概要は、ｐｒｅｖｉｅｗ＿ａｄｄ＿ｍｓｇ（ライン１２）、ｐｒｅｖｉｅｗ＿ａｄｄ（ライン１７）、ｐｒｅｐ＿ａｄｄ＿ｍｓｇ（ライン３２）、ｐｒｅｐ＿ａｄｄ（ライン３６）、ｕｎｄｏ＿ｐｒｅｐ＿ａｄｄ＿ｍｓｇ（ライン３９）、ｕｎｄｏ＿ｐｒｅｐ＿ａｄｄ（ライン４４）、ｐｏｓｔ＿ａｄｄ＿ｍｓｇ（ライン４９）、ｐｏｓｔ＿ａｄｄ（ライン５３）、ｐｒｅｖｉｅｗ＿ｄｅｌｅｔｅ＿ｍｓｇ（ライン５６）、ｐｒｅｖｉｅｗ＿ｄｅｌｅｔｅ（ライン６１）、ｐｒｅｐ＿ｄｅｌｅｔｅ＿ｍｓｇ（ライン７６）、ｐｒｅｐ＿ｄｅｌｅｔｅ（ライン８１）、ｕｎｄｏ＿ｐｒｅｐ＿ｄｅｌｅｔｅ＿ｍｓｇ（ライン８４）、ｕｎｄｏ＿ｐｒｅｐ＿ｄｅｌｅｔｅ（ライン８９）、ｐｏｓｔ＿ｄｅｌｅｔｅ＿ｍｓｇ（ライン９５）、ｐｏｓｔ＿ｄｅｌｅｔｅ（ライン１００）等のスクリプトによって実行することができるいくつかの動作を示している。
【００４１】
これらの動作を使用して達成できるいくつかの異なるタイプの目的がある。たとえば、資源を追加することに使用できる動作もあれば（ライン１２〜５５）、資源を削除するのに使用できる動作もある（ライン５６〜１００）。別の例では、いくつかの動作は、資源を動的に割り当てるためのステータスに関する情報をシステムアドミニストレータに提供するのに使用することができる。たとえば、「＿ｍｓｇ」で終わるｐｒｅｖｉｅｗ＿ａｄｄ＿ｍｓｇ、ｐｒｅｐ＿ａｄｄ＿ｍｓｇ、ｕｎｄｏ＿ｐｒｅｐ＿ａｄｄ＿ｍｓｇ、ｐｏｓｔ＿ａｄｄ＿ｍｓｇ等のメッセージ動作は、システムアドミニストレータに情報を提供するのに使用することができる。より具体的には、システムが、アプリケーションＡによって使用されるＣＰＵ等の資源を割り当てる準備をしている場合、１つ又は２つ以上のスクリプトを、ｐｒｅｐ＿ａｄｄ＿ｍｓｇを用いて実行することができる。このｐｒｅｐ＿ａｄｄ＿ｍｓｇは、たとえば、メッセージ（複数可）のログ記録を引き起こし、たとえば、システムがアプリケーションＡにＣＰＵを追加する準備をしていることを言明する。問題がある場合には、このメッセージは、システムアドミニストレータが、オペレーションのどのフェーズの期間中に問題が発生したかを判断することを助けることができる。メッセージは、システムに関して何が起こっているのかの統合した見方をシステムアドミニストレータに提供するのに使用することができる。
【００４２】
別の例では、本明細書ですでに説明したように、ソフトウェアは、そのソフトウェアに関する資源の割り当てを行うか又は割り当て解除を行うかどうかの決定に関与する。一実施の形態によれば、動作名に「ｐｒｅｖｉｅｗ＿」を含むｐｒｅｖｉｅｗ＿ａｄｄ、ｐｒｅｖｉｅｗ＿ｄｅｌｅｔｅ等のプレビュー動作は、資源の割り当てを行うことができるのか又は割り当て解除を行うことができるのかの決定にソフトウェアが関与することを可能にするのに使用することができる。たとえば、図３を参照して、ＣＰＵ３２２がパーティション３１０から割り当て解除されて、パーティション３７０に割り当てられることになっているものと仮定する。また、スクリプト２７０は、アプリケーション３５０に関連付けられたスクリプト１及びアプリケーション３６０に関連付けられたスクリプト２を含むものと仮定する。スクリプト１、２は、ＣＰＵ３７０の除去がアプリケーション３５０及び３６０に与える影響を判断する「ｐｒｅｖｉｅｗ＿ｄｅｌｅｔｅ」動作を用いて実行することができる。
【００４３】
さらに別の例では、割り当て又は割り当て解除が実行されるよりも前に、資源の割り当て又は割り当て解除の準備をする機会をソフトウェアに与えるための動作を使用することができる。その結果、実際の割り当て又は割り当て解除は、ソフトウェアが割り当て又は割り当て解除の準備をしていなかった場合よりも素早く実行される。さらに別の例では、割り当て又は割り当て解除がすでに実行されたことをソフトウェアに通知するための動作を使用することができる。
【００４４】
一実施の形態では、資源の割り当て又は割り当て解除の処理は、その割り当て又は割り当て解除が実際に実行されるよりも前に取り消すことができる。たとえば、／ｔｍｐディレクトリが除去されることになるものと仮定する。ｐｒｅｐ＿フェーズにおいて、／ｔｍｐディレクトリを、たとえば／ｐｒｅｐ／ｔｍｐディレクトリ等の別のディレクトリへ移動させることができる。／ｔｍｐディレクトリを除去すべきでないとの判断がなされた場合、「ｕｎｄｏ＿」動作を実行して、／ｐｒｅｐ／ｔｍｐディレクトリを／ｔｍｐディレクトリに移動させて戻すことができ、このように、アプリケーションが必要なクリーンアップタスクを実行することを許可することができる。したがって、準備フェーズ中に十分な情報を保存することによって、「ｕｎｄｏ」動作を実行することができる。一実施の形態によれば、「ｕｎｄｏ」動作は、たとえば「ｐｒｅｐ＿」フェーズ中にサポートされる。その理由は、「ｐｏｓｔ＿」動作によって示すように、一旦、資源が実際に割り当て又は割り当て解除されてしまうと、あまりにも遅くなりすぎて、「ｕｎｄｏ＿」動作を実行することができなくなるからである。
【００４５】
たとえば、表１に示す３つのスクリプト構造のいずれか１つ等のスクリプト構造にスクリプトを追加する（システムの能力を拡張する）か、又は、スクリプト構造からスクリプトを除去する（システムの能力を縮小する）ことにより、スクリプトは、システムを変更して、資源の動的な割り当てを提供するのに使用することができる。
【００４６】
さらに、スクリプトは、クリティカル資源解析（ＣＲＡ）に使用できる情報をアプリケーションハンドシェークコントローラ１２０に提供することができる。クリティカル資源解析の一部として、スクリプトは、たとえば、Ｏｒａｃｌｅ（登録商標）データベース等のアプリケーションに問い合わせること、ソフトウェアの記憶された状態情報を解析すること、ｐｓコマンドを実行すること等によって、情報の取得を試みることができる。
【００４７】
クリティカル資源解析の一部として、スクリプトは、資源の割り当て若しくは割り当て解除ができること、又は、資源の割り当て若しくは割り当て解除をすべきでないことをアプリケーションハンドシェークコントローラ１２０に示すことができる。さらに、スクリプトは、たとえば、オペレーション（たとえば、割り当て又は割り当て解除）をキャンセルすべきであることも示すことができる。より具体的には、スクリプトは、アプリケーションハンドシェークコントローラ１２０等の呼び出しプログラムに値を戻すことができる。スクリプトは、戻り値と共に、ｓｔｄｅｒｒ及び／又はｓｔｄｏｕｔにテキストを書き込むことができる。戻り値、ｓｔｄｏｕｔに書き込まれたテキスト、及びｓｔｄｅｒｒに書き込まれたテキストは、スクリプトが終了した時に、たとえば、単一のイベントでポストすることができ、ログに記録することができる。このイベント優先順位は、スクリプトの戻り値に基づくことができる。以下の表３は、スクリプトが、本発明の実施の形態による、対応するイベント優先順位と共に戻すことができる値、及び、たとえば戻り値がセルＯＬ＊オペレーションの場合に有することができる効果の例を示している。
【００４８】
【表３】
2007115246.tif 000005
【００４９】
ソフトウェアは、たとえば、クリティカル資源解析の一部として、上記表３に示す戻り値等を使用することができ、たとえば、上述したようなエラーコードを戻すことによって、オペレーションをアボートさせることができる。オペレーションのアボートを無効にすることを可能にするオプションを提供することができる。第２の例では、スクリプトは警告を戻すことができる。この警告は、対応するイベント優先順位を高くするのに使用することができる。一実施の形態によれば、ほとんど状況の下で、これは、オペレーションの挙動を変更しない。一方、オペレーションを監視するシステムアドミニストレータは、高くなったイベント優先順位を見た時にオペレーションをキャンセルすることができる。
【００５０】
たとえば、「ｐｒｅｐ＿」動作中にオペレーションをキャンセルすると、その結果、「ｕｎｄｏ＿」動作が実行されることがある。特に、オペレーションの完了を妨げるエラーに遭遇するか、又は、スクリプトからエラーリターンコードを受け取ることによって、オペレーションがキャンセルされる可能性がある。オペレーションを妨げるエラーは、カーネル、マネジャビリティファームウェア（manageability firmware）、システムファームウェア等の基礎を成す基盤に起因する可能性がある。「ｐｒｅｐ＿」動作の処理中にキャンセル依頼がある場合、一実施の形態によれば、以下の動作を取ることができる。
１）現在実行中のスクリプトを完了まで実行することを許可する
２）まだ実行されていないスクリプトの実行を阻止する
３）キャンセル依頼を受け取るよりも前に実行を完了したすべてのスクリプトを、「ｕｎｄｏ＿」動作を用いて逆の順序で実行する。オペレーションが取り消されている時に、そのオペレーションの元の実行の時と同じ引数リストを提供することができる。
【００５１】
［動作例］
図４は、本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるためのフローチャート４００を示している。フローチャート４００には、具体的なステップが開示されているが、このようなステップは例示である。すなわち、本発明の実施の形態は、さまざまな他のステップ、又は、フローチャート４００に列挙されたステップを変形したものを実行することにもよく適している。フローチャート４００のステップは、提示したものとは異なる順序で実行できること、及び、フローチャート４００のステップのすべてが実行されるとは限らない場合があることが十分理解される。フローチャート４００によって記述された実施の形態の全部又は一部は、コンピュータ可読で且つコンピュータ実行可能な命令を使用して実施することができる。これらの命令は、たとえば、コンピュータシステムのコンピュータ使用可能媒体又は類似のデバイスに存在する。
【００５２】
上述したように、本発明の一定のプロセス及びステップは、一実施の形態では、コンピュータシステム（図２又は図３のいずれかに示すシステム２００又はコンピュータ２１０、２４０、３００）のコンピュータ可読メモリ内に存在する一連の命令（たとえば、ソフトウェアプログラム）として実現され、システムによって実行される。これらの命令は、実行されると、以下で説明するような本発明の機能をコンピュータシステムに実施させる。
【００５３】
説明のために、フローチャート４００の解説は、（１）図２に示す構造、（２）表２に示すスクリプトの概要、及び（３）表１に示すスクリプト構造を参照することにする。
【００５４】
ステップ４０２において、システムに関連付けられた第１のソフトウェアの第１のスクリプトが受け取られる。たとえば、コンピュータ２４０のユーザは、スクリプトインターフェース１１０を使用して、たとえば、アプリケーションをインストールすることにより、スクリプトＢ（表１のライン３）をアプリケーション２６０等の第１のソフトウェアに関連付けることができる。
【００５５】
ステップ４０４において、システムに関連付けられた第２のソフトウェアの第２のスクリプトが受け取られる。たとえば、コンピュータ２１０に存在するアプリケーション２３０等の第２のソフトウェアは、コンピュータ２４０へ移動されている場合がある。資源をどのように割り当てるかの決定にアプリケーション２３０が関与することの許可をアプリケーションハンドシェークコントローラ１２０が可能にすることの一部として、アプリケーション２３０への資源の割り当て及び／又はアプリケーション２３０からの資源の割り当て解除の時に、アプリケーション２３０に対する混乱を最小にすること、又は、場合により除去することさえも、アプリケーションハンドシェークコントローラ１２０が可能にすることの一部として、第２のスクリプトＡは、システム２００が受け取ることができる。たとえば、コンピュータ２４０のユーザは、スクリプトインターフェース１１０を使用して、スクリプトＡ（表１のライン２）を第２のソフトウェア（たとえば、コンピュータ２４０に移動されたか移動されることになるアプリケーション２３０）に関連付けることができる。このように、スクリプトＡを受け取ることによって、システム２００は、資源の動的割り当てを提供するように容易に拡張することができる。
【００５６】
さらに、アプリケーションハンドシェークコントローラ１２０は、本明細書で説明したように、スクリプトＡを使用して、資源のアプリケーション２３０への割り当て又はアプリケーション２３０からの割り当て解除が可能であるかどうかの決定にアプリケーション２３０を関与させることができ、したがって、アプリケーション２３０に対する混乱を除去するとまではいかないが、最小にすることができる。たとえば、資源が割り当て解除される予定である場合、アプリケーションハンドシェークコントローラ１２０は、一連の動作を有するスクリプトＢを実行することができる。この一連の動作は、一実施の形態によれば、ｐｒｅｐ＿ｄｅｌｅｔｅ＿ｍｓｇ、ｐｒｅｐ＿ｄｅｌｅｔｅ、ｐｏｓｔ＿ｄｅｌｅｔｅ＿ｍｓｇ、及びｐｏｓｔ＿ｄｅｌｅｔｅを含む。ｐｒｅｐ＿ｄｅｌｅｔｅ＿ｍｓｇ動作は、削除が実行される予定であることを示すメッセージをスクリプトに生成させることができる。このメッセージは、システムアドミニストレータが見ることができるように、ログ記録することもできるし、単に記録することもできる。
【００５７】
次に、ｐｒｅｐ＿ｄｅｌｅｔｅ動作を用いてスクリプトを実行して、削除が実行される予定であることをスクリプトに通知することができ、また、たとえば、取り消し動作の場合は情報を保存し、且つ／又は、削除を実行すべきかどうかを判断することによって、スクリプトが削除の準備を行うことを可能にすることができる。たとえば、スクリプトは、削除が、関連付けられたソフトウェアに悪影響を与えないことの表示を戻すことができる。或いは、スクリプトは、削除が、特に、ソフトウェアの性能に影響を与えることの表示、又は、サービス契約に違反することの表示を戻すこともできる。たとえば、削除がソフトウェアの性能に影響を与えないことをスクリプトが示す場合、アプリケーションハンドシェークコントローラ１２０は、削除オペレーションを続けることができる。削除オペレーションが実行された後、ｐｏｓｔ＿ｄｅｌｅｔｅ＿ｍｓｇを用いてスクリプトを実行することができる。スクリプトは、削除が実行されたことを示すメッセージを生成することができる。このメッセージは、システムアドミニストレータが見ることができるように、ログ記録することもできるし、単に記録することもできる。次に、削除が実行されたことを示すｐｏｓｔ＿ｄｅｌｅｔｅ動作を用いてスクリプトを実行することができる。
【００５８】
同様に、アプリケーションハンドシェークコントローラ１２０は、本明細書で説明したように、スクリプトＢを使用して、特に、資源のアプリケーション２６０への割り当て又はアプリケーション２６０からの割り当て解除が可能かどうかの決定にアプリケーション２６０を関与させることができる。
【００５９】
［結論］
本発明の実施の形態によれば、アプリケーションは、資源の割り当て又は割り当て解除がアプリケーションに影響を与えるかどうかの判断に関与し、したがって、アプリケーションは、システムに対して資源の変更が動的に行われる前又は行われた後に、自身を「サイズに従って適切に分類する」（たとえば、可能性のある割り当て若しくは割り当て解除、又は、実際の割り当て若しくは割り当て解除に対応する）ことが可能になる。
【００６０】
本発明の実施の形態によれば、システムに対して資源の変更が行われる前に、重大なソフトウェアエラーを捕捉して、これに対処することができる。これらの重大なソフトウェアエラーは、従来のシステムの場合、通常ならば、資源の変更が行われた後になるまで見逃されて、アプリケーション及び／又はオペレーティングシステムの状態を深刻な危険にさらす可能性がある。
【００６１】
本発明の実施の形態によれば、一貫したログ記録及びイベント報告が、たとえば、「＿ｍｓｇ」動作を使用して提供され、管理ツールによる消費に対してイベントとして送信することができる。
【００６２】
本発明の実施の形態によれば、「ｒｃ」ディレクトリ等と類似の構造を有するディレクトリ等、業界標準設計が利用され、簡単なアプリケーション統合が得られる。
【００６３】
本発明の実施の形態によれば、アプリケーションは、たとえばｐｒｅｐ＿動作中に、割り当て解除される資源を解放することについて先取りすることができるので、動的な資源割り当てをより迅速に行うことが可能になる。
【００６４】
本発明の実施の形態によれば、新たな資源が追加又は削除される時に、自身を「サイズに従って分類する」機会が与えられる結果、アプリケーションをより良く実行することが可能になる。
【００６５】
本発明の実施の形態は、アプリケーション間の独立性を提供する。たとえば、各アプリケーションは、スクリプトの使用、スクリプトを使用したアプリケーションハンドシェークコントローラ１２０との通信等を行うのに、他のアプリケーションについて理解する必要も知る必要もない。本明細書で説明したように、たとえば、アプリケーションのスクリプトをスクリプトディレクトリに追加することができ、アプリケーションハンドシェークコントローラ１２０は、動的な資源割り当ての目的でスクリプトを自動的に使用開始することができる。
【００６６】
本発明の実施の形態によれば、ソフトウェアの動的な資源割り当てを提供するようにシステムを拡張することが容易である。たとえば、スクリプトをスクリプトディレクトリに追加することによって、システムは、動的な資源割り当てを開始する目的で資源割り当てプロセスにアプリケーションを自動的に含めることができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための装置を示す図である。
【図２】本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための一例示のシステムのブロック図である。
【図３】本発明の別の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるための一例示の区画されたコンピュータシステムのブロック図である。
【図４】本発明の実施の形態による、ソフトウェアによって使用される資源を動的に割り当てるためのフローチャートである。
【符号の説明】
【００６８】
１００・・・装置
１１０・・・スクリプトインターフェース
１２０・・・アプリケーションハンドシェークコントローラ
２００・・・システム
２１０，２４０・・・コンピュータ
２２０，２５０・・・セル
２２６，２５６・・・メモリ
２３０，２６０・・・アプリケーション
２７０・・・スクリプト
３００・・・コンピュータ
３１０，３７０・・・パーティション
３２０，３３０，３８０，３９０・・・セル
３２６，３３６，３８６，３９６・・・メモリ
３５０，３６０・・・アプリケーション
【図１】
2007115246.tif 000006
【図２】
2007115246.tif 000007
【図３】
2007115246.tif 000008
【図４】
2007115246.tif 000009