JP5622049B2 - バッチ処理システム、及びバッチ処理方法 - Google Patents

バッチ処理システム、及びバッチ処理方法 Download PDF

Info

Publication number
JP5622049B2
JP5622049B2 JP2011054695A JP2011054695A JP5622049B2 JP 5622049 B2 JP5622049 B2 JP 5622049B2 JP 2011054695 A JP2011054695 A JP 2011054695A JP 2011054695 A JP2011054695 A JP 2011054695A JP 5622049 B2 JP5622049 B2 JP 5622049B2
Authority
JP
Japan
Prior art keywords
processing
batch
data
file
job step
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011054695A
Other languages
English (en)
Other versions
JP2012190355A (ja
Inventor
貴之 門脇
貴之 門脇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2011054695A priority Critical patent/JP5622049B2/ja
Publication of JP2012190355A publication Critical patent/JP2012190355A/ja
Application granted granted Critical
Publication of JP5622049B2 publication Critical patent/JP5622049B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Description

本発明は、バッチ処理システム、及びバッチ処理方法に関する。
近年、アプリケーションサーバでオンライン処理されるデータ量の増加とともに、バッチサーバでバッチ処理されるデータ量も増加している。そのため、バッチサーバが、アプリケーションサーバにおいてオンライン処理された一つ一つのバッチ処理対象データを逐次バッチ処理する場合、そのバッチ処理にかかる処理時間が増大してしまい、特に、バッチ処理が予め決められた時刻で開始され、且つ、予め決められた時刻までに終了する必要がある場合に問題となっている。
このような問題を解決するため、従来では、バッチ処理が予定時刻までに終了しないと予想される場合にバッチ処理の開始時刻を早めることで、終了予定時刻までにバッチ処理を完了する方法や、バッチ処理対象データを分割して並列実行することでバッチ処理の実行時間を短縮する方法が考えられていた。また、バッチ処理対象データの増加を予測し、システム導入段階で、バッチ処理で実施すべき処理をオンライン処理自体に組み込んで実装するように設計することも考えられる。
なお、従来のオンライン処理とバッチ処理の連携システムの例としては、特許文献1等に開示されている。例えば、特許文献1は、アプリケーションサーバにてバッチ対象データが確定していない状態であっても、バッチ処理対象データが発生した時点で該データをロット化して、バッチサーバにおいてバッチ処理を開始するものであり、いわゆるバッチ処理の開始時刻を早めるシステムが開示されている。
特開2008−97476号公報 特開2005−71171号公報 特開2007−249491号公報
しかしながら、従来の上述したバッチ処理方法では、種々の問題点が存在する。例えば、バッチ処理の開始時刻を早めることで、終了予定時刻までにバッチ処理を完了する方法では、バッチ処理の開始時刻の直前までオンライン処理が実行される場合などのバッチ処理の開始時刻を早くすることができないケースでは、バッチ処理を終了予定時刻までに終了させることはできない。また、バッチ処理対象データを分割して並列実行する方法では、バッチ処理を並列に実行するためのマシンリソースを確保する必要があるため、バッチサーバのマシン増設等のコストがかかってしまう。さらに、バッチ処理対象データの増加を予測し、システム導入段階で、バッチ処理で実施すべき処理をオンライン処理自体に組み込んで実装するように設計する場合、既存のバッチ処理等の定義の変更にかかる開発コストが増大するとともに、予測したとおりにバッチ処理対象データが増加しなかったとき、そのバッチ処理等の定義の変更の作りこみが無駄になってしまい、また、システムの運用開始後に新たなバッチ処理を適用する場合に、オンライン処理自体の修正も必要になってしまう。
そこで、本発明は、かかる事情に鑑みてなされたものであり、バッチサーバの増設やバッチ処理の定義を変更せずに、バッチサーバにおけるバッチ処理の実行時間を短縮することができる新しいバッチ処理システム等を提供することを目的とする。
本発明にかかるバッチ処理システムは、複数のアプリケーションサーバ、及びバッチサーバを備えるバッチ処理システムであって、アプリケーションサーバそれぞれは、クライアント端末からのアクセスを受け付けてオンライン処理を実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付けるオンラインアプリケーション部と、オンライン処理で得られたデータを入力データとしてキューに格納する入力データ処理部と、キューに格納された入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する先行処理部と、を含み、バッチサーバは、複数のアプリケーションサーバの各先行処理データファイルを収集してマージするマージ処理部と、該マージされた先行処理データファイルに基づいて、先行処理データを順次読み込み、バッチ処理として構成されたジョブステップのうち第1ジョブステップを除いた第2ジョブステップの処理を実行するバッチ処理部と、を含む。
本発明にかかるバッチ処理方法は、複数のアプリケーションサーバ、及びバッチサーバを備えるシステムのバッチ処理方法であって、アプリケーションサーバが、クライアント端末からのアクセスを受け付けて、オンライン処理を実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付ける段階と、アプリケーションサーバが、オンライン処理で得られたデータを入力データとしてキューに格納する段階と、アプリケーションサーバが、キューに格納された入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する段階と、バッチサーバが、複数のアプリケーションサーバの各先行処理データファイルを収集してマージする段階と、バッチサーバが、マージ処理された先行処理データファイルに基づいて、先行処理データを順次読み込み、バッチ処理として構成されたジョブステップのうち第1ジョブステップを除いた第2ジョブステップの処理を実行する段階と、を含む。
以上のように構成された本発明のバッチ処理システム等によれば、バッチ処理を構成する一部のジョブステップの処理をアプリケーションサーバに先行処理させることで、バッチサーバにおけるバッチ処理の実行時間を短縮することができる。また、システムの運用開始後であっても、大容量データに対応したバッチ処理システムとして容易に構成変更することができる。さらに、バッチサーバの追加や増強をせずに、また、既存のバッチ処理の定義を変更することなく、アプリケーションサーバをスケールアウトするだけでシステムにおけるバッチ処理の処理能力を拡張することができる。
第1実施形態のシステムの概略構成の一例を示す図である。 第1実施形態のクライアント端末やアプリケーションサーバ等のハードウェア構成例を示す概略図である。 第1実施形態の先行処理部の概略構成の一例を示す図である。 第1実施形態の先行処理データファイルの構成の一例を示す図である。 第1実施形態のバッチ処理方法の処理内容を示すフローチャートである。 第1実施形態のバッチ処理方法の処理内容を示すフローチャートである。 第1実施形態のオンライン処理・バッチ処理で扱うデータの具体的な内容を例示した図である。 第1実施形態の先行処理データファイルの具体的な内容を例示した図である。 従来のバッチ処理システムの概略構成の一例を示す図である。 第1実施形態のシステムと従来のシステムの動作フローを例示した図である。 第2実施形態のバッチ処理システムの概略構成の一例を示す図である。 第3実施形態のバッチ処理システムの概略構成の一例を示す図である。 第3実施形態のオンライン処理・バッチ処理で扱うデータの具体的な内容を例示した図である。 第3実施形態の先行処理データファイルの具体的な内容を例示した図である。 第4実施形態のバッチ処理システムの概略構成の一例を示す図である。
以下、本発明を実施するための好適な各実施形態を、図面を参照しながら説明する。
<第1実施形態>
図1は、本発明の第1実施形態のシステム1の概略構成の一例を示す図である。なお、本実施形態のシステム1は、オンライン処理中に発生した入力データに対して所定の処理を行い、該処理の結果を出力データとして所定のデータベースに記録処理するといった一連の処理(ジョブステップ)を含むバッチ処理を実行する場合を例にとって説明する。
システム1は、図1に示すとおり、複数のクライアント端末10と、複数のアプリケーションサーバ20a〜20zと、バッチサーバ30と、時刻サーバ40と、バッチ処理用の入力データ(処理対象データ)を格納する入力データベース50と、バッチ処理後の出力データを格納する出力データベース60と、を含んで構成され、これらは必要に応じて通信ネットワークを介して相互に通信可能に接続されている。なお、クライアント端末10、複数のアプリケーションサーバ20a〜20z、バッチサーバ30、及び時刻サーバ40は、ハードウェアとして、図2に示すように、例えば、CPU、CPUにバス結合されたROM、RAM、記憶部、入力部、表示部、および入出力インタフェースなど、通常のコンピュータ装置と同様のハードウェアを備える。また、これらの各サーバや端末は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであってもよい。たとえば、一般的な構成の情報処理装置において、本発明のバッチ処理方法における各処理を規定したソフトウェアを起動することにより、アプリケーションサーバやバッチサーバを実現することもできる。
クライアント端末10は、アプリケーションサーバ20a〜20zにアクセスし、アプリケーションのオンライン処理中に発生する入力データの作成、更新、又は削除を操作する端末である。なお、クライアント端末10の構成および機能は、原則として、従来のアプリケーションサーバにアクセスし、オンラインアプリケーション(オンライン処理で実行するアプリケーション)を利用可能なクライアント端末と同様の構成および機能とすることができる。また、クライアント端末10の数は、本実施形態では特に制限されず、少なくとも1つ以上あればよい。
アプリケーションサーバ20a〜20zは、それぞれオンライン処理を実行するサーバである。なお、アプリケーションサーバ20a〜20zは、それぞれの構成を共通とすることができるので、以下では、アプリケーションサーバ20aを例にとってその構成を説明する。
アプリケーションサーバ20aは、オンラインアプリケーション部21、入力データ処理部22、キュー部23、及び先行処理部24を含んで構成される。
オンラインアプリケーション部21は、ネットワークを通じてクライアント端末10からのアクセスを受け付けて、オンライン処理を実行する。また、オンラインアプリケーション部21は、オンライン処理中にクライアント端末10からの入力操作を受け付ける。クライアント端末からの入力操作は、データの作成、更新、及び削除のいずれかの入力操作であり得る。すなわち、オンラインアプリケーション部21は、オンライン処理においてクライアント端末10から入力されたデータの作成処理、更新処理、及び削除処理のいずれかの処理をハンドリングすることができる。
入力データ処理部(入力データハンドラ)22は、オンライン処理で得られたデータを入力データとしてキュー部23に格納する。また、入力データ処理部22は、入力データとともに、該入力データに対応する前記入力操作の種類もキュー部23に格納することができる。なお、この入力データは、バッチ処理を行うバッチ処理対象データである。
キュー部(キュー)23は、入力データ(バッチ処理対象データ)ごとに、入力データ及び該入力データの処理内容(例えば、作成、更新、又は削除)を順次格納する。なお、キュー部23は、非同期キューであることが望ましい。
先行処理部24は、図3に示すように、データ取得部(キューデータ取得部)241、データ処理部(データ加工処理部)242、及びファイルデータ記録部(ファイルデータ書込み部)243で構成され、データ取得部241がキュー部23に格納された入力データを順次取得し、データ処理部242が、該取得した入力データごとに、バッチサーバ30においてバッチ処理として構成されたジョブステップのうち自アプリケーションサーバ20aで先行処理可能な第1ジョブステップの処理を実行し、ファイルデータ記録部243が、該実行した結果(先行処理データ)を先行処理データファイルに記録する。なお、第1ジョブステップは、例えば、バッチ処理として定義されるジョブステップのうちトランザクショナル処理を行わないジョブステップである。
ここで、先行処理データファイルは、例えば、図4に示すように、入力データの作成処理を記録する作成ファイル(INSERTファイル)と、入力データの更新処理を記録する更新ファイル(UPDATEファイル)と、入力データの削除処理を記録する削除ファイル(DELETEファイル)と、作成ファイル、更新ファイル及び削除ファイルのいずれかのファイルが記録された場合に該記録内容を記録するインデックスファイル(INDEXファイル)とを含んで構成することができる。このように先行処理データファイルが構成される場合、先行処理部24は、先行処理データファイルに記録する際に、オンライン処理中に発生した入力データの処理内容(作成処理、更新処理、又は削除処理)に応じて、先行処理データの記録先を振り分けて記録し、且つ、先行処理データファイルが更新されたことをインデックスファイルに記録する。なお、先行処理データファイルは、上述のものに限られず、アプリケーションサーバにおいてオンライン処理中に発生した入力データやその処理内容に応じて、適宜変更することができる。
バッチサーバ30は、マージ処理部31と、バッチ処理部32とを含んで構成される。
マージ処理部31は、複数のアプリケーションサーバ20a〜20zの各先行処理データファイルを収集してマージする。
バッチ処理部32は、マージ処理された先行処理データファイル(マージファイル)に基づいて、バッチ処理として構成されたジョブステップのうち第1ジョブステップを除いた第2ジョブステップの処理を実行する。バッチ処理部32は、第2ジョブステップの処理された結果(出力データ)を出力データベース60に記憶する。なお、第2ジョブステップは、例えば、第1ジョブステップとは異なり、バッチ処理として定義されるジョブステップのうちトランザクショナル処理を行うジョブステップである。
ここで、先行処理データファイルが、例えば、図4に示すような先行処理データファイルで構成される場合、マージ処理部31は、複数のアプリケーションサーバ20a〜20zの各先行処理データファイルを収集し、該各先行処理データファイルに含まれる各インデックスファイルの記録内容をマージする。そして、バッチ処理部32は、マージされたインデックスファイル(インデックスマージファイル)の記録内容に従って、該当する先行処理データを作成ファイル、更新ファイル及び削除ファイルのいずれかのファイルを順次読み込み、第2ジョブステップの処理を実行する。
時刻サーバ40は、各アプリケーションサーバ20a〜20zの時刻を同期するためのサーバである。なお、時刻サーバ40の構成および機能は、原則として、従来の複数のアプリケーションサーバの時刻を同期する一般的な時刻サーバと同様の構成および機能とすることができる。
入力データベース50は、各アプリケーションサーバ20a〜20zでオンライン処理中に発生したバッチ処理用の入力データ(バッチ処理対象データ)を格納するデータベースである。なお、入力データベース50は、省略することもできる。
出力データベース60は、バッチサーバ30においてバッチ処理されて出力された出力データを記憶するデータベースである。
以下、図5及び図6に示すフローチャートを参照して、本実施形態のバッチ処理方法を説明する。なお、以下の説明では、各アプリケーションサーバ20a,20bにおいてオンライン処理で実行するアプリケーションとして、例えば、図7に示すように、支店ごとの勤務管理テーブルにクライアント端末から入力データ(社員ID、就業開始時刻、就業終了時刻)を作成・更新・削除することができるものを例にとって説明する。また、上述の第1ジョブステップの処理として、入力データ(社員ID、就業開始時刻、及び就業終了時刻)を受け取り、これらから作業時間の計算処理を行い、該作業時間の計算結果等を先行処理データ(社員ID、日付、作業時間)として出力するものとする。さらに、上述の第2ジョブステップの処理として、各アプリケーションサーバ20a,20bで生成された先行処理データに記載されているデータを出力データとして本社勤務管理テーブル(出力データベース)に記録するものとする。
まず、図5を参照して、アプリケーションサーバ20aにおける動作処理を例にとって説明するが、アプリケーションサーバ20bもアプリケーションサーバ20aと同様に動作処理することができる。なお、図5のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
アプリケーションサーバ20aは、クライアント端末10からのアクセスを受け付けて、オンライン処理を実行する(ステップS100)。
次いで、アプリケーションサーバ20aは、オンライン処理においてクライアント端末10から入力された入力データの各処理(作成処理、更新処理、及び削除処理の少なくとも1つの処理)をハンドリングする(ステップS101)。例えば、図7に示すように、アプリケーションサーバ20aはA支店の勤務管理テーブルを管理し、アプリケーションサーバ20bはB支店の勤務管理テーブルを管理するものとすると、アプリケーションサーバ20aは、A支店の勤務管理テーブルに対して、クライアント端末10から入力された入力データ〔社員ID(00001)、開始時刻(2010年2月1日8:30)、及び終了時刻(2010年2月1日17:15)〕の作成処理をハンドリングする。
入力データの処理の完了を検知すると(ステップS102:Yes)、アプリケーションサーバ20aは、該入力データをキュー部23に格納する(ステップS103)。
一方、入力データの処理の完了を検知しない場合(ステップS102:No)、アプリケーションサーバ20aは、検知するまで待機する。なお、検知せずに、本処理フローを終了してもよい。
次いで、アプリケーションサーバ20aは、キュー部23に格納された入力データを順次取得する(ステップS104)。例えば、図7に示すように、アプリケーションサーバ20aでは、社員ID(00001)等の情報、社員ID(00003)等の入力データを順次取得する。
アプリケーションサーバ20aは、バッチサーバ30においてバッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行する(ステップS105)。例えば、図7に示すように、アプリケーションサーバ20aでは、社員ID(00001)の就業開始時刻(8:30)及び就業終了時刻(17:15)の情報から、作業時間の計算処理を行い、計算処理された結果(7.75h)は先行処理データとして扱われる。
アプリケーションサーバ20aは、入力データの処理内容が作成処理であれば(ステップS106:Yes)、該処理された入力データ(先行処理データ)を先行処理データファイルの作成ファイルに記録する(ステップS107)。例えば、図8に示すように、図7に示す社員ID(00001)に関する先行処理データは作成ファイルに記録される。
アプリケーションサーバ20aは、入力データの処理内容が更新処理であれば(ステップS108:Yes)、先行処理データを先行処理データファイルの更新ファイルに記録する(ステップS109)。
アプリケーションサーバ20aは、入力データの処理内容が、削除処理であれば(ステップS110:Yes)、先行処理データを先行処理データファイルの削除ファイルに記録する(ステップS111)。
アプリケーションサーバ20aは、ステップS107、ステップS109、ステップS111の各処理後、先行処理データファイルのインデックスファイルに記録内容が更新されたことを記録する(ステップS112)。例えば、図8に示すように、インデックスファイルにおいて、社員IDおよび日付情報をレコード特定キーとして、対象ファイル名、更新時刻が記録される。
次に、図6を参照して、バッチサーバ30における動作処理を説明する。なお、図6のフローチャートで示される各処理は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
バッチサーバ30は、複数のアプリケーションサーバ20a,20bの各先行処理データファイルa,bを収集し、該各先行処理データファイルa,bに含まれる各インデックスファイルの記録内容をマージする(ステップS200)。例えば、図8に示すように、各インデックスファイルの記録内容をマージして、マージファイル(先行処理データINDEXマージファイル)を作成する。
バッチサーバ30は、マージ処理された先行処理データファイル(マージファイル)に基づいて、バッチ処理として構成されたジョブステップのうち第1ジョブステップを除いた第2ジョブステップの処理を実行する(ステップS201)。すなわち、マージファイルから一つ一つのレコード特定キーに対応する対象ファイル(例えば、作成ファイル等)を読み込み、図8に示すように、該対象ファイルの内容を出力データとして本社勤務管理データベース(出力データベース)に記録する。
以上のように、本実施形態によれば、バッチ処理を構成する一部のジョブステップの処理をアプリケーションサーバに先行処理させることで、バッチサーバにおけるバッチ処理の実行時間を短縮することができる。
ここで、具体的に、本実施形態のシステムと従来のシステムとの相違について図9及び図10を用いて説明する。従来のオンライン処理とバッチ処理を行う連携システムは、図9に示すように構成されており、その動作フローは、例えば、図10(a)に示すように、オンライン処理として、アプリケーションサーバでオンライン処理Aされた各入力データ(A1〜A4)を一旦バッチ入力データベース(オンライン入出力データベース)に格納する。次いで、バッチサーバにおいて、バッチ処理としてバッチ入力データベースから各入力データ(A1〜A4)を取り出して第1ジョブステップJ1の処理(処理S1)を実行し、該第1ジョブステップの処理をしたデータ(A1'〜 A4')を中間処理データファイルに書き出し、第1ジョブステップの処理の完了後、第2ジョブステップJ2の処理(処理S2)を実行し、中間処理データファイルに記載されている内容を出力データとして出力する。
一方、本実施形態のシステムは、図10(b)に示すように、アプリケーションサーバでオンライン処理Aされた各入力データ(A1〜A4)を入力として第1ジョブステップJ1の処理を先行処理し、該処理したデータ(A1'〜 A4')を先行処理データファイルに記録し、該先行処理データファイルをマージ処理した後、第2ジョブステップJ2の処理(処理S2)を実行している。よって、本実施形態のシステムによれば、バッチサーバでのバッチ処理にかかる実行時間を短縮することができる。特に、バッチ処理すべきバッチ処理対象データが増大しても、バッチサーバ自体にかかる実行時間は、先行処理データファイルをマージするのに要する時間と、先行処理データを出力データとして出力するのに要する時間とで、バッチサーバにおける実行時間を略同一にすることができ、バッチ処理が予め決められた時刻で開始され、且つ、予め決められた時刻までに終了する必要がある場合に有効である。
また、従来のシステムとして上述した特許文献1のシステムの処理方法は、アプリケーションサーバにてバッチ対象データが確定していない状態であっても、バッチ処理対象データが発生した時点で該データをロット化してバッチ処理を先行して処理する場合、バッチ処理対象データの変更があるたびに逐一中間結果のデータをバッチ処理によって更新するものであったが、このような方法では、オンライン処理で扱うデータが増加することで、バッチ対象データの更新が並列処理され、該並列処理が頻繁に発生すると、そのたびに中間結果を更新しなければならず、バッチサーバ上での先行処理が追いつかなくなってしまう。しかし、本実施形態のシステムによれば、バッチ処理対象データを1件ずつ扱うようなジョブステップに限定し、該ジョブステップの先行処理を複数のアプリケーションサーバ上で分散・並列実行することで、1件の先行処理が他の先行処理に影響を与えることなく処理可能にし、オンライン処理を実行するアプリケーションサーバ側のスケールアウトによって得られるマシンリソースを活用しながら、小規模なバッチサーバであっても大容量データに対応可能にすることができる。
よって、本実施形態によれば、システムの運用開始後であっても、大容量データに対応したバッチ処理システムとして容易に構成変更することができる。さらに、バッチサーバの追加や増強を変更せずに、また、既存のバッチ処理の定義を変更することなく、アプリケーションサーバをスケールアウトするだけでシステムにおけるバッチ処理の処理能力を拡張することができる。
さらに、本実施形態では、バッチサーバにおいて上記各インデックスファイルを用いてマージし、マージされたインデックスファイルの記録内容に基づいて、前記先行処理データを順次読み込みことで、マージにかかる時間を短縮できる。
<第2実施形態>
図11は、第2実施形態のシステム2の概略構成の一例を示す図である。第2実施形態のシステム2は、第1実施形態のシステム1のシステム構成に加え、更に、各アプリケーションサーバ20a〜20zに対して上記第1ジョブステップの処理を分配するジョブステップ分配装置70を備えることを特徴とする。なお、以下では、第2実施形態のシステム2において、上記第1実施形態のシステム1と同様にできる構成及び機能については、その説明を省略する。
ジョブステップ分配装置70は、図11に示すように、ジョブステップ解析部71、ジョブステップ抽出部72、アプリケーション特定部73、ジョブステップ配置部74、及びジョブステップ組み換え部75を含んで構成される。
ジョブステップ解析部(解析部)71は、バッチサーバ30にアクセスし、バッチ処理として構成されたジョブステップを解析する。具体的には、ジョブステップ解析部71は、バッチ処理として定義されている上述した第1ジョブステップ及び第2ジョブステップのうち、トランザクション処理を行わない第1ジョブステップの有無を解析する。なお、ジョブステップ解析部71は、例えば、バッチ処理として実行を完了すべき時刻が設定されており、バッチ処理の開始時刻等によってバッチジョブが指定した時間までに終わらないと判断した場合に、上記解析を行うようにすることもできる。
ジョブステップ抽出部(抽出部)72は、上記解析した結果、アプリケーションサーバ20a〜20zで先行処理可能な第1ジョブステップがある場合、該第1ジョブステップを抽出する。具体的には、第1ジョブステップの処理内容の情報(プログラム)を抽出する。
アプリケーション特定部(オンラインアプリケーション解析部)73は、アプリケーションサーバ20a〜20zにアクセスし、第1ジョブステップの処理対象となる入力データを扱うアプリケーション(オンラインアプリケーション)を特定する。
ジョブステップ配置部(配置部)74は、上記ジョブステップ抽出部72で抽出された第1ジョブステップの処理を上記アプリケーション特定部73で特定されたオンラインアプリケーションを実行するアプリケーションサーバ20a〜20zに配置する。具体的には、特定されたオンラインアプリケーションの入力データ操作部分へ第1ジョブステップの処理を非同期で実行するよう、ハンドラを組み込む。
ジョブステップ組み換え部75は、ジョブステップ解析部71によるジョブステップ解析結果に基づいてジョブステップの処理を組み替え、マージ処理部31においてマージするジョブステップの処理内容を決定する。
以上のように構成される第2実施形態のシステム2によれば、バッチ処理として定義されたジョブステップの処理内容に応じて、自動的にアプリケーションサーバ20a〜20zにその処理を振り分けることができる。
また、アプリケーション特定部73を有することで、第1ジョブステップの処理対象となる入力データを扱うオンラインアプリケーションが実行されるアプリケーションサーバのみに上記ジョブステップを配置することができるため、効率性を高めたシステムを提供することができる。
<第3実施形態>
図12は、第3実施形態のシステム3の概略構成の一例を示す図である。本実施形態のシステム3は、各アプリケーションサーバ20a〜20zにおいてオンライン処理として、例えば、図13に示すように、発注処理用のオンライン処理から入力される発注テーブルの表から、商品マスタテーブルに記録されている発注先のデータを特定し、バッチ処理として、該特定したデータ(発注先、発注元、商品コード、個数)を集計するジョブステップの処理、及び該集計結果等を基に発注先ごとに発注明細を送付するジョブステップの処理を含むものを例にとって説明する。なお、第3実施形態のシステム3は、第1実施形態のシステム1の入力データ処理部(入力データハンドラ)22の代わりに、入力データ処理部(差分データハンドラ)22'を備えることを特徴とする。なお、以下では、第3実施形態のシステム3において、上記第1実施形態のシステム1と同様にできる構成及び機能については、その説明を省略する。
入力データ処理部(差分データハンドラ)22'は、上記の集計処理、すなわち、N個のデータからM個のデータを作成するようなジョブステップの処理を行う場合、オンライン処理からの入力データの操作によって発生するデータの差分を取得して差分データを生成し、該差分データをキュー部23に格納する。
先行処理部24'は、差分データに基づいて集計が反映された先行処理データを先行処理データファイルに記録する。本実施形態の先行処理データファイルは、例えば、図14に示すように、集計ファイルと、該集計ファイルが記録された場合に該記録内容を記録するインデックスファイル(INDEXファイル)とで構成することができる。
マージ処理部(先行処理データマージ処理部)32'は、複数のアプリケーションサーバ20a〜20zの各先行処理データファイルを収集して、再度集計処理を行って先行処理データをマージする。
以上のように構成される第3実施形態のシステム3によれば、先行処理データが部分的に集計したデータとなるため、バッチサーバにて一度に全ての集計を行う従来のバッチ処理方法よりも、短い時間で集計を行うことができる。すなわち、バッチサーバにおけるバッチ処理の実行時間を短縮することができる。
<第4実施形態>
図15は、第4実施形態のシステム4の概略構成の一例を示す図である。第4実施形態のシステム4は、第1実施形態のシステム1のシステム構成に加え、更に、先行処理データの書き込み先として、更に、共有メモリ80を備えることを特徴とする。なお、以下では、第4実施形態のシステム4において、上記第1実施形態のシステム1と同様にできる構成及び機能については、その説明を省略する。
共有メモリ(分散共有メモリ)80は、複数のアプリケーションサーバ20a〜20zにより出力される各先行処理データを格納するメモリである。
マージ処理部31''は、複数のアプリケーションサーバ20a〜20zの各先行処理データを共有メモリ80から収集してマージ処理する。
以上のように構成される第4実施形態のシステム4によれば、共有メモリ80を備えることで、マージ処理時のオーバーヘッドを軽減することができる。
<変形例>
以上のように本発明の好適な実施形態について説明したが、本発明は、以上の実施形態に限定されるべきものではなく、特許請求の範囲に表現された思想および範囲を逸脱することなく、種々の変形、追加、および省略が当業者によって可能である。
たとえば、上記実施形態において、アプリケーションサーバ20及びバッチサーバ30には、用途に応じた各部が備えられているが、これらに備えられている各部は、そのいくつかを一纏めにして構成されていてもよいし、一つの部をさらに複数の部に分割して構成されていてもよい。
さらに、上記実施形態では、アプリケーションサーバ20において、それぞれの処理機能を有する各部が備えられている構成を説明したが、本発明はこれに限られず、各部がアプリケーションサーバ20と通信可能に接続されたネットワーク上に又は他の装置に備えて構成することもできる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)複数のアプリケーションサーバ、及びバッチサーバを備えるバッチ処理システムであって、前記アプリケーションサーバそれぞれは、クライアント端末からのアクセスを受け付けてオンライン処理でアプリケーションを実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付けるオンラインアプリケーション部と、前記オンライン処理で得られたデータを入力データとしてキューに格納する入力データ処理部と、前記キューに格納された前記入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する先行処理部と、を含み、前記バッチサーバは、前記複数のアプリケーションサーバの各先行処理データファイルを収集してマージするマージ処理部と、前記マージされた先行処理データファイルに基づいて、前記先行処理データを順次読み込み、前記バッチ処理として構成されたジョブステップのうち前記第1ジョブステップを除いた第2ジョブステップの処理を実行するバッチ処理部と、を含むバッチ処理システム。
(付記2)前記クライアント端末からの入力操作は、データの作成、更新、及び削除のいずれかの入力操作であり、前記入力データ処理部は、前記入力データ、及び該入力データに対応する前記入力操作の種類をキューに格納する、付記1に記載のバッチ処理システム。
(付記3)前記先行処理データファイルは、前記入力データの作成処理を記録する作成ファイルと、前記入力データの更新処理を記録する更新ファイルと、前記入力データの削除処理を記録する削除ファイルと、前記作成ファイル、前記更新ファイル及び前記削除ファイルのいずれかのファイルが記録された場合に該記録内容を記録するインデックスファイルとで構成され、前記マージ処理部は、前記複数のアプリケーションサーバの各先行処理データファイルを収集し、該各先行処理データファイルに含まれる各インデックスファイルの記録内容をマージし、前記バッチ処理部は、前記マージされたインデックスファイルの記録内容に基づいて、前記先行処理データを順次読み込み、前記第2ジョブステップの処理を実行する、付記2に記載のバッチ処理システム。
(付記4)前記バッチサーバにアクセスし、前記バッチ処理として構成されたジョブステップを解析する解析部、該解析した結果、前記アプリケーションサーバで先行処理可能な第1ジョブステップを抽出する抽出部、及び該抽出された前記第1ジョブステップの処理を前記アプリケーションサーバに配置する配置部を含むジョブステップ分配装置を更に備える、付記1〜付記3のいずれか1項に記載のバッチ処理システム。
(付記5)前記ジョブステップ分配装置は、前記アプリケーションサーバにアクセスし、前記第1ジョブステップの処理対象となる入力データを扱うアプリケーションを特定するアプリケーション特定部を更に含む、付記4に記載のバッチ処理システム。
(付記6)前記複数のアプリケーションサーバにより出力される前記先行処理データを格納する共有メモリを更に備え、前記マージ処理部は、前記複数のアプリケーションサーバの各先行処理データを前記共有メモリから収集してマージ処理する、付記1〜付記5のいずれか1項に記載のバッチ処理システム。
(付記7)複数のアプリケーションサーバ、及びバッチサーバを備えるシステムのバッチ処理方法であって、前記アプリケーションサーバが、クライアント端末からのアクセスを受け付けて、オンライン処理でアプリケーションを実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付ける段階と、前記アプリケーションサーバが、前記オンライン処理で得られたデータを入力データとしてキューに格納する段階と、前記アプリケーションサーバが、前記キューに格納された前記入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する段階と、前記バッチサーバが、前記複数のアプリケーションサーバの各先行処理データファイルを収集してマージする段階と、前記バッチサーバが、前記マージ処理された先行処理データファイルに基づいて、前記先行処理データを順次読み込み、前記バッチ処理として構成されたジョブステップのうち前記第1ジョブステップを除いた第2ジョブステップの処理を実行する段階と、を含むバッチ処理方法。
1…システム、10…クライアント端末、20…アプリケーションサーバ、21…オンラインアプリケーション部、22…入力データ処理部(入力データハンドラ)、23…キュー部、24…先行処理部、241…データ取得部、242…データ処理部、243…ファイルデータ記録部、30…バッチサーバ、31…マージ処理部、32…バッチ処理部、40…時刻サーバ、50…入力データベース、60…出力データベース。

