(57)【要約】【課題】  完全なプラットフォームフリーのバッチ処理システムを提供する。【解決手段】  ＪＡＶＡ（登録商標）環境で実行可能に実装されたバッチ処理システムであり、バッチ処理の内容が記述されているスクリプトファイルを保持し、前記スクリプトファイルに従った処理の実行を要求する、ａｎｔで実現されているスクリプトツール１２と、所定の処理を実行する、ＥＪＢ（Enterprise Java Beans）の形式の複数の実行ファイル２１と、複数の実行ファイル２１から、スクリプトツール１２からの要求に対応する実行ファイル２１を特定し、特定された実行ファイル２１に処理の実行を指示する、ＪＡＶＡプログラムで実装されているバッチマネージャ１１と、を備える。【選択図】  図１
2005275522.tif 000002
【特許請求の範囲】
【請求項１】
バッチ処理の内容が記述されているスクリプトファイルを保持し、前記スクリプトファイルに従った処理の実行を要求するスクリプト処理部と、
所定の処理を実行する複数の実行ファイルと、
前記複数の実行ファイルから、前記スクリプト処理部からの要求に対応する実行ファイルを特定し、特定された実行ファイルに処理の実行を指示するバッチ処理部と、を備えるバッチ処理システム。
【請求項２】
前記バッチ処理システムは、ＪＡＶＡ（登録商標）環境で実行可能に実装されていて、
前記複数の実行ファイルは、ＥＪＢ（Enterprise Java Beans）の形式で実装されていて、
前記バッチ処理部は、ＪＡＶＡプログラムで実装されていて、
前記スクリプト処理部は、ａｎｔで実現されていることを特徴とする請求項１記載のバッチ処理システム。
【請求項３】
所定のジョブスケジュールに従って前記スクリプト処理部を起動するジョブスケジューラをさらに備える、ことを特徴とする請求項１記載のバッチ処理システム。
【請求項４】
バッチ処理の内容が記述されているスクリプトファイルを保持し、前記スクリプトファイルに従った処理の実行を要求し、
所定の処理を実行する複数の実行ファイルの中から前記処理要求に対応する実行ファイルを特定し、特定された実行ファイルに処理の実行を指示する、バッチ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバッチ処理を行うコンピュータシステムに関する。
【背景技術】
【０００２】
大量のデータをまとめて処理するバッチ処理では、処理手順をスクリプトファイルに記述し、そのスクリプトファイルに従って処理を実行する。スクリプトファイルには、実行する処理の順に従って、所定のコマンドなどが記述される。スクリプトファイルとしては、Ｕｎｉｘ（登録商標）系ＯＳ（Operating System）ではシェルスクリプト、Ｗｉｎｄｏｗｓ（登録商標）ではＷｉｎｄｏｗｓスクリプト（バッチファイル）が利用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
マルチプラットフォーム環境のバッチ処理システムであっても、Ｕｎｉｘ系ＯＳ、Ｗｉｎｄｏｗｓのいずれの場合もそれぞれのスクリプトを利用していて、ＯＳに依存していた。つまり、プログラムはＪＡＶＡ（登録商標）などのマルチプラットフォーム環境で動作するように作られたバッチ処理システムであっても、スクリプトファイルに関しては、依然としてＯＳに依存した作りになっていた。
【０００４】
このため、例えば、開発段階の環境はＷｉｎｄｏｗｓであるのに対して、リリース後にシステムが動く運用環境ではＵｎｉｘ系ＯＳを用いる場合には、開発環境で作ったプログラムはそのまま移植できるが、スクリプトファイルは移植できないという問題があった。つまり、従来のプラットフォームフリーのバッチ処理システムでは、スクリプトはプラットフォームに依存しており不完全であった。
【０００５】
そこで、本発明の目的は、完全なプラットフォームフリーのバッチ処理システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の一つの実施態様に従うバッチ処理システムは、バッチ処理の内容が記述されているスクリプトファイルを保持し、前記スクリプトファイルに従った処理の実行を要求するスクリプト処理部と、所定の処理を実行する複数の実行ファイルと、前記複数の実行ファイルから、前記スクリプト処理部からの要求に対応する実行ファイルを特定し、特定された実行ファイルに処理の実行を指示するバッチ処理部と、を備える。
【０００７】
好適な実施形態では、前記バッチ処理システムは、ＪＡＶＡ（登録商標）環境で実行可能に実装されている。このとき、前記複数の実行ファイルは、ＥＪＢ（Enterprise Java Beans）の形式で実装され、前記バッチ処理部は、ＪＡＶＡプログラムで実装されていてもよい。さらに、前記スクリプト処理部は、ａｎｔで実現されていてもよい。
【０００８】
好適な実施形態では、所定のジョブスケジュールに従って前記スクリプト処理部を起動するジョブスケジューラをさらに備えるようにしてもよい。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施形態に係るバッチ処理システムについて、図面を用いて説明する。
【００１０】
本システムの全体構成を図１に示す。本システムは、同図に示すように、バッチサーバ１と、１以上のＡＰサーバ２と、運用監視サーバ３とを備え、それらが互いにネットワーク９を介して接続されている。本システムは、ジョブスケジュールを管理する運用監視サーバ３からの指示に基づいて、バッチサーバ１がＡＰサーバ２にインストールされている所定の実行ファイルに、一連のバッチジョブを実行させる。また、同図に示すように、ＡＰサーバ２が複数台あるときは負荷分散装置８をさらに備え、複数台のＡＰサーバ２へ処理を分散させてもよい。
【００１１】
バッチサーバ１、各ＡＰサーバ２および運用監視サーバ３は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明する各サーバ１，２，３内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１２】
バッチサーバ１は、バッチ処理を管理するバッチマネージャ１１と、バッチ処理を記述したスクリプトに従ってバッチマネージャ１１に処理要求を行うスクリプトツール１２と、バッチ処理の実行履歴を記録したバッチログ１３とを備える。
【００１３】
バッチマネージャ１１は、スクリプトツール１２からの処理要求に従って、ＡＰサーバ２の実行ファイル２１に所定の処理の実行を指示する。例えば、バッチマネージャ１１は、バッチ起動処理部１５と、変換テーブル１６とを備えている。
【００１４】
変換テーブル１６は、例えば、図２に示すように、ＡＰサーバグループ名１６１と、ネットワーク論理名１６２とが対応付けられている。ＡＰサーバグループ名１６１は、後述するスクリプトファイルの中で用いられているＡＰサーバのグループ名である。ネットワーク論理名１６２は、ネットワーク上での論理的な場所を示す名称である。負荷分散装置８が、ネットワーク論理名１６２を個別のＡＰサーバ２上の物理的な位置を特定するためのアドレスへ変換する。
【００１５】
バッチ起動処理部１５は、スクリプトツール１２からの処理要求に基づいて、ネットワーク論理名及び実行ファイルを特定し、処理の実行を指示する。例えば、バッチ起動処理部１５が、処理要求としてＡＰサーバグループ名及び実行ファイル名の指定を受けると、変換テーブル１６からそのＡＰサーバグループ名１６１に対応するネットワーク論理名１６２を取得し、ネットワーク論理名及び実行ファイルを用いて処理の実行を指示する。バッチ起動処理部１５は、上記のようにして実行指示をした処理内容および日時などをバッチログ１３へ追加する。
【００１６】
本システムは、例えば、ＪＡＶＡ環境で動作するように実装することができる。この場合、バッチ起動処理部１５はＪａｖａプログラムで記述することが可能である。
【００１７】
スクリプトツール１２は、複数のスクリプトファイル１２１を備える。そして、スクリプトツール１２は各スクリプトファイル１２１に記述されている内容に従った処理を実行する。スクリプトファイル１２１は、業務の仕様などに基づいて、システム管理者等が予め作成したものである。例えば、それぞれのスクリプトファイル１２１には、本システムが行うバッチ処理の手順が記述されている。ここで、スクリプトファイル１２１の一例を図３に示す。この例では、一つのスクリプトファイル１２１に一つのジョブ（後述する）が対応している。なお、各スクリプトファイル１２１は、実際にはそれぞれのスクリプトに固有な所定の文法に従って記述されるが、ここでは理解を容易にするための普通の文章で記述している。
【００１８】
本システムをＪＡＶＡ環境で動作するように実装した場合、スクリプトツール１２は、ａｎｔと呼ばれるビルドツールを用いて実現することができる。ここで、ａｎｔは、Ｕｎｉｘにおけるmakefileコマンドに相当するものである。つまり、ａｎｔは、一般にはバッチ処理の実行を制御するためのツールとは認識されていない。本発明の発明者は、従来はビルドツールとしてしか利用されていなかったａｎｔが持つ機能に着目し、バッチ処理の実行制御に対する利用可能性を見出したものである。
【００１９】
また、スクリプトツール１２をａｎｔで実装した場合、スクリプトツール１２からの処理要求は、ＪＭＸ（Java Management eXtensions）の形式で行うようにしてもよい。
【００２０】
再び図１を参照すると、それぞれのＡＰサーバ２は、複数の実行形式の実行ファイル２１と、データ記憶部２２とを備える。各実行ファイル２１は、必要に応じてデータ記憶部２２からのデータ読みだし及びデータの書き込みを行って、それぞれ所定の処理を実行する。本システムをＪＡＶＡ環境で動作可能に実装した場合、各実行ファイル２１はＥＪＢ（Enterprise Java Beans）の形式で実現することができる。
【００２１】
運用監視サーバ３は、ジョブスケジューラ３１と現在時刻を提供する計時部３２とを備える。例えば、ジョブスケジューラ３１は、図４に示すようなジョブスケジュール３３を保持している。ジョブスケジュール３３は、同図に示すように、ジョブ単位に起動時刻が指定されている。一つのジョブは一つ以上の処理を含む。そして、ジョブスケジューラ３１はジョブ単位で処理を管理する。ジョブスケジューラ３１は、計時部３２が示す現在時刻を参照し、ジョブスケジュール３３に従ってバッチサーバ１に対して所定のジョブの実行を指示する。
【００２２】
次に、図５に示すシーケンスチャートに従って、本システムの動作概要を説明する。
【００２３】
まず、ジョブスケジュールに決められた所定の時刻になると、ジョブスケジューラ３１がスクリプトツール１２に対して、所定のスクリプトの起動を指示する。ここでは、時刻が２２時になり、ジョブスケジューラ３１はスクリプトツール１２に対して「ジョブＡ」を実行するため、これに対応するスクリプトの起動を指示したとする。
【００２４】
スクリプトツール１２は、起動指示されたスクリプトファイル１２１を参照し、これに記載された処理を実行する。この場合、スクリプトツール１２は、「ジョブＡ」に対応するスクリプトファイルに記述された内容を実行するよう、バッチマネージャ１１へ逐次処理要求をする。つまり、スクリプトツール１２は、バッチマネージャ１１への処理要求として「グループＡの実行ファイルＡを実行」、「グループＡの実行ファイルＢを実行」などを通知する。
【００２５】
バッチマネージャ１１が上記の処理要求を受けると、それぞれの処理要求の内容に基づいて、バッチ起動処理部１５が負荷分散装置８を介してＡＰサーバ２へ処理の実行指示をする。そして、この実行指示を受けたＡＰサーバ２では、実行指示に係る実行ファイル２１などが、それぞれ所定の処理を実行する。
【００２６】
なお、バッチ起動処理部１５がＡＰサーバ２へ処理の実行指示をするときは、変換テーブル１６を参照してスクリプトツール１２からの処理要求に含まれているＡＰサーバグループ名をネットワーク論理名１６２に変換した実行指示を、負荷分散装置８へ送信する。
【００２７】
これにより、ジョブスケジュールに基づいてバッチ処理を行うシステムを実現することができる。
【００２８】
さらに、従来は、ＪＡＶＡではバッチ処理の制御に使用できるスクリプトツールがなかった。このため、Ｕｎｉｘ環境で動作するバッチシステムの場合はシェルスクリプト、Ｗｉｎｄｏｗｓ環境で動作するバッチシステムの場合はＷｉｎｄｏｗｓスクリプトで記述しなければならなかったが、スクリプトツールとしてａｎｔを用いることにより、マルチプラットフォームのＪＡＶＡ環境でスクリプトツールを利用することにより、本システムはＵｎｉｘマシンおよびＷｉｎｄｏｗｓマシンのいずれでも動作することができるようになった。
【００２９】
この結果、さらに、運用環境にＵｎｉｘマシンを使用し、開発環境は比較的安価なＷｉｎｄｏｗｓマシンを利用した場合でも、実行ファイルのみならずスクリプトまでまったく同一のものを利用できるようになり、開発効率が向上する。そればかりか、ａｎｔをサポートするテストツールが多数あるので、開発プロセス全体の効率化につながる。
【００３０】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【００３１】
例えば、上述したバッチサーバ、ＡＰサーバ及び運用監視サーバは、それら３つを纏めて一つのコンピュータマシンで集中的に実現することもできるし、それぞれ一つのコンピュータマシンに分けて実現することもできるし、それぞれ複数のコンピュータマシンで分散的に実現することもできる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係るバッチ処理システムの全体構成図である。
【図２】変換テーブルの一例を示す図である。
【図３】スクリプトファイルの一例を示す図である。
【図４】ジョブスケジュールの一例を示す図である。
【図５】本実施形態の処理概要を示すシーケンスチャートである。
【符号の説明】
【００３３】
１…バッチサーバ、２…ＡＰサーバ、３…運用監視サーバ、９…ネットワーク、１１…バッチマネージャ、１２…スクリプトツール、３１…ジョブスケジューラ。
【図１】
2005275522.tif 000003
【図２】
2005275522.tif 000004
【図３】
2005275522.tif 000005
【図４】
2005275522.tif 000006
【図５】
2005275522.tif 000007