(57)【要約】   【課題】  処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行する。  【解決手段】  ＥＡＩサーバ１０は、データを受信したときに、Ｉ／Ｆ定義テーブルおよびファイル定義テーブルを参照して、受信したデータに関するジョブのＩ／Ｆ定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ処理部１４と、キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、換算ジョブ数に基づき、ジョブを起動するか否かを判断する実行制御部１６とを備える。  【選択図】  図１
2005107632.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うＥＡＩサーバであって、
ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、
複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、
インタフェースの識別子を示すＩ／Ｆ識別子、その名称を示すＩ／Ｆ名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるＩ／Ｆ定義テーブルと、
ファイルを識別するためのファイル識別子、前記Ｉ／Ｆ識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、
ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、Ｉ／Ｆ識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、
前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、Ｉ／Ｆ識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、
前記ネットワークを介してデータを受信したときに、前記Ｉ／Ｆ定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのＩ／Ｆ定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、
前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段とを備えたことを特徴とするＥＡＩサーバ。
【請求項２】
前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶することを特徴とする請求項１に記載のＥＡＩサーバ。
【請求項３】
前記ジョブ実行制御手段が、
前記実行中のジョブの前記換算ジョブ数の総和＜同時実行最大ジョブ数
であるときに、前記起動すべきキューのジョブを起動することを特徴とする請求項１または２に記載のＥＡＩサーバ。
【請求項４】
前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、
前記ジョブ実行制御手段が、さらに、
前記実行中のジョブの前記換算ジョブ数の総和＜最大同時実行ジョブ数
である場合に、前記起動すべきジョブを起動することを特徴とする請求項３に記載のＥＡＩサーバ。
【請求項５】
前記ジョブ実行制御手段が、
前記実行中のジョブの前記換算ジョブ数の総和＞最大同時実行ジョブ数
である場合に、
前記換算ジョブ数の総和＋前記起動すべきキューのジョブの換算ジョブ数
≦同時実行最大所部数
であれば、前記起動すべきジョブを起動することを特徴とする請求項４に記載のＥＡＩサーバ。
【請求項６】
ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うＥＡＩサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すＩ／Ｆ識別子、その名称を示すＩ／Ｆ名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるＩ／Ｆ定義テーブルと、ファイルを識別するためのファイル識別子、前記Ｉ／Ｆ識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、Ｉ／Ｆ識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、Ｉ／Ｆ識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むＥＡＩサーバにより読み出し可能なプログラムであって、前記ＥＡＩサーバを、
前記ネットワークを介してデータを受信したときに、前記Ｉ／Ｆ定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのＩ／Ｆ定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、
前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段として機能させることを特徴とする、ＥＡＩサーバにより読み取り可能なプログラム。
【請求項７】
前記ＥＡＩサーバを前記データ待ち合わせ手段として機能させる場合において、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶するように、前記ＥＡＩサーバを動作させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記ＥＡＩサーバを前記ジョブ実行制御手段として機能させる場合において、
前記実行中のジョブの前記換算ジョブ数の総和＜同時実行最大ジョブ数
であるときに、前記起動すべきキューのジョブを起動するように、前記ＥＡＩサーバを動作させることを特徴とする請求項６または７に記載のプログラム。
【請求項９】
前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、
前記ＥＡＩサーバを、前記ジョブ実行制御手段として機能させる場合において、さらに、
前記実行中のジョブの前記換算ジョブ数の総和＜最大同時実行ジョブ数
である場合に、前記起動すべきジョブを起動するように、前記ＥＡＩサーバを動作させることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記ＥＡＩサーバを前記ジョブ実行制御手段として動作させる場合において、
前記実行中のジョブの前記換算ジョブ数の総和＞最大同時実行ジョブ数
である場合に、
前記換算ジョブ数の総和＋前記起動すべきキューのジョブの換算ジョブ数
≦同時実行最大所部数
であれば、前記起動すべきジョブを起動するように、前記ＥＡＩサーバを動作させることを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＡＩ（Enterprise Application
Integration）サーバに関し、より詳細には、適切なジョブスケジューリングが実現できるＥＡＩサーバに関する。
【背景技術】
【０００２】
ＥＡＩサーバは、そのソフトの性格上複数のシステムとのデータ交換を行うサーバとして機能する。ＥＡＩサーバに接続されるシステム、ホスト、サーバには、それぞれ、異なるハードウェアアーキテキチャ、異なるＯＳ、異なる文字セット、異なるジョブスケジューリング機構などが装備されている可能性がある。また、ＥＡＩサーバに、新規のサーバが接続された場合、既存のサーバとの整合を図る必要もある。
【特許文献１】特開２００２−１８９８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
その結果、ＥＡＩサーバは、以下のような課題を持つシステムとなる。
【０００４】
（１）加工処理の繁忙期と閑散期が極端。
ＥＡＩサーバに接続される各システムで、それぞれにジョブスケジューリング機構が装備されているため、ＥＡＩサーバにてデータ加工を行う  タイミングは、そのデータの発生システムのジョブスケジューリングに従う事になる。その結果、ＥＡＩサーバに対して、複数のシステムから短時間に大量のデータ加工依頼が集中し、或いは、ほとんどデータ加工依頼のない時間帯が発生する事となる。
【０００５】
ＥＡＩサーバにおいては、ピーク時は大量のデータ加工を実現する必要がある為、膨大なコンピュータ資源    （ＣＰＵ数、搭載メモリ、利用可能ディスクスペースなど）が必要とされるが、ピーク時以外は、ほとんどコンピュータ資源を利用していないという特性を持っている。その結果、ピーク時の処理を実現可能なコンピュータ資源を準備すると費用対効果が非常に悪くなる。
【０００６】
（２）ＥＡＩサーバ上でのデータ加工処理の特性
ＥＡＩサーバ上で実行されるデータ加工処理は、おおよそ以下の３つのパターンに分類される場合が多い。
【０００７】
第１のタイプ
大量のコンピュータ資源を消費し、処理時間も長くかかる加工処理。
このパターンの加工処理の特性として、同じパターンの加工処理を同時に実行しない方がよいとされるもの。
【０００８】
第２のタイプ
使用コンピュータ資源も処理時間も平均的な加工処理。
同じパターンの加工処理であれば複数同時実行を行う事により全体のスループット向上につながるもの。
【０００９】
第３のタイプ
使用コンピューターリソースも処理時間も小さな加工処理。
【００１０】
同じパターンの加工処理であればパターン２のものよりも大量に同時実行することが可能なもの。
【００１１】
実際のＥＡＩサーバ上では、上記のような特性を持つ加工処理がランダムに発生するので、単純な同時実行数の制御だけを行うと、コンピュータ資源の不足や余りを発生させてしまう。
【００１２】
（３）複数のファイルを使用する加工処理
ＥＡＩサーバ上で加工されるパターンを大別すると
１：１
ｎ：１
１：ｎ
ｎ：ｍ  （１、ｎ、ｍは、それぞれ、ジョブ数）
となるが、このとき、複数のデータを使用して加工を行う場合、どうしても使用するデータの生成を待つ機構が必要となる。
【００１３】
単一のシステム内でこのような処理を実装する場合は、ジョブコントロール・ソフトウェアを使用してデータ生成のタイミングを取ればよいが、複数のシステムを結合させる立場にあるＥＡＩサーバ      では、自身の制御機構の中にデータ待ち合わせ機能が必要となる。
【００１４】
特許文献１には、計算機リソースの配分を考慮したワークフロー管理を実現する方法、システムおよび記憶媒体が開示されている。しかしながら、これによっても、上記問題点を解決することは容易ではない。
【００１５】
本発明は、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるＥＡＩサーバおよびそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うＥＡＩサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すＩ／Ｆ識別子、その名称を示すＩ／Ｆ名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるＩ／Ｆ定義テーブルと、ファイルを識別するためのファイル識別子、前記Ｉ／Ｆ識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、Ｉ／Ｆ識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、Ｉ／Ｆ識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、前記ネットワークを介してデータを受信したときに、前記Ｉ／Ｆ定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのＩ／Ｆ定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段とを備えたことを特徴とするＥＡＩサーバにより達成される。
【００１７】
好ましい実施態様においては、前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶する。
【００１８】
別の好ましい実施態様においては、前記ジョブ実行制御手段が、前記実行中のジョブの前記換算ジョブ数の総和＜同時実行最大ジョブ数であるときに、前記起動すべきキューのジョブを起動する。
【００１９】
より好ましい実施態様においては、前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、前記ジョブ実行制御手段が、さらに、前記実行中のジョブの前記換算ジョブ数の総和＜最大同時実行ジョブ数である場合に、前記起動すべきジョブを起動する。
【００２０】
さらに、前記ジョブ実行制御手段が、前記実行中のジョブの前記換算ジョブ数の総和＞最大同時実行ジョブ数である場合に、前記換算ジョブ数の総和＋前記起動すべきキューのジョブの換算ジョブ数≦同時実行最大所部数であれば、前記起動すべきジョブを起動するのが望ましい。
【００２１】
また、本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うＥＡＩサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すＩ／Ｆ識別子、その名称を示すＩ／Ｆ名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるＩ／Ｆ定義テーブルと、ファイルを識別するためのファイル識別子、前記Ｉ／Ｆ識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、Ｉ／Ｆ識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、Ｉ／Ｆ識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むＥＡＩサーバにより読み出し可能なプログラムであって、前記ＥＡＩサーバを、
前記ネットワークを介してデータを受信したときに、前記Ｉ／Ｆ定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのＩ／Ｆ定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段として機能させることを特徴とする、ＥＡＩサーバにより読み取り可能なプログラムによっても達成される。
【００２２】
好ましい実施態様においては、前記ＥＡＩサーバを前記データ待ち合わせ手段として機能させる場合において、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶するように、前記ＥＡＩサーバを動作させる。
【００２３】
別の好ましい実施態様においては、前記ＥＡＩサーバを前記ジョブ実行制御手段として機能させる場合において、前記実行中のジョブの前記換算ジョブ数の総和＜同時実行最大ジョブ数であるときに、前記起動すべきキューのジョブを起動するように、前記ＥＡＩサーバを動作させる。
【００２４】
より好ましい実施態様においては、前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、前記ＥＡＩサーバを、前記ジョブ実行制御手段として機能させる場合において、さらに、前記実行中のジョブの前記換算ジョブ数の総和＜最大同時実行ジョブ数である場合に、前記起動すべきジョブを起動するように、前記ＥＡＩサーバを動作させる。
【００２５】
また、より好ましくは、前記ＥＡＩサーバを前記ジョブ実行制御手段として動作させる場合において、前記実行中のジョブの前記換算ジョブ数の総和＞最大同時実行ジョブ数である場合に、前記換算ジョブ数の総和＋前記起動すべきキューのジョブの換算ジョブ数≦同時実行最大所部数であれば、前記起動すべきジョブを起動するように、前記ＥＡＩサーバを動作させる。
【発明の効果】
【００２６】
本発明によれば、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるＥＡＩサーバおよびそのプログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、添付図面を参照して、本発明の実施の形態について説明する。図１は、本実施の形態にかかるＥＡＩサーバの概略を示すブロックダイヤグラムである。図１に示すように、本実施の形態にかかるＥＡＩサーバ１０は、ネットワークを介して、他のサーバやホストコンピュータと接続され、これらとのデータ授受を制御する入出力インタフェース（Ｉ／Ｆ）１２と、ＥＡＩサーバにおけるデータ待ち合わせを実行する待ち合わせ処理部１４と、データ加工処理の同時実行数を制御する実行制御部１６と、各種テーブルやデータを記憶する記憶装置１８とを有する。記憶装置２０には、後に詳述するシステム制限テーブル２０、処理タイプ別制限情報テーブル２２、Ｉ／Ｆ定義テーブル２４と、ファイル定義テーブル２６と、受信データ管理テーブル２８と、キューテーブル３０とが保持される。また、記憶装置２０は、他のサーバやホストコンピュータからのデータを収容することができる。
【００２８】
このように構成されたＥＡＩサーバ１０における各テーブルについて以下に詳細に説明する。図２（ａ）はシステム制限情報テーブルの例を示す図である。システム制限情報テーブル２００は、項目として、ＥＡＩサーバにて同時に実行できる最大ジョブ数を示す「同時実行ジョブ（Ｊｏｂ）最大数」と、無制限にＥＡＩサーバを起動することができる最低のジョブ数を示す「最低同時実行ジョブ（Ｊｏｂ）数」と、キューをチェックする間隔を示す「キューチェック間隔」を含む。「同時実行ジョブ最大数」などは、ＥＡＩサーバのＣＰＵ数、メモリ量および平均的な負荷をもつジョブの実行数などに基づいて予め設定される。
【００２９】
図２（ｂ）は、処理タイプ別制限情報テーブルの例を示す図である。本実施の形態において、処理タイプ別制限情報２１０には、３つの処理タイプが設定され、それぞれのタイプについて、標準の処理タイプのジョブ何本分を換算するかを示す値が付加される。図２（ｂ）の例では、「処理タイプ１」のジョブについては、通常の処理タイプのジョブの「３」本分に換算され、「処理タイプ３」のジョブについては、通常の処理タイプのジョブの「０．５」本分に換算される。また、「処理タイプ２」のジョブが、通常の処理タイプのジョブに相当する。システム制限情報テーブルおよび処理タイプ別制限情報テーブルのレコードは事前に登録される。
【００３０】
図２（ｃ）に示すように、Ｉ／Ｆ定義テーブル２２０には、項目として、インタフェースを一意的に特定する「Ｉ／Ｆ識別子」、インタフェース名称を示す「Ｉ／Ｆ名称」、および、「優先度」および「処理タイプ」が設けられている。
【００３１】
図３（ａ）は、ファイル定義テーブルの例を示す図である。図３（ａ）に示すように、ファイル定義テーブル３００には、項目として、ファイルを一意的に特定する「ファイル識別子」、「Ｉ／Ｆ識別子」、「ファイル名称」、ＥＡＩサーバからの送信或いはＥＡＩサーバによる受信を区分する「送受信区分」、ファイルの送信先を示す「送信先情報」、標準的なデータサイズの上限を示す「基準データ量」、および、基準データ量を超えた場合の追加加重を示す「データ量対比加重」が含まれる。Ｉ／Ｆ定義テーブルおよびファイル定義テーブルにより、１つの加工処理（Ｉ／Ｆ定義）にて使用されるデータ、生成されるデータ、および、生成されたデータの引渡し先を管理することができる。また、これらＩ／Ｆ定義テーブルおよびファイル定義テーブルのレコードは事前に登録される。
【００３２】
図３（ｂ）は、キューテーブルの例を示す図である。キューテーブル３１０は、キュー登録日およびキュー番号を示す「キュー識別子」、「Ｉ／Ｆ識別子」、当該キュー中のジョブの実行状態を示す「実行状態」、「優先度」、「標準タイプ対比加重」、および、加工処理を実行するときのディレクトリを示す「基準Ｄｉｒ」を含む。キューテーブルにより、実際に処理するジョブの実行順序が管理される。
【００３３】
図３（ｃ）は、受信データ管理テーブルの例を示す図である。受信データ管理テーブルには、項目として、「キュー識別子」、「ファイル識別子」、「Ｉ／Ｆ識別子」、「データ受信状態」および「データ量対比加重」が含まれる。キューテーブルおよび受信データ管理テーブルのレコードは、処理実行時に動的に登録され或いは削除される。
【００３４】
上記構成のテーブルを備えたＥＡＩサーバにおけるデータ待ち合わせ処理について説明する。図４は、データ待ち合わせ処理を概略的に示すフローチャートである。
【００３５】
ＥＡＩサーバの入出力Ｉ／Ｆ１２がデータを受理すると、データ待ち合わせ処理部１４は、受信したデータのファイル名から、ファイル識別子（以下、「受信時抽出ファイル識別子」と称する）を抽出する（ステップ４０１）。
【００３６】
ここで、ファイル名の命名規則は、たとえば、（ファイル識別子＿受信日時＿受信処理プロセス番号.dat）       のように、ファイル識別子を含み、かつ、短時間（もしくは、同時）に同一ファイル識別子のデータを受信しても上書きされる危険のないように設定しておくのが望ましい。
【００３７】
次いで、データ待ち合わせ処理部１４は、キューテーブルにデータを配置するために、作業用ロックを「ロック状態」にする（ステップ４０２）。これにより、キューテーブルへのデータ配置が並列動作することが防止される。なお、「ロック状態」は処理終了の際に解除され、「ロック解除状態」となる。
【００３８】
次いで、データ待ち合わせ処理部１４は、受信時抽出ファイル識別子を使用して、Ｉ／Ｆ定義情報テーブルを検索し、Ｉ／Ｆ識別子、優先度、処理タイプなどを抽出する（ステップ４０３）。ここでは、たとえば、以下の検索条件が利用され得る。
【００３９】
検索条件：ファイル識別子＝受信時抽出ファイル識別子
AND（かつ）  送受信区分＝受信
なお、上記値が抽出できなかった場合は（ステップ４０４でノー(No)）、未登録ファイルの受信としてエラー処理を実行される（ステップ４０５）。
【００４０】
次いで、データ待ち合わせ処理部１４は、検索されたＩ／Ｆ識別子（以下、「検索Ｉ/Ｆ識別子」と称する。）を使用して受信データ管理テーブルを検索する（ステップ４０６）。たとえば、検索条件、取得順序、取得項目は以下のようなものとなる。
【００４１】
検索条件：I/F識別子＝検索I/F識別子  
AND  ファイル識別子＝受信時抽出ファイル識別子
AND  データ受信状態＝未受信
取得順序：キュー識別子
取得項目：キュー識別子（以下、「受信管理キュー識別子」と称する。）
ファイル識別子（以下、「受信管理ファイル識別子」と称する。）
処理基準ディレクトリ（以下、「検索処理基準ディレクトリ」と称する。）
【００４２】
なお、ここで抽出されるレコードは１件のみである。
【００４３】
検索の結果、レコードが見出された場合（受信待ちであった場合）には（ステップ４０７でイエス(Yes)）、待ち合わせ処理部１４は、受信データ管理テーブルを更新する（ステップ４０８）。データ更新条件、更新項目は以下のとおりである。
【００４４】
更新条件：キュー識別子＝受信データ管理キュー識別子
AND ファイル識別子＝受信管理ファイル識別子
更新項目：データ受信状態＝受信済み
【００４５】
なお、データ量対比加重について、受信したデータのI/F定義情報に基準データ量・データ量対比加重が登録されている場合は、受信したデータのサイズと基準データ量を比較し、              受信したデータ量が大きい場合は、受信管理テーブルのデータ量対比加重がセットされる。その一方、データ量が大きくない場合は、「０（ゼロ）」がセットされる。
【００４６】
また、データ待ち合わせ処理部１４は、受信したデータを検索処理基準ディレクトリに移動し（ステップ４０９）、キューテーブルを更新する（ステップ４１０）。更新条件は以下のとおりである。
【００４７】
更新条件：キュー識別子＝受信管理キュー識別子
【００４８】
なお、更新項目のうち、データ量対比加重については、受信管理テーブルのキュー識別子＝受信管理キュー識別子のレコードのデータ量対比加重の合計となる。
その一方、検索の結果、データが見出されなかった場合（つまり、受信待ちしていない場合）には（ステップ４０７でノー(No)）、図５に示すように、待ち合わせ処理部１４は、キュー識別子を採番するとともに、基準ディレクトリ「基準Dir」を生成する（ステップ５０１）。
【００４９】
基準ディレクトリの生成においては、処理日時、処理プログラムのプロセス番号等を使用し、一意性を持ったディレクトリ名が生成される。
【００５０】
次いで、データ待ち合わせ処理部１４は、受信データを、生成された基準ディレクトリに移動する（ステップ５０２）。また、データ待ち合わせ処理部１４は、受信管理テーブル検索Ｉ／Ｆ識別子を使用して、Ｉ／Ｆ定義情報を検索し（ステップ５０３）、そのＩ／Ｆ識別子配下にあるファイル識別子すべてについて、先に採番したキュー識別子を使用して受信データ管理テーブルに記憶する（ステップ５０４）。
【００５１】
このとき、データ受信状態は受信時抽出ファイル識別子のものは、受信済みとし、その他のファイル識別子は未受信として、受信データ管理テーブルに記憶するする。また、I/F定義情報に、「基準データ量・データ量対比加重」が登録されている場合に、
【００５２】
受信したデータのサイズ＞基準データ量
が満たされる場合は、受信管理テーブルのデータ量対比加重に、Ｉ／Ｆ定義情報のデータ量対比加重がセットされる。
【００５３】
次いで、データ待ち合わせ処理部１４は、キューテーブルに新規キュー情報を記憶する（ステップ５０５）。新規キュー情報のレコードには、以下の項目が含まれる。
キュー識別子：先に採番したキュー識別子
Ｉ／Ｆ識別子：検索Ｉ／Ｆ識別子
実行状態：実行待ち
優先度       ：Ｉ／Ｆ定義情報の検索時に取得した優先度
処理タイプ対比加重：Ｉ／Ｆ定義情報の検索時に取得した処理タイプを使用して処理タイプ別制限情報テーブルを検索して得られた標準タイプ対比加重
基準Dir：先に生成した基準Dir
データ量対比加重合計：上記受信データ管理テーブルに記憶した時のデータ量対比加重
【００５４】
このような、処理ロジックを使用する事により、同一ファイル識別子のデータが多数受信された場合でも、Ｉ／Ｆで使用するデータがＦＩＦＯ(First In First Out)で結合されて処理される。
【００５５】
たとえば、図６（ａ）に示すように、他のシステムから「Ｒ０００１＿２００３０７０７１３５４＿１２３４５．ｄａｔ」というファイル名のデータを受理した場合を考える。この例では、ファイル名からファイル識別子を抽出すると、「Ｒ０００１」となる。また、Ｉ／Ｆテーブル（図６（ｂ）参照）から、このファイル識別子は、「２：１のＩ／Ｆ」であることがわかる。
【００５６】
データ待ち合わせ処理部１４は、ファイル定義テーブル（図６（ｃ）参照）のレコードを参照して、すでにファイル定義テーブル中に存在するか否かを判断する。この例では、対応するレコードがファイル定義テーブルに存在している（符号６０１参照）。また、そのファイル識別子が、そのファイル識別子が受信データ管理テーブル（図７（ａ）参照）に、そのデータ受信状態が「未受信」の状態で存在しているか
2005107632.tif 000003
確認する。この例では、対応するレコードのデータ受信状態は「未受信」となっている（符号７０２参照）
【００５７】
次いで、その未受信データの一番古いキュー識別子が
2005107632.tif 000004
取得される。また、受信したファイルのサイズとファイル定義   テーブルの基準データ量とが比較され、基準データ量より大きい場合には、ファイル定義テーブルのデータ量対比加重が、受信データ管理テーブルにセットされる。
2005107632.tif 000005
次いで、      キューテーブルから基準ディレクトリ「基準Dir」が取得され、受信したデータが移動される。
2005107632.tif 000006
この後、キューのデータ量対比加重項目が再計算され、実行状態が変更される。図７（ｂ）は、キューテーブルの状態の一例を示す。
【００５８】
次に、本実施の形態にかかる実行制御部１６における処理について説明する。実行制御部１６における            データ加工処理の同時実行数の制御は、そのシステムでの平均的な加工処理の負荷から割り出した同時実行ジョブ最大数まで加工処理を起動するように行われる。
【００５９】
個々のジョブ起動開始判定時には、そのジョブの処理タイプに課せられた標準タイプ対比加重と、受信データ量から算出したデータ量対比加重とを使用して実行判定が行われる。
【００６０】
図８は、キューの実行判断を示すフローチャートである。実行制御部１６は、キューテーブル中に実行待ちのものがあるかチェックする（ステップ８０１）。ここでは、キューテーブルから「実行状態＝実行待ち」のレコード数が算出される。      実行待ちのものがなければ（ステップ８０１でノー(No)）、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープし、ステップ８０１に戻る。
【００６１】
これに対して、実行待ちのものがあった場合には（ステップ８０１でイエス(Yes)）、実行制御部１６は、キューテーブルから以下の情報を取得する（ステップ８０２）。
【００６２】
実行ジョブ総本数：「キューテーブルの実行状態＝実行中」であるレコード件数
実行中換算ジョブ数（以下、「JRUN」と称する）：
「キューテーブルの実行状態＝実行中」であるレコードの
標準タイプ対比加重の合計とデータ量対比加重合計との総計
【００６３】
次いで、処理枠の有無が判定される（ステップ８０３）。より具体的には、以下の条件を満たす場合には、処理枠あると判定される。
JRUN＜システム制限情報テーブル中の同時実行ジョブ最大数
【００６４】
ステップ８０３でノー(No)と判断された場合には、システム制限情報テーブル中、キューチェック間隔で指定された時間だけスリープして、ステップ８０１に戻る。これに対して、ステップ６０３でイエス(Yes)と判断された場合には、以下の処理が実行される。
【００６５】
実行制御部１６は、最低実行ジョブ数の処理枠を判定する（ステップ８０４）。ここでは、以下の条件が満たされた場合に、最低実行ジョブ本数の処理枠ありと判定する。
JRUN＜システム制限情報テーブル中の最低同時実行ジョブ数
【００６６】
ステップ８０４でイエス(Yes)と判断された場合には、キューテーブルの先頭にあるジョブについて、キューの実行状態を「実行中」に変更する（ステップ８０５）。なお、本実施の形態において、キューテーブルは、優先度、キュー識別子の順番で取り扱われる。次いで、そのキューのジョブが起動され（ステップ８０６）、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープした後、ステップ４０１に戻る。
【００６７】
これに対して、ステップ８０４でノー(No)と判断された場合には、実行制御部１６は、キューテーブルの先頭にあるジョブの換算ジョブ数を算出する（ステップ８０７）。
換算ジョブ数は、以下のように求められる。
換算ジョブ数（JQUE）＝１×（キューの処理タイプから実行制限情報を検索して得られた
標準タイプ対比加重）＋（１×処理キューテーブルのデータ量対比加重）
【００６８】
次いで、実行制御部１６は、以下の条件に基づき、ジョブが実行可能か判定する（ステップ８０８）。
JRUN+JQUE≦（システム制限情報テーブル中の同時実行ジョブ最大数）
【００６９】
上記条件が満たされる場合には（ステップ６０８でイエス(Yes)）ジョブが実行可能であると判断する。この場合には、実行制御部１６は、キューテーブルの先頭にあるジョブについて、キューの実行状態を「実行中に」変更する（ステップ８０５）。次いで、そのキューのジョブが起動され（ステップ８０６）、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープした後、ステップ８０１に戻る。
【００７０】
システム情報テーブル、処理タイプ別制限情報テーブル、キューテーブルおよび受信データテーブルに、それぞれ図９（ａ）〜（ｄ）に示すようなデータが与えられていた場合を例にして、上記実行制御部１６の処理をより詳細に説明する。
【００７１】
実行ジョブ数が「０（ゼロ）」の状態において、キューテーブルおよび受信データテーブルが、それぞれ、図９（ｃ）、（ｄ）に示すようになったとき、ジョブの実行制御は以下のようなものとなる。
【００７２】
（１）キュー＝2003070100001を検知したとき
実行総本数＝０
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
したがって、
実行総本数（＝０）＜最低同時実行ジョブ数（＝２）となるため、対応するジョブが起動される。
【００７３】
（２）キュー＝2003070100002を検知したとき（なお、終了したジョブはないと考える。）
実行総本数＝１
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
【００７４】
したがって、
実行総本数（＝１）＜最低同時実行ジョブ数（＝２）となるため、対応するジョブが起動される。
【００７５】
（３）キュー＝2003070100003を検知したとき（なお、終了したジョブはないと考える。）
実行総本数＝２
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
【００７６】
したがって、
実行総本数（＝２）＜最低同時実行ジョブ数（＝２）とならないため、実行中のジョブの換算ジョブ数が算出される。
【００７７】
ここでは、
キュー＝2003070100001の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×０（データ量対比加重）＝３
キュー＝2003070100002の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×０（データ量対比加重）＝３
【００７８】
したがって、
実行中のジョブの換算ジョブ数＝６
となり、７
実行中のジョブの換算ジョブ数（＝６）＜同時実行ジョブ最大数（＝５）とならないため、
ジョブの起動は見合わせられて、スリープとなる。
【００７９】
（４）キュー＝2003070100001 終了後のチェック時
この場合、キュー＝2003070100003が検知される。
実行総本数＝１
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝１）＜最低同時実行ジョブ数（＝２）となるため、対応するジョブが起動される。
【００８０】
（５）キュー＝2003070100004を検知したとき（なお、新たに終了したジョブはなしとする。）
実行総本数＝２
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝２）＜最低同時実行ジョブ数（＝２）とならないため、実行中のジョブの換算ジョブ数が算出される。
【００８１】
ここでは、
キュー＝2003070100002の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×０（データ量対比加重）＝３
キュー＝2003070100003の換算ジョブ数：
１×１（標準タイプ対比加重）＋１×０（データ量対比加重）＝１
【００８２】
したがって、
実行中のジョブの換算ジョブ数＝４
となり、
実行中のジョブの換算ジョブ数（＝４）＜同時実行ジョブ最大数（＝５）となる。
【００８３】
また、キュー＝2003070100004の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×１（データ量対比加重）＝４
となり、
実行換算ジョブ数（＝４）＋対象ジョブ換算ジョブ数（＝４）
＜同時実行ジョブ最大数（５）とならないため、ジョブの起動は見合わせられ、スリープとなる。
【００８４】
（６）キュー＝2003070100002 終了後のチェック時
この場合、キュー＝2003070100004が検知される。
実行総本数＝１
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝１）＜最低同時実行ジョブ数（＝２）となるため、対応するジョブが起動される。
【００８５】
（７）キュー＝2003070100005を検知した時（新たに終了したジョブはなしと考える。）
実行総本数＝２
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝２）＜最低同時実行ジョブ数（＝２）とならないため、実行中のジョブの換算ジョブ数が算出される。
【００８６】
ここでは、
キュー＝2003070100003の換算ジョブ数：
１×１（標準タイプ対比加重）＋１×０（データ量対比加重）＝１
キュー＝2003070100004の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×１（データ量対比加重）＝４
したがって、
実行中のジョブの換算ジョブ数＝５
となり、
【００８７】
実行中のジョブの換算ジョブ数（＝５）＜同時実行ジョブ最大数（＝５）とならないため、ジョブの起動は見合わせられ、スリープとなる。
【００８８】
（８）キュー＝2003070100003 終了後のチェック時
この場合、キュー＝2003070100005が検知される。
実行総本数＝１
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝１）＜最低同時実行ジョブ数（＝２）となるため、ジョブが起動される。
【００８９】
（９）キュー＝2003070100006を検知した時（新たに終了したジョブはなしと考える。）
この場合には、
実行総本数＝２
同時実行ジョブ最大数＝５
最低同時実行ジョブ数＝２
であり、
実行総本数（＝２）＜最低同時実行ジョブ数（＝２）とならないため、実行中のジョブの換算ジョブ数が算出される。
【００９０】
キュー＝2003070100004の換算ジョブ数：
１×３（標準タイプ対比加重）＋１×１（データ量対比加重）＝４
キュー＝2003070100005の換算ジョブ数：
１×0.5（標準タイプ対比加重）＋１×０（データ量対比加重）＝0.5
したがって、
実行中のジョブの換算ジョブ数＝4.5
となり、
起動候補のジョブの換算ジョブ数（＝4.5）＜同時実行ジョブ最大数（５）となる。また、
キュー＝2003070100006の換算ジョブ数
１×0.5（標準タイプ対比加重）＋１×０（データ量対比加重）＝0.5となる。
【００９１】
したがって、
実行中の換算ジョブ数（＝4.5）＋起動候補の換算ジョブ数（＝0.5）
≦同時実行ジョブ最大数（＝５）となるため、対応するジョブが起動される。
【００９２】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【図面の簡単な説明】
【００９３】
【図１】図１は、本実施の形態にかかるＥＡＩサーバの概略を示すブロックダイヤグラムである。
【図２】。図２（ａ）はシステム制限情報テーブルの例を示す図、図２（ｂ）は、処理タイプ別制限情報テーブルの例を示す図、図２（ｃ）は。Ｉ／Ｆ定義テーブルの例を示す図である。
【図３】図３（ａ）は、ファイル定義テーブルの例を示す図、図３（ｂ）は、キューテーブルの例を示す図、図３（ｃ）は、受信データ管理テーブルの例を示す図である。
【図４】図４は、本実施の形態にかかるデータ待ち合わせ処理を概略的に示すフローチャートである。
【図５】図５は、本実施の形態にかかるデータ待ち合わせ処理を概略的に示すフローチャートである。
【図６】図６は、本実施の形態にかかるデータ待ち合わせ処理の例を具体的に説明するための図である。
【図７】図７は、本実施の形態にかかるデータ待ち合わせ処理の例を具体的に説明するための図である。
【図８】図８は、本実施の形態にかかるキューの実行判断を示すフローチャートである。
【図９】図９は、本実施の形態にかかる実行制御部による処理の例を具体的に説明するための図である。
【符号の説明】
【００９４】
１０      ＥＡＩサーバ
１２      入出力Ｉ／Ｆ
１４      データ待ち合わせ処理部
１６      実行制御部
１８      記憶装置
２０      システム制限情報テーブル
２２      処理タイプ別制限情報テーブル
２４      Ｉ／Ｆ定義テーブル
２６      ファイル定義テーブル
２８      受信データ管理テーブル
３０      キューテーブル
【図１】
2005107632.tif 000007
【図２】
2005107632.tif 000008
【図３】
2005107632.tif 000009
【図４】
2005107632.tif 000010
【図５】
2005107632.tif 000011
【図６】
2005107632.tif 000012
【図７】
2005107632.tif 000013
【図８】
2005107632.tif 000014
【図９】
2005107632.tif 000015