(57)【要約】【課題】  データの振り分け処理とＡＰ処理とを並列に実行する並列バッチ処理方式を提供する。【解決手段】  リーダースレッド２１は、振り分けスレッド２３１／２３２に入力データファイルの入力データの振り分けを要求する。振り分けスレッド２３１／２３２は入力データファイルの入力データを振り分けてデータキュー２５１／２５２に格納する。リーダースレッド２１は、振り分けデータ件数が最大処理件数を超えると、ＡＰ処理スレッド２４１／２４２にＡＰ処理を要求する。ＡＰ処理スレッド２４１／２４２はＡＰ処理を開始する。リーダースレッド２１は残りの入力データの振り分けを振り分けスレッド２３１／２３２に要求し、振り分けスレッド２３１／２３２は振り分けを行う。【選択図】      図１
2006259981.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式であって、
前記クライアント端末は、
入力データファイルに入力データを格納するデータ格納手段と、
前記サーバ装置に処理要求を行う処理要求手段とを含み、
前記サーバ装置は、
前記クライアント端末からの処理要求を受け付ける要求受付手段と、
前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段と、
前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段と、
前記振り分け手段と前記ＡＰ処理手段とを並列に実行する手段とを含む、
ことを特徴とする並列バッチ処理方式。
【請求項２】
サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式であって、
前記クライアント端末は、
入力データファイルに入力データを格納するデータ格納手段と、
前記サーバ装置に処理要求を行う処理要求手段とを含み、
前記サーバ装置は、
最大処理件数と最大振り分けスレッド数とを含む動作情報ファイルと、
前記入力データファイルを処理する内容の種類（処理種類）を登録している処理種類情報ファイルとを備え、
前記サーバ装置内での処理を並列に実行することができ、その並列実行の実行単位であるリーダースレッド，前記最大振り分けスレッド数と同数の振り分けスレッド，および前記処理種類と同数のＡＰ処理スレッドを含み、
前記リーダースレッドに、
前記クライアント端末からの処理要求を受け付ける要求受付手段と、
前記振り分けスレッドを起動する振り分けスレッド起動手段と、
前記入力データファイルと前記振り分けスレッドとを対応付ける手段と、
前記ＡＰ処理スレッドを起動するＡＰ処理スレッド起動手段と、
前記振り分けスレッドから通知される振り分けデータ件数を合計した値が前記最大処理件数を超えたとき、或いは振り分け手段から全ての入力データファイルの振り分けが終了したことが通知されたとき、前記ＡＰ処理スレッドに処理を要求する手段と、
前記振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき、振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける手段とを含み、
前記振り分けスレッドに、
前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段を含み、
前記ＡＰ処理スレッドに、
前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段を含む、
ことを特徴とする並列バッチ処理方式。
【請求項３】
前記サーバ装置は、
前記ＡＰ処理スレッドが参照するデータベースを前記ＡＰ処理スレッドに１対１に対応付けて備える、
ことを特徴とする請求項２記載の並列バッチ処理方式。
【請求項４】
サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方法であって、
前記クライアント端末は、
入力データファイルに入力データを格納し、
前記サーバ装置に処理要求を行い、
前記サーバ装置は、
前記クライアント端末からの処理要求を受け付け、
前記入力データファイルを参照して入力データをデータキューへ振り分け、
前記データキューから入力データを入力してＡＰ処理を行い、
前記入力データのデータキューへの振り分けと前記ＡＰ処理の実行を並列に行う、
ことを特徴とする並列バッチ処理方法。
【請求項５】
サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方法であって、
前記クライアント端末は、
入力データファイルに入力データを格納し、
前記サーバ装置のリーダースレッドに処理要求を行い、
前記リーダースレッドは、
前記クライアント端末からの処理要求を受け付け、
動作情報ファイルに登録されている最大振り分けスレッド数と同数の振り分けスレッドを起動し、
処理種類情報ファイルに登録されている入力データファイルの処理の種類と同数のＡＰ処理スレッドを起動し、
前記入力データファイルと前記振り分けスレッドとを対応付け、
前記振り分けスレッドに振り分け処理を要求し、
前記振り分けスレッドは、
前記入力データファイルを参照して入力データをデータキューへ振り分け、
振り分けたデータ件数を前記リーダースレッドに通知し、
前記リーダースレッドは、
前記振り分けスレッドから通知された振り分けデータ件数を合計した値が動作情報ファイルに登録されている最大処理件数を超えたとき前記ＡＰ処理スレッドに処理を要求し、
前記ＡＰ処理スレッドは、
前記データキューから入力データを入力してＡＰ処理を行い、
前記ＡＰ処理スレッドが行うＡＰ処理の実行と並列に、
前記リーダースレッドは、
前記振り分けスレッドに未処理の入力データファイルを対応付け、
前記振り分けスレッドに振り分け処理を要求し、
前記振り分けスレッドは、
前記入力データファイルを参照して入力データをデータキューへ振り分けを行う、
ことを特徴とする並列バッチ処理方法。
【請求項６】
前記ＡＰ処理スレッドは、
前記ＡＰ処理スレッドに１対１に対応付けられたデータベースを参照する、
ことを特徴とする請求項５記載の並列バッチ処理方法。
【請求項７】
サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式のサーバ装置であって、
前記クライアント端末からの処理要求を受け付ける要求受付手段と、
前記クライアント端末が入力データを格納した入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段と、
前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段と、
前記振り分け手段と前記ＡＰ処理手段とを並列に実行する手段とを含む、
ことを特徴とするサーバ装置。
【請求項８】
サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式のサーバ装置であって、
最大処理件数と最大振り分けスレッド数とを含む動作情報ファイルと、
前記クライアント端末が入力データを格納した入力データファイルを処理する内容の種類（処理種類）を登録している処理種類情報ファイルとを備え、
前記サーバ装置内での処理を並列に実行することができ、その並列実行の実行単位であるリーダースレッド，前記最大振り分けスレッド数と同数の振り分けスレッド，および前記処理種類と同数のＡＰ処理スレッドを含み、
前記リーダースレッドに、
前記クライアント端末からの処理要求を受け付ける要求受付手段と、
前記振り分けスレッドを起動する振り分けスレッド起動手段と、
前記入力データファイルと前記振り分けスレッドとを対応付ける手段と、
前記ＡＰ処理スレッドを起動するＡＰ処理スレッド起動手段と、
前記振り分けスレッドから通知される振り分けデータ件数を合計した値が前記最大処理件数を超えたとき、或いは振り分け手段から全ての入力データファイルの振り分けが終了したことが通知されたとき、前記ＡＰ処理スレッドに処理を要求する手段と、
前記振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき、振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける手段とを含み、
前記振り分けスレッドに、
前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段を含み、
前記ＡＰ処理スレッドに、
前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段を含む、
ことを特徴とするサーバ装置。
【請求項９】
前記ＡＰ処理スレッドが参照するデータベースを前記ＡＰ処理スレッドに１対１に対応付けて備える、
ことを特徴とする請求項８記載のサーバ装置。
【請求項１０】
サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式におけるサーバ装置のプログラムであって、
サーバ装置に、
前記クライアント端末からの処理要求を受け付ける要求受付機能、
前記クライアント端末が入力データを格納した入力データファイルを参照して入力データをデータキューへ振り分ける振り分け機能、
前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理機能、
前記振り分け機能と前記ＡＰ処理機能とを並列に実行する機能、
を実現させるためのプログラム。
【請求項１１】
サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式におけるサーバ装置のプログラムであって、
サーバ装置に、
リーダースレッドが、前記クライアント端末からの処理要求を受け付ける機能、動作情報ファイルに登録されている最大振り分けスレッド数と同数の振り分けスレッドを起動する機能、前記クライアント端末が入力データを格納した入力データファイルと振り分けスレッドとを対応付ける機能、処理種類情報ファイルに登録されている入力データファイルの処理の種類と同数のＡＰ処理スレッドを起動する機能、振り分けスレッドから通知される振り分けデータ件数を合計した値が動作情報ファイルに登録されている最大処理件数を超えたとき或いは振り分けスレッドから全ての入力データファイルの振り分けが終了したことが通知されたときＡＰ処理スレッドに処理を要求する機能、振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける機能、
振り分けスレッドが、前記入力データファイルを参照して入力データをデータキューへ振り分ける機能、
ＡＰ処理スレッドが、前記データキューから入力データを入力してＡＰ処理を行う機能、
前記リーダースレッド，前記振り分けスレッド，および前記ＡＰ処理スレッドを並列に実行する機能、
を実現させるためのプログラム。
【請求項１２】
前記ＡＰ処理スレッドが前記ＡＰ処理スレッドに１対１に対応付けられているデータベースを参照する機能、
を実現させるための請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列バッチ処理方式および方法ならびにサーバ装置およびそのプログラムに関し、特に、振り分け処理とＡＰ処理とを並列に実行する並列バッチ処理方式および方法ならびにサーバ装置およびそのプログラムに関する。
【背景技術】
【０００２】
従来の電文一括処理システムの一例が、特許文献１に記載されている。この従来の電文一括処理システムは、トランザクション処理の実行を制御するトランザクション処理基盤部と、トランザクションを種別に応じて処理する各アプリケーションプログラムと、各アプリケーションプログラムの各各がアクセスするファイルを格納する各データベースと、電文を一括記録している元データファイルと、元データファイルから電文を読み出し、電文データに含まれるファイル名に基づいて、各ＢＴＤファイルの各各に振り分けて格納する元データ振り分け部と、各ＢＴＤファイルから電文をそれぞれ読み出し、電文に対応する各アプリケーションプログラムに電文を処理をさせる各アフリケーションプログラム実行手段と、電文一括処理コマンドを受理し、各アプリケーションプログラム実行部を起動するアプリケーションプログラム制御部とを備え、以下のように動作する。
【０００３】
すなわち、端末１４から元データ振り分けコマンドが入力されると、元データ振り分け部は、元データファイルの電文を読み込み、電文データ内の電文種別に対応するＢＴＤファイル名を取得し、ＢＴＤファイル名に対応する各ＢＴＤファイルにそれぞれの電文を格納する。次に、端末１５から電文ファイル名を含む電文一括処理コマンドが入力されると、トランザクション処理基盤部は、アプリケーションプログラム制御部にファイル名を送付する。そして、アプリケーション制御部は各アプリケーションプログラム実行部を起動し、ファイル名を送付する。更に、各アプリケーションプログラム実行部は、ファイル名のＢＴＤファイルから電文をそれぞれ取得し、対応する各アプリケーションプログラムに送付する。そして、各アプリケーションプログラムは電文のトランザクション処理をそれぞれ実行する。
【０００４】
【特許文献１】特開平６−３４８７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した電文一括処理システムには、以下のような問題点がある。
【０００６】
すなわち、元データ振り分け部による元データファイルの電文の振り分け処理と各アプリケーションプログラムにおける電文のトランザクション処理とを並列に実行することができないことである。
【０００７】
その理由は、元データ振り分け部による元データファイルの電文の振り分け処理が終了した後に、各アプリケーションプログラムが電文のトランザクション処理をそれぞれ実行するからである。
【０００８】
本発明の目的は、上述した従来の課題を解決する並列バッチ処理方式および方法ならびにサーバ装置およびそのプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本願第１の発明の並列バッチ処理方式は、サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式であって、前記クライアント端末は、入力データファイルに入力データを格納するデータ格納手段と、前記サーバ装置に処理要求を行う処理要求手段とを含み、前記サーバ装置は、前記クライアント端末からの処理要求を受け付ける要求受付手段と、前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段と、前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段と、前記振り分け手段と前記ＡＰ処理手段とを並列に実行する手段とを含む、ことを特徴とする。
【００１０】
本願第２の発明の並列バッチ処理方式は、サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式であって、前記クライアント端末は、入力データファイルに入力データを格納するデータ格納手段と、前記サーバ装置に処理要求を行う処理要求手段とを含み、前記サーバ装置は、最大処理件数と最大振り分けスレッド数とを含む動作情報ファイルと、前記入力データファイルを処理する内容の種類（処理種類）を登録している処理種類情報ファイルとを備え、前記サーバ装置内での処理を並列に実行することができ、その並列実行の実行単位であるリーダースレッド，前記最大振り分けスレッド数と同数の振り分けスレッド，および前記処理種類と同数のＡＰ処理スレッドを含み、前記リーダースレッドに、前記クライアント端末からの処理要求を受け付ける要求受付手段と、前記振り分けスレッドを起動する振り分けスレッド起動手段と、前記入力データファイルと前記振り分けスレッドとを対応付ける手段と、前記ＡＰ処理スレッドを起動するＡＰ処理スレッド起動手段と、前記振り分けスレッドから通知される振り分けデータ件数を合計した値が前記最大処理件数を超えたとき、或いは振り分け手段から全ての入力データファイルの振り分けが終了したことが通知されたとき、前記ＡＰ処理スレッドに処理を要求する手段と、前記振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき、振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける手段とを含み、前記振り分けスレッドに、前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段を含み、前記ＡＰ処理スレッドに、前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段を含む、ことを特徴とする。
【００１１】
本願第３の発明の並列バッチ処理方式は、第２の発明において前記サーバ装置は、前記ＡＰ処理スレッドが参照するデータベースを前記ＡＰ処理スレッドに１対１に対応付けて備える、ことを特徴とする。
【００１２】
本願第４の発明の並列バッチ処理方法は、サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方法であって、前記クライアント端末は、入力データファイルに入力データを格納し、前記サーバ装置に処理要求を行い、前記サーバ装置は、前記クライアント端末からの処理要求を受け付け、前記入力データファイルを参照して入力データをデータキューへ振り分け、前記データキューから入力データを入力してＡＰ処理を行い、前記入力データのデータキューへの振り分けと前記ＡＰ処理の実行を並列に行う、ことを特徴とする。
【００１３】
本願第５の発明の並列バッチ処理方法は、サーバ装置と複数のクライアント端末とを備え、前記サーバ装置が前記クライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方法であって、前記クライアント端末は、入力データファイルに入力データを格納し、前記サーバ装置のリーダースレッドに処理要求を行い、前記リーダースレッドは、前記クライアント端末からの処理要求を受け付け、動作情報ファイルに登録されている最大振り分けスレッド数と同数の振り分けスレッドを起動し、処理種類情報ファイルに登録されている入力データファイルの処理の種類と同数のＡＰ処理スレッドを起動し、前記入力データファイルと前記振り分けスレッドとを対応付け、前記振り分けスレッドに振り分け処理を要求し、前記振り分けスレッドは、前記入力データファイルを参照して入力データをデータキューへ振り分け、振り分けたデータ件数を前記リーダースレッドに通知し、前記リーダースレッドは、前記振り分けスレッドから通知された振り分けデータ件数を合計した値が動作情報ファイルに登録されている最大処理件数を超えたとき前記ＡＰ処理スレッドに処理を要求し、前記ＡＰ処理スレッドは、前記データキューから入力データを入力してＡＰ処理を行い、前記ＡＰ処理スレッドが行うＡＰ処理の実行と並列に、前記リーダースレッドは、前記振り分けスレッドに未処理の入力データファイルを対応付け、前記振り分けスレッドに振り分け処理を要求し、前記振り分けスレッドは、前記入力データファイルを参照して入力データをデータキューへ振り分けを行う、ことを特徴とする。
【００１４】
本願第６の発明の並列バッチ処理方法は、第５の発明において前記ＡＰ処理スレッドは、前記ＡＰ処理スレッドに１対１に対応付けられたデータベースを参照する、ことを特徴とする。
【００１５】
本願第７の発明のサーバ装置は、サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式のサーバ装置であって、前記クライアント端末からの処理要求を受け付ける要求受付手段と、前記クライアント端末が入力データを格納した入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段と、前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段と、前記振り分け手段と前記ＡＰ処理手段とを並列に実行する手段とを含む、ことを特徴とする。
【００１６】
本願第８の発明のサーバ装置は、サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式のサーバ装置であって、最大処理件数と最大振り分けスレッド数とを含む動作情報ファイルと、前記クライアント端末が入力データを格納した入力データファイルを処理する内容の種類（処理種類）を登録している処理種類情報ファイルとを備え、前記サーバ装置内での処理を並列に実行することができ、その並列実行の実行単位であるリーダースレッド，前記最大振り分けスレッド数と同数の振り分けスレッド，および前記処理種類と同数のＡＰ処理スレッドを含み、前記リーダースレッドに、前記クライアント端末からの処理要求を受け付ける要求受付手段と、前記振り分けスレッドを起動する振り分けスレッド起動手段と、前記入力データファイルと前記振り分けスレッドとを対応付ける手段と、前記ＡＰ処理スレッドを起動するＡＰ処理スレッド起動手段と、前記振り分けスレッドから通知される振り分けデータ件数を合計した値が前記最大処理件数を超えたとき、或いは振り分け手段から全ての入力データファイルの振り分けが終了したことが通知されたとき、前記ＡＰ処理スレッドに処理を要求する手段と、前記振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき、振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける手段とを含み、前記振り分けスレッドに、前記入力データファイルを参照して入力データをデータキューへ振り分ける振り分け手段を含み、前記ＡＰ処理スレッドに、前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理手段を含む、ことを特徴とする。
【００１７】
本願第９の発明のサーバ装置は、第８の発明において前記ＡＰ処理スレッドが参照するデータベースを前記ＡＰ処理スレッドに１対１に対応付けて備える、ことを特徴とする。
【００１８】
本願第１０の発明のプログラムは、サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式におけるサーバ装置のプログラムであって、サーバ装置に、前記クライアント端末からの処理要求を受け付ける要求受付機能、前記クライアント端末が入力データを格納した入力データファイルを参照して入力データをデータキューへ振り分ける振り分け機能、前記データキューから入力データを入力してＡＰ処理を行うＡＰ処理機能、前記振り分け機能と前記ＡＰ処理機能とを並列に実行する機能、を実現させる。
【００１９】
本願第１１の発明のプログラムは、サーバ装置がクライアンント端末からの処理要求を受け付けて処理を実行する並列バッチ処理方式におけるサーバ装置のプログラムであって、サーバ装置に、リーダースレッドが、前記クライアント端末からの処理要求を受け付ける機能、動作情報ファイルに登録されている最大振り分けスレッド数と同数の振り分けスレッドを起動する機能、前記クライアント端末が入力データを格納した入力データファイルと振り分けスレッドとを対応付ける機能、処理種類情報ファイルに登録されている入力データファイルの処理の種類と同数のＡＰ処理スレッドを起動する機能、振り分けスレッドから通知される振り分けデータ件数を合計した値が動作情報ファイルに登録されている最大処理件数を超えたとき或いは振り分けスレッドから全ての入力データファイルの振り分けが終了したことが通知されたときＡＰ処理スレッドに処理を要求する機能、振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける機能、振り分けスレッドが、前記入力データファイルを参照して入力データをデータキューへ振り分ける機能、ＡＰ処理スレッドが、前記データキューから入力データを入力してＡＰ処理を行う機能、前記リーダースレッド，前記振り分けスレッド，および前記ＡＰ処理スレッドを並列に実行する機能、を実現させる。
【００２０】
本願第１２の発明のプログラムは、第１１の発明において前記ＡＰ処理スレッドが前記ＡＰ処理スレッドに１対１に対応付けられているデータベースを参照する機能、を実現させる。
【発明の効果】
【００２１】
本発明は、処理効率が向上するという効果を有している。その理由は、入力データの振り分け処理とＡＰ処理とを並列に実行させるようにしたためである。
【発明を実施するための最良の形態】
【００２２】
最初に、本発明の特徴について説明する。
【００２３】
本発明は、クライアントＡＰ（アプリケーション）が、各クライアントＡＰに１対１に対応した入力データファイル群に入力データを追加し、ＡＰ処理プロセスに処理要求を行う。ＡＰ処理プロセスでは、動作情報ファイルで指定された最大振り分けスレッド数に従って、入力データファイル群を参照する振り分けスレッドを作動させる。そして、処理時間のかかる入力データファイル群の参照の分散と、入力データファイル群の参照の待ち時間に別スレッドによるデータファイルの処理を行い、振り分けとＡＰ処理とを並列に実行する。データファイルの処理を行うＡＰ処理スレッドを複数持ち、ＡＰ処理スレッドに１対１で対応するＤＢ（データベース）をＡＰ処理スレッドの数分用意することで、ＤＢ参照時に排他制御による待ち時間が発生するのを防ぐ。入力するデータは複数のデータをまとめたデータファイルとして扱い、バッチ的処理による一回の大量データ処理を行う。
【００２４】
このようにして、複数の入力元から大量の入力データファイルの追加が行われた場合に、入力データファイル群の参照と処理の要求と処理及びＡＰスレッドのＤＢへの参照が排他を行わずに並行に行え、排他制御による処理時間の遅延を防ぎ、複数の入力元からの大量のデータファイルの処理を効率よくオンラインで処理することが可能となる。
【００２５】
次に、本発明を実施するための最良の形態について、図面を用いて詳細に説明する。
図１は本発明の構成を説明する図である。
図２は本発明の全体の構成を示す図である。
図３は入力データファイルの形式例を示す図である。
図４は処理種類情報ファイルの例を示す図である。
図５は振り分けスレッドと入力データファイル群の対応付け例を示す図である。
図６はデータキューとＡＰ処理スレッドの対応付け例を示す図である。
【００２６】
図１および図２を参照すると、本発明の並列バッチ処理方式の実施例は、クライアント端末１０／１１／１２と、サーバ装置２と、ネットワーク３とを備えている。クライアント端末１０／１１／１２とサーバ装置２とはインターネット等のネットワーク３で接続されている。
【００２７】
クライアント端末１０は、プログラム制御で動作する情報処理装置である。クライアント端末１０は、クライアントＡＰ１１０と、入力データファイル群１３０とを有する。入力データファイル群１３０は、入力データファイル１３０ａと、入力データファイル１３０ｂとを含む。
【００２８】
クライアント端末１１は、プログラム制御で動作する情報処理装置である。クライアント端末１１は、クライアントＡＰ１１１と、入力データファイル群１３１とを有する。入力データファイル群１３１は、入力データファイル１３１ａと、入力データファイル１３１ｂとを含む。
【００２９】
クライアント端末１２は、プログラム制御で動作する情報処理装置である。クライアント端末１２は、クライアントＡＰ１１２と、入力データファイル群１３２とを有する。入力データファイル群１３２は、入力データファイル１３２ａと、入力データファイル１３２ｂとを含む。
【００３０】
クライアントＡＰ１１０／１１１／１１２は、入力データを作成して各クライアントＡＰに１対１に対応付けられた入力データファイル群１３０／１３１／１３２にデータを追加格納するデータ格納手段と、ＡＰ処理プロセス２０へ処理要求を行う処理要求手段とを含む。入力データファイル群１３０／１３１／１３２のデータはＡＰ処理プロセス２０により処理される。
【００３１】
入力データファイル１３０ａ／１３０ｂ／１３１ａ／１３１ｂ／１３２ａ／１３２ｂ／は同じ形式である。図３に例示する入力データファイルは、登録されているデータが３件で、処理（処理種類）が”ａ”であることを示している。
【００３２】
サーバ装置２は、プログラム制御で動作する情報処理装置である。サーバ装置２は、ＡＰ処理プロセス２０と、動作情報ファイル２２と、ＤＢ２６１と、ＤＢ２６２と、出力データファイル群４０と、出力データファイル群４１とを有する。また、サーバ装置２は、処理種類情報ファイル（図示せず）を有する。処理種類情報ファイルには、入力データファイルを処理する内容の種類が予め登録されている。図４に例示する処理種類情報ファイルには、ＡＰ処理ａとＡＰ処理ｂの２つの処理種類が登録されている。サーバ装置２がパワーオンされと、ＯＳ（オペレーティングシステム）が立ち上がり、その後にＡＰ処理プロセス２０が立ち上がりメモリ（図示せず）に常駐する。ＯＳとＡＰ処理プロセス２０は、磁気ディスク装置等の補助記憶装置（図示せず）に格納されている。
【００３３】
ＡＰ処理プロセス２０は、リーダースレッド２１と、振り分けスレッド２３１／２３２と、ＡＰ処理スレッド２４１／２４２と、データキュー２５１／２５２とを含む。リーダースレッド２１と、振り分けスレッド２３１／２３２と、ＡＰ処理スレッド２４１／２４２とは、並列実行の実行単位であり、各々を並列に実行することができる。スレッドを並列に実行することはＯＳの機能により提供される。ＡＰ処理プロセス２０は立ち上がると、リーダースレッド２１を起動する。
【００３４】
リーダースレッド２１は、以下の手段を含んでいる。
（１）クライアントＡＰ１１０／１１１／１１２からの処理要求を受け付ける要求受付手段。
（２）動作情報ファイル２２の最大振り分けスレッド数２２２に従い振り分けスレッドを起動する振り分けスレッド起動手段。
（３）振り分けスレッドに入力データファイル群を対応づけてテーブルに登録し管理する手段。図５に振り分けスレッドと入力データファイル群の対応付けの例を示す。
（４）対応付けた入力データファイル群の振り分けを振り分けスレッドに要求する手段。
（５）処理種類情報ファイルに登録されている処理の種類に従いＡＰ処理スレッドを起動するＡＰ処理スレッド起動手段。
（６）振り分けスレッドから通知された振り分けデータ件数を合計した値が最大処理件数を超えたときに、或いは全ての入力データファイル群に未処理データファイルが存在しなくなったときに、ＡＰ処理スレッドにＡＰ処理を要求する手段。
（７）データキュー領域を確保しＡＰ処理スレッドに対応付けてテーブルに登録し管理する手段。図６にデータキューとＡＰ処理スレッドの対応付けの例を示す。
（８）振り分けスレッドから対応付けられた全ての入力データファイルの振り分けが終了したことが通知されたとき、振り分けスレッドが対応付けられていない入力データファイルに振り分けスレッドを対応付ける手段。
【００３５】
振り分けスレッド２３１／２３２は、リーダースレッド２１によって対応付けられた入力データファイル群を参照し、処理の種類に対応したデータキューへ入力データを振り分けて追加する振り分け手段を含む。振り分け手段は、振り分けたデータ件数をリーダースレッド２１に通知する。
【００３６】
ＡＰ処理スレッド２４１／２４２は、ＡＰ処理手段を含む。すなわち、ＡＰ処理スレッド２４１はＡＰ処理ａ手段を含み、ＡＰ処理ａ手段はデータキュー２５１から入力データを入力し、ＤＢ２６１を参照してＡＰ処理ａを行い、処理結果を出力データファイル群４０へ記録する。ＡＰ処理スレッド２４２はＡＰ処理ｂ手段を含み、ＡＰ処理ｂ手段はデータキュー２５２から入力データを入力し、ＤＢ２６２を参照してＡＰ処理ｂを行い、処理結果を出力データファイル群４１へ記録する。なお、ＡＰ処理ａおよびＡＰ処理ｂの処理内容については特に規定しない。例えば、通信料金の計算処理などである。
【００３７】
データキュー２５１／２５２は、振り分けスレッド２３１／２３２により振り分けられた入力データが格納される。本例では、データキュー２５１には処理種類”ａ”の入力データが振り分けられて格納され、データキュー２５２には処理種類”ｂ”の入力データが振り分けられて格納される。データキューの領域として、ＡＰ処理スレッドと同数のデータキューの領域が予め準備されている。リーダースレッド２１がデータキューの領域を確保するようにしてもよい。データキューの領域は、例えばメモリ上に確保される。また、データキュー２５１／２５２は、ＡＰ処理スレッドと１対１に対応している。本例では、データキュー２５１はＡＰ処理スレッド２４１に、データキュー２５２はＡＰ処理スレッド２４２に対応付けられている。
【００３８】
動作情報ファイル２２は、最大処理件数２２１と、最大振り分けスレッド数２２２とを含む。最大処理件数２２１には処理するデータの最大件数が予め設定されている。また、最大振り分けスレッド数２２２には起動される振り分けスレッドの最大数が予め設定されている。
【００３９】
ＤＢ２６１／２６２は、ＡＰ処理スレッドと１対１に対応し、ＡＰ処理スレッドの処理を行うのに必要な情報が格納される。例えば、料金計算を行うＡＰ処理に対応するＤＢには料金割引率などの情報が格納される。ＤＢは、ＡＰ処理スレッドと同数が予め準備されている。本例では、ＤＢ２６１はＡＰ処理スレッド２４１に、ＤＢ２６２はＡＰ処理スレッド２４２に対応付けられている。
【００４０】
出力データファイル群４０／４１は、ＡＰ処理スレッド２４１／２４２の処理結果が記録される。
【００４１】
ここで、図１を参照して、ＡＰ処理プロセス２０の動作の概略を説明する。
【００４２】
リーダースレッド２１は、クライアントＡＰ１１０／１１１／１１２から処理要求を受けた場合、入力データファイル群１３０／１３１／１３２を参照し未処理のデータを含む入力データファイル群の存在を調査する。
【００４３】
リーダースレッド２１は、未処理の入力データファイルを含む入力データファイル群を発見した場合、振り分けスレッド２３１／２３２に入力データファイルの振り分けを要求する。
【００４４】
１つの振り分けスレッドは１つの入力データファイル群に対応付けられる。振り分けスレッド２３１／２３２は入力ファイルを参照して、処理の種類に応じたＡＰ処理スレッドに対し処理に１対１に対応したデータキューへ入力データを追加する。
【００４５】
振り分けスレッド２３１／２３２は、リーダースレッド２１に振り分けを行ったデータ件数を応答として通知する。
【００４６】
振り分けスレッド２３１／２３２は、対応付けられた入力データファイル群に未処理のデータファイルがなくなった場合に、振り分けスレッドが対応付けられていない入力データファイル群に対応付けられる。
【００４７】
振り分けスレッド２３１／２３２からのデータ件数の応答が最大処理件数２２１を超えた或いは入力データファイル群に未処理のデータファイルが存在しなくなった場合に、リーダースレッド２１は、ＡＰ処理スレッド２４１／２４２に処理を要求する。
【００４８】
ＡＰ処理スレッド２４１／２４２は、データキュー２５１／２５２を参照し、未処理の入力データの処理を行い、処理を完了後、処理結果を出力データファイル群４０／４１へ記録する。
【００４９】
次に、本発明を実施するための最良の形態の動作について、図１〜図８を用いて詳細に説明する。
図７は本発明の動作の流れ（その１）を示す図である。
図８は本発明の動作の流れ（その２）を示す図である。
【００５０】
図７〜図８を参照し本実施例の全体の動作について詳細に説明する。
【００５１】
まず、リーダースレッド２１が動作情報ファイル２２を参照する。リーダースレッド２１は、動作情報ファイル２２より最大処理件数２２１が示す数値”１５”と最大振り分けスレッド数２２２が示す数値”２”を取得する（ステップＳ１）。
【００５２】
リーダースレッド２１は、最大振り分けスレッド数２２２に従い、振り分けスレッド２３１／２３２を起動する（ステップＳ２）。
【００５３】
リーダースレッド２１は、処理種類情報ファイルに登録されている処理の種類に応じてＡＰ処理スレッドを起動する。本例では、ＡＰ処理スレッド２４１／２４２を起動する（ステップＳ３）。
【００５４】
リーダースレッド２１は、ＡＰ処理スレッドと同数のデータキュー２５１／２５２を作成する（ステップＳ４）。データキュー２５１／２５２は、ＡＰ処理スレッド２４１／２４２と１対１に対応付けられる。
【００５５】
リーダースレッド２１は、振り分けスレッド２３１／２３２およびＡＰ処理スレッド２４１／２４２を起動後、クライアントＡＰ１１０／１１１／１１２より処理要求が行われるのを待つ（ステップＳ５）。
【００５６】
クライアントＡＰ１１０／１１１／１１２は、ＡＰ処理プロセス２０に処理を要求する入力元の数だけ存在する。入力データファイル群１３０／１３１／１３２はクライアントＡＰ１１０／１１１／１１２と１対１で対応付けられて、１つのクライアントＡＰは１つの入力データファイル群に新規の入力データファイルを追加する。本例では、クライアントＡＰ１１０は入力データファイル群１３０に入力データファイル１３０ａ／１３０ｂを追加する。クライアントＡＰ１１１は入力データファイル群１３１に入力データファイル１３１ａ／１３１ｂを追加する。クライアントＡＰ１１２は入力データファイル群１３２に入力データファイル１３２ａ／１３２ｂを追加する。そして、クライアントＡＰ１１０／１１１／１１２はリーダースレッド２１へ処理を要求する（ステップＳ６）。
【００５７】
リーダースレッド２１は、処理の要求を受けると入力データファイル群１３０／１３１／１３２を参照し、入力データファイル群１３０／１３１／１３２に未処理の入力データファイルが存在すること確認する。そして、振り分けスレッド２３１に入力データファイル群１３０の参照と振り分けを、振り分けスレッド２３２に入力データファイル群１３１の参照と振り分けを要求する。そして、振り分けスレッド２３１／２３２からの応答を待つ（ステップＳ７）。振り分けを要求された振り分けスレッド２３１と振り分けスレッド２３２は並列に動作する。
【００５８】
振り分けスレッド２３１は、入力データファイル群１３０を参照し、入力データファイル１３０ａで示される件数”３”と処理”ａ”を取得する。振り分けスレッド２３１は入力データファイル１３０ａで示される処理”ａ”の値に従って入力データファイル１３０ａの入力データをデータキュー２５１に登録し、入力データファイル１３０ａで示される件数”３”をリーダースレッド２１に返却する（ステップＳ８）。
【００５９】
振り分けスレッド２３２は、入力データファイル群１３１を参照し、入力データファイル１３１ａで示される件数”３”と処理”ａ”を取得する。振り分けスレッド２３２は入力データファイル１３１ａで示される処理”ａ”の値に従って入力データファイル１３１ａの入力データをデータキュー２５１に登録し、入力データファイル１３１ａで示される件数”３”をリーダースレッド２１に返却する（ステップＳ９）。
【００６０】
振り分けスレッド２３１は、入力データファイル群３０を参照し、入力データファイル１３０ｂで示される件数”３”と処理”ｂ”を取得する。振り分けスレッド２３１は入力データファイル１３０ｂで示される処理”ｂ”の値に従って入力データファイル１３０ｂの入力データをデータキュー２５２に登録し、入力データファイル１３０ｂで示される件数”３”をリーダースレッド２１に返却し、入力データファイル群１３０に未処理データファイルが存在しないことをリーダースレッド２１に応答する（ステップＳ１０）。
【００６１】
リーダースレッド２１は、振り分けスレッド２３１に入力データファイル群１３２の参照と振り分けを要求する（ステップＳ１１）。
【００６２】
振り分けスレッド２３２は、入力データファイル群１３１を参照し、入力データファイル１３１ｂで示される件数”３”と処理”ｂ”を取得する。振り分けスレッド２３２は入力データファイル１３１ｂで示される処理”ｂ”の値に従って入力データファイル１３１ｂの入力データをデータキュー２５２に登録し、入力データファイル１３１ｂで示される件数”３”をリーダースレッド２１に返却し、入力データファイル群１３１に未処理データファイルが存在しないことをリーダースレッド２１に応答する（ステップＳ１２）。
【００６３】
リーダースレッド２１は、振り分けスレッド２３２に停止を要求する（ステップＳ１３）。
【００６４】
振り分けスレッド２３１は、入力データファイル群３２を参照し、入力データファイル１３２ａで示される件数”３”と処理”ａ”を取得する。振り分けスレッド２３１は入力データファイル１３２ａで示される処理”ａ”の値に従って入力データファイル１３２ａの入力データをデータキュー２５１に登録し、入力データファイル１３２ａで示される件数”３”をリーダースレッド２１に返却する（ステップＳ１４）。
【００６５】
リーダースレッド２１は、データ件数の合計が最大処理件数２２１が示す値”１５”に到達したので、ＡＰ処理スレッド２４１／２４２に処理を要求する。リーダースレッド２１は、保持しているデータ件数の合計の値を０にリセットする（ステップＳ１５）。
【００６６】
ＡＰ処理スレッド２４１／２４２は、要求された処理を開始する（ステップＳ１６）。
【００６７】
振り分けスレッド２３１は、入力データファイル群１３２を参照し、入力データファイル１３２ｂで示される件数”３”と処理”ｂ”を取得する。このとき、振り分けスレッド２３１は、ステップＳ１６で処理を開始したＡＰ処理スレッド２４１／２４２と並列に動作する。振り分けスレッド２３１は入力データファイル１３２ｂで示される処理”ｂ”の値に従って入力データファイル１３２ｂの入力データをデータキュー２５２に登録し、入力データファイル１３２ｂで示される件数”３”をリーダースレッド２１に返却し、入力データファイル群３０に未処理データファイルが存在しないことをリーダースレッド２１に応答する（ステップＳ１７）。
【００６８】
ＡＰ処理スレッド２４１／２４２は、要求された処理が終了したことをリーダースレッド２１に通知する（ステップＳ１８）。
【００６９】
リーダースレッド２１は、入力データファイル群１３０／１３１／１３２に未処理データファイルが存在しないことを受けて、ＡＰ処理スレッド２４１／２４２に処理を要求し、振り分けスレッド２３１に停止を要求する。リーダースレッド２１は、保持しているデータ件数の合計の値を０にリセットする（ステップＳ１９）。
【００７０】
ＡＰ処理スレッド２４１／２４２は、要求された処理を開始する（ステップＳ２０）。
【００７１】
ＡＰ処理スレッド２４１／２４２は、リーダースレッド２１より処理要求を受けた後、対応するデータキュー２５１／２５２を参照し、データキュー２５１／２５２に登録されているデータの処理を行い、処理結果を出力データファイル群４０に出力する（ステップＳ２１）。
【００７２】
データキュー２５１／２５２に未処理データがなくなった場合、ＡＰ処理スレッド２４１／２４２は動作を停止し、リーダースレッド２１からの処理要求を待つ（ステップＳ２２）。
【００７３】
上記説明したように、本発明は、振り分けスレッドとＡＰ処理スレッドを並列に実行させるので、処理効率が向上するという効果を有している。
【００７４】
また、参照するＤＢをＡＰ処理スレッドに１対１で対応させているので、ＤＢ参照／更新時の排他制御による時間の遅延を防止するという効果を有する。
【００７５】
本発明による上述した実施の形態において、サーバ装置の処理動作を実行するためのプログラム等を、データとしてサーバ装置の磁気ディスクやＲＯＭ等の記録媒体（図示せず）に記録するようにし、記録されたデータを読み出してサーバ装置を動作させるために用いる。このように、本発明によるサーバ装置を動作させるデータを記録媒体に記録させ、この記録媒体をインストールすることによりサーバ装置の機能が実現できるようになる。
【図面の簡単な説明】
【００７６】
【図１】本発明の構成を説明する図
【図２】本発明の全体の構成を示す図
【図３】入力データファイルの形式例を示す図
【図４】処理種類情報ファイルの例を示す図
【図５】振り分けスレッドと入力データファイル群の対応付け例を示す図
【図６】データキューとＡＰ処理スレッドの対応付け例を示す図
【図７】本発明の動作の流れ（その１）を示す図
【図８】本発明の動作の流れ（その２）を示す図
【符号の説明】
【００７７】
２    サーバ装置
３    ネットワーク
１０    クライアント端末
１１    クライアント端末
１２    クライアント端末
２０    ＡＰ処理プロセス
２１    リーダースレッド
２２    動作情報ファイル
４０    出力データファイル群
４１    出力データファイル群
１１０    クライアントＡＰ
１１１    クライアントＡＰ
１１２    クライアントＡＰ
２２１    最大処理件数
２２２    最大振り分けスレッド数
２３１    振り分けスレッド
２３２    振り分けスレッド
２４１    ＡＰ処理スレッド
２４２    ＡＰ処理スレッド
２５１    データキュー
２５２    データキュー
２６１    ＤＢ
２６２    ＤＢ
１３０    入力データファイル群
１３１    入力データファイル群
１３２    入力データファイル群
１３０ａ    入力データファイル
１３０ｂ    入力データファイル
１３１ａ    入力データファイル
１３１ｂ    入力データファイル
１３２ａ    入力データファイル
１３２ｂ    入力データファイル
【図１】
2006259981.tif 000003
【図２】
2006259981.tif 000004
【図３】
2006259981.tif 000005
【図４】
2006259981.tif 000006
【図５】
2006259981.tif 000007
【図６】
2006259981.tif 000008
【図７】
2006259981.tif 000009
【図８】
2006259981.tif 000010