JP2005107632A - Eaiサーバおよびeaiサーバのプログラム - Google Patents

Eaiサーバおよびeaiサーバのプログラム Download PDF

Info

Publication number
JP2005107632A
JP2005107632A JP2003336966A JP2003336966A JP2005107632A JP 2005107632 A JP2005107632 A JP 2005107632A JP 2003336966 A JP2003336966 A JP 2003336966A JP 2003336966 A JP2003336966 A JP 2003336966A JP 2005107632 A JP2005107632 A JP 2005107632A
Authority
JP
Japan
Prior art keywords
jobs
job
data
queue
identifier
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.)
Pending
Application number
JP2003336966A
Other languages
English (en)
Inventor
Akio Sakuyama
昭男 作山
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.)
Japan Research Institute Ltd
Original Assignee
Japan Research Institute Ltd
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 Japan Research Institute Ltd filed Critical Japan Research Institute Ltd
Priority to JP2003336966A priority Critical patent/JP2005107632A/ja
Publication of JP2005107632A publication Critical patent/JP2005107632A/ja
Pending legal-status Critical Current

Links

Images

Abstract


【課題】 処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行する。
【解決手段】 EAIサーバ10は、データを受信したときに、I/F定義テーブルおよびファイル定義テーブルを参照して、受信したデータに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ処理部14と、キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、換算ジョブ数に基づき、ジョブを起動するか否かを判断する実行制御部16とを備える。
【選択図】 図1

Description

