(57)【要約】【課題】  複数のジョブ間でデータの受け渡しを行う場合に、ユーザが容易に利用できるジョブ間のデータの受け渡し手段及びデータ加工のルールを指定する手段を提供することを課題とする。【解決手段】  マネージャプログラム１１が、一連のジョブ処理の実行順序及びデータの引継ぎの設定であるジョブネットをジョブネット定義処理部１２による設定画面に従ってユーザに定義させ、ジョブネット実行制御処理部１４を用いて前記ジョブネットの定義に基づいてエージェントプログラムにジョブ実行要求を出し、ジョブ間のデータの受け渡し及びデータ加工のルール指定に基づくジョブ出力データ加工を行い、後続のジョブに加工された出力データを入力として受け渡すことで、ジョブネットを実行する構成をとる。【選択図】      図１
2006244172.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１台の計算機からなる計算機システムにおいて、ジョブ間でデータの引継ぎ行い、ジョブの実行を管理するジョブ管理方法であって、
前記計算機システムを構成する１台の計算機が、
ジョブ間でデータの受け渡しを設定する手段と
ジョブ間のデータ受け渡し設定を保存する手段と
ジョブの定義情報を保存するデータベースと
ジョブ間で受け渡すデータを保存する手段と
ジョブ間で受け渡すデータを変換して受け渡す手段を備え、
前記ジョブ間でデータの受け渡しを設定する手段がジョブの実行順序及びデータ受け渡し方法を設定し、
前記ジョブ間のデータ受け渡し設定を保存する手段が前記データベースに前記ジョブの実行順序及びデータ受け渡し方法を保存し、
第１のジョブから第２のジョブへデータを受け渡すジョブ実行を行う場合に、
前記ジョブ間で受け渡すデータを保存する手段が前記第１のジョブの出力データを保存して、
前記ジョブ間で受け渡すデータを変換して受け渡す手段が、前記第２のジョブに前記データを受け渡すこと
を特徴とするジョブ管理方法。
【請求項２】
請求項１に記載のジョブ管理方法であって、
前記ジョブ間で受け渡すデータを変換して受け渡す手段が、前記第１のジョブの出力結果からデータを切り出すルールに従ってデータを変換すること
を特徴とするジョブ管理方法。
【請求項３】
請求項１又は請求項２に記載のジョブ管理方法であって、
前記ジョブ間で受け渡すデータを変換して受け渡す手段が、前記第２のジョブにデータを受け渡す際に第２のジョブで前記データを利用する方法を指定すること
を特徴とするジョブ管理方法。
【請求項４】
請求項１又は請求項２に記載のジョブ管理方法であって、
前記第１のジョブから前記第２のジョブへデータを受け渡すジョブ実行を行う場合に、
前記ジョブ間で受け渡すデータを変換して受け渡す手段が、前記第１のジョブの出力データを第２のジョブに受け渡し、
前記ジョブ間で受け渡すデータを変換して受け渡す手段が、前記第２のジョブにおいてデータを切り出すルールに従ってデータを変換すること
を特徴とするジョブ管理方法。
【請求項５】
複数のジョブ間でデータの引継ぎ行い、ジョブの実行を管理するジョブ管理装置であって、
ジョブの実行順序及びデータ受け渡し方法を設定するジョブ間でデータの受け渡しを設定する手段と
ジョブの定義情報を保存するデータベースと
ジョブ間のデータ受け渡し設定を保存する手段と
前記データベースに前記ジョブの実行順序及びデータ受け渡し方法を保存するジョブ間で受け渡すデータを保存する手段と
ジョブ間で受け渡すデータを変換して受け渡す手段を備えること
を特徴とするジョブ管理装置。
【請求項６】
請求項５に記載のジョブ管理装置と連携して動作するジョブ実行装置であって、
前記ジョブ管理装置からの要求に応じてジョブを実行する手段を備え、
前記ジョブ管理装置から入力データとジョブの実行要求を受け取り、
要求されたジョブを実行し、
前記ジョブの実行結果を前記のジョブ管理装置へ引き渡すこと
を特徴とするジョブ実行装置。
【請求項７】
少なくとも１台の請求項５に記載のジョブ管理装置及び請求項６に記載のジョブ実行装置を含んで構成されるジョブ管理システムであって、
前記ジョブ管理装置が、ジョブ及びジョブ間の順序関係もしくはジョブ間でデータの受け渡しを管理して、
前記ジョブ実行装置にジョブの実行要求を出し、
前記ジョブ実行装置が、前記ジョブ管理装置から入力データとジョブの実行要求を受け取り、
要求されたジョブを実行し、
前記ジョブの実行結果を前記ジョブ管理装置へ引き渡し、
前記ジョブ管理装置が、前記ジョブの実行結果を保存し、
後続のジョブへ受け渡すこと
を特徴とするジョブ管理システム。
【請求項８】
請求項５に記載のジョブ管理装置の機能を計算機上に実現するためのプログラム。
【請求項９】
請求項６に記載のジョブ実行装置の機能を計算機上に実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ間のデータ引継ぎを簡易に定義するジョブ管理方法、ジョブ管理装置、ジョブ実行装置、ジョブ管理システム及びそのプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータネットワークを用いた情報システムが普及しているが、これらのシステムは、業務の単位に構築・管理運用されるのが通常である。１つの業務システムは、ネットワークに接続された複数のコンピュータからなり、また各コンピュータには、オペレーティングシステムとその用途に応じたミドルウェア（例えば、アプリケーションサーバプログラム、データベースマネージメントシステム等）、ならびに業務用プログラムといった複数のソフトウェアが配備される。そして、業務システムの運用は、これら複数のソフトウェアから提供される運用コマンドの組合せで行われる。この運用に係るコマンドの組合せの多くは定型化が可能であり、ジョブ管理システムによりシステム運用の自動化が図られている。
【０００３】
このようなジョブ管理システムの一例として、既に特許文献１に示すジョブ管理システムが知られている。特許文献１のジョブ管理システムにおいて、ユーザは例えば、図１４に示す設定画面の例を見ながらジョブの引継ぎの設定を行う。図１４の設定画面では、先行ジョブから後続ジョブにデータを受け渡すように設定が可能であり、ユーザは先行ジョブＡ１のプロパティ設定枠「標準出力」の設定項目１９５にファイル名を指定し、後続ジョブＡ２のプロパティ設定枠の「標準入力」の設定項目１９４に、「標準出力」の設定項目１９５で指定したのと同じファイル名を指定する。なお、ここでいう標準出力とは、ＵＮＩＸ（登録商標）やＭＳ−ＤＯＳ（登録商標）などのオペレーティングシステムが備える標準出力であり、オペレーティングシステム上で実行されるプロセスがその出力先に標準として利用するデバイスである。また、標準入力とは、オペレーティングシステム上で実行されるプロセスがその入力元に標準として利用するデバイスである。
【０００４】
ジョブ管理システムは、ジョブとしてどのコマンドをどのコンピュータでどのパラメタをもって実行するかを示すジョブのフローを定義する。また、ジョブ間では、データの受け渡しが必須であり、その受け渡しを如何に簡易に定義できるかが重要である。
【０００５】
しかしながら、従来のジョブ管理システムでは、このジョブ間のデータ受け渡し定義において、図１４の設定画面でファイル名を設定したとしても、前記ファイル名に対応するファイルはオペレーティングシステム上にユーザが用意する必要があった。連続して引継ぎが行われるジョブの数は、時に膨大であるため、ファイル名の設定やファイルの管理など煩雑な作業により、ユーザは多大な負担を強いられていた。
【０００６】
また、ジョブ管理システムは、複数のコンピュータがネットワークで結合された環境で運用されることも多いため、異なるコンピュータ上で実行されるジョブが引継ぎを行う場合もある。このような環境において、ジョブ間でデータの受け渡しを行う場合には、ジョブ間で受け渡すデータをネットワークを介して送信するための専用のジョブを設定しなければならない。ジョブ管理システムがファイル送信機能を備えていない場合は、ミドルウェアなど他のソフトウェアの設定を行わなければならないなど、ジョブの引継ぎの設定にかかるユーザの負担は大きかった。
【０００７】
これらの問題に対処するために、特許文献１では、先行ジョブの標準出力を後続ジョブの標準入力に結合することで、ジョブ間のデータ受け渡し設定を可能とし、煩雑な受け渡しファイルの管理を排除する処理方法を提示している。
【特許文献１】特開２００４−１０２４４９号公報（請求項１ないし請求項１１、請求項１３ないし請求項１５、図１１ないし図１４）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、この方法でも、データを受け取る後続ジョブ間のコマンドは、コマンドパラメタではなく標準入力からの入力を前提にする点、ならびに先行ジョブが出力するデータ形式を意識して解析する必要がある点において、ジョブ管理システムが扱うべきコマンド自身の多様性・汎用性に十分対応しきれない場合がある。一般に、コマンドを提供するソフトウェアの多くは、汎用機能を提供するいわゆるプログラムプロダクトである。また、システムを構成する複数のソフトウェアは通常複数のベンダから提供されるという事情により、そのコマンドのレベルもインタフェースもまちまちとなり、そのままでは前記した前提を満たせないことも多々起こりえるためである。このような場合は、前提を満たすためのデータ変換を行うラッピング関数を作成するなどの付加的対応が必要であり、依然としてユーザの負担が小さいとは言えなかった。
【０００９】
本発明は、ジョブ間のデータ引継ぎに際し、煩雑な受け渡しファイルの管理や付加的なラッピング関数の作成を不要とすることで、ジョブの引継ぎを効率よく設定することを可能とし、ユーザの前記作業負荷を軽減することを課題とする。
【課題を解決するための手段】
【００１０】
前記課題を解決するため、本発明では、ジョブの実行を制御し先行ジョブから後続ジョブへのデータの受け渡しに関する設定が可能なジョブ管理システムを構成し、先行ジョブの設定に際し、標準出力へ出力されるデータ中のどのデータを引継ぎ変数に保存するかを設定する手段と、同じく後続ジョブの設定に際し、入力パラメタへの入力値として前記引継ぎ変数として定義された変数のうちのどの変数を用いるかを定義する手段と、ジョブからジョブへのデータ引継ぎの順序に従ってジョブを実行する手段とを備える。また、引継ぎ変数の定義で指定した正規表現又は割当てルールに従って、引継ぎ変数へ値の割当を行う手段を備え、データの変換を行ってからジョブ間でデータの引継ぎを行う。
【００１１】
この構成によれば、ジョブからジョブへデータ受け渡しを行う順序に従って、ジョブが実行される。
【発明の効果】
【００１２】
本発明によれば、ジョブの引継ぎの設定において、ジョブの引継ぎをより柔軟に定義できるようになるだけではなく、ジョブの引継ぎにおけるデータ変換のためのルールも設定できるようになり、ジョブの引継ぎの設定におけるユーザの負担が軽減される。
【発明を実施するための最良の形態】
【００１３】
［ジョブネット］
以下、本発明の一実施形態を、図面を参照しながら説明する。
最初に、本実施形態の前提となるジョブネットについて簡単に説明する。ジョブネットとは、ジョブとジョブの間でデータを引き継ぐ関係を規定したものであり、個々のジョブがどのコマンドをどのコンピュータでどのパラメタをもって実行するかを示す情報及びジョブとジョブの順序関係とデータの引継ぎを集約した一連のジョブのフローを指す。従って、ジョブネットは、ジョブを管理する際の単位となるものという側面も持つ。ジョブネットの具体例については、図２を参照した説明において後記する。なお、以下の本実施形態の説明で管理や実行の対象とするものは、ジョブ及びジョブネットである。
【００１４】
［ジョブ管理システムの構成］
図１は、ジョブ管理装置１０及びジョブ管理システムの構成例を説明する図である。図１には、４台の計算機１０，２０，３０，４０が示されているが、このうち計算機１０は、マネージャプログラム（以後、「マネージャ」と称する）１１を含み、他の計算機とは異なるジョブ管理の役割を持つ。以後はジョブ管理装置１０と記載する。計算機２０，３０，４０は、それぞれエージェントプログラム（以後、「エージェント」と称する）２１，３１，４１を含み、それぞれジョブを実行できる能力を持つ。なお、エージェントを含む計算機の台数は何台でもよく、ジョブ管理装置１０がマネージャ１１以外にエージェント２１を併せ持つ構成も可能である。
【００１５】
［ジョブ管理装置の構成］
ジョブ管理装置１０は、主記憶装置１０１、ハードディスク装置１０２、ＣＰＵ（Central Processing Unit）１０３及びＮＩＣ（Network Interface Card）１０４を含んで構成される計算機である。主記憶装置１０１はマネージャ１１を含み、マネージャ１１は、ユーザがジョブネットを定義するジョブネット定義処理部１２、その定義情報を管理するジョブネット管理処理部１３、ならびに、ジョブネットの解析、ジョブのスケジュール管理、イベントハンドリング、ジョブやジョブネットの実行制御や監視などを行うジョブネット実行制御処理部１４を備える。そして、ハードディスク装置１０２は、ジョブネット定義情報１５及びジョブネット実行情報１６を含み、ジョブネット定義情報１５は、ジョブ定義テーブル１５０、引継ぎ変数テーブル１６０及び入力変数パラメタテーブル１７０を少なくとも含み、ジョブネット実行情報１６は、実行時変数テーブル１８０を少なくとも含む。ＣＰＵ１０３は、特定の種類である必要はなく、充分な処理能力を持つ一般的なものを用いることができる。また、ＮＩＣ１０４も一般的なものでよく、本実施形態では通信ネットワーク２に接続されていて、エージェント２１，３１，４１を含む計算機２０，３０，４０との通信が可能であればよい。
【００１６】
ジョブネット定義処理部１２は、ジョブネットを定義するための情報を取り込む画面を表示し、ユーザとやり取りをして、ジョブネットの定義を読み込む。ジョブネット定義処理部１２の動作については、図２を参照した説明において後記する。
【００１７】
ジョブネット管理処理部１３は、ジョブネット定義情報をジョブネット定義情報１５に格納して、管理する。このジョブネット定義情報には、各ジョブの実行順序やジョブの起動時刻などについての設定情報が含まれる。
【００１８】
ジョブネット実行制御処理部１４は、コンピュータ１０の内蔵タイマが出力する日時や先行ジョブの実行状況を監視し、ジョブネット定義情報に定義されているジョブの起動タイミングが来ると、そのジョブの実行ホストを特定し、また実行時変数テーブル１８０を有するジョブネット実行情報１６を参照しながらパラメタを確定し、例えば実行ホストがコンピュータ２０であればエージェント２１に、ジョブの実行を指示する。このとき、エージェント２１は、マネージャ１１からの要求に従いジョブを実行する。
【００１９】
［ジョブ実行装置の構成］
計算機２０，３０，４０は、それぞれエージェント２１，３１，４１を含み、それぞれマネージャ１１からの要求に応じてジョブを実行する機能を持つ。本実施形態では、計算機２０，３０，４０は同等なものであるので、計算機２０について説明を行い、計算機３０，４０については、説明を省略する。計算機２０は、ジョブ管理装置１０と同様に、主記憶装置２０１、ハードディスク装置２０２、ＣＰＵ２０３及びＮＩＣ２０４を含んで構成される一般的な計算機である。主記憶装置２０１は、エージェント２１を含み、ＮＩＣ２０４は、本実施形態では通信ネットワーク２に接続されていて、ジョブ管理装置１０及びエージェント３１，４１を含む計算機３０，４０との通信を行うことができるものであればよい。
【００２０】
［ジョブネットの定義処理例］
図２はジョブネット定義処理例を説明する図である。そして、図３は、図２の説明において用いたコマンド例を説明する図である。ここでは、適宜、図３を参照しつつ、図２を用いて、本実施形態におけるジョブネットの定義処理について説明する。
【００２１】
図２においてジョブネット定義例１として示されているジョブネット６０の上部には、ジョブ６１（ジョブＡ１）、ジョブ６２（ジョブＡ２）及びジョブ６３（ジョブＡ３）のジョブの繋がりを示す図が書かれているが、これは、３つのジョブからなるジョブネットの一例を示すものである。そして、ジョブ６１（ジョブＡ１）及びジョブ６２（ジョブＡ２）については、それぞれどのような設定が行われているかを示すジョブネット定義部１２が表示する設定画面のプロパティ設定枠６４，６５が示されている。ジョブネットの定義処理は、まず、ジョブ間の引継ぎの順序関係を設定し、各ジョブについてプロパティ設定枠６４，６５に示されている設定項目を設定することで行われる。
【００２２】
（設定項目）
各ジョブについての設定項目は、基本設定７０、引継ぎ変数設定８０及び入力パラメタ変数設定９０の３種類の設定に分けられる。基本設定７０には、そのジョブを実行する実行ホストの識別子を設定する項目７１、そのジョブで実行するコマンドを設定する項目７２及びコマンドのパラメタを設定する項目７３を少なくとも含む。引継ぎ変数設定８０には、引継ぎ変数の変数名８１及びその変数の値を入力するための変数値の項目８２を少なくとも含む。そして、入力パラメタ変数設定９０には、基本設定７０のパラメタの項目７３において用いたパラメタ変数の変数名を設定する項目９１及びそのパラメタ変数の値を入力するための項目９２を少なくとも含む。
【００２３】
（ジョブネットの設定例）
図２に示されているジョブ６１（ジョブＡ１）の設定の例では、基本設定７０の実行ホストの項目７１に「ｈｏｓｔ１」、コマンドの項目７２に「ｃｍｄ１．ｅｘｅ」、パラメタの項目７３に「−ｈ  ？ＰＡＲＭ？」と設定されている。これは、ジョブ６１（ジョブＡ１）において、「ｈｏｓｔ１」という計算機において、「ｃｍｄ１．ｅｘｅ」というコマンドを「−ｈ  ？ＰＡＲＭ？」というオプションのパラメタを付けて実行するように設定していることを示す。オプションパラメタに含まれる「？ＰＡＲＭ？」は、入力パラメタ変数であり、この変数に関しては、後記する入力パラメタ変数設定９０の例において、その変数名と値を設定する。
【００２４】
引継ぎ変数設定８０においては、引継ぎ変数の変数名の項目８１で「ＡＪＳ２ＳｖｒＮａｍｅ」という変数名を設定し、変数値の項目８２では、「／＾ＳＥＲＶＥＲ：￥（．＊￥）／￥１／」という値の割当てルールを設定している。引継ぎ変数は、そのジョブの出力結果を後に実行されるジョブに引き渡すために値を保存する変数であり、引継ぎ変数の値を用いるのは、そのジョブではなく、後に実行されるジョブである。なお、値の割当てルールについては後記するが、ここで得られる値は図３の出力例１１１から切り出した「ＡＰＳｅｒｖｅｒ１」である。図２の例では、ジョブ６１（ジョブＡ１）に続いて実行されるジョブ６２（ジョブＡ２）が引き継ぎ変数「ＡＪＳ２ＳｖｒＮａｍｅ」を利用している。引継ぎ変数の詳細については後記する。
【００２５】
入力パラメタ変数設定９０においては、入力パラメタ変数の変数名の項目９１に「ＰＡＲＭ」、その変数値の項目９２に「ＡＰＳｅｒｖｅｒ１」と設定されている。これは、前記した「ｃｍｄ１．ｅｘｅ」というコマンドの「−ｈ  ？ＰＡＲＭ？」というオプションパラメタの「？ＰＡＲＭ？」の部分に用いる変数及びその値であり、図２の例では、「ｃｍｄ１．ｅｘｅ」というコマンドが、入力パラメタ変数「ＰＡＲＭ」で引き渡された「ＡＰＳｅｒｖｅｒ１」という値を用いて、「ｃｍｄ１．ｅｘｅ  −ｈ  ＡＰＳｅｒｖｅｒ１」という形で実行されることになる。
【００２６】
図２のジョブ６２（ジョブＡ２）においては、基本設定７０の実行ホスト項目７１で「ｈｏｓｔ２」、コマンドの項目７２で「ｃｍｄ２．ｅｘｅ」、パラメタの項目「−ｖ  −ｈ  ？ＴＡＲＧＥＴ？」という値が設定されている。これは、後記する入力パラメタ変数設定９０において、設定される入力パラメタ変数「ＴＡＲＧＥＴ」を参照して、「ｈｏｓｔ２」で「ｃｍｄ２．ｅｘｅ」を「−ｖ  −ｈ  ？ＴＡＲＧＥＴ？」というオプションパラメタを伴って実行する設定になっていることを意味する。
【００２７】
そして、ここで参照された入力パラメタ変数「ＴＡＲＧＥＴ」は、入力パラメタ変数設定９０において、変数名の項目９１で「ＴＡＲＧＥＴ」という入力パラメタ変数に変数値の項目９２において「Ａ１．？ＡＪＳ２ＳｖｒＮａｍｅ？」という値を設定している。この値は、直接的な文字列などの情報であるリテラル（以後、単に「リテラル」と記述する。）とは異なるものであり、「Ａ１」というジョブ（ジョブ６１）の引継ぎ変数「ＡＪＳ２ＳｖｒＮａｍｅ」で保存された値を参照することになる。
【００２８】
図２の例では、ジョブ６１（ジョブＡ１）の引継ぎ変数の変数値の項目８２で指定された「／＾ＳＥＲＶＥＲ：￥（．＊￥）／￥１／」という割当てルールに従って引継ぎ変数「ＡＪＳ２ＳｖｒＮａｍｅ」に保存された「ＡＰＳｅｒｖｅｒ１」という値が参照される。このように、ジョブネットの設定においては、それ以後のジョブにおいて、引継ぎ変数に保存された出力結果の一部を参照してジョブを実行することができる。なお、ジョブ６２（ジョブＡ２）における引継ぎ変数設定８０には何も設定されていないので、これについては説明を省略する。
【００２９】
ジョブ６３（ジョブＡ３）についても、前記のジョブ６１（ジョブＡ１）及びジョブ６２（ジョブＡ２）と同様の設定を行うことができるが、ここでは、その例の提示及び説明を省略する。
【００３０】
（割当てルール）
引継ぎ変数設定８０における変数値の項目８２及び入力パラメタ変数設定９０における変数値の項目９２においては、出力として与えられた文字列から文字列を切り出して値を取り出すルールを記述することができる。前記した図２の例において、ジョブ６１（ジョブＡ１）の引継ぎ変数設定８０の変数値８２の設定において、「／＾ＳＥＲＶＥＲ：￥（．＊￥）／￥１／」という割当てルールを設定している。このルールは、ＵＮＩＸ（登録商標）やＭＳ−ＤＯＳ（登録商標）で用いられるいわゆる正規表現と同様のものである。
【００３１】
この例は、与えられた出力の中から、行頭の「ＳＥＲＶＥＲ：」という文字列にマッチした後に出現する１文字以上の文字列において、空白文字及び改行文字などの区切り文字以外の文字からなる文字列の中で、最初の文字列を選択して切り出すという例である。この割当てルールに対して、ジョブ６１（ジョブＡ１）の出力として図３のｃｍｄ１コマンド（コマンドシグニチャは図３の符号１１０に示す）の出力例１１１が与えられた場合、まず、「＾ＳＥＲＶＥＲ：」がある行、すなわち、行頭に「ＳＥＲＶＥＲ：」という文字列がある行だけが選ばれる。そして、正規表現の指定に従い、「ＳＥＲＶＥＲ：」という文字列の直後で「￥（．＊￥）」という正規表現に該当する文字を見出す。正規表現「￥（．＊￥）」は、任意の１文字（「．」）と０文字以上の任意の文字列（「＊」）が連続した文字列を意味する。そして、これに該当する文字列があった場合には、この該当する文字列と置き換える形で、正規表現「￥１」が表している最初に出現する区切り文字以外の文字からなる文字列を切り出して値とする。例えば、図３の１１１に示される出力例に対して、前記の例と同様の「／＾ＰＲＯＤＵＣＴ：￥（．＊￥）／￥１／」という正規表現を与えれば、「ＳｅｒｖｅｒＣｏｎｄｕｃｔｏｒ」という文字列が切り出される。
【００３２】
なお、本実施形態では、ルールとして、正規表現を利用した割当てルールを用いているが、このようなルールに限定する必要はない。例えば、コマンドの出力で「ＡＪＳ２ｘｘｘ：ｙｙｙ」（ｘは任意文字）という文字列パターンがあれば、切り出し変数「？ＡＪＳ
２ｘｘｘ？」にｙｙｙを自動設定するというような形の正規表現ではうまく表現できないような値の切り出しや変数への代入を定義できるようにしてもよい。また、特定文字列「ＡＪＳ２」をつけることによって簡易変数指定と解釈するといったルールを決めて、例えば、出力が「ＡＪＳ２ＳｖｒＮａｍｅ：＜ターゲットサーバ名＞」である場合には、図２のプロパティ設定枠６４における引継ぎ変数の項目８２の設定がない場合にも、引継ぎ変数「？ＡＪＳ２ＳｖｒＮａｍｅ？ 」を自動的に用意し、それにｃｍｄ１コマンドの実行結果である＜ターゲットサーバ名＞に該当する文字列を代入するようなルールを含めてもよい。
【００３３】
（引継ぎ変数）
引継ぎ変数は、ジョブ間でデータの引継ぎを行うために用いる変数である。引継ぎ変数を用いると、あるジョブの出力の中から必要な情報を取り出して保存し、別のジョブの入力やコマンドのオプションパラメタとして用いることができる。なお、引継ぎ変数を参照する別のジョブは１つである必要はなく、複数のジョブで参照可能である。
【００３４】
引継ぎ変数を用いるためには、まず、引継ぎ変数を定義しなければならない。引継ぎ変数の定義は、先に実行されるジョブで行う必要がある。そして、後に実行されるジョブで参照の方法を指定して、引継ぎ変数によるジョブ間のデータ引継ぎが可能になる。
【００３５】
本実施形態では、図２の例に示すように、ジョブ６１（ジョブＡ１）及びジョブ６２（ジョブＡ２）のプロパティ設定枠６４，６５内に、引継ぎ変数設定項目８０として変数名を設定する項目８１と変数値を設定する項目８２の組合せを追加することで、引継ぎ変数を定義する。ここで、変数名８１は、後続ジョブの入力パラメタ変数定義にて引用される変数の識別子であり、ユーザは、ここには任意の名前を指定する。
【００３６】
同様に、ユーザは、変数値を設定する項目８２には、そのジョブで実行するコマンドが出力する標準出力から変数名を設定する項目８１で規定される変数に値を割当てる方法を定めるルールを入力する。変数名を設定する項目８１と変数値を設定する項目８２の組合せは、引継ぎを定義したい変数の個数に応じてジョブネット定義処理部１２が表示する定義画面の上で任意に追加できる。
【００３７】
そして、プロパティ設定枠６４，６５内に、入力パラメタ変数設定項目９０の中の変数名を設定する項目９１と変数値を設定する項目９２の組合せを追加することで、引継ぎによりデータを受け取るジョブにおけるコマンドの入力パラメタにおいて引継ぎ変数を参照する方法を設定する。
【００３８】
なお、ジョブネット定義処理部１２は、基本設定７０の中のパラメタを設定する項目７３の中でユーザが指定した変数を、利用する側でも自動的に指定対象の候補とする。
【００３９】
図２の例では「？」で囲むことで変数表現をしており、文字列が「？」で囲まれているか否かを解析することで、ジョブネット定義処理部１２は指定の対象かを判別できる。例えば、ジョブＡ１のプロパティ設定枠６４のパラメタを設定する項目７３の指定では「？ＰＡＲＡＭ？」、ジョブＡ２のプロパティ設定枠６５のパラメタを設定する項目７３の指定では「？ＴＡＲＧＥＴ？」が指定の対象と判別できる。
【００４０】
これにより、ジョブネット定義処理部１２が表示する定義画面は、パラメタを設定する項目７３の指定内容に応じて、入力パラメタ変数設定項目９０の中の変数名を指定する項目９１と変数値を指定する項目９２の設定項目の組合せを変数表現されたパラメタの数分用意し、変数名を指定する項目９１にはその引継ぎ変数の変数名を自動的に表示するようにして、その引継ぎ変数を受け取る側でも容易に使えるようにする。
【００４１】
図２の例では、ジョブネット定義処理部１２の定義画面は、ジョブ６１（ジョブＡ１）の当該ジョブコマンドのパラメタ変数「？ＰＡＲＡＭ？」に呼応して、プロパティ設定枠６４の入力パラメタ変数設定９０に、変数名９１の設定枠と変数値９２設定枠の組を１つ表示し、変数名９１の設定枠には「ＰＡＲＡＭ」を自動的に表示する。変数値９２の設定枠には、ユーザは、先行ジョブの前記引継ぎ変数設定８０で定義した引継ぎ変数を指定することができる。この変数値９２の設定枠では、参照する変数を与えるジョブと引継ぎ変数名も合わせて指定させることにより、直前の先行ジョブのみならず、任意の先行ジョブの引継ぎ変数が指定の対象となる。また、変数値９２の設定枠には、ユーザは、引継ぎ変数や割当てルール以外にリテラル値として固定の値を指定することも可能である。
【００４２】
例えば、図２でジョブＡ２のプロパティ設定枠６５における入力パラメタ変数設定９０の変数値９２の指定「Ａ１．？ＡＪＳ２ＳｖｒＮａｍｅ？」は、変数名９１が意味する基本設定７０で定義したコマンドパラメタの変数「？ＴＡＲＧＥＴ？」に、先行ジョブＡ１の引継ぎ変数「ＡＪＳ２ＳｖｒＮａｍｅ」の値を割当てる。この例の表記は、任意のジョブにおける任意の変数の設定枠を独立して指定するようにしてもよい。
【００４３】
（ジョブネット定義情報の格納処理）
図４は、ジョブ定義テーブル１５０の具体例を、図５は、引継ぎ変数テーブル１６０の具体例を、図６は、入力パラメタテーブル１７０の具体例を示す図である。そして、図７は、実行時変数テーブル１８０の具体例を示す図である。ここでは、これらの図と図１と図２を参照しつつ、ジョブネット定義情報の格納処理について説明する。
【００４４】
ジョブネット定義処理部１２とユーザのやり取りによって定義されたジョブネットの定義情報は、ジョブネット管理処理部１３に渡され、ジョブネット定義情報１５の中の対応するテーブルに格納される。
【００４５】
ジョブネット管理処理部１３は、ジョブ定義１つに対して、図４に示すジョブ定義テーブル１５０に１レコード追加する。基本設定７０の実行ホストを設定する項目７１、コマンドを設定する項目７２及びパラメタを設定する項目７３でユーザが指定した値は、対応するレコードの実行ホストの項目１５４、実行コマンドの項目１５５及びパラメタ情報の項目１５６にそれぞれ格納される。
【００４６】
また、ジョブネット管理処理１３は、引継ぎ変数設定８０で設定された引継ぎ変数１つに対して、図５に示す引継ぎ変数テーブル１６０に１レコード追加する。図２の例で示す引継ぎ変数設定８０の変数名を設定する項目８１および変数値を設定する項目８２は、それぞれ対応するレコードの変数名を格納する項目１６３及び変数値を格納する項目１６４に格納される。
【００４７】
さらに、ジョブネット管理処理１３は、入力パラメタ変数設定９０で設定された入力パラメタ変数１つに対して、図６に示す入力パラメタ変数テーブル１７０に１レコード追加する。ユーザが指定した入力パラメタ設定９０の各設定項目のうち、変数名を設定する項目９１の内容はそのレコードの変数名の項目１７３に、変数値を設定する項目９２の内容はリテラル値の場合は変数値の項目１７４に、引継ぎ変数の場合は引継ぎ変数名と引継ぎ元ジョブの情報に分解され、それぞれ変数値の項目１７４と引継ぎ元ジョブの項目１７５に格納される。
【００４８】
なお、図７に示されている実行時変数テーブル１８０の内容は、ジョブネット定義が与えられただけでは生成されず、後記するジョブネットの実行の際に生成される。
【００４９】
このようにして、定義及び格納されたジョブネットの実行時には、ジョブネット実行制御処理１４は、この定義情報に従いコマンドを起動し、結果としてオペレーティングシステム上に対応するプロセスが生成される。
【００５０】
（引継ぎ変数を用いない引継ぎ）
図８は、引継ぎ変数を用いない出力の引継ぎを説明する図である。図８は、図２と同様のジョブネット定義の例を示していて、図２の例と全く同じデータの引継ぎを行っている例であるが、引継ぎ変数を用いていないという点が異なっている。詳細には、ジョブ６１（ジョブＡ１）の引継ぎ変数設定８０が設定されていない点とジョブ６２（ジョブＡ２）の入力パラメタ変数設定９０の中の変数値を設定する項目９２に「／＾ＳＥＲＶＥＲ：￥（．＊￥）／￥１／」という割当てルールを設定している点が異なる。
【００５１】
図８に示す例では、出力例１１１に示すジョブ６１（ジョブＡ１）の出力をそのままジョブ６２（ジョブＡ２）で受け取り、このジョブ６２（ジョブＡ２）の側で、割当てルールを実行して、出力のデータの中から行頭の「ＳＥＲＶＥＲ：」という文字列の直後に出現する最初の区切り文字ではない文字からなる文字列を取り出して、ジョブ６２（ジョブＡ２）のオプションパラメタで利用している。図８に示す例では、結果としては、図２に示した例と全く同じ事を行っていることになるが、このような引継ぎ変数を用いないデータの引継ぎは、引継ぎ変数を用いるデータの引継ぎよりも制約が多い。
【００５２】
引継ぎ変数を用いている場合には、引継ぎを行う２つのジョブは連続している必要はない。例えば、図２及び図８の例でいえば、ジョブ６１（ジョブＡ１）とジョブ６３（ジョブＡ３）の間のように間に別のジョブが介在していてもよい。しかし、引継ぎ変数を用いない場合には、２つのジョブが連続している場合にしか利用できない。図８の例でいえば、ジョブ６１（ジョブＡ１）とジョブ６２（ジョブＡ２）の間及びジョブ６２（ジョブＡ２）とジョブ６３（ジョブＡ３）の間では引継ぎ変数を用いない引継ぎができるが、ジョブ６１（ジョブＡ１）とジョブ６３（ジョブＡ３）の間では引継ぎができない。
【００５３】
引継ぎ変数を用いない引継ぎを行う場合にも、ジョブとジョブの間での引継ぎを行うために、表面的にはわからない形で変数を用いてデータを引き継いでいる。この時に用いる変数を結果変数と称する。この結果変数と呼ばれる変数は、図７に示される実行時変数テーブル１８０への記録を伴わずに直接的にジョブからジョブへ引継ぎを行う際の仲立ちをする役割を果たす。本実施形態における引継ぎ変数を用いない引継ぎでは、入力を受け取る側のジョブが割付けルールを用いてデータ変換も簡易に行えることを特徴とする。
【００５４】
［マネージャが行う処理］
図９は、ジョブネット実行時におけるマネージャ１１のジョブ実行制御処理部１４が行う処理を示すＰＡＤ（Ｐｒｏｂｌｅｍ  Ａｎａｌｙｓｉｓ  Ｄｉａｇｒａｍ）図である。図９にそって、ジョブネット実行時のジョブ管理システムの処理について説明する。設定されたジョブネットの実行に際し、マネージャ１１は利用するメモリの初期化等の初期処理を行った後（Ｓ２０１）、繰り返し処理を行う。この繰り返し処理においては、まず、ジョブネットの受け付け処理を行い（Ｓ２０４）、次に、ジョブネットがどのような順序関係やデータ引継ぎで構成されているかを調べるジョブネット解析処理を行い（Ｓ２０５）、ジョブネット実行処理（Ｓ２０６）を行う。これらの処理を、終了指示の割り込みが入力されるまでの間（Ｓ２０２）、繰り返し実行する。マネージャ１１は終了指示を受けると終了処理（Ｓ２０３）を行う。
【００５５】
図１０は、マネージャ１１が行うジョブネット実行処理Ｓ２０６（図９参照）の詳細を示す図である。マネージャ１１は、ジョブネットの実行に際しジョブネットのインスタンス生成を行う（Ｓ２１１）。このとき、マネージャ１１は、どのジョブネットのどのインスタンスであるかを特定するインスタンスＩＤを割付ける。これは、図７に示す実行変数テーブル１８０のインスタンスＩＤの項目１８３に保持されるＩＤとなる。なお、実行変数テーブル１８０は、ジョブネットの実行インスタンス毎に引継ぎ変数とその値を管理し、実行時のコマンドパラメタの変数を解決するのに使用されるテーブルである。
【００５６】
次に、マネージャ１１は、実行可能なジョブを１つ選出する（Ｓ２１４）。ここで実行可能ジョブとは、ジョブ管理システムが実行待ち状態として管理しているジョブのうち、先行ジョブの終了やイベントの受信など実行開始条件が揃った状態にあるジョブをいう。マネージャ１１は選出したジョブに対してジョブ生成処理を行い（Ｓ２１５）、ジョブの実行ホストとコマンド列を生成する。こうして特定した実行先ホストのエージェント２１,３１，４１に対して、当該ジョブのコマンド列を送信する（Ｓ２１６）。なお、この実施例では、ジョブ実行のためのプログラムやデータは、そのジョブの実行時においてコンピュータにセットアップされているものとして説明している。エージェント２１,３１，４１によるジョブの実行後、エージェント２１,３１，４１からマネージャ１１にその実行結果が送信される（Ｓ２１７）。そして、マネージャ１１は、送信されてきた結果を結果変数に格納し（Ｓ２１８）、受信した結果に対して引継ぎ変数処理を行う（Ｓ２１９）。
【００５７】
前記Ｓ２１４からＳ２１９までの処理を、当該ジョブネットに含まれるジョブがなくなるまで繰り返し（Ｓ２１２）、ジョブがなくなった時点で、後処理としてジョブネットインスタンスの削除を行う（Ｓ２１３）。なお、Ｓ２１５とＳ２１９のステップについては、それぞれ図１１と図１２にそって、より詳細に説明する。
【００５８】
図１１は、図１０におけるジョブ生成処理（Ｓ２１５）の詳細を示すＰＡＤ図である。マネージャ１１は、図４に示すようなジョブ定義テーブル１５０からその実行されるジョブの実行ホストの項目１５４の内容を取得し、その内容から実行先ホストを解析し、特定する（Ｓ２２１）。同じく、ジョブ定義テーブル１５０からその実行されるジョブのパラメタ情報の項目１５６の内容を取得して解析し（Ｓ２２２）、パラメタ内に入力パラメタ変数を含むか否かを調べる（Ｓ２２３）。具体的にはパラメタ情報内に「？」で囲まれた変数があるか否かを調べる。
【００５９】
入力パラメタ変数が存在した場合は、図６に示す入力パラメタ変数テーブルを調べ、変数名の項目１７３と同じエントリの中の変数値の項目１７４の内容が、引き継ぎ変数を用いた指定（引継ぎ変数指定）か、リテラル値を用いた指定（リテラル値指定）か、割当てルールの記述（割当てルール指定）か、を調べる（Ｓ２２６）。なお、図６の例では、引継ぎ変数指定は「？」で囲まれた変数表現になっていることで特定できる。
【００６０】
引継ぎ変数指定であった場合は、変数値１７４で表現されている変数名、引継ぎ元ジョブ１７５が示すジョブのジョブＩＤ、ならびに現在実行中のジョブネットのインスタンスＩＤをもって、前記実行時変数テーブル１８０を参照して、変数値の項目１８４の内容を取得して、これを変数名１７３で指定された変数に割り当てて（未定の）変数を解決する（Ｓ２２８）。
【００６１】
一方、リテラル値指定であった場合、即ち、変数値の項目１７４の内容が「？」で囲まれた変数表現になっていなくて、かつ、ルールの形式でない場合、これをそのまま変数名の項目１７３で指定された変数に割り当てる（Ｓ２２９）。
【００６２】
そして、割当てルールだった場合は、結果変数に保持されている先行ジョブの出力結果に対して割当てルールを適用して、変数名１７３で指定された指定変数へ割当て処理を行う（Ｓ２３０）。
【００６３】
これを、当該ジョブのパラメタ情報１５６に含まれる全ての引継ぎ変数に対して繰り返し、確定した実行コマンド列を生成する（Ｓ２２４）。
【００６４】
図１２は、図１０における引継ぎ変数処理（Ｓ２１９）の詳細を説明するＰＡＤ図である。以下、適宜、図２、図３及び図７を参照しつつ、説明する。
引継ぎ変数処理において、まず、マネージャ１１は、引継ぎ変数の解析を行い（Ｓ２３１）、用いられている引継ぎ変数をすべて列挙する。
【００６５】
そして、ユーザの定義によりジョブネット管理処理部１３が生成したジョブネット定義情報１５内の引継ぎ変数テーブル１６０に該当ジョブの変数が定義されているか否かを調べる（Ｓ２３２）。引継ぎ変数が定義されていた場合には、未処理変数が無くなるまで以下の処理を繰り返す（Ｓ２３３）。
【００６６】
まず、引継ぎ変数テーブル１６０のカラム「変数値１６４」に格納されている変数割当てルール、例えば、「／＾Ｓｅｒｖｅｒ：￥（．＊￥）／￥１／」のような正規化表現を取得する（Ｓ２３４）。
次に、エージェントから受信した前記ジョブの実行結果（コマンドの出力結果）に対して、当該割当てルールを適用し（Ｓ２３５）、その結果を引継ぎ変数テーブル１６０中の変数名の項目１６３で示される引継ぎ変数に割当てる。これは、図２のジョブ６１（ジョブＡ１）の例では、この引継ぎ変数はＡＪＳ２ＳｖｒＮａｍｅに該当する。
【００６７】
そして、図４においてジョブＩＤ＝００１で表現されるジョブＡ１（図２ではジョブ６１）の実行コマンドｃｍｄ１．ｅｘｅの出力結果が図３の出力例１１１である場合には、出力結果に「／＾Ｓｅｒｖｅｒ：￥（．＊￥）／￥１／」が適用されて得られた「ＡＰＳｅｒｖｅｒ１」という値が引継ぎ変数「ＡＪＳ２ＳｖｒＮａｍｅ」に割当てられる。そして、マネージャ１１は、インスタンスＩＤの項目１８３の内容、変数名の項目１８４の内容とともにこの結果を変数値１８５として実行時変数テーブル１８０に格納する（Ｓ２３６）。この結果、実行時テーブル１８０は図７に示すような状態になる。
これらＳ２３４からＳ２３６までの処理をその実行するジョブに指定された引継ぎ変数がなくなるまで繰り返す（Ｓ２３３）。
【００６８】
［エージェントが行う処理］
図１３はエージェント２１，３１，４１の処理について説明するＰＡＤ図である。
実行コンピュータで稼動しているエージェント２１，３１，４１は、利用するメモリ等の初期化等の初期処理を行った後（Ｓ２４１）、以下のプロセスを終了指示の割り込みが入力されるまでの間繰り返す（Ｓ２４２）。
【００６９】
繰り返し処理においては,まず、マネージャ１１からのジョブ実行要求を受信し（Ｓ２４４）、これにしたがってジョブ実行を行い（Ｓ２４５）、ジョブの実行結果のマネージャ１１への送信する（Ｓ２４６）という処理を繰り返す。
【００７０】
そして、エージェント２１，３１，４１は、終了指示を受けると繰り返し処理をやめて、終了処理を行う（Ｓ２４３）。
【００７１】
以上、本実施形態におけるジョブ管理方法、ジョブ管理装置及びジョブ管理システムについて説明してきたが、前記した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【００７２】
本実施形態では、ジョブ間のデータ引継ぎを容易に定義できる形に拡張して、ジョブネットを管理、実行することができる。特に、本実施形態では、ジョブとジョブの間のデータ引継ぎにおいて、引継ぎ変数及び割付けルールを利用可能であり、これにより、任意の先行ジョブから簡易に定義したデータ変換機能によって変換したデータを受けとってジョブを実行させることが可能である。そして、これらの機能により、ジョブネットを設定するユーザの負担が軽減される。
【００７３】
また、以上に説明したジョブ管理システムの機能は、ジョブ管理システムの全ての機能を説明している訳ではなく、ジョブ管理システムには、以上に説明した以外にも、ジョブネットワークのスケジューリングによる実行制御機能、繰り返し実行制御、何らかのイベントを検知してジョブの実行を開始する機能、ＧＵＩの制御、ネットワークを介した通信機能、ジョブの実行管理のためのキューイング処理を行う機能など、適用されるシステムの形態に応じて他にも様々な公知の機能を備えていてもよい。
【００７４】
なお、本実施形態におけるマネージャ１１及びエージェント２１,３１,４１などは、演算手段を用いてプログラムで実現されており、所定の機能を備えた計算機に所定のプログラムを読み込む事でマネージャ１１及びエージェント２１,３１,４１として動作できる状態になる。
【図面の簡単な説明】
【００７５】
【図１】ジョブ管理装置及びジョブ管理システムの構成例を説明する図である。
【図２】ジョブネット定義処理例を説明する図である。
【図３】図２の説明において用いたコマンド例を説明する図である。
【図４】ジョブ定義テーブルの具体例を示す図である。
【図５】引継ぎ変数テーブルの具体例を示す図である。
【図６】入力パラメタテーブルの具体例を示す図である。
【図７】実行時変数テーブルの具体例を示す図である。
【図８】引継ぎ変数を用いない出力の引継ぎを説明する図である。
【図９】ジョブネット実行時におけるマネージャのジョブ実行制御処理部が行う処理を示すＰＡＤ図である。
【図１０】マネージャが行うジョブネット実行処理の詳細を示す図である。
【図１１】図１０におけるジョブ生成処理の詳細を示すＰＡＤ図である。
【図１２】図１０における引継ぎ変数処理の詳細を説明するＰＡＤ図である。
【図１３】エージェントの処理について説明するＰＡＤ図である。
【図１４】ジョブ管理システムの設定画面の例を示す図である。
【符号の説明】
【００７６】
２      通信ネットワーク
１０    ジョブ管理装置（計算機）
２０,３０，４０  計算機
１１    マネージャ
１２    ジョブネット定義処理部
１３    ジョブネット管理処理部
１４    ジョブネット実行制御処理部
１５    ジョブネット定義情報
１６    ジョブネット実行情報
２１，３１，４１  エージェント
１０１，２０１，３０１，４０１  主記憶装置
１０２，２０２，３０２，４０２  ハードディスク装置
１０３，２０３，３０３，４０３  ＣＰＵ
１０４，２０４，３０４，４０４  ＮＩＣ（ネットワークインタフェースカード）
１５０  ジョブ定義テーブル
１６０  引継ぎ変数テーブル
１７０  入力パラメタ変数テーブル
１８０  実行時変数テーブル
【図１】
2006244172.tif 000003
【図２】
2006244172.tif 000004
【図３】
2006244172.tif 000005
【図４】
2006244172.tif 000006
【図５】
2006244172.tif 000007
【図６】
2006244172.tif 000008
【図７】
2006244172.tif 000009
【図８】
2006244172.tif 000010
【図９】
2006244172.tif 000011
【図１０】
2006244172.tif 000012
【図１１】
2006244172.tif 000013
【図１２】
2006244172.tif 000014
【図１３】
2006244172.tif 000015
【図１４】
2006244172.tif 000016