Claims (7)

  1. 複数のアプリケーションサーバ、及びバッチサーバを備えるバッチ処理システムであって、
    前記アプリケーションサーバそれぞれは、
    クライアント端末からのアクセスを受け付けてオンライン処理を実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付けるオンラインアプリケーション部と、
    前記オンライン処理で得られたデータを入力データとしてキューに格納する入力データ処理部と、
    前記キューに格納された前記入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する先行処理部と、を含み、
    前記バッチサーバは、
    前記複数のアプリケーションサーバの各先行処理データファイルを収集してマージするマージ処理部と、
    前記マージされた先行処理データファイルに基づいて、前記先行処理データを順次読み込み、前記バッチ処理として構成されたジョブステップのうち前記第1ジョブステップを除いた第2ジョブステップの処理を実行するバッチ処理部と、を含むバッチ処理システム。
  2. 前記クライアント端末からの入力操作は、データの作成、更新、及び削除のいずれかの入力操作であり、
    前記入力データ処理部は、前記入力データ、及び該入力データに対応する前記入力操作の種類をキューに格納する、請求項1に記載のバッチ処理システム。
  3. 前記先行処理データファイルは、前記入力データの作成処理を記録する作成ファイルと、前記入力データの更新処理を記録する更新ファイルと、前記入力データの削除処理を記録する削除ファイルと、前記作成ファイル、前記更新ファイル及び前記削除ファイルのいずれかのファイルが記録された場合に該記録内容を記録するインデックスファイルとで構成され、
    前記マージ処理部は、前記複数のアプリケーションサーバの各先行処理データファイルを収集し、該各先行処理データファイルに含まれる各インデックスファイルの記録内容をマージし、
    前記バッチ処理部は、前記マージされたインデックスファイルの記録内容に基づいて、前記先行処理データを順次読み込み、前記第2ジョブステップの処理を実行する、請求項2に記載のバッチ処理システム。
  4. 前記バッチサーバにアクセスし、前記バッチ処理として構成されたジョブステップを解析する解析部、該解析した結果、前記アプリケーションサーバで先行処理可能な第1ジョブステップを抽出する抽出部、及び該抽出された前記第1ジョブステップの処理を前記アプリケーションサーバに配置する配置部を含むジョブステップ分配装置を更に備える、請求項1〜請求項3のいずれか1項に記載のバッチ処理システム。
  5. 前記ジョブステップ分配装置は、
    前記複数のアプリケーションサーバにアクセスし、前記第1ジョブステップの処理対象となる入力データを扱うオンラインアプリケーションを特定するオンラインアプリケーション特定部を更に含む、請求項4に記載のバッチ処理システム。
  6. 前記複数のアプリケーションサーバにより出力される前記先行処理データを格納する共有メモリを更に備え、
    前記マージ処理部は、前記複数のアプリケーションサーバの各先行処理データを前記共有メモリから収集してマージ処理する、請求項1〜請求項5のいずれか1項に記載のバッチ処理システム。
  7. 複数のアプリケーションサーバ、及びバッチサーバを備えるシステムのバッチ処理方法であって、
    前記アプリケーションサーバが、クライアント端末からのアクセスを受け付けてオンライン処理を実行し、該オンライン処理において前記クライアント端末からの入力操作を受け付ける段階と、
    前記アプリケーションサーバが、前記オンライン処理で得られたデータを入力データとしてキューに格納する段階と、
    前記アプリケーションサーバが、前記キューに格納された前記入力データを順次取得し、該取得した入力データごとに、バッチ処理として構成されたジョブステップのうち自アプリケーションサーバで先行処理可能な第1ジョブステップの処理を実行し、該実行して得られた先行処理データを先行処理データファイルに記録する段階と、
    前記バッチサーバが、前記複数のアプリケーションサーバの各先行処理データファイルを収集してマージする段階と、
    前記バッチサーバが、前記マージ処理された先行処理データファイルに基づいて、前記先行処理データを順次読み込み、前記バッチ処理として構成されたジョブステップのうち前記第1ジョブステップを除いた第2ジョブステップの処理を実行する段階と、を含むバッチ処理方法。
