(57)【要約】【課題】インスタンスの総稼働時間を削減し、ジョブ運用管理システムの運用コストを低減する。【解決手段】コンピュータ上でジョブ実行エージェントの動作するインスタンスが動作する。ジョブ管理マネージャー１０６は、ジョブ定義データベース３０５と、インスタンス管理制御部３０４とを備える。ジョブ定義データベース３０５には、複数のジョブについてジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻が格納されている。インスタンス管理制御部３０４は、インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、インスタンス管理制御部３０４に格納されているジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合にインスタンスを停止させ、次のジョブのジョブ開始時刻の前に停止させたインスタンスを再起動する。【選択図】図３
2014186416.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ実行エージェントの動作するインスタンスが動作するコンピュータと、ジョブ管理装置とを有するジョブ運用管理システムであって、
前記ジョブ管理装置が、
複数のジョブについて前記ジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段と、
前記インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止手段と、
前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動手段と、
を備える、
ことを特徴とするジョブ運用管理システム。
【請求項２】
前記ジョブ管理装置が、インスタンスについて予め設定された最低停止時間を記憶している最低停止時間記憶手段を備え、
前記インスタンス停止手段が、インスタンスを起動するために要する予測時間である起動予測時間と、インスタンスを停止するために要する予測時間である停止予測時間と、前記最低停止時間記憶手段に記憶されている最低停止時間とを加算することにより前記開始制御時間を求め、
前記インスタンス再起動手段が、前記次のジョブのジョブ開始時刻よりも前記起動予測時間だけ早い時刻に前記停止させたインスタンスを再起動する、
ことを特徴とする請求項１に記載のジョブ運用管理システム。
【請求項３】
前記インスタンス停止手段が、前記開始制御時間を求める際に、前記インスタンスの起動にかかる平均時間を前記起動予測時間として用い、前記インスタンスの停止にかかる平均時間を前記停止予測時間として用い、
前記インスタンス再起動手段が、前記インスタンスの起動にかかる平均時間を前記起動予測時間として用いる、
ることを特徴とする請求項２に記載のジョブ運用管理システム。
【請求項４】
ジョブ実行エージェントの動作するインスタンスが動作するコンピュータと、複数のジョブについて前記ジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段を備えるジョブ管理装置とを有するジョブ運用管理システムにおけるジョブ運用管理方法であって、
前記ジョブ管理装置が、前記インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止ステップと、
前記ジョブ管理装置が、前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動ステップと、
を備えることを特徴とするジョブ運用管理方法。
【請求項５】
複数のジョブについてジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段と、
コンピュータで動いているインスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止手段と、
前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動手段と、
を備えることを特徴とするジョブ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータで動作しているインスタンス上で動作するジョブ実行エージェントによって実行されるジョブを管理するジョブ運用管理システム、ジョブ運用管理方法およびジョブ管理装置に関する。
【背景技術】
【０００２】
近年、ジョブ運用管理システムによる業務自動化の適用範囲は大規模・複雑化している。大規模・複雑化したジョブ運用管理システムでは、大量のジョブを処理するため、ジョブを各種システムが稼働するサーバ上のジョブ実行エージェントに配信して実行する方法が一般的である（例えば、特許文献１参照）。
このジョブ実行エージェントを動作させるためにクラウドコンピューティングが利用され始めている。クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ処理を分散実行することで、多くのジョブを同時に処理することが可能である。以下、コンピューティング・リソースを利用し機能を提供する、一つの処理の実態を「インスタンス」と総称する。インスタンスの一例は、例えば仮想コンピュータである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１０２４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ジョブ運用管理システムで、大量のジョブを実行する場合には、ジョブ実行エージェントをインスタンス上で動作させ、ジョブ実行エージェントの数を増やすことで、多くのリソースを自由に利用できる。
しかしながら、クラウドコンピューティングでは稼働時間に応じて課金される。クラウドコンピューティングを利用する場合、インスタンス数を増やせば増やすほど、ジョブ運用管理システムの運用コストが増加してしまう。
【０００５】
本発明の目的は、インスタンスの総稼働時間を削減し、運用コストを低減することができるジョブ運用管理システム、ジョブ運用管理方法およびジョブ管理装置を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のジョブ運用管理システムは、
ジョブ実行エージェントの動作するインスタンスが動作するコンピュータと、ジョブ管理装置とを有するジョブ運用管理システムであって、
前記ジョブ管理装置が、
複数のジョブについて前記ジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段と、
前記インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止手段と、
前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動手段と、
を備える、
ことを特徴とする。
【０００７】
好ましくは、本発明のジョブ運用管理システムは、
前記ジョブ管理装置が、インスタンスについて予め設定された最低停止時間を記憶している最低停止時間記憶手段を備え、
前記インスタンス停止手段が、インスタンスを起動するために要する予測時間である起動予測時間と、インスタンスを停止するために要する予測時間である停止予測時間と、前記最低停止時間記憶手段に記憶されている最低停止時間とを加算することにより前記開始制御時間を求め、
前記インスタンス再起動手段が、前記次のジョブのジョブ開始時刻よりも前記起動予測時間だけ早い時刻に前記停止させたインスタンスを再起動する、
ことを特徴とする。
【０００８】
好ましくは、本発明のジョブ運用管理システムは、
前記インスタンス停止手段が、前記開始制御時間を求める際に、前記インスタンスの起動にかかる平均時間を前記起動予測時間として用い、前記インスタンスの停止にかかる平均時間を前記停止予測時間として用い、
前記インスタンス再起動手段が、前記インスタンスの起動にかかる平均時間を前記起動予測時間として用いる、
ることを特徴とする。
【０００９】
また、本発明のジョブ運用管理方法は、
ジョブ実行エージェントの動作するインスタンスが動作するコンピュータと、複数のジョブについて前記ジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段を備えるジョブ管理装置とを有するジョブ運用管理システムにおけるジョブ運用管理方法であって、
前記ジョブ管理装置が、前記インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止ステップと、
前記ジョブ管理装置が、前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動ステップと、
を備えることを特徴とする。
【００１０】
また、本発明のジョブ管理装置は、
複数のジョブについてジョブ実行エージェントが各ジョブの実行を開始するジョブ開始時刻を記憶しているジョブ開始時刻記憶手段と、
コンピュータで動いているインスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、前記ジョブ開始時刻記憶手段に記憶されている当該ジョブ実行エージェントにおける次のジョブのジョブ開始時刻までの時間が、所定の方法で求めた開始制御時間よりも長い場合に前記インスタンスを停止させるインスタンス停止手段と、
前記次のジョブのジョブ開始時刻の前に前記停止させたインスタンスを再起動するインスタンス再起動手段と、
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、インスタンスの総稼働時間を削減し、ジョブ運用管理システムの運用コストを低減することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るジョブ運用管理システムの構成の一例を示す図である。
【図２】サーバコンピュータ群を構成する各サーバコンピュータ、ジョブ管理マネージャーサーバ、およびジョブ実行エージェントサーバを構成する情報処理装置の内部構成の一例を示す図である。
【図３】ジョブ管理マネージャーの構成の一例を示す図である。
【図４】ジョブ定義データベースに格納されるジョブ定義データの構成の一例を示す図である。
【図５】エージェント定義データベースに格納されるエージェント定義データの構成の一例を示す図である。
【図６】インスタンス統計データベースに格納されるインスタンス統計データの構成の一例を示す図である。
【図７】インスタンス制御管理部が求めて、ジョブ管理マネージャーサーバの主メモリに記憶させるインスタンス制御開始時刻データの一例を示す図である。
【図８】インスタンス制御管理部が求めて、ジョブ管理マネージャーサーバの主メモリに記憶させるインスタンス起動時刻データを示す図である。
【図９】インスタンス管理制御部が求めて、ジョブ管理マネージャーサーバの主メモリに記憶させるインスタンス制御中のジョブ数データの一例を示す図である。
【図１０】インスタンス管理制御部がインスタンス制御開始時刻を算出する処理の流れの一例を示すフローチャートである。
【図１１】インスタンス管理制御部がインスタンス開始時刻を求める処理の流れの一例を示すフローチャートである。
【図１２】インスタンス管理制御部がインスタンスを起動する処理の流れの一例を示すフローチャートである。
【図１３】インスタンス管理制御部がインスタンスを停止する処理の流れの一例を示すフローチャートである。
【図１４】ジョブ実行エージェントＡが動作するインスタンスの制御の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態に係るジョブ運用管理システム、ジョブ運用管理方法およびジョブ管理装置について図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
【００１４】
図１は、本発明の実施形態に係るジョブ運用管理システムの構成の一例を示す。
本発明の実施形態に係るジョブ運用管理システムを構成する各装置は、情報をやり取りするための通信回線であるネットワーク１００およびインターネット１０１を介して、相互に通信可能に接続されている。
ジョブ運用管理システムを構成する各装置とは、１台以上のサーバコンピュータで構成されているサーバコンピュータ群１０２、ジョブの実行を管理するコンピュータであるジョブ管理マネージャーサーバ１０３、ジョブを実行するコンピュータであるジョブ実行エージェントサーバ１０４、およびジョブの実行を管理するユーザが使用する端末１０５である。
ジョブ管理マネージャーサーバ１０３では、ジョブ管理マネージャー１０６が動作する。ジョブ管理マネージャー１０６は複数のジョブ実行エージェントにおけるジョブの実行を管理する。サーバコンピュータ群１０２では、インスタンス１０７とインスタンス１０８が仮想コンピュータとして実現される。インスタンス１０７とインスタンス１０８では、それぞれジョブ実行エージェントＡ１０９とジョブ実行エージェントＢ１１０が動作する。また、ジョブ実行エージェントサーバ１０４ではジョブ実行エージェントＣ１１１が動作する。ジョブ実行エージェントＡ１０９、ジョブ実行エージェントＢ１１０、およびジョブ実行エージェントＣ１１１はジョブを実行する
なお、図１には、ジョブ実行エージェントサーバ１台とインスタンス２個を備えるジョブ運用管理システムを例示しているが、ジョブ実行エージェントサーバとインスタンスの数は、それぞれ任意であってよい。
【００１５】
図２は、サーバコンピュータ群１０２を構成する各サーバコンピュータ、ジョブ管理マネージャーサーバ１０３、およびジョブ実行エージェントサーバ１０４を構成する情報処理装置２００の内部構成の一例を示す。
情報処理装置２００はコンピュータである。情報処理装置２００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される主メモリ２０２、ハードディスク２０３、ネットワークインターフェースカード２０４により構成される。
ネットワークインターフェースカード２０４は、ネットワーク１００を介して、他のノード（コンピュータ等）と双方向にデータをやり取りする。
【００１６】
図３は、ジョブ管理マネージャー１０３の構成の一例を示す。
ジョブ管理マネージャーサーバ１０３のハードディスク２０３は、ジョブ管理プログラムと、ジョブ定義データベース３０５と、エージェント定義データベース３０６と、インスタンス統計データベース３０７とを記憶している。
ジョブ管理マネージャーサーバ１０３のＣＰＵ２０１が、ハードディスク２０３からジョブ管理プログラムを主メモリ２０２に読み込んで実行することにより、ジョブ定義データベース参照更新部３０１と、エージェント定義データベース参照更新部３０２と、ジョブ実行管理部３０３と、インスタンス管理制御部３０４との各部の機能が実現される。
【００１７】
ジョブ定義データベース３０５は、後述するように、ジョブ名とジョブ実行エージェント名とジョブ開始時刻とを含むジョブ定義データを格納している。ジョブ定義データベース参照更新部３０１は、端末１０５からの指示によりジョブ定義データベース３０５を更新し、ジョブ定義データを端末１０５のディスプレイ等に可視化して表示する。
エージェント定義データベース３０６は、後述するように、ジョブ実行エージェント名とインスタンス識別フラグとインスタンスの最低停止時間とを含むエージェント定義データを格納している。エージェント定義データベース参照更新部３０２は、端末１０５からの指示によりエージェント定義データベース３０６を更新し、エージェント定義データを端末１０５のディスプレイ等に可視化して表示する。
ジョブ実行管理部３０３は、ジョブ実行エージェントＡ１０９、ジョブ実行エージェントＢ１１０、およびジョブ実行エージェントＣ１１１のジョブ実行を管理する。
インスタンス統計データベース３０７は、後述するように、ジョブ実行エージェント名６０１と起動所要時間の合計６０２と起動回数６０３と停止所要時間の合計６０４と停止回数６０５とを含むインスタンス統計データを格納している。インスタンス管理制御部３０４は、インスタンスの起動および停止を管理し、インスタンス統計データベース３０７を更新する。
なお、ジョブ管理マネージャー１０３は本発明のジョブ管理装置の一例であり、インスタンス管理制御部３０４は本発明のインスタンス停止手段とインスタンス再起動手段の一例である。
【００１８】
図４は、ジョブ定義データベース３０５に格納されるジョブ定義データの構成の一例を示す。
ジョブ定義データベース３０５のジョブ定義データは、ジョブ名４０１と、ジョブ実行エージェント名４０２と、ジョブ開始時刻４０３とを含んで構成されている。
ジョブ名４０１は、ジョブを一意に識別するための情報である。
ジョブ実行エージェント名４０２は、ジョブがどのジョブ実行エージェントで実行されるかを識別するための情報である。
ジョブ開始時刻４０３は、ジョブ実行管理部３０３がジョブの実行を開始する時刻である。
なお、ジョブ定義データベース３０５は、本発明のジョブ開始時刻記憶手段の一例である。
【００１９】
図５は、エージェント定義データベース３０６に格納されるエージェント定義データの構成の一例を示す。
エージェント定義データベース３０６のエージェント定義データは、ジョブ実行エージェント名５０１と、インスタンス識別フラグ５０２と、インスタンスの最低停止時間５０３とを含んで構成されている。
ジョブ実行エージェント名５０１は、ジョブ実行エージェントを一意に識別するための情報である。
インスタンス識別フラグ５０２は、ジョブ実行エージェントが、ジョブ管理エージェントサーバ１０４のようにインスタンスとして管理できないコンピュータ上で動作しているか、インスタンス１０７とインスタンス１０８のようにサーバコンピュータ群１０２のインスタンス上で動作しているか識別するためのフラグ情報である。
例えば、インスタンス管理制御部３０４が、インスタンス上で動作するジョブだけを抽出する場合は、まず、エージェント定義データベース３０６のインスタンス識別フラグ５０２に基づいてジョブ実行エージェントＡとジョブ実行エージェントＢとがインスタンス上で動作することを識別する。そして、インスタンス管理制御部３０４は、ジョブ定義データベース３０５を検索し、ジョブ実行エージェントＡとジョブ実行エージェントＢとで動作するジョブを選択する。図４と図５に示す場合には、ＪｏｂＡ、ＪｏｂＢ、ＪｏｂＣ、ＪｏｂＤ、ＪｏｂＦがインスタンス上で動作するジョブとして抽出される（ＪｏｂＥは除外される）。
【００２０】
インスタンスの最低停止時間５０３は、インスタンスを停止させる最小の時間であり、予め設定される。インスタンス管理制御部３０４は、最低停止時間５０３以上インスタンスを停止させることができる場合にのみインスタンスを停止させる。仮にインスタンスを停止させても最低停止時間５０３が経過するまえにインスタンスを再起動しなければならない場合、インスタンス管理制御部３０４はインスタンスを停止させない。
ここで、インスタンスの起動と停止にはある程度の時間が必要であり、インスタンスの起動に要する起動時間、およびその停止に要する停止時間は他のジョブの実行状況等により変動する。
そこで、インスタンス管理制御部３０４は、インスタンスを起動するために要する予測時間である起動予測時間と、インスタンスを停止するために要する予測時間である停止予測時間と、インスタンスの最低停止時間５０３とを加算することにより、開始制御時間を求める。そして、インスタンス管理制御部３０４は、インスタンス上で動作するジョブ実行エージェントが実行しているジョブの数が０になってから、そのジョブ実行エージェントが次のジョブの実行を開始するまでの時間が開始制御時間よりも長い場合にはインスタンスを停止させる。一方、インスタンス管理制御部３０４は、そのジョブ実行エージェントが実行しているジョブの数が０になっても開始制御時間が経過する前にそのジョブ実行エージェントが次のジョブの実行を開始する場合にはインスタンスを停止させない。開始制御時間にインスタンスの最低停止時間５０３を含めることにより、ジョブの開始時刻になったとき、ジョブが実行可能となっていることが保証される。
なお、エージェント定義データベース３０６は、本発明の最低停止時間記憶手段の一例である。
【００２１】
図６は、インスタンス統計データベース３０７に格納されるインスタンス統計データの構成の一例を示す。
インスタンス統計データベース３０７のインスタンス統計データは、ジョブ実行エージェント名６０１と、起動所要時間の合計６０２と、起動回数６０３と、停止所要時間の合計６０４と、停止回数６０５とを含んで構成されている。
ジョブ実行エージェント名６０１は、ジョブ実行エージェントを一意に識別するための情報である。
起動所要時間の合計６０２と、起動回数６０３と、停止所要時間の合計６０４と、停止回数６０５とはジョブ実行エージェント名６０１のジョブ実行エージェントが動作するインスタンスの統計情報である。
起動所要時間の合計６０２は、インスタンスの起動にかかった所要時間の和である。起動回数６０３は、インスタンスが起動された回数である。起動所要時間の合計６０２を起動回数６０３で除算することで、インスタンスの起動にかかる平均時間を算出できる。インスタンスの起動にかかる平均時間は、上述した開始制御時間を求める際に起動予測時間として用いられる。
停止所要時間の合計６０４は、インスタンスの停止にかかった所要時間の和である。停止回数６０５は、インスタンスが停止された回数である。停止所要時間の合計６０４を停止回数６０５で除算することで、インスタンスの停止にかかる平均時間を算出できる。インスタンスの停止にかかる平均時間は、上述した開始制御時間を求める際に停止予測時間として用いられる。
【００２２】
例えば、インスタンス管理制御部３０４が、ジョブ実行エージェントＡが動作するインスタンスの起動および停止にかかる平均時間を算出しようとした場合は、ジョブ実行エージェントＡの起動所要時間の合計６０分を起動回数６で除算することで、ジョブ実行エージェントＡが動作しているインスタンスの起動にかかる平均時間は１０分と算出できる。同様に、ジョブ実行エージェントＡの停止所要時間の合計３０分を停止回数６で除算することで、ジョブ実行エージェントＡが動作しているインスタンスの停止にかかる平均時間は５分と算出できる。
【００２３】
図７は、インスタンス制御管理部３０４が求めて、ジョブ管理マネージャーサーバ１０３の主メモリ２０２に記憶させるインスタンス制御開始時刻データの一例を示す。
インスタンス制御開始時刻データは、ジョブ名７０１と、ジョブ実行エージェント名７０２と、インスタンス制御開始時刻７０３とを含んで構成されている。
ジョブ名７０１は、どのジョブの実行に伴うインスタンス制御開始時刻なのかを識別するための情報である。
ジョブ実行エージェント名７０２は、ジョブ名７０１について、どの実行エージェントが動作するインスタンスの制御開始時刻なのかを識別するための情報である。
インスタンス制御開始時刻７０３は、インスタンス管理制御部３０４がジョブ名７０１についてインスタンス制御を開始する時刻である。インスタンス制御開始時刻７０３のデータはインスタンス管理制御部３０４が作成する。インスタンス管理制御部３０４は、まず、インスタンスの起動および停止にかかる平均時間とインスタンスの最低停止時間５０３を加算して開始制御時間を求める。次に、インスタンス管理制御部３０４は、ジョブ開始時刻４０３から、開始制御時間だけ早めた時刻をインスタンス制御開始時刻７０３として求める。インスタンス管理制御部３０４は、ジョブ名７０１およびジョブ実行エージェント名７０２と共にインスタンス制御開始時刻７０３をインスタンス制御開始時刻データとして主メモリ２０２に保存する。
【００２４】
例えば、インスタンス管理制御部３０４が、ＪｏｂＡのインスタンス制御開始時刻を求めようとした場合は、ジョブ実行エージェントＡのインスタンスの起動および停止にかかる平均時間を、インスタンス統計データベース３０７から１０分および５分と求める。さらに、ジョブ実行エージェントＡのインスタンスの最低停止時間５０３である６０分を、エージェント定義データベース３０６から取得する。このインスタンスの起動および停止にかかる平均時間の合計１５分とインスタンスの最低停止時間６０分の総和である開始制御時間（計１時間１５分）を、ＪｏｂＡの開始時刻７：００から早めた５：４５がＪｏｂＡのインスタンス制御開始時刻として求まる。
【００２５】
図８は、インスタンス制御管理部３０４が求めて、ジョブ管理マネージャーサーバ１０３の主メモリ２０２に記憶させるインスタンス起動時刻データを示す。
インスタンス起動時刻データは、ジョブ実行エージェント名８０１と、インスタンス起動時刻８０２とを含んで構成されている。
ジョブ実行エージェント名８０１は、インスタンスを一意に特定するために、インスタンス上で動作しているジョブ実行エージェントを識別するための情報である。
インスタンス起動時刻８０２は、インスタンスの起動を開始する時刻である。インスタンス管理制御部３０４は、インスタンス制御開始時刻７０３に到達した時、インスタンスが起動していなければ、まず、ジョブ名７０１に基づいてジョブ定義データベース３０５からジョブ開始時刻４０３を取得する。次に、インスタンス管理制御部３０４は、ジョブ開始時刻４０３からインスタンスの起動に要する予測時間だけ早めた時刻をインスタンス起動時刻８０２として求め、主メモリ２０２に保存する。ここで、インスタンス起動時刻８０２はジョブ開始時刻４０３に到達したときインスタンスが起動されてジョブ実行エージェントがジョブを実行可能になっている時刻である。従って、インスタンス管理制御部３０４は、例えば、インスタンスの起動に要する平均時間をインスタンスの起動にかかる予測時間としもよいし、インスタンスの起動に要する平均時間より少し長い時間をインスタンスの起動にかかる予測時間としてもよい。
【００２６】
図９は、インスタンス管理制御部３０４が求めて、ジョブ管理マネージャーサーバ１０３の主メモリ２０２に記憶させるインスタンス制御中のジョブ数データの一例を示す。
インスタンス制御中のジョブ数データは、ジョブ実行エージェント名９０１と、インスタンス制御中のジョブ数９０２とを含んで構成されている。
ジョブ実行エージェント名９０１は、インスタンスを一意に特定するために、インスタンス上で動作しているジョブ実行エージェントを識別するための情報である。
インスタンス制御中のジョブ数９０２は、ジョブ実行エージェント名９０１に示すジョブ実行エージェントが動作するインスタンスごとに、何個のジョブがインスタンス制御の対象になっているかを示す値であり、インスタンスの起動および停止を行うタイミングの判定に使用する。インスタンス管理制御部３０４は、インスタンス制御中のジョブ数９０２が、０から１になった場合にインスタンスを起動し、１から０になった場合にインスタンスを停止する。
例えば、インスタンス管理制御部３０４は、ＪｏｂＡのインスタンス制御開始時刻７０３に到達した時、主メモリ２０２上に存在するジョブ実行エージェントＡのインスタンス制御中のジョブ数９０２をカウントアップする。また、カウントアップ前のインスタンス制御中のジョブ数９０２が０だった場合は、インスタンス制御を開始する。
ジョブ実行管理部３０３がＪｏｂＡの実行を正常に終了した場合、インスタンス管理制御部３０４は、ジョブ実行管理部３０３からＪｏｂＡが正常終了した通知を受け、ジョブ実行エージェントＡのインスタンス制御中のジョブ数９０２をカウントダウンする。また、ンスタンス管理制御部３０４は、カウントダウン後のインスタンス制御中のジョブ数９０２が０となる場合は、インスタンスを停止する。
【００２７】
図１０は、インスタンス管理制御部３０４がインスタンス制御開始時刻７０３を求める処理の流れの一例を示すフローチャートである。
インスタンス管理制御部３０４は、立ち上げと同時に、エージェント定義データベース３０６からインスタンス上で動作するジョブ実行エージェント名５０１の一覧を取得する（Ｓ１１）。
インスタンス管理制御部３０４は、ステップＳ１１で取得したジョブ実行エージェント名５０１の一覧に基づいて、ジョブ定義データベース３０５から、インスタンス上で動作するジョブ実行エージェントで実行されるジョブのジョブ定義データとして、ジョブ名４０１、ジョブ実行エージェント名４０２、およびジョブ開始時刻４０３を取得する（Ｓ１２）。
インスタンス管理制御部３０４は、ステップＳ１１で取得したジョブ実行エージェント名５０１の一覧に基づいてインスタンス統計データベース３０７を参照し、各ジョブ実行エージェントのインスタンスの起動および停止にかかる平均時間を、所要時間の合計を回数で除算することで求める（Ｓ１３）。
インスタンス管理制御部３０４は、インスタンスの起動および停止にかかる平均時間とインスタンスの最低停止時間５０３とを加算して開始制御時間を求める。そして、インスタンス管理制御部３０４は、ジョブ開始時刻４０３から開始制御時間だけ早めた時刻をインスタンス制御開始時刻７０３として求め、ジョブ名７０１やジョブ実行エージェント名７０２と共に各ジョブのインスタンス制御開始時刻７０３を、インスタンス制御開始時刻データに保存する（ステップ１００４）。
【００２８】
図１１は、インスタンス管理制御部３０４がインスタンス開始時刻８０２を求める処理の流れの一例を示すフローチャートである。
インスタンス管理制御部３０４は、インスタンス制御開始時刻７０３に到達したことを検知する（Ｓ２１）と、インスタンス制御中のジョブ数９０２が０かどうかを判定する（Ｓ２２）。
インスタンス制御中のジョブ数９０２が０の場合（Ｓ２２：ＹＥＳ）、インスタンス管理制御部３０４は、インスタンス統計データベース３０７からインスタンスの起動にかかる平均時間を求め、ジョブ開始時刻４０３からインスタンスの起動にかかる平均時間だけ早めた時刻を、インスタンス起動時刻８０２として求める（Ｓ２３）。一方、インスタンス制御中のジョブ数９０２が０でなかった場合（Ｓ２２：ＮＯ）、インスタンス管理制御部３０４は、インスタンス起動時刻８０２を求めない。
次に、インスタンス管理制御部３０４は、インスタンス制御中のジョブ数９０２をカウントアップする（Ｓ２４）。
【００２９】
図１２は、インスタンス管理制御部３０４がインスタンスを起動する処理の流れの一例を示すフローチャートである。
インスタンス管理制御部３０４は、インスタンス起動時刻８０２に到達したことを検知する（Ｓ３１）と、インスタンスの起動命令を実行する（Ｓ３２）。
次に、インスタンス管理制御部３０４は、インスタンスの起動完了を確認した後、インスタンス統計データベース３０７の起動所要時間の合計６０２に、起動にかかった時間を加算して更新し、起動回数６０３をカウントアップする（Ｓ３３）。
【００３０】
図１３は、インスタンス管理制御部３０４がインスタンスを停止する処理の流れの一例を示すフローチャートである。
インスタンス管理制御部３０４は、ジョブ実行管理部３０３からジョブが正常終了した通知を受け取る（Ｓ４１）と、インスタンス制御中のジョブ数９０２をカウントダウンする（Ｓ４２）。
次に、インスタンス管理制御部３０４は、インスタンス制御中のジョブ数９０２が０かどうかを判定し（Ｓ４３）、０でなかった場合（Ｓ４３：ＮＯ）は、インスタンスの停止命令は実行せずに、処理を終了する。
インスタンス管理制御部３０４は、インスタンス制御中のジョブ数９０２が０だった場合（Ｓ４３：ＹＥＳ）は、インスタンスの停止命令を実行する（Ｓ４４）。
インスタンス管理制御部３０４は、インスタンスの停止完了を確認した後、インスタンス統計データベース３０７の停止所要時間の合計６０４に、停止にかかった時間を加算して更新し、停止回数６０５をカウントアップする（Ｓ４５）。
【００３１】
図１４は、ジョブ実行エージェントＡ１０９が動作するインスタンス１０７の制御の一例を示す。
ここではＪｏｂＡ  １４０１およびＪｏｂＣ  １４０２、ＪｏｂＦ  １４０３の各実行時間を１時間とし、それぞれの終了時刻を８：００および１０：００、１３：００と仮定する。
ＪｏｂＡ  １４０１のインスタンス制御開始時刻５：４５の時点では、カウントアップ前のインスタンス制御中のジョブ数９０２が０である。このため、インスタンス管理制御部３０４は、ＪｏｂＡ  １４０１のジョブ開始時刻７：００からジョブ実行エージェントＡの起動にかかる平均時間１０分だけ早めた６：５０をインスタンス起動時刻として求め、インスタンスを起動する。
ＪｏｂＣ  １４０２のインスタンス制御開始時刻７：４５の時点では、カウントアップ前のインスタンス制御中のジョブ数９０２が１のため、インスタンス管理制御部３０４はインスタンス起動時刻を求めない。ＪｏｂＡ  １４０１が終了時刻８：００に終了するが、カウントダウン後のインスタンス制御中のジョブ数９０２が１のため、インスタンス管理制御部３０４はインスタンスを停止しない。ＪｏｂＣ  １４０２が終了時刻１０：００に終了すると、カウントダウン後のインスタンス制御中のジョブ数９０２は０となるため、インスタンス管理制御部３０４はインスタンスの停止を実行し、インスタンスは１０：０５に停止する。
また、ＪｏｂＦ  １４０３のインスタンス制御開始時刻１０：４５に到達した時、カウントアップ前のインスタンス制御中のジョブ数９０２は０である。このため、インスタンス管理制御部３０４は、ＪｏｂＦ  １４０３のジョブ開始時刻１２：００からジョブ実行エージェントＡの起動にかかる平均時間１０分だけ早めた１１：５０をインスタンス起動時刻として求め、インスタンスを再び起動する。ＪｏｂＦ  １４０３が終了時刻１３：００に終了すると、カウントダウン後のインスタンス制御中のジョブ数９０２は０となるため、インスタンス管理制御部３０４はインスタンスの停止を再び実行し、インスタンスは１３：０５に停止する。
【００３２】
以上説明したように、本発明によれば、ジョブが実行されていないときインスタンスは停止する。このため、インスタンスの総稼働時間を削減し、ジョブ運用管理システムの運用コストを低減することができる。
【符号の説明】
【００３３】
１００    ネットワーク
１０１    インターネット
１０２    サーバコンピュータ群
１０３    ジョブ管理マネージャーサーバ
１０４    ジョブ実行エージェントサーバ
１０５    端末
１０６    ジョブ管理マネージャー
１０７、１０８  インスタンス
１０９  ジョブ実行エージェントＡ
１１０  ジョブ実行エージェントＢ
１１１  ジョブ実行エージェントＣ
３０１    ジョブ定義データベース参照更新部
３０２    エージェント定義データベース参照更新部
３０３    ジョブ実行管理部
３０４    インスタンス管理制御部
３０５    ジョブ定義データベース
３０６    エージェント定義データベース
３０７    インスタンス統計データベース
５０３    インスタンスの最低停止時間
６０２    起動所要時間の合計
６０３    起動回数
６０４    停止所要時間の合計
６０５    停止回数
７０３    インスタンス制御開始時刻
８０２    インスタンス起動時刻
９０２    インスタンス制御中のジョブ数
【図１】
2014186416.tif 000003
【図２】
2014186416.tif 000004
【図３】
2014186416.tif 000005
【図４】
2014186416.tif 000006
【図５】
2014186416.tif 000007
【図６】
2014186416.tif 000008
【図７】
2014186416.tif 000009
【図８】
2014186416.tif 000010
【図９】
2014186416.tif 000011
【図１０】
2014186416.tif 000012
【図１１】
2014186416.tif 000013
【図１２】
2014186416.tif 000014
【図１３】
2014186416.tif 000015
【図１４】
2014186416.tif 000016