本発明は、EAI(Enterprise Application
Integration)サーバに関し、より詳細には、適切なジョブスケジューリングが実現できるEAIサーバに関する。
EAIサーバは、そのソフトの性格上複数のシステムとのデータ交換を行うサーバとして機能する。EAIサーバに接続されるシステム、ホスト、サーバには、それぞれ、異なるハードウェアアーキテキチャ、異なるOS、異なる文字セット、異なるジョブスケジューリング機構などが装備されている可能性がある。また、EAIサーバに、新規のサーバが接続された場合、既存のサーバとの整合を図る必要もある。
特開2002−189841号公報
その結果、EAIサーバは、以下のような課題を持つシステムとなる。
(1)加工処理の繁忙期と閑散期が極端。
EAIサーバに接続される各システムで、それぞれにジョブスケジューリング機構が装備されているため、EAIサーバにてデータ加工を行う タイミングは、そのデータの発生システムのジョブスケジューリングに従う事になる。その結果、EAIサーバに対して、複数のシステムから短時間に大量のデータ加工依頼が集中し、或いは、ほとんどデータ加工依頼のない時間帯が発生する事となる。
EAIサーバにおいては、ピーク時は大量のデータ加工を実現する必要がある為、膨大なコンピュータ資源 (CPU数、搭載メモリ、利用可能ディスクスペースなど)が必要とされるが、ピーク時以外は、ほとんどコンピュータ資源を利用していないという特性を持っている。その結果、ピーク時の処理を実現可能なコンピュータ資源を準備すると費用対効果が非常に悪くなる。
(2)EAIサーバ上でのデータ加工処理の特性
EAIサーバ上で実行されるデータ加工処理は、おおよそ以下の3つのパターンに分類される場合が多い。
第1のタイプ
大量のコンピュータ資源を消費し、処理時間も長くかかる加工処理。
このパターンの加工処理の特性として、同じパターンの加工処理を同時に実行しない方がよいとされるもの。
第2のタイプ
使用コンピュータ資源も処理時間も平均的な加工処理。
同じパターンの加工処理であれば複数同時実行を行う事により全体のスループット向上につながるもの。
第3のタイプ
使用コンピューターリソースも処理時間も小さな加工処理。
同じパターンの加工処理であればパターン2のものよりも大量に同時実行することが可能なもの。
実際のEAIサーバ上では、上記のような特性を持つ加工処理がランダムに発生するので、単純な同時実行数の制御だけを行うと、コンピュータ資源の不足や余りを発生させてしまう。
(3)複数のファイルを使用する加工処理
EAIサーバ上で加工されるパターンを大別すると
1:1
n:1
1:n
n:m (1、n、mは、それぞれ、ジョブ数)
となるが、このとき、複数のデータを使用して加工を行う場合、どうしても使用するデータの生成を待つ機構が必要となる。
単一のシステム内でこのような処理を実装する場合は、ジョブコントロール・ソフトウェアを使用してデータ生成のタイミングを取ればよいが、複数のシステムを結合させる立場にあるEAIサーバ では、自身の制御機構の中にデータ待ち合わせ機能が必要となる。
特許文献1には、計算機リソースの配分を考慮したワークフロー管理を実現する方法、システムおよび記憶媒体が開示されている。しかしながら、これによっても、上記問題点を解決することは容易ではない。
本発明は、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるEAIサーバおよびそのプログラムを提供することを目的とする。
本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段とを備えたことを特徴とするEAIサーバにより達成される。
好ましい実施態様においては、前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶する。
別の好ましい実施態様においては、前記ジョブ実行制御手段が、前記実行中のジョブの前記換算ジョブ数の総和<同時実行最大ジョブ数であるときに、前記起動すべきキューのジョブを起動する。
より好ましい実施態様においては、前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、前記ジョブ実行制御手段が、さらに、前記実行中のジョブの前記換算ジョブ数の総和<最大同時実行ジョブ数である場合に、前記起動すべきジョブを起動する。
さらに、前記ジョブ実行制御手段が、前記実行中のジョブの前記換算ジョブ数の総和>最大同時実行ジョブ数である場合に、前記換算ジョブ数の総和+前記起動すべきキューのジョブの換算ジョブ数≦同時実行最大所部数であれば、前記起動すべきジョブを起動するのが望ましい。
また、本発明の目的は、ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むEAIサーバにより読み出し可能なプログラムであって、前記EAIサーバを、
前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段として機能させることを特徴とする、EAIサーバにより読み取り可能なプログラムによっても達成される。
好ましい実施態様においては、前記EAIサーバを前記データ待ち合わせ手段として機能させる場合において、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶するように、前記EAIサーバを動作させる。
別の好ましい実施態様においては、前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、前記実行中のジョブの前記換算ジョブ数の総和<同時実行最大ジョブ数であるときに、前記起動すべきキューのジョブを起動するように、前記EAIサーバを動作させる。
より好ましい実施態様においては、前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、前記EAIサーバを、前記ジョブ実行制御手段として機能させる場合において、さらに、前記実行中のジョブの前記換算ジョブ数の総和<最大同時実行ジョブ数である場合に、前記起動すべきジョブを起動するように、前記EAIサーバを動作させる。
また、より好ましくは、前記EAIサーバを前記ジョブ実行制御手段として動作させる場合において、前記実行中のジョブの前記換算ジョブ数の総和>最大同時実行ジョブ数である場合に、前記換算ジョブ数の総和+前記起動すべきキューのジョブの換算ジョブ数≦同時実行最大所部数であれば、前記起動すべきジョブを起動するように、前記EAIサーバを動作させる。
本発明によれば、処理負荷、処理タイプ、ファイルの加工などが種々多様であった場合でも適切な処理を実行することができるEAIサーバおよびそのプログラムを提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかるEAIサーバの概略を示すブロックダイヤグラムである。図1に示すように、本実施の形態にかかるEAIサーバ10は、ネットワークを介して、他のサーバやホストコンピュータと接続され、これらとのデータ授受を制御する入出力インタフェース(I/F)12と、EAIサーバにおけるデータ待ち合わせを実行する待ち合わせ処理部14と、データ加工処理の同時実行数を制御する実行制御部16と、各種テーブルやデータを記憶する記憶装置18とを有する。記憶装置20には、後に詳述するシステム制限テーブル20、処理タイプ別制限情報テーブル22、I/F定義テーブル24と、ファイル定義テーブル26と、受信データ管理テーブル28と、キューテーブル30とが保持される。また、記憶装置20は、他のサーバやホストコンピュータからのデータを収容することができる。
このように構成されたEAIサーバ10における各テーブルについて以下に詳細に説明する。図2(a)はシステム制限情報テーブルの例を示す図である。システム制限情報テーブル200は、項目として、EAIサーバにて同時に実行できる最大ジョブ数を示す「同時実行ジョブ(Job)最大数」と、無制限にEAIサーバを起動することができる最低のジョブ数を示す「最低同時実行ジョブ(Job)数」と、キューをチェックする間隔を示す「キューチェック間隔」を含む。「同時実行ジョブ最大数」などは、EAIサーバのCPU数、メモリ量および平均的な負荷をもつジョブの実行数などに基づいて予め設定される。
図2(b)は、処理タイプ別制限情報テーブルの例を示す図である。本実施の形態において、処理タイプ別制限情報210には、3つの処理タイプが設定され、それぞれのタイプについて、標準の処理タイプのジョブ何本分を換算するかを示す値が付加される。図2(b)の例では、「処理タイプ1」のジョブについては、通常の処理タイプのジョブの「3」本分に換算され、「処理タイプ3」のジョブについては、通常の処理タイプのジョブの「0.5」本分に換算される。また、「処理タイプ2」のジョブが、通常の処理タイプのジョブに相当する。システム制限情報テーブルおよび処理タイプ別制限情報テーブルのレコードは事前に登録される。
図2(c)に示すように、I/F定義テーブル220には、項目として、インタフェースを一意的に特定する「I/F識別子」、インタフェース名称を示す「I/F名称」、および、「優先度」および「処理タイプ」が設けられている。
図3(a)は、ファイル定義テーブルの例を示す図である。図3(a)に示すように、ファイル定義テーブル300には、項目として、ファイルを一意的に特定する「ファイル識別子」、「I/F識別子」、「ファイル名称」、EAIサーバからの送信或いはEAIサーバによる受信を区分する「送受信区分」、ファイルの送信先を示す「送信先情報」、標準的なデータサイズの上限を示す「基準データ量」、および、基準データ量を超えた場合の追加加重を示す「データ量対比加重」が含まれる。I/F定義テーブルおよびファイル定義テーブルにより、1つの加工処理(I/F定義)にて使用されるデータ、生成されるデータ、および、生成されたデータの引渡し先を管理することができる。また、これらI/F定義テーブルおよびファイル定義テーブルのレコードは事前に登録される。
図3(b)は、キューテーブルの例を示す図である。キューテーブル310は、キュー登録日およびキュー番号を示す「キュー識別子」、「I/F識別子」、当該キュー中のジョブの実行状態を示す「実行状態」、「優先度」、「標準タイプ対比加重」、および、加工処理を実行するときのディレクトリを示す「基準Dir」を含む。キューテーブルにより、実際に処理するジョブの実行順序が管理される。
図3(c)は、受信データ管理テーブルの例を示す図である。受信データ管理テーブルには、項目として、「キュー識別子」、「ファイル識別子」、「I/F識別子」、「データ受信状態」および「データ量対比加重」が含まれる。キューテーブルおよび受信データ管理テーブルのレコードは、処理実行時に動的に登録され或いは削除される。
上記構成のテーブルを備えたEAIサーバにおけるデータ待ち合わせ処理について説明する。図4は、データ待ち合わせ処理を概略的に示すフローチャートである。
EAIサーバの入出力I/F12がデータを受理すると、データ待ち合わせ処理部14は、受信したデータのファイル名から、ファイル識別子(以下、「受信時抽出ファイル識別子」と称する)を抽出する(ステップ401)。
ここで、ファイル名の命名規則は、たとえば、(ファイル識別子_受信日時_受信処理プロセス番号.dat) のように、ファイル識別子を含み、かつ、短時間(もしくは、同時)に同一ファイル識別子のデータを受信しても上書きされる危険のないように設定しておくのが望ましい。
次いで、データ待ち合わせ処理部14は、キューテーブルにデータを配置するために、作業用ロックを「ロック状態」にする(ステップ402)。これにより、キューテーブルへのデータ配置が並列動作することが防止される。なお、「ロック状態」は処理終了の際に解除され、「ロック解除状態」となる。
次いで、データ待ち合わせ処理部14は、受信時抽出ファイル識別子を使用して、I/F定義情報テーブルを検索し、I/F識別子、優先度、処理タイプなどを抽出する(ステップ403)。ここでは、たとえば、以下の検索条件が利用され得る。
検索条件:ファイル識別子=受信時抽出ファイル識別子
AND(かつ) 送受信区分=受信
なお、上記値が抽出できなかった場合は(ステップ404でノー(No))、未登録ファイルの受信としてエラー処理を実行される(ステップ405)。
次いで、データ待ち合わせ処理部14は、検索されたI/F識別子(以下、「検索I/F識別子」と称する。)を使用して受信データ管理テーブルを検索する(ステップ406)。たとえば、検索条件、取得順序、取得項目は以下のようなものとなる。
検索条件:I/F識別子=検索I/F識別子
AND ファイル識別子=受信時抽出ファイル識別子
AND データ受信状態=未受信
取得順序:キュー識別子
取得項目:キュー識別子(以下、「受信管理キュー識別子」と称する。)
ファイル識別子(以下、「受信管理ファイル識別子」と称する。)
処理基準ディレクトリ(以下、「検索処理基準ディレクトリ」と称する。)
なお、ここで抽出されるレコードは1件のみである。
検索の結果、レコードが見出された場合(受信待ちであった場合)には(ステップ407でイエス(Yes))、待ち合わせ処理部14は、受信データ管理テーブルを更新する(ステップ408)。データ更新条件、更新項目は以下のとおりである。
更新条件:キュー識別子=受信データ管理キュー識別子
AND ファイル識別子=受信管理ファイル識別子
更新項目:データ受信状態=受信済み
なお、データ量対比加重について、受信したデータのI/F定義情報に基準データ量・データ量対比加重が登録されている場合は、受信したデータのサイズと基準データ量を比較し、 受信したデータ量が大きい場合は、受信管理テーブルのデータ量対比加重がセットされる。その一方、データ量が大きくない場合は、「0(ゼロ)」がセットされる。
また、データ待ち合わせ処理部14は、受信したデータを検索処理基準ディレクトリに移動し(ステップ409)、キューテーブルを更新する(ステップ410)。更新条件は以下のとおりである。
更新条件:キュー識別子=受信管理キュー識別子
なお、更新項目のうち、データ量対比加重については、受信管理テーブルのキュー識別子=受信管理キュー識別子のレコードのデータ量対比加重の合計となる。
その一方、検索の結果、データが見出されなかった場合(つまり、受信待ちしていない場合)には(ステップ407でノー(No))、図5に示すように、待ち合わせ処理部14は、キュー識別子を採番するとともに、基準ディレクトリ「基準Dir」を生成する(ステップ501)。
基準ディレクトリの生成においては、処理日時、処理プログラムのプロセス番号等を使用し、一意性を持ったディレクトリ名が生成される。
次いで、データ待ち合わせ処理部14は、受信データを、生成された基準ディレクトリに移動する(ステップ502)。また、データ待ち合わせ処理部14は、受信管理テーブル検索I/F識別子を使用して、I/F定義情報を検索し(ステップ503)、そのI/F識別子配下にあるファイル識別子すべてについて、先に採番したキュー識別子を使用して受信データ管理テーブルに記憶する(ステップ504)。
このとき、データ受信状態は受信時抽出ファイル識別子のものは、受信済みとし、その他のファイル識別子は未受信として、受信データ管理テーブルに記憶するする。また、I/F定義情報に、「基準データ量・データ量対比加重」が登録されている場合に、
受信したデータのサイズ>基準データ量
が満たされる場合は、受信管理テーブルのデータ量対比加重に、I/F定義情報のデータ量対比加重がセットされる。
次いで、データ待ち合わせ処理部14は、キューテーブルに新規キュー情報を記憶する(ステップ505)。新規キュー情報のレコードには、以下の項目が含まれる。
キュー識別子:先に採番したキュー識別子
I/F識別子:検索I/F識別子
実行状態:実行待ち
優先度 :I/F定義情報の検索時に取得した優先度
処理タイプ対比加重:I/F定義情報の検索時に取得した処理タイプを使用して処理タイプ別制限情報テーブルを検索して得られた標準タイプ対比加重
基準Dir:先に生成した基準Dir
データ量対比加重合計:上記受信データ管理テーブルに記憶した時のデータ量対比加重
このような、処理ロジックを使用する事により、同一ファイル識別子のデータが多数受信された場合でも、I/Fで使用するデータがFIFO(First In First Out)で結合されて処理される。
たとえば、図6(a)に示すように、他のシステムから「R0001_200307071354_12345.dat」というファイル名のデータを受理した場合を考える。この例では、ファイル名からファイル識別子を抽出すると、「R0001」となる。また、I/Fテーブル(図6(b)参照)から、このファイル識別子は、「2:1のI/F」であることがわかる。
データ待ち合わせ処理部14は、ファイル定義テーブル(図6(c)参照)のレコードを参照して、すでにファイル定義テーブル中に存在するか否かを判断する。この例では、対応するレコードがファイル定義テーブルに存在している(符号601参照)。また、そのファイル識別子が、そのファイル識別子が受信データ管理テーブル(図7(a)参照)に、そのデータ受信状態が「未受信」の状態で存在しているか
Figure 2005107632
確認する。この例では、対応するレコードのデータ受信状態は「未受信」となっている(符号702参照)
次いで、その未受信データの一番古いキュー識別子が
Figure 2005107632
取得される。また、受信したファイルのサイズとファイル定義 テーブルの基準データ量とが比較され、基準データ量より大きい場合には、ファイル定義テーブルのデータ量対比加重が、受信データ管理テーブルにセットされる。
Figure 2005107632
次いで、 キューテーブルから基準ディレクトリ「基準Dir」が取得され、受信したデータが移動される。
Figure 2005107632
この後、キューのデータ量対比加重項目が再計算され、実行状態が変更される。図7(b)は、キューテーブルの状態の一例を示す。
次に、本実施の形態にかかる実行制御部16における処理について説明する。実行制御部16における データ加工処理の同時実行数の制御は、そのシステムでの平均的な加工処理の負荷から割り出した同時実行ジョブ最大数まで加工処理を起動するように行われる。
個々のジョブ起動開始判定時には、そのジョブの処理タイプに課せられた標準タイプ対比加重と、受信データ量から算出したデータ量対比加重とを使用して実行判定が行われる。
図8は、キューの実行判断を示すフローチャートである。実行制御部16は、キューテーブル中に実行待ちのものがあるかチェックする(ステップ801)。ここでは、キューテーブルから「実行状態=実行待ち」のレコード数が算出される。 実行待ちのものがなければ(ステップ801でノー(No))、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープし、ステップ801に戻る。
これに対して、実行待ちのものがあった場合には(ステップ801でイエス(Yes))、実行制御部16は、キューテーブルから以下の情報を取得する(ステップ802)。
実行ジョブ総本数:「キューテーブルの実行状態=実行中」であるレコード件数
実行中換算ジョブ数(以下、「JRUN」と称する):
「キューテーブルの実行状態=実行中」であるレコードの
標準タイプ対比加重の合計とデータ量対比加重合計との総計
次いで、処理枠の有無が判定される(ステップ803)。より具体的には、以下の条件を満たす場合には、処理枠あると判定される。
JRUN<システム制限情報テーブル中の同時実行ジョブ最大数
ステップ803でノー(No)と判断された場合には、システム制限情報テーブル中、キューチェック間隔で指定された時間だけスリープして、ステップ801に戻る。これに対して、ステップ603でイエス(Yes)と判断された場合には、以下の処理が実行される。
実行制御部16は、最低実行ジョブ数の処理枠を判定する(ステップ804)。ここでは、以下の条件が満たされた場合に、最低実行ジョブ本数の処理枠ありと判定する。
JRUN<システム制限情報テーブル中の最低同時実行ジョブ数
ステップ804でイエス(Yes)と判断された場合には、キューテーブルの先頭にあるジョブについて、キューの実行状態を「実行中」に変更する(ステップ805)。なお、本実施の形態において、キューテーブルは、優先度、キュー識別子の順番で取り扱われる。次いで、そのキューのジョブが起動され(ステップ806)、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープした後、ステップ401に戻る。
これに対して、ステップ804でノー(No)と判断された場合には、実行制御部16は、キューテーブルの先頭にあるジョブの換算ジョブ数を算出する(ステップ807)。
換算ジョブ数は、以下のように求められる。
換算ジョブ数(JQUE)=1×(キューの処理タイプから実行制限情報を検索して得られた
標準タイプ対比加重)+(1×処理キューテーブルのデータ量対比加重)
次いで、実行制御部16は、以下の条件に基づき、ジョブが実行可能か判定する(ステップ808)。
JRUN+JQUE≦(システム制限情報テーブル中の同時実行ジョブ最大数)
上記条件が満たされる場合には(ステップ608でイエス(Yes))ジョブが実行可能であると判断する。この場合には、実行制御部16は、キューテーブルの先頭にあるジョブについて、キューの実行状態を「実行中に」変更する(ステップ805)。次いで、そのキューのジョブが起動され(ステップ806)、システム制限情報テーブル中のキューチェック間隔で指定された時間だけスリープした後、ステップ801に戻る。
システム情報テーブル、処理タイプ別制限情報テーブル、キューテーブルおよび受信データテーブルに、それぞれ図9(a)〜(d)に示すようなデータが与えられていた場合を例にして、上記実行制御部16の処理をより詳細に説明する。
実行ジョブ数が「0(ゼロ)」の状態において、キューテーブルおよび受信データテーブルが、それぞれ、図9(c)、(d)に示すようになったとき、ジョブの実行制御は以下のようなものとなる。
(1)キュー=2003070100001を検知したとき
実行総本数=0
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
したがって、
実行総本数(=0)<最低同時実行ジョブ数(=2)となるため、対応するジョブが起動される。
(2)キュー=2003070100002を検知したとき(なお、終了したジョブはないと考える。)
実行総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
したがって、
実行総本数(=1)<最低同時実行ジョブ数(=2)となるため、対応するジョブが起動される。
(3)キュー=2003070100003を検知したとき(なお、終了したジョブはないと考える。)
実行総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
したがって、
実行総本数(=2)<最低同時実行ジョブ数(=2)とならないため、実行中のジョブの換算ジョブ数が算出される。
ここでは、
キュー=2003070100001の換算ジョブ数:
1×3(標準タイプ対比加重)+1×0(データ量対比加重)=3
キュー=2003070100002の換算ジョブ数:
1×3(標準タイプ対比加重)+1×0(データ量対比加重)=3
したがって、
実行中のジョブの換算ジョブ数=6
となり、7
実行中のジョブの換算ジョブ数(=6)<同時実行ジョブ最大数(=5)とならないため、
ジョブの起動は見合わせられて、スリープとなる。
(4)キュー=2003070100001 終了後のチェック時
この場合、キュー=2003070100003が検知される。
実行総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=1)<最低同時実行ジョブ数(=2)となるため、対応するジョブが起動される。
(5)キュー=2003070100004を検知したとき(なお、新たに終了したジョブはなしとする。)
実行総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=2)<最低同時実行ジョブ数(=2)とならないため、実行中のジョブの換算ジョブ数が算出される。
ここでは、
キュー=2003070100002の換算ジョブ数:
1×3(標準タイプ対比加重)+1×0(データ量対比加重)=3
キュー=2003070100003の換算ジョブ数:
1×1(標準タイプ対比加重)+1×0(データ量対比加重)=1
したがって、
実行中のジョブの換算ジョブ数=4
となり、
実行中のジョブの換算ジョブ数(=4)<同時実行ジョブ最大数(=5)となる。
また、キュー=2003070100004の換算ジョブ数:
1×3(標準タイプ対比加重)+1×1(データ量対比加重)=4
となり、
実行換算ジョブ数(=4)+対象ジョブ換算ジョブ数(=4)
<同時実行ジョブ最大数(5)とならないため、ジョブの起動は見合わせられ、スリープとなる。
(6)キュー=2003070100002 終了後のチェック時
この場合、キュー=2003070100004が検知される。
実行総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=1)<最低同時実行ジョブ数(=2)となるため、対応するジョブが起動される。
(7)キュー=2003070100005を検知した時(新たに終了したジョブはなしと考える。)
実行総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=2)<最低同時実行ジョブ数(=2)とならないため、実行中のジョブの換算ジョブ数が算出される。
ここでは、
キュー=2003070100003の換算ジョブ数:
1×1(標準タイプ対比加重)+1×0(データ量対比加重)=1
キュー=2003070100004の換算ジョブ数:
1×3(標準タイプ対比加重)+1×1(データ量対比加重)=4
したがって、
実行中のジョブの換算ジョブ数=5
となり、
実行中のジョブの換算ジョブ数(=5)<同時実行ジョブ最大数(=5)とならないため、ジョブの起動は見合わせられ、スリープとなる。
(8)キュー=2003070100003 終了後のチェック時
この場合、キュー=2003070100005が検知される。
実行総本数=1
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=1)<最低同時実行ジョブ数(=2)となるため、ジョブが起動される。
(9)キュー=2003070100006を検知した時(新たに終了したジョブはなしと考える。)
この場合には、
実行総本数=2
同時実行ジョブ最大数=5
最低同時実行ジョブ数=2
であり、
実行総本数(=2)<最低同時実行ジョブ数(=2)とならないため、実行中のジョブの換算ジョブ数が算出される。
キュー=2003070100004の換算ジョブ数:
1×3(標準タイプ対比加重)+1×1(データ量対比加重)=4
キュー=2003070100005の換算ジョブ数:
1×0.5(標準タイプ対比加重)+1×0(データ量対比加重)=0.5
したがって、
実行中のジョブの換算ジョブ数=4.5
となり、
起動候補のジョブの換算ジョブ数(=4.5)<同時実行ジョブ最大数(5)となる。また、
キュー=2003070100006の換算ジョブ数
1×0.5(標準タイプ対比加重)+1×0(データ量対比加重)=0.5となる。
したがって、
実行中の換算ジョブ数(=4.5)+起動候補の換算ジョブ数(=0.5)
≦同時実行ジョブ最大数(=5)となるため、対応するジョブが起動される。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
図1は、本実施の形態にかかるEAIサーバの概略を示すブロックダイヤグラムである。 。図2(a)はシステム制限情報テーブルの例を示す図、図2(b)は、処理タイプ別制限情報テーブルの例を示す図、図2(c)は。I/F定義テーブルの例を示す図である。 図3(a)は、ファイル定義テーブルの例を示す図、図3(b)は、キューテーブルの例を示す図、図3(c)は、受信データ管理テーブルの例を示す図である。 図4は、本実施の形態にかかるデータ待ち合わせ処理を概略的に示すフローチャートである。 図5は、本実施の形態にかかるデータ待ち合わせ処理を概略的に示すフローチャートである。 図6は、本実施の形態にかかるデータ待ち合わせ処理の例を具体的に説明するための図である。 図7は、本実施の形態にかかるデータ待ち合わせ処理の例を具体的に説明するための図である。 図8は、本実施の形態にかかるキューの実行判断を示すフローチャートである。 図9は、本実施の形態にかかる実行制御部による処理の例を具体的に説明するための図である。
符号の説明
10 EAIサーバ
12 入出力I/F
14 データ待ち合わせ処理部
16 実行制御部
18 記憶装置
20 システム制限情報テーブル
22 処理タイプ別制限情報テーブル
24 I/F定義テーブル
26 ファイル定義テーブル
28 受信データ管理テーブル
30 キューテーブル

