(57)【特許請求の範囲】
【請求項１】
バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析部と、
前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレート部と、
前記シミュレート部による前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整部と、
を備えることを特徴とするバッチ処理制御装置。
【請求項２】
前記シミュレート部は、前記バッチ処理間で重複するデータ処理が単一のデータ処理として実行されるように、前記処理内容および前記配備情報を変更する、
ことを特徴とする請求項１記載のバッチ処理制御装置。
【請求項３】
前記シミュレート部は、前記バッチ処理に含まれるタスクのうち、同一のデータを処理対象とする前記タスクが同一のバッチ処理基盤上で実行されるように、前記処理内容および前記配備情報を変更する、
ことを特徴とする請求項２記載のバッチ処理制御装置。
【請求項４】
前記シミュレート部は、前記バッチ処理のうち、同一のデータを処理対象とするタスクを含むバッチ処理が同一のバッチ処理基盤上で実行されるように、前記処理内容および前記配備情報を変更する、
ことを特徴とする請求項３記載のバッチ処理制御装置。
【請求項５】
バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析ステップと、
前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレートステップと、
前記シミュレートステップにおける前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整ステップと、
を含むことを特徴とするバッチ処理制御方法。
【請求項６】
請求項５に記載の各ステップをコンピュータに実行させるためのバッチ処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッチ処理制御装置、バッチ処理制御方法およびバッチ処理制御プログラムに関する。
【背景技術】
【０００２】
業務システムの中には、昼間等のシステム稼働時にオンライン処理でデータを処理し、夜間等のシステム停止時にバッチ処理でデータベースを更新させるものがある。このような業務システムでは、システムを稼働させる前にバッチ処理を効率良く処理する必要がある。さらに常時稼働のシステムになると、稼働中のシステムに影響を与えない程度のリソースを割り当ててバッチ処理を実行させることもある。下記特許文献１には、ジョブの処理順を調整して長時間待機するジョブの解消を試みることで、バッチ処理を最適な実行環境下で行えるように支援するジョブ管理方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２３０５８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
バッチ処理では、複数のバッチ処理を並列、多重して実行することがあるが、このとき、各バッチ処理が同一のデータを読み込みに行く場合がある。この場合、読み込みが重複するとともに読み込んだデータを重複して保持することになるため、読み込み負荷の増大やリソース効率の低下を招いてしまう。上記特許文献１には、複数のバッチ処理を並列、多重して実行するときの処理効率を向上させることについては記載されていない。
【０００５】
本発明は、上述した課題を解決するためになされたものであり、複数のバッチ処理を並列、多重して実行するときの処理効率を向上させることができるバッチ処理制御装置、バッチ処理制御方法およびバッチ処理制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のバッチ処理制御装置は、バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析部と、前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレート部と、前記シミュレート部による前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整部と、を備える。
【０００７】
本発明のコマンド実行方法は、バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析ステップと、前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレートステップと、前記シミュレートステップにおける前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整ステップと、を含む。
【０００８】
本発明のバッチ処理制御プログラムは、上記バッチ処理制御方法に含まれる各ステップをコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、複数のバッチ処理を並列、多重して実行するときの処理効率を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態におけるバッチ処理システムの構成を例示するブロック図である。
【図２】スケジュール情報のデータ構成を例示する図である。
【図３】配備情報のデータ構成を例示する図である。
【図４】実行履歴情報のデータ構成を例示する図である。
【図５】実行履歴情報のデータ構成を例示する図である。
【図６】実施形態におけるバッチ処理システムの動作の一例を説明するための模式図である。
【図７】実施形態におけるバッチ処理システムの動作の一例を説明するための模式図である。
【図８】実施形態におけるバッチ処理システムの動作の一例を説明するための模式図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明に係るバッチ処理制御装置、バッチ処理制御方法およびバッチ処理制御プログラムの好適な実施形態について説明する。
【００１２】
まず、図１を参照して、実施形態におけるバッチ処理制御装置としての最適化コントローラ１を含むバッチ処理システムの構成について説明する。
【００１３】
バッチ処理システムは、最適化コントローラ１と、バッチ処理基盤２、３と、振舞いエンジン４、５と、データストア６と、を有する。これらの各構成要素は、同一のコンピュータ上で動作してもよいし、異なるコンピュータ上で動作してもよい。バッチ処理の処理内容や処理対象データは、予めプログラムとして記述され、バッチ処理基盤２、３上に実行可能な状態で配置されている。バッチ処理のスケジュール情報は、予め定められたバッチ処理基盤２、３上に保持されており、定められた日時になると、バッチ処理基盤２、３によりバッチ処理が開始される。なお、バッチ処理は、バッチ処理基盤のクライアント（不図示）からの指示により開始させることもできる。
【００１４】
バッチ処理の処理対象データは、データストア６に格納されている。データストア６は、ハードディスクやメモリ等のローカルコンピュータのリソースであってもよいし、ファイルシステムやデータベース等のデータ管理ソフトウェアを、ネットワークを介して利用するリモートコンピュータのリソースであってもよい。さらに、Ｗｅｂサービス等のデータへのアクセス方法のみが公開されたコンピュータのリソースであてもよい。本実施形態では、データの生成、読み込み、更新、削除が行えるデータの保持先の総称として、データストアを用いる。
【００１５】
バッチ処理基盤２、３は、複数のバッチ処理を実行することができる。バッチ処理としては、例えば、給与計算バッチや税金計算バッチ等の業務処理バッチが該当する。
【００１６】
バッチ２１、３１は、バッチ処理基盤２、３上に実行可能な状態で配置されたバッチ処理プログラムである。バッチ処理プログラムは、バッチ処理の処理内容や処理対象データを記述したプログラムである。バッチ処理基盤上には、異なるバッチを複数配置することができる。
【００１７】
バッチ２１、３１は、それぞれの処理を構成するタスク２２、３２を含む。バッチは、複数のタスクを含むことができる。
【００１８】
タスク２２、３２は、それぞれ振舞いエンジン４、５を介して、データストア６上のデータ６１、６２を読み込み、書き込み、更新、削除する。
【００１９】
バッチ処理基盤２、３上において、バッチ２１、３１が実行されると、それぞれのバッチ２１、３１に含まれるタスク２２、３２が順に実行される。
【００２０】
バッチ処理基盤２、３は、それぞれスケジュール情報２３、３３を保持する。スケジュール情報２３、３３は、予め定義されたバッチ処理の実行スケジュール情報であり、何時、何処で、どのバッチを、どのような優先度に従って、どのような制約条件下で実行するのかを定めた、バッチ処理開始時の条件を保持する。バッチ処理開始時の条件が満たされた場合に、バッチ処理基盤２、３は、定義されたバッチ処理の実行を開始する。
【００２１】
図２を参照して、スケジュール情報２３、３３のデータ構成について説明する。図２に示すように、スケジュール情報は、データ項目として、例えば、日時、バッチ識別子、実行先、制約条件および優先度を有する。日時には、バッチ処理の開始時間が格納され、バッチ識別子には、バッチ処理を一意に特定する識別情報が格納される。実行先には、バッチ処理を実行するバッチ処理基盤の識別子が格納される。制約条件には、バッチ処理を制約する条件が格納され、優先度には、バッチ処理の優先度合いが格納される。
【００２２】
図１に示すバッチ処理基盤２、３は、それぞれ配備情報２４、３４を保持する。配備情報２４、３４は、バッチ処理プログラムの配備情報であり、何時、どのタスクを含む、どのバッチが、どのような設定で配置されたのかを保持する。
【００２３】
図３を参照して、配備情報２４、３４のデータ構成について説明する。図３に示すように、配備情報は、データ項目として、例えば、バッチ識別子、タスク識別子、設定および日時を有する。バッチ識別子には、バッチ処理を一意に特定する識別情報が格納され、タスク識別子には、タスクを一意に特定する識別情報が格納される。設定には、バッチを配置した設定情報が格納され、日時には、バッチを配置した日時が格納される。
【００２４】
図１に示すバッチ処理基盤２、３は、それぞれ実行履歴情報２６、３６を保持する。実行履歴情報２６、３６は、バッチ処理基盤上で実行されたバッチやタスクの実行履歴情報であり、何時、どのバッチの、どのタスクが、どのデータを、どのように処理し、その処理の結果や、処理に要した時間を保持する。
【００２５】
図４を参照して、実行履歴情報２６、３６のデータ構成について説明する。図４に示すように、実行履歴情報２６、３６は、データ項目として、例えば、日時、バッチ識別子、タスク識別子、処理対象データ、処理内容、処理結果および実行時間を有する。日時には、バッチ処理の開始時間が格納され、バッチ識別子には、バッチ処理を一意に特定する識別情報が格納される。タスク識別子には、タスクを一意に特定する識別情報が格納され、処理対象データには、タスクが処理したデータが格納される。処理内容には、タスクの処理内容が格納され、処理結果には、タスクの処理結果が格納され、実行時間には、タスクの実行時間が格納される。
【００２６】
図１に示す振舞いエンジン４、５は、予め設定された振舞い型によるデータ処理を行う。振舞い型は、データの入出力動作の内容を示す属性情報により表現する。具体的には、例えば、データ６１が、順次読み込みのみ（Sequential Read Only（以下、「ＳＲＯ」という。））のデータである場合には、このようなデータ６１には、振舞い型として“ＳＲＯ”が付与される。また、データ６２が、順次書き込みのみ（Sequential Write Only（以下、「ＳＷＯ」という。)）のデータである場合には、このようなデータ６２には、振舞い型として“ＳＷＯ”が付与される。
【００２７】
データ４１、５１は、それぞれ振舞いエンジン４、５によりデータストア６上のデータ６１、６２の一部または全部が読み込まれた状態、もしくはタスク２２、３２の処理結果であって振舞いエンジン４、５によりデータストア６上のデータ６１、６２を更新する前または更新している最中の状態を示す。
【００２８】
設定情報４５、５５は、それぞれ振舞いエンジン４、５の設定情報を保持する。本実施形態では、既に設定情報が格納されているものとする。
【００２９】
実行履歴情報４６、５６は、それぞれ振舞いエンジン４、５による処理内容の実行履歴情報であり、何時、どのデータを、どのように処理し、その処理の結果や、処理に要した時間を保持する。
【００３０】
図５を参照して、実行履歴情報４６、５６のデータ構成について説明する。図５に示すように、実行履歴情報４６、５６は、データ項目として、例えば、日時、処理対象データ、処理内容、処理結果、実行時間および待機時間を有する。日時には、振舞いエンジンによる処理の開始時間が格納され、処理対象データには、振舞いエンジンで処理されたデータが格納される。処理内容には、振舞いエンジンによる処理の内容が格納され、処理結果には、振舞いエンジンによる処理の結果が格納される。実行時間には、振舞いエンジンによる処理の実行時間が格納され、待機時間には、振舞いエンジンによる処理の待機時間が格納される。
【００３１】
図１に示す最適化コントローラ１は、振舞いエンジン４、５による処理を最適化することにより、バッチ処理システムにおける複数のバッチを並列、多重して実行する際の処理効率を最適化する。
【００３２】
最適化コントローラ１は、解析部１１と、シミュレート部１２と、調整部１３とを含む。
【００３３】
解析部１１は、バッチ処理基盤２、３上に保持されているスケジュール情報２３、３３、配備情報２４、３４、設定情報２５、３５、実行履歴情報２６、３６を参照し、これらの情報を一元管理する。解析部１１は、振舞いエンジン４、５上に保持されている設定情報４５、５５、実行履歴情報４６、５６を参照し、これらの情報を一元管理する。具体的に、解析部１１は、バッチ処理のスケジュールや実行履歴に基づいて、データやリソースの競合状態を解析する。
【００３４】
シミュレート部１２は、スケジュール情報２３、３３、配備情報２４、３４、設定情報２５、３５を変更した場合の動作および結果をシミュレートする。シミュレート部１２は、シミュレートの結果に基づいて、最も効率良くバッチ処理を実行するための、スケジュール情報２３、３３、配備情報２４、３４、設定情報２５、３５の最適値を計算する。
【００３５】
具体的に、シミュレート部１２は、バッチ処理の処理内容および配備情報を仮に変更し、仮変更後の処理内容および配備情報におけるバッチ処理の競合状態をシミュレートする。シミュレート部１２は、バッチ処理間で重複するデータ処理が単一のデータ処理として実行されるように、処理内容および配備情報を変更する。シミュレート部１２は、バッチ処理に含まれるタスクのうち、同一のデータを処理対象とするタスクが同一のバッチ処理基盤上で実行されるように、処理内容および配備情報を変更する。シミュレート部１２は、バッチ処理のうち、同一のデータを処理対象とするタスクを含むバッチ処理が同一のバッチ処理基盤上で実行されるように、処理内容および配備情報を変更する。
【００３６】
調整部１３は、バッチ処理基盤２、３上の、スケジュール情報２３、３３、配備情報２４、３４、設定情報２５、３５、実行履歴情報２６、３６を更新し、これらの情報を一元管理する。調整部１３は、振舞いエンジン４、５上の、設定情報４５、５５、実行履歴情報４６、５６を更新し、これらの情報を一元管理する。具体的に、調整部１３は、シミュレート部１２によるシミュレート結果に応じて処理内容および配備情報の設定を更新してバッチ処理の制御内容を調整する。
【００３７】
次に、図６および図１を参照して、本実施形態におけるバッチ処理システムの動作の一例について説明する。この動作例では、振舞いエンジン４、５間でデータを共有するパターンについて説明する。
【００３８】
本動作例では、以下に述べる各事項を前提とする。バッチＡ２１１、バッチＢ２１２、バッチＣ３１１は、それぞれタスクＡａ２２１およびＡｂ２２２、タスクＢａ２２３およびＢｂ２２４、タスクＣａ３２１およびＣｂ３２２を含むバッチ処理プログラムである。
【００３９】
また、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１は、それぞれデータストア６のデータＡ６１１を読み込みの対象とし、処理結果をタスクＡｂ２２２、タスクＢｂ２２４、タスクＣｂ３２２に渡す処理である。データＡ６１１は、振舞いエンジン４の振舞い型が“ＳＲＯ”型に定義されている。
【００４０】
また、データＡ’４１１は、タスクＡａ２２１により、データストア６上のデータＡ６１１の一部または全てが振舞いエンジン上４に読み込まれた状態を表している。
【００４１】
また、データＡ’４１２またはデータＡ’５１１は、タスクＢａ２２３またはタスクＣａ３２１により、データストア６上のデータＡ６１１の一部または全てが振舞いエンジン上４に読み込まれたと仮定した場合の状態を表している。
【００４２】
また、バッチＡ２１１とバッチＢ２１２との差異は、タスクＡｂ２２２とタスクＢｂ２２４の処理内容にある。タスクＢｂ２２４は、データストア６からデータＢ６２１を読み込み、タスクＢａ２２３の処理結果を用いて結果を出力する処理である。データＢ’４１３は、タスクＢｂ２２４によりデータストア６上のデータＢ６２１の一部または全てが読み込まれた状態を表している。
【００４３】
また、バッチＡ２１１とバッチＣ３１１との差異は、タスクＡｂ２２２とタスクＣｂ３２２の処理内容にある。タスクＣｂ３２２は、タスクＣａ３２１の処理結果を用いてデータＢ’’５１２を出力し、データストア６上のデータＢ６２１を更新する処理である。データＢ’’５１２は、タスクＣｂ３２２の処理結果であり、データストア６上のデータＢ６２１を更新する前の状態または更新途中の状態を表している。
【００４４】
また、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１が、少なくとも一回実行された実績があり、実行履歴情報２６、３６には、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１の実行履歴情報が格納されている。バッチＡ２１１、バッチＢ２１２、バッチＣ３１１は、同時刻に開始されるようにスケジューリングされている。スケジュール情報２３、３３には、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１の次回の実行予定が格納されている。
【００４５】
まず、図６のように構成されたバッチ処理システムにおいて、本発明に係る最適化コントローラを適用することなく実行した場合には、以下のように実行されることになる。
【００４６】
最初に、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１が、同時刻に開始され、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１により、データＡ６１１がそれぞれ読み込まれる。ここで、データＡ６１１の振舞い型は“ＳＲＯ”型であるため、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１は、データストア６から可能な限りデータＡ６１１を先読みすることになる。
【００４７】
これにより、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１が実行されるたびにデータＡ６１１の読み込みが行われ、データストア６にはデータＡ６１１の読み込み要求ごとに負荷がかかる。また、振舞いエンジン４、５上に同一のデータＡ６１１が多重に読み込まれるため、リソース効率が低下することになる。
【００４８】
続いて、タスクＢｂ２２４により、データＢ６２１が読み込まれ、タスクＣｂ３２２によりデータＢ６２１が更新される。ここで、タスクＢｂ２２４によりデータＢ６２１が読み込まれた後に、タスクＣｂ３２２によりデータＢ６２１がデータＢ’’５１２の値で更新された場合、データＢ６２１とデータＢ’’５１２との間には不整合が生じることになる。
【００４９】
一般的には、ロック機構等を利用した排他制御により、このようなデータの不整合を防止する仕組みが考えられる。しかしながら、データＢ６２１に対する排他制御を行うと、タスクＢｂ２２４とタスクＣｂ３２２との間に、同一データに対する読み込みと更新とによる競合が発生してしまい、タスクの処理性能が低下してしまうことになる。
【００５０】
次に、図６のように構成されたバッチ処理システムにおいて、本発明に係る最適化コントローラを適用して実行した場合には、以下のように実行されることになる。
【００５１】
最初に、解析部１１は、実行履歴情報２６、３６を解析し、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１が、データＡ６１１に対して“ＳＲＯ”型の読み込みを行っている情報を取得する。
【００５２】
続いて、解析部１１は、スケジュール情報２３、３３を解析し、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１が、同時刻に開始されるようにスケジューリングされている情報を取得する。
【００５３】
続いて、解析部１１は、上記実行履歴情報２６、３６の解析結果およびスケジュール情報２３、３３の解析結果から、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１が、同時期に同一のデータに対する同一の振舞い型を行うことを突き止め、データＡ６１１に対する読み込みが最適化の候補になると判定する。
【００５４】
続いて、シミュレート部１２は、タスクＡａ２２１、タスクＢａ２２３、タスクＣａ３２１のデータＡ６１１に対する読み込みのうち、タスクＡａ２２１による読み込みのみを、振舞いエンジン４がデータストア６に対して行い、タスクＢａ２２３およびタスクＣａ３２１は、タスクＡａ２２１により振舞いエンジン４上に読み込まれたデータＡ’４１１を読み込むように、振舞いエンジン４、５の設定情報４５、５５を変更した場合の動作をシミュレートする。
【００５５】
続いて、シミュレート部１２は、シミュレートした結果、データＡ６１１を読み込むために要する処理時間が約１／３に低減し、振舞いエンジン４、５上に保持するためのメモリのリソース使用量が約１／３に低減する効果があるという結果を出力する。
【００５６】
続いて、調整部１３は、シミュレート部１２によるシミュレート結果に基づいて、タスクＢａ２２３、タスクＣａ３２１は、タスクＡａ２２１により振舞いエンジン４上に読み込まれたデータＡ’４１１を読み込むように、振舞いエンジン４，５の設定情報４５、５５を更新する。
【００５７】
続いて、調整部１３は、シミュレート部１２によるシミュレート結果に基づいて、タスクＡａ２２１を実行した後に、タスクＢａ２２３、タスクＣａ３２１を実行するように、バッチ処理基盤２、３のスケジュール情報２３、３３を更新する。
【００５８】
続いて、バッチＡ２１１、バッチＢ２１２、バッチＣ３１１が、同時刻に開始される。この場合、バッチＡ２１１が開始されると、バッチＡ２１１に含まれるタスクＡａ２２１が開始され、タスクＡａ２２１は、振舞いエンジン４を介して、データストア６からデータＡ６１１の読み込みを開始する。
【００５９】
一方、バッチＢ２１２が開始されると、バッチＢ２１２に含まれるタスクＢａ２２３は、タスクＡａ２２１によるデータＡ６１１の読み込みが完了するまで待機する。また、バッチＣ３１１が開始されると、バッチＣ３１１に含まれるタスクＣａ３２１は、タスクＡａ２２１によるデータＡ６１１の読み込みが完了するまで待機する。
【００６０】
続いて、振舞いエンジン４は、データストア６からデータＡ６１１を可能な限り先読みする。これにより、振舞いエンジン４上には、タスクＡａ２２１によってデータストア６から先読みされたデータＡ’４１１が保持されている状態となる。
【００６１】
続いて、タスクＡａ２２１によるデータＡ６１１の読み込みが完了した後、タスクＢａ２２３、タスクＣａ３２１が開始される。この場合、タスクＢａ２２３は、振舞いエンジン４を介して、データＡ’４１１を読み込む。また、タスクＣａ３２１は、振舞いエンジン４を介して、データＡ’４１１を読み込む。
【００６２】
本動作例により、データストア６からデータＡ６１１を読み込むために要する処理時間、およびデータＡ６１１の読み込み処理によるコンピュータ負荷を低減させることができる。また、データストア６から読み込むデータＡ６１１を、振舞いエンジン４上のデータＡ’４１１のみに統一することができるため、リソース効率を向上させることができる。
【００６３】
これにより、タスクごとに同一のデータをデータストア６から読み込む処理の重複を廃し、余剰な処理を省くことができるため、システム全体としてのバッチ処理性能を向上させることが可能となる。
【００６４】
次に、図７および図１を参照して、本実施形態におけるバッチ処理システムの動作の一例について説明する。この動作例では、処理対象データに重複のあるタスクの配置先を同一のバッチ処理基盤に集約するパターンについて説明する。
【００６５】
図７に示す構成が、上述した図６に示す構成と異なる点は、図６ではバッチ処理基盤３上に配置されているタスクＣａ３２１、Ｃｂ３２２が、図７ではバッチ処理基盤２上に配置されている点である。この変更により、タスクＣｂ３２２から出力されるデータＢ’’が、振舞いエンジン５から振舞いエンジン４に変更される。これ以外の構成については、上述した図６に示す構成と同様であるため、その説明を省略する。また、本動作例の内容は、上述した図６の動作例の内容と同様であるため、その説明を省略する。
【００６６】
本動作例による効果は、上述した図６の動作例による効果に加えて、データストア６から読み込んだ同一のデータを処理するタスクおよびそのデータを、同一のバッチ処理基盤および振舞いエンジンに集約することができるため、リソース効率をさらに向上させることができる。
【００６７】
次に、図８および図１を参照して、本実施形態におけるバッチ処理システムの動作の一例について説明する。この動作例では、処理対象データに重複のあるバッチの配置先を同一のバッチ処理基盤に集約するパターンについて説明する。
【００６８】
図８に示す構成が、上述した図６に示す構成と異なる点は、図６ではバッチ処理基盤３上に配置されているバッチＣ３１１、タスクＣａ３２１、Ｃｂ３２２が、図８ではバッチ処理基盤２上に配置されている点である。この変更により、タスクＣｂ３２２から出力されるデータＢ’’が、振舞いエンジン５から振舞いエンジン４に変更される。これ以外の構成については、上述した図６に示す構成と同様であるため、その説明を省略する。また、本動作例の内容は、上述した図６の動作例の内容と同様であるため、その説明を省略する。
【００６９】
本動作例による効果は、上述した図６の動作例による効果に加えて、データストア６から読み込んだ同一のデータを処理するバッチ、タスクおよびそのデータを、同一のバッチ処理基盤および振舞いエンジンに集約することができるため、リソース効率をさらに向上させることができる。これにより、処理リソースに余力を持たせることができるため、システム全体としての処理量を増大させることが可能となる。
【００７０】
上述したように、本実施形態における最適化コントローラを含むバッチ処理システムによれば、複数のバッチ処理を並列、多重して実行するときの処理効率を向上させることができる。
【００７１】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【００７２】
例えば、上述した実施形態では、バッチ処理基盤と振舞いエンジンとを含んで構成しているが、これに限定されない。例えば、振舞いエンジンをクライアントエンジンとサーバエンジンとに分けて構成しもよい。これにより、分散環境での振舞いエンジンを用いて、クライアント側での処理の分散、振舞い型によるデータのハンドリングの効率化、優先度情報の同期等を行うことができるため、バッチ処理を効率化させることが可能となる。
【００７３】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得る。ただし、本発明を以下に限定するものではない。
【００７４】
（付記１）  バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析部と、前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレート部と、前記シミュレート部による前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整部と、を備えることを特徴とするバッチ処理制御装置。
【００７５】
（付記２）  前記シミュレート部は、前記バッチ処理間で重複するデータ処理が単一のデータ処理として実行されるように、前記処理内容および前記配備情報を変更する、ことを特徴とする付記１記載のバッチ処理制御装置。
【００７６】
（付記３）  前記シミュレート部は、前記バッチ処理に含まれるタスクのうち、同一のデータを処理対象とする前記タスクが同一のバッチ処理基盤上で実行されるように、前記処理内容および前記配備情報を変更する、ことを特徴とする付記２記載のバッチ処理制御装置。
【００７７】
（付記４）  前記シミュレート部は、前記バッチ処理のうち、同一のデータを処理対象とするタスクを含むバッチ処理が同一のバッチ処理基盤上で実行されるように、前記処理内容および前記配備情報を変更する、ことを特徴とする付記３記載のバッチ処理制御装置。
【００７８】
（付記５）  バッチ処理のスケジュールおよび実行履歴に基づいて、データやリソースの競合状態を解析する解析ステップと、前記バッチ処理の処理内容および配備情報を仮変更し、仮変更後の前記処理内容および前記配備情報における前記バッチ処理の前記競合状態をシミュレートするシミュレートステップと、前記シミュレートステップにおける前記シミュレート結果に応じて前記処理内容および前記配備情報の設定を更新して前記バッチ処理の制御内容を調整する調整ステップと、を含むことを特徴とするバッチ処理制御方法。
【００７９】
（付記６）  付記５に記載の各ステップをコンピュータに実行させるためのバッチ処理制御プログラム。
【符号の説明】
【００８０】
１…最適化コントローラ、２、３…バッチ処理基盤、４、５…振舞いエンジン、６…データストア、１１…解析部、１２…シミュレート部、１３…調整部、２１、３１…バッチ、２２、３２…タスク、２３、３３…スケジュール情報、２４、３４…配備情報、２６、３６…実行履歴情報、４１、５１、６１、６２…データ、４５、５５…設定情報、４６、５６…実行履歴情報。
【図１】
0005652718.tif 000002
【図２】
0005652718.tif 000003
【図３】
0005652718.tif 000004
【図４】
0005652718.tif 000005
【図５】
0005652718.tif 000006
【図６】
0005652718.tif 000007
【図７】
0005652718.tif 000008
【図８】
0005652718.tif 000009