(57)【特許請求の範囲】
【請求項１】
資源をプロビジョニングするためのコンピューティング資源プロビジョニング・システムに対するインターフェースにおける命令を受け取るステップであって、プロビジョニングは前記インターフェースの接続されたクライアント・システムにおける前記命令の実行中に行われ、前記命令がネーム・リゾリューション要求をトリガし、前記ネーム・リゾリューション要求がリゾルーバに提供されるデータ・ストリングを有する、ステップと、
前記リゾルーバが、少なくとも前記データ・ストリングの第１の部分を識別するための正規表現ルールを有し、当該リゾルバによって識別されないデータ・ストリングの少なくとも第２の部分をリゾリューション・ハンドラに送り、仮想資源をユーザ識別名にマップするための前記リゾリューション・ハンドラから結果を返すように構成されるステップと、
前記データ・ストリングがクライアントシステムにおける前記命令の実行前に存在しない資源の資源識別子と１つまたは複数の資源属性を有し、前記資源識別子と前記１つまたは複数の資源属性を抽出するために前記データ・ストリングを解析するステップと、
前記資源識別子と前記１つまたは複数の資源属性を前記コンピューティング資源プロビジョニング・システムに提供するステップであって、前記コンピューティング資源プロビジョニング・システムが、クラウド・コンピューティング・システムのオンデマンド・ベースで前記１つまたは複数の資源属性を持つ仮想資源を作成することによって前記１つまたは複数の資源属性を有し、前記資源識別子に関連する前記資源をプロビジョニングし、前記コンピューティング資源プロビジョニング・システムに送られた前記１つまたは複数の資源属性を有する仮想資源を作成する要求に応答して、前記仮想資源を作成する、ステップと、
前記インターフェースに接続さたクライアント・システムにおける前記命令の実行中に前記資源へのアクセスを行うためのハンドルを返すステップ、
を有する方法。
【請求項２】
前記コンピューティング資源プロビジョニング・システムはクラウド・コンピューティング・システムの仮想資源を作成することによって前記資源をプロビジョンし、前記仮想資源は前記クラウド・コンピューティング・システムの少なくとも１つの利用可能な物理資源に関連付けられ、前記利用可能な物理資源は前記１つまたは複数の資源属性を有し、前記クラウド・コンピューティング・システムは加入者にとってオンデマンド・ベースでアクセスし得る複数のネットワーク・コンピュータ・システムを含む、請求項１に記載の方法。
【請求項３】
前記資源は、マルチプロセシング・ユニット・コンピューティング・システムにおける少なくとも１つの物理処理ユニットに関連付けられた論理処理資源である、請求項１に記載の方法。
【請求項４】
前記資源は、少なくとも１つの物理記憶装置に関連付けられた論理メモリ資源である、請求項１に記載の方法。
【請求項５】
ユーザ識別子またはアカウント識別子の少なくとも１つを前記コンピューティング資源プロビジョニング・システムに供給するステップを更に含み、前記ハンドルは前記ユーザ識別子またはアカウント識別子を含む、請求項１に記載の方法。
【請求項６】
前記コンピューティング資源プロビジョニング・システムは、プロビジョニング要求に応答してネットワーク・マルチコンピュータ・システムの物理コンピューティング資源を動的に割当てるように構成される、請求項１に記載の方法。
【請求項７】
前記資源識別子および前記少なくとも１つの利用可能な物理資源は、前記コンピューティング資源プロビジョニング・システムのアプリケーション・プログラミング・インターフェース（ＡＰＩ）を介してコンピューティング資源プロビジョニング・システムに与えられ、
前記資源をアクセスするためにドメイン・ネーム・システム（ＤＮＳ）アドレスを受け取るステップと、
前記ＤＮＳアドレスを格納するステップと、
前記ハンドルを含むルックアップ操作に応答して前記ＤＮＳアドレスを検索するステップと、
を更に含む、請求項２に記載の方法。
【請求項８】
請求項１乃至７のいずれかに記載の方法におけるすべてのステップを実行するように適応した手段を含む、システム。
【請求項９】
請求項１乃至７のいずれかに記載の方法におけるすべてのステップをコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、ネーム・リゾリューションを使用して仮想資源をプロビジョン（provision）する方法に関する。
【背景技術】
【０００２】
コンピューティング環境では、コンピューティング・システムが最初に設定されるとき、利用可能な物理資源が静的に割付けられることが可能である。例えば、メモリ、プロセッサ、およびディスクのような物理資源が、特定のユーザに割当てられた特定の機械にインストールされることが可能である。その後、その割付けプロセスは、ユーザに対してシステムを割付け且つプロビジョンする情報技術部門にユーザが資源要件を指定することを必要とする帯域外（out-of-band）プロセスであることがある。資源を再プロビジョンすることは、一般に、システムの再構築、または再定義された資源要件を備えた新しいシステムの割付け、を必要とする。
【０００３】
クラウド・コンピューティング環境では、仮想資源は、通常のコンピューティング環境で物理資源を割付ける方法と同様に帯域外プロセスでプロビジョンされる。例えば、ユーザは、ウェブ・インターフェースを使用して仮想資源を要求し得る。その要求に応答して、ユーザは、新たな仮想資源に関連したインターネット・プロトコル（ＩＰ）、その新たな仮想資源に関連した論理識別子、または仮想ディスクのネットワーク・ロケーションのような仮想資源に関するアクセス情報を受け取り得る。従って、ユーザは、ユーザ・コマンドを実行する前に仮想資源に対するアクセス情報を含むようにユーザ・コマンドを更新することによって、またはシステムをリブートする前に仮想資源に対するアクセス情報を含むようにシステムを構成することによって、仮想資源を使用し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、ネーム・リゾリューションを使用して仮想資源をプロビジョンするための方法、システムおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
特定の実施例では、本方法は、コンピューティング・システムに対するインターフェースにおいて命令およびデータ・ストリングを受け取るステップを含む。そのデータ・ストリングは資源識別子および１つまたは複数の資源属性を含む。本方法は、データ・ストリングを解析してその資源識別子および１つまたは複数の資源属性を抽出するステップを含む。本方法は、更に、その資源識別子および１つまたは複数の資源属性をコンピューティング資源プロビジョニング・システムに供給するステップを含む。コンピューティング資源プロビジョニング・システムは、資源識別子に対応し且つ１つまたは複数の資源属性を有する資源をプロビジョンする。本方法は、更に、コンピューティング資源プロビジョニング・システムに対するインターフェースに結合されたクライアント・システムにおける命令の実行中にそのプロビジョンされた資源へのアクセスを行なうためにハンドルを返送するステップを含む。
【０００６】
別の特定の実施例では、本方法は、ネーム・リゾリューション要求を含むコマンドを受け取ったことに応答してクラウド・コンピューティング・システムの仮想資源をプロビジョンするステップを含む。
【０００７】
別の特定の実施例では、本システムは、データ・ストリング引き数を含むユーザ・コマンドを受け取るためのコマンド・インターフェースを含む。本システムは、データ・ストリング引き数から資源識別子および１つまたは複数の資源属性を解析するためのネーム・リゾリューション・モジュールを含む。本システムは、更に、その１つまたは複数の資源属性を有する資源を作成するという要求をプロビジョニング・システムに送り且つその資源に対するハンドルをネーム・リゾリューション・モジュールに返送するプロビジョニング・システム・インタフェースを含む。
【０００８】
別の特定の実施例では、本コンピュータ・プログラムはコンピュータ可読媒体を含む。コンピュータ・プログラムは、命令およびデータ・ストリングを受け取る第１のプログラム命令含み、データ・ストリングは資源識別子および1つまたは複数の資源属性を含む。本コンピュータ・プログラムは、更に、1つまたは複数の資源属性を有する仮想資源を作成するという要求をクラウド・コンピューティング・システムに対して発生する第２のプログラム命令を含む。本コンピュータ・プログラムは、更に、資源識別子を使用して仮想資源へのアクセスを可能にする第３のプログラム命令を含む。第１のプログラム命令、第２のプログラム命令、および第３のプログラム命令はコンピュータ可読媒体上に格納される。
【図面の簡単な説明】
【０００９】
【図１】ネーム・リゾリューションを使って仮想資源をプロビジョンするシステムの第１実施例の概略図である。
【図２】ネーム・リゾリューションを使って仮想資源をプロビジョンするシステムの第２実施例の概略図である。
【図３】ネーム・リゾリューションを使って仮想資源をプロビジョンするシステムの第３実施例の概略図である。
【図４】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第１実施例の流れ図である。
【図５】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第２実施例の流れ図である。
【図６】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第３実施例の流れ図である。
【図７】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第４実施例の流れ図である。
【図８】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第５実施例の流れ図である。
【図９】ネーム・リゾリューションを使って仮想資源をプロビジョンする方法の第６実施例の流れ図である。
【図１０】ネーム・リゾリューションを使って仮想資源をプロビジョンするシステムの第４実施例の概略図である。
【発明を実施するための形態】
【００１０】
図１は、ネーム・リゾリューションを使用して仮想資源をプロビジョンするシステム１００の特定の実施例を示す。システム１００は、クライアント１０４およびクラウド・コンピューティング・システム１０６に結合されたネーム・リゾリューション・ユニット１０２を含む。
【００１１】
クラウド・コンピューティング・システム１０６は、ネットワーク・ベースのグラフィカル・ユーザ・インターフェース（ＧＵＩ）１１０に結合され且つ資源プロビジョニング・システム１１２に結合されたアプリケーション・プログラミング・インターフェイス（ＡＰＩ）１０８のようなインターフェースを含む。資源プロビジョニング・システム１１２は、物理資源１１４および仮想資源１１６へのアクセスを行なう。仮想資源１１６は、物理資源１１４の少なくとも１つの利用可能な物理資源に関連付けられている。物理資源１１４は、代表的なサーバＳ１ １２０、Ｓ２ １２２、Ｓ３ １２４、およびＳ４ １２６、並びに代表的なデータ・センタ１２８を含む。代表的なデータ・センタ１２８は、代表的なサーバＳ５ １３０、Ｓ６ １３２、Ｓ７ １３４、およびＳ８ １３６を含む。仮想資源１１６は、代表的な仮想メモリＭ１ １３８、Ｍ２ １４０、およびＭ３ １４２、代表的な仮想プロセッサＰ１１４４、Ｐ２ １４６、およびＰ３ １４８、代表的な仮想帯域幅Ｂ１ １５２、Ｂ２ １５４、およびＢ３ １５６、並びに、代表的な新たに作成された仮想資源Ｃ１ １５０を含む。代表的な新たに作成された仮想資源Ｃ１ １５０は、仮想メモリ・ユニット、仮想プロセッサ・ユニット、仮想帯域幅ユニット、他の仮想資源、またはそれらの任意の組み合わせであってもよい。例えば、クラウド・コンピューティング・システム１０６は、ユーザにとってオン・デマンド・ベースでアクセス可能である仮想処理資源Ｐ１１４４、Ｐ２ １４６、およびＰ３ １４８に論理的にマップされたサーバＳ１ １２０、Ｓ２ １２２、およびＳ３ １２４の複数のプロセッサを含み得る。仮想資源１１６は、物理資源１１４におけるサーバの既存の物理プロセッサ、ディスク、またはメモリの細分部分（subdivision）であってもよい。例えば、仮想資源１１６の１つまたは複数個が、ユーザ要求に応答して物理資源１１４の一部を細分化することによって作成されてもよい。
【００１２】
物理資源１１４は、オン・デマンドに基づいてクライアント１０４のような加入者にとってアクセス可能な多数のネットワーク化されたコンピュータ・システムを含む。代表的なデータ・センタ１２８は、代表的なサーバ１２０、１２２、１２４、および１２６とは物理的に異なる位置に設置されてもよい。クライアント１０４は、仮想資源１１６の１つまたは複数個を利用する様々な機能を遂行するソフトウェア・プログラム命令を実行するように構成される。仮想資源１１６は物理資源１１４にマップされる。仮想資源１１６は、物理資源１１４のようなマルチ処理ユニットのコンピュータ・システムにおける少なくとも１つの物理処理ユニットに関連付けられた論理処理資源を含み得る。各論理メモリ資源は、少なくとも１つの物理記憶装置に関連付けられてもよい。
【００１３】
資源プロビジョニング・システム１１２は、物理資源１１４を動的に割当てることによって、アプリケーション・プログラミング・インターフェイス（ＡＰＩ）コール１７２を介して送られた要求のようなプロビジョニング要求に応答するように構成される。ユーザ識別子１６８およびアカウント識別子１７０を含むプロビジョニング要求１６７は、資源プロビジョニング・システム１１２のアプリケーション・プログラム・インターフェイス（ＡＰＩ）１０８を介して資源プロビジョニング・システム１１２に供給される。ＡＰＩ１０８は、ネットワーク・ベースのＧＵＩ１１０からプロビジョニング要求を受け取るように構成される。例えば、ネットワーク・ベースのＧＵＩ１１０は、ユーザ入力データを収集するために、および仮想資源のプロビジョニングに対応する結果を表示するために、１つまたは複数のウェブ・フォームを含み得る。仮想資源のプロビジョニングに対応する結果は、プロビジョンされた仮想資源へのアクセスを可能にするためにドメイン・ネーム・システム（ＤＮＳ）アドレス１８０を含み得る。特定の実施例では、仮想資源のプロビジョニングに対応する結果がポート番号（図示されていない）を含み得る。
【００１４】
クライアント１０４は、ネーム・リゾリューション・ユニット１０２を介して仮想資源１１６をアクセスするように構成される。ネーム・リゾリューション・ユニット１０２は、資源のリアルタイム・プロビジョニングがソフトウェア・プログラム命令の実行中にクライアント１０４によって使用されることを可能にする。従って、ネーム・リゾリューション・ユニット１０２は、クライアント１０４が、資源を使用する前にその資源を個別に割り付けおよびプロビジョンすることを必要とせずに、その資源を使用することを可能にする。例えば、ソフトウェア・プログラム命令が、３０ギガバイトの容量を有する「mydisk」と呼ばれるディスクにファイルを格納することを表わすとき、ネーム・リゾリューション・ユニット１０２は、３０ギガバイトの「mydisk」と呼ばれるディスクが存在するかどうかを判断する。「mydisk」が存在し且つ３０ギガバイトの容量を有するとき、ネーム・リゾリューション・ユニット１０２はハンドル１８４を返送する。「mydisk」が存在し且つ３０ギガバイトとは異なる容量を有するとき、ネーム・リゾリューション・ユニット１０２は、３０ギガバイトの容量を有するように「mydisk」を再プロビジョンするという要求をクラウド・コンピューティング・システム１０６に送り、ハンドル１８４を返送する。「mydisk」が存在しないとき、ネーム・リゾリューション・ユニット１０２は、識別子「mydisk」および３０ギガバイトの容量を有するディスクをプロビジョンするという要求をクラウド・コンピューティング・システム１０６に送り、ハンドル１８４を返送する。
【００１５】
ネーム・リゾリューション・ユニット１０２は、識別子１６４およびデータ・ストリング１６２の属性１６６を識別するために正規の表現ルール（正規表現:Regular expression）を使用し得る。ネーム・リゾリューション・ユニット１０２は、１つまたは複数の仮想資源をプロビジョンすることをクラウド・コンピューティング・システム１０６に要求するためのＡＰＩコール１７２を発生するように構成される。ネーム・リゾリューション・ユニット１０２は、更に、クラウド・コンピューティング・システム１０６の新たにプロビジョンされた資源をアクセスするために使用されるＤＮＳアドレス１８０を受け取るように構成される。ネーム・リゾリューション・ユニット１０２は、更に、データ・ストリング１６２における識別子１６４のようなユーザ識別された名前に新たにプロビジョンされた仮想資源をマップするハンドル１８４を返送するように構成される。ネーム・リゾリューション・ユニット１０２は、クライアント１０４のオペレーティング・システムに統合されてもよく、クライアント１０４の外にあってもよく、或いはそれの任意の組み合わせであってもよい。
【００１６】
オペレーションでは、クライアント１０４が実行のためのコマンド１６０およびデータ・ストリング１６２を受け取り、そのコマンド１６０およびデータ・ストリング１６２を、リゾリューションのためのネーム・リゾリューション・ユニット１０２に送る。データ・ストリング１６２は、資源識別子１６４および資源属性１６６を含む。本実施例では、データ・ストリングは資源に対するパスである。ネーム・リゾリューション・ユニット１０２は、クライアント１０４からコマンド１６０およびデータ・ストリング１６２を受け取る。コマンド１６０は、格納（store）命令、検索（retrieve）命令、または変更（modify）命令のような仮想資源１１６の１つに関連した命令であってもよい。ネーム・リゾリューション・ユニット１０２は、資源識別子１６４および資源属性１６６を抽出するためにデータ・ストリング１６２を解析する。
【００１７】
ネーム・リゾリューション・ユニット１０２は、データ・ストリング１６２が、事前にプロビジョンされた資源を参照するかどうかを判断する。データ・ストリング１６２が、事前にプロビジョンされた資源を参照するとき、ネーム・リゾリューション・ユニット１０２はハンドル１８４を返送する。ハンドル１８４は、クライアント１０４が、データ・ストリング１６２によって参照されたその事前にプロビジョンされた資源をアクセスすることを可能にする。データ・ストリング１６２が、事前にプロビジョンされた資源を参照しないとき、ネーム・リゾリューション・ユニット１０２は、新たな仮想資源をプロビジョンするという要求をクラウド・コンピューティング・システム１０６に発生する。特定の実施例では、その要求は、ネットワーク・ベースのＧＵＩ１１０を迂回するアプリケーション・プログラミング・インターフェイス（ＡＰＩ）コール１７２である。ＡＰＩコール１７２は、ユーザ識別子１６８またはアカウント識別子１７０のようなコマンド１６０と関連したコンテキスト情報を含み得る。ユーザ識別子１６８およびアカウント識別子１７０は、請求書作成のために仮想資源用途情報を追跡するために使用され得る。例えば、ユーザ識別子１６８は、個々のユーザの仮想資源用途を追跡するためにも使用され得る。アカウント識別子１７０は、ユーザの仮想資源用途のセットを追跡するためにも使用され得る。
【００１８】
クラウド・コンピューティング・システム１０６は、要求された仮想資源をプロビジョンして割り付け、仮想資源へのアクセスを可能にするためにＤＮＳアドレス１８０をネーム・リゾリューション・ユニット１０２に返送する。ネーム・リゾリューション・ユニット１０２は、ＤＮＳアドレス１８０をハンドル１８４に関連付け、クライアント１０４がハンドル１８４を介してその新たにプロビジョンされた仮想資源をアクセスすることを可能にするためにハンドル１８４をクライアント１０４に返送する。
【００１９】
クラウド・コンピューティング・システム１０６では、資源識別子１６４および資源属性１６６がＡＰＩ１０８を介して資源プロビジョニング・システム１１２で受け取られる。資源プロビジョニング・システム１１２は、資源識別子１６４に対応し且つ資源属性１６６を有する新たにプロビジョンされた資源Ｃ１１５０をプロビジョンする。例えば、資源識別子１６４および資源属性１６６が特定の容量を有するサーバを識別するとき、代表的な新たにプロビジョンされた資源Ｃ１１５０が、特定の容量を有する仮想サーバとしてプロビジョンされる。説明のために、資源識別子１６４が「mydisc」であり且つ資源属性１６６が６テラバイトであるとき、代表的な新たにプロビジョンされた資源Ｃ１ １５０は、「mydisc」と呼ばれる６テラバイトの容量を備えた仮想サーバである。資源識別子１６４および資源属性１６６が毎秒１００００回の浮動小数点演算能力（ＦＬＯＰＳ）を有するプロセッサ「cpu10K」を識別するとき、その代表的な新たにプロビジョンされた資源Ｃ１ １５０は、「cpu10K」と呼ばれる１００００ＦＬＯＰＳの能力を有する仮想プロセッサである。資源識別子１６４および資源属性１６６が１００メガバイトの容量を有するメモリ「mem100M」を識別するとき、代表的な新たにプロビジョンされた資源Ｃ１ １５０は、「mem100M」と呼ばれる１００メガバイトの容量を有する仮想メモリである。
【００２０】
ＡＰＩ １０８を介してＡＰＩコール１７２を行うことに応答して、ネーム・リゾリューション・ユニット１０２は、ドメイン・ネーム・システム（ＤＮＳ）アドレス１８０を受け取って資源Ｃ１１５０をアクセスする。ネーム・リゾリューション・ユニット１０２はＤＮＳアドレス１８０を格納し、ＤＮＳアドレス１８０をハンドル１８４に関連付ける。ネーム・リゾリューション・ユニット１０２は、クライアント１０４がコマンド１６０の実行中に資源Ｃ１ １５０をアクセスすることを可能にするためにハンドル１８４を返送する。ハンドル１８４は、複数のユーザがいつ仮想資源名を複製し得るかというような仮想資源を更に区別する環境変数としてユーザ識別子１６８またはアカウント識別子１７０のようなコマンド１６０のコンテキスト情報を含み得る。
【００２１】
資源Ｃ１ １５０がプロビジョンされた後、データ・ストリング１６２は、ハンドル１８４を介して資源Ｃ１ １５０にアクセスするために分析され得る。クライアント１０４で実行されるソフトウェア・プログラムにおける以後の命令におけるように、その後データ・ストリング１６２がクライアント１０４に遭遇するとき、ネーム・リゾリューション・ユニット１０２は、ＤＮＳアドレス１８０を検索するためにハンドル１８４を使用してルックアップ操作を行なう。
【００２２】
従って、資源プロビジョニング・システム１１２は、例えばデータ・ストリング１２２をコマンド１６０に対する引き数として含むことによるというように、ネーム・リゾリューション・ユニット１０２に対するネーム・リゾリューション要求をトリガするコマンド１６０に応答して、クラウド・コンピューティング・システム１０６の仮想資源Ｃ１１５０をプロビジョンし、資源プロビジョニング・システム１１２は、クライアント１０４におけるコマンド１６０のランタイム実行中に仮想資源Ｃ１ １５０をプロビジョンする。仮想資源Ｃ１ １５０の資源の識別子１６４および属性１６６に基づいた名前のような資源の名前は、ネーム・リゾリューション要求をトリガするコマンド１６０に応答して、アプリケーション・プログラム・インターフェイス（ＡＰＩ）１７２を介してクラウド・コンピューティング・システム１０６において受け取られる。クラウド・コンピューティング・システム１０６は、いずれのマニュアル・プロビジョニング・ステップも回避して、ネットワーク・ベースのＧＵＩ１１０と無関係に資源の名前および属性１６６を受け取る。ネーム・リゾリューション・ユニット１０２は、仮想資源Ｃ１１５０にハンドル１８４を返送することによって、ネーム・リゾリューション要求を分析する。ハンドル１８４は、コマンド１６０の実行を完了するためにクライアント１０４によって使用されてもよい。従って、システム１００は、コマンド１６０の実行前にプロビジョンされた資源をデータ・ストリング１６２が参照しないときでも、データ・ストリング１６１２を引き数として有するコマンド１６０をクライアント１０４が実行することを可能にする。
【００２３】
説明のために、動的資源プロビジョニングを可能にするためにライブラリ・インターフェースを設けることも可能である。例えば、コマンド
R=dial(“cloud!storage:mydisk!capacity=2GB
が、コマンド「dial」、属性「storage」を有するデータ・ストリング「cloud!storage:mydisk!capacity=2GB」、容量「2GB」、および識別子「mydisk」を含む。この例では、資源は２ギガバイトの仮想メモリである。ネーム・リゾリューション・ユニット１０２は、「cloud」が、２ＧＢの容量を有するクラウド・コンピューティング・システム１０６における仮想メモリ資源を参照する、ということを認識する。ネーム・リゾリューション・ユニット１０２は、仮想メモリ資源が利用可能であるときには「/dev/sda1」をハンドルとして仮想メモリ記憶資源に返送し得るし、仮想メモリ資源が利用可能でないときには、エラーを返送し得る。
【００２４】
別の実施例として、動的な資源プロビジョニングを可能にするために代替のファイル・システム・インターフェースが提供され得る。例えば、コマンド:  
capacity=20GB>/cloud/storage/mydisk/clone 
は、リダイレクト・コマンド「>」、属性「storage」を有するデータ・ストリング「cloud/storage/mydisk/clone」、および識別子「mydisk」を含む。ファイル・システム・インターフェース・コマンド「capacity」は、仮想資源の容量が「20GB」であることを表わす。仮想メモリ資源「clone」がそのコマンドの実行前に存在しない場合、２０ギガバイトを有する仮想メモリ資源が名前「clone」を用いてプロビジョンされ、そのコマンドの使用のために動的に割り付けられる。仮想メモリ資源「clone」が２０ギガバイトとは異なる容量を有するとき、仮想メモリ資源「clone」は、２０ギガバイトの容量を持つように再プロビジョンされ得る。代替のファイル・システム・インターフェースとして、ユーザ入力
cd/cloud/storage/mydisk/capacity=2GB
は、変更ディレクトリ・コマンド「cd」、属性「storage」を有するデータ・ストリング「cloud/storage/mydisk/capacity=2GB」、容量「2GB」、および識別子「mydisk 」を含む。その仮想メモリ資源「mydisk」がそのコマンドの実行前に存在しないとき、２ギガバイトを有する仮想メモリ資源が名前「mydisk」をプロビジョンされ、そのコマンドによる使用のために割り付けられる。仮想メモリ資源「mydisk」に２ギガバイトとは異なる容量を有するとき、仮想メモリ資源「mydisk」が、２ギガバイトの容量を有するように再プロビジョンされ得る。
【００２５】
第３の実施例として、動的資源プロビジョニングを可能にするためにネットワーク・インターフェイスが提供され得る。例えば、
Sshcloud!cpu:newssys!x86,linux,mem=4GB,cpus=4
は、リモート・ログイン・コマンド「Ssh」、識別子「newsys」を有するデータ・ストリング「cloud!cpu:newssys!x86,linux,mem=4GB,cpus=4」、並びに、属性「x86」、「linux」、「mem」、および「cpus」を含む。データ・ストリングは、ｎｅｗｓｙｓシステムがｘ８６ベースのプロセッサを使用し、ｌｉｎｕｘベースのオペレーティング・システムを稼動し、４ギガバイトのメモリを有し、４つの仮想中央処理ユニット（ＣＰＵ）を有するということを表わす。
【００２６】
システム１００は、そのシステムが「オン・ザ・フライ」動的プロビジョニングを可能にするので、クラウド・コンピューティング・システム１０６のユーザが資源を使用する前にその資源をプロビジョンするというステップ（多くの場合、手操作のステップ）を回避することを可能にする。システム１００は、グラフィカル・ユーザ・インターフェースに関係なくプロビジョニング・システム１１２に要求を送ることにより、ＧＵＩ１１０を使ってバンド外プロビジョニングを必要なくし、ランタイム時のプロビジョニングおよび仮想資源の使用を可能にする。動的プロビジョニングは、ユーザにとって意味のある名前を含み且つ資源が以前にプロビジョンされないときにその資源のプロビジョニングを可能にするに十分な属性を識別するユニバーサル資源名（ＵＲＮ）を使用することを可能にされ得る。ＵＲＮが未プロビジョンの資源を参照するとき、その資源はＵＲＮの属性および名前でもってプロビジョンされる。動的プロビジョニングは、以前に不存在の資源の参照に応答して、資源がプロビジョンされたことをクライアントが知ることなく動的プロビジョニングが生じ得るという点で、クライアントには透明となり得る。ＵＲＮは、資源の使用に関する請求書作成を可能にするために、ユーザ・アイデンティティまたは論理システム・アイデンティティのような付加的なコンテキスト関連情報と結合され得る。
【００２７】
ユーザ・アイデンティティまたは論理システム・アイデンティティは、使用時間、プロビジョンされた帯域幅、プロビジョンされたメモリ、またはプロビジョンされた処理能力に基づいた請求書作成を可能にする請求書作成モデルに関連付けられ得る。各ユーザ・アイデンティティまたは論理システム・アイデンティティは、プロビジョンされ得る資源の数を制限または限定するために制限を持ち得る。例えば、雇用者は、従業員によって使用される資源の量が予算額を超えないことを保証するために、各従業員が所定時間に使用し得る資源の最大数を制限し得る。
【００２８】
図２は、ネーム・リゾリューションを使用して仮想資源をプロビジョンするためのシステム２００に関する特定の実施例のステップ図である。システム２００は、ネーム・リゾリューション・ユニット２０４に結合されたプロビジョニング・システム２０２を含む。プロビジョニング・システム２０２は代表的な資源２３０に結合される。第１のリゾリューション・ハンドラー２１６および第２のリゾリューション・ハンドラ２１８はネーム・リゾリューション・ユニット２０４に結合される。特定の実施例では、ネーム・リゾリューション・ユニット２０４は、図１におけるネーム・リゾリューション・ユニット１０２である。
【００２９】
ネーム・リゾリューション・ユニット２０４は、コマンド・インターフェース２０６、ネーム・リゾリューション・モジュール２０８、資源テーブル２１０、およびプロビジョニング・システム・インタフェース装置２１２を含む。コマンド・インターフェース２０６は、ユーザ・コマンド２２０に対する引き数としてデータ・ストリング２２２を含むユーザ・コマンド２２０を受け取るように構成される。ネーム・リゾリューション・モジュール２０８は、データ・ストリング２２２から資源識別子２２４および資源属性２２６を検索するためにデータ・ストリング２２２を解析するように構成される。ネーム・リゾリューション・モジュール２０８は、資源属性２２６が資源テーブル２１０における資源を参照するかどうかを判断するように構成される。
【００３０】
ネーム・リゾリューション・モジュール２０８は、データ・ストリング２２２の少なくとも第１の部分を識別し且つリゾルバ２４０によって識別されないデータ・ストリング２２２の少なくとも第２の部分をリゾリューション・ハンドラに送るために正規の表現ルール規則（正規表現:Regular expression）を使用するように構成されるリゾルバ２４０を含む。例えば、リゾルバ２４０は、ファイル・システム識別子を分析するための第１のリゾリューション・ハンドラ２１６、ドメイン・ネーム・システム（ＤＮＳ）識別子を分析するための第２のリゾリューション・ハンドラ２１８、およびクラウドまたは仮想資源識別子を分析するためにプロビジョニング・システム２０２とコミュニケーションするプロビジョニング・システム・インタフェース装置２１２を含むクラウド・リゾリューション・ハンドラ２１４をアクセスするように構成され得る。例えば、データ・ストリング２２２の第１の部分が用語「クラウド」を含んでいるということをリゾルバ２４０が判断する場合、リゾルバ２４０は、データ・ストリング２２２の残りまたはデータ・ストリング２２２全体をクラウド・リゾリューション・ハンドラ２１４に送るように構成され得る。
【００３１】
資源属性２２６が資源テーブル２１０における識別された仮想資源を参照する場合、プロビジョニング・システム・インタフェース２１２は、資源２３０を作成するという要求２２８をプロビジョニング・システム２０２に送るように構成される。プロビジョニング・システム２０２は、資源属性２２６を用いて資源２３０を作成し、資源識別子２２４を資源２３０に関連付ける。例えば、資源属性２３０が４ギガバイトのメモリであり且つ資源識別子２２４が「mem1」である場合、プロビジョニング・システム２０２は、４ギガバイトのメモリを有するメモリを作成し、名前「mem1」をその作成された資源に関連付ける。１つの実施例では、資源属性２２６は、仮想メモリの容量、仮想プロセッサのスループット、または仮想帯域幅のスループットを指定し得る。
【００３２】
プロビジョニング・システム・インタフェース２１２は、プロビジョニング・システム２０２からＤＮＳアドレス２３２を受け取るように構成される。ＤＮＳアドレス２３２は、資源２３０へのアクセスを可能にする。プロビジョニング・システムインタフェース装置２１２は、資源２３０へのアクセスを可能にするためにハンドル２３６をＤＮＳアドレス２３２に関連付けるように構成される。ハンドル２３６は、ネーム・リゾリューション・モジュール２０８に返送される。ネーム・リゾリューション・モジュール２０８は、資源テーブル２１０のテーブル・エントリーを使用してハンドル２３６をＤＮＳアドレス２３２に関連付ける。
【００３３】
資源属性２２６が資源テーブル２１０におけるエントリを参照するとき、ネーム・リゾリューション・モジュール２０８は、資源属性２２６を使って資源テーブル２１０でルックアップ操作を行って資源属性２２６に関連したハンドル２３６を検索するように構成される。資源２３０が事前にプロビジョンされ且つ資源属性２２６が資源２３０の属性と一致しないとき、プロビジョニング・システム・インタフェース２１２は、更に、資源２３０を再プロビジョンすることによって、資源識別子２２４に関連付けられた資源２３０を修正するという要求２２８を送るように構成される。例えば、資源２２２が特定の数の処理ユニットを有する仮想プロセッサであり且つ資源属性２２６が、資源２３０に関連した異なる数の処理ユニットを表わすとき、プロビジョニング・システム・インタフェース２１２は、資源属性２２６によって指定されるような数の処理ユニットを有するよう資源２３０を修正するという要求２２８を送るように構成される。
【００３４】
システム２００は、クライアントが、データ・ストリング２２２がコマンド２２０の実行前に存在する資源を参照しないときでも、引き数としてデータ・ストリング２２２を有するコマンド２２０をクライアントが実行することを可能にする。ネーム・リゾリューション・モジュール２０８は、データ・ストリング２２２が、資源テーブル２１０においてルックアップ操作を行なうことにより、プロビジョンされた資源を参照するかどうかを判断する。データ・ストリング２２２が資源テーブル２１０におけるプロビジョンされた資源を参照しないとき、プロビジョニング・システム・インタフェース２１２は、資源をプロビジョンするという要求２２８をプロビジョニング・システム２０２に送る。プロビジョニング・システム２０２は要求された資源（示されてない）を作成し、新たにプロビジョンされた資源をアクセスするために使用された情報を返送する。ネーム・リゾリューション・モジュール２０８は、新たにプロビジョンされた資源をアクセスするための情報を、クライアントが新たにプロビジョン資源をアクセスすることを可能にするハンドル２３６に関連付ける。その後、クライアントがそのプロビジョンされた資源を参照するとき、ネーム・リゾリューション・モジュール２０８は、資源テーブル２１０を使ってルックアップを行い、資源にアクセスするために使用されるハンドルを検索する。
【００３５】
システム２００は、資源テーブル２１０における資源のルックアップにより分析され得ない資源を参照するコマンドの実行に応答して仮想資源を作成する「オン・デマンド」の動的プロビジョニングを可能にする。更に、システム２００は、資源を参照するコマンドが、資源の現在の属性とは異なる属性を有するということを表わすとき、その資源を再プロビジョンする「オン・ザ・フライ」動的再プロビジョニングを可能にする。例えば、資源２３０は、２００ギガバイトのメモリ容量を有するように先ずプロビジョンされ得る。コマンド２２０の実行中に、資源２３０が２テラバイトのメモリ容量を有することを属性２２６が示すとき、ネーム・リゾリューション・ユニット２０４は、資源２３０が現在２テラバイトのメモリ容量を有さないことを判断し、従って資源２３０を再プロビジョンするという要求２２８を送る。
【００３６】
図３は、ネーム・リゾリューションを使用して仮想資源をプロビジョンするシステム３００の特定実施例のステップ図である。システム３００では、クライアント３０２は資源プロビジョニング・システム３０６を介して資源３０４に結合されている。クライアント３０２は、端末３０８、ドメイン・ネーム・サーバ（ＤＮＳ）３１０、合成ファイル・システム３１２、プロビジョニングおよびネーム・リゾリューション・ユニット３１４、並びに資源マッピング・データベース３１６を含む。資源３０４は、パワー・ハイパーバイザ（pHyp）マネージド・サーバ３２０、Xenマネージド・サーバ３２２、VMwareマネージド・サーバ３２４、カーネル・ベース仮想マシン（KVM）サーバ３２６、記憶装置サーバ３２８、およびネットワーク機器３３０を含む種々のタイプのマネージド・サーバを含む。
【００３７】
端末３０８は、ＤＮＳサーバ３１０および合成ファイル・システム３１２を介して仮想資源にアクセスするように構成される。ＤＮＳサーバ３１０または合成ファイル・システム３１２が仮想資源をアクセスしようとするとき、プロビジョニングおよびネーム・リゾリューション・ユニット３１４は、仮想資源がプロビジョンされているかどうかを判断するように構成される。仮想資源がプロビジョンされているとき、プロビジョニングおよびネーム・リゾリューション・ユニット３１４は、ハンドルが資源マッピング・データベース３１６における仮想資源へのアクセスを可能にするためにルックアップを行ない、ＤＮＳサーバ３１０または合成ファイル・システム３１２にハンドルを返送する。仮想資源がプロビジョンされてない場合、プロビジョニングおよびネーム・リゾリューション・ユニット３１４は、仮想資源をプロビジョンするという要求を資源プロビジョニング・システム３０６に送るように構成される。資源プロビジョニング・システム３０６は、プロビジョニング要求を受け取り、資源３０４の仮想資源をプロビジョンし、しかる後、その仮想資源へのアクセスを可能にするためにＤＮＳ識別子のような情報を返送する。ネーム・リゾリューション・ユニット３１４は、資源プロビジョニング・システム３０６から情報を受け取りその、情報にハンドルを関連付け、そのハンドルおよび情報を資源マッピング・データベース３１６に格納し、そのハンドルをＤＮＳサーバ３１０または合成ファイル・システム３１２に返送する。
【００３８】
図４は、ネーム・リゾリューションを使用して仮想資源をプロビジョンするための方法に関する第１の実施例の流れ図である。その方法は、図１におけるネーム・リゾリューション・ユニット１０２、図２におけるネーム・リゾリューション・ユニット２０４、または図３におけるネーム・リゾリューション・ユニット３１４のようなリゾルバ・システムによって遂行され得る。
【００３９】
ステップ４０１において、コマンドおよびデータ・ストリングが受け取られる。ステップ４０４に移ると、そのデータ・ストリングのタイプが決定される。ステップ４０６に継続して、そのデータ・ストリングのタイプに基づいてリゾルバのタイプが決定される。例えば、各タイプのデータ・ストリングはそれ自身の関連リゾルバ持ち得る。実施例では、メモリ資源に関連した第１のデータ・ストリングを分析するために第１のリゾルバが使用され、プロセッサ資源に関連した第２のデータ・ストリングを分析するために第２のリゾルバが使用され、帯域幅資源に関連した第３のデータ・ストリングを分析するために第３のリゾルバが使用される。ステップ４０８に進み、そのデータ・ストリングに関連したユーザおよびシステム情報が決定される。そのデータ・ストリングに関連したユーザおよびシステム情報は、コマンドおよびデータ・ストリングが実行されるコンテキストに関する情報を含み、２つ以上のユーザが同じユーザを参照するとき、資源要求を区別するために使用され得る。例えば、複数のユーザが共通の仮想資源をアクセスするとき、ユーザおよびシステム情報は、共通の仮想資源にアクセスするという異なるユーザからの要求を区別するために使用されされ得る。
【００４０】
ステップ４１０に進むと、データ・ストリングが既存のデータベース・エントリと一致するかどうかの判断が行われる。例えば、図２におけるデータ・ストリング２２２が資源テーブル２１０におけるデータ・ストリングと一致する場合、参照された資源は既にプロビジョンされており、ネーム・リゾリューション・ユニット２０４は資源テーブル２１０から対応するハンドルを返送し得る。データ・ストリングがデータベース・エントリと一致する場合、ステップ４１２において、そのデータ・ストリングの属性がデータベース・エントリと一致するかどうかの判断が行われ得る。その資源が事前にプロビジョンされていたとき、データ・ストリングはデータベース・エントリと一致する。
【００４１】
ステップ４１２において属性がデータベース・エントリと一致する場合、ステップ４１８においてハンドルが返送され、ステップ４２０においてその方法は終了する。ステップ４１２において属性がデータベース・エントリと一致しない場合、ステップ４１４において資源が利用可能であるかどうかの判断が行われる。属性がデータベース・エントリと一致しない場合、その属性を有するように資源を再プロビジョンしようとする試みが行われる。ステップ４１４において資源が利用可能でない場合、ステップ４２２でエラーが報告され、ステップ４２０においてその方法は終了する。
【００４２】
ステップ４１４において資源が利用可能である場合、本方法はステップ４１６に進む。ステップ４１６では、仮想資源が新しい属性でもって再プロビジョンされ、ステップ４１８においてハンドルが返送され、ステップ４２０で本方法は終了する。ステップ４１０においてデータ・ストリングがデータベース・エントリと一致しない場合、本方法はステップ４２４に進む。例えば、図２では、データ・ストリング２１２が資源テーブル２１０におけるエントリと一致しない場合、ネーム・リゾリューション・ユニット２０４が、データ・ストリング２１２によって参照された資源をプロビジョンするという要求をプロビジョニングシステム２０２に送る。図４のステップ４２４では、新たなエントリが資源データベースにおいて作成される。ステップ４２６に進むと、資源が利用可能であるかどうかの判断が行われる。例えば、資源は、処理能力、メモリ、ハードディスク・スペース、帯域幅、他のコンピューティング関連の資源、またはそれらの任意の組み合わせのような仮想資源であってもよい。ステップ４２６において資源が利用可能でない場合、ステップ４２２でエラーが報告され、ステップ４２０で本方法は終了する。ステップ４２６で資源が利用可能である場合、ステップ４２８において新たな仮想資源が作成される。ステップ４３０に進むと、その新たな仮想資源がハンドルに関連付けられ、そのハンドルが資源データベースに格納される。ステップ４３２に移ると、そのハンドルが返送され、ステップ４２０において本方法は終了する。
【００４３】
図５は、ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法に関する第２の実施例の流れ図ある。本方法は、図１におけるの中のネーム・リゾリューション・ユニット１０２、図２におけるネーム・リゾリューション・ユニット２０４、または図３におけるネーム・リゾリューション・ユニット３１４のようなリゾルバ・システムによって遂行され得る。
【００４４】
ステップ５０２において資源の名前がリゾルバで受け取られる。ステップ５０４に進むと、ハンドルが装置の名前に関連付けられる。１つの実施例では、リゾルバは、資源がプロビジョンされ且つ受け取られた名前を割当てられるということを要求し得る。リゾルバはプロビジョンされた資源を受け取り、ハンドルをそのプロビジョンされた資源の名前に関連付け得る。別の実施例では、リゾルバは、資源に関連した名前に関してハンドルを検索するためにルックアップを行い得る。ステップ５０６に進むと、その装置の属性が合成ファイルにマップされる。合成ファイル・システムは、基礎となるプロトコルとの対話を必要とすることなく、ソフトウェア・プログラムが簡単なファイル操作を使用することを可能にするファイル・システム・インターフェースを提供する。ステップ５０８に進むと、その資源の使用に備えて正規のマウント操作が遂行される。例えば、マウント操作がディスク・ドライブ上で行なわれるとき、ディスク・ドライブのファイル・システムがオペレーティング・システムにおいて利用し得るようにする。ステップ５１０において、本方法は終了する。
【００４５】
図６は、ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法に関する第３の実施例の流れ図である。本方法は、図３のＤＮＳサーバ３１０のようなＤＮＳサーバによって遂行され得る。
【００４６】
ステップ６０２において、ＤＮＳホスト名が受け取られる。６０４に進むと、ＤＮＳホスト名がクラウド・コンピューティング・システムにおけるクラウド・アドレスを参照するかどうかの判断が行われる。ＤＮＳホスト名がクラウド・コンピューティング・システムにおけるアドレスを参照しない場合、ステップ６０６において正規のＤＮＳホスト・ネーム・リゾリューションが行われ、ステップ６１４で本方法が終了する。ステップ６０４においてＤＮＳホスト名がクラウド・コンピューティング・システムを参照する場合、ステップ６０８において、装置属性を使ってＤＮＳホスト名が分析される。ステップ６１０に進むと、仮想資源の装置属性が合成ファイルにマップされる。ステップ６１２に移ると、アドレスが新たな資源または既存の資源に返送され、ステップ６１４において本方法は終了する。
【００４７】
図７は、ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法に関する第４の実施例の流れ図である。ステップ７０２において、命令およびデータ・ストリングがコンピューティング資源プロビジョニング・システムに対するインターフェースにおいて受け取られる。なお、データ・ストリングは資源識別子および１つまたは複数の資源属性を含む。例えば、インターフェースは、図１のアプリケーション・プログラミング・インターフェイス（ＡＰＩ）１０８であってもよい。ステップ７０４に進むと、データ・ストリングは、資源識別子および１つまたは複数の資源属性を抽出するために解析される。ステップ７０６に移ると、資源識別子および１つまたは複数の資源属性がコンピュータ資源プロビジョニング・システムに与えられる。なお、コンピュータ資源プロビジョニング・システムは、資源識別子に対応し且つ１つまたは複数の資源属性を有する資源をプロビジョンする。例えば、資源識別子が「mydisk」であり且つ属性が１テラバイトであるとき、コンピュータ資源プロビジョニング・システムは、１テラバイトの容量を有し且つ「mydisk」として識別された仮想ディスクをプロビジョンし得る。
【００４８】
ステップ７０８に進むと、ユーザ識別子またはアカウント名がコンピューティング資源プロビジョニング・システムに与えられ得る。ユーザ識別子およびアカウント名は資源の使用に関する請求書を作成するために使用され得る。例えば、請求書作成は個々のユーザに基づくかまたは資源をアクセスする複数のユーザを有するアカウントに基づき得る。ステップ７１０に進むと、資源をアクセスするためのドメイン・ネーム・システム（ＤＮＳ）アドレスが受け取られ、ステップ７１２においてそのＤＮＳアドレスが格納され得る。ステップ７１４に移ると、インターフェースに結合されたクライアント・システムにおいて命令の実行中に資源をアクセスするために、ハンドルが与えられる。ステップ７１６に進むと、ハンドルを含むルックアップ操作に応答して、ＤＮＳアドレスが検索される。ステップ７１８において、本方法が終了する。
【００４９】
図８は、ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法に関する第５の実施例の流れ図である。本方法は、図１の資源プロビジョニング・システム１１２、図２のプロビジョニング・システム２０２、または図３の資源プロビジョニング・システム３０６のような資源プロビジョニング・システムによって遂行され得る。
【００５０】
ステップ８０２において、ネーム・リゾリューション要求を含むコマンドに応答して、クラウド・コンピューティング・システムの仮想資源が与えられる。ステップ８０４に進むと、仮想資源の名前および仮想資源の属性が、ネーム・リゾリューション要求に応答してクラウド・コンピューティング・システムに対するインターフェースに与えられる。ステップ８０６に進むと、仮想資源にハンドルを返送することにより、ネーム・リゾリューション・リクエストが分析される。ステップ８０８において本方法は終了する。
【００５１】
図９は、ネーム・リゾリューションを使用して仮想資源をプロビジョンする方法に関する第６の実施例の流れ図である。本方法は、図１におけるネーム・リゾリューション・ユニット１０２、図２におけるネーム・リゾリューション・ユニット２０４、または図３におけるネーム・リゾリューション・ユニット３１４のようなネーム・リゾリューション・ユニットによって遂行され得る。
【００５２】
ステップ９０２において、命令およびデータ・ストリングが受け取られる。データ・ストリングは、資源識別子、１つまたは複数の資源属性、および１つのプロビジョニング・システム・インジケータを含む。ステップ９０４に進むと、１つまたは複数の資源属性を有する仮想資源を作成するという要求がクラウド・コンピューティング・システムに対して発生される。ステップ９０６に進むと、資源識別を使用して、仮想資源へのアクセスが可能にされる。ステップ９０８に進むと、その要求は、グラフィカル・ユーザ・インターフェースとは無関係にプロビジョニング・システムに送られる。ステップ９１０において本方法は終了する。
【００５３】
図１０は、本発明のシステムおよび方法を具現化し得るコンピューティング・システムのブロック図である。コンピューティング・システム１０００は、図１におけるネーム・リゾリューション・ユニット１０２または図２におけるネーム・リゾリューション・ユニット２０４のようなネーム・リゾリューション・ユニットの例を含み、そのネーム・リゾリューション・ユニット２０４では、ネーム・リゾリューション・モジュール２０８、コマンド・インターフェース２０６、および図２におけるプロビジョニング・システムインタフェースを具現化するように、コンピュータ使用可能コードまたは命令が実行可能である。
【００５４】
図示の例では、コンピューティング・システム１０００が、プロセッサ１００６、メイン・メモリ１００８、キーボードまたはマウスのような入力装置１０２４、ディスプレイ装置１０２２、およびネットワーク・アダプタ１０１２を含む。ネットワーク・アダプタ１０１２は、図１におけるクラウド・コンピューティング・システム１０６のようなリモート・コンピューティング・システム１０４０に結合される。ネットワーク・アダプタ１０１２は、図１におけるクライアント１０４のようなクライアント１０４２にも結合される。
【００５５】
メイン・メモリ１００８は、コンピュータ可読媒体上にインストールされたコンピュータ命令を含む。メイン・メモリ１００８は、命令１０５２およびデータ・ストリング１０５４を受け取るための第１のプログラム命令１０４４を含み、そのデータ・ストリングは、資源識別子（図示されてない）および１つまたは複数の資源属性（図示されてない）を含む。メイン・メモリ１００８は、１つまたは複数の資源属性を有する仮想資源１０５８を作成するという要求１０５６をリモート・コンピューティング・システム１０４０に対して発生する第２のプログラム命令１０４６を更に含む。メイン・メモリ１００８は、資源識別子を使用して仮想資源１０５８へのアクセスを可能にする第３のプログラム命令１０４８を更に含む。
【００５６】
リモート・コンピューティング・システム１０４０への要求１０５６は、オンデマンド・コンピューティング資源システムのためのプロビジョニング・システムのアプリケーション・プログラム・インターフェース（ＡＰＩ）への少なくとも１つのコマンドを含む。図１０では、ＡＰＩおよびオンデマンド・コンピューティング資源システムは、リモート・コンピューティング・システム１０４０に含まれ、従って、図示されない。オンデマンド・コンピューティング資源システムは、オン・デマンドに基づいてプロビジョンされる仮想資源として遠隔のユーザにとって利用可能な処理資源を有する、データ・センタにおける少なくとも１つのセットのネットワーク・コンピュータを含む。メイン・メモリ１００８は、グラフィカル・ユーザ・インターフェースに関係なくプロビジョニング・システムに要求１０５６を送るための第４のプログラム命令１０５０を更に含む。
【００５７】
オペレーティング・システム（図示されてない）はプロセッサ１００６上で作動し、コンピューティング・システム１０００内の種々なコンポーネントの制御を調整および提供する。オペレーティング・システムは、Microsoft WindowsXPのような市販のオペレーティング・システムであってもよい（なお、Microsoft およびWindowsは、米国のマイクロソフト社の商標である）。Javaプログラミング・システムのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと連動して作動し、コンピューティング・システム１０００上で実行されるJavaプログラムまたはアプリケーションからのコールをオペレーティング・システムに供給し得る（なお、JavaおよびすべてのJavaベースの商標は、米国のサン・マイクロシステムズ社の商標である）。
【００５８】
コンピューティング・システム１０００におけるハードウェアは実施態様に依存して変わり得る。フラッシュ・メモリ、等価の不揮発性のメモリまたは光ディスク・ドライブ等のような他の内部ハードウェアまたは周辺機器がコンピューティング・システム１０００において使用され得るが、説明を明瞭にするために図１０には示されない。更に、開示された実施例のプロセスは、マルチプロセッサ・データ処理システムにも適用され得る。
【００５９】
図１０に示された例および上記の例は、アーキテクチャ上の限定を意味するものではない。例えば、コンピューティング・システム１０００の各部分は、パーソナル・コンピュータ、サーバ、サーバ・クラスタ、タブレット・コンピュータ、ラップトップ・コンピュータ、或いは電話装置において実装され得る。
【００６０】
コンピューティング・システム１０００の特定の実施例は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形式を取り得る。特定の実施例では、開示された方法は、プロセッサ可読媒体に組み込まれてプロセッサにより実行されるソフトウェアとして具現化される。そのソフトウェアは、ファームウェア、駐在ソフトウェア、マイクロコード等を含むが、それらに限定されない。
【００６１】
更に、図１〜図１０における１つまたは複数の実施例のような本発明の実施例は、コンピュータまたは任意の命令実行システムによる使用またはそれらに関連した使用のためにコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形式を取り得る。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによる使用またはそれらに関連した使用のためにコンピュータ・プログラムを実体的に組み込むことができ且つそのプログラムを含み、格納し、伝送し、伝播し、または、搬送することができる任意の装置であってもよい。
【００６２】
種々の実施例において、上記媒体は、電子的、磁気的、光学的、電磁気的、赤外線もしくは半導体システム（もしくは装置もしくはデバイス）、或いは伝播媒体を含み得る。コンピュータ可読媒体の例は、半導体もしくはソリッド・ステート・メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、固定磁気ディスク、および光ディスクを含む。光ディスクの現用例は、コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク・リード／ライト（ＣＤ−Ｒ／Ｗ）、およびデジタル・バーサタイル・ディスク（ＤＶＤ）を含む。
【００６３】
プログラム・コードを格納および／または実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接結合された少なくとも１つのプロセッサを含み得る。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、およびコードが実行中に大容量記憶装置から検索されなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含み得る。
【００６４】
入出力装置またはＩ／Ｏ装置（キーボード、ディスプレイ、ポインティング・デバイス等を含むが、これらに限定されない）は、データ処理システムに直接または介在するＩ／Ｏコントローラを介して結合され得る。
【００６５】
ネットワーク・アダプタは、データ処理システムが介在の専用ネットワークまたは公衆ネットワークを介して他のデータ処理システムまたはリモート・プリンタもしくは記憶装置に結合されることを可能にし得る。モデム、ケーブル・モデム、およびイーサネット・カードは、わずかな現在利用可能なタイプのネットワーク・アダプタである。
【００６６】
開示された実施例に関する前述の説明は、いずれの当業者もその開示された実施例を製作または使用することを可能にするために提供される。これらの実施例に対する様々な修正は、当業者には容易に明らかであろうし、ここに定義された一般的な原理は、発明の技術的範囲から逸脱することなく他の実施例に適用され得る。従って、本発明は、ここに示された実施例に限定されることを意図するものではなく、「特許請求の範囲」によって定義された原理および特徴に適合する可能な最大限の広い技術的範囲を認められるべきものである。
【図１】
0005559176.tif 000002
【図２】
0005559176.tif 000003
【図３】
0005559176.tif 000004
【図４】
0005559176.tif 000005
【図５】
0005559176.tif 000006
【図６】
0005559176.tif 000007
【図７】
0005559176.tif 000008
【図８】
0005559176.tif 000009
【図９】
0005559176.tif 000010
【図１０】
0005559176.tif 000011