(57)【要約】【課題】複数の資源管理装置によって分散管理される分散システムにおいて、資源を事前に予約するジョブを実行する際に予約の失敗が連続して発生することを避ける装置及び方法の提供。【解決手段】資源の利用を予約するために、資源管理装置機構に対して仮予約とジョブ予約の２段階が設けられている。このうち仮予約は短時間のみ有効であり、他の仮予約およびジョブ予約とは共存できない。資源（３００）を実際に利用するには、仮予約した後で、ジョブ予約を実行する必要がある。すでに仮予約された資源に、仮予約を試みると、待ち行列に入り、後で仮予約が成功することが保証される。ユーザ端末（４００）はジョブスケジューラ（２００）にジョブの実行を要求し、ジョブスケジューラは資源管理装置（１００）に仮予約操作を実行した後でジョブを割り当てる資源を決定し、ジョブ予約を実行することでジョブの実行に必要な資源を予約する。【選択図】図５
2004302748.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数の資源を管理する資源管理装置であって、
管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち空き状態である時間帯を仮予約された状態に変更して、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を記憶部に格納する手段と、
前記管理対象の資源のうち、仮予約された時間帯が存在する資源について設けられる、待ち行列に、仮予約要求を格納する手段と、
前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約識別情報（「仮予約ＩＤ」という）を、前記仮予約要求に対する応答とする手段と、
を備えている、ことを特徴とする資源管理装置。
【請求項２】
前記仮予約ＩＤを指定した仮予約取消要求を受理した場合、前記仮予約ＩＤに対応する仮予約を取り消して空き状態とする手段を備えている、ことを特徴とする請求項１記載の資源管理装置。
【請求項３】
仮予約ＩＤと時間帯を指定したジョブ予約要求を受理した際に、前記ジョブ予約要求で指定される時間帯が、前記仮予約ＩＤに対応する仮予約された時間帯に含まれており、かつ、前記ジョブ予約要求の発行者と、前記仮予約要求の発行者とが互いに一致している場合に、前記ジョブ予約要求で指定される時間帯を、ジョブ予約された状態に、変更する手段を備えている、ことを特徴とする請求項１記載の資源管理装置。
【請求項４】
前記仮予約された時間帯のうち、有効期限に達しているものを空き状態に戻す手段と、
前記待ち行列から仮予約要求を取り出し、空き状態になった時間帯を仮予約された状態に変更し、仮予約要求の発行者を識別する情報を格納する手段と、
前記待ち行列から取り出された仮予約要求の発行者に対して、前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約ＩＤを含む通知を送る手段と、
を備えている、ことを特徴とする請求項１記載の資源管理装置。
【請求項５】
１つ又は複数の資源を管理する資源管理装置と通信接続され、ジョブのスケジューリングを行うジョブスケジューラにおいて、
前記ジョブが利用する可能性のある資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約要求を送る第１の手段と、
仮予約された資源を対象として、各ジョブを割り当てる資源と、実行する時間帯とを決める第２の手段と、
前記第２の手段によって決定された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、ジョブ予約要求を送る第３の手段と、
前記第１の手段によって仮予約された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約取消要求を送る第４の手段と、
を備えている、ことを特徴とするジョブスケジューラ。
【請求項６】
前記第１の手段で待ち行列に格納された仮予約要求がある場合に、予め定められた定時間が経過するか、前記待ち行列から取り出されたことを示す通知が到着してから、前記第２の手段に進む制御を行う手段を備えている、ことを特徴とする請求項５記載のジョブスケジューラ。
【請求項７】
請求項１乃至４のいずれか一に記載の資源管理装置と、
請求項５又は６記載のジョブスケジューラと、
を備えた分散資源管理システム。
【請求項８】
１つ又は複数の資源の管理を行う少なくとも１つの資源管理装置と、
少なくとも１つの前記資源管理装置と通信接続される少なくとも１つのジョブスケジュール装置と、
を含み、
前記ジョブスケジュール装置は、前記ジョブで用いる資源の仮予約を行う手段を備え、
前記資源管理装置は、前記ジョブスケジュール装置により発行される、仮予約とジョブ予約との２種の予約要求をそれぞれ受理する手段を備え、
前記仮予約は、資源の予約状況の取得と資源のロックを組み合わせた操作であって、前記資源管理装置の管理下にある資源のいずれかを指定して実行され、
前記資源管理装置は、前記ジョブスケジュール装置により受け取った前記仮予約要求の対象の資源に対して、他の仮予約が存在せず、かつ、空き時間が存在する場合には、当該時間帯を仮予約された状態に設定し、前記仮予約された時間帯を、前記仮予約要求の応答とする手段と、
前記仮予約された時間帯に、有効期限と、該当する仮予約要求を発行したジョブスケジュール装置の情報とを記録する手段と、
を有し、
前記ジョブ予約は、指定されたジョブの実行のために資源を事前予約する操作であって、前記資源管理装置が管理する資源のうちの１つと、前記資源における時間帯を指定したジョブ予約要求として実行され、
前記資源管理装置は、前記ジョブ予約要求で指定された時間帯がすでに仮予約された時間帯の一部であり、かつ、前記ジョブ予約要求の発行者と仮予約要求の発行者とが互いに一致する場合に、ジョブ予約要求を受理し、指定された時間帯をジョブ予約された状態とする手段と、
ジョブ予約で指定された開始時刻に達すると、当該資源をジョブの実行のために割り当てる制御、及び／又は、前記ジョブ予約で指定された終了時刻になると当該の資源のジョブへの割り当てを停止する制御、を行う手段と、
を含む、ことを特徴とする分散型資源管理システム。
【請求項９】
前記資源管理装置は、前記予約要求に対応して、前記ジョブスケジュール装置により発行される、仮予約取消要求とジョブ取消要求の２種の取消要求を受理する、ことを特徴とする請求項８記載の分散型資源管理システム。
【請求項１０】
前記ジョブスケジュール装置に通信接続する少なくとも１つのユーザ端末をさらに備え、
前記ユーザ端末から、前記ジョブスケジュール装置にジョブが投入され、
前記ジョブスケジュール装置は、
前記ユーザ端末から前記投入されたジョブを各資源に割り当てる手段を備え、
前記ジョブスケジュール装置による、前記資源の割り当て処理が、
前記資源管理装置に対する、前記仮予約要求の送信処理と、
前記仮予約に成功した資源を対象とするジョブの実行スケジュールの作成処理と、
前記実行スケジュールに従ったジョブ予約要求を前記資源管理装置に対して送信する処理と、
の少なくとも１つを含む、ことを特徴とする請求項８記載の分散型資源管理システム。
【請求項１１】
前記資源管理装置は、前記資源管理装置の管理対象とされる資源のそれぞれについて、どの時間帯にどのジョブが予約されているかの情報を記録するスケジュール記憶部と、
前記資源管理装置の管理対象とされる資源のそれぞれについて、待ち行列が設けられ、前記待ち行列には、前記資源を対象とする待機中の仮予約要求が格納される仮予約要求記憶部と、
前記ジョブスケジュール装置からの仮予約要求を受信し、前記スケジュール記憶部又は、前記仮予約要求記憶部に、仮予約についての情報を記録する仮予約要求受信手段と、
前記ジョブスケジュール装置からのジョブ予約要求を受信し、前記スケジュール記憶部に、ジョブ予約の情報を記録するジョブ予約要求受信手段と、
前記スケジュール記録部に記録された予約ジョブ及び仮予約の情報を監視し、前記予約ジョブ及び前記仮予約の情報に従った、資源の割り当て・解放、及び／又は、前記仮予約の破棄の処理を行うスケジュール管理手段と、
を備えている、ことを特徴とする請求項８記載の分散型資源管理システム。
【請求項１２】
前記資源管理装置は、前記ジョブスケジュール装置からの仮予約取消要求を受信し、前記スケジュール記録部又は前記仮予約要求記憶部から該当する仮予約の情報を破棄する仮予約取消要求受信手段と、
前記ジョブスケジュール装置からのジョブ予約取消要求を受信し、前記スケジュール記録部から該当するジョブ予約の情報を破棄する処理と、ジョブに割り当てられた資源を解放する処理を行うジョブ取消要求受信手段と、
を備えている、ことを特徴とする請求項１１記載の分散型資源管理システム。
【請求項１３】
前記ジョブスケジュール装置は、前記ユーザ端末により投入されたジョブの情報が一時的に格納される待機ジョブ記憶部と、
各資源ごとに、予約が確定したジョブの情報が格納されるスケジュール記憶部と、
前記ユーザ端末からのジョブ実行要求を受信し、前記ジョブ実行要求の内容を待機ジョブ情報記憶部に記録するジョブ実行要求受信手段と、
前記待機ジョブ記憶部に記録されたジョブを、定期的に取り出し、前記ジョブを資源に割り当てる手段であって、前記ジョブの資源への割り当てには、前記資源管理装置への仮予約要求の発行、ジョブ実行スケジュールの作成、および、前記資源管理装置へのジョブ予約要求の発行が含まれる、ジョブスケジューリング手段と、
を備えている、ことを特徴とする請求項８記載の分散型資源管理システム。
【請求項１４】
前記ジョブスケジュール装置は、前記ユーザ端末からのジョブ取消要求を受信し、前記待機ジョブ記憶部に記憶された待機ジョブまたは前記スケジュール記憶部に登録された該当するジョブを破棄するとともに、前記資源管理装置に対するジョブ予約取消要求の送信を行うジョブ取消要求受信手段を備えている、ことを特徴とする請求項１３記載の分散型資源管理システム。
【請求項１５】
前記資源管理装置は、前記ジョブスケジュール装置から受信したジョブ予約要求に従って、管理下の資源を、前記ジョブの実行のために割り当てる手段と、
前記資源管理装置は、すでに仮予約された資源を対象とする仮予約要求を受け取ると、前記仮予約要求を資源ごとに設けられる待ち行列に格納する手段と、
を備え、
仮予約取消要求または有効期限切れのために仮予約が破棄されると、破棄された仮予約と同一の資源を対象とする仮予約要求が待ち行列から取り出され、有効な仮予約となり、
前記資源管理装置は、前記待ち行列から仮予約要求が取り出されると、前記仮予約要求を発行した前記ジョブスケジュール装置に通知を送る手段を備え、
前記ジョブスケジュール装置は、前記ジョブスケジュール装置が発行した仮予約要求のいずれかが前記待ち行列に入ると、前記仮予約が有効となるのを待ってから、実行スケジュールの作成を開始するように制御する手段を備えている、ことを特徴とする請求項８記載の分散型資源管理システム。
【請求項１６】
前記ジョブスケジュール装置は、予め定められた定時間内に、仮予約要求が有効にならない場合には、その時点で、前記待ち行列に残っている仮予約を無視して、実行スケジュールの作成に進むように制御する手段を備えている、ことを特徴とする請求項１４記載の分散型資源管理システム。
【請求項１７】
１つ又は複数の資源を管理する資源管理装置による資源管理の方法であって、
前記資源管理装置が、管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち空き状態である時間帯を仮予約された状態に変更して、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を記憶部に格納する工程と、
前記資源管理装置が、前記管理対象の資源のうち、仮予約された時間帯が存在する資源についての待ち行列に、仮予約要求を格納する工程と、
前記資源管理装置が、前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約識別情報（「仮予約ＩＤ」という）を、前記仮予約要求に対する応答とする工程と、
を含む、ことを特徴とする資源管理方法。
【請求項１８】
前記資源管理装置が、前記仮予約ＩＤを指定した仮予約取消要求を受理した場合に、前記仮予約ＩＤに対応する仮予約を取り消して空き状態とする工程を含む、ことを特徴とする請求項１７記載の資源管理方法。
【請求項１９】
前記資源管理装置が、前記仮予約ＩＤと時間帯を指定したジョブ予約要求を受理した際に、前記ジョブ予約要求で指定される前記時間帯が、前記仮予約ＩＤに対応する仮予約された時間帯に含まれ、かつ、前記ジョブ予約要求の発行者と、前記仮予約要求の発行者とが互いに一致している場合に、前記ジョブ予約要求で指定される時間帯をジョブ予約された状態に変更する工程を含む、ことを特徴とする請求項１７記載の資源管理方法。
【請求項２０】
前記資源管理装置が、仮予約された時間帯のうち、有効期限に達しているものを空き状態に戻す工程と、
前記資源管理装置が、前記待ち行列から仮予約要求を取り出し、空き状態になった時間帯を仮予約された状態に変更し、仮予約要求の発行者を識別する情報を格納する工程と、
前記資源管理装置が、前記待ち行列から取り出された仮予約要求の発行者に対して、仮予約された時間帯とそれに対応する仮予約ＩＤを含む通知を送る工程と、
を含む、ことを特徴とする請求項１７記載の資源管理方法。
【請求項２１】
１つ又は複数の資源を管理する資源管理装置と通信接続され、ジョブのスケジューリングを行うジョブスケジューラが、前記ジョブが利用する可能性のある資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約要求を送る工程と、
前記ジョブスケジューラが、仮予約された資源を対象として、各ジョブを割り当てる資源と実行する時間帯とを決める工程と、
前記ジョブスケジューラによって決定された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、ジョブ予約要求を送る工程と、
前記仮予約された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約取消要求を送る工程と、
を含み、
前記各工程により、ジョブの資源への割り当てを決める、ことを特徴とする請求項１７記載の資源管理方法。
【請求項２２】
前記ジョブスケジューラは、前記仮予約要求を送る工程において、前記待ち行列に格納された仮予約要求がある場合に、予め定められた定時間が経過するか、前記待ち行列から取り出されたことを示す通知が到着してから、前記資源と実行する時間帯とを決める工程に進む制御が行われる、ことを特徴とする請求項２１記載の資源管理方法。
【請求項２３】
１つ又は複数の資源の管理を行う、少なくとも１つの資源管理装置と、
少なくとも１つの前記資源管理装置と通信接続される、少なくとも１つのジョブスケジュール装置と、を含む分散システムの資源管理方法であって、
前記ジョブスケジュール装置が、前記ジョブで用いる資源の仮予約を行う工程を含み、
前記資源管理装置が、前記ジョブスケジュール装置により発行される、仮予約とジョブ予約との２種の予約要求を受理する工程を含み、
前記仮予約は、資源の予約状況の取得と、資源のロックを組み合わせた操作であって、前記資源管理装置の管理下にある資源のいずれかを指定して実行され、
前記資源管理装置が、前記ジョブスケジュール装置より受け取った前記仮予約要求の対象の資源に対して、他の仮予約が存在せず、かつ、空き時間が存在する場合には、当該時間帯を仮予約された状態に設定し、前記仮予約された時間帯を、前記仮予約要求に対する応答とする工程と、
前記資源管理装置が、前記仮予約された時間帯に、有効期限と、該当する仮予約要求を発行したジョブスケジュール装置の情報とを記録する工程と、
を有し、
前記ジョブ予約は、指定されたジョブの実行のために資源を事前予約する操作であって、前記資源管理装置が管理する資源のうちの１つと、前記資源における時間帯を指定したジョブ予約要求として実行され、
前記資源管理装置が、前記ジョブ予約要求で指定された時間帯がすでに仮予約された時間帯の一部であり、かつ、前記ジョブ予約要求の発行者と前記仮予約要求の発行者とが互いに一致する場合に、前記ジョブ予約要求を受理し、指定された時間帯をジョブ予約された状態とする工程と、
前記資源管理装置が、ジョブ予約で指定された開始時刻に達すると、当該資源をジョブの実行のために割り当てる制御を行い、及び／又は、前記ジョブ予約で指定された終了時刻になると、当該の資源のジョブへの割り当てを停止する制御を行う工程と、
を含む、ことを特徴とする分散型資源管理方法。
【請求項２４】
前記資源管理装置は、前記予約要求に対応して、前記ジョブスケジュール装置により発行される、仮予約取消要求とジョブ取消要求の２種の取消要求を受理する工程を含む、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項２５】
前記ジョブスケジュール装置に接続するユーザ端末から、前記ジョブスケジュール装置にジョブが投入される工程と、
前記ジョブスケジュール装置は、前記ユーザ端末から、前記投入されたジョブを、各資源に割り当てる処理を行う工程と、
を有し、
前記ジョブスケジュール装置による前記資源の割り当て処理は、
前記資源管理装置に対する、仮予約要求の送信処理と、
前記仮予約に成功した資源を対象とするジョブの実行スケジュールの作成処理と、
前記実行スケジュールに従ったジョブ予約要求の前記資源管理装置への送信処理と、
を含む、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項２６】
前記資源管理装置は、前記ジョブスケジュール装置からの仮予約要求を受信した際に、
管理下の資源のそれぞれについてどの時間帯にどのジョブが予約されているかの情報を記録するスケジュール記憶部、又は、管理下の資源のそれぞれについて設けられる待ち行列に前記資源を対象とする待機中の仮予約要求が格納される仮予約要求記憶部に、仮予約についての情報を記録する工程と、
前記資源管理装置が、前記ジョブスケジュール装置からのジョブ予約要求を受信し、前記スケジュール記憶部に、ジョブ予約の情報を記録する工程と、
前記資源管理装置が、前記スケジュール記録部に記録された予約ジョブ及び仮予約の情報を監視し、前記予約ジョブ及び仮予約の情報に従った資源の割り当てと解放、及び／又は、仮予約の破棄の処理を行う工程と、
を含む、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項２７】
前記資源管理装置が、前記ジョブスケジュール装置からの仮予約取消要求を受信し、前記スケジュール記録部又は前記仮予約要求記憶部から、該当する仮予約の情報を破棄する工程と、
前記資源管理装置が、前記ジョブスケジュール装置からのジョブ予約取消要求を受信し、前記スケジュール記録部から該当するジョブ予約の情報を破棄し、及び、ジョブに割り当てられた資源を解放する処理を行う工程と、
を含む、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項２８】
前記ジョブスケジュール装置は、前記ジョブスケジュール装置に接続するユーザ端末からのジョブ実行要求を受信し、前記ジョブ実行要求の内容を、前記ユーザ端末により投入されたジョブの情報が一時的に格納される待機ジョブ情報記憶部に記録する工程と、
前記ジョブスケジュール装置が、前記待機ジョブ記憶部に記録されたジョブを取り出して、前記ジョブを資源に割り当てる工程と、
を有し、
前記ジョブの資源への割り当てには、前記資源管理装置への仮予約要求の発行、ジョブ実行スケジュールの作成、および、前記資源管理装置へのジョブ予約要求の発行が含まれる、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項２９】
前記ジョブスケジュール装置は、前記ジョブスケジュール装置に接続するユーザ端末からジョブ取消要求を受信した際に、前記待機ジョブ記憶部に記憶された待機ジョブ、または、各資源ごとに予約が確定したジョブの情報が格納されるスケジュール記憶部に登録された該当するジョブを破棄するとともに、前記資源管理装置に対してジョブ予約取消要求を送信する工程を含む、ことを特徴とする請求項２８記載の分散型資源管理方法。
【請求項３０】
前記資源管理装置は、前記ジョブスケジュール装置から受信したジョブ予約要求に従って、管理下の資源を、前記ジョブの実行のために割り当てる工程と、
前記資源管理装置は、すでに仮予約された資源を対象とする仮予約要求を受け取ると、前記仮予約要求を資源ごとに設けられる待ち行列に格納する工程と、
を有し、
仮予約取消要求または有効期限切れのために仮予約が破棄されると、破棄された仮予約と同一の資源を対象とする仮予約要求が待ち行列から取り出され、有効な仮予約となり、
前記資源管理装置が、前記待ち行列から仮予約要求が取り出されると、前記仮予約要求を発行した前記ジョブスケジュール装置に通知を送る工程を有し、
前記ジョブスケジュール装置は、前記ジョブスケジュール装置が発行した仮予約要求のいずれかが前記待ち行列に入ると、前記仮予約が有効になるのを待ってから、実行スケジュールの作成を開始する工程を有する、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項３１】
前記ジョブスケジュール装置は、予め定められた定時間内に前記仮予約要求が有効にならない場合には、その時点で前記待ち行列に残っている仮予約を無視して実行スケジュールの作成に進む工程を含む、ことを特徴とする請求項２３記載の分散型資源管理方法。
【請求項３２】
１つ又は複数の資源を管理する少なくとも１つの資源管理装置と、
前記資源管理装置に通信接続され、前記資源を利用するジョブのスケジュールを行う少なくとも１つのジョブスケジュール装置と、
前記ジョブスケジュール装置に通信接続する少なくとも１つのユーザ端末と、
を含むシステムであって、
資源の利用を予約するために、前記資源管理装置に対して仮予約とジョブ予約の２段階を設け、
前記資源管理装置は、前記ジョブスケジュール装置からの仮予約要求を受け取り対応する資源を、仮予約された状態に設定する手段と、
仮予約されている資源に対して、仮予約要求が発行された場合、仮予約を待ち行列に格納する手段と、
を備え、
前記ユーザ端末は、前記ジョブスケジュール装置に対して、ジョブの実行を要求する手段を備え、
前記ジョブスケジュール装置は、前記資源管理装置に対して仮予約を発行した後に、ジョブを割り当てる資源を決定し、ジョブ予約を、前記資源管理装置に発行することで、ジョブの実行に必要な資源を、予約する手段を備えている、
ことを特徴とする分散型資源管理システム。
【請求項３３】
１つ又は複数の資源を管理する少なくとも１つの資源管理装置と、
前記資源管理装置に通信接続され、前記資源を利用するジョブのスケジュールを行う、少なくとも１つのジョブスケジュール装置と、
前記ジョブスケジュール装置に通信接続する少なくとも１つのユーザ端末と、を有する分散システムの資源管理方法であって、
資源の利用を予約するために、前記資源管理装置に対して仮予約とジョブ予約の２段階を設け、
前記ジョブスケジュール装置から前記資源管理装置に対して仮予約を行った後に、ジョブ予約が行われる工程と、
前記仮予約された資源に対して、前記ジョブスケジュール装置から、仮予約要求が発行された場合、前記資源管理装置では、前記仮予約要求を待ち行列に入れる工程と、
を有し、
前記ユーザ端末が、前記ジョブスケジュール装置に対して、ジョブの実行を要求する工程を有し、
前記ジョブスケジュール装置は、前記資源管理装置に対して仮予約を発行した後に、ジョブを割り当てる資源を決定し、前記資源管理装置に対してジョブ予約を発行することで、ジョブの実行に必要な資源を予約する、ことを特徴とする分散型資源管理方法。
【請求項３４】
１つ又は複数の資源を管理する資源管理装置を構成するコンピュータに、
管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち、空き状態である時間帯を、仮予約された状態に変更して、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を記憶部に格納する処理と、
前記管理対象の資源のうち、仮予約された時間帯が存在する資源についての待ち行列に、仮予約要求を格納する処理と、
前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約識別情報（「仮予約ＩＤ」という）を応答する処理と、
を実行させるプログラム。
【請求項３５】
請求項３４記載のプログラムであって、
前記仮予約ＩＤを指定した仮予約取消要求を受理した場合、前記仮予約ＩＤに対応する仮予約を取り消して空き状態にする処理を、前記コンピュータに実行させるプログラム。
【請求項３６】
請求項３４記載のプログラムであって、
仮予約ＩＤと時間帯を指定したジョブ予約要求を受理した際に、前記ジョブ予約要求で指定される時間帯が、前記仮予約ＩＤに対応する仮予約された時間帯に含まれ、かつ、前記ジョブ予約要求の発行者と、前記仮予約要求の発行者とが互いに一致している場合に、前記ジョブ予約要求で指定される時間帯を、ジョブ予約された状態に変更する処理を、前記コンピュータに実行させるプログラム。
【請求項３７】
請求項３４記載のプログラムであって、
前記仮予約された時間帯のうち、有効期限に達しているものを空き状態に戻す処理と、
前記待ち行列から仮予約要求を取り出し、空き状態になった時間帯を仮予約された状態に変更し、仮予約要求の発行者を識別する情報を格納する処理と、
待ち行列から取り出された仮予約要求の発行者に対して、前記仮予約された時間帯とそれに対応する仮予約ＩＤを含む通知を送る処理と、を前記コンピュータに実行させるプログラム。
【請求項３８】
請求項３４記載の資源管理装置を構成する前記コンピュータと通信接続し、ジョブのスケジューリングを行うジョブスケジューラを構成するコンピュータに、
前記ジョブが利用する可能性のある資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約要求を送る第１の処理と、
仮予約された資源を対象として、各ジョブを割り当てる資源と、実行する時間帯とを決める第２の処理と、
前記第２の処理によって決定された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、ジョブ予約要求を送る第３の処理と、
前記第１の処理によって仮予約された資源のそれぞれについて、該資源を管理する前記資源管理装置に対して、仮予約取消要求を送る第４の処理と、
を実行させるプログラム。
【請求項３９】
請求項３８記載のプログラムにおいて、
前記第１の処理で前記待ち行列に格納された仮予約要求がある場合に、予め定められた定時間が経過するか、あるいは、前記待ち行列から取り出されたことを示す通知が到着してから、前記第２の処理に進むように制御する処理を、前記ジョブスケジューラを構成する前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は分散型資源管理システムおよび分散型管理方法に関し、特にジョブ単位での資源予約を行う分散型資源管理システムおよび分散型資源管理方法とコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
分散コンピューティングシステム（分散システム）は、コンピュータや記憶装置、ネットワーク等の多様な資源から構成される。このため、ある仕事（ジョブ）に必要なサービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ，  ＱｏＳ）を得るためには、複数の資源に渡ってサービス品質を保証するような資源管理方式が必要となる。特に、独立して管理される複数の部分システム（以下、「ドメイン」と呼ぶ）間で資源を共有するグリッドコンピューティングでは、システム全体の資源を一元的に管理することが許容されないことが多い。この種のシステムでは、複数の独立した資源管理機構を利用したＱｏＳ保証機能が必要になる。
【０００３】
分散システムにおいてＱｏＳを保証する従来の技術として、資源の事前予約（以下、特に記載がない場合には予約は事前予約を指す）が知られている。事前予約とは、ジョブの実行に必要な個々の資源について、一定の時間帯においてＱｏＳを保証する操作である。
【０００４】
図１を参照して、資源の事前予約の例を説明する。ここでは，記憶装置Ｂから入力したデータを計算機Ａにより解析し、その結果を記憶装置Ｃに格納するという処理を仮定する（図１（Ａ）参照）。
【０００５】
一連の処理を滞りなく行うために、利用するそれぞれの資源、すなわち計算機Ａ、記憶装置Ｂ、記憶装置Ｃに対して、事前予約を行う。その際、計算機Ａにおけるデータ入力処理に関する予約と、記憶装置Ｂにおけるデータ読み出し処理に関する予約を同じ時間帯に対して行う必要がある（図１（Ｂ）参照）。計算機Ａにおけるデータ出力処理と記憶装置Ｃにおけるデータ書き込み処理についても同様である。
【０００６】
事前予約機能を持つ従来の資源管理システムの一例が知られている（例えば特許文献１参照）。図２に示すように、この従来の資源管理システムは、複数のユーザ端末４００と、複数の資源３００と、複数の接続制御装置７００と、資源管理装置８００とから構成されている。このような構成を有する従来の資源予約システムは、次のように動作する。
【０００７】
（１）ユーザ端末４００は、複数の接続制御装置７００のどれかを介して資源管理装置８００に対して予約要求を送る。
【０００８】
（２）上記（１）の予約要求の結果、ユーザ端末４００に予約証明書が渡される。
【０００９】
（３）予約された時刻に達すると、ユーザ端末４００は、予約された資源３００に対して資源利用要求を送る。この資源利用要求には、（２）で発行された予約証明書が含まれる。
【００１０】
上記特許文献１記載のシステムでは、資源の事前予約は、単一の資源管理装置８００が一元的に管理する。このため、上記特許文献１に記載されているシステムは、複数の資源管理装置によって資源が分散管理される分散システムに適用することはできない。
【００１１】
資源が分散管理されることを前提とした別の資源管理技術の一例も知られている（例えば非特許文献１参照）。
【００１２】
図３に示すように、上記非特許文献１記載の資源予約システムは、複数のユーザ端末４００と、複数の資源３００と、スケジューラ５００（非特許文献１中では”ｃｏ−ｒｅｓｅｒｖａｔｉｏｎ  ａｇｅｎｔ”と呼ばれている）と、資源情報サービス６００とから構成されている。各資源３００は、内部に資源管理部を備える。このような構成を有する従来の資源予約システムは次のように動作する。
【００１３】
（１）ユーザ端末４００は、複数のスケジューラ５００のどれかに対して資源予約要求を送る。
【００１４】
（２）スケジューラ５００は、資源情報サービス６００に問い合わせて、資源の予約状況を取得する。
【００１５】
（３）スケジューラ５００は、上記（２）で取得した予約状況に基づいて予約する資源を決定し、予約先の資源の資源管理部に対して資源予約要求を発行する。割り当てる資源が複数ある場合、それぞれの資源の資源管理部に対して同様に資源予約要求を発行する。
【００１６】
（４）上記（３）の資源予約要求の結果、予約に対応する予約ＩＤが発行され、上記（１）のユーザ端末４００に渡される。
【００１７】
（５）上記（１）のユーザ端末４００は、上記（３）で予約されたそれぞれの資源の資源管理部に対して資源利用要求を発行する。この資源利用要求には、上記（４）で取得した予約ＩＤが含まれる。
【００１８】
なお、複数のクライアント装置から共有リソースを予約するアーキテクチャとして、開始時刻、期間、繰り返し時間シーケンスを含む予約エントリをリソース要求として、クライアント装置からＡＶ／Ｃ掲示板に送信し、リソース要求は予約衝突を装置及びユーザに通知するためのリソースカレンダとして組織化され、上記リソースをクライアント装置に割り当てるリソーススケジュールコントローラを備えたシステムが知られている（例えば特許文献２参照）。またリソースの仮予約を行うシステムとして、第１の端末装置は、リソース予約の要求メッセージを送信し、各ノード装置は、要求メッセージの受信時、予約可能か否か判定し、可能ならば仮予約を行って、次装置へ要求メッセージを送信し、不可の場合、前装置の予約否の応答メッセージを送信し、第２の端末装置は、要求メッセージ受信時に、データ通信に応じられるか否かを判定し、前装置に予約可又は予約否の応答メッセージを送信し、各ノード装置は予約可の応答メッセージ受信時に仮予約を本予約に変更し前装置に予約可の応答メッセージを送信するリソース予約方法も知られている（例えば特許文献３）。
【００１９】
なお、後述されるジョブスケジューリングについて公知のアルゴリズムが参照される（例えば非特許文献２）。
【００２０】
【特許文献１】
特開２０００−２５９５３７号公報（第５頁、第１図）
【特許文献２】
特表２００３−５００９６１号公報（第１４−１７頁、第１図）
【特許文献３】
特開２００２−１８５４９１号公報（第３−５頁、第１図）
【非特許文献１】
Ｉａｎ  Ｆｏｓｔｅｒ  ｅｔ．ａｌ．，  ”Ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｒｅｓｏｕｒｃｅ  Ｍａｎａｇｅｍｅｎｔ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｔｈａｔ  Ｓｕｐｐｏｒｔｓ  Ａｄｖａｎｃｅ  Ｒｅｓｅｒｖａｔｉｏｎｓ  ａｎｄ  Ｃｏ−Ａｌｌｏｃａｔｉｏｎ”、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ  ９９．，  １９９９
【非特許文献２】
”Ｈｅｕｒｉｓｔｉｃ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｓｃｈｅｄｕｌｉｎｇ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｔａｓｋｓ  ｏｎ  Ｎｏｎｉｄｅｎｔｉｃａｌ  Ｐｒｏｃｅｓｓｏｒｓ，”  Ｔｈｅ  Ｊｏｕｒｎａｌ  ｏｆ  ｔｈｅ  ＡＣＭ，  Ｖｏｌｕｍｅ  ２４  Ｉｓｓｕｅ  ２，  １９７７
【００２１】
【発明が解決しようとする課題】
ところで、複数の資源管理装置が存在する分散システムにおいて、多数のジョブを一度に実行すると、資源の利用効率が低下する、という問題点を有している。その理由を以下に説明する。
【００２２】
資源の事前予約を利用して複数のジョブを実行する方法として、
（ｉ）ジョブが使う可能性のある資源を事前に予約した後、ジョブを割り当てる資源と時間帯を予約に成功した資源から選ぶ方法と、
（ｉｉ）ジョブを割り当てる資源と時間帯を決定した後、決定した個々の資源と時間帯について、事前予約する方法と、
の２種類があり得る。
【００２３】
上記（ｉ）の方法では、実際にはジョブを実行しない時間まで資源を予約することになり、上記（ｉｉ）に比べて資源の利用効率が低下する。さらに、予約した資源に対して利用要求を発行する予定のユーザ端末に障害が発生した場合、予約された資源が長時間誰にも使えない状態になる、という問題がある。
【００２４】
一方、上記（ｉｉ）の方法では、予約しようとする資源がすでに他のユーザにより予約されていることがあり得る。このような場合に、予約の失敗が発生し、適切な資源の組み合わせが利用できない可能性がある。
【００２５】
予約の失敗が発生するのは、ジョブの割り当てを決定するスケジューラ（図３の５００）が最新の資源の予約状況を保持していない場合である。資源の予約状況は、資源情報サービス（図３の６００）に問い合わせることで取得することができるが、資源情報サービスから得られる情報は、必ずしも最新の情報を反映しているとは限らない。仮に、個々の資源に直接予約状況を問い合わせるとしても、多数の資源に対して問い合わせるのに、長い時間を要し、その間に、状況が変化することがあり得る。また、ジョブの資源への割り当てを決めるジョブスケジューリング処理や、予約の実行の途中に予約状況が変化することもあり得る。
【００２６】
予約の失敗が問題になる場合として、複数の資源を同時に使うジョブや、複数のジョブ間に依存関係がある場合が挙げられる。これらのジョブでは、一部の資源についてのみ予約に失敗すると、再度スケジューリングして残りの資源を予約する必要が生じる。この場合、最初に予約に成功した資源と、後で予約に成功した複数の資源の組み合わせが、当初可能であった組み合わせよりも、不適切な組み合わせしか利用できないことがあり得る。
【００２７】
予約失敗による資源の利用効率の低下を、図４を用いて、説明する。この例では、広域ネットワーク（ＷＡＮ）を通して２つの計算機クラスタＡ、Ｂが接続されている。各クラスタは、それぞれ８台ずつのノードからなる。このシステム上で、あるスケジューラが、４つのノードを使用する並列ジョブ１と、８つのノードを使用する並列ジョブ２についての資源を予約することを考える。
【００２８】
前記スケジューラが把握している予約状況は、各クラスタとも予約は存在しないというものである。この状況では、スケジューラによるジョブの割り当ての候補として、クラスタＡのうちの４ノードにジョブ１を、クラスタＢの８ノードにジョブ２を割り当てるというものがあり得る（図４（Ａ））。しかし、実際には、クラスタＢのうちの４ノードに別のジョブ３がすでに予約されているとする（図４（Ｂ））。この場合、ジョブ１全体と、ジョブ２のうちのクラスタＡに割り当てる４ノードについてのみ予約が成功する。前記スケジューラは、予約に失敗したジョブ２の一部分について再度スケジューリングし、その結果クラスタＡのうちの４ノードが選択されたとする（図４（Ｃ））。この結果、ジョブ２はクラスタＡとクラスタＢにまたがって割り当てられることになる。もし図４（Ｂ）の予約状況が事前に分かっていれば、ジョブ２をクラスタＡにのみ割り当てることが可能であり、ＷＡＮを通した通信の必要はない。すなわち、予約の失敗によってネットワーク資源の利用効率が低下している。
【００２９】
上記の例は、ネットワーク資源の利用効率が低下する場合であるが、他の種類の資源の利用効率が低下することもあり得る。例えば、均一な性能の計算機を割り当てることが望ましい並列ジョブに、不均一な性能の計算機しか割り当てられないことがあり得る。また、並列ジョブについてのみだけでなく、依存関係のある複数のジョブについても資源の利用効率の低下が起こりうる。例えば、あるジョブによる出力を別のジョブが入力とする場合、これらのジョブは同一の資源または同一のローカルエリアネットワーク（ＬＡＮ）で接続された資源に割り当てられることが望ましいが、一方のジョブだけ予約に失敗した場合に、予約に失敗したジョブの割り当てが可能な資源が最初に予約した資源とは異なるＬＡＮにしかないことがあり得る。
【００３０】
すなわち、複数の資源を同時に使うジョブや依存関係のあるジョブについて、資源の予約状況が正確に把握できないために、本来可能である資源の組み合わせよりも非効率な資源の組み合わせが割り当てられる。
【００３１】
したがって、本発明の目的は、資源が複数の資源管理装置により分散管理される分散システムにおいて、正確な資源の予約状況に基づくジョブのスケジューリングを可能にし、各ジョブに適切な資源の組み合わせを実現する装置と方法並びにプログラムを提供することである。
【００３２】
【課題を解決するための手段】
前記目的を達成する本発明の１つのアスペクトに係る装置は、１つ又は複数の資源を管理する資源管理装置であって、管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち、空き状態である時間帯を、仮予約された状態に変更し、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を格納する手段と、前記管理対象の資源のうち、仮予約された時間帯が存在する資源についての待ち行列に、仮予約要求を格納する手段と、前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約ＩＤを前記仮予約要求の応答とする手段と、を備えている。
【００３３】
本発明に係る装置において、前記仮予約ＩＤを指定した仮予約取消要求を受理した場合、前記仮予約ＩＤに対応する仮予約を取り消して空き状態とする構成としてもよい。
【００３４】
本発明において、仮予約ＩＤと時間帯を指定したジョブ予約要求を受理した際に、指定される前記時間帯が、前記仮予約ＩＤに対応する仮予約された時間帯に含まれ、かつ、ジョブ予約要求の発行者と、仮予約要求の発行者が一致している場合に、指定される時間帯をジョブ予約された状態に変更する構成としてもよい。
【００３５】
本発明において、仮予約された時間帯のうち、有効期限に達しているものを空き状態に戻す手段と、待ち行列から仮予約要求を取り出し、空き状態になった時間帯を仮予約された状態に変更し、仮予約要求の発行者を識別する情報を格納する手段と、前記待ち行列から取り出された仮予約要求の発行者に対して、仮予約された時間帯とそれに対応する仮予約ＩＤを含む通知を送る手段と、を備えた構成としてもよい。
【００３６】
本発明において、ジョブの集合を資源に割り当てるジョブスケジュール装置であり、ジョブが使用する可能性のある資源のそれぞれについて、該資源を管理する資源管理装置に対して、仮予約要求を送る第１の手段と、仮予約された資源を対象として、各ジョブを割り当てる資源と、実行する時間帯とを決める第２の手段と、前記第２の手段によって決定された資源のそれぞれについて、該資源を管理する資源管理装置に対して、ジョブ予約要求を送る第３の手段と、前記第１の手段によって仮予約された資源のそれぞれについて、該資源を管理する資源管理装置に対して、仮予約取消要求を送る第４の手段と、を備えた構成としてもよい。
【００３７】
本発明において、前記ジョブスケジューラにおいて、前記第１の手段で待ち行列に格納された仮予約要求がある場合に、一定時間が経過するか、待ち行列から取り出されたことを示す通知が到着してから、前記第２の手段に進む、構成としてもよい。
【００３８】
本発明の他のアスペクトに係る方法は、１つ又は複数の資源を管理する資源管理装置による資源管理の方法であって、前記資源管理装置が、管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち空き状態である時間帯を仮予約された状態に変更して、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を記憶部に格納する工程と、
前記資源管理装置が、前記管理対象の資源のうち、仮予約された時間帯が存在する資源についての待ち行列に、仮予約要求を格納する工程と、
前記資源管理装置が、前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約識別情報（「仮予約ＩＤ」という）を、前記仮予約要求に対する応答とする工程と、
を含む。
【００３９】
本発明のさらに他のアスペクトに係るシステムは、１つ又は複数の資源の管理を行う、少なくとも１つの資源管理装置と、少なくとも１つの前記資源管理装置と通信接続される、少なくとも１つのジョブスケジュール装置と、を含む分散システムであって、前記ジョブスケジュール装置が、ジョブのスケジューリングに先立って、前記ジョブで用いる資源の仮予約を行い、前記資源管理装置が、前記ジョブスケジュール装置により発行される、仮予約とジョブ予約との２種の予約要求を受理し、前記仮予約は、資源の予約状況の取得と、資源のロックを組み合わせた操作であって、前記資源管理装置の管理下にある資源のいずれかを指定して実行される。前記資源管理装置は、前記ジョブスケジュール装置より受け取った前記仮予約要求の対象の資源に対して、他の仮予約が存在せず、かつ、空き時間が存在する場合には、当該時間帯を仮予約された状態に設定し、前記仮予約された時間帯を、前記仮予約要求に対する応答とする手段と、前記資源管理装置が、前記仮予約された時間帯に、有効期限と、該当する仮予約要求を発行したジョブスケジュール装置の情報とを記録する手段と、を有し、前記ジョブ予約は、指定されたジョブの実行のために資源を事前予約する操作であって、前記資源管理装置が管理する資源のうちの１つと、前記資源における時間帯を指定したジョブ予約要求として実行される。前記資源管理装置は、前記ジョブ予約要求で指定された時間帯がすでに仮予約された時間帯の一部であり、かつ、前記ジョブ予約要求の発行者と前記仮予約要求の発行者とが互いに一致する場合に、前記ジョブ予約要求を受理し、指定された時間帯をジョブ予約された状態とする手段と、ジョブ予約で指定された開始時刻に達すると、当該資源をジョブの実行のために割り当てる制御を行い、及び／又は、前記ジョブ予約で指定された終了時刻になると、当該の資源のジョブへの割り当てを停止する制御を行う手段と、を備えている。
【００４０】
本発明のさらに他のアスペクトに係るプログラム（プログラム製品）は、１つ又は複数の資源を管理する資源管理装置を構成するコンピュータに、管理対象の資源を１つ又は複数指定してなる仮予約要求を受理した際に、前記管理対象の資源のうち、空き状態である時間帯を、仮予約された状態に変更して、有効期限を設けるとともに、前記仮予約要求の発行者を識別する情報を記憶部に格納する処理と、
前記管理対象の資源のうち、仮予約された時間帯が存在する資源についての待ち行列に、仮予約要求を格納する処理と、
前記仮予約された時間帯と、前記仮予約された時間帯に対応する仮予約識別情報（「仮予約ＩＤ」という）を応答とする処理と、
を実行させるプログラムよりなる。
【００４１】
本発明によれば、資源の利用を予約するために、資源管理装置機構に対して、仮予約とジョブ予約の２段階が設けられている。仮予約は短時間のみ有効であり、他の仮予約およびジョブ予約とは共存できず、資源を実際に利用する場合、仮予約した後で、ジョブ予約を実行するものとされ、すでに仮予約された資源に、仮予約を試みると待ち行列に入れ、後で仮予約が成功することを保証している。ユーザ端末は、ジョブスケジューラにジョブの実行を要求し、ジョブスケジューラは、資源管理装置に仮予約操作を実行した後で、ジョブを割り当てる資源を決定し、ジョブ予約を実行し、ジョブの実行に必要な資源を予約する。
【００４２】
本発明によれば、同時に、複数の資源を使うジョブや依存関係のあるジョブ群の一部のみ予約に失敗するという状況が発生しない。このため、資源が分散して管理される分散システムにおいて、資源の利用効率を向上できる。
【００４３】
［発明の原理］
まず本発明の原理を説明し、つづいて実施形態について説明する。本発明においては、複数の資源管理装置（図５の１００）と、単一または複数のジョブスケジューラ（図５の２００）から構成される。複数の資源（図５の３００）は、資源管理装置の１つにより管理される。
【００４４】
資源管理装置は、ジョブスケジューラにより発行される仮予約と、ジョブ予約という２種類の予約要求を受理する。また、これらの予約要求に対応して、仮予約取消要求およびジョブ取消要求の２種類の取消要求を受理する。
【００４５】
仮予約は、資源の予約状況の取得と、資源のロックを組み合わせた操作であり、資源管理装置の管理下にある資源のどれかを指定して実行される。仮予約要求の対象の資源に他の仮予約が存在せず、かつ空き時間が存在すれば、その時間帯が仮予約された状態となり、仮予約された時間帯を応答とする。空き時間とは、仮予約とジョブ予約のいずれも存在しない時間帯である。仮予約された時間帯には、有効期限と、該当する仮予約要求を発行したジョブスケジューラの情報が記録される。有効期限に達した仮予約は自動的に破棄される。
【００４６】
ジョブ予約は、特定のジョブの実行のために資源を事前予約する操作であり、資源管理装置が管理する資源のうちの１つと、その資源における時間帯を指定したジョブ予約要求として実行される。指定された時間帯がすでに仮予約された時間帯の一部であり、かつそのジョブ予約要求の発行者と仮予約要求の発行者が一致する場合にジョブ予約要求は受理され、指定された時間帯がジョブ予約された状態となる。資源管理装置は、ジョブ予約で指定された開始時刻に達すると、当該の資源をジョブの実行のために割り当て、ジョブ予約で指定された終了時刻になると当該の資源のジョブへの割り当てを停止する。
【００４７】
本発明では、ユーザが投入するジョブは、以下の順序で実行される。まず、ユーザは、ユーザ端末（図５の４００）を通して、ジョブスケジューラに、ジョブを投入する（図５（１））。
【００４８】
ジョブスケジューラは、投入されたジョブを定期的に各資源に割り当てる処理を行う。ジョブスケジューラによる資源の割り当ては、資源管理装置に対する仮予約要求の送信（図５（２））と、仮予約に成功した資源を対象とするジョブの実行スケジュールの作成（図５（３））と、実行スケジュールに従ったジョブ予約要求の送信（図５（４））とからなる。資源管理装置は、ジョブスケジューラから受信したジョブ予約要求に従って、管理下の資源をジョブの実行のために割り当てる（図５（５））。
【００４９】
あるジョブスケジューラによる仮予約が有効である間に別のジョブスケジューラが同一の資源を対象として仮予約要求を発行すると、後者のジョブスケジューラは仮予約を獲得できない。この場合、仮に前者のジョブスケジューラが当該の資源にジョブを割り当てない場合でも、後者のジョブスケジューラは当該の資源にジョブを割り当てることはできない。この問題を解決するため、資源管理装置は、すでに仮予約された資源を対象とする仮予約要求を受け取ると、その仮予約要求を資源ごとに設けられる待ち行列に格納するようにする。仮予約取消要求または有効期限切れのために仮予約が破棄されると、破棄された仮予約と同一の資源を対象とする仮予約要求が待ち行列から取り出され、有効な仮予約となる。待ち行列から仮予約要求が取り出されると、資源管理装置がその仮予約要求を発行したジョブスケジューラに通知を送ることによって、ジョブスケジューラはそのことを知ることができる。
【００５０】
ジョブスケジューラが発行した仮予約要求のどれかが待ち行列に入ると、ジョブスケジューラはそれらの仮予約が有効になるのを待ってから実行スケジュールの作成を開始する。ただし、一定時間内に仮予約要求が有効にならない場合は、その時点で待ち行列に残っている仮予約を無視して実行スケジュールの作成に進む。
【００５１】
上記の構成を採用し、ジョブスケジューラがジョブのスケジューリングに先立って資源を仮予約することで、ジョブスケジューラは資源の予約状況を正確に把握することができる。このことから、資源の正確な予約状況が把握できないことによる予約の失敗を避けることができ、最適な資源の組み合わせを選ぶことが可能になる。これにより、本発明の目的を達成することができる。資源管理装置およびスケジューラにおける上記処理・機能は、それぞれを構成するコンピュータで実行されるプログラムにより実現することができる。
【００５２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図５は、本発明の一実施の形態のシステム構成を示す図である。図５を参照すると、本発明の一実施の形態は、複数の資源管理装置１００と、複数のジョブスケジューラ２００と、複数の資源３００と、複数のユーザ端末４００（図５では１台の端末のみが示されている）と、を備えて構成されている。ここで、資源管理装置１００、ジョブスケジューラ２００、およびユーザ端末４００は、プログラム制御により動作するコンピュータを含む。資源３００には、コンピュータ、記憶装置、ネットワーク機器などの各種装置が含まれる。ユーザ端末４００はジョブスケジューラ２００を内蔵していても良い。また、資源管理装置１００は、任意の数の資源３００を内蔵していても良い。またユーザ端末４００は１つであってもよい。本発明は、複数の資源管理装置１００、複数のジョブスケジューラ２００をそれぞれ１つとしたシステム構成にも同様にして適用できる。
【００５３】
図６は、図５に示した本発明の一実施の形態における資源管理装置１００の構成を示す図である。図６を参照すると、資源管理装置１００は、仮予約要求受信手段１１０と、ジョブ予約要求受信手段１２０と、仮予約取消要求受信手段１３０と、ジョブ予約取消要求受信手段１４０と、スケジュール管理手段１５０と、スケジュール記憶部１６０と、仮予約要求記憶部１７０とを備えて構成されている。
【００５４】
スケジュール記憶部１６０には、資源管理装置の管理対象である資源のそれぞれについて、どの時間帯にどのジョブが予約されているかが記録される。
【００５５】
仮予約要求記憶部１７０には、資源管理装置の管理対象である資源のそれぞれについて待ち行列が設けられる。この待ち行列には、その資源を対象とする待機中の仮予約要求が格納される。
【００５６】
これらの手段は、それぞれ概略次のように動作する。仮予約要求受信手段１１０は、ジョブスケジューラ２００からの仮予約要求を受信し、スケジュール記憶部１６０または仮予約要求記憶部１７０に仮予約についての情報を追加する。
【００５７】
ジョブ予約要求受信手段１２０は、ジョブスケジューラ２００からのジョブ予約要求を受信し、スケジュール記憶部１６０にジョブ予約の情報を追加する。ジョブ予約を行うためには、あらかじめ仮予約要求受信手段１１０を通してスケジュール記憶部１６０に仮予約が登録されている必要がある。
【００５８】
仮予約取消要求受信手段１３０は、ジョブスケジューラ２００からの仮予約取消要求を受信し、スケジュール記録部１６０または仮予約要求記憶部１７０から該当する仮予約の情報を破棄する。それに伴い、仮予約要求記憶部１７０に記録された待機中の仮予約要求をスケジュール記録部１６０に移動する場合がある。
【００５９】
ジョブ予約取消要求受信手段１４０は、ジョブスケジューラ２００からのジョブ予約取消要求を受信し、スケジュール記録部１６０から該当するジョブ予約の情報を破棄する処理と、ジョブに割り当てられた資源を解放する処理を行う。
【００６０】
スケジュール管理手段１５０は、スケジュール記録部１６０に記録された予約ジョブおよび仮予約の情報を監視して、それらの情報に従った資源の割り当て・解放や仮予約の破棄などの処理を行う。図６に示した資源管理装置１００の上記各手段は、資源管理装置１００を構成するコンピュータにより、その機能を実現することができる。
【００６１】
図７は、図５に示した本発明の一実施の形態におけるジョブスケジューラ２００の構成を示す図である。図７を参照すると、ジョブスケジューラ２００は、ジョブ実行要求受信手段２１０と、ジョブ取消要求受信手段２２０と、ジョブスケジューリング手段２３０と、待機ジョブ記憶部２４０と、スケジュール記憶部２５０とを備えて構成されている。待機ジョブ記憶部２４０には、ユーザ端末により投入されたジョブの情報が一時的に格納される。スケジュール記憶部２５０には、各資源ごとに、予約が確定したジョブの情報が格納される。
【００６２】
これらの手段は、それぞれ概略次のように動作する。ジョブ実行要求受信手段２１０は、ユーザ端末４００からのジョブ実行要求を受信し、その内容（ジョブ実行要求に含まれるジョブ情報等）を、待機ジョブ記憶部２４０に、追加（記録）する処理を行う。
【００６３】
ジョブ取消要求受信手段２２０は、ユーザ端末４００からのジョブ取消要求を受信し、待機ジョブ記憶部２４０、またはスケジュール記憶部２５０に登録されている、該当するジョブを破棄するとともに、資源管理装置１００に対して、ジョブ予約取消要求の送信を行う。
【００６４】
ジョブスケジューリング手段２３０は、待機ジョブ記憶部２４０に記録されているジョブを、定期的に取り出し、それらのジョブを、資源に割り当てる処理を行う。ジョブの資源への割り当てには、資源管理装置１００への仮予約要求の発行、ジョブ実行スケジュールの作成、および、資源管理装置１００へのジョブ予約要求の発行が含まれる。ジョブスケジューラ２００の上記各手段は、ジョブスケジューラ２００を構成するコンピュータによりその機能を実現することができる。
【００６５】
資源管理装置１００とジョブスケジューラ２００の上記した各手段間の相互作用の概略を、図８および図９を用いて説明する。図８には、ユーザ端末４００がジョブスケジューラ２００にジョブを投入してから、資源上でジョブの実行が完了するまでの処理の流れが、模式的に示されている。
【００６６】
ステップ１：ユーザ端末４００が発行したジョブ実行要求を、ジョブスケジューラ２００のジョブ実行要求受信手段２１０が受信し、その内容を待機ジョブ記憶部２４０に格納する（図８（１））。
【００６７】
ステップ２：ジョブスケジューラ２００のジョブスケジューリング手段２３０が、待機ジョブ記憶部２４０からジョブの情報を読み出し、資源管理装置１００の仮予約要求受信手段１１０に対して、仮予約要求を送信する。仮予約要求受信手段１１０は、スケジュール記憶部１６０に、仮予約の情報を追加する（図８（２））。
【００６８】
ステップ３：ジョブスケジューラ２００のジョブスケジューリング手段２３０が、ジョブ実行スケジュールの作成完了後に、資源管理装置１００のジョブ予約要求受信手段１２０に対して、ジョブ予約要求を送信する。ジョブ予約要求受信手段１２０は、スケジュール記憶部１６０に、ジョブ予約の情報を追加する（図８（３））。
【００６９】
ステップ４：ジョブスケジューラ２００のジョブスケジューリング手段２３０が、資源管理装置１００の仮予約取消要求受信手段１３０に対して、仮予約取消要求を送信する。仮予約取消要求受信手段１３０は、スケジュール記憶部１６０から仮予約の情報を削除する（図８（４））。
【００７０】
ステップ５：資源管理装置１００のスケジュール管理手段１５０は、スケジュール記憶部１６０に記録されたジョブ予約の開始時刻になると、予約された資源３００をジョブに割り当てる。同様に、ジョブ予約の終了時刻になると、ジョブに割り当てた資源３００を解放する（図８（５））。
【００７１】
図９には、上記手順における、ジョブスケジューラ２００内の待機ジョブ記憶部２４０およびスケジュール記憶部２５０の状態の変化の一例が示されている。
【００７２】
図９（Ａ）は、上記ステップ１の直後の状態を示している。スケジュール記憶部２５０には、以前に予約したジョブの情報が格納されている。また、待機ジョブ記憶部２４０には、ステップ１で受け取ったジョブの情報がが格納されている。
【００７３】
図９（Ｂ）は、上記ステップ２の直後の状態を示している。ここではスケジュール記憶部２５０に、仮予約に成功した時間帯の情報が追加されている。図９（Ｃ）に示すように、同一の資源について不連続な時間帯について仮予約がなされることがあり得る。
【００７４】
図９（Ｃ）は、上記ステップ３におけるジョブ予約要求送信の直前の状態を示している。スケジュール記憶部２５０にスケジューリングされたジョブの情報が追加されているが、この時点ではまだ予約は確定していない。
【００７５】
図９（Ｄ）は、上記ステップ４の直後の状態を示している。ジョブ予約要求の発行によって資源の予約が確定し、待機ジョブ記憶部２４０から該当するジョブの情報が削除されている。
【００７６】
次に、本実施の形態の全体の動作について詳細に説明する。以降では、最初に資源管理装置１００の動作について説明した後、ジョブスケジューラ２００の動作について説明する。
【００７７】
まず、資源管理装置１００の各手段（図６参照）の動作を詳細に説明する。
【００７８】
仮予約要求受信手段１１０は、ジョブスケジューラ２００からの仮予約要求を受け取り、スケジュール記憶部１６０の内容を参照して、仮予約要求を処理する。
【００７９】
図１０は、資源管理装置１００における仮予約要求受信手段１１０の動作手順を説明するための流れ図である。図６及び図１２を参照して、仮予約要求受信手段１１０の動作を説明する。
【００８０】
まず、ジョブスケジューラ２００からの要求内容を受信する（ステップＳ１１１）。要求内容には、要求を発行するジョブスケジューラの識別子と、仮予約の対象とする資源の識別子が含まれる。
【００８１】
次に、受信した仮予約要求に対応する新しい仮予約ＩＤを生成する（ステップＳ１１２）。以後、この仮予約ＩＤを用いて、仮予約および仮予約要求が識別される。
【００８２】
次に、スケジュール記憶部１６０を参照して、ステップＳ１１１で指定された資源がすでに他のジョブスケジューラ２００によって仮予約されているか否かを調べる（ステップＳ１１３）。仮予約されている場合には（ステップＳ１１３でのＹＥＳ分岐）、ステップＳ１１５に、仮予約されていない場合には（ステップＳ１１３でのＮＯ分岐）、ステップＳ１１４に進む。
【００８３】
ステップＳ１１４では、スケジュール記憶部１６０に、新しい仮予約の情報を追加する。仮予約の情報には、仮予約される時間帯と、仮予約ＩＤと、仮予約要求の発行者の識別子が含まれる。仮予約される時間帯は、対象とする資源の全時間帯のうち、ジョブ予約がなされている時間帯を除いた部分である。また、システム管理上の方針により、仮予約の対象とする時間帯を制限することもできる。スケジュール記憶部１６０に追加された仮予約には、有効期限が付加される。有効期限をどのように設定するかは、システム管理上の方針により決めることができる。
【００８４】
ステップＳ１１５では、受信した仮予約要求を待機状態として仮予約要求記憶部１７０に格納する。
【００８５】
ここで、仮予約が、スケジュール記憶部１６０に登録される場合と、仮予約要求記憶部１７０に登録される場合との違いについて具体例を用いて詳細に説明する。図１１（Ａ）乃至図１１（Ｄ）には、同一の資源について、スケジュール記憶部１６０中のスケジュールと、仮予約要求記憶部１７０の待ち行列の状態が示されている。なお、この実施形態で、待ち行列はＦＩＦＯ（先入れ先出し）型としており、キューエレメントは、キューのテイルに挿入され、キューのヘッド（先頭）から取り出される。なお、本発明において、待ち行列はかかる構成にのみ限定されるものでない。
【００８６】
図１１（Ａ）には、ある資源に関するスケジュールとして、ジョブ１とジョブ２の２つのジョブ予約がなされており、仮予約要求記憶部１７０中の同じ資源についての待ち行列は空であるという状況が示されている。
【００８７】
図１１（Ｂ）では、仮予約が存在しないため、図１１（Ａ）の状態において仮予約要求を受信すると、図１０のステップＳ１１４に進み、スケジュールの中でジョブ１およびジョブ２で予約されている時間帯以外の時間帯が仮予約された状態となる（図１１（Ｂ）の「仮予約３」参照）。
【００８８】
図１１（Ｂ）の状態において、新たな仮予約要求を受信すると、すでに仮予約が存在するために、図１０のステップＳ１１５に進んで待ち行列に仮予約要求が追加される。
【００８９】
図１１（Ｃ）には、図１１（Ｂ）の状態から「仮予約要求４」、「仮予約要求５」の順で仮予約要求が到着した場合の状況が示されている。
【００９０】
図１１（Ｃ）の状態の後で、「仮予約３」が有効期限切れ、または仮予約取消要求によって破棄された場合、待ち行列の先頭にある「仮予約要求４」がスケジュールに登録される（図１１（Ｄ））。
【００９１】
なお、待ち行列からスケジュールへの仮予約の移動を行う処理については、後述の仮予約取消要求受信手段１３０およびスケジュール管理手段１５０の動作手順で説明する。
【００９２】
次に、資源管理装置１００におけるジョブ予約要求受信部１２０の動作を詳細に説明する。
【００９３】
ジョブ予約受信部１２０は、ジョブスケジューラ２００からのジョブ予約要求を受け取り、スケジュール記憶部１６０にジョブ予約を登録する処理を行う。ジョブスケジューラから受け取るジョブ予約要求には、要求を発行するジョブスケジューラの識別子と、ジョブを実行するユーザの識別子と、予約の対象とする資源の識別子と、予約する時間帯の開始時刻及び終了時刻と、ジョブ予約の識別に用いるジョブＩＤが含まれる。
【００９４】
なお、予約対象の資源の識別子については、以前に発行された仮予約ＩＤによって指定するようにしても良い。また、ジョブ予約要求にジョブＩＤを含めるのではなく、ジョブ予約要求受信部１２０によって新しいジョブＩＤを発行するようにしても良い。
【００９５】
ジョブ予約要求が成功するためには、予約の対象である時間帯が仮予約された時間帯に含まれており、かつその仮予約に対応する仮予約要求の発行者がジョブ予約要求の発行者と一致している必要がある。この条件を満たしている場合、受信したジョブ予約要求の内容がスケジュール記憶部１６０に登録される。
【００９６】
次に、図１２は、資源管理装置１００における仮予約取消要求受信手段１３０の動作を説明するための流れ図である。図６及び図１２を参照して、仮予約取消要求受信手段１３０の動作を説明する。仮予約取消要求受信手段１３０は、ジョブスケジューラ２００からの仮予約取消要求を受信し、スケジュール記憶部１６０に記録された仮予約または仮予約要求記憶部１７０に記録された仮予約要求を破棄する処理を行う。
【００９７】
まず、仮予約取消要求受信手段１３０は、要求内容を受信する（ステップＳ１３１）。要求内容には、要求を発行するジョブスケジューラの識別子と、取り消しの対象となる仮予約／仮予約要求を識別する仮予約ＩＤが含まれる。もし該当する仮予約／仮予約要求が存在しない場合、あるいは該当する仮予約要求を発行したジョブスケジューラと仮予約取消要求を発行したジョブスケジューラが異なる場合には、仮予約取消要求は失敗する。
【００９８】
次に、ステップＳ１３１で受信した仮予約ＩＤが、仮予約要求記憶部１７０中の待ち行列の要素に該当するかどうかを判別する（ステップＳ１３２）。判定の結果、受信した仮予約ＩＤが待ち行列中の仮予約要求に該当する場合（ステップＳ１３２のＹＥＳ分岐）、待ち行列から該当する要素を削除して処理が完了する（ステップＳ１３３）。そうでない場合（ステップＳ１３２のＮＯ分岐）、すなわち仮予約ＩＤがスケジュール記憶部１６０に記録された仮予約に該当する場合、ステップＳ１３４以降の処理を行う。ステップＳ１３４では、スケジュール記憶部１６０中の仮予約ＩＤに該当する仮予約を削除する。
【００９９】
次に、仮予約要求記憶部１７０中に、ステップＳ１３４で削除した仮予約の対象の資源についての待ち行列に要素があるか否かを調べる（ステップＳ１３５）。該判定の結果、待ち行列が空であれば（ステップＳ１３５のＮＯ分岐）、処理を完了する。待ち行列が空でない場合（ステップＳ１３５のＹＥＳ分岐）、ステップＳ１３６に進む。
【０１００】
ステップＳ１３６では、待ち行列の先頭要素をスケジュール記憶部１６０に移動する処理を行う（図１１（Ｃ）−図１１（Ｄ）参照）。
【０１０１】
仮予約される時間帯の決定方法は、前記ステップＳ１１４と同様である。それに加え、移動される仮予約要求を発行したジョブスケジューラ２００に対して、待機中の仮予約要求が実行されたことを通知する。以降では、この通知を「仮予約成功通知」と呼ぶ。
【０１０２】
次に、資源管理装置１００におけるジョブ予約取消要求受信手段１４０の動作を詳細に説明する。ジョブ予約取消要求受信手段１４０は、ジョブスケジューラ２００からジョブ予約取消要求を受信し、該当するジョブを破棄する処理を行う。ジョブ予約取消要求には、要求を発行するジョブスケジューラの識別子と、取り消しの対象とするジョブ予約のジョブＩＤが含まれる。
【０１０３】
ジョブ取消処理が成功するためには、ジョブ予約取消要求に含まれるジョブＩＤに対応ジョブ予約がスケジュール記憶部１６０に登録されており、かつ、そのジョブ予約要求の発行者と、ジョブ予約取消要求の発行者とが互いに一致している必要がある。この条件が満たされていれば、スケジュール記憶部１６０から該当するジョブの情報を削除する。さらに、該当するジョブにすでに資源が割り当てられている場合、当該ジョブが使用する資源を解放する処理を行う。資源を解放する処理は、後述のスケジュール管理手段による資源の解放処理と同様である。
【０１０４】
次に、資源管理装置１００におけるスケジュール管理手段１５０の動作を詳細に説明する。スケジュール管理手段１５０は、スケジュール記憶部１６０に記録された予約情報に従って、以下の処理を行う。
【０１０５】
・予約開始時刻に達したジョブについて、資源の割り当て処理を行う。
【０１０６】
・予約終了時刻に達したジョブについて、資源の解放処理を行う。
【０１０７】
・有効期限に達した仮予約を破棄する。
【０１０８】
上記資源の割り当て処理とは、予約された資源を実際に利用可能な状態にすることを指し、実際に行われる処理は管理対象の資源の種類によって異なる。例えば、資源がコンピュータである場合にはユーザプログラムの起動、記憶装置であればリモートファイルのオープン、ネットワーク機器であれば帯域の割り当てなどが該当する。
【０１０９】
上記資源の解放処理とは、資源の割り当て処理によってジョブに割り当てていた資源を利用不可能な状態に戻し、他のジョブへの割り当てを可能にすることを指す。資源の解放処理の具体例としては、例えばユーザプログラムの停止、リモートファイルのクローズ、帯域の割り当て停止などが該当する。
【０１１０】
上記仮予約の破棄は、スケジュール記憶部１６０に記録された仮予約のうち、有効期限に達したものを削除する処理である。さらに、破棄される仮予約の対象である資源についての、空でない待ち行列が、仮予約要求記憶部１７０中に存在する場合、その先頭要素である仮予約要求をスケジュール記憶部１６０に登録し、ジョブスケジューラ２００に対して、仮予約成功通知を送る。この部分の処理は、図１２の前記ステップＳ１３６と共通である。
【０１１１】
次に、ジョブスケジューラ２００の各手段の動作を詳細に説明する。まず、ジョブ実行要求受信手段２１０の動作を詳細に説明する。
【０１１２】
ジョブ実行要求受信手段２１０は、ユーザ端末４００からのジョブ実行要求を受信し、待機ジョブ記憶部２４０に追加する処理を行う。ジョブ実行要求には、要求を発行するユーザの識別子と、使用する資源の記述が含まれる。使用する資源の記述には、コンピュータや記憶装置などの資源の種類、ＣＰＵ性能などの性能に関する要請、複数の資源を割り当てる際の依存関係が含まれる。ジョブ実行要求を受理すると、ジョブ実行要求受信手段は新しいジョブＩＤを生成して、受信したジョブ実行要求の内容とともに待機ジョブ記憶部２４０に追加する。ここで追加されるジョブは待機状態である。さらに、生成されたジョブＩＤを、ジョブ実行要求を発行したユーザ端末に通知する。
【０１１３】
次に、図１３は、ジョブスケジューラ２００のジョブ取消要求受信手段２２０の動作を説明するための流れ図である。図７及び図１３を参照して、ジョブ取消要求受信手段２２０の動作を説明する。まず、ユーザ端末から要求内容を受信する（ステップＳ２２１）。要求内容には、ジョブ取消要求を発行するユーザの識別子と、取り消しの対象であるジョブＩＤが含まれる。ジョブ取消要求を発行するユーザと当該ジョブに対応するジョブ実行要求を発行したユーザが一致しない場合には、ジョブ取消要求を拒否する。
【０１１４】
次に、待機ジョブ記憶部２４０およびスケジュール記憶部２５０を参照して、ステップＳ２２１で受信したジョブＩＤに該当するジョブの情報がいずれに含まれるかを調べる（ステップＳ２２２）。判定の結果、待機ジョブ記憶部２４０に含まれる場合には（ステップＳ２２２のＹＥＳ分岐）、ステップＳ２２３を実行し、スケジュール記憶部２５０に含まれる場合には（ステップＳ２２２のＮＯ分岐）、ステップＳ２２４およびＳ２２５を実行する。いずれにも含まれない場合にはジョブ取消要求は失敗する。
【０１１５】
ステップＳ２２３では、待機ジョブ記憶部２４０から、当該ジョブの情報を削除して処理を完了する。
【０１１６】
一方、ステップＳ２２４では、当該ジョブを予約した資源管理装置１００に対してジョブ予約取消要求を送る。当該ジョブが予約されている資源がどれであるかはスケジュール記憶部２５０から取得する。
【０１１７】
ステップＳ２２５では、スケジュール記憶部２５０から当該ジョブを削除して処理を完了する。
【０１１８】
次に、図１４は、ジョブスケジューラ２００のジョブスケジューリング手段２３０の動作を説明するための流れ図である。図７及び図１４を参照して、ジョブスケジューリング手段２３０の動作を説明する。ジョブスケジューリング手段２３０は、定期的に待機ジョブ記憶部２４０の内容を監視して、待機状態のジョブが存在すれば以下に説明するスケジューリング処理を行う。
【０１１９】
まず、待機ジョブ記憶部２４０に格納されている待機中のジョブのうち、スケジューリングの対象となるジョブを先着順に取り出す（ステップＳ２３１）。ここで取り出すジョブの数は、システム管理上の方針により指定する。
【０１２０】
次に、ステップＳ２３１で取り出した待機中のジョブを割り当てることが可能な各資源について、当該資源を管理する資源管理装置１００に対して仮予約要求を発行する（ステップＳ２３２）。
【０１２１】
次に、ステップＳ２３２において仮予約要求記憶部１７０に格納された仮予約要求があるかどうかを調べる（ステップＳ２３３）。仮予約要求がある場合には（ステップＳ２３３のＹＥＳ分岐）、ステップＳ２３４に進み、仮予約要求がない場合には（ステップＳ２３３のＮＯ分岐）、ステップＳ２３５に進む。
【０１２２】
ステップＳ２３４では、一定時間待機し、資源管理装置１００からの仮予約成功通知が到着するのを待つ。ここで待機する時間は、システム管理上の方針により決定されるが、少なくとも仮予約の有効期間よりも短い必要がある。一定時間が経過するか、あるいは待機状態のすべての仮予約要求についての仮予約成功通知が到着した場合、ステップＳ２３５に進む。
【０１２３】
ステップＳ２３５では、仮予約に成功した資源を対象として、ジョブの実行スケジュールを作成する。実行スケジュールの作成とは、各ジョブをどの資源のどの時間帯に割り当てるかを決定する処理をいう。
【０１２４】
この処理には、例えば上記非特許文献２等に記載された既存のジョブスケジューリングアルゴリズムを適用することができる。
【０１２５】
上記非特許文献２で提案されているアルゴリズムＤ（ｍｉｎ−ｍｉｎとして知られている）を用いることができる。なお、ステップＳ２３２において仮予約要求記憶部１７０に格納され、かつ仮予約成功通知を受け取っていない仮予約要求がある場合、その仮予約要求の対象の資源はスケジューリングの対象に含めない。
【０１２６】
次に、ステップＳ２３５で作成した実行スケジュールに従って、各資源管理装置１００に対してジョブ予約要求を発行する（ステップＳ２３６）。ここでジョブ予約に成功したジョブは、待機ジョブ記憶部２４０からスケジュール記憶部２５０に移される。
【０１２７】
最後に、ステップＳ２３２で仮予約要求を送った各資源について、仮予約取消要求を資源管理装置１００に対して発行する（ステップＳ２３７）。
【０１２８】
仮予約取消要求の対象とする資源には、仮予約要求記憶部１７０に格納された仮予約の対象の資源も含まれる。
【０１２９】
【実施例】
上記実施の形態についてさらに詳細に説明すべく、次に、２つの具体的な実施例について説明する。第１の実施例は、「グリッドデータファーム」と呼ばれる種類の分散システムに本発明を適用した実施例である。
【０１３０】
図１５に示すように、第１の実施例のシステムは、インターネット（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ）を介して接続される２つのドメインからなり、各ドメイン内の構成要素はローカルエリアネットワーク（ＬＡＮ）で接続されている。ドメイン１内の構成要素には、ジョブスケジューラ（１）２００と、資源管理装置（１）１００と、ユーザ端末（１）４００と、ファイルサーバノード（以下、単に「ノード」と呼ぶ）（１１）３００〜ノード（１４）３００とがある。資源管理装置（１）３００は、ノード（１１）３００〜ノード（１４）３００を管理対象とする。ドメイン２内の構成要素には、ジョブスケジューラ（２）２００と、資源管理装置（２）１００と、ユーザ端末（２）４００と、ノード（２１）３００〜ノード（２４）３００とがある。資源管理装置（２）１００は、ノード（２１）３００〜ノード（２４）３００を管理対象とする。各ファイルサーバノードはディスク装置を内蔵するコンピュータであり、ファイルを複数の断片に分けて格納する分散ファイルサーバを構成する。さらに、ファイルサーバノードは計算ノードとしても機能し、自ノードが格納するファイル断片を処理対象として並列にジョブを実行する。
【０１３１】
図１６に、各ノード内に格納されているファイル断片の構成を示す。例えば、図１５のノード（１１）３００は、ファイルＡの断片０（ファイルＡ＃０）とファイルＢの断片０（ファイルＢ＃０）を格納している。図１６では、Ａ、Ｂ、Ｃの３種類のファイルがあり、ファイルＡは、＃０から＃３までの４つの断片からなり、ファイルＢおよびファイルＣは、＃０と＃１の２つの断片からなる。
【０１３２】
上記の構成を持つシステムにおいて、以下の２つのジョブが実行される場合の動作手順を説明する。
【０１３３】
・ジョブ１：ファイルＡを処理対象とする。図１５のユーザ（１）が、ユーザ端末（１）４００を通して、ジョブスケジューラ（１）２００にジョブを投入する。
【０１３４】
・ジョブ２：ファイルＢを処理対象とする。ユーザ（２）が、ユーザ端末（２）４００を通して、ジョブスケジューラ（２）２００にジョブを投入する。
【０１３５】
ジョブ１とジョブ２のいずれも、４つのノードを使用する並列ジョブとして実行される。従って、ジョブの実行に関わるすべてのノードについて、同じ時間帯に予約する必要がある。
【０１３６】
各ジョブスケジューラにジョブが投入されると、一旦、待機ジョブ記憶部（図７の２４０）にジョブが格納された後、ジョブスケジューリング手段（図７の２３０）によって資源の割り当てが行われる。
【０１３７】
ジョブスケジューラ（２）２００は、ジョブ２の実行に用いる可能性のある資源について仮予約要求を発行する。ジョブ２は、ファイルＢを処理対象としており、ファイルＢの断片を保持するノードは、図１６から、ノード（１１）、ノード（１２）、ノード（２１）、ノード（２２）の４つであるので、これら４つのノードを対象として仮予約要求を発行する。この時点では他の仮予約が存在していないので、これらのノードについてすべての時間帯で仮予約が成功する。ジョブスケジューラ（２）２００は、ジョブ２についての実行スケジュールの作成を開始する。
【０１３８】
次に、ジョブスケジューラ（１）２００は、ジョブ１の実行に用いる可能性のある資源について仮予約要求を発行する。ジョブ１は、ファイルＡを処理対象としており、ファイルＡの断片を保持するノードは、図１６から、ノード（１１）〜ノード（１４）およびノード（２１）〜ノード（２４）の８つである。したがって、これらのノードに関して仮予約要求を発行する。この時点では、ノード（１１）、ノード（１２）、ノード（２１）、ノード（２２）がジョブスケジューラ（２）２００により仮予約されているため、残りのノード（１３）、ノード（１４）、ノード（２３）、ノード（２４）のみが仮予約に成功し、残りの仮予約要求については待ち行列に格納される。このため、一定時間経過するか、仮予約成功通知が到着するまではスケジューリング処理を中断する。この時点における、各資源管理装置のスケジュール記憶部１６０および仮予約要求記憶部１７０の内容を、図１７に示す。
【０１３９】
次に、ジョブスケジューラ（２）２００は、ジョブ２についての実行スケジュールの作成を完了して、資源管理装置１（１００）、資源管理装置２（１００）の各々に対してジョブ予約要求を発行し、続いて、仮予約取消要求を発行する。その結果、ジョブ２のノード（１１）３００およびノード（１２）３００への割り当てが確定し、ノード１１、１２、２１、２２についての仮予約が破棄される。さらに、ノード１１、１２、２１、２２についての待ち行列から、ジョブスケジューラ（１）が発行した仮予約要求が取り出され、ノード１１、１２、２１、２２がジョブスケジューラ（１）によって仮予約された状態になる。この時点のおける各資源管理装置のスケジュール記憶部１６０および仮予約要求記憶部１７０の内容を、図１８に示す。
【０１４０】
次に、ジョブスケジューラ（１）２００は、資源管理装置（１）１００および資源管理装置（２）１００からの仮予約成功通知を受け取り、ジョブの実行スケジュールの作成を開始する。ここでは、実行開始までの時間が短く、かつすべての同一のドメイン内にあるノード（２１）、ノード（２２）、ノード（２３）、ノード（２４）の４つのノードを選択し、これらのノードを対象としてジョブ予約要求を送る。ジョブ予約の完了後、資源管理装置（１）１００および資源管理装置（２）１００に対して、仮予約取消要求を送る。
【０１４１】
図１９に、最終的なスケジューリング結果を示す。この例では、２つの仮予約要求が衝突しているにもかかわらず、要求の失敗が発生することなくジョブスケジューリングが正常に完了している。
【０１４２】
以上の動作手順は、あくまでもその一例を示したものであり、ジョブの投入順序や通信遅延などの影響によって異なるスケジューリング結果になる可能性がある。その場合でも問題なくスケジューリングが完了する。
【０１４３】
一方、本実施例と同様のシステムにおいて、仮予約の機構が存在しない場合を考える。ジョブスケジューラ（２）２００によるジョブ予約が先に実行されると、ノード（１１）とノード（１２）にジョブ２が予約される。その後、ジョブスケジューラ（１）２００によってジョブ１についてのジョブ予約が行われるが、もしジョブスケジューラ（１）２００がジョブ２の情報を知らないとすると、ノード（１１）〜ノード（１４）を対象としてジョブ予約が試みられる可能性がある。この場合、ノード（１３）とノード（１４）についてのみ予約が成功し、他の２つのノードを別途探す必要がある。
【０１４４】
その結果、図２０に示すスケジューリング結果となる。ジョブ１は、ＷＡＮをまたいだ資源に割り当てられるため、図１９のスケジューリング結果よりも、資源の利用効率が低くなる。
【０１４５】
次に本発明の第２の実施例について説明する。本発明の第２の実施例は、依存関係のある２つのジョブを実行する場合の例である。図２１に示すように、第２の実施例のシステムは、３つのドメインから構成され、ドメイン間はＷＡＮによって接続されている。各ドメインの内部はＬＡＮで接続されている。ドメイン１内のＬＡＮには、資源管理装置（１）１００と、管理対象の資源３００として、ルータ（１）３００と、ノード（１１）３００〜ノード（１４）３００の４つの計算ノード、および、記憶装置（１）３００が接続される。ドメイン２内のＬＡＮには、資源管理装置（２）１００と、管理対象の資源３００として、ルータ（２）３００と、ノード（２１）３００〜ノード（２４）３００の４つの計算ノード、および記憶装置（２）３００が接続される。ドメイン３内のＬＡＮには、資源管理装置（３）３００と、管理対象の資源としてルータ（３）３００と、ユーザ端末４００、およびジョブスケジューラ２００が接続される。各ルータ、計算ノード、およびファイルサーバは、同じドメインにある資源管理装置により管理される資源である。各ドメイン１、２、３のルータ１、２、３は、帯域予約機能を有し、特定のジョブによる通信のために必要な帯域を予約することができる。資源管理装置１００に対してネットワーク帯域を予約すると、その資源管理装置１００は該当するルータに対して帯域予約操作を行う。
【０１４６】
また、ドメイン１と２の記憶装置１、２は、ネットワーク（ＬＡＮまたはＷＡＮ）を介してデータの読み書きが可能なネットワークストレージである。
【０１４７】
上記の構成を有するシステムにおいて、以下の２つのジョブをユーザ端末を通して実行することを考える。
【０１４８】
・ジョブ１：８つの計算ノードを使用して計算を行い、その結果を任意の記憶装置上のファイルＡに書き込む。記憶装置への計算結果の書き込みには、１０Ｍｂｐｓのネットワーク帯域を要する。
【０１４９】
・ジョブ２：記憶装置上のファイルＡからデータを読み、その内容を２つの計算ノードを使用して可視化し、その結果を画像データとしてユーザ端末に送る。ファイルＡの読み込みには１０Ｍｂｐｓのネットワーク帯域を、画像データの送信には１Ｍｂｐｓのネットワーク帯域を要する。
【０１５０】
以下に、図２２を用いて、上記のジョブを投入したときの動作手順を示す。図２２は、各資源管理装置が保持するスケジュール記憶部１６０の内容の変化を示している。
【０１５１】
まず、図２２（Ａ）は、スケジューリング開始前の状態を示している。この状態では、ノード１１、ノード１２、ノード２２、ノード２３上に既存のジョブ予約が存在する。
【０１５２】
ドメイン３内のジョブスケジューラ２００は、ユーザ端末４００からジョブ１およびジョブ２ついてのジョブ実行要求を受け取った後、ジョブスケジューリング手段２３０（図７参照）による割り当て処理を開始する。最初に、ジョブスケジューラ２００は、ドメイン１、２、３の資源管理装置１、２、３が管理する資源について仮予約要求を発行する。
【０１５３】
図２２（Ｂ）は、ジョブスケジューラ２００による仮予約が完了した後の各資源管理装置１、２、３のスケジュール記憶部１６０の内容を示している。
【０１５４】
次に、ジョブスケジューラ２００は、ジョブ１およびジョブ２を割り当てる資源と時間帯を選択する。ここで、ジョブ１におけるファイルＡへの書き込みはジョブ２におけるファイルＡの読み出しよりも先行する必要があるという制約と、ジョブ２におけるファイルＡの読み出しに用いる記憶装置はジョブ１におけるファイルＡの書き込みに用いた記憶装置と同一である必要であるという制約がある。
【０１５５】
作成した実行スケジュールに従って、ドメイン１、２、３の各資源管理装置に、ジョブ予約要求を発行した結果、図２２（Ｃ）に示す予約状況になる。
【０１５６】
ジョブ予約に成功すると、ジョブスケジューラ２００は、ドメイン１、２、３の各資源管理装置に、仮予約取消要求を送り、仮予約を破棄する。
【０１５７】
ドメイン１、２、３の各資源管理装置における最終的なスケジュール記憶部１６０の内容が図２３に示されている。すなわち、図２３を参照すると、ドメイン１の資源管理装置（１）１００のスケジュール記憶部１６０において、ノード（１１）〜ノード（１４）でのジョブ１の計算処理、ルータ（１）でのジョブ１の帯域予約、記憶装置（１）におけるジョブ１のファイルの書き込みと、対応する時間帯において、ドメイン２の資源管理装置（２）１００のスケジュール記憶部１６０において、ノード（２１）〜ノード（２４）でのジョブ１の計算処理、ルータ（２）でのジョブ１の帯域予約が、それぞれ登録され、つづいて、ドメイン１において、ノード（１１）〜ノード（１４）でのジョブ２の計算処理、ルータ（１）でのジョブ２の帯域予約、記憶装置（１）におけるジョブ２のファイル読み出しが登録され、対応する時間帯において、ドメイン３の資源管理装置（３）１００のスケジュール記憶部１６０において、ジョブ２の帯域予約が登録されている。なお、上記した実行スケジュールは一例であり、必ずしもこの通りになるとは限らない。
【０１５８】
以上本発明を上記各実施例に即して説明したが、本発明は、上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０１５９】
【発明の効果】
以上説明したように、本発明によれば、下記記載の効果を奏する。
【０１６０】
本発明の第１の効果は、資源が分散して管理される分散システムにおいて、資源の利用効率を向上できることにある。
【０１６１】
その理由は、本発明においては、同時に、複数の資源を使うジョブや依存関係のあるジョブ群の一部のみ予約に失敗するという状況が発生しないためである。
【０１６２】
ジョブに必要な資源を事前に予約する場合、各資源についての予約状況の情報をあらかじめ取得する必要がある。前記したとおり、従来の手法では、取得した予約状況の情報と予約操作をする際の実際の予約状況が一致しない可能性があった。このため、同時に複数の資源を使うジョブや依存関係のあるジョブ群の一部のみ予約に失敗し、その結果可能な範囲で最適な資源の組み合わせが得られないことがある。これに対して、本発明によれば、仮予約の機構により、資源の予約状況の取得と、資源のロックとを同時に行うため、予約可能な資源を仮予約してから最適な資源の組み合わせを選ぶことができる。
【０１６３】
本発明の別の効果は、多数のジョブを実行する際の計算機およびネットワークの負荷の増大を抑止・低減することができる、ということである。
【０１６４】
その理由は、本発明においては、競合する仮予約要求を待ち行列に格納することによって、必要な資源が獲得できるまで仮予約要求を繰り返す必要がないからである。
【図面の簡単な説明】
【図１】資源の事前予約の概念を説明するための図である。
【図２】従来技術１のシステム構成を示す図である。
【図３】従来技術２のシステム構成を示す図である。
【図４】従来技術２を適用した場合に非効率な資源の割り当てが行われる例を示すための図である。
【図５】本発明の実施の形態のシステム構成を示す図である。
【図６】本発明の実施の形態における資源管理装置１００の構成を示すブロック図である。
【図７】本発明の実施の形態におけるジョブスケジューラ２００の構成を示すブロック図である。
【図８】本発明の実施の形態における各手段間の相互作用を説明するための図である。
【図９】ジョブスケジューラにおけるスケジュール記憶部２５０の状態変化を示す図である。
【図１０】資源管理装置の仮予約要求受信手段１１０の動作手順を示すフローチャートである。
【図１１】資源管理装置の仮予約要求受信手段１１０における待ち行列の扱いを説明するための図である。
【図１２】資源管理装置の仮予約取消要求受信手段１３０の動作手順を示すフローチャートである。
【図１３】ジョブスケジューラのジョブ取消要求受信手段２２０の動作手順を示すフローチャートである。
【図１４】ジョブスケジューラのジョブスケジューリング手段２３０の動作手順を示すフローチャートである。
【図１５】本発明の第１の実施例のシステム構成を示す図である。
【図１６】本発明の第１の実施例におけるファイルサーバノードの構成を示す図である。
【図１７】本発明の第１の実施例におけるジョブスケジューリングの途中経過を示す図である。
【図１８】本発明の第１の実施例におけるジョブスケジューリングの途中経過を示す図である。
【図１９】本発明の第１の実施例におけるジョブスケジューリングの結果を示す図である。
【図２０】本発明の第１の実施例において、仮予約の機構を用いない場合のジョブスケジューリングの結果を示す図である。
【図２１】本発明の第２の実施例のシステム構成を示す図である。
【図２２】本発明の第２の実施例におけるジョブスケジューリングの途中経過を示す図である。
【図２３】本発明の第２の実施例におけるジョブスケジューリングの結果を示す図である。
【符号の説明】
１００  資源管理装置
１１０  仮予約要求受信手段
１２０  ジョブ予約要求受信手段
１３０  仮予約取消要求受信手段
１４０  ジョブ予約取消要求受信手段
１５０  スケジュール管理手段
１６０  スケジュール記憶部
１７０  仮予約要求記憶部
２００  ジョブスケジューラ
２１０  ジョブ実行要求受信手段
２２０  ジョブ取消要求受信手段
２３０  ジョブスケジューリング手段
２４０  待機ジョブ記憶部
２５０  スケジュール記憶部
３００  資源
４００  ユーザ端末
【図１】
2004302748.tif 000003
【図２】
2004302748.tif 000004
【図３】
2004302748.tif 000005
【図４】
2004302748.tif 000006
【図５】
2004302748.tif 000007
【図６】
2004302748.tif 000008
【図７】
2004302748.tif 000009
【図８】
2004302748.tif 000010
【図９】
2004302748.tif 000011
【図１０】
2004302748.tif 000012
【図１１】
2004302748.tif 000013
【図１２】
2004302748.tif 000014
【図１３】
2004302748.tif 000015
【図１４】
2004302748.tif 000016
【図１５】
2004302748.tif 000017
【図１６】
2004302748.tif 000018
【図１７】
2004302748.tif 000019
【図１８】
2004302748.tif 000020
【図１９】
2004302748.tif 000021
【図２０】
2004302748.tif 000022
【図２１】
2004302748.tif 000023
【図２２】
2004302748.tif 000024
【図２３】
2004302748.tif 000025