(57)【要約】【課題】  分散環境における階層化容量に基づいたプロビジョニングの方法及び装置を提供する。【解決手段】  分散環境において、階層化手法による容量に基づいたプロビジョニングを用いて、一組のリソースへのアプリケーション・コンポーネントのマッピングを供給する技術が提供される。一例として、アプリケーションにリソースを割り当てる方法は以下のステップを含む。アップリケーション及び関連するコンテナに関する依存性グラフの後順探査を容量要件と共に表す第１のデータ構造体が取得される。各リソースに使用可能容量を表すタプルが関連付けられる一組のリソースを表す第２の構造体が取得される。一組のリソースへの依存性グラフのデータ構造体のマッピングが、使用可能容量に基づいて、一組のリソースのうちのリソースがアプリケーションに割り当てられるように、生成される。【選択図】      図１
2010049688.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・リソースの使用可能容量をタプルとして表す方法であって、
前記コンピューティング・リソース上にインストールされた１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組を取得するステップと、
前記１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組のうちの、他のコンポーネントに対するコンテナとして機能し得る各々の１つに対する前記使用可能容量を決定するステップと、
各コンテナに対する使用可能容量の集合を表すタプルを生成するステップと、
を含む前記方法。
【請求項２】
前記各コンテナは、少なくとも１つの物理リソース、仮想リソース、及び１つ又は複数のネスト化ソフトウェア・コンテナを含む、請求項１に記載の方法。
【請求項３】
アプリケーションにリソースを割り当てる方法であって、
前記アプリケーション及び関連するコンテナに関する依存性グラフの後順探査を容量要件と共に表す第１のデータ構造体を取得するステップと、
各リソースに使用可能容量を表すタプルが関連付けられる一組のリソースを表す第２のデータ構造体を取得するステップと、
前記依存性グラフのデータ構造体の前記リソースの組に対するマッピングを、前記使用可能容量に基づいて、前記一組のリソースのうちのリソースが前記アプリケーションに割り当てられるように、生成するステップと、
を含む前記方法。
【請求項４】
前記依存性グラフは、ソリューション・リポジトリ内にストアされ、そこから読み出され、前記読み出された依存性グラフは、前記ソリューション・リポジトリ内にストアされた所与のソリューションに関連付けられる、請求項３に記載の方法。
【請求項５】
前記後順探査は、前記所与のソリューションに関連する前記読み出された依存性グラフから生成される、請求項４に記載の方法。
【請求項６】
前記一組のリソースを表す前記第２のデータ構造体は、配備リポジトリ内にストアされ、そこから読み出される、請求項５に記載の方法。
【請求項７】
前記一組のリソースの各リソースは、前記依存性グラフの後順表示に従って探査され、所与のリソースは、そのリソースの使用可能容量が前記所与のソリューションに対する必要容量よりも大きいとき、マッピングされる、請求項６に記載の方法。
【請求項８】
前記所与のリソースの前記使用可能容量から前記必要容量を差し引くステップをさらに含む、請求項７に記載の方法。
【請求項９】
前記所与のリソースの十分な容量が使用可能でないとき、前記所与のソリューションに対する、前記所与のリソース及び任意の依存コンポーネントの検討が中断される、請求項８に記載の方法。
【請求項１０】
アプリケーションにリソースを割り当てるための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと、
を備え、
前記少なくとも１つのプロセッサは、前記アプリケーション及び関連するコンテナに関する依存性グラフの後順探査を容量要件と共に表す第１のデータ構造体を取得し、各リソースに使用可能容量を表すタプルが関連付けられる一組のリソースを表す第２のデータ構造体を取得し、そして前記依存性グラフのデータ構造体の前記一組のリソースへのマッピングを、前記使用可能容量に基づいて、前記一組のリソースのうちのリソースが前記アプリケーションに割り当てられるように、生成する、構成にされている、
前記装置。
【請求項１１】
前記依存性グラフは、ソリューション・リポジトリ内にストアされ、そこから読み出され、前記読み出された依存性グラフは、前記ソリューション・リポジトリ内にストアされた所与のソリューションに関連付けられる、請求項１０に記載の装置。
【請求項１２】
前記後順探査は、前記所与のソリューションに関連する前記読み出された依存性グラフから生成される、請求項１１に記載の装置。
【請求項１３】
前記一組のリソースを表す前記第２のデータ構造体は、配備リポジトリ内にストアされ、そこから読み出される、請求項１２に記載の装置。
【請求項１４】
前記一組のリソースの各リソースは、前記依存性グラフの後順表示に従って探査され、所与のリソースは、そのリソースの使用可能容量が前記所与のソリューションに対する必要容量よりも大きいとき、マッピングされる、請求項１３に記載の装置。
【請求項１５】
前記少なくとも１つのプロセッサは、前記所与のリソースの前記使用可能容量から前記必要容量を差し引くようにさらに構成される、請求項１４に記載の装置。
【請求項１６】
前記所与のリソースの十分な容量が使用可能でないとき、前記所与のソリューションに対する、前記所与のリソース及び任意の依存コンポーネントの検討が中断される、請求項１５に記載の装置。
【請求項１７】
コンピューティング・リソースの使用可能容量をタプルとして表すための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサと、
を備え、
前記少なくとも１つのプロセッサは、前記コンピューティング・リソースにインストールされた１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組を取得し、前記１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組のうちの、他のコンポーネントのコンテナとして機能し得る各々の１つに対する使用可能容量を決定し、そして各コンテナに対する使用可能容量の集合を表すタプルを生成する、構成にされている、
前記装置。
【請求項１８】
前記各コンテナは、少なくとも１つの物理リソース、仮想リソース、及び１つ又は複数のネスト化ソフトウェア・コンテナを含む、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ・ネットワーク管理に関し、より特定的には、階層化手法による容量に基づいたプロビジョニングを用いて、分散環境内の一組のリソースへのアプリケーション・コンポーネントのマッピングを供給する技術に関する。
【背景技術】
【０００２】
アプリケーションの設計及び配備に関してサービス指向アーキテクチャ（ＳＯＡ）に基づく手法の人気が高まると共に、複合企業アプリケーションを分散環境内の一組のリソースにわたってマッピング及び配備することが必要となる。マッピングのプロセスは、アプリケーション・コンポーネントを実行させるのに必要な必須のソフトウェアがリソース上にプリインストールされていること、及び、ソフトウェア・コンポーネントに割り当てられる物理リソースが、複合アプリケーションに関連するサービス内容合意書（ＳＬＡ）を損なわずにソフトウェア・コンポーネントをホストするのに必要な容量を有すること、を検証するステップを含む。さらに、各々の必須ソフトウェア・コンポーネントは、ソフトウェア・コンポーネント自体がインストール可能となる前に満たされる必要がある付加的な依存性を有する可能性がある。例えば、これらの依存性は、システム・ライブラリ、第三者ソフトウェア、及び／又はオペレーティング・システム・コンポーネントに対する依存性を含む。例えば、ＩＢＭのウェブスフィア・ポータル・サーバ（WebSphere Portal Server）はＩＢＭのウェブスフィア・アプリケーション・サーバ（WebSphere Application Server）のインストールを必要とする。（「ＩＢＭ」及び「WebSphere」は、ＩＢＭ社の登録商標）
【発明の概要】
【発明が解決しようとする課題】
【０００３】
分散環境における複合企業アプリケーションのマッピングに対する既存の手法は、直接的物理容量（例えば、メモリ、ネットワーク帯域幅、中央処理装置）を考慮に入れる。これらの手法の主な弱点は、マッピング決定を行う際にソフトウェア・コンポーネント特有の依存性を考慮できないことである。
【課題を解決するための手段】
【０００４】
本発明の原理は、階層化手法による容量に基づいたプロビジョニングを用いて、分散環境内の一組のリソースへのアプリケーション・コンポーネントのマッピングを供給する技術を提供する。
【０００５】
一実施形態における例証として、コンピューティング・リソースの使用可能容量をタプルとして表す方法は以下のステップを含む。コンピューティング・リソース上にインストールされた１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組が取得される。１つ又は複数のソフトウェア及びハードウェア・コンポーネントの組のうちの、他のコンポーネントのコンテナとして機能できる各々の１つに対する使用可能容量が決定される。各コンテナに対する使用可能容量の集合を表すタプルが生成される。コンテナは（ｉ）１つ又は複数の物理リソース、（ｉｉ）１つ又は複数の仮想リソース、及び（ｉｉｉ）１つ又は複数のネスト化ソフトウェア・コンテナ、のうちの少なくとも一つを含むことができる。
【０００６】
別の実施形態における、さらに別の例証として、リソースをアプリケーションに割り当てる方法は、以下のステップを含む。アプリケーション及び関連するコンテナに関する依存性グラフの後順探査を容量要件と共に表す第１のデータ構造体が取得される。各リソースに使用可能容量を表すタプルが関連付けられる一組のリソースを表す第２のデータ構造体が取得される。一組のリソースへの、依存性グラフのデータ構造体のマッピングが、使用可能容量に基づいて、一組のリソースのうちのリソースがアプリケーションに割り当てられるように生成される。
【０００７】
本発明のこれら及び他の目的、特徴、及び利点は、添付の図面に関連させて読まれるべき、例証的な実施形態の以下の詳細な説明から明白となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の例示的な実施形態を実施するのに用いることができるネットワーク・データ処理システムの図的記述を示す。
【図２】本発明の例示的な実施形態を実施するのに用いることができるデータ処理システムのブロック図を示す。
【図３】本発明の例示的な実施形態を実施するのに用いることができるサービス配布環境の略図を示す。
【図４】本発明の例示的な実施形態による、サンプル・アプリケーションのリソース依存性特性を含む論理アプリケーション構造体の一実施例を示す。
【図５】本発明の例示的な実施形態による、配置コントローラ・コンポーネントの論理アーキテクチャを示す。
【図６】本発明の例示的な実施形態による、分散環境内の一組のリソースへの複合ビジネス・ソリューション（ＣＢＳ）のマッピングを決定するのに、配置コントローラがたどるステップを示す。
【図７】本発明の例示的な実施形態による、ソリューション・リポジトリにストアされた各ソリューションに関連するメタデータのデータ構造体を示す。
【図８】本発明の例示的な実施形態による、インストール可能な各ソフトウェア・コンポーネントに関する要件を示す。
【図９】本発明の例示的な実施形態による、初めにノードにインストールされるときの各コンポーネントの最大使用可能容量を示すデータ構造体を示す。
【図１０】本発明の例示的な実施形態による、インストールされたソフトウェア・スタック、及び配備リポジトリ内にストアされた各コンポーネントに対する使用可能容量を示す。
【発明を実施するための形態】
【０００９】
以下に、本発明の実施形態を添付の図面を参照しながら説明する。本明細書で説明する本発明の例示的な実施形態は、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサ、又はそれらの組合せの種々の形態で実施できることを理解されたい。本発明の例示的な実施形態は、もっぱらハードウェアの実施形態、もっぱらソフトウェアの実施形態、又はハードウェア要素とソフトウェア要素の両方を含む実施形態の形を取ることができる。例示的な実施形態は、例えば、命令のプログラムを実行することができるコンピュータのような機械により可読の、コンピュータ・ハード・ディスク・ドライブ、ＣＤ−ＲＯＭ（コンパクトディスク読取り専用メモリ）ドライブ、及び取外し可能媒体、例えばＣＤ、ＤＶＤ（デジタル多用途ディスク又はデジタル・ビデオ・ディスク）、ユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、フロッピー・ディスク、ディスケット及びテープ、のような１つ又は複数のプログラム記憶デバイス上に有形に具体化されたアプリケーション・プログラムとしてソフトウェア内に実装することができる。アプリケーション・プログラムは、任意の適切なアーキテクチャを備えた命令実行システム、装置又はデバイスにアップロードし、それにより実行することができる。さらに、添付の図面に示した本発明の例示的な実施形態はソフトウェア内に実装することができるので、システム・コンポーネント間の実際の接続（又はプロセス・ステップのフロー）は、アプリケーションがプログラムされる仕方に依存して異なり得ることを理解されたい。
【００１０】
本明細書で用いる熟語「コンピューティング・リソース」は一般に、ソフトウェア命令を実行するためのコンピュート・サイクルを供給するエンティティを指す。さらに、本明細書で用いる「リソース」は一般に、複合ビジネス（企業）ソリューション（又は以下に説明するＣＢＳ）により要求される可能性がある、例えば、ハードウェア、ソフトウェア、ネットワーク、ディスク機能などを表す種々のエンティティを指す。即ち、以下に説明する実施形態の説明用語により、リソースは、サービス（即ち、ソリューション）をホストする機能をもたらすコンテナと定義することができ、従ってコンピューティング・リソースはサービス（ソリューション）をホストするためのコンピュート機能を提供する。
【００１１】
さらに、本明細書で用いる「ソフトウェア・コンポーネント」は、それをホストするコンテナからのある容量を必要とするソリューションの成分を指す。コンポーネントの配備されたインスタンスは、そのコンテナからの容量を消費し、次に１つ又は複数の他のコンポーネントのコンテナとして機能することができる。「ハードウェア・コンポーネント」はコンピュータ・システムの容量に寄与する物理リソースを指す。本明細書で用いる、コンポーネントの「ターゲット」は、そのコンポーネントがホストされるコンテナとなる。
【００１２】
本発明の原理の例証的な実世界の用途において、それにより決定されるリソース割当てはデータ・センターにおいて用いることができることを認識されたい。例えば、顧客用のアプリケーションをデータ・センターにおいてホストする必要があるとき、システム管理者は、そのアプリケーションのソフトウェア・コンポーネントをホストすることができるサーバを識別する必要がある。システム管理者が新しい（以前には配備されていない）ハードウェアをアプリケーションに割り当てる場合には、リソース割当てを行う必要はない。しかしこの手法の欠点は、ハードウェアが共用されないときホスティング・コストが高くなることである。システム管理者が現在配備されているハードウェア・リソースからハードウェアを識別する必要があるとき、本発明のリソース割当て技術は、システム管理者がソフトウェア・アプリケーションの要件を満たすハードウェアを識別するのに役立つであろう。これは、ハードウェア及びソフトウェアが今度は複数の顧客にわたって共用されるので、コストを低下させる。
【００１３】
さらに別の実施例として、以下に本発明の原理を適用できる実世界の用途を説明する。
【００１４】
ＩＢＭロータス・コネクション（IBM Lotus Connections）は、「ブログ」、「プロファイル」、「アクティビティ」、「ドッグイア」及び「コンミュニティ」のような複数の独立コンポーネントを含む共同ソリューションである。次にこれらのコンポーネントは、「アプリケーション・サーバ」、「データベース・サーバ」、「ディレクトリ・サーバ」、及び「ウェブ・サーバ」のような他のソフトウェア・コンテナによって供給されるサービスに依存する。これらのコンテナの各々は、容量を定義するそれら特有のアトリビュートを有し、例えば、ディレクトリ・サーバは、ユーザ／グループ・エントリの数及びそれらの詳細度、及び／又は、それがサポートすることのできる時間間隔毎のクエリの数及び種類によって容量を定義することができる。さらに、Web 2.0マッシュアップ（ Mashup）アプリケーションは、２つ又はそれ以上の独立コンポーネント・サービスによって提供されるサービスを組み合せて統合サービスにする。企業マッシュアップ（mashup）アプリケーションはその一例であり、企業の雇用者組織情報をロケーション／マップ・サービスと組み合せて組織結合性サービスを提供するものである。
【００１５】
図１は、本発明の例示的な実施形態を実施するのに用いることができるネットワーク・データ処理システムの図的記述を示す。ネットワーク・データ処理システム１００は、コンピュータのネットワークを含み、これは任意の適切なコンピュータを用いて実現することができる。ネットワーク・データ処理システム１００は、例えば、パーソナル・コンピュータ、ワークステーション又はメインフレームを含むことができる。ネットワーク・データ処理システム１００には、ネットワーク上の各コンピュータ又はプロセッサがクライアント又はサーバとなるクライアント・サーバ・ネットワーク・アーキテクチャを用いることができる。
【００１６】
ネットワーク・データ処理システム１００は、ネットワーク１０２を含み、これはネットワーク・データ処理システム１００内の、種々のデバイス及びコンピュータの間の通信リンクを設けるのに用いられる媒体である。ネットワーク１０２は様々な接続、例えば、有線、無線通信リンク、光ファイバ・ケーブル、電話及び／又は他の通信リンクにより形成される接続を含むことができる。
【００１７】
様々なサーバ、クライアント及び他のデバイスをネットワーク１０２に接続することができる。例えば、図１に示すように、記憶装置１０８及びクライアント１１０、１１２及び１１４と共に、サーバ１０４及びサーバ１０６をネットワーク１０２に接続することができる。記憶装置１０８は、種々の型の記憶媒体、例えば、コンピュータ・ハードディスク・ドライブ、ＣＤ−ＲＯＭドライブ、及び／又は、ＣＤ、ＤＶＤ、ＵＳＢドライブ、フロッピー・ディスク、ディスケット及び／又はテープのような取外し可能媒体、を含むことができる。クライアント１１０、１１２及び１１４は、例えば、パーソナル・コンピュータ及び／又はネットワーク・コンピュータとすることができる。
【００１８】
クライアント１１０はパーソナル・コンピュータとすることができる。クライアント１１０は、処理装置及びメモリ・デバイス、ビデオ・ディスプレイ・ターミナル、キーボード、記憶デバイス、例えば、フロッピ・ドライブ及び他の型の固定又は取外し可能記憶媒体、並びに、マウスのようなポインティング・デバイスを含むシステム装置を備えることができる。付加的な入力デバイス、例えば、ジョイスティック、タッチパッド、タッチスクリーン、トラックボール、マイクロフォンなどをクライアント１１０に含めることができる。
【００１９】
クライアント１１０、１１２及び１１４は、例えば、サーバ１０４に対するクライアントとすることができる。サーバ１０４は、起動ファイル、オペレーティング・システムのイメージ、及びアプリケーションのようなデータを、クライアント１１０、１１２及び１１４に供給することができる。ネットワーク・データ処理システム１００は図示しない他のデバイスを含むことができる。
【００２０】
ネットワーク・データ処理システム１００は、ネットワーク１０２を有するインターネットを含むことができ、ここでネットワーク１０２は、相互に通信するためのプロトコルの通信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートを用いるネットワーク及びゲートウェイのワールドワイドの集合を表す。インターネットは、多数の商用、行政用、教育用又は他のコンピュータ・システムから成る多重ノード又はホスト・コンピュータの間の、データ及びメッセージを送る高速データ通信ラインのバックボーンを含む。
【００２１】
ネットワーク・データ処理システム１００は、任意の適切な型のネットワーク、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）として実施することができる。図１のネットワーク・データ処理要素の図的記述は、一実施例として意図したものであり、本発明の実施形態のアーキテクチャ上の限定を意図したものではない。
【００２２】
図２は、本発明の例示的な実施形態を実施するのに用いることができるデータ処理システムのブロック図である。データ処理システム２００は、図１のサーバ１０４又はクライアント１１０のようなコンピュータの一実施例であり、その中に本発明の実施形態のプロセスを実行するコンピュータ使用可能コード又は命令を配置することができる。
【００２３】
図示した実施例において、データ処理システム２００には、ノースブリッジ及びメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２、及びサウスブリッジ及び入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含むハブ・アーキテクチャが用いられている。１つ又は複数のプロセッサ、主メモリ２０８、及びグラフィック・プロセッサ２１０を含む処理装置２０６は、ノースブリッジ及びメモリ・コントローラ・ハブ２０２に結合される。グラフィック・プロセッサ２１０は加速グラフィック・ポート（ＡＧＰ）を通じてＮＢ／ＭＣＨ  ２０２に結合することができる。データ処理システム２００は、例えば、処理装置２０６内に複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ）システムとすることができる。データ処理システム２００は、単一プロセッサ・システムとすることもできる。
【００２４】
図示した実施例において、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２はサウスブリッジ及びＩ／Ｏコントローラ・ハブ２０４に結合される。音声アダプタ２１６、キーボード及びマウス・アダプタ２２０、モデム２２２、読取り専用メモリ（ＲＯＭ）２２４、ユニバーサル・シリアル・バス（ＵＳＢ）ポート及び他の通信ポート２３２、並びにＰＣＩ／ＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）デバイス２３４が、バス２３８を通じてサウスブリッジ及びＩ／Ｏコントローラ・ハブ２０４に結合され、ハードディスク・ドライブ（ＨＤＤ）２２６及びＣＤ−ＲＯＭドライブ２３０がバス２４０を通じてサウスブリッジ及びＩ／Ｏコントローラ・ハブ２０４に結合される。
【００２５】
ＰＣＩ／ＰＣＩｅデバイスの例には、イーサネット・アダプタ、アドイン・カード、及びノートブック・コンピュータ用のＰＣカードが含まれる。一般に、ＰＣＩはカード・バス・コントローラを用い、一方ＰＣＩｅは用いない。ＲＯＭ２２４は、例えば、フラッシュ・バイナリ入力／出力システム（ＢＩＯＳ）とすることができる。ハードディスク・ドライブ２２６及びＣＤ−ＲＯＭドライブ２３０は、例えば、統合ドライブ・エレクトロニクス（ＩＤＥ）又はシリアル先端技術取付け（ＳＡＴＡ）インターフェースとすることができる。スーパーＩ／Ｏ（ＳＩＯ）デバイス２３６は、サウスブリッジ及びＩ／Ｏコントローラ・ハブ２０４に結合することができる。
【００２６】
オペレーティング・システムは、処理装置２０６上で動作することができ、データ処理システム２００内の種々のコンポーネントの制御を調整し供給する。例えば、オペレーティング・システムは、マイクロソフト（登録商標）ウィンドウズ（登録商標）ＸＰ（マイクロソフト及びウィンドウズは、米国、他の国、又は両方におけるマイクロソフト社の商標又は登録商標である）のような市販のオペレーティング・システムとすることができる。ジャバ（登録商標）プログラミング・システムのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に動作することができて、データ処理システム２００上で実行中のジャバ・プログラム又はアプリケーションからオペレーティング・システムに対する呼び出しを行う（ジャバ及び全てのジャバ・ベースのマークは、米国、他の国、又は両方におけるサン・マイクロシステムズ社の商標又は登録商標である）。
【００２７】
オペレーティング・システムに関する命令、オブジェクト指向プログラミング・システム、アプリケーション及び／又は命令のプログラムは、例えばハードディスク・ドライブ２２６のような記憶デバイス上に配置され、処理装置２０６による実行のために主メモリにロードすることができる。本発明の例示的な実施形態のプロセスは、処理装置２０６によりコンピュータ使用可能プログラム・コードを用いて実行することができ、そのプログラム・コードは、例えば主メモリ２０８、読取り専用メモリ２２４のようなメモリ内に、又は、１つ又は複数の周辺デバイス内に配置することができる。
【００２８】
図１及び図２に図示したハードウェアは、実施に応じて変更し得ることを認識されたい。他の内部ハードウェア又は周辺デバイス、例えば、フラッシュ・メモリ、同等の不揮発性メモリ、又は光ディスク・ドライブなどを、図示したハードウェアに加えて、又はその代りに用いることができる。本発明の実施形態のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
【００２９】
データ処理システム２００は、種々の形態をとることができる。例えば、データ処理システム２００は、タブレット・コンピュータ、ラップトップ・コンピュータ、又は電話機とすることができる。データ処理システム２００は、例えば、携帯情報端末（ＰＤＡ）とすることができ、これは、オペレーティング・システム・ファイル及び／又はユーザ生成データをストアするための不揮発性メモリを設けるためにフラッシュ・メモリで構成することができる。データ処理システム２００内のバス・システムは、システム・バス、Ｉ／Ｏバス及びＰＣＩバスのような１つ又は複数のバスを含むことができる。バス・システムは、任意の型の通信ファブリック又はアーキテクチャを用いて、ファブリック又はアーキテクチャに結合された種々のコンポーネント又はデバイスの間のデータ転送をもたらすように実施することができることを理解されたい。通信ユニットは、モデム２２２又はネットワーク・アダプタ２１２のような、データを送信及び受信するのに用いる１つ又は複数のデバイスを含むことができる。メモリは、例えば、主メモリ２０８、ＲＯＭ２２４、又はノースブリッジ及びメモリ・コントローラ・ハブ２０２内に見出されるようなキャッシュとすることができる。処理装置２０６は、１つ又は複数のプロセッサ又はＣＰＵを含むことができる。
【００３０】
本発明の例示的な実施形態による、自動プロビジョニングの方法は、図１に示すデータ処理システム１００又は図２に示すデータ処理システム２００のようなデータ処理システム内で実行することができる。
【００３１】
プログラム記憶デバイスは、命令実行システム、装置又はデバイスにより又はそれと共に用いる命令のプログラムを収容し、ストアすることができ、又は輸送するのに用いることができる任意の媒体とすることができる。媒体は、例えば、電子、磁気、光学、又は半導体システム（又は装置又はデバイス）、或いは、伝搬媒体とすることができる。プログラム記憶デバイスの例には、半導体又は固体メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読取り専用メモリ）、剛性磁気ディスク、並びに、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ及びＤＶＤのような光ディスクが含まれる。
【００３２】
命令のプログラムをストア及び／又は実行するのに適したデータ処理システムは、直接に又はシステム・バスを通じて間接にメモリ要素に結合された１つ又は複数のプロセッサを含むことができる。メモリ要素は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量記憶装置、及び、実行中に大容量記憶装置からコードを読み出さなければならない回数を減らすように少なくとも幾つかのプログラム・コードの一時記憶をもたらすキャッシュ・メモリを含むことができる。
【００３３】
データ処理システム２００は、例えば、キーボード、ディスプレイ及びポインティング・デバイスのような入力／出力（Ｉ／Ｏ）デバイスを含むことができ、これらは直接に又は介在するＩ／Ｏコントローラを通じてシステムに結合することができる。またネットワーク・アダプタをシステムに結合して、データ処理システムが他のデータ処理システム又は遠隔プリンタ若しくは記憶デバイスに、介在するプライベート又はパブリック・ネットワークを通じて結合できるようにすることができる。ネットワーク・アダプタは、それらに限定されないが、モデム、ケーブル・モデム及びイーサネット・カードを含むことができる。
【００３４】
図３は、本発明の例示的な実施形態を実施するのに用いることができるサービス配布環境の略図を示す。図３を参照すると、サービス配布環境３００は、物理サーバ３０２、ＤＭＺ（非武装地帯）３０６、及び管理サーバ３１２を含む。用語「非武装地帯」又は頭字語「ＤＭＺ」は、組織の内部ネットワークとインターネットのような外部ネットワークとの間に位置するネットワーク領域を指す。
【００３５】
インターネット又はイントラネットからのユーザ要求はルータ・デバイスにより受信される。例えば、ルータ・デバイスはＤＭＺ３０６内に配置することができる。ルータ・デバイスは、ＩＢＭのウェブシール（WebSeal）製品のような逆プロキシによって実施することができる。
【００３６】
ユーザ要求はネットワーク３０８を介して、サーバ・ファーム３０２上で動作する実（物理）又は仮想マシーン３１０の集合上にホストされるプロビジョニング・ソリューソンに向けることができる。サーバ・ファーム３０２を管理するのに用いることができる管理サーバ３１２は、ネットワーク３０８を介して物理サーバ３０２に結合される。管理サーバ３１２は、システム管理者３０４によりサーバ・ファームを管理しモニタするのに用いることができる。管理サーバ３１２上で動作するソフトウェアは、ソフトウェア・メータリング、アプリケーション・プロビジョニング、全ての（又は選択された）アプリケーションのモニタリング、及びサーバ・ファームの問題検出のような種々のタスクを支援することができる。
【００３７】
図４は、本発明の例示的な実施形態による、サンプル・アプリケーションのリソース依存性特性を含む論理アプリケーション構造体の一実施例を示す。図４を参照すると、例示的な論理アプリケーション構造体は、サンプル・アプリケーションのリソース依存性特性を含む依存性グラフである。しかし、任意の適切な論理アプリケーション構造体を用いることができることを理解されたい。
【００３８】
依存性グラフは、種々のコンポーネントの間の関係及び依存性を強調する拡張マークアップ言語（ＸＭＬ）ファイルとして表すことができる。図４に示した実施例において、「ローン・ソリューション」４２２は、３つのコンポーネント、即ち、ウェブスフィア・ポータル・サーバ（WebSphere Portal Server）４２４、ウェブスフィア・プロセス・サーバ（WebSphere Process Server）４３０及びＤＢ２サーバ４３４の使用可能性に大きく依存する。ウェブスフィア・ポータル・サーバ４２４はウェブスフィア・アプリケーション・サーバ（WebSphere Application Server）４２６及びＤＢ２クライアント４２８の使用可能性に依存する。ウェブスフィア・プロセス・サーバはＤＢ２クライアント４３２及びウェブスフィア・アプリケーション・サーバ４３６に依存する。（「ＤＢ２」は、ＩＢＭ社の登録商標）
【００３９】
図５は、配置コントローラ・コンポーネントの論理アーキテクチャを示す。このアーキテクチャは、ソリューション・リポジトリ（５０４）及び配備リポジトリ（５０６）から構成される。ソリューション・リポジトリは、各複合企業ソリューションに関するメタデータ及び依存性グラフを含む。メタデータは、ソリューション依存性グラフ内の各ソフトウェア・コンポーネントの必須の容量必要量を含む。配備リポジトリは、各リソースに関連する全使用可能容量と共に、物理リソースに配備されたソフトウェア・コンポーネントのマッピングを含む。また、以下に説明するプロビジョニング・マネージャ５０８が図示されている。
【００４０】
図６は、分散環境内の一組のコンピューティング・リソースへの複合ビジネス（企業）ソリューション（ＣＢＳ）のマッピングを決定するのに、配置コントローラが行うステップを示す。ステップ６０２において、配置コントローラはＣＢＳの名前を入力として取り込む。ステップ６０４において、配置コントローラは、ソリューション・リポジトリからＣＢＳに関する依存性グラフを読み出す。依存性グラフはソリューション・リポジトリ内にＣＢＳメタデータの部分としてストアされる。配置コントローラは、ステップ６０６において、依存性グラフの後順探査を生成する。配備リポジトリ内の情報を用いて、配置コントローラは、ＣＢＳに対する一組の候補ターゲットに関する仕様を読み出す。この仕様は、特定のターゲット上で使用可能なソフトウェア及びハードウェア・コンポーネントの各々に関する使用可能な容量の表示である。
【００４１】
ステップ６０８において、配置コントローラは、依存性グラフの後順表示内の全てのコンポーネントにわたって繰り返し、そのソフトウェア・コンポーネントに対する使用可能な容量がＣＢＳコンポーネントに対する必要容量よりも大きい場合、コンポーネントをマッピングする（６１２）。ステップ６１４において、必要容量がソフトウェア・コンポーネントの使用可能な容量から差し引かれる。ステップ６２０において十分な容量が使用可能でない場合、依存コンポーネントのマッピングは中断され、そのターゲットがこのＣＢＳコンポーネントに対する検討から除去される。ステップ６１６において、全てのＣＢＳコンポーネントが有効なターゲットにマッピングされたとき、アルゴリズムは推奨マッピングを完成する。用語「有効な」は一般に識別されたターゲットがＣＢＳコンポーネントの要件（即ち、容量、ＣＰＵなど）を満たす状態を指すことを認識されたい。
【００４２】
図７は、ソリューション・リポジトリ（７０２）にストアされた各ソリューションに関連するメタデータのデータ構造体を示す。メタデータはソリューション・コンポーネントのインスタンスをインストールするための要件を表す。
【００４３】
図８は、インストールすることができる各ソフトウェア・コンポーネントに関する要件を示す。各データ構造体（表７０４、７０６、７０８、７１０及び７１２）は各コンポーネントの他のコンポーネントに対する依存性を表す。
【００４４】
図９は、各コンポーネントが初めにノード上にインストールされるとき、各コンポーネントの最大使用可能容量を示すデータ構造体（表８０２、８０４、８０６、８０８、８１０及び８１２）を示す。これらのデータ構造体は配備リポジトリ内にストアされる。配置コントローラは、ソフトウェア・コンポーネントがリソースにマッピングされるたびに、必要容量を最大使用可能容量から差し引く。
【００４５】
表９０２、９０４、９０６及び９０８により、図１０は、インストールされたソフトウェア・スタック、及び配備リポジトリ内にストアされた各コンポーネントに対する使用可能容量を示す。例えば、図４の複合アプリケーションを、図６に概説したステップを用いてマッピングする。依存性グラフの後順探査は、文字ＡからＧまでが図４の依存性グラフ内のノードを表すものとして、シーケンスＡＣＢＤＥＦＧを生成する。リソース・プールには４つのサーバＳ１、Ｓ２、Ｓ３、及びＳ４がある。アルゴリズム識別器は後順探査において第１のノードから開始し、サーバＳ１がＡの要件を満たすときＡをサーバＳ１にマッピングする。同じ論理を用いてアルゴリズムはまたノードＣをサーバＳ１にマッピングする。ノードＢの依存性及び使用可能容量の要件が満たされるので、アルゴリズムはノードＢをサーバＳ１にマッピングする。ノードＡ、Ｃ及びＢをサーバＳ１にマッピングしたので、配置コントローラは、サーバＳ１に関する使用可能容量を、ノードＡ、Ｃ及びＢの必要量の合計だけ減少させる。次に配置コントローラはノードＤを検討し、全てが要件を満たすのに使用可能な適切な容量を有するＳ１、Ｓ２、Ｓ３に、ターゲット・リソースを限定する。例えば、配置コントローラがノードＤに対してＳ１を選択する場合、ウェブスフィア・アプリケーション・サーバの要求を満足するのに十分な容量がサーバＳ１上で使用可能でないとき、ノードＥをＳ１にマッピングするのに失敗することになる。その場合アルゴリズムはノードＤ及びＥをサーバＳ２に再マッピングすることになる。最後に、Ｓ３がインストールされたＤＢ２サーバを有し、ＤＢ２サーバをホストするのに十分な容量が使用可能であるとき、ノードＧがＳ３にマッピングされる。ここで全てのノードがリソースにマッピングされ、配置コントローラはステップを完了する。ターゲット・リソース上にインストールされていない任意のソフトウェア・コンポーネントは、推奨マッピングに基づいてプロビジョニング・マネージャにより自動的にインストールされる。
【００４６】
本明細書において、本発明の例証的な実施形態を添付の図面を参照しながら説明したが、本発明はそれらの通りの実施形態には限定されず、当業者であれば、本発明の趣旨及び範囲から逸脱せずに種々の他の変更及び修正を施すことができることを理解されたい。
【符号の説明】
【００４７】
１００：ネットワーク・データ処理システム
１０２：ネットワーク
１０４、１０６：サーバ
１０８：記憶装置
１１０、１１２、１１４：クライアント
２００：データ処理システム
２０２：ノースブリッジ及びメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）
２０４：サウスブリッジ及び入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）
２０６：処理装置
２０８：主メモリ
２１０：グラフィック・プロセッサ
２１２：ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ
２１６：音声アダプタ
２２０：キーボード及びマウス・アダプタ
２２２：モデム
２２４：読取り専用メモリ（ＲＯＭ）
２２６：ハードディスク・ドライブ
２３０：ＣＤ−ＲＯＭドライブ
２３２：ユニバーサル・シリアル・バス（ＵＳＢ）ポート及び他の通信ポート
２３４：ＰＣＩ／ＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）デバイス
２３８、２４０：バス
３００：サービス配布環境
３０２：物理サーバ（サーバ・ファーム）
３０４：システム管理者
３０６：ＤＭＺ（非武装地帯）
３０８：ネットワーク
３１０：仮想マシーン
３１２：管理サーバ
４２２：ローン・ソリューション
４２４：ウェブスフィア・ポータル・サーバ（WebSphere Portal Server）
４２６、４３６：ウェブスフィア・アプリケーション・サーバ（WebSphere Application Server）
４２８，４３２：ＤＢ２クライアント
４３０：ウェブスフィア・プロセス・サーバ（WebSphere Process Server）
４３４：ＤＢ２サーバ
５０２：配置コントローラ
５０４：ソリューション・リポジトリ
５０６：配備リポジトリ
５０８：プロビジョニング・マネージャ
７０２：ソリューション・リポジトリ
７０４、７０６、７０８、７１０、７１２：表
８０２、８０４、８０６、８０８、８１０、８１２：表
９０２、９０４、９０６、９０８：表
【図１】
2010049688.tif 000003
【図２】
2010049688.tif 000004
【図３】
2010049688.tif 000005
【図４】
2010049688.tif 000006
【図５】
2010049688.tif 000007
【図６】
2010049688.tif 000008
【図７】
2010049688.tif 000009
【図８】
2010049688.tif 000010
【図９】
2010049688.tif 000011
【図１０】
2010049688.tif 000012