(57)【特許請求の範囲】
【請求項１】
少なくとも１つの資源を管理する資源管理装置と、複数の業務管理装置であってそれぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する業務管理装置とを備え、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分システムにおいて、
前記資源管理装置は、
１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分手段と、
前記配分手段により過去に実行された資源の再配分に関する履歴を参照し、前記配分手段が、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出するループ検出手段とを備え、
前記配分手段は、前記ループ検出手段が前記ループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、該再配分の対象から除外することを特徴とする分散資源配分システム。
【請求項２】
前記業務管理装置は、前記資源提供要求を生成して前記資源管理装置に発行する資源要求処理手段と、前記資源提供要求に応答して前記資源管理装置から通知された複数の資源候補から、１つ以上の資源を選択して前記資源管理装置に通知する資源獲得決定手段と、業務で使用中の資源について前記資源管理装置から資源解放要求を受信すると、該資源解放要求に同意するか否かを決定する資源解放決定手段とを備える、請求項１に記載の分散資源配分システム。
【請求項３】
前記資源要求処理手段は、前記資源提供要求の生成に際して、システム内の資源のＩＤと該資源の稼働状況とを対応付けた情報を参照し、現在空き状態にある資源を優先して選択する、請求項２に記載の分散資源配分システム。
【請求項４】
前記配分手段は、対象とする業務に必要最低限を満たす資源が既に配分されており、かつ、管理する資源に空き資源が存在しない場合には、前記対象とする業務に資源を再配分しない、請求項１〜３の何れか一に記載の分散資源配分システム。
【請求項５】
前記資源解放決定手段は、前記資源解放要求の対象資源が配分された業務に対して余剰な資源が配分されている場合に、当該余剰な部分についての資源の解放に同意する、請求項２〜４の何れか一に記載の分散資源配分システム。
【請求項６】
少なくとも１つの資源を管理する資源管理装置と、それぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する複数の業務管理装置とを用い、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分方法において、
前記資源管理装置が、１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分ステップと、
前記資源管理装置が、前記配分ステップにより過去に実行された資源の再配分に関する履歴を参照し、前記配分ステップにおいて、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出するステップと、
前記資源管理装置が、前記検出するステップで前記ループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、前記配分ステップにおける再配分の対象から除外するステップと、を有することを特徴とする分散資源配分方法。
【請求項７】
前記業務管理装置が、前記資源提供要求を生成して前記資源管理装置に発行するステップと、
前記業務管理装置が、前記資源提供要求に応答して前記資源管理装置から通知された複数の資源候補から、１つ以上の資源を選択して前記資源管理装置に通知するステップと、
前記業務管理装置が、業務で使用中の資源について前記資源管理装置から資源解放要求を受信すると、該資源解放要求に同意するか否かを決定するステップと、
を備える、請求項６に記載の分散資源配分方法。
【請求項８】
前記業務管理装置は、前記資源提供要求の生成に際して、システム内の資源のＩＤと該資源の稼働状況とを対応付けた情報を参照し、現在空き状態にある資源を優先して選択する、請求項７に記載の分散資源配分方法。
【請求項９】
前記資源管理装置は、対象とする業務に必要最低限を満たす資源が既に配分されており、かつ、管理する資源に空き資源が存在しない場合には、前記対象とする業務に資源を再配分しない、請求項６〜８の何れか一に記載の分散資源配分方法。
【請求項１０】
前記業務管理装置は、前記資源解放要求に同意するか否かを決定するステップでは、前記資源解放要求の対象資源が配分された業務に対して余剰な資源が配分されている場合に、当該余剰な部分についての資源の解放に同意する、請求項７〜９の何れか一に記載の分散資源配分方法。
【請求項１１】
少なくとも１つの資源を管理する資源管理装置と、それぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する複数の業務管理装置とを備え、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分システムのためのプログラムであって、前記資源管理装置を構成するコンピュータに、
１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分処理と、
前記配分処理により過去に実行された資源の再配分に関する履歴を参照し、前記配分処理において、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出する処理と、
前記検出する処理でループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、前記配分処理における再配分の対象から除外する処理と、を実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、前記資源管理装置に、対象とする業務に必要最低限を満たす資源が既に配分されており、かつ、管理する資源に空き資源が存在しない場合には、前記対象とする業務に資源を再配分しないと決定させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散資源配分システム、分散資源配分方法およびプログラムに関し、特に、資源の需要変動に基づいて動的に資源配分を変更できる分散資源配分システム、分散資源配分方法および分散資源配分システム用のプログラムに関する。
【背景技術】
【０００２】
分散資源計算機システムでは、ネットワークを介して利用可能な複数の分散資源を有効に活用するために、各業務への資源の配分を管理する資源管理装置を有する分散資源配分システムが用いられている。従来の分散資源配分システムの一例が、特許文献１に記載されている。このシステムを図２７に示した。分散資源配分システムは、ネットワークに接続された複数の資源管理装置１００、複数のユーザ端末４００から投入されるジョブ（業務）のスケジュールを管理する複数のジョブスケジューラ（業務管理装置）２００、および、各資源管理装置１００の管理下にある資源群３００から構成される。この従来技術では、ジョブスケジューラ２００は、まず、資源管理装置１００に対して、計算機資源に対する一時的な利用権を獲得する操作（仮予約）を行う。
【０００３】
その後、ジョブスケジューラ２００は、実際に獲得する資源と予約する時間帯とを決定し、資源管理装置１００に対して仮予約の確定操作を行う。ここで、獲得の対象となる資源は、既にジョブスケジューラ２００により仮予約された資源であり、かつ予約する時間帯は、仮予約された時間帯（またはその一部）である。
【０００４】
上記従来技術の分散資源配分システムでは、資源利用のための予約を、仮予約と予約確定との２段階に分けて行うことにより、複数の管理ドメインに分散した資源を、より適切な組み合わせで獲得することを可能にしている。
【特許文献１】特開２００４−３０２７４８号公報（図５）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ここで、コンピュータやストレージ、ファイアウォールなどの計算機資源（以下、単に資源と呼ぶ）が複数の管理ドメインに分割された分散型資源管理システムについて、複数の業務管理者が必要に応じ、オンデマンドで資源を利用するという状況を仮定する。この状況での資源の利用には、新規の業務を遂行するために新たに資源の利用を開始する場合と、遂行中の業務について利用する資源を増減する場合の双方を含む。特許文献１の従来技術では、この状況下では、資源配分は、以下のような手順で行われる。まず、業務管理者が、業務管理装置に対して、業務に割り当てる資源の利用や増減を指示する。次いで、各管理ドメインに設置した資源管理装置が、業務管理装置からの指示に基づいて、業務に割り当てる資源の利用や増減を決定する。
【０００６】
しかし、上記手順に従うと、先に需要が発生した業務に優先して資源を割り当てることから、以下の双方の性能を同時に満たす分散資源配分システムを実現することが出来ないという問題がある。
(a)業務遂行に必要な資源が物理的に存在する場合には、すべての業務が、業務遂行に必要な最低限の資源量を利用することができる。
(b)業務管理者が、業務遂行に必要な最低限の資源量を超えて資源を利用したいと判断し、かつシステム内に空き資源がある場合には、その空き資源を利用することができる。
【０００７】
つまり、仮に、すべての業務が必要最低限の資源量しか要求しないとすると、(a)の性能は満たされるものの、必要最低限を超えた資源量を業務に割り当てることはできないため、(b)の性能は満たされない。一方、最低限を超えた資源量に対する要求を許容した場合には、（ｂ）の性能は満たされるものの、後続の要求に対しては最低限の資源量さえ割り当てられないという事象が発生し、（ａ）の性能が満たされない。
【０００８】
上記問題を解決する方法の１つは、分散資源配分システムに「資源再配分」の機能を追加することである。資源再配分とは、以前にある業務に割り当てた資源を、別の業務に割り当てる操作を指す。特に、最低限の資源量を超えて資源を割り当てられた業務から、資源の割り当てが最低限に満たない業務に資源を再配分することにより、すべての業務に対して、必要最低限の資源量を割り当てることが可能になる。
【０００９】
ところで、必要最低限の資源量を超えた資源について、業務間での資源再配分を許容すると、資源再配分のループという事象が発生する可能性がある。資源再配分のループとは、複数の業務間で資源の再配分を循環的に繰り返すことにより、資源配分が収束しない状況を指す。資源再配分は、資源に対する構成変更（プログラムの配布、起動、停止など）を伴うため、資源再配分のループが発生すると、構成変更のために資源が無駄に使われるという結果になる。
【００１０】
上記に鑑み、本発明は、システム内に必要な資源量が存在する限り、すべての業務に必要最低限の資源量を割り当てることを可能にし、かつ最低限の資源量を超えた大きな資源量の需要のある業務に対しては余剰資源を提供することを可能にする分散資源配分システム、分散資源配分方法及び分散資源配分プログラムを提供することを目的とする。
【００１１】
更に、本発明は、上記目的を達成した上で、資源再配分のループが発生しない分散資源配分システムを提供することをも目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の第１の観点に係る分散資源配分システムは、少なくとも１つの資源を管理する資源管理装置と、複数の業務管理装置であってそれぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する業務管理装置とを備え、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分システムにおいて、
前記資源管理装置は、１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分手段と、前記配分手段により過去に実行された資源の再配分に関する履歴を参照し、前記配分手段が、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出するループ検出手段とを備え、前記配分手段は、前記ループ検出手段が前記ループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、該再配分の対象から除外することを特徴とする。
【００１３】
また、本発明の第２の観点に係る分散資源配分方法は、少なくとも１つの資源を管理する資源管理装置と、それぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する複数の業務管理装置とを用い、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分方法において、
前記資源管理装置が、１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分ステップと、前記資源管理装置が、前記配分ステップにより過去に実行された資源の再配分に関する履歴を参照し、前記配分ステップにおいて、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出するステップと、前記資源管理装置が、前記検出するステップで前記ループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、前記配分ステップにおける再配分の対象から除外するステップと、を有することを特徴とする。
【００１４】
更に、本発明の第３の観点に係るプログラムは、少なくとも１つの資源を管理する資源管理装置と、それぞれが業務に必要な資源について少なくとも前記資源の種別を指定した資源提供要求を前記資源管理装置に送信する複数の業務管理装置とを備え、前記資源管理装置によって前記業務管理装置に資源を配分する分散資源配分システムのためのプログラムであって、前記資源管理装置を構成するコンピュータに、
１つの業務管理装置から資源提供要求を受信すると、システム内の資源に関する情報と該資源の配分先の前記業務管理装置に関する情報とを対応付けた管理資源情報を参照し、他の業務管理装置に配分された資源を解放させて前記１つの業務管理装置に再配分する配分処理と、前記配分処理により過去に実行された資源の再配分に関する履歴を参照し、前記配分処理において、前記他の業務管理装置から前記１つの業務管理装置に再配分した資源を更に前記１つの業務管理装置から前記他の業務管理装置に再配分するループ再配分を指定すると、該ループ再配分の指定を検出する処理と、前記検出する処理でループ再配分の指定を検出すると、該ループ再配分で再配分すると指定した資源を、前記配分処理における再配分の対象から除外する処理と、を実行させることを特徴とする。
【発明の効果】
【００１６】
本発明の分散資源配分システム、分散資源配分方法、及び、プログラムによると、資源管理装置及び業務管理装置が持つ資源再配分機能により、業務に割り当てるべき空き資源が不足する場合には、余剰資源が配分された業務から余剰資源が解放され、その解放された余剰資源が、資源を必要とする業務へ再配分される。このため、計算機システム内に必要な資源がある限り、すべての業務に対して必要最低限の資源を配分できる効果がある。
【００１７】
本発明の分散資源配分システムの好ましい態様では、前記資源管理装置は、前記再配分に関する履歴を保存する記憶装置を参照し、前記配分手段による資源の再配分についてループを検出するループ検出手段を更に備え、前記配分手段は、前記ループが検出されると、当該ループを構成する資源を再配分の対象から除外する。これによって、再配分の際に発生しがちなループが防止できる。
【００１８】
また、前記業務管理装置が、前記資源提供要求を生成して前記資源管理装置に発行する資源要求処理手段と、前記資源提供要求に応答して前記資源管理装置から通知された複数の資源候補から、１つ以上の資源を選択して前記資源管理装置に通知する資源獲得決定手段と、業務で使用中の資源について前記資源管理装置から資源解放要求を受信すると、該資源解放要求に同意するか否かを決定する資源解放決定手段とを備えることも本発明の好ましい態様である。この場合、業務管理装置が、資源管理装置による資源の再配分を補助する。
【００１９】
更に、前記資源要求処理手段が、前記資源提供要求の生成に際して、システム内の資源のＩＤと資源の稼働状況とを対応して保存する記憶装置を参照し、現在空き状態にある資源を優先して選択することも本発明の好ましい態様である。資源提供要求が空き状態にある資源を優先して選択することで、資源再配分の際に装置に生ずる処理負担が軽減できる。
【００２０】
更に、前記資源管理装置において、対象とする業務に必要最低限の資源が割り当てられていない場合に限り資源の再配分を許可することも好ましい様態である。必要以上の資源を再配分の対象としないことで、再配分の際に装置に生ずる処理負担が軽減できる。
【００２１】
更に、前記資源解放決定手段が、前記資源解放要求の対象資源が配分された業務に対して余剰な資源が配分されている場合に、当該余剰な部分についての資源の解放に同意することも好ましい。過剰な資源を再配分することで、計算機システム内での資源の有効活用が可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照し、本発明の一実施形態例に基づいて本発明の基本的構成を詳細に説明する。図１は、本発明の一実施形態に係る分散資源配分システムを含む分散資源計算機システムを示す。分散資源配分システムは、複数の業務管理装置２００と、１つまたは複数の資源情報検索装置３００と、複数の資源管理装置４００とから構成される。業務管理装置２００、資源情報検索装置３００、資源管理装置４００、および、管理対象の資源５００は、ネットワーク７００を介して相互に接続される。業務管理装置２００には、業務を管理する管理者が有する管理者端末１００から業務が入力される。
【００２３】
業務管理装置２００は、単一の業務を遂行するために利用する資源の獲得および解放を制御する機能を持つコンピュータ（計算機）である。業務管理装置２００は、１つまたは複数の資源管理装置４００に対して資源の提供を要求する資源要求処理手段２１０と、資源管理装置４００から提示された資源提供の候補に基づいて資源獲得を決定する資源獲得決定手段２２０と、資源管理装置４００から送られる資源解放要求に対する応答を決定する資源解放決定手段２３０とを備える。さらに、業務管理装置２００は、その記憶装置２７０内に、業務の遂行に使用する資源についての情報を格納する。
【００２４】
資源管理装置４００は、単一の管理ドメインに属する資源５００の一群について、業務への割り当ておよび再配分を制御する機能を持つコンピュータである。資源管理装置４００は、業務管理装置２００から送られた資源提供要求に基づいて資源配分または再配分を決定する資源配分手段４１０と、確定した資源配分または再配分のための構成変更を制御する構成変更手段４２０と、管理対象の資源の情報を格納するための記憶装置４４０とを備える。さらに、資源管理装置４００は、付加的な構成要素として、資源再配分のループを検出するループ検出手段４５０を備えることが出来る。ループ検出手段４５０は、後述する第２の実施形態で使用する。
【００２５】
図５は、図１に示した構成を有する分散資源配分システムにおける処理シーケンスを示す。管理者端末１００は、業務管理装置（以下では、説明の便宜上「獲得側の業務管理装置」と呼ぶ）２００に対して、資源獲得操作を要求する（ステップ１）。獲得側の業務管理装置２００は、資源情報検索装置３００に対して、資源情報検索要求を送信し（ステップ２）、これから検索結果を得る。獲得側の業務管理装置２００は、検索結果から得られた資源情報に基づいて要求すべき１つ以上の資源を決定する。次いで、獲得側の業務管理装置２００は、その資源要求処理手段２１０から、１つまたは複数の資源管理装置４００に対して、資源提供要求を送付する（ステップ３）。業務管理装置２００の資源情報検索要求の送付から、資源提供要求の送付までが、資源要求処理Ｓ１を構成する。
【００２６】
資源提供要求を受け取った各資源管理装置４００は、資源配分手段４１０を使用して、管理下の資源５００の中から提供する資源を選択する。ここで、管理下の資源５００の中に空き資源がない場合には、割り当て済みの資源の中から再配分対象の資源を選択し、その資源の現在の割り当て先である業務管理装置（以下では、「解放側の業務管理装置」と呼ぶ）２００に資源解放要求を送付する（ステップ４）。資源解放要求を受け取った解放側の業務管理装置２００は、資源解放決定手段２３０を使用して、資源解放を許可するか否かを決定する。資源を解放することによって業務に支障を生じない場合、つまり、解放後も最低限の資源量が満たされる場合には、資源解放同意通知を応答として送る（ステップ５）。資源解放要求の受信から資源解放同意通知までの処理が、資源解放決定処理Ｓ３を構成する。
【００２７】
資源解放同意通知を受け取った資源管理装置４００は、資源提供要求への応答として、資源再配分によって資源の提供が可能であることを示す資源提供状況を、獲得側の業務管理装置２００に通知する（ステップ６）。資源管理装置４００の資源提供要求受信から資源提供状況資源提供状況通知までの処理が、資源配分処理Ｓ２を構成する。獲得側の業務管理装置２００は、送付した資源提供要求に対する応答が全ての資源管理装置４００から到着するまで、或いは、タイムアウトになるまで待機し、その後で、資源獲得決定手段２２０を使用して獲得対象の資源を選択する。ここで、獲得対象の資源は、資源提供状況通知に含まれる資源であり、空き資源または再配分資源が対象となる。資源獲得決定手段２２０は、空き資源を優先して獲得対象の資源を選択した後で、獲得対象の資源を管理する資源管理装置４００に対しては、構成変更実行要求を送るとともに、それ以外の資源を管理する資源管理装置に対しては、構成変更取り消し要求を送る（ステップ７）。獲得側の業務管理装置２００の資源提供通知受信から構成変更実行／取消要求の送信までが、資源獲得決定処理Ｓ４を構成する。
【００２８】
資源管理装置４００は、ステップ７で獲得側の業務管理装置２００から構成変更実行要求を受け取ると、構成変更手段４２０を使用して、資源再配分のために事前に定義された操作を実行する。その後、解放側の業務管理装置２００には資源解放結果を通知し（ステップ８）、また、獲得側の業務管理装置２００には、構成変更実行結果を通知する（ステップ９）。資源管理装置４００の構成変更実行／取消要求の受信から、構成変更実行結果通知までが、構成変更処理Ｓ５を構成する。業務管理装置２００は、構成変更実行結果通知を受信すると、資源獲得の結果を管理者端末１００に通知する（ステップ１０）。
【００２９】
本発明の第１の実施形態では、資源管理装置４００が備える資源配分手段４１０は、最低限の資源量が満たされていない業務に対してのみ資源再配分を許可する。ここで、最低限の資源量は、各業務について業務管理者によって指定される数値である。第１の実施形態では、図１に示したループ検出手段４５０が除かれる。
【００３０】
本発明の第２の実施形態では、資源管理装置４００が備える資源配分手段４１０は、最低限の資源量が満たされている業務に対しても資源再配分を許可する。この実施形態では、図１に示したループ検出手段４５０を使用して、資源再配分のループにつながる資源を、資源再配分の対象から除外する処理を行う。ループ検出のために、過去に実行した資源再配分の履歴を記憶装置４４０に格納し、資源配分処理の過程で履歴を参照することで、ループの有無を検出する。或る資源についてループが検出されると、例えば一定時間内は、その資源についての資源の再配分を停止する。
【００３１】
本発明の第１及び第２の実施形態に共通した効果として、システム内に必要な資源量が存在する限り、すべての業務に必要最低限の資源量を割り当てることを可能にし、かつ最低限の資源量を超えた大きな資源量の需要のある業務に対しては余剰資源を提供することが出来る。さらに、第１の実施形態では、余剰資源が配分された業務に対する資源の再配分を禁止する構成を採用すれば、資源再配分のループを防止できる。また、第２の実施の形態では、資源再配分のループを検出することにより、直接的に資源再配分のループを防止できる。
【００３２】
以下、本発明の上記実施形態における最良の形態について詳細に説明する。特に明記しない箇所については、第１及び第２の実施形態の間で共通である。
【００３３】
図１において、分散資源計算機システムの各構成要素は、以下の構成及び作用を有する。管理者端末１００は、計算機システム上で運用される業務の管理者が操作する端末であり、キーボードやマウスなどの入力装置と、ディスプレイなどの出力装置とを備える。管理者端末１００と業務管理装置２００とは、専用のケーブルまたはネットワークを介して一対一に接続される。
【００３４】
業務管理装置２００は、プログラム制御される計算機（コンピュータ）であり、本システム上で運用される業務について、必要な資源の獲得および解放を制御する役割を持つ。資源情報検索装置３００は、プログラム制御される計算機であり、業務管理装置に対して、システム中の資源および資源管理者の情報を提供する役割を持つ。資源管理装置４００は、プログラム制御される計算機であり、１つ以上の資源について、特定の業務に対する割り当てと、それに必要な構成変更処理（例えば、プログラムの配布および起動・停止）を制御する役割を持つ。資源５００は、計算機システムの構成要素となる装置を指す。典型的には、ＷＷＷサーバや、アプリケーションサーバなどとして動作する計算機、またはストレージ装置である。
【００３５】
単一の分散資源配分システムにおいて、業務管理装置２００、資源情報検索装置３００、及び、資源管理装置４００は、それぞれ１台以上の任意の台数だけ設置することができる。管理者端末１００の台数は、業務管理装置２００の台数と一致する。それぞれの資源管理装置４００について、管理下の資源５００を１台以上設置することができる。望ましい構成では、単一の資源管理装置４００と、その資源管理装置４００の管理下にあるすべての資源５００は、同一のローカルエリアネットワーク (Local Area Network, LAN) に接続される。また、すべての業務管理装置２００と、すべての資源情報検索装置３００と、すべての資源管理装置４００とは、ネットワーク（広域ネットワークまたはローカルエリアネットワーク）７００に接続される。ただし、これらの条件は必須ではない。例えば、単一の資源管理装置４００の管理下にある資源５００が複数のＬＡＮ上に分散している構成や、システムのすべての構成要素がＬＡＮで接続されていてもよい。
【００３６】
資源情報検索装置３００は、複数の管理ドメインに属する全ての資源について、そのリソースＩＤ、資源の種別、及び、割り当て状態の情報を格納する。リソースＩＤとは、システム内で資源を一意に識別する符号である。リソースＩＤの表現形式の実例は、ＤＮＳ（Domain Name System）ドメイン名およびＵＲＬ（Uniform Resource Locator）である。資源の種別とは、コンピュータ、ストレージ、ファイアウォールなど、資源の種別を特定する情報である。ここには、機種名やＣＰＵクロック周波数などの付加的な情報を含めることができる。割り当て状態とは、その資源についての現在の配分先業務、あるいは空き状態であることを示す情報である。
【００３７】
資源情報検索装置３００が保持する資源情報は、資源管理装置４００から定期的に獲得するものであり、常に最新であるという保証はない。したがって、資源情報検索装置３００に対する検索結果では空き状態となっている資源が、実際には何らかの業務に割り当てられていることがあり得る。
【００３８】
図１の分散資源配分システムについて、図１５に示す構成及び状態を仮定する。つまり、分散資源配分システムとして、２つの業務管理装置２００−Ｘ、２００−Ｙ（以下、それぞれ業務管理装置Ｘ、業務管理装置Ｙと表記する）と、２つの資源管理装置４００−Ａ、４００−Ｂ（以下、それぞれ資源管理装置Ａ、資源管理装置Ｂと表記する）とからなるシステムを仮定する。資源管理装置Ａは、資源として、hostA1, …, hostA4の４台のコンピュータを管理下に置く。同様に、資源管理装置Ｂは、hostB1, …, hostB4の４台のコンピュータを管理下に置く。初期状態では、業務管理装置Ｘは、hostA1, hostA2, hostB1, hostB2の４台のコンピュータを業務Ｘのために利用しており、業務管理装置Ｙは、hostA3, hostA4, hostB3, hostB4の４台のコンピュータを業務Ｙのために利用している。以下の動作例の説明では、原則として上記の構成及び初期状態を前提とする。
【００３９】
図２は、業務管理装置２００の内部詳細構成を示す。業務管理装置２００は、資源要求処理手段２１０、資源獲得決定手段２２０、資源解放決定手段２３０、資源情報更新手段２４０、外部入出力手段２５０、通信手段２６０、及び、記憶装置２７０からなる。資源要求処理手段２１０は、管理者端末を通して入力された資源獲得または解放の要求に基づいて、資源管理手段４００に対して資源提供要求／資源解放要求を発行する処理（資源要求処理）を制御する手段である。資源獲得決定手段２２０は、資源管理手段４００に対する資源提供要求への応答として受け取った資源提供状況に基づいて、実際に獲得する資源を決定する処理（資源獲得決定処理）を制御する手段である。資源解放決定手段２３０は、資源管理手段４００から受け取った資源解放要求に対して、合意するか否かを決定する処理（資源解放決定処理）を制御する手段である。
【００４０】
資源情報更新手段２４０は、資源管理手段４００に対して発行した構成変更要求、または、資源管理装置４００から受け取った資源解放要求の結果に基づいて、記憶装置２７０に含まれる業務資源情報データベース（ＤＢ, database）の内容を更新する手段である（以下では、前者の処理を「資源獲得完了処理」、後者の処理を「資源解放完了処理」とそれぞれ呼ぶ）。外部入出力手段２５０は、業務管理装置に接続された管理者端末（１００）との間で情報を送受信する手段である。通信手段２６０は、ネットワーク（ＷＡＮまたはＬＡＮ）を通して、資源情報検索手段３００または資源管理装置４００との間で情報を送受信する手段である。記憶装置２７０は、業務管理装置２００の動作に必要な情報を格納する記憶装置である。
【００４１】
記憶装置２７０には、資源情報データベース（ＤＢ, database）、コンテキストＤＢ、設定情報ＤＢが格納される。業務資源情報ＤＢは、当該業務管理装置２００が使用している資源の情報（リソースＩＤ、解放予定の有無など）を格納するデータベースである。ここで、リソースＩＤとは、システム内で資源を一意に識別する文字列または数値を指す。コンテキストＤＢは、当該業務管理装置における未完了の処理（資源要求処理、資源獲得決定処理、資源解放決定処理のいずれか）についての情報を格納するデータベースである。設定情報ＤＢは、業務管理者によってセットされる各種の設定情報を格納するデータベースである。
【００４２】
設定情報ＤＢに格納される設定情報のうち、特に重要なものは「必要資源量」である。必要資源量とは、資源管理について設定される情報であり、業務管理者と資源管理者の間の契約あるいは合意によって決定される。「必要資源量」の値は、あらかじめ決められたスケジュール、あるいは外部条件に従って変動することがあり得る。前者の一例は、毎日午前３時から５時の間に、夜間バッチ処理業務のために最低８台のサーバを割り当てることである。後者の一例は、エンドユーザからの同時接続数１００ごとに業務用サーバ１台を割り当てることである。
【００４３】
図１５に示した構成及び初期状態によると、業務管理装置Ｘと業務管理装置Ｙの双方における記憶装置２７０の業務資源情報ＤＢの内容はそれぞれ、図１６（ａ）及び（ｂ）に示す内容である。この時点では、コンテキストＤＢの内容は空である。
【００４４】
図３は、資源管理装置４００の内部詳細構成を示す。資源管理装置４００は、資源配分手段４１０と、構成変更手段４２０と、通信手段４３０と、記憶装置４４０とから構成される。第２実施形態では、更にループ検出手段４５０を有する。資源配分手段４１０は、業務管理装置２００から受け取った資源提供要求または資源解放要求に基づいて、提供または解放する資源を選択する手段である。また、資源提供要求について、他の業務管理装置２００に割り当て済みの資源についての再配分を選択する役割も持つ（双方の処理を合わせて、資源配分処理Ｓ２と呼ぶ）。構成変更手段４２０は、業務管理装置２００からの構成変更実行要求または構成変更取り消し要求に基づいて、資源配分手段４１０により選択した資源を対象とする構成変更処理または構成変更取り消し処理を制御する手段である。通信手段４３０は、ネットワーク（ＷＡＮまたはＬＡＮ）を通して、業務管理装置２００との間で情報を送受信する手段である。記憶装置４４０は、資源管理装置４００の動作に必要な情報を格納する。
【００４５】
記憶装置４４０には、管理資源情報ＤＢ、コンテキストＤＢ、及び、設定情報ＤＢが格納される。管理資源情報ＤＢは、当該資源管理装置４００の管理下にある資源についての情報（リソースＩＤ、割り当て先業務名、構成変更予約など）を格納するデータベースである。コンテキストＤＢは、当該資源管理装置４００における未完了の処理（資源配分処理または構成変更処理）についての情報を格納するデータベースである。設定情報ＤＢは、資源管理者によってされる各種の設定情報を格納するデータベースである。
【００４６】
第２の実施形態では、記憶装置４４０には、更に資源再配分履歴データが記憶される。資源再配分履歴データは、過去に実施した資源再配分の内容（解放側業務、獲得側業務、およびリソースＩＤ）からなる履歴データである。資源配分履歴データは、第２の実施形態においてループ検出手段で利用される。
【００４７】
図１５に示した構成及び初期状態では、資源管理装置ＡおよびＢにおける管理資源情報ＤＢの内容はそれぞれ、図１７（ａ）及び（ｂ）に示す内容である。この時点では、コンテキストＤＢの内容は空である。
【００４８】
以下、業務管理装置Ｘ及びＹと、資源管理装置Ａ及びＢの動作について、具体例を含めて詳細に説明する。図４及び図５（前出）は何れも、分散資源配分システムの処理シーケンスを示すもので、図４は資源の再配分が発生しない場合のフローチャートを、図５は資源の再配分が発生した場合のフローチャートをそれぞれ示している。これらに示した処理は、管理者端末１００を通して、ある業務に対する資源の追加が指示された場合に開始される。管理者端末１００から資源の解放が指示された場合の動作については後述する。
【００４９】
図４に示した処理は、資源管理装置４００の管理下に充分な空き資源がある場合の処理に該当する。このシーケンスは、以下の各ステップからなる。
ステップ１：業務管理者は、管理者端末１００を通して資源の追加を指示する。管理者端末は、入力された操作を業務管理装置２００に送信する。
ステップ２：業務管理装置２００は、資源情報検索装置３００に対して、獲得可能な資源を管理下に置く資源管理装置４００の情報を問い合わせる。その結果、１つ以上の資源管理装置４００の情報（接続先エンドポイント参照）を得る。
ステップ３：業務管理装置２００は、ステップ２の検索結果に基づいて、１つ以上の資源管理装置４００に対して資源提供要求を送信する。
ステップ４：資源提供要求を受け取った各資源管理装置４００は、当該資源管理装置の管理下にある資源の中から、提供する資源を選択する。ここで選択される資源は、空き状態にある（すなわち、どの業務にも割り当てられていない）資源である。当該資源管理装置４００は、選択結果を、資源提供状況として、資源提供要求を送信した業務管理装置に通知する。
ステップ５：業務管理装置２００は、ステップ４において選択された資源の中から、獲得対象の資源を選択する。ここで選択された資源については、構成変更実行要求を送信することにより、当該業務に割り当てるための構成変更処理を指示する。それ以外の資源については、構成変更取り消し（キャンセル）要求を送信することにより、その資源の獲得権を放棄することを指示する。
ステップ６：資源管理装置４００は、ステップ５の構成変更実行要求または構成変更キャンセル要求に基づいて、ステップ４で選択した資源についての構成変更を実行するとともに、変更内容を当該資源管理装置４００内の管理資源情報ＤＢに反映させる。さらに、構成変更が完了したことを、構成変更要求を送信した業務管理装置２００に通知する。
ステップ７：業務管理装置２００は、ステップ６の構成変更実行結果通知の内容に基づいて、業務資源情報ＤＢの内容を更新するとともに、実行結果をステップ１で当該業務を指示した管理者端末１００に通知する。当該管理者端末１００は、実行結果を出力装置に出力する。
【００５０】
業務管理装置２００におけるステップ２及び３は、資源要求処理Ｓ１を構成する。資源管理装置４００におけるステップ３及び４は、資源配分処理Ｓ２を構成する。業務管理装置２００におけるステップ４及び５は、資源獲得決定処理Ｓ３を構成する。資源管理装置４００におけるステップ５及び６は、構成変更処理Ｓ５を構成する。業務管理装置２００におけるステップ６及び７は、資源獲得完了処理Ｓ７を構成する。
【００５１】
図５の処理シーケンスは、資源管理装置に管理下に十分な空き資源がない場合に該当する。本シーケンスは、以下の各ステップからなる。
ステップ１−３：図４のステップ１−３と同様である。以下、これらのステップ１−３に現れる業務管理装置を、以下では「獲得側の業務管理装置」と呼ぶ。
ステップ４：資源提供要求を受け取った各資源管理装置４００は、当該資源管理装置４００の管理下にある資源の中から、提供する資源を選択する。ここで選択される資源は、すでに別の業務に割り当てられている資源である。資源管理装置４００は、選択された資源を再配分のために予約するとともに、その資源の現在の割り当て先である業務管理装置（以下では、「解放側の業務管理装置」と呼ぶ）２００に対して、資源解放要求を送る。
ステップ５：解放側の業務管理装置２００は、ステップ４において選択された資源が解放可能かどうかを検証し、解放可能である場合には「資源解放同意通知」を、そうでない場合には「資源解放拒否通知」を、ステップ４で資源解放要求を送信した資源管理装置に送る。後者の場合には資源再配分は成立せず、資源管理装置４００はステップ４で予約した資源を解放し、処理を終了する。この場合の処理は、図５に示していない。
【００５２】
以下のステップは、ステップ５における前者の場合を、つまり資源解放同意が通知されたことを前提とする。
ステップ６：資源管理装置４００は、獲得側の業務管理装置２００に対して、ステップ４で選択した資源について再配分が可能であることを通知する。以下では、この通知を「資源提供状況通知」と呼ぶ。
ステップ７：資源提供状況通知を受け取った獲得側の業務管理装置２００は、通知された資源を獲得するかどうかを決定する。その決定に基づき、ステップ６で再配分が可能と通知した資源管理装置４００に対して、構成変更実行要求（獲得する場合）または構成変更取り消し要求（獲得しない場合）を送る。後者の場合には、資源管理装置４００はステップ４で予約した資源について予約を削除するとともに、解放側の業務管理装置２００に対して、再配分が取り消されたことを通知する。図５では、この場合の処理手順は図示していない。
【００５３】
以下のステップでは、ステップ７における前者の場合を、つまり、構成変更実行要求が送信された場合を前提とする。
ステップ８：構成変更実行要求を受け取った資源管理装置４００は、ステップ４で予約した資源を対象として構成変更処理を実行する。構成変更処理は、解放対象の業務に関連するプログラムの停止と、獲得対象の業務に関連するプログラムの開始を伴う。構成変更が完了した後、構成変更の結果（成功または失敗）を、解放側の業務管理装置２００に通知する。
ステップ９：同様に、資源管理装置４００は、構成変更の結果を、獲得側の業務管理装置２００に通知する。
ステップ１０：獲得側の業務管理装置２００は、ステップ９の通知に基づいて、接続先の管理者端末１００に資源獲得結果を送信する。当該管理者端末１００は、資源獲得結果を出力装置に出力する。
【００５４】
獲得側の業務管理装置２００におけるステップ２及び３は、資源要求処理Ｓ１を構成する。資源管理装置におけるステップ３及び４は、資源配分処理Ｓ２を構成する。解放側業務管理装置２００におけるステップ４及び５は、資源解放決定処理Ｓ３を構成する。獲得側の業務管理装置２００におけるステップ６及び７は、資源獲得決定処理Ｓ４を構成する。資源管理装置におけるステップ７−９は、構成変更処理Ｓ５を構成する。解放側の業務管理装置２００におけるステップ８は、資源解放完了処理Ｓ６を構成する。獲得側の業務管理装置２００におけるステップ９及び１０は、資源獲得完了処理Ｓ７を構成する。
【００５５】
図６は、資源獲得側の業務管理装置２００における資源要求処理Ｓ１の手順を示す。業務管理装置２００は、資源要求処理手段２１０を使用して、下記の各ステップを実行する。
ステップＳ１０１：通信手段２６０を介して資源情報検索装置３００に検索要求を送り、管理者端末から入力された資源の条件を満たす資源の情報（リソースＩＤ）と、その資源を管理する資源管理装置４００のエンドポイント参照を取得する。エンドポイント参照とは、特定の装置に要求などのメッセージを送るのに必要な情報である。エンドポイント参照の実例は、DNS (Domain Name System) ドメイン名、URL (Uniform Resource Locator)、およびWS-Addressing (Web Service Addressing) endpoint referenceである。
【００５６】
ステップＳ１０２：ステップＳ１０１で取得した資源情報を対象として、それらの資源を獲得するための「資源提供要求」を生成する。ここで生成する要求の数は、設定情報ＤＢに格納される設定情報「生成要求数」を上限とする。もし、ステップＳ１０１における検索結果の資源数が「生成要求数」の値よりも少ない場合には、検索結果すべての資源を獲得対象とする。
ステップＳ１０３：ステップＳ１０２における要求生成に成功したか否かを判断する。もし、ステップＳ１０１で少なくとも１つの獲得可能な資源が検索された場合には成功と判断し、それ以外の場合には失敗と判断する。
ステップＳ１０４：ステップＳ１０３で要求生成に成功と判断した場合には、生成した要求を、通信手段２６０を介して、獲得対象資源に対応する資源管理装置４００に送信する。ここでの送信先は、ステップＳ１０１で取得した接続先エンドポイント参照である。ここでの要求送信方法は、通信手段の実現方法に依存する。通信手段の具体例として、ソケット通信、Java(登録商標) RMI (Remote Method Invocation)、JAX-RPC (Java(登録商標) API for XML-based RPC) などがある。
ステップＳ１０５：ステップＳ１０４で要求送信に成功したか否かを判断する。ここでの判断方法は、具体的な通信手段に依存する。例えば、Java(登録商標) RMI を用いる場合、資源提供要求を含む遠隔メソッド呼び出しの際に例外 (exception) が発生すれば失敗と判断し、それ以外の場合には成功と判断する。
ステップＳ１０６：ステップＳ１０５で要求送信に成功したと判断した場合には、コンテキストＤＢ２８０に、要求処理の状況を保存し、処理を終了する。ここで保存する情報には、ステップＳ１０４で送信した要求を識別するリクエストＩＤと、送信先の資源管理装置を識別するエンドポイント参照とが含まれる。
ステップＳ１０７：ステップＳ１０３またはＳ１０５で失敗と判断した場合、外部入出力手段２１０を使用して、資源獲得に失敗した旨を管理者端末１００に出力し、処理を終了する。
【００５７】
本発明の第１の実施形態では、ステップＳ１０１において生成する資源提供要求の中に、当該業務に対して現在必要最低限の資源が配分されているか否かを示す情報を付加する。資源管理装置は、当該業務に対して既に必要最低限の資源が配分されており、かつ、自身が管理する資源に空き資源がない場合には、資源の再配分を行わないと決定する。
【００５８】
一方、第２の実施形態では、ステップＳ１０１で生成する資源提供要求の中に、当該業務に対して現在必要最低限の資源が配分されているか否かを示す情報を付加する処理を行わない。
【００５９】
図１５に示した状態を初期状態として、資源再配分の処理を説明する。ここで、業務管理装置Ｘに、以下のような資源獲得操作を行ったと仮定する。操作種別は、資源獲得であり、資源記述としては、資源種別がコンピュータ，台数が１，業務がＸである。図１８は、この場合に、業務管理装置ＸがステップＳ１０４で資源管理装置Ａ及びＢに発行する資源提供要求の内容と、ステップＳ１０６で格納されるコンテキストＤＢの内容とを示す。
【００６０】
資源提供要求に現れる資源記述の内容は、管理者端末１００を通して業務管理装置Ｘに入力した資源記述の内容と同じである。コンテキストＤＢには、資源管理装置ＡおよびＢに対して送信した資源提供要求のリクエストＩＤと、送信先（エンドポイント参照として、ここでは「資源管理装置Ａ」などの装置名を使用する）と、その状態とを格納する。
【００６１】
図７及び図８は、資源管理装置４００による資源配分処理Ｓ２の詳細な処理手順を示す。この処理は、資源管理装置４００に業務管理装置２００から「資源提供要求」が到着したときに、当該資源管理装置４００が資源配分手段４１０を使用して実行する処理である。資源管理装置４００における資源配分処理では、最初に図７の処理手順を適用し、資源再配分を適用する場合には図８の処理手順に移行する。
【００６２】
まず、図７の処理手順における各ステップの内容を詳細に示す。
ステップＳ２０１：資源配分手段４１０は、記憶装置４４０内の管理資源情報ＤＢに対して検索を行い、資源提供要求で指定された条件を満たす資源の情報を取得する。ここで、検索条件には、受け取った資源提供要求に含まれる資源記述を満たすこと、どの業務にも割り当てられていない空き状態であること、及び、構成変更のために予約されていないことが指定される。
ステップＳ２０２：ステップＳ２０１で、条件に該当する資源情報が管理資源情報ＤＢ中に存在するか否かを判断する。存在する場合にはステップＳ２０３以降に進み、そうでない場合には図８の処理手順に進む。
ステップＳ２０３：ステップＳ２０２で、条件に該当する資源情報が存在する場合には、それらの資源情報の中から１つを選択する。ここでの選択基準は本発明の一部ではない。選択基準の例としては、あらかじめ各資源に割り当てた番号順、ランダム、性能順（例えばＣＰＵクロック周波数、あるいは何らかのベンチマーク数値）がある。
ステップＳ２０４：ステップＳ２０３で選択した資源を、獲得側の業務管理装置２００が担当する業務（以下、「新業務」と呼ぶ）への配分のために予約する。より詳細には、記憶装置４４０内の管理資源情報ＤＢにおける当該資源のエントリに、当該資源を新業務で利用するための操作内容を記録する。ここでの操作の一例は、資源であるコンピュータ上でのアプリケーションソフトウェアの起動である。この時点では、実際の資源に対する操作は行わない。
【００６３】
本発明の第１の実施形態では、ステップＳ２０２において、ステップＳ２０１の条件に該当する資源情報が管理資源情報ＤＢに存在せず、かつ新業務に対して必要最低限の資源量が配分されていない場合に限り、図８の処理手順に進む。一方、もしステップＳ２０１の条件に該当する資源情報が管理資源情報ＤＢに存在せず、かつ新業務に対して必要最低限の資源量がすでに配分されている場合には、獲得側の業務管理装置に対して資源提供に失敗したことを通知し、資源配分処理を終了する。新業務に対して必要最低限の資源量が配分されているか否かの情報は、受け取った資源提供要求に含まれる。
【００６４】
ステップＳ２０５：ステップＳ２０３で選択した資源の情報を、通信手段４３０を介して、獲得側の業務管理装置２００に「資源提供状況」として通知する。この通知は、選択された資源を識別するリソースＩＤと、その資源が空き状態であるという情報を含む。
ステップＳ２０６：記憶装置４４０内のコンテキストＤＢに、資源配分処理の処理状況を書き込み、資源配分処理を終了する。処理状況として、受け取った資源提供要求を識別するリクエストＩＤと、ステップＳ２０３において選択した資源を識別するリソースＩＤからなるエントリを１つ追加する。
【００６５】
上記の処理手順は、業務に対する資源の追加を対象としているが、資源の削除についても同様の処理手順を適用する。この場合、資源追加の場合とは以下の相違点がある。
（１）資源管理装置に対して、「資源提供要求」の代わりに「資源解放要求」が到着する。
（２）ステップＳ２０１では、要求送信元の業務に割り当て済みの資源を検索対象とする。
（３）ステップＳ２０２で図８の処理手順に進むことはなく、該当する資源がない場合には直ちに失敗する（すなわち、業務管理装置に対して資源解放の失敗を通知する）。
（４）ステップＳ２０５では、選択した資源の情報を「資源解放状況」として通知する。
【００６６】
次に、図８の処理手順における各ステップの詳細を説明する。前述した通り、本手順を適用するのは、上記ステップＳ２０２において、提供可能な空き資源がない場合である。
ステップＳ２０７：記憶装置４４０内の管理資源情報ＤＢから、新業務に対して再配分可能な資源の情報を検索する。ここで再配分可能な資源の条件は、現時点で新業務とは別の業務（ここでは、「旧業務」と呼ぶ）に割り当てていることである。
ステップＳ２０８：ステップＳ２０７において、検索結果の中に再配分可能な資源が１つ以上含まれるか否かを判断する。もし、再配分可能な資源がある場合にはステップＳ２０９以降に進み、そうでない場合にはステップＳ２１５に進む。
ステップＳ２０９：ステップＳ２０７の検索結果に含まれる再配分可能な資源の中から、再配分対象の資源を１つ選択する。資源の選択基準は任意とする。選択基準の例は、事前に決めておいた番号順、ランダム、性能情報（ＣＰＵクロック周波数など）、負荷情報（平均ＣＰＵ使用率など）である。
【００６７】
ステップＳ２１０：ステップＳ２０９で選択した資源を、旧業務から新業務への再配分のために予約する。より詳細には、管理資源情報ＤＢ中の当該資源についてのエントリに、当該資源を旧業務から解放するための操作と、新業務で利用するための操作内容を記録する。ここでの操作の一例は、資源であるコンピュータ上でのアプリケーションソフトウェアの停止（旧業務用）と起動（新業務用）である。この時点では、実際の資源に対する操作は行わない。
ステップＳ２１１：通信手段４３０を介して、旧業務（ステップＳ２０９で選択した資源の現在の割り当て先である業務）を管理する業務管理装置（ここでは、「解放対象の業務管理装置」と呼ぶ）２００に「資源解放要求」を送信する。資源解放要求には、解放対象の資源を識別するリソースＩＤが含まれる。
ステップＳ２１２：解放対象の業務管理装置２００からの応答を待ち、その応答が「資源解放同意通知」であるか「資源解放拒否通知」であるかを判断する。前者の場合はステップＳ２１３以降に進み、後者の場合はステップＳ２１５に移る。
ステップＳ２１３：ステップＳ２０３において選択した資源の情報を、通信手段４３０を介して、獲得側の業務管理装置２００に「資源提供状況」として通知する。この通知には、選択された資源を識別するリソースＩＤと、その資源が再配分対象であるという情報とが含まれる。
【００６８】
ステップＳ２１４：記憶装置４４０内のコンテキストＤＢに、資源配分処理の処理状況を書き込み、資源配分処理を終了する。ここでは、コンテキストＤＢに以下の２つのエントリを追加する。
（１）獲得側の業務管理装置から受け取った資源提供要求を識別するリクエストＩＤ
と、構成変更対象の資源を識別するリソースＩＤと、Ｓ２１１で送信した資源解放要
求を識別するリクエストＩＤ。
（２）ステップＳ２１１で送信した資源解放要求を識別するリクエストＩＤと、その送信先を識別するエンドポイント参照。
これら情報は、構成変更実行／取り消し処理のために必要である。
【００６９】
ステップＳ２１５：管理資源情報ＤＢから、ステップＳ２１０で記録した予約情報を破棄した後、ステップＳ２０７以降の処理を繰り返す。ここで、ステップＳ２０７を２回以上繰り返す場合には、前回までに選択した資源は候補に入らない。
ステップＳ２１６：通信手段を介して、獲得側の業務管理装置に、資源提供に失敗したことを通知し、資源配分処理を終了する。
【００７０】
本発明の第２の実施の形態では、上記のステップＳ２０７において、再配分の対象とななり得る資源として、資源再配分のループを構成しない資源のみを検索対象とする。この処理については、「ループ検出処理」として、後述する。
【００７１】
なお、上記処理手順では、ステップＳ２０７−Ｓ２１５間のループにおける繰り返し回数の上限を明示していないが、資源管理装置の設定情報として「繰り返し上限数」を設定することにより、強制的にシーケンスを終了するというバリエーションもある。また、上記処理手順では、資源を１つ選択→解放可能かどうか確認という処理を繰り返すが、あらかじめ複数の資源を候補として選択し、複数の業務管理装置に対して資源解放要求を並行して送るというバリエーションもある。
【００７２】
図７及び図８の処理手順は、マルチスレッド機構によって複数の資源提供要求を並行して処理しないことを前提としている。その理由は、資源情報検索（ステップＳ２０１およびＳ２０７）と資源予約（ステップＳ２０４およびＳ２１０）の間に別のスレッドによって資源情報が更新される危険性があるためである。
【００７３】
図１９は、上記処理によって生成される、資源管理装置Ａにおける資源配分処理に関する通信内容およびＤＢ更新内容を示す。図１９は以下の部分からなる。
a)ステップＳ２１０実行後の、資源管理装置Ａにおける管理資源情報ＤＢの内容
b)ステップＳ２１１で業務管理装置Ｙに対して発行する資源解放要求の内容
c)ステップＳ２１４実行後の、資源管理装置ＡにおけるコンテキストＤＢの内容
この例では、ステップＳ２０９においてhostA3を再配分の対象に選択することを前提としている。
【００７４】
コンテキストＤＢには、
(1) 資源管理装置Ａが業務管理装置Ｘから受け取った資源提供要求と、
(2) 資源管理装置Ａが業務管理装置Ｙに対して送信した資源解放要求と、
を格納する。
【００７５】
図９を参照し、資源解放側の業務管理装置２００における資源解放決定処理Ｓ３について説明する。業務管理装置２００が、資源管理装置４００から「資源解放要求」を受け取ると、当該業務管理装置（解放側の業務管理装置）は、資源解放決定手段２３０を用いて、以下の処理を実行する。
ステップＳ３０１：記憶装置２７０内の業務資源情報ＤＢを検索して、資源解放要求に含まれるリソースＩＤに対応する資源情報と、当該業務を構成するすべての資源情報を取得する。
ステップＳ３０２：ステップＳ３０１における検索結果に基づいて、資源解放の可否を決定する。ここでの判断基準は後述する。ここで、資源解放が可能な場合にはステップＳ３０３以降に進み、そうでない場合にはステップＳ３０６に進む。
ステップＳ３０３：業務資源情報ＤＢ中の解放対象資源に相当するエントリについて、「解放対象」のマークを付加する。
ステップＳ３０４：通信手段２６０を使用して、資源解放要求の送信元である資源管理装置４００に、「資源解放同意通知」を送信する。この通知には、当該資源解放要求を識別するリクエストＩＤが含まれる。
ステップＳ３０５：記憶装置２７０内のコンテキストＤＢに、資源解放要求の処理過程を記録し、資源解放決定処理を終了する。ここで記録する内容には、受け取った資源解放要求を識別するリクエストＩＤと、解放対象の資源を識別するリソースＩＤとが含まれる。
ステップＳ３０６：通信手段２６０を使用して、資源解放要求の送信元である資源管理装置４００に、「資源解放拒否通知」を送信する。この通知には、当該資源解放要求を識別するリクエストＩＤが含まれる。
【００７６】
以下に、上記手順のステップＳ３０２における資源解放の可否についての判断基準を示す。
（a）解放対象資源について、業務資源情報ＤＢ内で「解放不可」と記録されている場合には、その資源を解放することはできない。
（b）解放対象資源について、業務資源情報ＤＢ内で「解放対象」のマークが付加されている場合には、その資源を解放することはできない。
（c）当該業務に割り当てられている全資源量が、設定情報ＤＢに記録された「必要資源量」以下である場合には、その資源を解放することはできない。
(a)-(c)のいずれの条件も満たさない場合には、解放対象資源を解放することができる。
【００７７】
なお、ステップＳ３０２における解放可否の判断を自動的に行う代わりに、管理者端末１００を通して業務管理者（人間）に問い合わせるというバリエーションもある。ステップＳ３０３−Ｓ３０５の各ステップ間の順序は重要ではなく、任意の順序に並び替えてもよい。
【００７８】
図２０は、上記処理において、解放側の業務管理装置Ｙにおける資源配分処理に関する通信内容およびＤＢ更新内容を示す。図２０は以下の部分からなる。
a) ステップＳ３０３実行後の、業務管理装置Ｙにおける業務資源情報ＤＢの内容。これを図１６に示した初期状態と比較すると、解放対象の資源であるhostA3に「解放予定」のマークが付加されていることが相違点である。
b) ステップＳ３０５実行後の、業務管理装置ＹにおけるコンテキストＤＢの内容。これには、hostA3についての解放処理を示すエントリが新規に追加されている。このエントリには、解放対象の資源であるhostA3のリソースＩＤが含まれる。
【００７９】
図１０を参照し、資源獲得側の業務管理装置２００における資源獲得決定処理Ｓ４について説明する。この処理は、資源管理装置４００から獲得側の業務管理装置２００に対してステップＳ２０５またはＳ２１３で送られる資源提供状況通知が到着したときに、当該業務管理装置２００が資源獲得決定手段２２０を使用して制御する。この処理における各ステップの詳細を以下に示す。
【００８０】
ステップＳ４０１：資源要求処理Ｓ１で獲得側の業務管理装置２００が送信した全ての資源提供要求について、資源提供状況または資源提供不可通知の応答が到着するのを待つ。ここで、記憶装置２７０中のコンテキストＤＢに対して、受け取った通知に含まれるリクエストＩＤをキーとして検索をかけることにより、受け取った通知に対応する資源提供要求のエントリを取り出す。取り出したエントリに対して、受け取った応答の内容を記録する。すべての応答が到着した時点で、Ｓ４０２に進む。
ステップＳ４０２：ステップＳ４０１で受け取った応答のうち、空き資源を対象とする資源提供の通知（すなわち、Ｓ２０５で発行された通知）が含まれているか否かを判断する。獲得可能な空き資源がある場合にはＳ４０３に進み、そうでない場合にはＳ４０４に進む。
ステップＳ４０３：ステップＳ４０１で受け取った資源提供状況通知のうち、空き資源を対象とするものの中から１つを選択する。ここでの選択基準は本発明の対象外である。選択基準の例として、性能情報（ＣＰＵクロック周波数など）、獲得済みの資源との距離（同一の資源管理装置の管理下にある資源を優先する）がある。本ステップの後、ステップＳ４０６に進む。
ステップＳ４０４：ステップＳ４０１で受け取った応答のうち、旧業務に割り当てられた資源提供の通知（すなわち、ステップＳ２１１で発行された通知）が含まれているか否かを判断する。含まれている場合にはステップＳ４０５に、含まれていない場合にはステップＳ４０９にそれぞれ進む。
ステップＳ４０５：ステップＳ４０１で受け取った資源提供状況通知の中から１つを選択する。ここでの選択基準には特に限定はなく、選択基準の例としてステップＳ４０３で挙げたものと同じでよい。
ステップＳ４０６：ステップＳ４０１で受け取った資源提供状況通知のうち、ステップＳ４０３またはＳ４０５で選択したもの以外について、通信手段２６０を介して、その送信元である資源管理装置４００に「構成変更取り消し要求」を送る。この要求は、ステップＳ２０４またはＳ２１０で予約した資源について、予約（すなわち、構成変更のための操作内容）を破棄する効果を持つ。構成変更取り消し要求に関する処理の詳細については、後述する。
ステップＳ４０７：ステップＳ４０３またはＳ４０５で選択した資源提供状況通知について、通信手段２６０を使用して、その送信元である資源管理装置に「構成変更実行要求」を送る。この要求は、ステップＳ２０４またはＳ２１０で予約した資源について、実際に資源の状態を変更する効果を持つ。構成変更実行要求に関する処理の詳細については、後述する。
ステップＳ４０８：記憶装置内のコンテキストＤＢに、ステップＳ４０７で送信した構成変更実行要求に関するエントリを追加し、資源獲得決定処理を終了する。このエントリには、当該構成変更実行要求を識別するリクエストＩＤと、獲得対象の資源を識別するリソースＩＤと、送信先の資源管理装置を識別するエンドポイント参照が含まれる。
ステップＳ４０９：コンテキストＤＢから、処理対象の資源提供要求と、それに対応する資源提供状況通知に関するエントリを削除する。
ステップＳ４１０：外部入出力手段２５０を介して、接続先の業務管理装置に、資源獲得に失敗したことを通知し、処理を終了する。
【００８１】
なお、ステップＳ４０１において、あらかじめ設定しておいた時間が経過した時点で強制的にＳ４０２に進むというタイムアウトの機構を追加することもできる。
【００８２】
図２１に、上記業務管理装置Ｘ（獲得側）における資源獲得決定処理に関する通信内容およびＤＢ更新内容を示す。ここで示す実行例は、資源管理装置ＡとＢから、１台ずつのコンピュータについての資源提供状況通知を受け取り、資源管理装置Ａが提供する資源の獲得を決定した場合に相当する。この場合、資源管理装置Ａが提供する資源については、ステップＳ４０４の分岐でステップＳ４０５に進み、資源管理装置Ｂが提供する資源については、ステップＳ４０４の分岐でステップＳ４０９に進むことになる。
【００８３】
図２１は、以下の各部分からなる。
a) 資源提供状況通知（資源管理装置Ａ→業務管理装置Ｘ）：hostA3の再配分が可能であることを示す通知である。この通知は、業務管理装置Ｘが発行した資源提供要求のリクエストＩＤと、資源管理装置Ａによって選択された資源のリソースＩＤとを含む。
b) 資源提供状況通知（資源管理装置Ｂ→業務管理装置Ｘ）：hostB3の再配分が可能であることを示す通知である。
c) 構成変更実行要求 (業務管理装置Ｘ→資源管理装置Ａ)：hostA3を獲得するための構成変更を実行するための要求である。この要求は、a)のリクエストＩＤを含む。
d) 構成変更取り消し要求（業務管理装置Ｘ→資源管理装置Ｂ）：hostB3に対する構成変更を取り消すための要求である。この要求は、b)のリクエストＩＤを含む。
e) hostA3およびhostB3についての資源獲得決定処理が完了した後の、業務管理装置ＸにおけるコンテキストＤＢの内容。図１８に示した資源獲得決定処理の実行前の状態と比較すると、リクエストＩＤ “X-req1” に対応する要求が資源提供要求から構成変更実行要求に置き換わっていることと、リクエストＩＤ “X-req2” に対応する要求が破棄されていることという違いがある。
【００８４】
図１１及び図１２を参照し、資源管理装置４００における構成変更処理（構成変更実行処理／構成変更取り消し処理）Ｓ５の詳細ついて説明する。図１１は構成変更実行処理を示し、図１２は構成変更取消処理を示す。
【００８５】
資源源管理装置４００は、獲得側の業務管理装置２００から、構成変更実行要求を受けると、図１１の処理を、構成変更手段４２０を使用して実行する。資源管理装置４００は、獲得側の業務管理装置２００から、構成変更取り消し要求を受けると、図１２の処理を、構成変更手段４２０を使用して実行する。構成変更実行要求および構成変更取り消し要求には、対応する資源提供要求を示すリクエストＩＤが含まれる。
【００８６】
図１１の構成変更実行処理における各ステップの詳細を示す。
ステップＳ５０１：構成変更の対象となる資源が再配分の対象であるかどうかを判断する。再配分の対象であるかどうかは、記憶装置４４０内の管理資源情報ＤＢを参照することによって判断できる。すなわち、構成変更実行要求に含まれるリソースＩＤをキーとして管理資源情報ＤＢから資源情報を取得し、その中の「割り当て先業務」の値が空でない場合には、再配分の対象であると判断する。再配分の対象である場合にはステップＳ５０２に、そうでない場合はステップＳ５０７に、それぞれ進む。
ステップＳ５０２：構成変更対象の資源が、解放可能な状態になるまで待機する。例えば、対象の資源がWWWサーバである場合、当該WWWサーバに接続中のクライアントがなくなるまで待機する。この例では、待機状態に移るのに先立って、当該WWWサーバへの新規クライアントの受付を停止する操作（具体的には、負荷分散装置に対する転送先サーバの設定変更）を行う。
ステップＳ５０３：構成変更対象の資源を、旧業務から解放する。具体例は、資源であるコンピュータ上で動作しているWWWサーバの停止である。
ステップＳ５０４：構成変更対象の資源を、新業務に割り当てる。具体的には、資源であるコンピュータ上でのアプリケーションプログラムの起動である。
ステップＳ５０５：管理資源情報ＤＢにおける構成変更対象の資源について、割り当て先業務を新業務に変更する。
ステップＳ５０６：通信手段４３０を介して、解放側の業務管理装置２００に、「資源解放完了通知」を送る。この通知には、ステップＳ２１１において送信した資源解放要求Ｓ２を識別するリクエストＩＤが含まれる。このリクエストＩＤと送信先のエンドポイント参照とは、以下の手順により取得することができる。
【００８７】
(1)記憶装置４４０内のコンテキストＤＢから、受け取った構成変更実行要求に含まれるリクエストＩＤをキーとして、ステップＳ２１４で格納した資源提供要求のエントリを取得する。このエントリには、資源解放要求のリクエストＩＤが含まれる。
(2)コンテキストＤＢから、(1)で取得した資源解放要求のリクエストＩＤをキーとして、ステップＳ２１４で格納した資源解放要求のエントリを取得する。このエントリに、送信先のエンドポイント参照が含まれる。本ステップ完了後、ステップＳ５０９に進む。
【００８８】
ステップＳ５０７：構成変更対象の資源を、新業務に割り当てる（ステップＳ５０３と同じ処理）。
ステップＳ５０８：管理資源情報ＤＢ（記憶装置４４０内）における構成変更対象の資源について、割り当て先業務を新業務に変更する（Ｓ５０４と同じ処理）。本ステップ終了後、ステップＳ５０９に進む。
ステップＳ５０９：管理資源情報ＤＢにおける構成変更対象の資源について、構成変更のための予約（ステップＳ２０４またはＳ２１０でセットされたもの）を解除する。
ステップＳ５１０：通信手段４３０を介して、獲得側の業務管理装置２００に、「資源提供完了通知」を送る。この通知には、当該資源管理装置が受け取った構成変更実行通知中のリクエストＩＤが含まれる。この通知を送るために必要な情報（送信先エンドポイント参照およびリクエストＩＤ）は、ステップＳ２０６またはＳ２１４で記憶装置４４０内のコンテキストＤＢに記録されたものである。
ステップＳ５１１：コンテキストＤＢにおける処理中の構成変更実行処理に関連するエントリを削除して、構成変更実行処理を終了する。具体的には、ステップＳ２０６またはＳ２１４において格納したエントリを削除する。
【００８９】
なお、資源再配分ありの場合について、ステップＳ５０６、Ｓ５０９、Ｓ５１０の各ステップ間は、任意の順序に変更してもよい。同様に、資源再配分なしの場合について、ステップＳ５０９とＳ５１０は逆順にしても良い。
【００９０】
次に、図１２の構成変更取り消し処理における各ステップの詳細を示す。
ステップＳ５１２：構成変更取り消しの対象となる資源が再配分の対象であるかどうかを判断する。ここでの判断方法はステップＳ５０１で示したものと同じである。再配分対象である場合にはステップＳ５１３に、そうでない場合にはステップＳ５１４に、それぞれ進む。
ステップＳ５１３：通信手段４３０を使用して、解放側の業務管理装置２００に、「資源解放取り消し通知」を送る。この通知には、ステップＳ２１１において送信した資源解放要求Ｓ２を識別するリクエストＩＤが含まれる。このリクエストＩＤと送信先のエンドポイント参照を取得する方法は、ステップＳ５０６で述べた方法と同じである。
ステップＳ５１４：管理資源情報ＤＢ（記憶装置４４０内）における構成変更対象の資源について、構成変更のための予約を解除する（ステップＳ５０９と同じ）。
ステップＳ５１５：コンテキストＤＢ（記憶装置内）における、処理中の構成変更取り消し処理に関連するエントリを削除して、構成変更取り消し処理を終了する（ステップＳ５１１と同様）。
【００９１】
図２２に、上記資源管理装置Ａにおける構成変更実行処理実行後のＤＢの内容を示す。図２２は、以下の部分からなる。
a) 構成変更実行後の、資源管理装置Ａにおける管理資源情報ＤＢの内容。図１９に示した構成変更実行前の状態と比較すると、hostA3についての予約が消去されていることと、hostA3の割り当て先業務がＹからＸに変わっていることという違いがある。
b) 構成変更実行後の、資源管理装置ＡにおけるコンテキストＤＢの内容。図１９の構成変更実行前の状態と比較すると、業務管理装置Ｘから受け取った資源提供要求（リクエストＩＤ＝X-req1）と、業務管理装置Ｙに対して送った資源解放要求（リクエストＩＤ＝A-req1）の2つのエントリが消去されているという違いがある。
【００９２】
図１３を参照し、資源解放側の業務管理装置２００における資源解放完了処理Ｓ６について説明する。資源解放完了処理Ｓ６は、資源管理装置４００から、解放側の業務管理装置２００に対して、「資源解放完了通知」または「資源解放取り消し通知」が送られた場合に、当該業務管理装置２００が資源情報更新手段２４０を使用して実行する。図１３は、資源解放が実行された場合（すなわち、資源解放完了通知が到着した場合）の処理手順を示すものである。以下では、最初に資源解放が実行された場合の各ステップの詳細を示した後で、資源解放が取り消された場合（すなわち、資源解放取り消し通知が到着した場合）の処理手順を示す。
【００９３】
ステップＳ６０１：業務資源情報ＤＢ（記憶装置２７０内）から、解放対象の資源についてのエントリを削除する。解放対象の資源を識別するリソースＩＤは、コンテキストＤＢ（記憶装置内）における、資源解放完了通知に含まれるリクエストＩＤに対応するエントリに記述されている。
ステップＳ６０２：外部入出力手段２５０を使用して、接続先の管理者端末１００に、資源解放が完了した旨を出力する。
ステップＳ６０３：コンテキストＤＢから、資源解放完了通知に対応するエントリ（ステップＳ６０１において参照するエントリと同じ）を削除する。
【００９４】
なお、上記処理において、ステップＳ６０１とＳ６０２とを逆順にしてもよい。
【００９５】
資源解放取り消し通知が到着した場合の処理手順は、上記処理手順とは以下の相違点がある。まず、ステップＳ６０１の処理に代えて、業務資源情報ＤＢにおける、資源解放取り消し通知で参照されるエントリについて、解放予定マークを削除する。資源情報そのものは削除しない。ステップＳ６０２の処理に代えて、資源解放が取り消されたことを示す情報を管理者端末に出力する。または、管理者端末に何も出力しなくてもよい。ステップＳ６０３では、資源解放完了通知に対応するエントリに代えて、資源解放取り消し通知で参照されるエントリが削除の対象となる。
【００９６】
図２３は、資源解放完了処理を実行した後の、業務管理装置Ｙにおける各ＤＢの内容を示す。図２３には、以下の内容が示されている。
a) 資源解放完了処理を完了した後の、業務管理装置Ｙにおける業務資源情報ＤＢの内容。図２０に示す資源解放完了処理を行う前の状態と比較すると、hostA3についてのエントリが消去されているという違いがある。
b) 資源解放完了処理を完了した後の、業務管理装置ＹにおけるコンテキストＤＢの内容。図２０に示す資源解放完了処理を行う前の状態と比較すると、資源管理装置Ａから受け取った資源解放要求（リクエストＩＤ＝A-req01）についてのエントリが消去されているという違いがある。
【００９７】
図１４を参照して、資源獲得側の業務管理装置における資源獲得完了処理Ｓ７について説明する。資源獲得完了処理Ｓ７は、資源管理装置４００から、獲得側の業務管理装置２００に対して、資源提供完了通知が送られた場合に、当該業務管理装置が、資源情報更新手段２４０を使用して実行する。資源獲得完了処理Ｓ７は、以下のステップから成る。
ステップＳ７０１：業務資源情報ＤＢ（記憶装置２７０内）に、獲得対象の資源についてのエントリを追加する。ここで、追加対象の資源を識別するリソースＩＤを取得するために、コンテキストＤＢ（記憶装置内）から、資源提供完了通知に含まれるリクエストＩＤをキーとする検索処理を行う。
ステップＳ７０２：外部入出力手段２５０を使用して、接続先の管理者端末１００に、資源獲得が完了したことを示す情報を出力する。
ステップＳ７０３：コンテキストＤＢから、資源獲得完了通知に対応するエントリ（Ｓ７０１において参照するエントリと同じ）を削除する。
【００９８】
なお、上記のステップＳ７０１とＳ７０２を逆順にしてもよい。
【００９９】
図２４は、上記資源獲得完了処理における各ステップを実行した後の、業務管理装置Ｘにおける各ＤＢの内容を示す。図２４には、以下の内容が含まれる。
a) ステップＳ７０１実行後の、業務管理装置Ｘにおける業務資源情報ＤＢの内容。図１６（ａ）に示した初期状態と比較すると、hostA3のエントリが新規に追加されていることが相違点である。
b) ステップＳ７０３実行後の、業務管理装置ＸにおけるコンテキストＤＢの内容。図２１（ｅ）に示した資源獲得処理実行前の状態と比較すると、資源管理装置Ａに対する構成変更実行要求に相当するエントリが削除されていることが相違点である。
【０１００】
図２５を参照し、資源管理装置におけるループ検出処理について説明する。ループ検出処理は、本発明の第２の実施形態において、図８の資源再配分処理におけるステップＳ２０７とＳ２０８の間に挿入され、資源再配分の候補となる資源を絞り込む。ループ検出処理は、記憶装置（４４０）内に記憶される資源再配分履歴の参照を伴う。資源再配分履歴には、当該資源管理装置の管理下にある資源に関して、過去に実行した資源再配分の結果が記録されている。資源再配分履歴の各エントリは、以下の情報を含む。
（１）日時：該当する資源再配分を実行した日付と時刻。
（２）再配分対象資源：資源再配分の対象となる資源を識別するリソースＩＤ。
（３）旧業務：対象資源について、再配分前での割り当て先の業務名。
（４）新業務：対象資源について、再配分後での割り当て先の業務名。
【０１０１】
図２６に、資源再配分履歴の一例を示す。この図における１番のエントリは、２００６年４月１日の１０時ちょうどにhostB1を対象とする資源再配分が発生し、割り当て先業務がＸからＹに変わったことを示している。以下では、ループ検出処理の手順を詳細に説明した後で、資源再配分履歴に対するエントリの追加・削除方法を説明する。
【０１０２】
図２５の処理手順は、以下の各ステップからなる。この手順は、Ｓ２０７における検索結果である個々の資源（以下では、「検査対象資源」と呼ぶ）に対して適用する。
ステップＳ８０１：変数oldUserに、検査対象資源の現在の割り当て先業務名（旧業務名）を代入する。さらに、変数newUserに、検査対象資源の新業務名を代入する。oldUserおよびnewUserは、ループ検出処理内でのみ使用する変数である。
ステップＳ８０２：資源再配分履歴（記憶装置４４０内）の中に、再配分対象資源が検査対象資源と一致し、かつ新業務が変数oldUserに一致するエントリがあるかどうかを判断する。ある場合にはステップＳ８０３に、ない場合にはステップＳ８０５にそれぞれ進む。
ステップＳ８０３：ステップＳ８０２の条件を満たすエントリの中に、旧業務が変数newUserに一致するものがあるかどうかを判断する。ある場合にはステップＳ８０４に、ない場合にはステップＳ８０６にそれぞれ進む。
ステップＳ８０４：検査対象資源の再配分によりループが発生すると判断し、検査対象資源を再配分の対象から除外し、ループ検出処理を終了する。
ステップＳ８０５：変数oldUserに、ステップＳ８０２で取得したエントリの旧業務の値を代入した後、ステップＳ８０２以降の処理を繰り返す。
ステップＳ８０６：検査対象資源の再配分によりループは発生しないと判断し、検査対象資源を再配分の対象に加えて、ループ検出処理を終了する。
【０１０３】
資源再配分履歴に対するエントリの追加は、資源再配分が行われることが確定した時点で行う。具体的には、ステップＳ５０５（図１１）における管理資源情報ＤＢ更新の後（または前）に、完了した資源再配分の内容を新規エントリとして資源再配分履歴に追加する。資源再配分履歴中のエントリの削除は、有効期限に基づいて行う。エントリの有効期限は、記憶装置４４０内の設定情報ＤＢに、「資源再配分履歴有効期間」の値に基づいて決定する。すなわち、資源再配分処理を実行した時点から、「資源再配分履歴有効期間」の間だけ経過した時刻を、エントリの有効期限とする。
【０１０４】
資源管理装置Ｂにおける資源再配分履歴が図２６の内容であるときに、資源hostB1の割り当てを業務Ｚから業務Ｐに変更する資源再配分について、ループ検出処理の具体的な動作例を以下に示す。
（１）Ｓ８０１において、oldUserとnewUserに、それぞれＺとＰを代入する。
（２）Ｓ８０２において、番号２のエントリ（新業務＝oldUser＝Ｚ）を取得する。
（３）Ｓ８０３において、番号２の旧業務（＝Ｙ）は、newUserの値（＝Ｐ）とは一致しない。
（４）Ｓ８０５において、oldUserにＹを代入する。
（５）Ｓ８０２において、番号１のエントリ（新業務＝oldUser＝Ｙ）を取得する。
（６）Ｓ８０３において、番号１の旧業務（＝Ｘ）は、newUserの値（＝Ｐ）とは一致しない。
（７）Ｓ８０５において、oldUserにＸを代入する。
（８）Ｓ８０２において、再配分対象資源がhostB1で、かつ新業務がＸであるエントリはない。
（９）Ｓ８０６において、検査対象資源hostB1を再配分対象に加えて、ループ検出処理を終了する。
【産業上の利用可能性】
【０１０５】
本発明は、データセンターが所有する計算機資源を、組織内での複数の業務に動的に配分するためのリソースブローカといった用途に適用できる。また、複数のデータセンターに分散配置された計算機資源を、複数の組織に対して動的に配分する用途にも適用可能である。
【図面の簡単な説明】
【０１０６】
【図１】本発明の一実施形態に係る分散資源配分システムの構成を示すブロック図である。
【図２】業務管理装置の内部構成を示すブロック図である。
【図３】資源管理装置の内部構成を示すブロック図である。
【図４】資源再配分を伴わない場合についての、本発明を実施するための最良の形態の動作を示すフローチャートである。
【図５】資源再配分を伴う場合についての、本発明を実施するための最良の形態の動作を示すフローチャートである。
【図６】業務管理装置における資源要求処理の手順を示すフローチャートである。
【図７】資源管理装置における資源配分処理の動作手順を示すフローチャートである。
【図８】資源管理装置における資源再配分処理の手順を示すフローチャートである。
【図９】業務管理装置における資源解放決定処理の手順を示すフローチャートである。
【図１０】業務管理装置における資源獲得決定処理の手順を示すフローチャートである。
【図１１】資源管理装置における構成変更実行処理の手順を示すフローチャートである。
【図１２】資源管理装置における構成変更取り消し処理の手順を示すフローチャートである。
【図１３】業務管理装置における資源解放完了処理の手順を示すフローチャートである。
【図１４】業務管理装置における資源獲得完了処理の手順を示すフローチャートである。
【図１５】動作例におけるシステムの構成と初期状態での資源配分状況を示す表である。
【図１６】動作例における、初期状態での業務管理装置Ｘ，Ｙにおける業務資源情報ＤＢの内容を示す表である。
【図１７】動作例における、初期状態での資源管理装置Ａ，Ｂにおける管理資源情報ＤＢの内容を示す表である。
【図１８】業務管理装置Ｘが発行する資源提供要求の内容と、業務管理装置Ｘにおける資源要求処理実行後のコンテキストＤＢの内容を示す表である。
【図１９】資源管理装置Ａにおける管理資源情報ＤＢの内容、業務管理装置Ｙに対する資源解放要求の内容、およびコンテキストＤＢの内容を示す表である。
【図２０】業務管理装置Ｙにおける業務資源情報ＤＢとコンテキストＤＢの内容を示す表である。
【図２１】業務管理装置Ｘの発行する構成変更実行要求、構成変更取り消し要求、およびコンテキストＤＢの内容を示す表である。
【図２２】資源管理装置Ａにおける管理資源情報ＤＢとコンテキストＤＢの内容を示す表である。
【図２３】業務管理装置Ｙにおける業務資源情報ＤＢとコンテキストＤＢの内容を示す表である。
【図２４】業務管理装置Ｘにおける業務資源情報ＤＢとコンテキストＤＢの内容を示す表である。
【図２５】資源管理装置におけるループ検出処理の手順を示すフローチャートである。
【図２６】資源管理装置における資源再配分履歴の例を示す表である。
【図２７】従来技術による分散資源配分システムの構成を示すブロック図である。
【符号の説明】
【０１０７】
１００  管理者端末
２００  業務管理装置
３００  資源情報検索装置
４００  資源管理装置
５００  資源
２１０  資源要求処理手段
２２０  資源獲得決定手段
２３０  資源解放決定手段
２４０  資源情報更新手段
２５０  外部入出力手段
２６０  通信手段
２７０  記憶装置
４１０  資源配分手段
４２０  構成変更手段
４３０  通信手段
４４０  記憶装置
４５０  ループ検出手段
【図１】
0004529812.tif 000002
【図２】
0004529812.tif 000003
【図３】
0004529812.tif 000004
【図４】
0004529812.tif 000005
【図５】
0004529812.tif 000006
【図６】
0004529812.tif 000007
【図７】
0004529812.tif 000008
【図８】
0004529812.tif 000009
【図９】
0004529812.tif 000010
【図１０】
0004529812.tif 000011
【図１１】
0004529812.tif 000012
【図１２】
0004529812.tif 000013
【図１３】
0004529812.tif 000014
【図１４】
0004529812.tif 000015
【図１５】
0004529812.tif 000016
【図１６】
0004529812.tif 000017
【図１７】
0004529812.tif 000018
【図１８】
0004529812.tif 000019
【図１９】
0004529812.tif 000020
【図２０】
0004529812.tif 000021
【図２１】
0004529812.tif 000022
【図２２】
0004529812.tif 000023
【図２３】
0004529812.tif 000024
【図２４】
0004529812.tif 000025
【図２５】
0004529812.tif 000026
【図２６】
0004529812.tif 000027
【図２７】
0004529812.tif 000028