JP2011054695A 2011-03-11 2011-03-11 バッチ処理システム、及びバッチ処理方法 Expired - Fee Related JP5622049B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011054695A JP5622049B2 (ja) 2011-03-11 2011-03-11 バッチ処理システム、及びバッチ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011054695A JP5622049B2 (ja) 2011-03-11 2011-03-11 バッチ処理システム、及びバッチ処理方法

Publications (2)

Publication Number Publication Date
JP2012190355A JP2012190355A (ja) 2012-10-04
JP5622049B2 true JP5622049B2 (ja) 2014-11-12

Family

ID=47083408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011054695A Expired - Fee Related JP5622049B2 (ja) 2011-03-11 2011-03-11 バッチ処理システム、及びバッチ処理方法

Country Status (1)

Country Link
JP (1) JP5622049B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092686B (zh) * 2012-12-24 2018-07-03 广东欧珀移动通信有限公司 基于移动终端的多项操作批处理的方法及其移动终端
JP6303626B2 (ja) * 2014-03-07 2018-04-04 富士通株式会社 処理プログラム、処理装置および処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844670A (ja) * 1994-07-29 1996-02-16 Hitachi Ltd ファイル管理方法およびそれを用いた計算機システムならびにその計算機システムの運用方法
JP2008097476A (ja) * 2006-10-16 2008-04-24 Hitachi Ltd 逐次処理方式のバッチシステム
US20090217272A1 (en) * 2008-02-26 2009-08-27 Vita Bortnikov Method and Computer Program Product for Batch Processing
JP5444900B2 (ja) * 2009-07-10 2014-03-19 日本電気株式会社 ジョブ実行管理システム、ジョブ実行管理方法、ジョブ実行管理プログラム