Claims (10)

  1. ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、
    ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、
    複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、
    インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、
    ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、
    ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、
    前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルと、
    前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段と、
    前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重を考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段とを備えたことを特徴とするEAIサーバ。
  2. 前記データ待ち合わせ手段が、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶することを特徴とする請求項1に記載のEAIサーバ。
  3. 前記ジョブ実行制御手段が、
    前記実行中のジョブの前記換算ジョブ数の総和<同時実行最大ジョブ数
    であるときに、前記起動すべきキューのジョブを起動することを特徴とする請求項1または2に記載のEAIサーバ。
  4. 前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、
    前記ジョブ実行制御手段が、さらに、
    前記実行中のジョブの前記換算ジョブ数の総和<最大同時実行ジョブ数
    である場合に、前記起動すべきジョブを起動することを特徴とする請求項3に記載のEAIサーバ。
  5. 前記ジョブ実行制御手段が、
    前記実行中のジョブの前記換算ジョブ数の総和>最大同時実行ジョブ数
    である場合に、
    前記換算ジョブ数の総和+前記起動すべきキューのジョブの換算ジョブ数
    ≦同時実行最大所部数
    であれば、前記起動すべきジョブを起動することを特徴とする請求項4に記載のEAIサーバ。
  6. ネットワークを介して接続された複数の他のコンピュータとのデータ交換を行うEAIサーバであって、ジョブの最大実行数を示す同時実行ジョブ最大数を含むシステム制限情報テーブルと、複数の処理タイプのそれぞれについて、標準の処理タイプのジョブの何本分に相当するかを示す標準タイプ対比加重を含む処理タイプ別標準情報テーブルと、インタフェースの識別子を示すI/F識別子、その名称を示すI/F名称、処理のタイプおよび実行されるジョブ名を示す実行ジョブ名からなるI/F定義テーブルと、ファイルを識別するためのファイル識別子、前記I/F識別子、ファイル名称、送受信の区分を表す送受信区分、標準的なデータの上限を示す基準データ量、および、基準データ量を超えた場合に追加すべき加重を示すデータ量対比加重を含むファイル定義テーブルと、ジョブの起動により動的にその内容が更新されるキューテーブルであって、キューを一意的に識別するためのキュー識別子、I/F識別子、ジョブの実行状態、標準タイプ対比加重、データ量対比加重の合計、および、実行ジョブ名を示すキューテーブルと、前記ネットワークを介した他のコンピュータからの受信に応じて動的にその内容が更新される受信データ管理テーブルであって、キュー識別子、ファイル識別子、I/F識別子、受信したデータの受信状態、および、データ量対比加重を含むデータ受信管理テーブルとを含むEAIサーバにより読み出し可能なプログラムであって、前記EAIサーバを、
    前記ネットワークを介してデータを受信したときに、前記I/F定義テーブルおよびファイル定義テーブルを参照して、当該データに関するジョブのI/F定義情報およびファイル定義情報を特定し、受信データ管理テーブルに、新規に採番されたキュー識別子を、受信したデータのデータ量に基づくデータ量対比加重を含む必要な情報とともに記憶し、かつ、キューテーブルに、前記データ量対比加重および処理タイプに応じた標準タイプ対比加重を含む必要な情報を記憶するデータ待ち合わせ手段、および、
    前記キューテーブルを参照して、起動すべきジョブを特定し、標準タイプ対比加重およびデータ量対比加重とを考慮して、実際の負荷に相当する換算ジョブ数を割り出し、当該換算ジョブ数に基づいて、当該ジョブを起動するか否かを判断するジョブ実行制御手段として機能させることを特徴とする、EAIサーバにより読み取り可能なプログラム。
  7. 前記EAIサーバを前記データ待ち合わせ手段として機能させる場合において、前記受信したデータのサイズと、前記ファイル定義テーブル中の基準データ量とを比較して、前記受信管理テーブルに、データ量対比加重を記憶するように、前記EAIサーバを動作させることを特徴とする請求項6に記載のプログラム。
  8. 前記EAIサーバを前記ジョブ実行制御手段として機能させる場合において、
    前記実行中のジョブの前記換算ジョブ数の総和<同時実行最大ジョブ数
    であるときに、前記起動すべきキューのジョブを起動するように、前記EAIサーバを動作させることを特徴とする請求項6または7に記載のプログラム。
  9. 前記システム制限テーブルが、同時に起動する最低ジョブ数を示す最低同時実行ジョブ数を含み、
    前記EAIサーバを、前記ジョブ実行制御手段として機能させる場合において、さらに、
    前記実行中のジョブの前記換算ジョブ数の総和<最大同時実行ジョブ数
    である場合に、前記起動すべきジョブを起動するように、前記EAIサーバを動作させることを特徴とする請求項8に記載のプログラム。
  10. 前記EAIサーバを前記ジョブ実行制御手段として動作させる場合において、
    前記実行中のジョブの前記換算ジョブ数の総和>最大同時実行ジョブ数
    である場合に、
    前記換算ジョブ数の総和+前記起動すべきキューのジョブの換算ジョブ数
    ≦同時実行最大所部数
    であれば、前記起動すべきジョブを起動するように、前記EAIサーバを動作させることを特徴とする請求項9に記載のプログラム。
JP2003336966A 2003-09-29 2003-09-29 Eaiサーバおよびeaiサーバのプログラム Pending JP2005107632A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003336966A JP2005107632A (ja) 2003-09-29 2003-09-29 Eaiサーバおよびeaiサーバのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003336966A JP2005107632A (ja) 2003-09-29 2003-09-29 Eaiサーバおよびeaiサーバのプログラム

Publications (1)

Publication Number Publication Date
JP2005107632A true JP2005107632A (ja) 2005-04-21

Family

ID=34532926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003336966A Pending JP2005107632A (ja) 2003-09-29 2003-09-29 Eaiサーバおよびeaiサーバのプログラム

Country Status (1)

Country Link
JP (1) JP2005107632A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703803B1 (ko) * 2006-01-04 2007-04-09 삼성전자주식회사 어플리케이션의 안정성을 위한 메시지 처리 장치 및 방법
JP2008310695A (ja) * 2007-06-15 2008-12-25 Ntt Docomo Inc 移動通信端末
JP2013171565A (ja) * 2012-02-23 2013-09-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
JP2019159385A (ja) * 2018-03-07 2019-09-19 富士ゼロックス株式会社 処理割当装置及び処理割当プログラム
CN112416589A (zh) * 2020-11-21 2021-02-26 广州西麦科技股份有限公司 一种用于运维平台定时作业错峰执行的方法
WO2022108108A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치 및 그의 제어 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100703803B1 (ko) * 2006-01-04 2007-04-09 삼성전자주식회사 어플리케이션의 안정성을 위한 메시지 처리 장치 및 방법
JP2008310695A (ja) * 2007-06-15 2008-12-25 Ntt Docomo Inc 移動通信端末
JP2013171565A (ja) * 2012-02-23 2013-09-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
JP2019159385A (ja) * 2018-03-07 2019-09-19 富士ゼロックス株式会社 処理割当装置及び処理割当プログラム
JP7077676B2 (ja) 2018-03-07 2022-05-31 富士フイルムビジネスイノベーション株式会社 処理割当装置及び処理割当プログラム
WO2022108108A1 (ko) * 2020-11-20 2022-05-27 삼성전자주식회사 전자 장치 및 그의 제어 방법
CN112416589A (zh) * 2020-11-21 2021-02-26 广州西麦科技股份有限公司 一种用于运维平台定时作业错峰执行的方法

Similar Documents

Publication Publication Date Title
CN111522639B (zh) Kubernetes集群架构系统下多维资源调度方法
JP4569846B2 (ja) I/oノード制御方式及び方法
US7810099B2 (en) Optimizing workflow execution against a heterogeneous grid computing topology
JP3882931B2 (ja) 仮想計算機環境におけるディスパッチ機能の管理
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US6411982B2 (en) Thread based governor for time scheduled process execution
US20060206894A1 (en) Method of scheduling jobs using database management system for real-time processing
US7769715B2 (en) Synchronization of access permissions in a database network
US6189007B1 (en) Method and apparatus for conducting a high performance locking facility in a loosely coupled environment
JPWO2006100752A1 (ja) 分散処理管理装置、分散処理管理方法、分散処理管理プログラム
JP2009294695A (ja) トランザクション並行制御方法、データベース管理システム、およびプログラム
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
CN111897638A (zh) 分布式任务调度方法及系统
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
JP2005107632A (ja) Eaiサーバおよびeaiサーバのプログラム
JP2005107824A (ja) Eaiサーバおよびeaiサーバのプログラム
JP2009037544A (ja) データベース処理方法、その実施システム及びプログラム
US7721287B2 (en) Organizing transmission of repository data
JP2021060707A (ja) 同期制御システムおよび同期制御方法
CN111475306A (zh) 微服务节点、异步任务处理方法、系统和存储介质
JP2008159019A (ja) プログラムの実行処理装置
JP2007317038A (ja) 自動処理汎用制御システム、制御装置、自動処理汎用制御方法、自動処理汎用制御装置、プログラム、及び、記録媒体
JP2003203061A (ja) 並列計算機システムおよび並列計算機システムにおける計算ノードの選択用プログラム
JPH09114684A (ja) ジョブ振り分け方法