JP4287830B2 - ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム - Google Patents

ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム Download PDF

Info

Publication number
JP4287830B2
JP4287830B2 JP2005059474A JP2005059474A JP4287830B2 JP 4287830 B2 JP4287830 B2 JP 4287830B2 JP 2005059474 A JP2005059474 A JP 2005059474A JP 2005059474 A JP2005059474 A JP 2005059474A JP 4287830 B2 JP4287830 B2 JP 4287830B2
Authority
JP
Japan
Prior art keywords
job
variable
takeover
executed
data
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
JP2005059474A
Other languages
English (en)
Other versions
JP2006244172A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005059474A priority Critical patent/JP4287830B2/ja
Publication of JP2006244172A publication Critical patent/JP2006244172A/ja
Application granted granted Critical
Publication of JP4287830B2 publication Critical patent/JP4287830B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ジョブ間のデータ引継ぎを簡易に定義するジョブ管理方法、ジョブ管理装置、ジョブ実行装置、ジョブ管理システム及びそのプログラムに関する。
近年、コンピュータネットワークを用いた情報システムが普及しているが、これらのシステムは、業務の単位に構築・管理運用されるのが通常である。1つの業務システムは、ネットワークに接続された複数のコンピュータからなり、また各コンピュータには、オペレーティングシステムとその用途に応じたミドルウェア(例えば、アプリケーションサーバプログラム、データベースマネージメントシステム等)、ならびに業務用プログラムといった複数のソフトウェアが配備される。そして、業務システムの運用は、これら複数のソフトウェアから提供される運用コマンドの組合せで行われる。この運用に係るコマンドの組合せの多くは定型化が可能であり、ジョブ管理システムによりシステム運用の自動化が図られている。
このようなジョブ管理システムの一例として、既に特許文献1に示すジョブ管理システムが知られている。特許文献1のジョブ管理システムにおいて、ユーザは例えば、図14に示す設定画面の例を見ながらジョブの引継ぎの設定を行う。図14の設定画面では、先行ジョブから後続ジョブにデータを受け渡すように設定が可能であり、ユーザは先行ジョブA1のプロパティ設定枠「標準出力」の設定項目195にファイル名を指定し、後続ジョブA2のプロパティ設定枠の「標準入力」の設定項目194に、「標準出力」の設定項目195で指定したのと同じファイル名を指定する。なお、ここでいう標準出力とは、UNIX(登録商標)やMS−DOS(登録商標)などのオペレーティングシステムが備える標準出力であり、オペレーティングシステム上で実行されるプロセスがその出力先に標準として利用するデバイスである。また、標準入力とは、オペレーティングシステム上で実行されるプロセスがその入力元に標準として利用するデバイスである。
ジョブ管理システムは、ジョブとしてどのコマンドをどのコンピュータでどのパラメタをもって実行するかを示すジョブのフローを定義する。また、ジョブ間では、データの受け渡しが必須であり、その受け渡しを如何に簡易に定義できるかが重要である。
しかしながら、従来のジョブ管理システムでは、このジョブ間のデータ受け渡し定義において、図14の設定画面でファイル名を設定したとしても、前記ファイル名に対応するファイルはオペレーティングシステム上にユーザが用意する必要があった。連続して引継ぎが行われるジョブの数は、時に膨大であるため、ファイル名の設定やファイルの管理など煩雑な作業により、ユーザは多大な負担を強いられていた。
また、ジョブ管理システムは、複数のコンピュータがネットワークで結合された環境で運用されることも多いため、異なるコンピュータ上で実行されるジョブが引継ぎを行う場合もある。このような環境において、ジョブ間でデータの受け渡しを行う場合には、ジョブ間で受け渡すデータをネットワークを介して送信するための専用のジョブを設定しなければならない。ジョブ管理システムがファイル送信機能を備えていない場合は、ミドルウェアなど他のソフトウェアの設定を行わなければならないなど、ジョブの引継ぎの設定にかかるユーザの負担は大きかった。
これらの問題に対処するために、特許文献1では、先行ジョブの標準出力を後続ジョブの標準入力に結合することで、ジョブ間のデータ受け渡し設定を可能とし、煩雑な受け渡しファイルの管理を排除する処理方法を提示している。
特開2004−102449号公報(請求項1ないし請求項11、請求項13ないし請求項15、図11ないし図14)
しかしながら、この方法でも、データを受け取る後続ジョブ間のコマンドは、コマンドパラメタではなく標準入力からの入力を前提にする点、ならびに先行ジョブが出力するデータ形式を意識して解析する必要がある点において、ジョブ管理システムが扱うべきコマンド自身の多様性・汎用性に十分対応しきれない場合がある。一般に、コマンドを提供するソフトウェアの多くは、汎用機能を提供するいわゆるプログラムプロダクトである。また、システムを構成する複数のソフトウェアは通常複数のベンダから提供されるという事情により、そのコマンドのレベルもインタフェースもまちまちとなり、そのままでは前記した前提を満たせないことも多々起こりえるためである。このような場合は、前提を満たすためのデータ変換を行うラッピング関数を作成するなどの付加的対応が必要であり、依然としてユーザの負担が小さいとは言えなかった。
本発明は、ジョブ間のデータ引継ぎに際し、煩雑な受け渡しファイルの管理や付加的なラッピング関数の作成を不要とすることで、ジョブの引継ぎを効率よく設定することを可能とし、ユーザの前記作業負荷を軽減することを課題とする。
前記課題を解決するため、本発明では、ジョブの実行を制御し先行ジョブから後続ジョブへのデータの受け渡しに関する設定が可能なジョブ管理システムを構成し、先行ジョブの設定に際し、標準出力へ出力されるデータ中のどのデータを引継ぎ変数に保存するかを設定する手段と、同じく後続ジョブの設定に際し、入力パラメタへの入力値として前記引継ぎ変数として定義された変数のうちのどの変数を用いるかを定義する手段と、ジョブからジョブへのデータ引継ぎの順序に従ってジョブを実行する手段とを備える。また、引継ぎ変数の定義で指定した正規表現又は割当てルールに従って、引継ぎ変数へ値の割当を行う手段を備え、データの変換を行ってからジョブ間でデータの引継ぎを行う。
この構成によれば、ジョブからジョブへデータ受け渡しを行う順序に従って、ジョブが実行される。
本発明によれば、ジョブの引継ぎの設定において、ジョブの引継ぎをより柔軟に定義できるようになるだけではなく、ジョブの引継ぎにおけるデータ変換のためのルールも設定できるようになり、ジョブの引継ぎの設定におけるユーザの負担が軽減される。
[ジョブネット]
以下、本発明の一実施形態を、図面を参照しながら説明する。
最初に、本実施形態の前提となるジョブネットについて簡単に説明する。ジョブネットとは、ジョブとジョブの間でデータを引き継ぐ関係を規定したものであり、個々のジョブがどのコマンドをどのコンピュータでどのパラメタをもって実行するかを示す情報及びジョブとジョブの順序関係とデータの引継ぎを集約した一連のジョブのフローを指す。従って、ジョブネットは、ジョブを管理する際の単位となるものという側面も持つ。ジョブネットの具体例については、図2を参照した説明において後記する。なお、以下の本実施形態の説明で管理や実行の対象とするものは、ジョブ及びジョブネットである。
[ジョブ管理システムの構成]
図1は、ジョブ管理装置10及びジョブ管理システムの構成例を説明する図である。図1には、4台の計算機10,20,30,40が示されているが、このうち計算機10は、マネージャプログラム(以後、「マネージャ」と称する)11を含み、他の計算機とは異なるジョブ管理の役割を持つ。以後はジョブ管理装置10と記載する。計算機20,30,40は、それぞれエージェントプログラム(以後、「エージェント」と称する)21,31,41を含み、それぞれジョブを実行できる能力を持つ。なお、エージェントを含む計算機の台数は何台でもよく、ジョブ管理装置10がマネージャ11以外にエージェント21を併せ持つ構成も可能である。
[ジョブ管理装置の構成]
ジョブ管理装置10は、主記憶装置101、ハードディスク装置102、CPU(Central Processing Unit)103及びNIC(Network Interface Card)104を含んで構成される計算機である。主記憶装置101はマネージャ11を含み、マネージャ11は、ユーザがジョブネットを定義するジョブネット定義処理部12、その定義情報を管理するジョブネット管理処理部13、ならびに、ジョブネットの解析、ジョブのスケジュール管理、イベントハンドリング、ジョブやジョブネットの実行制御や監視などを行うジョブネット実行制御処理部14を備える。そして、ハードディスク装置102は、ジョブネット定義情報15及びジョブネット実行情報16を含み、ジョブネット定義情報15は、ジョブ定義テーブル150、引継ぎ変数テーブル160及び入力変数パラメタテーブル170を少なくとも含み、ジョブネット実行情報16は、実行時変数テーブル180を少なくとも含む。CPU103は、特定の種類である必要はなく、充分な処理能力を持つ一般的なものを用いることができる。また、NIC104も一般的なものでよく、本実施形態では通信ネットワーク2に接続されていて、エージェント21,31,41を含む計算機20,30,40との通信が可能であればよい。
ジョブネット定義処理部12は、ジョブネットを定義するための情報を取り込む画面を表示し、ユーザとやり取りをして、ジョブネットの定義を読み込む。ジョブネット定義処理部12の動作については、図2を参照した説明において後記する。
ジョブネット管理処理部13は、ジョブネット定義情報をジョブネット定義情報15に格納して、管理する。このジョブネット定義情報には、各ジョブの実行順序やジョブの起動時刻などについての設定情報が含まれる。
ジョブネット実行制御処理部14は、コンピュータ10の内蔵タイマが出力する日時や先行ジョブの実行状況を監視し、ジョブネット定義情報に定義されているジョブの起動タイミングが来ると、そのジョブの実行ホストを特定し、また実行時変数テーブル180を有するジョブネット実行情報16を参照しながらパラメタを確定し、例えば実行ホストがコンピュータ20であればエージェント21に、ジョブの実行を指示する。このとき、エージェント21は、マネージャ11からの要求に従いジョブを実行する。
[ジョブ実行装置の構成]
計算機20,30,40は、それぞれエージェント21,31,41を含み、それぞれマネージャ11からの要求に応じてジョブを実行する機能を持つ。本実施形態では、計算機20,30,40は同等なものであるので、計算機20について説明を行い、計算機30,40については、説明を省略する。計算機20は、ジョブ管理装置10と同様に、主記憶装置201、ハードディスク装置202、CPU203及びNIC204を含んで構成される一般的な計算機である。主記憶装置201は、エージェント21を含み、NIC204は、本実施形態では通信ネットワーク2に接続されていて、ジョブ管理装置10及びエージェント31,41を含む計算機30,40との通信を行うことができるものであればよい。
[ジョブネットの定義処理例]
図2はジョブネット定義処理例を説明する図である。そして、図3は、図2の説明において用いたコマンド例を説明する図である。ここでは、適宜、図3を参照しつつ、図2を用いて、本実施形態におけるジョブネットの定義処理について説明する。
図2においてジョブネット定義例1として示されているジョブネット60の上部には、ジョブ61(ジョブA1)、ジョブ62(ジョブA2)及びジョブ63(ジョブA3)のジョブの繋がりを示す図が書かれているが、これは、3つのジョブからなるジョブネットの一例を示すものである。そして、ジョブ61(ジョブA1)及びジョブ62(ジョブA2)については、それぞれどのような設定が行われているかを示すジョブネット定義部12が表示する設定画面のプロパティ設定枠64,65が示されている。ジョブネットの定義処理は、まず、ジョブ間の引継ぎの順序関係を設定し、各ジョブについてプロパティ設定枠64,65に示されている設定項目を設定することで行われる。
(設定項目)
各ジョブについての設定項目は、基本設定70、引継ぎ変数設定80及び入力パラメタ変数設定90の3種類の設定に分けられる。基本設定70には、そのジョブを実行する実行ホストの識別子を設定する項目71、そのジョブで実行するコマンドを設定する項目72及びコマンドのパラメタを設定する項目73を少なくとも含む。引継ぎ変数設定80には、引継ぎ変数の変数名81及びその変数の値を入力するための変数値の項目82を少なくとも含む。そして、入力パラメタ変数設定90には、基本設定70のパラメタの項目73において用いたパラメタ変数の変数名を設定する項目91及びそのパラメタ変数の値を入力するための項目92を少なくとも含む。
(ジョブネットの設定例)
図2に示されているジョブ61(ジョブA1)の設定の例では、基本設定70の実行ホストの項目71に「host1」、コマンドの項目72に「cmd1.exe」、パラメタの項目73に「−h ?PARM?」と設定されている。これは、ジョブ61(ジョブA1)において、「host1」という計算機において、「cmd1.exe」というコマンドを「−h ?PARM?」というオプションのパラメタを付けて実行するように設定していることを示す。オプションパラメタに含まれる「?PARM?」は、入力パラメタ変数であり、この変数に関しては、後記する入力パラメタ変数設定90の例において、その変数名と値を設定する。
引継ぎ変数設定80においては、引継ぎ変数の変数名の項目81で「AJS2SvrName」という変数名を設定し、変数値の項目82では、「/^SERVER:¥(.*¥)/¥1/」という値の割当てルールを設定している。引継ぎ変数は、そのジョブの出力結果を後に実行されるジョブに引き渡すために値を保存する変数であり、引継ぎ変数の値を用いるのは、そのジョブではなく、後に実行されるジョブである。なお、値の割当てルールについては後記するが、ここで得られる値は図3の出力例111から切り出した「APServer1」である。図2の例では、ジョブ61(ジョブA1)に続いて実行されるジョブ62(ジョブA2)が引き継ぎ変数「AJS2SvrName」を利用している。引継ぎ変数の詳細については後記する。
入力パラメタ変数設定90においては、入力パラメタ変数の変数名の項目91に「PARM」、その変数値の項目92に「APServer1」と設定されている。これは、前記した「cmd1.exe」というコマンドの「−h ?PARM?」というオプションパラメタの「?PARM?」の部分に用いる変数及びその値であり、図2の例では、「cmd1.exe」というコマンドが、入力パラメタ変数「PARM」で引き渡された「APServer1」という値を用いて、「cmd1.exe −h APServer1」という形で実行されることになる。
図2のジョブ62(ジョブA2)においては、基本設定70の実行ホスト項目71で「host2」、コマンドの項目72で「cmd2.exe」、パラメタの項目「−v −h ?TARGET?」という値が設定されている。これは、後記する入力パラメタ変数設定90において、設定される入力パラメタ変数「TARGET」を参照して、「host2」で「cmd2.exe」を「−v −h ?TARGET?」というオプションパラメタを伴って実行する設定になっていることを意味する。
そして、ここで参照された入力パラメタ変数「TARGET」は、入力パラメタ変数設定90において、変数名の項目91で「TARGET」という入力パラメタ変数に変数値の項目92において「A1.?AJS2SvrName?」という値を設定している。この値は、直接的な文字列などの情報であるリテラル(以後、単に「リテラル」と記述する。)とは異なるものであり、「A1」というジョブ(ジョブ61)の引継ぎ変数「AJS2SvrName」で保存された値を参照することになる。
図2の例では、ジョブ61(ジョブA1)の引継ぎ変数の変数値の項目82で指定された「/^SERVER:¥(.*¥)/¥1/」という割当てルールに従って引継ぎ変数「AJS2SvrName」に保存された「APServer1」という値が参照される。このように、ジョブネットの設定においては、それ以後のジョブにおいて、引継ぎ変数に保存された出力結果の一部を参照してジョブを実行することができる。なお、ジョブ62(ジョブA2)における引継ぎ変数設定80には何も設定されていないので、これについては説明を省略する。
ジョブ63(ジョブA3)についても、前記のジョブ61(ジョブA1)及びジョブ62(ジョブA2)と同様の設定を行うことができるが、ここでは、その例の提示及び説明を省略する。
(割当てルール)
引継ぎ変数設定80における変数値の項目82及び入力パラメタ変数設定90における変数値の項目92においては、出力として与えられた文字列から文字列を切り出して値を取り出すルールを記述することができる。前記した図2の例において、ジョブ61(ジョブA1)の引継ぎ変数設定80の変数値82の設定において、「/^SERVER:¥(.*¥)/¥1/」という割当てルールを設定している。このルールは、UNIX(登録商標)やMS−DOS(登録商標)で用いられるいわゆる正規表現と同様のものである。
この例は、与えられた出力の中から、行頭の「SERVER:」という文字列にマッチした後に出現する1文字以上の文字列において、空白文字及び改行文字などの区切り文字以外の文字からなる文字列の中で、最初の文字列を選択して切り出すという例である。この割当てルールに対して、ジョブ61(ジョブA1)の出力として図3のcmd1コマンド(コマンドシグニチャは図3の符号110に示す)の出力例111が与えられた場合、まず、「^SERVER:」がある行、すなわち、行頭に「SERVER:」という文字列がある行だけが選ばれる。そして、正規表現の指定に従い、「SERVER:」という文字列の直後で「¥(.*¥)」という正規表現に該当する文字を見出す。正規表現「¥(.*¥)」は、任意の1文字(「.」)と0文字以上の任意の文字列(「*」)が連続した文字列を意味する。そして、これに該当する文字列があった場合には、この該当する文字列と置き換える形で、正規表現「¥1」が表している最初に出現する区切り文字以外の文字からなる文字列を切り出して値とする。例えば、図3の111に示される出力例に対して、前記の例と同様の「/^PRODUCT:¥(.*¥)/¥1/」という正規表現を与えれば、「ServerConductor」という文字列が切り出される。
なお、本実施形態では、ルールとして、正規表現を利用した割当てルールを用いているが、このようなルールに限定する必要はない。例えば、コマンドの出力で「AJS2xxx:yyy」(xは任意文字)という文字列パターンがあれば、切り出し変数「?AJS
2xxx?」にyyyを自動設定するというような形の正規表現ではうまく表現できないような値の切り出しや変数への代入を定義できるようにしてもよい。また、特定文字列「AJS2」をつけることによって簡易変数指定と解釈するといったルールを決めて、例えば、出力が「AJS2SvrName:<ターゲットサーバ名>」である場合には、図2のプロパティ設定枠64における引継ぎ変数の項目82の設定がない場合にも、引継ぎ変数「?AJS2SvrName? 」を自動的に用意し、それにcmd1コマンドの実行結果である<ターゲットサーバ名>に該当する文字列を代入するようなルールを含めてもよい。
(引継ぎ変数)
引継ぎ変数は、ジョブ間でデータの引継ぎを行うために用いる変数である。引継ぎ変数を用いると、あるジョブの出力の中から必要な情報を取り出して保存し、別のジョブの入力やコマンドのオプションパラメタとして用いることができる。なお、引継ぎ変数を参照する別のジョブは1つである必要はなく、複数のジョブで参照可能である。
引継ぎ変数を用いるためには、まず、引継ぎ変数を定義しなければならない。引継ぎ変数の定義は、先に実行されるジョブで行う必要がある。そして、後に実行されるジョブで参照の方法を指定して、引継ぎ変数によるジョブ間のデータ引継ぎが可能になる。
本実施形態では、図2の例に示すように、ジョブ61(ジョブA1)及びジョブ62(ジョブA2)のプロパティ設定枠64,65内に、引継ぎ変数設定項目80として変数名を設定する項目81と変数値を設定する項目82の組合せを追加することで、引継ぎ変数を定義する。ここで、変数名81は、後続ジョブの入力パラメタ変数定義にて引用される変数の識別子であり、ユーザは、ここには任意の名前を指定する。
同様に、ユーザは、変数値を設定する項目82には、そのジョブで実行するコマンドが出力する標準出力から変数名を設定する項目81で規定される変数に値を割当てる方法を定めるルールを入力する。変数名を設定する項目81と変数値を設定する項目82の組合せは、引継ぎを定義したい変数の個数に応じてジョブネット定義処理部12が表示する定義画面の上で任意に追加できる。
そして、プロパティ設定枠64,65内に、入力パラメタ変数設定項目90の中の変数名を設定する項目91と変数値を設定する項目92の組合せを追加することで、引継ぎによりデータを受け取るジョブにおけるコマンドの入力パラメタにおいて引継ぎ変数を参照する方法を設定する。
なお、ジョブネット定義処理部12は、基本設定70の中のパラメタを設定する項目73の中でユーザが指定した変数を、利用する側でも自動的に指定対象の候補とする。
図2の例では「?」で囲むことで変数表現をしており、文字列が「?」で囲まれているか否かを解析することで、ジョブネット定義処理部12は指定の対象かを判別できる。例えば、ジョブA1のプロパティ設定枠64のパラメタを設定する項目73の指定では「?PARAM?」、ジョブA2のプロパティ設定枠65のパラメタを設定する項目73の指定では「?TARGET?」が指定の対象と判別できる。
これにより、ジョブネット定義処理部12が表示する定義画面は、パラメタを設定する項目73の指定内容に応じて、入力パラメタ変数設定項目90の中の変数名を指定する項目91と変数値を指定する項目92の設定項目の組合せを変数表現されたパラメタの数分用意し、変数名を指定する項目91にはその引継ぎ変数の変数名を自動的に表示するようにして、その引継ぎ変数を受け取る側でも容易に使えるようにする。
図2の例では、ジョブネット定義処理部12の定義画面は、ジョブ61(ジョブA1)の当該ジョブコマンドのパラメタ変数「?PARAM?」に呼応して、プロパティ設定枠64の入力パラメタ変数設定90に、変数名91の設定枠と変数値92設定枠の組を1つ表示し、変数名91の設定枠には「PARAM」を自動的に表示する。変数値92の設定枠には、ユーザは、先行ジョブの前記引継ぎ変数設定80で定義した引継ぎ変数を指定することができる。この変数値92の設定枠では、参照する変数を与えるジョブと引継ぎ変数名も合わせて指定させることにより、直前の先行ジョブのみならず、任意の先行ジョブの引継ぎ変数が指定の対象となる。また、変数値92の設定枠には、ユーザは、引継ぎ変数や割当てルール以外にリテラル値として固定の値を指定することも可能である。
例えば、図2でジョブA2のプロパティ設定枠65における入力パラメタ変数設定90の変数値92の指定「A1.?AJS2SvrName?」は、変数名91が意味する基本設定70で定義したコマンドパラメタの変数「?TARGET?」に、先行ジョブA1の引継ぎ変数「AJS2SvrName」の値を割当てる。この例の表記は、任意のジョブにおける任意の変数の設定枠を独立して指定するようにしてもよい。
(ジョブネット定義情報の格納処理)
図4は、ジョブ定義テーブル150の具体例を、図5は、引継ぎ変数テーブル160の具体例を、図6は、入力パラメタテーブル170の具体例を示す図である。そして、図7は、実行時変数テーブル180の具体例を示す図である。ここでは、これらの図と図1と図2を参照しつつ、ジョブネット定義情報の格納処理について説明する。
ジョブネット定義処理部12とユーザのやり取りによって定義されたジョブネットの定義情報は、ジョブネット管理処理部13に渡され、ジョブネット定義情報15の中の対応するテーブルに格納される。
ジョブネット管理処理部13は、ジョブ定義1つに対して、図4に示すジョブ定義テーブル150に1レコード追加する。基本設定70の実行ホストを設定する項目71、コマンドを設定する項目72及びパラメタを設定する項目73でユーザが指定した値は、対応するレコードの実行ホストの項目154、実行コマンドの項目155及びパラメタ情報の項目156にそれぞれ格納される。
また、ジョブネット管理処理13は、引継ぎ変数設定80で設定された引継ぎ変数1つに対して、図5に示す引継ぎ変数テーブル160に1レコード追加する。図2の例で示す引継ぎ変数設定80の変数名を設定する項目81および変数値を設定する項目82は、それぞれ対応するレコードの変数名を格納する項目163及び変数値を格納する項目164に格納される。
さらに、ジョブネット管理処理13は、入力パラメタ変数設定90で設定された入力パラメタ変数1つに対して、図6に示す入力パラメタ変数テーブル170に1レコード追加する。ユーザが指定した入力パラメタ設定90の各設定項目のうち、変数名を設定する項目91の内容はそのレコードの変数名の項目173に、変数値を設定する項目92の内容はリテラル値の場合は変数値の項目174に、引継ぎ変数の場合は引継ぎ変数名と引継ぎ元ジョブの情報に分解され、それぞれ変数値の項目174と引継ぎ元ジョブの項目175に格納される。
なお、図7に示されている実行時変数テーブル180の内容は、ジョブネット定義が与えられただけでは生成されず、後記するジョブネットの実行の際に生成される。
このようにして、定義及び格納されたジョブネットの実行時には、ジョブネット実行制御処理14は、この定義情報に従いコマンドを起動し、結果としてオペレーティングシステム上に対応するプロセスが生成される。
(引継ぎ変数を用いない引継ぎ)
図8は、引継ぎ変数を用いない出力の引継ぎを説明する図である。図8は、図2と同様のジョブネット定義の例を示していて、図2の例と全く同じデータの引継ぎを行っている例であるが、引継ぎ変数を用いていないという点が異なっている。詳細には、ジョブ61(ジョブA1)の引継ぎ変数設定80が設定されていない点とジョブ62(ジョブA2)の入力パラメタ変数設定90の中の変数値を設定する項目92に「/^SERVER:¥(.*¥)/¥1/」という割当てルールを設定している点が異なる。
図8に示す例では、出力例111に示すジョブ61(ジョブA1)の出力をそのままジョブ62(ジョブA2)で受け取り、このジョブ62(ジョブA2)の側で、割当てルールを実行して、出力のデータの中から行頭の「SERVER:」という文字列の直後に出現する最初の区切り文字ではない文字からなる文字列を取り出して、ジョブ62(ジョブA2)のオプションパラメタで利用している。図8に示す例では、結果としては、図2に示した例と全く同じ事を行っていることになるが、このような引継ぎ変数を用いないデータの引継ぎは、引継ぎ変数を用いるデータの引継ぎよりも制約が多い。
引継ぎ変数を用いている場合には、引継ぎを行う2つのジョブは連続している必要はない。例えば、図2及び図8の例でいえば、ジョブ61(ジョブA1)とジョブ63(ジョブA3)の間のように間に別のジョブが介在していてもよい。しかし、引継ぎ変数を用いない場合には、2つのジョブが連続している場合にしか利用できない。図8の例でいえば、ジョブ61(ジョブA1)とジョブ62(ジョブA2)の間及びジョブ62(ジョブA2)とジョブ63(ジョブA3)の間では引継ぎ変数を用いない引継ぎができるが、ジョブ61(ジョブA1)とジョブ63(ジョブA3)の間では引継ぎができない。
引継ぎ変数を用いない引継ぎを行う場合にも、ジョブとジョブの間での引継ぎを行うために、表面的にはわからない形で変数を用いてデータを引き継いでいる。この時に用いる変数を結果変数と称する。この結果変数と呼ばれる変数は、図7に示される実行時変数テーブル180への記録を伴わずに直接的にジョブからジョブへ引継ぎを行う際の仲立ちをする役割を果たす。本実施形態における引継ぎ変数を用いない引継ぎでは、入力を受け取る側のジョブが割付けルールを用いてデータ変換も簡易に行えることを特徴とする。
[マネージャが行う処理]
図9は、ジョブネット実行時におけるマネージャ11のジョブ実行制御処理部14が行う処理を示すPAD(Problem Analysis Diagram)図である。図9にそって、ジョブネット実行時のジョブ管理システムの処理について説明する。設定されたジョブネットの実行に際し、マネージャ11は利用するメモリの初期化等の初期処理を行った後(S201)、繰り返し処理を行う。この繰り返し処理においては、まず、ジョブネットの受け付け処理を行い(S204)、次に、ジョブネットがどのような順序関係やデータ引継ぎで構成されているかを調べるジョブネット解析処理を行い(S205)、ジョブネット実行処理(S206)を行う。これらの処理を、終了指示の割り込みが入力されるまでの間(S202)、繰り返し実行する。マネージャ11は終了指示を受けると終了処理(S203)を行う。
図10は、マネージャ11が行うジョブネット実行処理S206(図9参照)の詳細を示す図である。マネージャ11は、ジョブネットの実行に際しジョブネットのインスタンス生成を行う(S211)。このとき、マネージャ11は、どのジョブネットのどのインスタンスであるかを特定するインスタンスIDを割付ける。これは、図7に示す実行変数テーブル180のインスタンスIDの項目183に保持されるIDとなる。なお、実行変数テーブル180は、ジョブネットの実行インスタンス毎に引継ぎ変数とその値を管理し、実行時のコマンドパラメタの変数を解決するのに使用されるテーブルである。
次に、マネージャ11は、実行可能なジョブを1つ選出する(S214)。ここで実行可能ジョブとは、ジョブ管理システムが実行待ち状態として管理しているジョブのうち、先行ジョブの終了やイベントの受信など実行開始条件が揃った状態にあるジョブをいう。マネージャ11は選出したジョブに対してジョブ生成処理を行い(S215)、ジョブの実行ホストとコマンド列を生成する。こうして特定した実行先ホストのエージェント21,31,41に対して、当該ジョブのコマンド列を送信する(S216)。なお、この実施例では、ジョブ実行のためのプログラムやデータは、そのジョブの実行時においてコンピュータにセットアップされているものとして説明している。エージェント21,31,41によるジョブの実行後、エージェント21,31,41からマネージャ11にその実行結果が送信される(S217)。そして、マネージャ11は、送信されてきた結果を結果変数に格納し(S218)、受信した結果に対して引継ぎ変数処理を行う(S219)。
前記S214からS219までの処理を、当該ジョブネットに含まれるジョブがなくなるまで繰り返し(S212)、ジョブがなくなった時点で、後処理としてジョブネットインスタンスの削除を行う(S213)。なお、S215とS219のステップについては、それぞれ図11と図12にそって、より詳細に説明する。
図11は、図10におけるジョブ生成処理(S215)の詳細を示すPAD図である。マネージャ11は、図4に示すようなジョブ定義テーブル150からその実行されるジョブの実行ホストの項目154の内容を取得し、その内容から実行先ホストを解析し、特定する(S221)。同じく、ジョブ定義テーブル150からその実行されるジョブのパラメタ情報の項目156の内容を取得して解析し(S222)、パラメタ内に入力パラメタ変数を含むか否かを調べる(S223)。具体的にはパラメタ情報内に「?」で囲まれた変数があるか否かを調べる。
入力パラメタ変数が存在した場合は、図6に示す入力パラメタ変数テーブルを調べ、変数名の項目173と同じエントリの中の変数値の項目174の内容が、引き継ぎ変数を用いた指定(引継ぎ変数指定)か、リテラル値を用いた指定(リテラル値指定)か、割当てルールの記述(割当てルール指定)か、を調べる(S226)。なお、図6の例では、引継ぎ変数指定は「?」で囲まれた変数表現になっていることで特定できる。
引継ぎ変数指定であった場合は、変数値174で表現されている変数名、引継ぎ元ジョブ175が示すジョブのジョブID、ならびに現在実行中のジョブネットのインスタンスIDをもって、前記実行時変数テーブル180を参照して、変数値の項目184の内容を取得して、これを変数名173で指定された変数に割り当てて(未定の)変数を解決する(S228)。
一方、リテラル値指定であった場合、即ち、変数値の項目174の内容が「?」で囲まれた変数表現になっていなくて、かつ、ルールの形式でない場合、これをそのまま変数名の項目173で指定された変数に割り当てる(S229)。
そして、割当てルールだった場合は、結果変数に保持されている先行ジョブの出力結果に対して割当てルールを適用して、変数名173で指定された指定変数へ割当て処理を行う(S230)。
これを、当該ジョブのパラメタ情報156に含まれる全ての引継ぎ変数に対して繰り返し、確定した実行コマンド列を生成する(S224)。
図12は、図10における引継ぎ変数処理(S219)の詳細を説明するPAD図である。以下、適宜、図2、図3及び図7を参照しつつ、説明する。
引継ぎ変数処理において、まず、マネージャ11は、引継ぎ変数の解析を行い(S231)、用いられている引継ぎ変数をすべて列挙する。
そして、ユーザの定義によりジョブネット管理処理部13が生成したジョブネット定義情報15内の引継ぎ変数テーブル160に該当ジョブの変数が定義されているか否かを調べる(S232)。引継ぎ変数が定義されていた場合には、未処理変数が無くなるまで以下の処理を繰り返す(S233)。
まず、引継ぎ変数テーブル160のカラム「変数値164」に格納されている変数割当てルール、例えば、「/^Server:¥(.*¥)/¥1/」のような正規化表現を取得する(S234)。
次に、エージェントから受信した前記ジョブの実行結果(コマンドの出力結果)に対して、当該割当てルールを適用し(S235)、その結果を引継ぎ変数テーブル160中の変数名の項目163で示される引継ぎ変数に割当てる。これは、図2のジョブ61(ジョブA1)の例では、この引継ぎ変数はAJS2SvrNameに該当する。
そして、図4においてジョブID=001で表現されるジョブA1(図2ではジョブ61)の実行コマンドcmd1.exeの出力結果が図3の出力例111である場合には、出力結果に「/^Server:¥(.*¥)/¥1/」が適用されて得られた「APServer1」という値が引継ぎ変数「AJS2SvrName」に割当てられる。そして、マネージャ11は、インスタンスIDの項目183の内容、変数名の項目184の内容とともにこの結果を変数値185として実行時変数テーブル180に格納する(S236)。この結果、実行時テーブル180は図7に示すような状態になる。
これらS234からS236までの処理をその実行するジョブに指定された引継ぎ変数がなくなるまで繰り返す(S233)。
[エージェントが行う処理]
図13はエージェント21,31,41の処理について説明するPAD図である。
実行コンピュータで稼動しているエージェント21,31,41は、利用するメモリ等の初期化等の初期処理を行った後(S241)、以下のプロセスを終了指示の割り込みが入力されるまでの間繰り返す(S242)。
繰り返し処理においては,まず、マネージャ11からのジョブ実行要求を受信し(S244)、これにしたがってジョブ実行を行い(S245)、ジョブの実行結果のマネージャ11への送信する(S246)という処理を繰り返す。
そして、エージェント21,31,41は、終了指示を受けると繰り返し処理をやめて、終了処理を行う(S243)。
以上、本実施形態におけるジョブ管理方法、ジョブ管理装置及びジョブ管理システムについて説明してきたが、前記した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
本実施形態では、ジョブ間のデータ引継ぎを容易に定義できる形に拡張して、ジョブネットを管理、実行することができる。特に、本実施形態では、ジョブとジョブの間のデータ引継ぎにおいて、引継ぎ変数及び割付けルールを利用可能であり、これにより、任意の先行ジョブから簡易に定義したデータ変換機能によって変換したデータを受けとってジョブを実行させることが可能である。そして、これらの機能により、ジョブネットを設定するユーザの負担が軽減される。
また、以上に説明したジョブ管理システムの機能は、ジョブ管理システムの全ての機能を説明している訳ではなく、ジョブ管理システムには、以上に説明した以外にも、ジョブネットワークのスケジューリングによる実行制御機能、繰り返し実行制御、何らかのイベントを検知してジョブの実行を開始する機能、GUIの制御、ネットワークを介した通信機能、ジョブの実行管理のためのキューイング処理を行う機能など、適用されるシステムの形態に応じて他にも様々な公知の機能を備えていてもよい。
なお、本実施形態におけるマネージャ11及びエージェント21,31,41などは、演算手段を用いてプログラムで実現されており、所定の機能を備えた計算機に所定のプログラムを読み込む事でマネージャ11及びエージェント21,31,41として動作できる状態になる。
ジョブ管理装置及びジョブ管理システムの構成例を説明する図である。 ジョブネット定義処理例を説明する図である。 図2の説明において用いたコマンド例を説明する図である。 ジョブ定義テーブルの具体例を示す図である。 引継ぎ変数テーブルの具体例を示す図である。 入力パラメタテーブルの具体例を示す図である。 実行時変数テーブルの具体例を示す図である。 引継ぎ変数を用いない出力の引継ぎを説明する図である。 ジョブネット実行時におけるマネージャのジョブ実行制御処理部が行う処理を示すPAD図である。 マネージャが行うジョブネット実行処理の詳細を示す図である。 図10におけるジョブ生成処理の詳細を示すPAD図である。 図10における引継ぎ変数処理の詳細を説明するPAD図である。 エージェントの処理について説明するPAD図である。 ジョブ管理システムの設定画面の例を示す図である。
符号の説明
2 通信ネットワーク
10 ジョブ管理装置(計算機)
20,30,40 計算機
11 マネージャ
12 ジョブネット定義処理部
13 ジョブネット管理処理部
14 ジョブネット実行制御処理部
15 ジョブネット定義情報
16 ジョブネット実行情報
21,31,41 エージェント
101,201,301,401 主記憶装置
102,202,302,402 ハードディスク装置
103,203,303,403 CPU
104,204,304,404 NIC(ネットワークインタフェースカード)
150 ジョブ定義テーブル
160 引継ぎ変数テーブル
170 入力パラメタ変数テーブル
180 実行時変数テーブル

Claims (3)

  1. 先行して実行される第1のジョブと、第1のジョブが実行された後に実行され、かつ、前記第1のジョブが出力したデータの一部を入力データとする第2のジョブとの間でデータの引継ぎを管理するジョブ管理装置であって、
    前記ジョブ管理装置の記憶部は、
    前記第2のジョブを示す識別子と前記第2のジョブの入力パラメータ変数に関連付けて、前記入力データを出力する前記第1のジョブを示す識別子と、前記第1のジョブが出力し第2のジョブに対して引き継がれるべきデータを示す引継ぎ変数を記憶した入力パラメータ変数テーブルと、
    前記第1のジョブを示す識別子に関連付けて、前記引継ぎ変数と、前記第1のジョブが出力したデータのうち前記第2のジョブが入力データとして必要とする文字列を切り出すルールを定める割当てルールを記憶した引継ぎ変数テーブルと、
    を備え、
    前記ジョブ管理装置の制御部は、
    前記第2のジョブが実行される際に、
    前記入力パラメータ変数テーブルを参照して、前記実行される第2のジョブに対する入力データを出力する第1のジョブを特定する識別子と前記引継ぎ変数を前記入力パラメータ変数毎に取得し、
    前記取得した第1のジョブを特定する識別子と前記引継ぎ変数を検索キーとして、前記引継ぎ変数テーブルを検索して、前記割当てルールを取得し、
    前記取得した割当てルールに基づいて、前記取得された第1のジョブを特定する識別子が特定する第1のジョブが出力したデータのなかから前記実行される第2のジョブが入力データとして必要とする情報を第2のジョブの入力パラメータ毎に抽出し、
    前記抽出した情報を第2のジョブに対して引き渡すべき情報として記憶すること、
    を特徴とするジョブ管理装置。
  2. 先行して実行される第1のジョブと、第1のジョブが実行された後に実行され、かつ、前記第1のジョブが出力したデータの一部を入力データとする第2のジョブとの間でデータの引継ぎを管理するジョブ管理装置を用いたジョブ管理方法であって、
    前記ジョブ管理装置の記憶部は、
    前記第2のジョブを示す識別子と前記第2のジョブの入力パラメータ変数に関連付けて、前記入力データを出力する前記第1のジョブを示す識別子と、前記第1のジョブが出力し第2のジョブに対して引き継がれるべきデータを示す引継ぎ変数を記憶した入力パラメータ変数テーブルと、
    前記第1のジョブを示す識別子に関連付けて、前記引継ぎ変数と、前記第1のジョブが出力したデータのうち前記第2のジョブが入力データとして必要とする文字列を切り出すルールを定める割当てルールを記憶した引継ぎ変数テーブルと、
    を備え、
    前記ジョブ管理装置の制御部は、
    前記第2のジョブが実行される際に、
    前記入力パラメータ変数テーブルを参照して、前記実行される第2のジョブに対する入力データを出力する第1のジョブを特定する識別子と前記引継ぎ変数を前記入力パラメータ変数毎に取得し、
    前記取得した第1のジョブを特定する識別子と前記引継ぎ変数を検索キーとして、前記引継ぎ変数テーブルを検索して、前記割当てルールを取得し、
    前記取得した割当てルールに基づいて、前記取得された第1のジョブを特定する識別子が特定する第1のジョブが出力したデータのなかから前記実行される第2のジョブが入力データとして必要とする情報を第2のジョブの入力パラメータ毎に抽出し、
    前記抽出した情報を第2のジョブに対して引き渡すべき情報として記憶すること、
    を特徴とするジョブ管理方法。
  3. 先行して実行される第1のジョブと、第1のジョブが実行された後に実行され、かつ、前記第1のジョブが出力したデータの一部を入力データとする第2のジョブとの間でデータの引継ぎを管理するジョブ管理装置を機能させるジョブ管理プログラムであって、
    前記ジョブ管理プログラムは、
    前記ジョブ管理装置の記憶部に対し、
    前記第2のジョブを示す識別子と前記第2のジョブの入力パラメータ変数に関連付けて、前記入力データを出力する前記第1のジョブを示す識別子と、前記第1のジョブが出力し第2のジョブに対して引き継がれるべきデータを示す引継ぎ変数を記憶した入力パラメータ変数テーブルと、
    前記第1のジョブを示す識別子に関連付けて、前記引継ぎ変数と、前記第1のジョブが出力したデータのうち前記第2のジョブが入力データとして必要とする文字列を切り出すルールを定める割当てルールを記憶した引継ぎ変数テーブルと、
    を備えさせ、
    前記ジョブ管理装置の制御部に対し、
    前記第2のジョブが実行される際に、
    前記入力パラメータ変数テーブルを参照して、前記実行される第2のジョブに対する入力データを出力する第1のジョブを特定する識別子と前記引継ぎ変数を前記入力パラメータ変数毎に取得し、
    前記取得した第1のジョブを特定する識別子と前記引継ぎ変数を検索キーとして、前記引継ぎ変数テーブルを検索して、前記割当てルールを取得し、
    前記取得した割当てルールに基づいて、前記取得された第1のジョブを特定する識別子が特定する第1のジョブが出力したデータのなかから前記実行される第2のジョブが入力データとして必要とする情報を第2のジョブの入力パラメータ毎に抽出し、
    前記抽出した情報を第2のジョブに対して引き渡すべき情報として記憶する処理を実行させること、
    を特徴とするジョブ管理プログラム。