Also Published As

Publication number Publication date
JP2012190355A (ja) 2012-10-04

Similar Documents

Publication Publication Date Title
CN106802826B (zh) 一种基于线程池的业务处理方法及装置
US20220391763A1 (en) Machine learning service
CN109947789B (zh) 一种多数据库的数据处理的方法、装置、计算机设备及存储介质
KR101616967B1 (ko) 다수의 처리 명령어를 실시간으로 취급하고 처리하는 것과 관련된 개선
EP2191370B1 (en) Transaction aggregation to increase transaction processing throughput
US9747086B2 (en) Transmission point pattern extraction from executable code in message passing environments
CN107784026B (zh) 一种etl数据处理方法及装置
CN106528275A (zh) 数据任务的处理方法及任务调度器
JP5552449B2 (ja) データ分析及び機械学習処理装置及び方法及びプログラム
CN111240812B (zh) 任务执行方法及装置
US8132184B2 (en) Complex event processing (CEP) adapters for CEP systems for receiving objects from a source and outputing objects to a sink
JP6032680B2 (ja) 受信したデータごとに集計処理を行うシステム、方法およびプログラム
US10768981B2 (en) Dynamic time slicing for data-processing workflow
CN112035230B (zh) 一种任务调度文件生成方法、装置及存储介质
CN102129443A (zh) 基于usas主机的实时数据传输通道及其实时数据传输方法
JP5622049B2 (ja) バッチ処理システム、及びバッチ処理方法
JP6069503B2 (ja) 系列データ並列分析基盤およびその並列分散処理方法
CN112948096A (zh) 一种批量调度方法、装置和设备
CN111460021A (zh) 数据导出方法及装置
JP2003208323A (ja) バッチジョブの実行方法、システムおよびプログラム
JP4127273B2 (ja) 並列バッチ処理方式および方法ならびにサーバ装置およびそのプログラム
JP6157420B2 (ja) 業務処理システムおよび業務処理方法
JP2010224672A (ja) データ処理方法、システム、およびプログラム
JP4978715B2 (ja) 伝票多重処理方法、プログラム及び装置
JP2009098844A (ja) 工程管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140820

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140910

R150 Certificate of patent or registration of utility model

Ref document number: 5622049

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees