(57)【特許請求の範囲】
【請求項１】
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、
前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置と、
前記バッチ処理サーバと前記データストア装置との通信を監視して、前記パケットを取得し、取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況確認装置と、
を備えていることを特徴とするバッチ処理システム。
【請求項２】
前記進捗状況確認装置が、前記タスクの進捗状況として、タスク毎の、処理済のデータ処理の件数を特定する、請求項１に記載のバッチ処理システム。
【請求項３】
前記進捗状況確認装置が、取得した前記パケットの送信先から確認対象となるタスクを特定し、そして、前記データに基づいて、処理内容が、正常終了及びコミットの両方を満たしているか否かを判定し、満たしている場合に、前記確認対象となるタスクにおける処理済のデータ処理の件数を増加させる、請求項２に記載のバッチ処理システム。
【請求項４】
前記進捗状況確認装置が、前記タスクを実行する際に他のタスクに与える影響を予め特定している相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、前記進捗状況が設定値よりも低い、タスクを特定し、特定した前記タスクの優先度を上げるように、前記バッチ処理サーバに指示する、
請求項１〜３のいずれか記載のバッチ処理システム。
【請求項５】
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、通信監視部と、
取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況特定部と、
を備えていることを特徴とする進捗状況確認装置。
【請求項６】
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置とに、ネットワークを介して接続されたコンピュータを用い、
（ａ）前記コンピュータによって、前記ネットワーク上における、前記バッチ処理サーバと、前記データストア装置との通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記コンピュータによって、前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、
を有することを特徴とする進捗状況確認方法。
【請求項７】
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置とに、ネットワークを介して接続されたコンピュータに、
（ａ）前記ネットワーク上において、前記バッチ処理サーバと、前記データストア装置との、通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッチ処理によって複数のタスクを実行するバッチ処理システム、それに用いられる進捗状況確認装置、進捗状況確認方法、及びこれらを実現するためのプログラムに関する。
【背景技術】
【０００２】
バッチ処理は、通常、複数のタスクで構成され、あらかじめ定められたタイミングで開始される。更に、バッチ処理では、定められた範囲のデータに対して繰り返し同じ処理が行なわれ、それによって結果が得られる。加えて、バッチ処理では、定められた時間内で全ての処理を終わらせることが求められている。
【０００３】
また、最近では、データの大規模化、バッチ処理の複雑化に伴い、定められた時間内でバッチ処理を終わらせることが困難になってきたため、複数のサーバに処理を分散させる同時並列実行処理が行なわれる場合もある。但し、処理を分散しても１データに対する処理自体はそれほど高速化されていないため、ボトルネックとなる「データの入出力」を高速化する技術が提案されている。
【０００４】
具体的には、まず、バッチ処理の対象データに対して、当該データの行う「振る舞い」を特定する情報が付与される。そして、その振る舞いに準じてデータの先読みを行なう処理が行われたり、データが別のタスク処理で利用される場合においては、データの再読み込みが行われないようにデータを保持する処理が行われたりする。このような処理によれば、バッチ処理自体は高速化されると考えられる。
【０００５】
また、バッチ処理においては、システムの運用者は、バッチ処理に異常が発生していないかどうか、又はバッチ処理が時間内に終了するかどうかを推測するため、バッチ処理の進捗状況を常に確認できることを求めている。なお、本明細書でいう「進捗状況」には、以下の（１）〜（３）が含まれる。
【０００６】
（１）各タスクの処理の進み具合（各タスクにおける処理データの内、どのくらいのデータ処理が終了しているか)
（２）トランザクションにおけるタスク毎の正常処理の割合と異常処理の割合（即ち、正常処理が何件行われたか、異常処理が何件行われたか、どのくらいの頻度で異常処理が発生したか)
（３）全タスクを考慮した処理の進み具合（即ち、全処理データの内、どのくらいのデータ処理が終了しているか)
【０００７】
ここで、図１１を用いて、従来からのバッチ処理を実行するためのシステムについて説明する。図１１は、従来からのバッチ処理を実行するシステムの構成を示すブロック図である。図１１に示すバッチシステム２００は、サーバ２１０と、データストアサーバ２４０とを備えている。また、サーバ２１０には、バッチ処理の実行の指示に用いられる端末２５０と、バッチ処理の進捗状況の確認に用いられる端末２６０とが接続されている。
【０００８】
図１に示すように、サーバ２１０には、プログラムによってバッチ基盤２２０が構築されている。バッチ基盤２２０は、端末２５０を介して指示を受けると、複数のタスクを実行し、タスク毎にその内容に応じて、データストアサーバ２４０からデータの読み込みと、データストアサーバ２４０へのデータの書き込みとを実行する。
【０００９】
また、図１１に示すバッチシステム２００において、バッチ処理の進捗状況を端末２６０によって常に確認するようにするための手法としては、以下の第１の手法〜第３の手法がある。
【００１０】
第１の手法は、サーバ２１０内に、プログラムによって進捗状況確認部２３０を構築する手法である（例えば、特許文献１参照）。この場合、進捗状況確認部２３０は、処理されたタスクの件数をカウントし、全体の処理件数における、カウントされた処理件数の割合を求め、求めた割合を進捗状況として、端末２６０に送信する。
【００１１】
また、第２の手法は、データストア装置２４０内に、タスクの進捗状況を登録するためのリポジトリ２７０を構築しておく手法である。この場合、データストア装置２４０は、サーバ２１０によってバッチ処理が１トランザクション実行される毎に、リポジトリ２７０に進捗状況を記録する。システムの管理者は、タスクの進捗状況を知りたい場合は、端末２６０からリポジトリ２７０にアクセスして、必要な情報を取得する。
【００１２】
更に、第３の手法は、サーバ２１０に新たな装置を接続し、この装置によって、サーバ２１０の進捗状況を確認する手法である（例えば、特許文献２参照。）。具体的には、装置は、まず、ジョブ毎のジョブ名、開始予定時刻、終了予定時刻を含むログデータを取得し、取得したログデータから、ジョブ間の順序関係を特定する。次に、装置は、サーバ２１０から、バッチ処理の処理状況を特定する情報を取得し、この情報と特定した順序関係とに基づいて、各ジョブの実際の終了時刻を推定する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００３−６１５６号公報
【特許文献２】特開２０１１−１１８７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
上述した第１の手法〜第３の手法によれば、バッチ処理の進捗状況を確認することが可能になると考えられるが、これらの手法では、バッチ処理の処理効率に影響を与えることなく進捗具合を確認することは困難である。この点について以下に説明する。
【００１５】
まず、第１の手法では、タスクが動作しているサーバによって、処理されたタスクの件数をカウントするために、サーバのリソースが使用される。また、端末２６０からサーバに対して進捗状況の確認について問い合わせがあった場合、サーバは、タスク処理と並行して進捗状況の確認処理を行う必要がある。このため、第１の手法では、バッチ処理の処理効率が低下してしまう。
【００１６】
また、第２の手法では、データストア装置２４０が進捗状況をリポジトリ２７０に登録するために時間がかかるため、まず、その分、バッチ処理の処理効率が低下してしまう。更に、管理者は進捗具合を確認するためにリポジトリに対してアクセスする必要があり、それによってネットワークリソースが使用される。このとき、ネットワークリソースに余裕がない場合は、サーバ２１０によるタスクの読み込み処理とタスクの書き込み処理とが、ネットワークリソースの解放を待たなければ実行できない状態となる。結果、ネットワークリソースの使用によっても、バッチ処理の処理効率は低下してしまう。
【００１７】
更に、第３の手法では、サーバはバッチ処理の処理状況を特定する情報を登録する必要があり、第１の手法と同様に、進捗状況の確認にサーバのリソースが使用される。また、第３の手法では、装置は、ログデータを取得するために、サーバ２１０にアクセスする必要があり、第２の手法と同様に、ネットワークリソースが使用される。つまり、第３の手法によっても、第１の手法及び第２の手法と同様に、バッチ処理の処理効率が低下してしまう。
【００１８】
本発明の目的の一例は、上記問題を解消し、バッチ処理の処理効率を低下させることなく、バッチ処理の進捗状況の確認を可能にし得る、バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、本発明の一側面におけるバッチ処理システムは、
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、
前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置と、
前記バッチ処理サーバと前記データストア装置との通信を監視して、前記パケットを取得し、取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況確認装置と、を備えていることを特徴とする。
【００２０】
上記目的を達成するため、本発明の一側面における進捗状況確認装置は、
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、通信監視部と、
取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況特定部と、を備えていることを特徴とする。
【００２１】
また、上記目的を達成するため、本発明の一側面における進捗状況確認方法は、
（ａ）複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、を有することを特徴とする。
【００２２】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、を実行させることを特徴とする。
【発明の効果】
【００２３】
以上のように、本発明によれば、複数のタスクをバッチ処理によって実行する場合において、バッチ処理の処理効率を低下させることなく、バッチ処理の進捗状況の確認が可能となる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の実施の形態におけるバッチ処理システムの全体構成を示すブロック図である。
【図２】図２は、本発明の実施の形態におけるバッチ処理システムの具体構成を示すブロック図である。
【図３】図３は、本発明の実施の形態においてバッチ処理サーバとデータストア装置との間でやり取りされるパケットの一例を示す図である。
【図４】図４（ａ）〜（ｃ）は、それぞれ、本発明の実施の形態において進捗状況確認装置が保持する設定情報の一例を示している。
【図５】図５は、本発明の実施の形態において進捗状況確認装置が保持する進捗情報の一例を示している。
【図６】図６は、本発明の実施の形態における進捗状況確認装置の動作を示すフロー図である。
【図７】図７は、本発明の実施の形態における進捗状況確認装置の動作を概略的に示す説明図である。
【図８】図８は、本発明の実施の形態における変形例で使用されるプロセス優先度情報の一例を示す図である。
【図９】図９（ａ）〜図９（ｃ）は、本発明の実施の形態における変形例で進捗状況確認装置が保持する設定情報の一例を示す図であり、図９（ｄ）は、本発明の実施の形態における変形例で進捗状況確認装置が保持する進捗情報の一例を示す図である。
【図１０】図１０は、本発明の実施の形態における進捗状況確認装置を実現するコンピュータの一例を示すブロック図である。
【図１１】図１１は、従来からのバッチ処理を実行するシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
（実施の形態）
以下、本発明の実施の形態における、バッチ処理システム、進捗状況確認装置、進捗状況確認方法、及びプログラムについて、図１〜図１０を参照しながら説明する。
【００２６】
［バッチ処理システムの構成］
最初に本発明の実施の形態における、バッチ処理システムの構成について図１を用いて説明する。図１は、本発明の実施の形態におけるバッチ処理システムの全体構成を示すブロック図である。
【００２７】
図１に示すように、本実施の形態におけるバッチ処理システム１は、複数のタスクをバッチ処理によって実行するバッチ処理サーバ１００と、データストア装置４０と、進捗状況確認装置３０とを備え、これらはネットワークを介して接続されている。
【００２８】
また、図１に示すように、バッチ処理サーバ１００は、バッチ基盤１０と、振る舞いエンジン２０とを備えている。バッチ基盤１０及び振る舞いエンジン２０は、共に、プログラムによって、バッチ処理サーバ１００のＯＳ上に構築されている。
【００２９】
バッチ基盤１０は、予め定められたスケジュールに基づいて、各タスクをバッチ処理によって実行する。図１の例では、実行中のタスクとして、タスクＡ、タスクＢが図示されている。また、本実施の形態では、各タスクは、細分され、細分化された部分（例えば、タスクＡ−１、タスクＡ−２、タスクＢ−１等）毎に実行される。
【００３０】
振る舞いエンジン２０は、バッチ基盤１０によるバッチ処理の実行を高速化するエンジンであり、振る舞いハンドラ２１と、これらを制御するコントローラ２４と、データストア装置４０との通信に用いるソケット２２とを備えている。また、振る舞いハンドラ２１は、実行されるタスクの振る舞いに応じて、複数種類が用意されており、図１の例では、ＳＲＯハンドラ、ＳＷＯハンドラ、ＳＲＷハンドラ、及びＷＯハンドラが図示されている。
【００３１】
コントローラ２４は、各タスクが実行されると、その振る舞い（データの読み込み、データの書込み等）に対応する振る舞いハンドラ２１を起動させる。また、起動した振る舞いハンドラ２１は、ソケット２２を用いて、タスク実行のために、データストア装置４０との通信を行なう。なお、図１の例では、バッチ処理サーバ１０は、複数台備えられているが、その台数は特に限定されるものではない。バッチ処理サーバ１０は、１台であっても良い。
【００３２】
データストア装置４０は、バッチ処理の処理対象となるデータを格納するデータストア４１を備えている。データストア装置４０は、複数のタスクそれぞれからの要求に応じて、データストア４１からのデータの読み出し処理、及びデータストア４１へのデータの書き込み処理を実行する。また、データストア４１は、これらの処理の終了時にバッチ処理サーバに送信するパケット（具体的にはＦＩＮパケット）に、処理内容を示すデータを付加する。
【００３３】
進捗状況確認装置３０は、バッチ処理サーバ１００とデータストア装置４０との通信を監視して、ＦＩＮパケットを取得し、取得したＦＩＮパケットに付加されたデータに基づいて、タスクの進捗状況を特定する。また、バッチ処理システム１の管理者は、端末を介して、進捗状況確認装置３０にアクセスし、進捗状況を確認する。
【００３４】
このように、本実施の形態では、タスクの進捗状況の確認のために、バッチ処理サーバ１００のリソースと、ネットワークリソースとが使用されることはない。更に、データストア装置４０に、進捗状況のためのリポジトリを構築する必要もない。このため、本実施の形態によれば、複数のタスクをバッチ処理によって実行する場合において、バッチ処理の処理効率を低下させることなく、バッチ処理の進捗状況の確認が可能となる。
【００３５】
続いて、本実施の形態におけるバッチ処理システムの構成について図２〜図５を用いて更に具体的に説明する。図２は、本発明の実施の形態におけるバッチ処理システムの具体構成を示すブロック図である。
【００３６】
［バッチ処理サーバ］
図１に示したように、本実施の形態では、バッチ処理システム１は、複数のバッチ処理サーバ１００を備えているが、各バッチ処理サーバ１００は、全て同様の処理を実行するため、図２の例では、１台のバッチ処理サーバ１００のみが代表して例示されている。
【００３７】
図２に示すように、バッチ処理サーバ１００は、図１において述べたように、バッチ処理基盤１０と、振る舞いエンジン２０とを備えている。本実施の形態では、バッチ処理基盤１０は、バッチ処理部１１と、格納部１６とを備えている。
【００３８】
バッチ処理部１１は、格納部１６に格納されているスケジュール１３を読み出し、スケジュール１３で定められた日時に到達すると、格納部１６に格納されている設定情報１４に基づいて、対応するタスク１２をバッチ処理によって実行する。また、バッチ処理部１１は、タスクを実行すると、その実行履歴を格納部１６に格納する。
【００３９】
なお、バッチ処理部１１は、外部の端末からの指示に応じて、バッチ処理を開始することも可能である。また、設定情報１４は、タスク間の相関関係、目標処理件数等を含んでいる。
【００４０】
振る舞いエンジン２０は、図１において説明したように、振る舞いハンドラ２１と、コントローラ２４と、ソケット２２とに加えて、更に、格納部２７を備えている。
【００４１】
コントローラ２４は、バッチ処理実行部１１によってタスク１２が実行され、振る舞いエンジン２０に対してデータの読み込み処理又は書き込み処理を要求すると、振る舞いハンドラ２１を起動する。そして、振る舞いハンドラ２１は、要求された処理についてのデータ２３（例えば、読み込み対象となるファイル名、書き込み対象となるファイル名等）を一旦格納部２７に格納する。その後、振る舞いハンドラ２１は、データ２３に基づいて、対応するソケット２２を用いてデータストア装置４０にアクセスし、要求された処理を実行する。
【００４２】
また、振る舞いハンドラ２１は、データストア装置４０から送信されてきたデータにメタ情報を付加し、メタ情報が付加されたデータを、処理を要求したタスク１２に返信する。メタ情報には、タスク１２が必要としているデータ、データストア装置４０が一度に読み込み又は書き込みを行なうことができる件数、等が含まれている。
【００４３】
また、格納部２７には、データ２３の他に、設定情報２５と、振る舞いハンドラで行なわれた処理の実行履歴２６とが格納されている。設定情報２５は、タスク毎の対応する振る舞いハンドラの種類、各ソケットのＩＰアドレス及びポート番号、等を含んでいる。
【００４４】
［データストア装置］
データストア装置４０は、バッチ処理の処理対象となるデータを格納するデータストア４１と、ハンドラ４２とを備えている。具体的には、本実施の形態では、データストア装置４０は、サーバコンピュータによって構築されており、データストア４１は、例えば、ハードディスクドライブ及びメモリといったローカルのコンピュータリソースによって実現される。
【００４５】
また、データストア４１は、リモートのコンピュータリソースによって実現されていても良い。リモートのコンピュータリソースとしては、ネットワークを介して、データ管理ソフトウェアを用いて利用できるファイルシステム、データベース等が挙げられる。更に、データストア４１は、実際のデータの格納先及び格納形式が隠蔽されており、且つ、当該データへのアクセス方法のみが公開された、Ｗｅｂサービス等によって提供されるコンピュータリソースであっても良い。
【００４６】
また、データストア装置４０において、ハンドラ４２は、バッチ処理サーバ１００からの処理命令が送信されると、これを受信し、データストア４１に対して要求された処理命令を実行する。そして、ハンドラ４２は、処理命令の実行によって得られたデータを、バッチ処理サーバ１００に返信する。この時、ハンドラ４２は、処理内容を記憶する。記憶される処理内容としては、データの種類（Read/Write）、データの処理結果（Commit／Rollback）、終了状態（正常終了／異常終了）等が挙げられる。
【００４７】
また、バッチ処理サーバ１００とデータストア装置４０との間でクローズ処理が行なわれる場合は、図３に示すように、いずれか一方から、ＦＩＮパケットが送信される。図３は、本発明の実施の形態においてバッチ処理サーバとデータストア装置との間でやり取りされるパケットの一例を示す図である。
【００４８】
そして、データストア装置４０からバッチ処理サーバ１００へとＦＩＮパケットが送信される場合に、ハンドラ４２は、記憶している処理内容を示すデータ（以下「処理内容データ」と表記する。）をＦＩＮパケットに付加する。更に、ハンドラ４２は、処理内容データが付加されたＦＩＮパケットを、クローズ処理を行うソケット２２に送信する。
【００４９】
なお、バッチ処理サーバ１００においては、このＦＩＮパケットに付加された処理内容データに対する処理は行なわれないが、進捗状況確認装置３０では、上述したように、この付加された処理内容データが、進捗状況の確認に必要なデータとなる。
【００５０】
また、本実施の形態では、データストア装置４０は、データの生成、読み込み、更新、削除が可能なデータの保持先としての機能と、接続をクローズする際のＦＩＮパケットに処理内容データを付加する機能とを備えていれば良い。データストア装置４０は、上述したサーバコンピュータであっても良いし、パーソナルコンピュータであっても良い。
【００５１】
［進捗状況確認装置］
図２に示すように、本実施の形態では、進捗状況確認装置３０は、通信監視部３１と、進捗状況確認部３２と、格納部３５とを備えている。また、進捗状況確認装置３０は、コンピュータに、後述するプログラムをインストールすることによって構築できる。
【００５２】
格納部３５は、設定情報３３と、進捗情報３４とを格納している。設定情報３３としては、処理の対象となるタスク及びそれによって処理されるデータに関するメタ情報が挙げられる。具体的には、設定情報３３には、図４（ａ）〜（ｃ）に示すように、以下の４つの情報（Ａ）〜（Ｄ）が含まれている。図４（ａ）〜（ｃ）は、それぞれ、本発明の実施の形態において進捗状況確認装置が保持する設定情報の一例を示している。
【００５３】
（Ａ）どのタスクがどの振る舞いハンドラ（ＳＲＯハンドラ、ＳＷＯハンドラ等)を利用してデータの処理を行っているかを特定する情報（各タスクがデータ処理において利用する振る舞いハンドラを特定する情報：図７（ａ）参照）
（Ｂ）どの振る舞いハンドラがどのソケットを利用してデータストア装置４０から処理データを取得しているかを特定する情報（各振る舞いハンドラがデータストア装置４０からの処理データの取得に利用するソケットを特定する情報：図７（ｂ）参照）
（Ｃ）進捗状況を確認するために確認すべき通信の情報（進捗状況の確認に必要な通信を特定する情報：図７（ｃ）参照）
（Ｄ）１回の通信処理でデータをどのくらい処理するのかを特定する情報（１回の通信処理で処理されるデータ量を特定する情報：図７（ｄ）参照）
【００５４】
通信監視部３１は、本実施の形態では、図３に示すように、ネットワーク上において、バッチ処理サーバ１００とデータストア装置４０との間でやりとりされるパケットをモニタリングして、ＦＩＮパケットを取得する。そして、通信監視部３１は、取得したＦＩＮパケットの送付先（ＩＰアドレス、ポート番号）を特定し、更に処理内容データを解析する。
【００５５】
具体的には、本実施の形態では、ＦＩＮパケットに付加されている処理内容データは、データの種類（Read／Write）、データの処理結果（Commit／Rollback）、終了状態（正常終了／異常終了）を含むことから、通信監視部３１は、これらを特定する。そして、通信監視部３１は、特定した情報をＦＩＮパケットの送付先の情報と共に、進捗状況確認部３２に渡す（図３参照）。
【００５６】
進捗状況確認部３２は、本実施の形態では、通信監視部３１から情報に基づき、まず、ＦＩＮパケットの送付先（ＩＰアドレス、ポート番号）を設定情報３３に照合し、データストア装置４０の通信先となったバッチ処理サーバ１００及びそのソケットを確認する。そして、進捗状況確認部３２は、設定情報３３に基づいて、確認されたソケットが進捗状況の確認対象であるかどうかを判定し、確認対象でない場合は、先に取得したＦＩＮパケットを破棄する。
【００５７】
一方、進捗状況確認部３２は、確認されたソケットが進捗状況の確認対象である場合は、Commit及びRollbackのいずれであるかと、正常終了及び異常終了のいずれであるかと、を確認する。次に、進捗状況確認部３２は、「正常終了」であり、且つ、「Commit」であるならば、設定情報３３を参照して、対象となった処理における「１回の通信処理で処理されるデータ量（データ処理件数）」を確認し、格納部３５に格納されている進捗情報３４を更新する。
【００５８】
また、本実施の形態では、格納部３５には、図５に示すように、タスク毎のデータ処理の件数（処理済件数）が、進捗情報３４として格納されている。よって、進捗状況確認部３２は、該当するタスクにおいて、確認した「１回の通信処理で処理されるデータ処理件数」を加算する。図５は、本発明の実施の形態において進捗状況確認装置が保持する進捗情報の一例を示している。
【００５９】
また、本実施の形態においては、進捗情報３４は、図５の例に限定されるものではない。本実施の形態では、進捗状況確認部３２は、進捗情報３４として、タスク毎の、処理すべきデータ処理の全件数に対する、処理済のデータ処理の件数の割合（以下「進捗率」と表記する。）を算出することもできる。
【００６０】
ここで、バッチ処理のタスク発生時にプロセスが生成され、通信監視部３１による監視の開始までについて説明する。まず、そのプロセスが生成した時に、バッチ処理サーバ１００において、振る舞いエンジン２０上で、プロセスに対応する振る舞いハンドラ２１が生成（起動）される。そして、振舞いエンジン２０は、その振る舞いハンドラ２１が利用するソケット２２を特定する情報、振る舞いハンドラ２１が利用するデータ２３を進捗状況確認装置３０に送信する。
【００６１】
続いて、進捗状況確認装置３０は、送信されてきた新規プロセスに関する情報に基づいて、自身が保持する設定情報３３を更新し、更に、送信されてきた情報に基づいて、進捗状況の確認対象となるデータの通信に用いられるソケット２２を特定する。そして、通信監視部３１は、特定したソケット２２上でやりとりされる情報を監視する。
【００６２】
なお、バッチ処理サーバ１００において、振る舞いエンジン２０が、進捗状況確認装置３０に対して情報を送信する処理は、タスクが開始されるまでの初期化処理の延長上で実施される。このため、当該処理によって、バッチ処理の処理効率が低下することはない。
【００６３】
［進捗状況確認装置の動作］
次に、本発明の実施の形態における進捗状況確認装置３０の動作について図６及び図７を用いて説明する。図６は、本発明の実施の形態における進捗状況確認装置の動作を示すフロー図である。図７は、本発明の実施の形態における進捗状況確認装置の動作を概略的に示す説明図である。
【００６４】
以下の説明においては、適宜図１〜図５を参酌する。また、本実施の形態では、進捗状況確認装置３０を動作させることによって、進捗状況確認方法が実施される。よって、本実施の形態における進捗状況確認方法の説明は、以下の進捗状況確認装置３０の動作説明に代える。
【００６５】
まず、バッチ処理サーバ１００において、新たなプロセスが生成され、振舞いエンジン２０が、振る舞いハンドラ２１が利用するソケット２２を特定する情報と、振る舞いハンドラ２１が利用するデータ２３とを進捗状況確認装置３０に送信する。これにより、図６に示すように、通信監視部３１は、送信されてきた情報に基づいて、設定情報３３を更新する（ステップＡ１）。
【００６６】
次に、通信監視部３１は、ステップＡ１で更新した設定情報３３に基づいて、監視対象となるソケット２２を特定し、特定したソケットを用いたバッチ処理サーバ１００とデータストア装置４０との通信を監視する（ステップＡ２：図７参照）。
【００６７】
次に、通信監視部３１は、特定したソケットを用いてパケットが送信されると、送信されたパケットがＦＩＮパケットであるかどうかを判定する（ステップＡ３：図７参照）。ステップＡ３の判定の結果、ＦＩＮパケットでない場合は、通信監視部３１は、再度ステップＡ２を実行する。一方、ステップＡ３の判定の結果、ＦＩＮパケットである場合は、通信監視部３１は、このＦＩＮパケットを取得する（ステップＡ４）。
【００６８】
次に、通信監視部３１は、取得したＦＩＮパケットの送付先（ＩＰアドレス、ポート番号）を特定し、更に処理内容データを解析する（ステップＡ５）。また、ステップＡ５では、通信監視部３１は、解析によって特定した情報と、特定したＦＩＮパケットの送付先の情報とを、進捗状況確認部３２に渡す。
【００６９】
次に、進捗状況確認部３２は、通信監視部３１から情報に基づき、まず、ＦＩＮパケットの送付先（ＩＰアドレス、ポート番号）を設定情報３３に照合して、データストア装置４０の通信先となったバッチ処理サーバ１００及びそのソケットを確認する。そして、進捗状況確認部３２は、設定情報３３に基づいて、確認されたソケットが進捗状況の確認対象であるかどうかを判定する（ステップＡ６）。
【００７０】
ステップＡ６の判定の結果、確認されたソケットが、進捗状況の確認対象でない場合は、進捗状況確認部３２は、ステップＡ４で取得したＦＩＮパケットを破棄する（ステップＡ９）。その後、再度、通信監視部３２によってステップＡ２が実行される。一方、ステップＡ６の判定の結果、確認されたソケットが、進捗状況の確認対象である場合は、進捗状況確認部３２は、処理内容データが「正常終了」及び「Commit」を含んでいるかどうかを判定する（ステップＡ７）。
【００７１】
ステップＡ７の判定の結果、処理内容データが「正常終了」及び「Commit」を含んでいない場合は、再度、通信監視部３２によってステップＡ２が実行される。一方、ステップＡ７の判定の結果、処理内容データが「正常終了」及び「Commit」を含んでいる場合は、進捗状況確認部３２は、設定情報３２から、プロセスでの「１回の通信処理で処理されるデータ量（データ処理件数）」を確認し、格納部３５に格納されている進捗情報３４を更新する（ステップＡ８）。
【００７２】
以上のステップＡ１〜Ａ８は、バッチ処理サーバ１００において実行されるタスク毎に行なわれる。よって、バッチ処理システム１の管理者は、進捗状況確認装置３０に格納されている進捗情報３４を確認することで、バッチ処理の進捗状況を簡単に確認することができる。
【００７３】
以上のように本実施の形態によれば、管理者は、複数のタスクを同一環境で実行しているバッチ基盤１０に負荷をかけることなく、実行処理の進捗状況をリアルタイムに確認することができる。また、ネットワークリソースが使用されることもなく、更に、データストア装置４０に、進捗状況のためのリポジトリを構築する必要もない。
【００７４】
［変形例１］
本実施の形態においては、バッチ処理基盤１０は、格納部１６に、図８に示すプロセス優先度情報を格納することができる。図８の例では、プロセスの優先度は、「高」「中」「低」の三段階で設定されている。図８は、本発明の実施の形態における変形例で使用されるプロセス優先度情報の一例を示す図である。
【００７５】
また、この場合、進捗状況確認装置３０は、格納部３５において、設定情報３３として図９（ｃ）に示す「タスク−データマッピング情報」を格納することができる。この情報は、タスクの相関関係、例えば、「タスクＡは他タスクに影響なく処理できる」、「タスクＣはタスクＢの処理データを元に処理を実行する」といった関係を表わしている。
【００７６】
この場合、進捗状況特定部３２は、タスクの相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、進捗状況（進捗率等）が設定値に達していない、タスクを特定する。なお、「他のタスクに影響を与える可能性があるタスク」とは、そのタスクが完了しないと次のタスクの処理を進まないタスク等を意味する。また、進捗状況の設定値は、管理者が適宜設定することができる。
【００７７】
具体的には、進捗状況特定部３２は、図９（ｃ）に示す「タスク−データマッピング情報」に加えて、図９（ｂ）に示す「サーバ−タスクマッピング情報」と、図９（ｄ）に示す進捗情報とを用いて、該当するタスクを特定する。図９（ａ）〜（ｄ）の例では、タスクＢ−１が特定される。なお、図９（ａ）は、図７（ａ）と同様に、各タスクがデータ処理において利用する振る舞いハンドラを特定する情報を示している。
【００７８】
また、図９（ａ）〜図９（ｃ）は、本発明の実施の形態における変形例で進捗状況確認装置が保持する設定情報の一例を示す図であり、図９（ｄ）は、本発明の実施の形態における変形例で進捗状況確認装置が保持する進捗情報の一例を示す図である。
【００７９】
そして、進捗状況特定部３２は、特定したタスクの優先度を上げるように、バッチ処理サーバ１００のバッチ処理基盤１０に指示を行なう。このように、変形例１によれば、進捗状況確認装置３０を、バッチ処理システム１００におけるプロセス全体の進行を制御するコントローラとして機能させることができる。
【００８０】
［変形例２］
また、上述した例では、図１に示したように、進捗状況確認装置３０は、タスクＡ−１、タスクＡ−２といった細分化されたタスク毎に、進捗状況を確認しているが、本実施の形態は、これに限定される趣旨ではない。タスクＡ、タスクＢといった、細分化される前のタスク毎に、進捗状況の確認が行なわれていても良い。
【００８１】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図６に示すステップＡ１〜Ａ９を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における進捗状況確認装置３０と進捗状況確認方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、通信監視部３１及び進捗状況特定部３２として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置が、格納部３５として機能する。
【００８２】
ここで、本実施の形態におけるプログラムを実行することによって、進捗状況確認装置３０を実現するコンピュータについて図１０を用いて説明する。図１０は、本発明の実施の形態における進捗状況確認装置を実現するコンピュータの一例を示すブロック図である。
【００８３】
図１０に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００８４】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００８５】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００８６】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００８７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００８８】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１６）によって表現することができるが、以下の記載に限定されるものではない。
【００８９】
（付記１）
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、
前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置と、
前記バッチ処理サーバと前記データストア装置との通信を監視して、前記パケットを取得し、取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況確認装置と、
を備えていることを特徴とするバッチ処理システム。
【００９０】
（付記２）
前記進捗状況確認装置が、前記タスクの進捗状況として、タスク毎の、処理済のデータ処理の件数を特定する、付記１に記載のバッチ処理システム。
【００９１】
（付記３）
前記進捗状況確認装置が、取得した前記パケットの送信先から確認対象となるタスクを特定し、そして、前記データに基づいて、処理内容が、正常終了及びコミットの両方を満たしているか否かを判定し、満たしている場合に、前記確認対象となるタスクにおける処理済のデータ処理の件数を増加させる、付記２に記載のバッチ処理システム。
【００９２】
（付記４）
前記進捗状況確認装置が、前記タスクの相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、前記割合が設定値よりも低い、タスクを特定し、特定した前記タスクの優先度を上げるように、前記バッチ処理サーバに指示する、
付記１〜３のいずれか記載のバッチ処理システム。
【００９３】
（付記５）
複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、通信監視部と、
取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、進捗状況特定部と、
を備えていることを特徴とする進捗状況確認装置。
【００９４】
（付記６）
前記進捗状況特定部が、前記タスクの進捗状況として、タスク毎の、処理済のデータ処理の件数を特定する、付記５に記載の進捗状況確認装置。
【００９５】
（付記７）
前記進捗状況特定部が、取得した前記パケットの送信先から確認対象となるタスクを特定し、そして、前記データに基づいて、処理内容が、正常終了及びコミットの両方を満たしているか否かを判定し、満たしている場合に、前記確認対象となるタスクにおける処理済のデータ処理の件数を増加させる、付記６に記載の進捗状況確認装置。
【００９６】
（付記８）
前記進捗状況特定部が、前記タスクの相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、前記進捗状況が設定値に達していない、タスクを特定し、特定した前記タスクの優先度を上げるように、前記バッチ処理サーバに指示する、付記５〜７のいずれかに記載の進捗状況確認装置。
【００９７】
（付記９）
（ａ）複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、
を有することを特徴とする進捗状況確認方法。
【００９８】
（付記１０）
前記（ｂ）のステップにおいて、前記タスクの進捗状況として、タスク毎の、処理済のデータ処理の件数を特定する、付記９に記載の進捗状況確認方法。
【００９９】
（付記１１）
前記（ｂ）のステップにおいて、取得した前記パケットの送信先から確認対象となるタスクを特定し、そして、前記データに基づいて、処理内容が、正常終了及びコミットの両方を満たしているか否かを判定し、満たしている場合に、前記確認対象となるタスクにおける処理済のデータ処理の件数を増加させる、付記１０に記載の進捗状況確認方法。
【０１００】
（付記１２）
（ｃ）前記タスクの相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、前記進捗状況が設定値に達していない、タスクを特定し、特定した前記タスクの優先度を上げるように、前記バッチ処理サーバに指示する、ステップを更に有する、付記９〜１１のいずれかに記載の進捗状況確認方法。
【０１０１】
（付記１３）
コンピュータに、
（ａ）複数のタスクをバッチ処理によって実行する、バッチ処理サーバと、前記複数のタスクそれぞれからの要求に応じてデータの読み出し処理及び書き込み処理を実行し、そして、処理の終了時に前記バッチ処理サーバに送信するパケットに、処理内容を示すデータを付加する、データストア装置との、通信を監視して、前記パケットを取得する、ステップと、
（ｂ）前記（ａ）のステップで取得した前記パケットに付加された前記データに基づいて、前記タスクの進捗状況を特定する、ステップと、
を実行させるプログラム。
【０１０２】
（付記１４）
前記（ｂ）のステップにおいて、前記タスクの進捗状況として、タスク毎の、処理済のデータ処理の件数を特定する、付記１３に記載のプログラム。
【０１０３】
（付記１５）
前記（ｂ）のステップにおいて、取得した前記パケットの送信先から確認対象となるタスクを特定し、そして、前記データに基づいて、処理内容が、正常終了及びコミットの両方を満たしているか否かを判定し、満たしている場合に、前記確認対象となるタスクにおける処理済のデータ処理の件数を増加させる、付記１４に記載のプログラム。
【０１０４】
（付記１６）
（ｃ）前記タスクの相関関係に基づいて、他のタスクに影響を与える可能性があり、且つ、前記進捗状況が設定値に達していない、タスクを特定し、特定した前記タスクの優先度を上げるように、前記バッチ処理サーバに指示する、ステップを、前記コンピュータに更に実行させる、付記１３〜１５のいずれかに記載のプログラム。
【産業上の利用可能性】
【０１０５】
本発明によれば、バッチ処理の処理効率を低下させることなく、バッチ処理の進捗状況の確認が可能となる。本発明は、複数のタスクをバッチ処理によって実行するバッチ処理サーバに有用である。
【符号の説明】
【０１０６】
１  バッチ処理システム
１０  バッチ処理基盤
１１  バッチ処理部
１２  タスク
１３  スケジュール
１４  設定情報
１５  実行履歴
１６  格納部
２０  振る舞いエンジン
２１  振る舞いハンドラ
２２  ソケット
２３  データ
２４  コントローラ
２５  設定情報
２６  実行履歴
２７  格納部
３０  進捗状況確認装置
３１  通信監視部
３２  進捗状況特定部
３３  設定情報
３４  進捗情報
３５  格納部
４０  データストアサーバ
４１  データストア
４２  ハンドラ
４３  データ
１００  バッチ処理サーバ
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
0005884566.tif 000002
【図２】
0005884566.tif 000003
【図３】
0005884566.tif 000004
【図４】
0005884566.tif 000005
【図５】
0005884566.tif 000006
【図６】
0005884566.tif 000007
【図７】
0005884566.tif 000008
【図８】
0005884566.tif 000009
【図９】
0005884566.tif 000010
【図１０】
0005884566.tif 000011
【図１１】
0005884566.tif 000012