JP2005059474A 2005-03-03 2005-03-03 ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム Expired - Fee Related JP4287830B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005059474A JP4287830B2 (ja) 2005-03-03 2005-03-03 ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005059474A JP4287830B2 (ja) 2005-03-03 2005-03-03 ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム

Publications (2)

Publication Number Publication Date
JP2006244172A JP2006244172A (ja) 2006-09-14
JP4287830B2 true JP4287830B2 (ja) 2009-07-01

Family

ID=37050522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005059474A Expired - Fee Related JP4287830B2 (ja) 2005-03-03 2005-03-03 ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム

Country Status (1)

Country Link
JP (1) JP4287830B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5331441B2 (ja) * 2008-10-28 2013-10-30 Jfeスチール株式会社 バッチジョブ実行装置、バッチジョブ実行方法およびバッチジョブ実行プログラム
JP5377231B2 (ja) * 2009-10-30 2013-12-25 株式会社東芝 ジョブネット制御プログラムおよびジョブネット制御装置
JP2011141697A (ja) * 2010-01-06 2011-07-21 Canon Inc 制御装置の処理方法及び制御装置
JP2012048674A (ja) * 2010-08-30 2012-03-08 Fujitsu Ltd 資源管理プログラム、資源管理装置及び資源管理方法
JP5905122B2 (ja) * 2012-11-30 2016-04-20 株式会社日立製作所 管理装置、管理方法及びプログラムを格納する記録媒体

