図3に本発明の実施の形態に係るシステム全体を示す。図3に示すように、複数の業務サービス(業務サービス1乃至N)が複数のサイトに含まれる複数の資源ノードを共有する分散コンピューティング環境を想定する。このような分散コンピューティング環境は、サービス層、グリッドミドルウェア層及び資源層に分かれており、サービス層には複数のユーザが利用する各業務サービスが含まれ、資源層には各資源ノードが含まれ、グリッドミドルウェア層には資源ノードを各業務サービスに有効に割り当てるための機構が含まれている。具体的には、グリッドミドルウェア層は、各業務サービスに対応して局所最適化機構を含むグリッドサービスサブシステムと、システム全体についての資源配分を決定する資源ブローカリングサブシステム100と、各サイトにおける切替え実行機構とが含まれる。資源ブローカリングサブシステム100は、全体最適化機構110と、物理資源管理機構120と、切替え指令機構130とを有する。
例えば業務サービス1においてユーザからの要求に基づき資源を獲得する際には、グリッドサービスサブシステム1の局所最適化機構1において予め定められたポリシーに従って獲得すべき資源に対するBV(ローカルBVと呼ぶ)を算出し、当該ローカルBVを含む資源要求を資源ブローカリングサブシステム100の全体最適化機構110に出力する。全体最適化機構110は、予め設定されている重要度再計算ポリシーに従ってローカルBVをグローバルBVに変換して、当該グローバルBVに従って資源の割り当てを決定する。資源の割り当てがなされた場合には資源割り当てが行われたことを要求元の局所最適化機構1に返信する。また、全体最適化機構110は、資源割り当ての結果を物理資源管理機構120に出力する。物理資源管理機構120は、資源の切り替えなどが発生した場合には、物理的にいずれの資源ノードに業務サービスを割り当てるのかを特定し、切替え指令機構130に指示を出力する。切替え指令機構130は、指示に係る、特定の物理的な資源ノードに対して要求された業務サービスを割り当てる旨の命令を該当切替え実行機構に出力する。該当切替え実行機構では、切替え指令機構130の命令に従って、資源ノードに実行する処理の切り替えを行わせる。
本実施の形態は、各業務サービスに対応するグリッドサービスサブシステムの局所最適化機構と、資源ブローカリングサブシステム100の全体最適化機構110とに主に関係するので、他の部分についてはこれ以上述べないものとする。
次に図4を用いて、主に局所最適化機構の構成を説明する。各業務サービスの局所最適化機構は、当該業務サービスの管理者によるローカルBV計算ポリシーの入力を受け付け格納するポリシー設定部202と、ポリシー設定部202に設定されたローカルBV計算ポリシーに基づいて当該業務サービスに割り当てられるべき又は割り当てられた資源ノードに対するローカルBVを算出するBV計算部203と、自業務サービスで使用している資源ノードの管理を行い、BV計算部203により算出されたローカルBVを当該ローカルBVの通知として又は資源の要求(資源の返却の場合もある)として全体最適化機構110に送信する資源管理部201とを有する。
局所最適化機構のポリシー設定部202には、業務サービスに応じて独自のローカルBV計算ポリシーが設定され、BV計算部203では、独自のローカルBV計算ポリシーに従ってローカルBVが計算される。従来では、全体最適化機構110の運用管理者と各業務サービスの管理者とが協議の上で、局所最適化機構におけるローカルBVの計算ポリシー(分布)などが決定され、設定されていた。しかし、本実施の形態では、全体最適化機構110では運用管理者の設定に従ってシステム全体に対する調整を行うため、局所最適化機構でも独自のローカルBV計算ポリシーに従ってローカルBVが算出されるようにする。例えば、1から100までのローカルBVを算出するようにする。但し、以下で述べるように、あまりに偏った分布でローカルBVを算出するような場合には、全体最適化機構110の方で強制的な修正も実施される。
次に、全体最適化機構110の具体的構成について図5Aを用いて説明する。全体最適化機構110は、ローカルBV分布監視テーブル1111(図5B)を有するローカルBV分布監視・調整部111と、分布調整ポリシー・テーブル1121(図5C)を有する分布調整ポリシー設定部112と、BV再計算部113と、BV再計算ポリシー・テーブル1141(図5D)を有するBV再計算ポリシー設定部114と、資源管理テーブル1151(図5E)を有する資源管理部115と、資源要求/返却受信部116と、資源要求管理テーブル1171(図5F)と配分変更管理テーブル1172(図5G)とを有する配分決定部117とを有する。
ローカルBV分布監視・調整部111は、各業務サービスの局所最適化機構からローカルBVの更新通知(サービスID、ローカルBV及び資源IDを含む)を受信して処理を行う。処理の際には、分布調整ポリシー・テーブル1121を参照する。また、必要に応じて、BV再計算ポリシー設定部114に設定を行わせる。さらに、ローカルBVの調整を行った場合には、その調整結果をBV再計算部113に出力する。
ローカルBV分布監視テーブル1111は、サービスID毎に、受信回数、カウント開始時刻、平均、分散、平均の閾値フラグ、分散の閾値フラグ及び状態フラグとを格納するようになっている。カウント開始時刻は、カウント開始からの時間を計算するために用いられるため、経過時間そのものを独立に更新しつつ保持するようにしても良い。
図5Aに示すように、分布調整ポリシー設定部112は、全体最適化機構110の運用管理者から設定ファイルを受け取ったり、表示装置に設定用画面(GUI:Graphical User Interface)を表示して入力を行わせ、分布調整ポリシー・テーブル1121に格納する。分布調整ポリシー・テーブル1121は、図5Cに示すように、サービスID毎に、分布監視及び調整を行うか否かを表す分布監視フラグ、猶予期間(時間/回数)、好ましい分布関数、好ましい分布関数のパラメタ(平均、分散)、平均の差の閾値、及び分散の差の閾値を格納するようになっている。
BV再計算ポリシー設定部114は、全体最適化機構110の運用管理者から設定ファイルを受け取ったり、表示装置に設定用画面を表示して入力を行わせ、BV再計算ポリシー・テーブル1141に格納する。BV再計算ポリシー・テーブル1141は、図5Dに示すように、サービスID毎に、再計算を行うか否かを表す再計算フラグ、パラメタの値(例えば区間圧縮率及び区間シフト値、又はグラフ/関数)、及びBVの範囲(下限値及び上限値)を格納するようになっている。
BV再計算部113は、各業務サービスの局所最適化機構からローカルBVの更新通知を受信し、BV再計算ポリシー・テーブル1141に格納されているデータに基づきローカルBVをグローバルBVに変換する処理を実施する。なお、資源要求に含まれるローカルBVに対して処理を行う場合もある。ローカルBVの更新通知を受信した場合には、算出したグローバルBVを資源管理部115に出力する。
資源管理部115は、BV再計算部113又は配分決定部117からの指示に応じて資源管理テーブル1151を更新する。資源管理テーブル1151は、図5Eに示すように、資源ID毎に、グローバルBV、配分先サービスIDを登録するようになっている。
資源要求/返却受信部116は、各業務サービスの局所最適化機構からローカルBVを含む資源の要求を受信した場合には、BV再計算部113にグローバルBVの算出を依頼し、当該グローバルBVを含む資源の要求を配分決定部117に出力する。各業務サービスの局所最適化機構から資源IDを含む資源の返却要求を受信した場合には、配分決定部117に出力する。
配分決定部117は、グローバルBVを含む資源の要求を資源要求/返却受信部116を介して受信し、資源要求管理テーブル1171に登録すると共に、資源管理部115が管理する資源管理テーブル1151を参照して資源配分の変更の是非などを判断する。資源の要求に係るグローバルBVが現在割り当てが行われている資源の最低グローバルBVより大きい場合など、資源配分の切り替えを行う場合には、配分変更管理テーブル1172を参照して、切り替え中の資源でないことを確認の上、切り替えに関するデータを配分変更管理テーブル1172に登録し、資源配分の切り替えが完了すると、資源管理部115に資源管理テーブル1151の変更を指示する。なお、切り替えが行われれば、資源要求管理テーブル1171及び配分変更管理テーブル1172に登録されている該当レコードは、無効化される。一方、資源IDを含む資源の返却を資源要求/返却受信部116を介して受信した場合には、配分決定部117は、資源管理部115に返却に係る資源の解放を資源管理テーブル1151へ登録させる。また、資源管理部115に、資源要求管理テーブル1171において最もグローバルBVが大きい値の業務サービスに対する空いた資源の割り当てを資産管理テーブル1151へ登録させる。
資源要求管理テーブル1171は、図5Fに示すように、要求元サービスIDと、要求資源数と、要求時のグローバルBVとを格納するようになっている。また、配分変更管理テーブル1172は、図5Gに示すように、資源IDと、グローバルBVと、取り上げ元サービスIDと、割り当て先サービスIDとを格納するようになっている。
なお、本実施の形態においては、資源管理部115、資源要求/返却受信部116及び配分決定部117については主要部ではないので、図6A及び図6Bを用いてその具体的な動作を説明にするにとどめる。
図6Aでは、業務サービス1からの資源要求に対して、業務サービス2に割り当てられている資源を振り替える場合を説明する。まず、業務サービス1の局所最適化機構の資源管理部201は、資源の要求を全体最適化機構110に送信する前に、BV計算部203にBV計算要求を出力する(ステップ(1))。BV計算部203は、資源管理部201からBV計算要求を受信し、ローカルBVをポリシー設定部202に設定されているポリシー(例えば予め定義されているセッション数とローカルBVとの関数など)に従って算出し(ステップ(2))、資源管理部201に出力する(ステップ(3))。資源管理部201は、ローカルBVを受信すると、当該ローカルBVを含む資源要求を全体最適化機構110の資源要求/返却受信部116に送信する(ステップ(4))。
全体最適化機構110の資源要求/返却受信部116は、業務サービス1の局所最適化機構の資源管理部201からローカルBVを含む資源要求を受信し、BV再計算部113にローカルBVに対するグローバルBVの計算要求を出力する(ステップ(5))。BV再計算部113は、BV再計算ポリシー・テーブル1141を参照して、受信したローカルBVに対するグローバルBVを計算する(ステップ(6))。この処理については、以下で詳細に述べる。BV再計算部113は、グローバルBVを資源要求/返却受信部116に出力し(ステップ(7))、資源要求/返却受信部116は当該グローバルBVを含む資源要求を配分決定部117に出力する。配分決定部117は、資源要求管理テーブル1171に、資源要求に係るデータ(要求元の業務サービスのサービスID(ここでは業務サービス1)、要求資源数、及びグローバルBV(要求時))を登録すると共に、資源管理部115の資源管理テーブルを参照して資源要求に対する資源の割り当ての是非を判断する。ここでは業務サービス2に割り当てられている資源を取り上げて、本資源要求の要求元業務サービスに割り当てるものと決定する(ステップ(8))。この場合には、配分変更管理テーブル1172に、業務サービスが切り替えられる資源の資源ID、資源要求に含まれるグローバルBV、資源を取り上げられる業務サービスのサービスIDである取り上げ元サービスID(ここでは業務サービス2)、資源要求の送信元業務サービスのサービスIDである割り当て先サービスID(ここでは業務サービス1)が登録される。
また、配分決定部117は、取り上げられる資源の資源IDを含む資源解放要求を、取り上げ元サービスIDで特定される業務サービス(ここでは業務サービス2)の局所最適化機構における資源管理部201に送信する(ステップ(9))。業務サービス2の局所最適化機構における資源管理部201は、全体最適化機構110から取り上げられる資源の資源IDを含む資源解放要求を受信し、当該資源の資源解放を登録する(ステップ(10))。また、資源管理部201は、BV計算部203にBV計算要求を出力する(ステップ(11))。BV計算部203は、資源管理部201からBV計算要求を受信すると、BV計算を実施する(ステップ(12))。そして、計算結果のローカルBVを資源管理部201に出力する(ステップ(13))。資源管理部201は、BV計算部203からローカルBVを受信し、当該ローカルBVと資源IDとサービスIDとを含むローカルBV更新通知を全体最適化機構110のBV再計算部113に送信する(ステップ(14))。
全体最適化機構110のBV再計算部113は、業務サービス2の局所最適化機構からローカルBV更新通知を受信し、以下で説明するようなグローバルBVの計算を実施する(ステップ(15))。そして、BV再計算部113は、算出されたグローバルBVをサービスID及び資源IDと共に資源管理部115に出力する(ステップ(16))。資源管理部115は、資源管理テーブル1151において、該当レコードのグローバルBVを更新する(ステップ(17))。
また、業務サービス2の局所最適化機構における資源管理部201は、資源IDを含む資源返却通知を、全体最適化機構110における資源要求/返却受信部116を介して配分決定部117に送信する(ステップ(18))。そうすると、配分決定部117は、資源管理部115に、切り替えに係る資源IDに対応して、割り当て先のサービスID(ここでは業務サービス1)及び要求時のBVを登録させる(図6B:ステップ(19))。また、資源要求管理テーブル1171及び配分変更管理テーブル1172において、該当レコードを無効化する。そして、配分決定部117は、割り当て先のサービスIDに係る業務サービス(ここでは業務サービス1)の資源管理部201に、資源割当て通知を送信する(ステップ(20))。
業務サービス1の局所最適化機構における資源管理部201は、全体最適化機構110から資源割当て通知を受信し、自身の資源管理テーブルを更新すると共に、BV計算部203にBV計算要求を出力する(ステップ(21))。BV計算部203は、資源管理部201からBV計算要求を受信すると、BV計算を実施する(ステップ(22))。そして、計算結果のローカルBVを資源管理部201に出力する(ステップ(23))。資源管理部201は、BV計算部203からローカルBVを受信し、当該ローカルBVと資源IDとサービスIDとを含むローカルBV更新通知を全体最適化機構110のBV再計算部113に送信する(ステップ(24))。
全体最適化機構110のBV再計算部113は、業務サービス1の局所最適化機構からローカルBV更新通知を受信し、以下で説明するようなグローバルBVの計算を実施する(ステップ(25))。そして、BV再計算部113は、算出されたグローバルBVをサービスID及び資源IDと共に資源管理部115に出力する(ステップ(26))。資源管理部115は、資源管理テーブル1151において、該当レコードのグローバルBVを更新する(ステップ(27))。このような処理を実施することによって、資源の切り替えが行われる。
なお、図6A及び図6Bの処理フローは、同様の機能を実現できれば様々な変更が可能である。例えば、ステップ(11)乃至(13)については省略できる。すなわち、解放する資源のローカルBVを再計算せずに、ステップ(10)の資源解放で該当資源のエントリを、局所最適化機構の資源管理テーブルから削除するだけでも良い。この場合、ステップ(14)を、ローカルBVが「資源の解放」を意味する所定の値に更新されたことを通知するステップに変更する。また、ステップ(14)をステップ(18)に吸収してもよい。すなわち、資源返却通知(ステップ(18)に相当)を受け取った時に該当資源のグローバルBVを再計算して(又は、どのサービスにも割当てられていない資源に与える所定のグローバルBVを出力するようにしてもよく、この場合はステップ(15)及び(16)も省略される)、全体最適化機構の資源管理部115のテーブルを更新する場合には、解放した資源のローカルBV更新通知(ステップ(14))を省略して資源返却通知(ステップ(18))のみを送信するようにしても良い。
上で述べた処理においてもローカルBVからグローバルBVの計算が行われる場面が示されているが、さらに図7に示すような場面においてもグローバルBVの計算が行われる。
個々の資源ノードのモニタエージェントや、モニタエージェントからの通知を集約する、業務サービスのマスタノードにおけるサービスマスタは、定期的又は状態変化時に、状態通知(例えばセッション数や経過実行時間を含む)を業務サービスの局所最適化機構における資源管理部201に送信する(ステップ(31))。資源管理部201は、業務サービスのマスタノードにおけるサービスマスタや割り当てられた資源ノードのモニタエージェントから状態通知を受信し、BV計算部203に状態通知を含むローカルBV計算要求を出力する(ステップ(32))。BV計算部203は、状態通知を含むローカルBV計算要求を受信し、ローカルBVを更新するように計算を実施する(ステップ(33))。BV計算部203は、計算し直したローカルBVを資源管理部201に通知する(ステップ(34))。資源管理部201は、自らの管理情報を更新すると共に(ステップ(35))、当該ローカルBVと関連する資源IDとサービスIDとを含むローカルBV更新通知を全体最適化機構110のBV再計算部113に送信する(ステップ(36))。
全体最適化機構110のBV再計算部113は、業務サービスの局所最適化機構における資源管理部201から、ローカルBVと資源IDとサービスIDとを含むローカルBV更新通知を受信すると、ローカルBVから以下で詳細に述べるグローバルBVの計算を実施する(ステップ(37))。そして、BV再計算部113は、グローバルBVと資源IDとサービスIDとを資源管理部115に通知する(ステップ(38))。資源管理部115は、BV再計算部113からグローバルBVと資源IDとサービスIDとを受信し、資源管理テーブル1151において該当レコードを更新する(ステップ(39))。
このような処理が繰り返され、グローバルBVが更新される。
次に、図6A及び6B並びに図7において説明を省略された、BV再計算部113によるグローバルBVの計算について図8乃至図13を用いて詳細に説明する。まず、BV再計算部113は、いずれかの業務サービスの局所最適化機構からローカルBVと資源IDとサービスIDとを含むローカルBV更新通知を受信するか、又は資源要求/返却受信部116からローカルBV及びサービスIDを含むグローバルBVの計算要求を受信し、例えばメインメモリなどの記憶装置に格納する(ステップS1)。
その後、BV再計算ポリシー設定部114のBV再計算ポリシー・テーブル1141を参照して、当該業務サービスに対するBV再計算ポリシーが設定されているか判断する(ステップS3)。すなわち受信したサービスIDについてのレコードが存在しているか判断する。なお、レコードが存在していても、再計算フラグがオフとなっている場合もある。この場合には以下で詳しく述べるようにローカルBV分布監視・調整部111からの入力に従うので、ここではこれ以上述べない。受信したサービスIDについてのレコードが存在していない場合には、エラーということで予め定められたエラー処理を実施する(ステップS19)。そしてステップS1に戻る。
一方、受信したサービスIDについてのレコードが存在している場合には、BV再計算部113は、BV再計算ポリシーとして「区間圧縮+区間シフト」方式が指定されているか判断する(ステップS5)。これは、BV再計算ポリシー・テーブル1141におけるパラメタの値(又はグラフ/関数)などのデータを用いて判断する。「区間圧縮+区間シフト」方式が採用されている場合には、例えばグローバルBV=ローカルBV×(区間圧縮率)+区間シフト値によりグローバルBVを算出し、例えばメインメモリなどの記憶装置に格納する(ステップS7)。但し、このような線形な圧縮及び区間シフトに限るものではない。そして、処理はステップS17に移行する。
「区間圧縮+区間シフト」方式の一例を図9A及び9Bに示す。図9Aは、局所最適化機構のBV計算部203において行われる計算を表している。なお、横軸は経過実行時間(Elapsed Execution Time)を表し、縦軸はローカルBVを表す。例えば、経過実行時間が0であれば、ローカルBVは1とされ、経過実行時間が30未満であれば、ローカルBVが5とされ、経過実行時間が30以上60未満であれば、ローカルBVは20とされ、経過実行時間が60以上90未満であれば、ローカルBVは40とされ、経過実行時間が90以上120未満であれば、ローカルBVは60とされ、経過実行時間が120以上150未満であれば、ローカルBVは80とされ、経過実行時間が150以上であれば、ローカルBVは100とされる。
一方、図9Bでは、第1の軸は経過実行時間を表しており、第2の軸はローカルBVを表しており、第3の軸はグローバルBVを表している。第1の軸と第2の軸で張られる平面は、局所最適化機構のBV計算部203において行われる計算(図9A)を表している。これに対して全体最適化機構110のBV再計算部113は、第2の軸と第3の軸とで張られる平面内の直線のように、ローカルBVの値5,20,40,60,80及び100を、傾き1/2.5で原点を通る直線上に変換する。すなわち、およそ100の幅を有するローカルBVの区間を、区間圧縮率1/2.5でグローバルBVの区間に圧縮し、区間シフトを0とした例である。なお、太線で表された直線z1乃至z6は、三次元空間上において、グローバルBVとローカルBVと経過実行時間との関係を表すものである。
また、「区間圧縮+区間シフト」方式の一例を図10A及び図10Bに示す。図10Aは、局所最適化機構のBV計算部203において行われる計算を表している。なお、横軸はセッション数を表し、縦軸はローカルBVを表す。すなわち曲線aに従ってセッション数に応じてローカルBVは50乃至100の幅で出力される。一方、図10Bでは、第1の軸はセッション数を示しており、第2の軸はローカルBVを示しており、第3の軸はグローバルBVを示している。第1の軸と第2の軸で張られる平面は、局所最適化機構のBV計算部203において行われる計算(図10A)を表している。一方、全体最適化機構110のBV再計算部113は、第2の軸と第3の軸とで張られる平面内の直線bのように、ローカルBVの値を、グローバルBVの値40乃至60の区間に区間圧縮して区間シフトさせる。すなわち、区間圧縮率は1/5で区間シフトが40となる。曲線b’は、セッション数とローカルBVとグローバルBVとの関係を直接示す三次元空間上の曲線である。直線cの場合には、ローカルBVの値を、グローバルBVの値50乃至100の区間に区間圧縮して区間シフトさせる。すなわち、区間圧縮率は1/2で区間シフトが50となる。直線c’は、セッション数とローカルBVとグローバルBVとの関係を直接表す三次元空間上の曲線である。
一方、ステップS5で「区間圧縮+区間シフト」方式ではないと判断された場合には、「不連続な値へのマッピング」方式が指示されているか判断する(ステップS9)。これは、BV再計算ポリシー・テーブル1141におけるパラメタの値(又はグラフ/関数)などのデータを用いて判断する。「不連続な値へのマッピング」方式が指示されている場合には、通知された値を含むローカルBV区間に対応するグローバルBVにマッピングを行う(ステップS11)。そして、処理はステップS17に移行する。
「不連続な値へのマッピング」方式の一例を図11を用いて説明する。図11において第1の軸はセッション数を表しており、第2の軸はローカルBVを表しており、第3の軸はグローバルBVを表している。第1の軸と第2の軸で張られる平面は、局所最適化機構のBV計算部113において行われる計算を表しており、図10Aとほぼ同じ曲線dが用いられている。一方、第2の軸と第3の軸で張られる平面は、全体最適化機構110のBV再計算部113で行われる計算を表している。具体的には、区間1(ローカルBVが50から約75までの区間)における、グローバルBVが40の直線e1と、区間2(ローカルBVが約75から約85までの区間)における、グローバルBVが45の直線e2と、区間3(ローカルBVが約85から約95までの区間)における、グローバルBVが60の直線e3と、区間4(ローカルBVが約95から100未満の区間)における、グローバルBVが75の直線e4と、区間5(ローカルBVが100)における、グローバルBVが80の点e5とで表される変換が実施される。なお、曲線e1’乃至e5’は、3次元空間において、ローカルBVとグローバルBVとセッション数との関係を表す曲線である。
一方、ステップS9で「不連続な値へのマッピング方式」ではないと判断された場合には、「関数定義」方式が指定されているか判断する(ステップS13)。これは、BV再計算ポリシー・テーブル1141におけるパラメタの値(又はグラフ/関数)などのデータを用いて判断する。「関数定義」方式が指示されている場合には、f(x)を指定の関数とするとグローバルBV=f(ローカルBV)によりグローバルBVを算出する(ステップS15)。そして、処理はステップS17に移行する。
「関数定義」方式の一例を図12を用いて説明する。図12において、第1の軸はセッション数を表しており、第2の軸はローカルBVを表しており、第3の軸はグローバルBVを表している。第1の軸と第2の軸で張られる平面は、局所最適化機構のBV計算部203において行われる計算を表しており、図10Aとほぼ同じ曲線fが用いられている。一方、第2の軸と第3の軸で張られる平面は、全体最適化機構110のBV再計算部113で行われる計算を表している。具体的には、曲線gが関数f(x)に相当する。なお、3次元空間において、曲線g’はローカルBVとグローバルBVとセッション数との関係を表している。
「関数定義」方式の他の例を図13を用いて説明する。図13において、第1の軸は経過実行時間を表しており、第2の軸はローカルBVを表しており、第3の軸はグローバルBVを表している。第1の軸と第2の軸で張られる平面は、局所最適化機構のBV計算部203において行われる計算を表しており、図9Aとほぼ同じ不連続な値へのマッピングを示している。一方、第2の軸と第3の軸で張られる平面は、全体最適化機構110のBV再計算部113で行われる計算を示している。具体的には、折れ線状の曲線kが関数f(x)に相当する。なお、3次元空間において、直線群j1乃至j6は、ローカルBVとグローバルBVと経過実行時間との関係を表している。
ステップS13で「関数定義」方式が指定されていない場合には、本実施の形態の場合ステップS19に移行する。すなわち、エラー処理を実行する。エラー処理の後にはステップS1に戻る。
一方、ステップS7、S11又はS15を実行した後には、グローバルBVを資源管理部115に出力して、資源管理テーブル1151の更新を行わせる(ステップS17)。資源要求/返却受信部116からの通知であれば、資源要求/返却受信部116に出力する。そして処理はステップS1に戻る。
このような処理を実行することによって、通知元の業務サービスに応じて「区間圧縮+区間シフト」方式、「不連続な値へのマッピング」方式及び「関数定義」方式のうちいずれかでグローバルBVを算出することができるようになる。すなわち、局所最適化機構のBV計算部203におけるローカルBVの算出とは独立に、システム全体について考察した上で、グローバルBVを算出して、資源の切り替えなどを実施することができるようになる。
なお、グローバルBVの計算方式については常に一定ではなく動的に変更させることも可能である。この場合、BV再計算ポリシー設定部114が、BV再計算ポリシー・テーブル1141に2以上のレコードを登録しておき、有効なレコードについては再計算フラグをオンにセットすればよい。
計算方式を動的に変更させる例を図14(a)及び(b)を用いて説明する。図14(a)及び(b)では、横軸はローカルBVを表し、縦軸はグローバルBVを表す。例えば平日の日中では、図14(a)に示すように、テレビ電話などの第1の業務サービスについては直線mで表されるような変換を実施し、グローバルBVを範囲Mに分布させる。一方、バッチジョブなどの第2の業務サービスについては直線nで表されるような変換を実施し、グローバルBVを範囲Nに分布させる。相対的に第1の業務サービスの方がグローバルBVの値が大きいので、優先して資源が割り当てられるようになる。一方、夜間及び休日については、図14(b)に示すように、第1の業務サービスについては直線m’で表されるような変換を実施し、グローバルBVを範囲M’に分布させる。直線mよりはグローバルBVを小さくし、また分布範囲も狭めている。一方、第2の業務サービスについては直線n’で表されるような変換を実施し、グローバルBVを範囲N’に分布させる。直線nよりはグローバルBVを大きくし、また分布範囲も広げている。一部の資源については、第1の業務サービスより第2の業務サービスの方に大きなグローバルBVが割り当てられるようになっている。
このように、多くの資源を消費する第1の業務サービスを日中は優先し、逆に平日夜間や休日など、テレビ会議のような業務サービスよりバッチ処理の方が利用が多いような時間帯には、グローバルBVの値を変化させて、より柔軟且つ有効なシステム資源の活用が可能となる。
なお、BV再計算ポリシーの切り替えは2段階に限られず、より多くの段階で切り替えを行っても良い。また、時間に関連する基準だけではなく、他の基準に従って切り替えを行うようにしても良い。例えば、天候やネットワークの輻輳状況などであってもよい。
以上をまとめると図15乃至図19に示すような資源配分が行われる。なお、局所最適化機構1乃至3は、1から100までローカルBVを出力するものとする。初期状態として、図15の上段に示したように、業務サービス1の局所最適化機構1は、ローカルBVが10の資源を2つ、25の資源を3つ、30の資源を1つ、75の資源を2つ、80の資源を1つ要求している。また、業務サービス2の局所最適化機構2は、ローカルBVが50の資源を4つ要求している。業務サービス3の局所最適化機構3は、ローカルBVが30の資源を1つ、40の資源が1つ、60の資源を3つ、80の資源を1つ、100の資源を2つ要求している。この際、BV再計算部113は、BV再計算ポリシー・テーブル1141に格納されている業務サービス1のBV再計算ポリシー(区間圧縮率1で区間シフト値0)に従って、グローバルBVを算出する。また、BV再計算部113は、BV再計算ポリシー・テーブル1141に格納されている業務サービス2のBV再計算ポリシー(区間圧縮率1.8で区間シフト値0)に従って、グローバルBVを算出する。さらに、BV再計算部113は、BV再計算ポリシー・テーブル1141に格納されている業務サービス3のBV再計算ポリシー(ローカルBVが30以下であれば区間圧縮率1/3で区間シフト値0、30を超える場合には区間圧縮率1/2で区間シフト値0)に従って、グローバルBVを算出する。そうすると、図15の下段に示すように、グローバルBVが10の資源が3つ、20の資源が1つ、25の資源が3つ、30の資源が4つ、40の資源が1つ、50の資源が2つ、75の資源が2つ、80の資源が1つ、90の資源が4つ使用されるようになる。なお、グローバルBVが0、すなわち未使用の資源が2つ残っている。
次に、図15の状態において、業務サービス1の局所最適化機構1が、ローカルBVが5の資源を2つ要求した場合を考えると、グローバルBVは5となり、図16に示したように、グローバルBVが5の資源が2つ確保され、未使用の資源が無くなる。図16において局所最適化機構1におけるローカルBVが5で点線で描かれている資源については割り当てがなされ、全体最適化機構110におけるグローバルBVが0で点線で描かれている資源は業務サービスが切替えられる。
さらに、図16の状態において、業務サービス3の局所最適化機構3が、ローカルBVが30の資源を2つ要求した場合には、グローバルBVは10となる。そうすると、図17に示したように、業務サービス1に割り当てられた、グローバルBVが5の資源2つは、業務サービス3のグローバルBVが10の資源として切替えられる。図17において局所最適化機構3におけるローカルBVが30で点線で描かれている資源については割り当てがなされ、局所最適化機構1におけるローカルBVが5で点線で描かれている資源については割り当てが取り消され、全体最適化機構110におけるグローバルBVが5で点線で描かれている資源は業務サービスが切替えられる。
この後、図17の状態において、業務サービス2の局所最適化機構2が、ローカルBVが50の資源を2つ要求した場合、グローバルBVは90となる。例えば、同じグローバルBV値の場合には、業務サービス1が優先して資源割り当てがなされるという設定がなされているとすると、図18に示すように、業務サービス3に割り当てられたグローバルBVが10の2つの資源は、業務サービス2のグローバルBVが90の資源として切替えられる。図18において局所最適化機構2におけるローカルBVが50で点線で描かれている資源については割り当てがなされ、局所最適化機構3におけるローカルBVが30で点線で描かれている資源については割り当てが取り消され、全体最適化機構110におけるグローバルBVが10で点線で描かれている資源は業務サービスが切替えられる。
さらに、図18の状態において、業務サービス1の局所最適化機構1が、ローカルBVが60の資源を1つ要求した場合、グローバルBVは60となる。例えば、同じグローバルBV値の場合には、業務サービス1が優先して資源割り当てがなされるという設定がなされているとすると、図19に示すように、業務サービス3に割り当てられたグローバルBVが10の資源は、業務サービス1のグローバルBVが60の資源として切替えられる。図19において局所最適化機構1におけるローカルBVが60で点線で描かれている資源については割り当てがなされ、局所最適化機構3におけるローカルBVが30で点線で描かれている資源については割り当てが取り消され、全体最適化機構110におけるグローバルBVが10で点線で描かれている資源は業務サービスが切替えられる。
次に、ローカルBV分布監視・調整部111の処理について説明する。例えば、業務サービスの管理者が、ポリシー設定部202に対して図20(a)に示すようなポリシーを設定した場合を考える。すなわち、経過実行時間が180まではローカルBVが90となり、180以上であればローカルBVは100となるような設定である。このような場合、全体最適化機構110のBV再計算ポリシー・テーブル1141におけるポリシー(例えば区間圧縮率1/5で区間シフト値30)に従ってグローバルBVを算出しても、図20(b)に示すように、2つの値(例えば48と50)しか発生しないことになる。当然ながら、図20(c)に示すように、グローバルBV値の分布は偏ったものになる。このように、故意に又は不注意によってグローバルBVをあまりに偏った形で算出されるような設定が局所最適化機構においてなされると、当該業務サービスに対して誤って優先的に資源が割り当てられたり、逆に全く資源が割り当てられなくなったりする。従って、全体最適化機構110において予め定められた範囲内においてできるだけグローバルBVの値は分散していることが好ましい。例えば図21(a)に示すように、グローバルBVが、下限値30から上限値50までに正規分布のような形で現れることが好ましい。この場合、ローカルBVとグローバルBVとの関係は、図20(b)に示すような点ではなく、図21(b)に示すような直線(又は曲線)となる。
このような分布の調整を行うためにローカルBV分布監視・調整部111は以下のような処理を実施する。まず、ローカルBV分布監視・調整部111は、業務サービスの局所最適化機構から、ローカルBVとサービスIDと資源IDとを含むローカルBVの更新通知を受信し、例えばメインメモリなどの記憶装置に格納する(図22:ステップS21)。そして、分布調整ポリシー・テーブル1121を参照して当該業務サービスに対する分布監視フラグがオンになっているか判断する(ステップS23)。サービスIDで分布調整ポリシー・テーブル1121を検索して、分布監視フラグのオン又はオフを特定する。そして、当該業務サービスに対する分布監視フラグがオフであればステップS21に戻る。
一方、当該業務サービスに対する分布監視フラグがオンであれば、当該業務サービスに対するローカルBV監視・調整ポリシーが設定されているか判断する(ステップS25)。ローカルBV監視・調整ポリシーは、分布調整ポリシー・テーブル1121における分布関数、分布関数のパラメタ(平均及び分散)、平均の差の閾値及び分散の差の閾値で特定される。当該業務サービスに対するローカルBV監視・調整ポリシーが設定されていない場合には、所定のエラー処理を実施する(ステップS27)。そしてステップS21に戻る。
一方、当該業務サービスに対するローカルBV監視・調整ポリシーが設定されている場合には、当該業務サービスについての統計処理、すなわち平均及び分散の計算を実施して、ローカルBV分布監視テーブル1111に登録する(ステップS29)。さらに、分布調整ポリシー・テーブル1121における猶予期間(時間/回数)とローカルBV分布監視テーブル1111における受信回数又はカウント開始時刻とから、当該業務サービスのローカルBVの補正を猶予する期間が経過したか判断する(ステップS31)。猶予期間が回数で規定されている場合には、ローカルBV分布監視テーブル1111における受信回数がその回数を超えたか判断する。また、猶予期間が時間で規定されている場合には、ローカルBV分布監視テーブル1111におけるカウント開始時刻と現在時刻との差によって、猶予期間を超えたか判断する。
当該業務サービスのローカルBVの補正を猶予する期間が経過していないと判断された場合にはステップS21に戻る。一方、当該業務サービスのローカルBVの補正を猶予する期間が経過していると判断された場合には、ローカルBV分布監視テーブル1111における平均と、分布調整ポリシー・テーブル1121に規定されている監視・調整ポリシーにおける分布関数のパラメタ(平均)との差の絶対値が、分布調整ポリシー・テーブル1121における平均の差の閾値を超えているか判断する(ステップS33)。ローカルBV分布監視テーブル1111における平均と、監視・調整ポリシーに設定されている平均との差の絶対値が、平均の差の閾値を超えていないと判断された場合にはステップS37に移行する。なお、閾値が上限値及び下限値を含む場合には、絶対値ではなく、上限値及び下限値で特定される範囲からはずれているか否かを判断する。
一方、ローカルBV分布監視テーブル1111における平均と、監視・調整ポリシーに設定されている平均との差の絶対値が、平均の差の閾値を超えていると判断された場合には、ローカルBV分布監視テーブル1111における平均と、監視・調整ポリシーに設定されている平均との差で、BV再計算ポリシー設定部114のBV再計算ポリシー・テーブル1141において該当する業務サービスに対するパラメタの値(例えば区間シフト値)を補正する(ステップS35)。{区間シフト値−(ローカルBV分布監視テーブル1111における平均と、監視・調整ポリシーに設定されている平均との差)}で補正する。他の方式でも同様に補正するようにしてもよい。
ステップS33のNoルート又はステップS35の後に、ローカルBV分布監視テーブル1111における分散と、分布調整ポリシー・テーブル1121に規定されている監視・調整ポリシーにおける分布関数のパラメタ(分散)との差の絶対値が、分布調整ポリシー・テーブル1121における分散の差の閾値を超えているか判断する(ステップS37)。ローカルBV分布監視テーブル1111における分散と、監視・調整ポリシーに設定されている分散との差の絶対値が、分散の差の閾値を超えていないと判断された場合にはステップS45に移行する。なお、閾値が上限値及び下限値を含む場合には、絶対値ではなく、上限値及び下限値で特定される範囲からはずれているか否かを判断する。
一方、ローカルBV分布監視テーブル1111における分散と、監視・調整ポリシーに設定されている分散との差の絶対値が、分散の差の閾値を超えていると判断された場合には、ローカルBV分布監視テーブル1111で該当業務サービスに対する「状態」を「調整実施中」に変更する(ステップS39)。また、BV再計算ポリシー設定部114にBV再計算ポリシー・テーブル1141における該当業務サービスの再計算フラグをオフにセットさせる(ステップS41)。そして、分布調整ポリシー・テーブル1121に設定されている分布(分布関数及び分布関数のパラメタ)のローカルBVを生成し、BV再計算部113に出力する(ステップS43)。例えば、BV再計算ポリシー・テーブルに規定されているBVの範囲(下限値及び上限値)内の乱数を生成する。例えば、N(μ,σ2)の正規分布が指定されていれば、ボックス=ミューラー法などにより正規乱数を生成して、BVの範囲内の乱数を生成する。他の分布を指定するようにしても良い。
なお、ステップS41のように再計算フラグをオフにセットせずに、パラメタの値における区間圧縮率を1にセットするようにしても良い。
そして処理はステップS21に戻る。
一方、ローカルBV分布監視テーブル1111における分散と、監視・調整ポリシーに設定されている分散との差の絶対値が、分散の差の閾値を超えていないと判断されると、該当業務サービスの「状態」が「調整実施中」であるか判断する(ステップS45)。該当業務サービスの「状態」が「調整実施中」であると判断されなかった場合にはステップS21に戻る。該当業務サービスの「状態」が「調整実施中」であると判断された場合には、ローカルBV分布監視テーブルにおける該当業務サービスの「状態」を「調整待機中」に変更する(ステップS47)。また、BV再計算ポリシー設定部114に、BV再計算ポリシー・テーブル1141における該当業務サービスの再計算フラグをオンにセットさせる(ステップS49)。そして、処理はステップS21に戻る。
以上のような処理を実施することによって、ローカルBVの分布が不適切な場合においても、適切な分布に補正することができるようになる。従って、適切な資源配分を行うことができるようになる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図4及び図5Aに示した機能ブロックは一例であって、必ずしも実際のプログラムモジュールを示すものではない。
また、フローチャートやシーケンス図については、同様の処理結果を得られるのであれば、必ずしも同一のフローやシーケンスでなくとも良い。ステップの順番を入れ替えたり、並列に実行させるようにしても良い。
また、局所最適化機構や全体最適化機構110は例えばコンピュータ装置であって、図23に示すように当該コンピュータ装置においては、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS)及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
局所最適化機構や全体最適化機構110については、別コンピュータで実施しても良いし、同一コンピュータで実施するようにしても良い。
(付記1)
特定の業務サービスに割り当てられるべき又は割り当てられた資源ノードに当該特定の業務サービスにおける独自のポリシーに基づき付与された重要度を受信するステップと、
前記特定の業務サービスについて前記独自のポリシーとは無関係に設定され且つポリシー格納部に格納されている重要度再計算ポリシーに関するデータに従って、受信した前記重要度をシステム全体における重要度に変換し、記憶装置に格納するステップと、
を含み、コンピュータにより実行される、資源に対する重要度算出方法。
(付記2)
前記特定の業務サービスに対して前記重要度再計算ポリシーを切り替えるステップ
をさらに含む付記1記載の資源に対する重要度算出方法。
(付記3)
前記重要度再計算ポリシーが、区間圧縮及び区間シフトを行わせる方式と、不連続な所定値へのマッピングを行わせる方式と、所定の関数値を用いる方式との少なくともいずれかである付記1記載の資源に対する重要度算出方法。
(付記4)
前記重要度再計算ポリシーが、変換後の重要度の範囲に関する規定を含む付記1記載の資源に対する重要度算出方法。
(付記5)
受信した前記重要度の分布が予め定められた基準を逸脱しているか判断するステップと、
受信した前記重要度の分布が予め定められ且つ分布調整データ格納部に格納された基準を逸脱していると判断された場合には、受信した前記重要度の分布を補正する補正ステップと、
を含む付記1記載の資源に対する重要度算出方法。
(付記6)
前記補正ステップが、
前記重要度再計算ポリシーを無効化するステップと、
前記分布調整データ格納部に格納されている分布に従って分散するように、受信した前記重要度を補正するステップと、
を含む、付記5記載の資源に対する重要度算出方法。
(付記7)
前記補正ステップが、
受信した前記重要度の平均値が、前記分布調整データ格納部に格納されている基準との差が所定値以上である場合には、前記基準との差に応じて、受信した前記重要度を補正するステップ
を含む、付記5記載の資源に対する重要度算出方法。
(付記8)
特定の業務サービスに割り当てられるべき又は割り当てられた資源ノードに当該特定の業務サービスにおける独自のポリシーに基づき付与された重要度を受信するステップと、
前記特定の業務サービスについて前記独自のポリシーとは無関係に設定され且つポリシー格納部に格納されている重要度再計算ポリシーに関するデータに従って、受信した前記重要度をシステム全体における重要度に変換し、記憶装置に格納するステップと、
をコンピュータにより実行させるプログラム。
(付記9)
特定の業務サービスに割り当てられるべき又は割り当てられた資源ノードに当該特定の業務サービスにおける独自のポリシーに基づき付与された重要度を受信する手段と、
前記特定の業務サービスについて前記独自のポリシーとは無関係に設定され且つポリシー格納部に格納されている重要度再計算ポリシーに関するデータに従って、受信した前記重要度をシステム全体における重要度に変換し、記憶装置に格納する手段と、
を有する、資源に対する重要度算出装置。