(57)【要約】【課題】ユーザが指定した指定処理を実行するリソースを適切に確保する。【解決手段】計算機システム内における、処理を実行するためのリソースを管理するリソース管理装置であって、ユーザにより指定された指定処理を実行するためのリソースを確保するリソース確保部と、確保されたリソースにおいて確保した時間内に指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる問合せ部と、ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、リソース確保部によりリソースを確保させて、確保されたリソース上で指定処理の続きを行わせる再開指示部と、を備えるリソース管理装置を提供する。【選択図】図２
2010152738.tif 000002
【特許請求の範囲】
【請求項１】
計算機システム内における、処理を実行するためのリソースを管理するリソース管理装置であって、
ユーザにより指定された指定処理を実行するためのリソースを確保するリソース確保部と、
確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる問合せ部と、
前記ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、前記リソース確保部によりリソースを確保させて、確保されたリソース上で前記指定処理の続きを行わせる再開指示部と、
を備えるリソース管理装置。
【請求項２】
前記問合せ部は、リソースを追加で確保して前記指定処理の続きを行わせるための再開料金を支払うか否かを前記ユーザに問い合わせ、
前記再開指示部は、前記ユーザから前記再開料金を支払う旨の指示を受けたことに応じて、前記リソース確保部により確保させたリソース上で前記指定処理の続きを行わせる
請求項１に記載のリソース管理装置。
【請求項３】
確保されたリソース上で前記指定処理を確保された時間実行させる実行管理部と、
確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、中断された前記指定処理の実行状態を格納する実行状態格納部と、
を更に備え、
前記再開指示部は、追加で確保したリソースに対して前記実行状態格納部に格納された、中断された前記指定処理の実行状態を復元して、当該リソース上で前記指定処理の続きを行わせる
請求項２に記載のリソース管理装置。
【請求項４】
前記実行管理部は、前記指定処理を実行していたリソースとは異なる他のリソースが追加で確保されたことに応じて、前記実行状態格納部に格納された、中断された前記指定処理の実行状態を当該他のリソースに対して復元する
請求項３に記載のリソース管理装置。
【請求項５】
前記指定処理を実行するリソースが満たすべき実行サービスレベルを前記ユーザから受け取る要求受付部を更に備え、
前記リソース確保部は、前記指定処理を実行する場合および前記指定処理の続きの実行を再開する場合に、前記計算機システム内における、前記実行サービスレベルを満たすリソースを確保する
請求項３または４に記載のリソース管理装置。
【請求項６】
前記問合せ部は、前記指定処理の続きを実行するリソースが満たすべき再開サービスレベルを、前記実行サービスレベルから変更するか否かの指示を前記ユーザから受け取り、
前記リソース確保部は、前記再開サービスレベルを前記実行サービスレベルから変更する指示を受けたことに応じて、前記計算機システム内における、前記再開サービスレベルを満たすリソースを確保する
請求項５に記載のリソース管理装置。
【請求項７】
前記再開指示部は、リソースを追加で確保して前記指定処理の続きを実行するか否かの再開指示を前記ユーザから受け取る前に、前記リソース確保部により空リソースを確保させて、確保されたリソース上で前記指定処理の続きを再開しておく請求項３から６のいずれかに記載のリソース管理装置。
【請求項８】
前記再開指示部は、前記再開指示を前記ユーザから受け取る前に前記指定処理の続きを再開した場合において、前記再開指示を前記ユーザから受け取るまで前記指定処理の続きを再開しない場合と比較して前記再開料金を減額する請求項７に記載のリソース管理装置。
【請求項９】
前記再開指示部は、それぞれの前記指定処理を指定した前記ユーザに割り当てられた優先度、それぞれの前記指定処理の続きを実行するための前記再開料金の額、および、それぞれの前記指定処理が終えるまでの予測時間の少なくとも１つに基づいて、中断された複数の前記指定処理の中から再開する前記指定処理を選択する請求項７または８に記載のリソース管理装置。
【請求項１０】
確保されたリソース上で前記指定処理を実行中に、当該リソースが確保された時間内に前記指定処理が完了するか否かを予測する完了予測部を更に備え、
前記実行管理部は、当該リソースが確保された時間内に前記指定処理の実行が終了しないと予測されたことに応じて、リソースの確保が終了する終了時刻から前記実行状態の保存に要する中断時間前までに、前記指定処理の実行を中断させる
請求項３から９のいずれかに記載のリソース管理装置。
【請求項１１】
前記完了予測部は、前記終了時刻から前記中断時間前に、前記終了時刻までに前記指定処理の実行が終了するか否かを予測する請求項１０に記載のリソース管理装置。
【請求項１２】
過去に実行された前記指定処理の実行時間の履歴を格納する実行履歴格納部を更に備え、
前記完了予測部は、実行中の前記指定処理の実行時間を、前記実行履歴格納部に格納された実行時間の履歴に基づいて予測する
請求項１０または１１に記載のリソース管理装置。
【請求項１３】
計算機システム内における、処理を実行するためのリソースを管理するリソース管理装置であって、
ユーザにより指定された指定処理を実行するためのリソースを確保するリソース確保部と、
確保されたリソース上で前記指定処理を実行中に、当該リソースが確保された時間内に前記指定処理が完了するか否かを予測する完了予測部と、
確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、中断された前記指定処理の実行状態を格納する実行状態格納部と、
確保されたリソース上で前記指定処理を確保された時間実行させ、当該リソースが確保された時間内に前記指定処理の実行が終了しないと予測されたことに応じて、リソースの確保が終了する終了時刻から前記実行状態の保存に要する中断時間前までに、前記指定処理の実行を中断させる実行管理部と、
確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、リソースを追加で確保して前記指定処理の続きを行わせるための再開料金を支払うか否かをユーザに問い合わせる問合せ部と、
前記ユーザから前記再開料金を支払ってリソースを追加で確保する旨の指示を受けたことに応じて、前記リソース確保部によりリソースを確保させて、追加で確保したリソースに対して前記実行状態格納部に格納された、中断された前記指定処理の実行状態を復元して、確保されたリソース上で前記指定処理の続きを行わせる再開指示部と、
を備え、
前記再開指示部は、空リソースが存在する場合に、リソースを追加で確保して前記指定処理の続きを実行するか否かの再開指示を前記ユーザから受け取る前に、前記リソース確保部により空リソースを確保させて、確保されたリソース上で前記指定処理の続きを再開しておく
リソース管理装置。
【請求項１４】
請求項１から１３のいずれかに記載のリソース管理装置と、
前記計算機システムと、
を備える分散システム。
【請求項１５】
計算機システム内における、処理を実行するためのリソースを管理するリソース管理装置としてコンピュータを機能させるリソース管理プログラムであって、
前記コンピュータを、
ユーザにより指定された指定処理を実行するためのリソースを確保するリソース確保部と、
確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる問合せ部と、
前記ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、前記リソース確保部によりリソースを確保させて、確保されたリソース上で前記指定処理の続きを行わせる再開指示部と、
して機能させるリソース管理プログラム。
【請求項１６】
計算機システム内における、処理を実行するためのリソースをコンピュータにより管理するリソース管理方法であって、
ユーザにより指定された指定処理を実行するためのリソースを前記コンピュータにより確保するリソース確保段階と、
前記コンピュータが、確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる問合せ段階と、
前記ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、前記コンピュータが、前記リソース確保段階によりリソースを確保させて、確保されたリソース上で前記指定処理の続きを行わせる再開指示段階と、
を備えるリソース管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リソース管理装置、リソース管理プログラム、およびリソース管理方法に関する。
【背景技術】
【０００２】
近年、ネットワークを介したユーザからの要求に応じて、ＣＰＵ、メモリ、およびストレージ等のハードウエアリソース、並びに、アプリケーション等のソフトウエアリソースを組み合わせて各種のサービス及び／又は計算機環境を提供するクラウド・コンピューティングが注目されている。クラウド・コンピューティングにおいては、リソースの使用量に応じて、ユーザに対して従量制で課金するモデルが一般的である。
【０００３】
特許文献１には、サービス実行時間の見積もりデータ作成時に、処理時間と課金額に加えて、その時間内でサービスを完了できる確率を表示することが記載されている（段落００５９）。特許文献２には、課金額の実算値が予算値に達したときにジョブの実行が中断されてしまうのを防ぐことを目的として（段落０００５）、ジョブの実行時に使用される想定課金を予測し、予算値を超過すると判定した場合には予算値を満たせる可能性が高いジョブクラスまたはシステムにジョブを転送することが記載されている（要約等）。特許文献３には、プリペイド式の従量制課金方法において、購入した分のリソースを使い切ってしまうことを防ぐことを目的として、単位時間当たりに使用可能な計算機リソースの上限をサービスプロセッサから利用者が設定可能とすることが記載されている（請求項１等）。
【特許文献１】特開２００５−５６２０１号公報
【特許文献２】特開平７−２３４７４０号公報
【特許文献３】特開２００７−６６２５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
クラウド・コンピューティングにおいては、各種のハードウエアリソースおよびソフトウエアリソースが組み合わされてユーザに対して提供されるので、ユーザがリソースの使用量を適切に求めるのが比較的困難である。上記の技術においては、ユーザがリソースを余分に確保すると、無駄な課金が発生すると共に、リソースにアイドルが生じてしまう。一方、リソースが不足しすぎると、リソースを確保した期間内にサービス等が完了せず、サービス等が中断されて無駄に課金されてしまう可能性がある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の第１の態様においては、計算機システム内における、処理を実行するためのリソースを管理するリソース管理装置であって、ユーザにより指定された指定処理を実行するためのリソースを確保するリソース確保部と、確保されたリソースにおいて確保した時間内に前記指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる問合せ部と、前記ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、前記リソース確保部によりリソースを確保させて、確保されたリソース上で前記指定処理の続きを行わせる再開指示部と、を備えるリソース管理装置を提供する。
【０００６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係る分散システム１０の構成を示す。分散システム１０は、ユーザからの処理要求に応じて、計算機システム１００内の少なくとも１つのハードウエアリソース及び／又はソフトウエアリソースを所定の時間確保して、ユーザが指定した処理を実行する。そして、分散システム１０は、当該処理のために確保されたリソースに不足が生じた場合には、リソースを追加で確保するか否かをユーザに問い合わせ、リソースを追加する旨の指示を受けたことに応じてリソースを追加で確保し処理の続きを実行する。
【０００９】
計算機システム１００は、情報処理を実行するために用いられる１または複数のリソースを有しており、少なくとも１つのリソースを組み合わせてユーザが指定した情報処理を実行する。リソース管理装置１１０は、計算機システム１００内における、処理を実行するためのリソースを管理する。リソース管理装置１１０は、ユーザからサービスの実行またはユーザが指定したプログラム等の実行の要求を受けて、ユーザにより指定された指定処理を実行するための計算機システム１００内のリソースを少なくとも１つ確保して、当該リソース上で当該指定処理を実行させる。また、リソース管理装置１１０は、確保したリソースに不足が生じた場合には、ユーザの指示を受けて計算機システム１００内のリソースを追加で確保して、当該指定処理の続きを実行させる。
【００１０】
ユーザ端末１２０ａ〜ｂは、ユーザがサービスまたはプログラム等の実行をリソース管理装置１１０に指示し、サービスまたはプログラム等の実行結果を受け取るために用いられる。ネットワーク１３０は、インターネット、イントラネット、及び／又はローカルエリアネットワーク等であり、ユーザ端末１２０ａ〜ｂと、リソース管理装置１１０とを接続する。
【００１１】
図２は、本実施形態に係るリソース管理装置１１０の構成を示す。リソース管理装置１１０は、フロントエンド処理部２００と、問合せＤＢ２１０と、課金ＤＢ２１２と、処理ＤＢ２１４と、解析部２２０と、ポリシーＤＢ２２２と、リソースＤＢ２２４と、スケジュールＤＢ２２６と、リソース確保部２３０と、実行管理部２４０と、実行状態ＤＢ２５０と、実行履歴ＤＢ２６０と、完了予測部２７０とを備える。フロントエンド処理部２００は、ネットワーク１３０を介したユーザ端末１２０との間でのインタラクションおよびユーザが指定した指定処理の実行／再開指示をする。フロントエンド処理部２００は、要求受付部２０２と、実行指示部２０４と、問合せ部２０６と、再開指示部２０８とを有する。
【００１２】
要求受付部２０２は、ユーザが実行を希望するサービスまたはプログラム等の指定処理の内容をユーザ端末１２０から受け付ける。指定処理の内容を受けたことに応じて、要求受付部２０２は、いずれのリソースをどれだけの時間確保するべきかの予測を解析部２２０に依頼する。要求受付部２０２は、予測の結果確保するリソースに応じた課金額を課金ＤＢ２１２を参照して算出して、ユーザ端末１２０を介してユーザに提示する。課金額を見たユーザから実行要求を受け取ると、要求受付部２０２は、実行要求を受け取った旨を実行指示部２０４に通知する。以上の処理において、要求受付部２０２は、ユーザからの指定により、またはユーザとの間での契約により、指定処理を実行するリソースが満たすべき実行サービスレベルをユーザから受け取ってもよい。
【００１３】
実行指示部２０４は、要求受付部２０２から実行要求を受け取って、リソースの確保をリソース確保部２３０に要求する。また、実行指示部２０４は、指定処理の内容を処理ＤＢ２１４へと格納することにより、指定処理の実行を実行管理部２４０へと指示する。
【００１４】
問合せ部２０６は、確保されたリソースにおいて確保した時間内に指定処理を終えることができない場合に、リソースを追加で確保するか否かをユーザに問い合わせる。問合せ部２０６は、ユーザに問合せ中の内容を問合せＤＢ２１０に格納する。そして、問合せ部２０６は、ユーザからリソースを追加で確保する旨の指示を受け取ると、その旨を再開指示部２０８へと通知する。本実施形態においては、計算機システム１００は、リソースを追加で確保する場合には、ユーザに追加料金を課金する。そこで、問合せ部２０６は、リソースを追加で確保して指定処理の続きを行わせるための再開料金を支払うか否かをユーザに問い合わせることによって、リソースを追加で確保するか否かをユーザに問い合わせる。
【００１５】
再開指示部２０８は、ユーザからリソースを追加で確保する旨の指示を受けたことに応じて、リソース確保部２３０によりリソースを確保させて、確保されたリソース上で指定処理の続きを行わせる。本実施形態においては、リソースを追加で確保する場合には追加料金を課金するので、再開指示部２０８は、ユーザから再開料金を支払う旨の指示を受けたことに応じて、リソース確保部２３０により確保させたリソース上で指定処理の続きを行わせる。
【００１６】
なおフロントエンド処理部２００は、指定処理が実行または再実行されたことに応じて、ユーザに対して課金処理をする課金部を更に有してもよい。課金部は、ユーザの銀行口座またはクレジットカードを管理する外部のサーバ装置に対して、課金額および追加料金を課金するトランザクションを発行する。
【００１７】
処理ＤＢ２１４は、各ユーザにより指定された指定処理の情報を格納する。解析部２２０は、要求受付部２０２及び／又は問合せ部２０６から受け取った指定処理の内容を解析して、ポリシーＤＢ２２２、リソースＤＢ２２４、およびスケジュールＤＢ２２６を参照して当該指定処理を実行させる少なくとも１つのリソースおよび当該少なくとも１つのリソースの確保時間を求める。解析部２２０は、当該少なくとも１つのリソースおよびその確保時間を要求受付部２０２及び／又は問合せ部２０６に渡す。
【００１８】
ポリシーＤＢ２２２は、指定処理の実行条件等をユーザ毎に定めたユーザ・ポリシー、および、指定処理の実行条件等のデフォルト値を定めたシステム・ポリシーを格納する。リソースＤＢ２２４は、計算機システム１００内の各リソースに対応して、そのリソースの種類、属性、およびそのリソースが満たすサービスレベル等のリソースに関する情報を格納する。スケジュールＤＢ２２６は、各指定処理が計算機システム１００内の各リソースを使用するスケジュールを格納する。
【００１９】
リソース確保部２３０は、実行指示部２０４からリソースを確保する要求を受けて、実行指示部２０４が実行を指示した指定処理を実行するためのリソースを確保する。また、リソース確保部２３０は、再開指示部２０８からリソースを追加で確保する要求を受けて、再開指示部２０８が実行を指示した指定処理の続きを実行するためのリソースを確保する。すなわち、リソース確保部２３０は、指定処理を実行する旨の実行要求を受けた実行指示部２０４及び／又は再開指示部２０８からの指示に応じて、指定された少なくとも１つのリソースを指定した確保時間確保するべくスケジュールＤＢ２２６上でリソース使用スケジュールを登録する。
【００２０】
実行管理部２４０は、計算機システム１００上における各指定処理の実行を管理する。具体的には、実行管理部２４０は、指定処理毎に確保されたリソースを割り当てて、確保されたリソース上で指定処理を確保された時間計算機システム１００により実行させる。また、実行管理部２４０は、確保されたリソースにおいて確保した時間内に指定処理を終えることができない場合に、指定処理の実行を中断することを計算機システム１００に指示する。
【００２１】
実行状態ＤＢ２５０は、実行状態格納部の一例であり、中断された指定処理の実行状態を格納する。また、実行管理部２４０は、中断された指定処理の続きを実行するためにリソースが追加で確保された場合には、指定処理の続きを、追加で確保されたリソース上で追加で確保された時間計算機システム１００により実行させる。また、実行状態ＤＢ２５０は、指定処理の実行結果を格納する。そして、実行状態ＤＢ２５０は、指定処理の実行を要求したユーザのユーザ端末１２０からの要求を受けて、指定処理の実行結果を返信する。
【００２２】
実行履歴ＤＢ２６０は、実行履歴格納部の一例であり、過去に実行された指定処理の実行時間の履歴を格納する。具体的には、実行履歴ＤＢ２６０は、指定処理の実行中に計算機システム１００が送信する実行状態の監視結果、および指定処理の実行時間を計算機システム１００から順次受け取って、格納していく。
【００２３】
完了予測部２７０は、確保されたリソース上で指定処理を実行中に、当該リソースが確保された時間内に指定処理が完了するか否かを予測する。完了予測部２７０は、一例として実行履歴ＤＢ２６０に格納された当該指定処理の実行状態の監視結果、および指定処理に類似する過去の処理の実行時間の履歴等に基づいて、確保時間内に指定処理が完了するか否かを予測して、予測結果をフロントエンド処理部２００および実行管理部２４０に通知する。これを受けて、フロントエンド処理部２００内の問合せ部２０６は、確保時間内に指定処理が完了しない場合には、リソースを追加で確保するか否かをユーザ端末１２０のユーザに問い合わせる。また、実行管理部２４０は、指定処理の実行の中断を計算機システム１００に指示する。
【００２４】
以上に示したリソース管理装置１１０によれば、確保した計算機システム１００のリソースにおいて確保した時間内に指定処理を終えることができない場合に、ユーザの承認を受けてリソースを追加で確保して指定処理の続きを計算機システム１００により実行させることができる。したがって、リソース管理装置１１０は、余分となりうるリソースをユーザが予め確保しておかなかったとしても、ユーザの合意の下で、リソースを追加で確保して処理を完了させることができる。
【００２５】
図３は、本実施形態に係る計算機システム１００の論理的な構成を示す。計算機システム１００は、例えばクラウド・コンピューティング・システム、グリッド・コンピューティング・システム、並列計算機、スーパーコンピュータ、サーバ、パーソナルコンピュータ、およびこれらの任意の数同士の組み合わせ等によって実現される。
【００２６】
計算機システム１００は、情報処理を実行するために用いられる１または複数のリソースを有する。計算機システム１００が有するリソースは、物理または論理プロセッサ、メモリ、ストレージ、通信インターフェイス、情報処理装置、および計算機クラスタその他の、情報処理を実行するために使用されるハードウエアリソースであってよい。また、計算機システム１００が有するリソースは、一例として同時に使用可能なユーザ数が制限されたアプリケーションプログラムおよびオペレーティングシステムその他のソフトウエアリソースであってもよい。
【００２７】
１または複数の処理ノード３００のそれぞれは、１または複数のリソース（群）３１０を組み合わせて構成された、指定処理を実行するために協働する仮想的な計算機システムであってもよい。各処理ノード３００が有する１または複数のリソース（群）３１０は、ユーザの承認を受けて、対応する指定処理を実行するために実行管理部２４０により確保される。それぞれのリソース（群）３１０は、１つのリソースまたは２以上のリソース群（例えばＣＰＵ＋メモリ＋ハードディスク）またはこれらのリソース等の一部のみを占有することによって構成される。それぞれのリソース（群）３１０は、指定処理の一部または全部を実行する実行部３２０と、実行部３２０の実行状態を監視して監視結果をリソース管理装置１１０内の実行履歴ＤＢ２６０へと送信する監視部３３０とを含む。また、計算機システム１００は、いずれの指定処理に対しても確保されておらず、アイドル状態の空リソース３４０を１または複数含んでもよい。
【００２８】
図４は、本実施形態に係る問合せＤＢ２１０に格納される問合せテーブル４００の一例を示す。問合せ部２０６は、確保されたリソースにおいて確保した時間内に指定処理を終えることができない場合に、追加でリソースを確保して指定処理の残りを実行するかどうかをネットワーク１３０およびユーザ端末１２０を介してユーザに問い合わせる。問合せ部２０６は、ユーザに対する問合せ内容（オファー内容）を、問合せＤＢ２１０内の問合せテーブル４００に格納する。
【００２９】
問合せテーブル４００は、それぞれの問合せ毎に、問合せ部２０６が問合せ毎に個別に付加した各問合せの識別情報である「オファリングＩＤ」と、ユーザに対する問合せの「日時」と、問合せの状態を示す「ステータス」と、問合せの内容を示す「オファリング内容」とを格納する。図中第１行に示したオファリングＩＤが１０００＿２の問合せは、「日時２００８／０９／１０  ０９：００：００−２００８／９／１５  １２：００」の期間に、リソース「ｘｘｘｘｘｘｘ」を使用して、追加料金＄２００で処理の続きを実行するという提案内容である。
【００３０】
また、図中第２行に示したオファリングＩＤが１００１＿１の問合せは、追加料金＄１００で処理の続きを実行するという提案内容である。いずれの問合せもステータスが「ユーザ返答待ち」であり、問合せ部２０６がユーザ端末１２０に対して問合せを送信済みであるがユーザ端末１２０から回答が得られていない状態であることを示す。
【００３１】
図５は、本実施形態に係る課金ＤＢ２１２に格納される課金テーブル５００の一例を示す。課金テーブル５００は、リソース及び／又はリソースに含まれる各部毎に、課金単価を記憶する。一例として、課金テーブル５００は、リソースの識別情報である「リソースＩＤ」と、リソース内における課金対象となる部分を示す「課金対象」と、リソースの当該課金対象部分の課金単価を求める基準となる単位量を示す「課金単位（ユニット）」と、リソースの当該課金対象部分の課金単価を求める基準となる単位時間を示す「課金単位（時間）」と、リソースの当該課金対象部分を課金単位（ユニット）分、課金単位（時間）の間使用した場合の課金額である「課金単価」と、当該課金単価が適用される「条件」とを格納する。
【００３２】
本実施例において、リソースＩＤが「１」のリソースは、ＣＰＵ、メモリ、およびＤｉｓｋを課金対象部分として含むコンピュータである。ＣＰＵは、課金単位（ユニット）が０．１であり、課金単位（時間）が１Ｈｏｕｒであり、課金単価が０．００５＄であるから、１時間の間、１ＣＰＵのＣＰＵ時間を１０％確保した場合に＄０．００５が課金される。また、メモリは、課金単位（ユニット）が２５６ＭＢであり、課金単位（時間）が１Ｈｏｕｒであり、課金単価が０．００５＄であるから、１時間の間２５６ＭＢのメモリを確保した場合に＄０．００５が課金される。また、Ｄｉｓｋは、課金単位（ユニット）が１０ＧＢであり、課金単位（時間）が１Ｈｏｕｒであり、課金単価が０．０５＄であるから、１時間の間１０ＧＢの記憶領域を確保した場合に、＄０．０５が課金される。
【００３３】
要求受付部２０２及び／又は問合せ部２０６は、少なくとも１つのリソース（またはリソースの一部）のそれぞれを所定の時間確保する場合の課金額として、それぞれのリソース等の課金単価を基準として、リソース（またはリソースの一部）を使用する量および時間に応じて比例した額を提示してもよい。これに代えて、要求受付部２０２及び／又は問合せ部２０６は、リソース等を使用する量及び／又は時間に応じて課金額の増加量が漸増または漸減する料金体系を採ってもよい。また、要求受付部２０２及び／又は問合せ部２０６は、使用量、使用時間、及び／又はこれらの積が一定以上となった場合には定額となる料金体系を採ってもよい。
【００３４】
また、条件フィールドは、当該課金単価が適用される条件、すなわち例えば保証するサービスレベル（保証信頼性、保証稼働率、暗号化の要否、暗号化レベル等）、季節／日付／時間帯、及び／又は、計算機システム１００の空リソースの条件（空リソースが全体のＸ％未満の場合）等といった条件を限定するために用いられる。これにより、要求受付部２０２及び／又は問合せ部２０６は、保証するサービスレベル、リソースを確保する時期、及び／又は計算機システム１００の負荷状態等に応じて、課金額を変動させることができる。
【００３５】
また、課金テーブル５００は、多様なサービスレベルの設定に応じて、異なる課金単価を記憶してもよい。例えば課金テーブル５００は、「他の指定処理を優先して、他の指定処理を先に実行した場合には当該指定処理を遅延させる」場合に通常より低めの課金単価を設定してもよく、「他の指定処理を優先して、他の指定処理に対して必要に応じリソースを提供した場合には、サービスレベルがより低いリソースを確保して続きを実行してもよい」場合に通常より低めの課金単価を設定してもよい。また、課金テーブル５００は、「リソースを確保した時間内に指定処理の実行が完了しない場合において、空リソース上で指定処理の続きを実行する」場合に低めの課金単価を設定してもよい。
【００３６】
また、課金テーブル５００は、「リソースを確保した時間内に指定処理が完了しないと予測された場合に、リソースの追加を問い合わせる」場合に高めの課金単価を設定してもよく、「リソースを確保した時間内に指定処理が完了しないと予測された場合に、リソースを自動的に追加して完了させる」場合には更に高い課金単価を設定してもよい。なお、システムによっては、指定処理の実行を中断するまでは無料として、追加料金のみを課金する料金体系をとってもよく、完全に無料であってもよい。
【００３７】
図６は、本実施形態に係る処理ＤＢ２１４に格納される処理テーブル６００およびトランザクション・テーブル６１０の一例を示す。処理テーブル６００は、計算機システム１００上で実行すべき少なくとも１つの指定処理のそれぞれについて、指定処理の識別情報である「処理ＩＤ」と、指定処理の名称を示す「処理名」と、指定処理を実行する上でユーザとの間で契約した様々なサービスレベルの条件を列挙した「ＳＬＯ（サービスレベルオファリング）の指定」と、当該指定処理を実行するために開始すべき少なくとも１つの「トランザクション」とを格納する。
【００３８】
ＳＬＯの指定フィールドは、指定処理を実行する上でユーザとの間で契約した様々なサービスレベルの条件を記憶するために用いられる。サービスレベルの条件は、一例として信頼性（ＭＴＢＦ）の保証値、稼働率の保証値、暗号化をするか否か、暗号化レベル、及び／又は、ハードウエアリソースを他の指定処理と共用するか否か等が挙げられる。開始トランザクションフィールドは、指定処理を開始するために呼び出すべきトランザクションを特定する。このトランザクションは、指定処理の少なくとも一部ずつを担当する処理単位であり、例えば、１または複数のプロセス、１または複数のスレッド、及び／又は、１または複数のデータベース処理等であってよい。
【００３９】
トランザクション・テーブル６１０は、計算機システム１００上で実行すべき各指定処理に含まれるトランザクション毎に、当該トランザクションを含む指定処理の「処理ＩＤ」と、トランザクションの識別情報である「トランザクション」と、当該トランザクションが処理する「データ処理量」と、び当該トランザクションの「次のトランザクション」を格納する。実行指示部２０４および問合せ部２０６は、指定処理の実行を開始する場合、および指定処理の続きの実行を開始する場合に、各指定処理に含まれる各トランザクションをトランザクション・テーブル６１０に登録する。これに代えて、実行管理部２４０は、指定処理の実行中に動的に生成されるトランザクションの情報を計算機システム１００から取得して、処理ＤＢ２１４に動的に格納してもよい。
【００４０】
図７は、本実施形態に係るポリシーＤＢ２２２に格納されるユーザ・ポリシー・テーブル７００およびシステム・ポリシー・テーブル７１０の一例を示す。ユーザ・ポリシー・テーブル７００は、ユーザの識別情報として用いられる「ユーザ名」と、例えば「未完了の処理を保存する」、および「以前の同じ処理の結果を使用する」等といった複数のユーザ・ポリシーの項目のそれぞれを当該ユーザに対して適用するか否かを示すユーザ・ポリシー適用可否情報とを格納する。リソース管理装置１１０は、リソース管理装置１１０および計算機システム１００の管理者の指示、または各ユーザからの事前の指示に応じて各ユーザのユーザ・ポリシーを設定してもよい。これに代えて、リソース管理装置１１０は、ユーザがユーザ端末１２０からネットワーク１３０を介してポリシーＤＢ２２２内のユーザ・ポリシーを変更可能としてもよい。
【００４１】
システム・ポリシー・テーブル７１０は、例えば「未完了の処理を保存し、オファリングを行う」、「処理の結果をキャッシュする」、および「ユーザの最大支払限度額に応じて未同意の処理をおこなっておく」等といったシステム側の「ポリシー」と、対応するポリシーを適用するか否かを示すシステム・ポリシー適用可否情報となる「値」と、当該システム・ポリシーの適用対象となる「対象リソースＩＤ」と、当該システム・ポリシーを適用する「条件」とを格納する。例えば、「未完了の処理を保存し、オファリングを行う」というシステム・ポリシーは、対象リソースＩＤが「ＡＬＬ」かつ値が「Ｙｅｓ」であるから、全てのリソースに対して適用される。
【００４２】
また、「処理の結果をキャッシュする」というシステム・ポリシーは、対象リソースＩＤが「３」かつ値が「Ｎｏ」であるから、リソース３には適用されない。このように、適用されないリソースを特定したシステム・ポリシーは、指定されたリソース以外に暗黙的に適用されてもよい。また、「ユーザの最大支払限度額に応じて未同意の処理をおこなっておく」というシステム・ポリシーは、リソース１および２に対して適用される。ただし、最大支払限度額の８０％までに限って、リソースの不足により中断された後、追加の課金額をユーザが承認していない指定処理の残りを実行しておくことを示す。
【００４３】
図８は、本実施形態に係るリソースＤＢ２２４に格納されるリソース・テーブル８００の一例を示す。リソース・テーブル８００は、計算機システム１００内の各リソースに対応付けて、「リソースＩＤ」と、「リソース名」と、リソースの種類を示す「リソース・タイプ」と、「ＣＰＵ数」、「メモリ」、および「Ｄｉｓｋ」等のリソースの属性と、当該リソースが提供することができる「ＳＬＡ（サービス・レベル・アグリーメント）」とを格納する。本実施形態において、リソースは、一例としてＣＰＵ、メモリ、およびディスク等の外部記憶装置のうちの少なくとも１つの組み合わせによって構成される。
【００４４】
例えば、リソース１（リソース名「Ｓｅｒｖｅｒ１」）は、ＣＰＵ４台、メモリ８ＧＢ、およびハードディスク８００ＧＢのサーバ装置である。Ｓｅｒｖｅｒ１が提供できる、信頼性／稼働率の保証値、暗号化機能、及び／又は、選択可能な暗号化レベル等のサービスレベルは、ＳＬＡフィールドに記憶される。また例えばリソース３（リソース名「ＳＡＮ  Ｄｉｓｋ  １」）は、ＣＰＵおよびメモリを持たないサーバエリアネットワーク（ＳＡＮ）に接続された大容量記憶装置である。
【００４５】
以上に示したリソース・テーブル８００は、計算機システム１００の構成を元にリソース管理装置１１０の管理者により設定される。これに代えて、リソース管理装置１１０は、計算機システム１００を構成する各リソースを検索して、リソース・テーブル８００を生成してもよい。
【００４６】
図９は、本実施形態に係るスケジュールＤＢ２２６に格納されるリソース使用状態テーブル９００の一例を示す。リソース使用状態テーブル９００は、計算機システム１００内の各リソースに対応付けて、「リソースＩＤ」と、「ユーザ名」と、当該ユーザが使用するＣＰＵ数である「使用ＣＰＵ数」と、当該ユーザが使用するメモリ量である「使用メモリ」と、当該ユーザが使用する外部記憶装置の記憶容量である「使用Ｄｉｓｋ」と、当該ユーザに対して当該リソースが確保された確保時間を示す「使用開始日時」および「使用終了日時」とを記憶する。
【００４７】
例えば、図８のリソース１に示したＳｅｒｖｅｒ１の一部、すなわちＣＰＵ２台、メモリ２ＧＢ、およびディスク８００ＧＢは、「Ｕｓｅｒ１」が指定処理を少なくとも１つ実行するために、「２００８／０８／０１  １０：００：００」から「２００８／０８／３１  １０：００：００」の間確保される。また例えば、図８のリソース３に示したＳＡＮ  Ｄｉｓｋ１の一部である１ＴＢの記憶容量は、「Ｕｓｅｒ３」によって「２００８／０８／０１  １０：００：００」から「２００８／０８／３１  １０：００：００」の間確保される。
【００４８】
図１０は、本実施形態に係る実行状態ＤＢ２５０に格納される実行結果テーブル１０００の一例を示す。実行状態ＤＢ２５０は、１または複数の指定処理のそれぞれについて、「処理ＩＤ」と、「リビジョン」と、処理を実行した期間を示す「開始日時」および「終了日時」と、「ステータス」と、対応する「オファリングＩＤ」と、「処理結果」とを格納する。
【００４９】
リビジョンフィールドは、指定処理の実行を再開した回数を特定する情報を格納する。本実施形態において、実行結果テーブル１０００は、リソースを確保して指定処理を実行した回数を示す。例えば、リビジョンが１の場合、ユーザから指定処理の実行要求を受けて、最初に指定処理を実行した状態に対応する。リビジョンが２の場合、指定処理を実行した後リソースを確保した時間内に処理が完了せずに１回中断して、その後ユーザから再実行の指示を受けて指定処理の続きを実行している状態に対応する。このようにして、リビジョンがｎの場合には、リソース不足によって（ｎ−１）回中断され、ユーザから（ｎ−１）回再実行の指示を受けて、ｎ回目の実行に対応する状態であることが示される。
【００５０】
開始日時および終了日時フィールドは、そのリビジョンに対応する実行における開始日時および終了日時を示す。ステータスフィールドは、そのリビジョンに対応する実行の状態を示す。ステータスフィールドが「完了」の場合、そのリビジョンに対応する実行により指定処理の実行が終了したことを示す。ステータスフィールドが「未完了」の場合、そのリビジョンに対応する実行において、指定処理の実行が終了しておらず、指定処理の実行状態を保存していないことを示す。ステータスフィールドが「未完了、結果処理済み」の場合、そのリビジョンに対応する実行において、指定処理の実行が終了せずに中断しており、中断した指定処理の実行状態を保存済みであることを示す。
【００５１】
オファリングＩＤフィールドは、リソースを確保した時間内に指定処理を終えることができない場合において、問合せ部２０６がリソースを追加で確保するかをユーザに問い合わせたことに応じて、問合せ部２０６が問合せを識別する識別情報を格納する。処理結果フィールドは、ステータスが「完了」の場合指定処理の実行結果を、ステータスが「未完了」の場合指定処理の途中経過または中断した指定処理の実行状態を格納したファイルの記憶位置を格納する。このファイルは、実行状態ＤＢ２５０内に格納されてよく、これに代えて計算機システム１００内に格納されてもよい。
【００５２】
図１１は、本実施形態に係る分散システム１０の動作フローを示す。要求受付部２０２は、ユーザが実行を希望するサービスまたはプログラム等の指定処理の内容をユーザ端末１２０から受け付ける（ステップＳ１１００）。ここで、サービスとは、既に計算機システム１００に実装されたプログラムに対してユーザが指定したデータ及び／又はパラメータを与えることによって、計算機システム１００上で実行される処理である。また、計算機システム１００は、ユーザから受け取ったプログラムを計算機システム１００上で実行することもできる。
【００５３】
ここで、要求受付部２０２は、指定処理の内容として、サービスまたはプログラムの指定、サービスまたはプログラムに与えるデータ及び／又はパラメータの指定、希望するサービスレベルの指定、及び／又は、希望する処理の終了期限の指定等をユーザ端末１２０を介して受け取ってもよい。また、要求受付部２０２は、ユーザが直接リソースを確保することを希望する場合には、どのリソースをどの期間確保するかの指定をユーザ端末１２０を介して受け取ってもよい。
【００５４】
解析部２２０は、ユーザから受け付けた処理内容を要求受付部２０２から受け取って解析して、ユーザが指定した終了期限までに、ユーザが希望するサービスレベルを満たすように指定処理を実行するために確保すべき少なくとも１つのリソースおよびそれぞれのリソースを確保する時間を求める（Ｓ１１０５）。要求受付部２０２は、指定処理を実行するために確保すべきリソースおよび確保時間を解析部２２０から受け取って、課金ＤＢ２１２を参照して当該リソースを対応する確保時間確保するための課金額を算出する。
【００５５】
要求受付部２０２は、ユーザが指定した内容および課金額をネットワーク１３０およびユーザ端末１２０を介してユーザに通知して、指定処理の実行を要求するか否かを入力させる（Ｓ１１１０）。ユーザが指定処理の実行を要求した場合、ユーザが指定した内容および課金額の契約が成立するので、要求受付部２０２は、実行要求を受け取った旨を実行指示部２０４に通知する。
【００５６】
これを受けて、実行指示部２０４は、リソースの確保をリソース確保部２３０に要求すると共に、指定処理の内容を処理ＤＢ２１４へと登録して実行を指示する（Ｓ１１１５）。ここで実行指示部２０４は、新たに受け付けた指定処理に処理ＩＤを割り当て、ユーザとの間で契約したＳＬＯの指定、および指定処理を開始するために起動するトランザクション等を処理ＤＢ２１４に登録する。また、実行指示部２０４は、指定処理の処理ＩＤおよびリビジョン「１」を実行状態ＤＢ２５０内の実行結果テーブル１０００に登録する。なお、Ｓ１１１０において、課金額を確認したユーザが当該条件で指定処理を実行しない旨を入力した場合、要求受付部２０２は、Ｓ１１１０へと処理を戻してよい。
【００５７】
リソース確保部２３０は、スケジュールＤＢ２２６を参照して確保すべきリソースの使用予定を検査して、当該リソースの空時間に確保時間分の使用予定をスケジュールＤＢ２２６に登録することにより、当該リソースを予約する。これにより、リソース確保部２３０は、当該リソースを確保時間分確保する（Ｓ１１２０）。
【００５８】
実行管理部２４０は、スケジュールＤＢ２２６の変更時または定期的にスケジュールＤＢ２２６を参照して、リソース確保部２３０により確保されたリソースが使用可能な時刻となったことに応じて処理ＤＢ２１４に登録された指定処理の実行を計算機システム１００に指示する（Ｓ１１２５）。一例として実行管理部２４０は、確保する各ハードウエアリソースを含む処理ノードである仮想マシンを立ち上げて、当該仮想マシン上で指定処理の開始トランザクションを起動してよい。そして実行管理部２４０は、実行結果テーブル１０００内の当該指定処理に対応するレコードに、処理の開始日時、ステータス「未完了」、および処理結果を格納する記憶領域を書き込む。
【００５９】
計算機システム１００内の確保したリソース上で指定処理を実行中に、完了予測部２７０は、当該リソースの確保時間内に指定処理が完了するか否かを予測する（Ｓ１１３０）。本実施形態において、完了予測部２７０は、実行中の指定処理が完了するまでに要する実行時間を、実行履歴ＤＢ２６０に格納された、過去に実行された同一または同様の指定処理の実行時間の履歴に基づいて予測する。
【００６０】
実行管理部２４０は、スケジュールＤＢ２２６内のリソース使用状態テーブル９００内に格納された、確保したリソースの使用終了日時までに指定処理の実行が完了すると予測された場合（Ｓ１１３５：Ｙｅｓ）、指定処理の実行を中断せず完了させて実行結果を実行状態ＤＢ２５０へと保存させる（Ｓ１１４０）。リソース管理装置１１０は、指定処理の実行結果を計算機システム１００から受信して、実行結果テーブル１０００内の当該指定処理に対応するレコードにおける処理結果フィールドに書き込まれた記憶領域に格納する。そして、リソース管理装置１１０は、当該レコードのステータスを「完了」とする。
【００６１】
指定処理の実行結果が実行状態ＤＢ２５０に保存されると、リソース管理装置１１０は、指定処理の実行結果をネットワーク１３０を介してユーザ端末１２０へと返信して、図１１の動作フローを終了する（Ｓ１１４５）。ここでリソース管理装置１１０は、実行結果テーブル１０００内の処理結果フィールドに登録された記憶領域へのポインタをユーザ端末１２０へと送信して、ユーザ端末１２０から当該記憶領域を参照させてもよい。
【００６２】
一方、Ｓ１１３５において、確保したリソースの使用終了日時までに指定処理の実行が完了しないと予測された場合（Ｓ１１３５：Ｎｏ）、実行管理部２４０は、指定処理の実行を中断することを計算機システム１００へと指示する（Ｓ１１５０）。これを受けて、計算機システム１００は、指定処理の実行を中断して、中断された指定処理の実行状態をリソース管理装置１１０へと送信する。なお実行管理部２４０は、Ｓ１１１５において確保されたリソース上で指定処理を確保された時間実行することを計算機システム１００に指示することにより、確保された時間の終了時には計算機システム１００により自動的に指定処理の実行を中断させてもよい。
【００６３】
リソース管理装置１１０は、中断された指定処理の実行状態を、実行結果テーブル１０００内の対応するレコードの処理結果フィールドに登録された記憶領域へと保存する（Ｓ１１５５）。ここでリソース管理装置１１０は、指定処理を実行する仮想マシンの実行イメージおよび仮想デバイスの内部状態全体をファイルとして保存することにより、中断された指定処理の実行状態を保存してもよい。これに代えて、リソース管理装置１１０は、指定処理を実行するためのプログラム中に複数のチェックポイントが設けられている場合には、中断直前のチェックポイントにおける、指定処理を再開するためのログデータを保存してもよい。また、実行管理部２４０は、中断された指定処理の実行状態が実行結果テーブル１０００に格納されたことに応じて、当該指定処理に対応するレコードのステータスを「未完了  結果処理済み」に変更する。
【００６４】
指定処理が中断されて実行状態が実行状態ＤＢ２５０に格納されると、問合せ部２０６は、追加料金を支払ってリソースを追加で確保するか否かをユーザに問い合わせる（Ｓ１１６０）。ここで問合せ部２０６は、指定処理の残りの処理内容を解析部２２０へと提供して、指定処理の残りを実行するために確保すべきリソースおよび確保時間を予測させる。問合せ部２０６は、予測結果を解析部２２０から受け取って、課金ＤＢ２１２を参照して追加の課金額を算出する。そして、問合せ部２０６は、ユーザに対する問合せにオファリングＩＤを割り当てて、問合せ内容を問合せテーブル４００に登録する。また、問合せ部２０６は、実行結果テーブル１０００内の対応するレコードに当該オファリングＩＤを書き込む。
【００６５】
また、ユーザがサービスレベル及び／又は終了期限等の条件の変更を指示した場合には、問合せ部２０６は、変更後の条件に応じて確保すべきリソースおよび確保時間を解析部２２０に予測させる。ここで、問合せ部２０６が、指定処理の続きを実行するリソースが満たすべき再開サービスレベルを、実行サービスレベルから変更するか否かの指示をユーザから受け取った場合等において、解析部２２０は、指定処理の続きを実行するリソースとして、再開サービスレベルを満たす別のリソースを確保するべきと判断しうる。
【００６６】
なお、問合せ部２０６は、再開サービスレベルを実行サービスレベルより低くする旨の指示を受け取った場合には、課金ＤＢ２１２に格納されたサービスレベル毎の課金単価に応じて、指定処理の続きを実行するリソースの課金単価を中断前の課金単価より下げてもよい。また、問合せ部２０６は、再開サービスレベルを実行サービスレベルより高くする旨の指示を受け取った場合には、課金ＤＢ２１２に格納されたサービスレベル毎の課金単価に応じて、指定処理の続きを実行するリソースの課金単価を中断前の課金単価より上げてもよい。
【００６７】
追加でリソースを確保して指定処理の続きを実行する旨の指示をユーザから受け取ると、問合せ部２０６は、指定処理の続きの実行要求を受け取った旨を再開指示部２０８に通知する（Ｓ１１６５：Ｙｅｓ）。また、問合せ部２０６は、当該実行要求に対応する問合せを問合せテーブル４００から削除または完了状態とする。これを受けて、再開指示部２０８は、追加のリソース確保をリソース確保部２３０に要求すると共に、追加で確保したリソースに対して、実行状態ＤＢ２５０に格納された、中断された指定処理の実行状態を復元して、当該リソース上で指定処理の続きを行わせる旨の指示を、処理ＤＢ２１４を介して実行管理部２４０に与える（Ｓ１１７０）。ここで再開指示部２０８は、再開された指定処理の処理ＩＤおよびリビジョンを実行状態ＤＢ２５０内の実行結果テーブル１０００に登録する。
【００６８】
リソース確保部２３０は、指定処理の続きの実行を再開する場合に、計算機システム１００内における、実行サービスレベルを満たすリソースを確保する（Ｓ１１２０）。ただし、再開サービスレベルを実行サービスレベルから変更する指示を受けた場合には、リソース確保部２３０は、計算機システム１００内における、再開サービスレベルを満たすリソースを確保する。実行管理部２４０は、リソース確保部２３０により追加で確保されたリソースが使用可能な時刻となったことに応じて、実行状態ＤＢ２５０に格納された、中断された指定処理の実行状態を計算機システム１００上の確保されたリソースへと復元して、指定処理の続きの実行を計算機システム１００に指示する（Ｓ１１２５）。ここで、実行管理部２４０は、指定処理を実行していたリソースとは異なる他のリソースが追加で確保されたことに応じて、実行状態ＤＢ２５０に格納された、中断された指定処理の実行状態を当該他のリソースに対して復元する。
【００６９】
なお、実行管理部２４０は、仮想マシンの実行イメージおよび仮想デバイスの内部状態全体を、追加で確保されたリソースに復元して、仮想マシンの実行を再開させてよい。これに代えて、実行管理部２４０は、指定処理を実行するためのプログラムにおける、中断直前のチェックポイントから取得したログデータを当該プログラムに与えて、指定処理の実行を再開させてもよい。
【００７０】
以下、リソース管理装置１１０は、再開された指定処理について、Ｓ１１３０以降の処理を行う。これにより、リソース管理装置１１０は、最初に確保されたリソースにおいて指定処理が完了しなかった場合に、ユーザによる承認を受けて指定処理の続きを実行することができる。
【００７１】
図１２は、本実施形態に係る分散システム１０上で実行する処理の種類の一例を示す。解析部２２０および完了予測部２７０は、実行しようとする指定処理が、一例として図１２に示した処理の種類のいずれに該当するかを特定して、特定した処理の種類に応じて確保すべきリソースおよび確保時間、並びに指定処理が完了するまでの時間を予測する。
【００７２】
解析部２２０および完了予測部２７０は、サービスまたはユーザのプログラムを解析して、実行しようとする指定処理を、いずれの処理の種類に分類すべきかを判断する。ここで、サービスのプログラムが予め計算機システム１００側に格納されている場合、計算機システム１００およびリソース管理装置１１０の管理者は、当該サービスがいずれの処理の種類に分類されるかを予め定義しておいてもよい。
【００７３】
図中（１）に示したシリアライズ型においては、指定処理に含まれる各トランザクションが、逐次実行される。図中（２）に示した並列実行型においては、指定処理に含まれる各トランザクションが、並列に実行される。特に、図中（２）においては、開始トランザクションから順に２以上のトランザクションずつに分かれていくことによって並列度が増加した後、最終のトランザクションが処理結果を集める。
【００７４】
図中（３）に示したランダム型は、各トランザクションの実行結果に応じて新たなトランザクションが生成される等により、指定処理の開始時点でトランザクションの全体的なフローを定型的な型に分類できない。ここで、指定処理がモンテカルロシミュレーションである場合には、収束の早さに応じて指定された誤差範囲に収束するまでに更に実行すべきトランザクション数を予測できることが知られている。
【００７５】
また、解析部２２０および完了予測部２７０は、各トランザクションの処理時間を、一例として処理データ量に比例した時間として求める。また、解析部２２０および完了予測部２７０は、過去に同一のトランザクションを実行した際の実行時間の履歴を実行履歴ＤＢ２６０から取得して、当該トランザクションの処理時間を予測してもよい。すなわち例えば、解析部２２０および完了予測部２７０は、過去に同一のトランザクションを実行した場合の実行時間に、過去に実行した際のデータ量に対する今回の実行におけるデータ量の比を乗じて、今回の実行における実行時間を算出してもよい。また、同一のトランザクションを複数のデータ量で実行した結果が実行履歴ＤＢ２６０に格納されている場合には、解析部２２０および完了予測部２７０は、トランザクションの実行時間とデータ量との関係（例えば実行時間がデータ量の２乗に比例する等）を更に推測してもよい。これに代えて、解析部２２０および完了予測部２７０は、トランザクション当りの平均実行時間を算出して、実行すべきトランザクションの数および並列に実行可能なトランザクションの数に基づいて実行時間を算出してもよい。
【００７６】
以上に示した通り、解析部２２０および完了予測部２７０によれば、指定処理の種類の判別結果、実行履歴、指定処理（または指定処理の残り）に含まれる２以上のトランザクションの種類等に基づいて、指定処理の完了までに要する時間、および各タイミングにおけるトランザクションの並列度を予測することができる。解析部２２０は、この予測結果を用いて、どのリソースをどの期間確保するかを求めることができる。また、完了予測部２７０は、この予測結果を用いて、確保したりソースにおいて指定処理の完了までに要する時間を予測することができる。
【００７７】
図１３は、本実施形態に係る分散システム１０の動作タイムチャートの第１例を示す。本例において、完了予測部２７０は、リソースの確保が終了する終了時刻Ｔ３から実行状態の保存に要する中断時間前の時刻Ｔ２までに、終了時刻までに指定処理の実行が完了するか否かの予測を終えておく。予測の精度をより高める目的で、完了予測部２７０は、終了時刻Ｔ３から中断時間前の時刻Ｔ２において、終了時刻Ｔ２までに指定処理の実行が終了するか否かを予測してよい。
【００７８】
予測の結果、完了予測部２７０が、リソースの確保終了時刻Ｔ３までに指定処理の実行を終えることができると判断すると、実行管理部２４０は、時刻Ｔ２以降も指定処理の実行を継続させる（処理１）。一方、完了予測部２７０は、リソースが確保された時間内に指定処理の実行が終了しないと予測されたことに応じて、終了時刻Ｔ３から中断時間前の時刻Ｔ２までに、指定処理の実行を中断することを実行管理部２４０に指示する。これを受けて、実行管理部２４０は、計算機システム１００内の当該リソースに実行状態の保存処理を実行させる。
【００７９】
本例に係る完了予測部２７０によれば、指定処理の実行を中断する必要がある場合には、リソースが確保された期間中に実行状態を保存することができる。したがって、完了予測部２７０は、前の指定処理のための実行状態の保存処理が、後の指定処理のために確保された時間を侵食するのを防ぐことができる。
【００８０】
なお、完了予測部２７０は、実行状態保存に要する時間の１トランザクション当りの平均値、現在実行中のトランザクションの数、および実行状態保存の並列度から中断時間を予測することができる。また、完了予測部２７０は、中断時に実行中の各トランザクションの過去に同一または同様の指定処理を実行したときに要した中断時間の履歴から中断時間を予測してもよく、中断時間として予め設定された時間を用いてもよい。
【００８１】
図１４は、本実施形態に係る分散システム１０の動作タイムチャートの第２例を示す。本例において、完了予測部２７０は、リソースの確保が終了する終了時刻Ｔ３までの間計算機システム１００に指定処理を実行させた後、終了時刻Ｔ３において指定処理の実行が完了していない場合に指定処理の中断を計算機システム１００に指示する。そして、実行管理部２４０は、計算機システム１００内の当該リソースに実行状態の保存処理を実行させる。
【００８２】
第２例においては、リソース管理装置１１０は、実行状態の保存に要する時間を予測等をせず、リソースが確保された時間全体を指定処理の実行のために割り当てる。リソース管理装置１１０は、完了予測部２７０を有さず一律に第２例に示した動作をしてもよく、これに代えて中断時間が予測可能な指定処理については第１例の動作をし、予測不可能な指定処理については第２例の動作をしてもよい。この場合、リソース管理装置１１０は、実行状態の保存に要した時間を追加で課金する旨をユーザとの間で合意しておき、中断時間分を追加で課金してもよい。なお、本例の動作フローにより指定処理を実行する場合、リソース確保部２３０は、複数の指定処理が続けて同一リソースを確保する場合に、リソースを確保する期間の間にマージンを設けてもよい。
【００８３】
図１５は、本実施形態に係る分散システム１０の動作タイムチャートの第３例を示す。本例において、再開指示部２０８は、リソースを追加で確保して指定処理の続きを実行するか否かの再開指示をユーザから受け取る前に、リソース確保部２３０によりリソースを確保させて、確保されたリソース上で指定処理の続きを再開しておく。これにより、再開指示部２０８および実行管理部２４０は、リソースの確保が終了する終了時刻Ｔ３までに指定処理の実行が完了しない場合に、リソースを追加で確保する旨の指示をユーザから受け取る前に、指定処理の続きを計算機システム１００により投機的に実行させる。
【００８４】
一例として、完了予測部２７０は、リソースの確保終了時刻Ｔ３までに指定処理の実行が終了しないと判断された場合に、その旨をフロントエンド処理部２００に通知する。これを受けて、問合せ部２０６は、リソースを追加で確保するか否かをネットワーク１３０およびユーザ端末１２０を介してユーザに問い合わせる。一方、再開指示部２０８は、ユーザからの返答を待つことなく、リソース確保部２３０により同一または異なるリソースを確保させ、確保されたリソース上で指定処理の続きを再開することを実行管理部２４０に指示する。ここで、再開指示部２０８は、空リソースが存在する場合に指定処理の続きを投機的に実行する一方、空リソースが存在しない場合にはユーザからの返答を待ってもよい。
【００８５】
なお、再開指示部２０８は、再開指示をユーザから受け取る前に指定処理の続きを再開した場合において、再開指示をユーザから受け取るまで指定処理の続きを再開しない場合と比較して再開料金を減額してもよい。この場合、問合せ部２０６は、減額された再開料金をユーザに提示して、リソースを追加で確保して指定処理の続きを実行するか否かを問い合わせる。これにより再開指示部２０８は、空リソースを有効活用して指定処理の続きを投機的に実行する一方で、空リソースを低額でユーザに活用させることができる。
【００８６】
これに代えて、再開指示部２０８は、再開指示をユーザから受け取る前に指定処理の続きを再開した場合において、再開指示をユーザから受け取るまで指定処理の続きを再開しない場合と比較して再開料金を増額してもよい。これにより、再開指示部２０８は、ユーザの再開指示を受けてから指定処理の続きを再開した場合と比較して指定処理を早く終わらせることができるというメリットをユーザに提供したことと引き換えに、より高い再開料金を得ることができる。
【００８７】
また、再開指示部２０８は、指定処理の続きを投機的に実行する場合においては、契約したサービスレベルのうち、リソースの保証信頼性及び／又は保証稼働率を満たさないリソースを確保してもよい。この場合、再開指示をユーザから受け取った時点までリソースが稼動していれば、実行管理部２４０は、契約したサービスレベルを満たすリソースにそれまでの実行状態を移行することができる。一方、当該リソースに支障が生じた場合には、実行管理部２４０は、投機的な実行の結果を破棄して、契約したサービスレベルを満たすリソース上で指定処理の続きを再開してよい。
【００８８】
なお、再開指示部２０８は、ユーザ・ポリシー・テーブル７００及び／又はシステム・ポリシー・テーブル７１０に指定処理の投機的な実行に関するポリシーが設定されている場合には、そのポリシーに基づいて指定処理を投機的に実行するか否かを決定してもよい。また、再開指示部２０８は、それぞれの指定処理を指定したユーザに割り当てられた優先度、それぞれの指定処理の続きを実行するための再開料金の額、および、それぞれの指定処理が終えるまでの予測時間の少なくとも１つに基づいて、中断された複数の指定処理の中から再開する指定処理を選択してもよい。すなわち例えば、再開指示部２０８は、分散システム１０の得意客等の重要ユーザの指定処理を優先して投機的に実行してもよい。
【００８９】
また、再開指示部２０８は、再開料金が低額または高額の指定処理、及び／又は、課金額がユーザが指定した範囲内に収まる指定処理を優先して投機的に実行してもよい。また、再開指示部２０８は、指定処理を終えるまでの予測時間が他より大きいまたは小さい指定処理を優先して投機的に実行してもよい。
【００９０】
図１６は、本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００９１】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００９２】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００９３】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００９４】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００９５】
コンピュータ１９００にインストールされ、コンピュータ１９００をリソース管理装置１１０として機能させるプログラムは、要求受付モジュール、実行指示モジュール、問合せモジュール、および再開指示モジュールを有するフロントエンド処理モジュールと、問合せＤＢ２１０を管理する問合せＤＢ管理モジュールと、課金ＤＢ２１２を管理する課金ＤＢ管理モジュールと、処理ＤＢ２１４を管理する処理ＤＢ管理モジュールと、解析モジュールと、ポリシーＤＢ２２２を管理するポリシーＤＢ管理モジュールと、リソースＤＢ２２４を管理するリソースＤＢ管理モジュールと、スケジュールＤＢ２２６を管理するスケジュールＤＢ管理モジュールと、リソース確保モジュールと、実行管理モジュールと、実行状態ＤＢ２５０を管理する実行状態ＤＢ管理モジュールと、実行履歴ＤＢ２６０を管理する実行履歴ＤＢ管理モジュールと、完了予測モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、要求受付部２０２、実行指示部２０４、問合せ部２０６、および再開指示部２０８を有するフロントエンド処理部２００と、問合せＤＢ２１０と、課金ＤＢ２１２と、処理ＤＢ２１４と、解析部２２０と、ポリシーＤＢ２２２と、リソースＤＢ２２４と、スケジュールＤＢ２２６と、リソース確保部２３０と、実行管理部２４０と、実行状態ＤＢ２５０と、実行履歴ＤＢ２６０と、完了予測部２７０としてそれぞれ機能させる。
【００９６】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である要求受付部２０２、実行指示部２０４、問合せ部２０６、および再開指示部２０８を有するフロントエンド処理部２００と、解析部２２０と、リソース確保部２３０と、実行管理部２４０と、完了予測部２７０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のリソース管理装置１１０が構築される。
【００９７】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＤＶＤ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００９８】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００９９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１００】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１０１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１０２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態に係る分散システム１０の構成を示す。
【図２】本実施形態に係るリソース管理装置１１０の構成を示す。
【図３】本実施形態に係る計算機システム１００の構成を示す。
【図４】本実施形態に係る問合せＤＢ２１０に格納される問合せテーブル４００の一例を示す。
【図５】本実施形態に係る課金ＤＢ２１２に格納される課金テーブル５００の一例を示す。
【図６】本実施形態に係る処理ＤＢ２１４に格納される処理テーブル６００およびトランザクション・テーブル６１０の一例を示す。
【図７】本実施形態に係るポリシーＤＢ２２２に格納されるユーザ・ポリシー・テーブル７００およびシステム・ポリシー・テーブル７１０の一例を示す。
【図８】本実施形態に係るリソースＤＢ２２４に格納されるリソース・テーブル８００の一例を示す。
【図９】本実施形態に係るスケジュールＤＢ２２６に格納されるリソース使用状態テーブル９００の一例を示す。
【図１０】本実施形態に係る実行状態ＤＢ２５０に格納される実行結果テーブル１０００の一例を示す。
【図１１】本実施形態に係る分散システム１０の動作フローを示す。
【図１２】本実施形態に係る分散システム１０上で実行する処理の種類の一例を示す。
【図１３】本実施形態に係るリソース管理装置１１０の動作タイムチャートの第１例を示す。
【図１４】本実施形態に係るリソース管理装置１１０の動作タイムチャートの第２例を示す。
【図１５】本実施形態に係るリソース管理装置１１０の動作タイムチャートの第３例を示す。
【図１６】本実施形態に係るコンピュータ１９００のハードウェア構成の一例を示す。
【符号の説明】
【０１０５】
１０  分散システム
１００  計算機システム
１１０  リソース管理装置
１２０ａ〜ｂ  ユーザ端末
１３０  ネットワーク
２００  フロントエンド処理部
２０２  要求受付部
２０４  実行指示部
２０６  問合せ部
２０８  再開指示部
２１０  問合せＤＢ
２１２  課金ＤＢ
２１４  処理ＤＢ
２２０  解析部
２２２  ポリシーＤＢ
２２４  リソースＤＢ
２２６  スケジュールＤＢ
２３０  リソース確保部
２４０  実行管理部
２５０  実行状態ＤＢ
２６０  実行履歴ＤＢ
２７０  完了予測部
３００  処理ノード
３１０  リソース（群）
３２０  実行部
３３０  監視部
３４０  空リソース
４００  問合せテーブル
５００  課金テーブル
６００  処理テーブル
６１０  トランザクション・テーブル
７００  ユーザ・ポリシー・テーブル
７１０  システム・ポリシー・テーブル
８００  リソース・テーブル
９００  リソース使用状態テーブル
１０００  実行結果テーブル
１９００  コンピュータ
２０００  ＣＰＵ
２０１０  ＲＯＭ
２０２０  ＲＡＭ
２０３０  通信インターフェイス
２０４０  ハードディスクドライブ
２０５０  フレキシブルディスク・ドライブ
２０６０  ＤＶＤドライブ
２０７０  入出力チップ
２０７５  グラフィック・コントローラ
２０８０  表示装置
２０８２  ホスト・コントローラ
２０８４  入出力コントローラ
２０９０  フレキシブルディスク
２０９５  ＤＶＤ
【図１】
2010152738.tif 000003
【図２】
2010152738.tif 000004
【図３】
2010152738.tif 000005
【図４】
2010152738.tif 000006
【図５】
2010152738.tif 000007
【図６】
2010152738.tif 000008
【図７】
2010152738.tif 000009
【図８】
2010152738.tif 000010
【図９】
2010152738.tif 000011
【図１０】
2010152738.tif 000012
【図１１】
2010152738.tif 000013
【図１２】
2010152738.tif 000014
【図１３】
2010152738.tif 000015
【図１４】
2010152738.tif 000016
【図１５】
2010152738.tif 000017
【図１６】
2010152738.tif 000018