Also Published As

Publication number Publication date
JP2006244172A (ja) 2006-09-14

Similar Documents

Publication Publication Date Title
US11288557B2 (en) Long running workflows for document processing using robotic process automation
US8373874B2 (en) Using a web browser on a client to enable and disable a filter program on a printer
JP5777692B2 (ja) コマンドライン環境を使用する遠隔システム管理
KR100763316B1 (ko) 그리드에서 상태 정보를 입수하기 위한 방법 및 장치
US20040015959A1 (en) Software installing method for setting printing environment in a computer on an individual computer basis
US20070047439A1 (en) Method and apparatus of supporting business performance management with active shared data spaces
US8928904B2 (en) Data processing apparatus having a printer driver for changing an output destination
JPH01320551A (ja) フアイル転送方法
CN110249312B (zh) 用于将数据集成作业从源框架转换到目标框架的方法和系统
JP4287830B2 (ja) ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム
JP2008203930A (ja) サーバ装置、ドライバ処理方法、記憶媒体、プログラム
JP4233635B2 (ja) アプリケーション・インタフェースに持続性を提供するための装置および方法
AU2021203637B1 (en) Synchronization of data between local and remote computing environment buffers
JP2008203929A (ja) サーバ装置、クライアント装置、ドライバ処理方法、記憶媒体、プログラム
US7237005B2 (en) Job network setup method, job network execution method, job management system, management terminal and program
JP4867184B2 (ja) 処理態様指定情報変換プログラム及び処理態様指定情報変換方法
JP3772517B2 (ja) 印刷システム、印刷方法、印刷処理プログラムが記録された記録媒体、印刷システムに用いられる印刷制御装置、印刷制御方法及び印刷制御プログラムが記録された記録媒体
JP5209058B2 (ja) ソフトウェア・コンポーネントを作成するための方法
US10592227B2 (en) Versioned intelligent offline execution of software configuration automation
JP2003242127A (ja) 業務統合システム
JP2006040024A (ja) ストレージ管理方法、管理装置及びコンピュータシステム
US20050119901A1 (en) Method, receiving server, and computer program module for the automatic reception and forwarding of document processing orders
JP2008293478A (ja) 文書変換システムおよび文書変換制御プログラム
WO2021156725A1 (en) Method and system for model-driven distributed job execution
JP2015045976A (ja) 印刷制御プログラム、情報処理装置及び印刷システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

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: 20090324

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090327

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees