(57)【要約】【課題】負荷分散を使用した場合でも、後続ジョブを先行ジョブと同じ実行先で実行するよう指定可能なジョブ管理システムを提供することを目的とする。【解決手段】実行すべきジョブネットワークを定義する際、各ジョブの実行先指定方法として「先行ジョブ指定」を設定し、先行するどのジョブの実行先と同じサーバで実行するかを特定する先行ジョブ情報を入力できるようにする。各ジョブを実行したサーバは、十世紀データベースに格納する。ジョブネットワークを実行する際、「直接指定」が設定されているときは、エージェントデータベースを参照して決定したサーバに当該ジョブの実行要求を出し、「先行ジョブ指定」が設定されているときは、実績データベースを参照して、先行ジョブ情報で特定される先行ジョブを実行したサーバを決定し、該決定したサーバに当該ジョブの実行要求を出すようにする。【選択図】図２
2010128823.tif 000002
【特許請求の範囲】
【請求項１】
設定されたジョブネットワークに従ってジョブの実行を制御し、ジョブ実行先エージェントとして論理的にグルーピングされたサーバ群を指定することによりジョブ実行の負荷分散が可能なジョブ管理システムであって、
実行すべきジョブネットワークの定義のために、実行すべき複数のジョブを特定する情報、それらの各ジョブの実行順序、各ジョブの実行先指定方法として「直接指定」または「先行ジョブ指定」の何れか、前記実行先指定方法として「直接指定」が設定されたときは当該ジョブの実行先エージェントを特定する情報、および、前記実行先指定方法として「先行ジョブ指定」が設定されたときは先行するどのジョブの実行先と同じサーバで当該ジョブを実行するかを特定する先行ジョブ情報の入力を受け付ける手段と、
エージェントを特定する情報と、そのエージェントが稼働している１つ以上のサーバを特定する情報とを、格納したエージェントデータベースと、
前記定義されたジョブネットワークの各ジョブが実行されたとき、どのジョブをどの実行先サーバで実行したかを示す実績情報を格納する実績データベースと、
前記定義されたジョブネットワークを実行する際、
（１）実行しようとするジョブの実行先指定方法として「直接指定」が設定されているときは、前記エージェントデータベースを参照して、当該ジョブの実行先エージェントを特定する情報に基づいて特定される実行先エージェントが稼働しているサーバを決定し、該決定したサーバに当該ジョブの実行要求を出し、
（２）実行しようとするジョブの実行先指定方法として「先行ジョブ指定」が設定されているときは、前記実績データベースを参照して、前記先行ジョブ情報で特定される先行ジョブを実行したサーバを決定し、該決定したサーバに当該ジョブの実行要求を出す
ジョブネットワーク実行手段と
を備えることを特徴とするジョブ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、後続ジョブの実行先エージェントの指定に際し、先行ジョブ名を指定することで、先行ジョブが実行されたサーバと同じサーバで後続ジョブを実行するように指定可能とするジョブ管理システムに関するものである。
【背景技術】
【０００２】
ジョブ管理システムによる業務自動化の適用範囲は、自動化の推進によるＴＣＯ（Ｔｏｔａｌ  Ｃｏｓｔ  ｏｆ  Ｏｗｎｅｒｓｈｉｐ）削減などの背景を受け、大規模・複雑化している。
【０００３】
今日ではＩＴシステムが分散型になっているのが通例であり、ジョブ管理システムで運用するジョブは、各種システムが稼動するサーバ上のジョブ実行エージェントに配信されて実行されることになる。そのため、ジョブ管理システムで運用するジョブには、そのジョブの実行先となるエージェント名を指定するのが一般的になっている。
【０００４】
今日のような分散型システムにおいては、ジョブネットワーク中で先行・後続関係を持つジョブの間でデータを受け渡しすることも非常に多い。そのような場合には、それらのジョブの実行先として同じエージェント名を指定してファイルなどによりデータの受け渡しをするか、ジョブ管理システムが提供するデータ転送機能などを利用して異なるサーバ間でデータの受け渡しをすることになる。
【０００５】
本発明に関連する公知技術文献としては、下記特許文献１があげられる。該特許文献１は、設定されたジョブネットワークに従ってジョブの実行を制御し先行ジョブから後続ジョブへのデータの受け渡しに関する設定が可能なジョブ管理システムにおいて、先行ジョブの標準出力を後続ジョブの標準入力に結合することで先行ジョブから後続ジョブにデータを受け渡すように指定可能とする技術を開示する。
【特許文献１】特開２００４−１０２４４９
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ジョブ管理システムが対象とする業務が大規模化し、処理するジョブの量が増大しているため、ジョブを短時間で実行できるよう複数台のサーバを使って負荷分散をする仕組みも提供されている。この場合、ジョブの実行先となる複数台のサーバを論理的なエージェントにグルーピングし、ジョブの実行先として論理的なエージェント名を指定する。
【０００７】
しかしながら、このように負荷分散をするとジョブの実際の実行先サーバはジョブの実行時に決まるため、ファイルでデータを受け渡しするような後続ジョブがある場合には、その後続ジョブの実行先をあらかじめ特定できないことから、負荷分散を利用できない問題があった。
【０００８】
この問題に対しては、前記特許文献１に記載されている技術のように、ジョブ管理システムが提供するデータ転送機能などを利用して異なるサーバ間でデータの受け渡しをすることで対処は可能である。
【０００９】
しかしながら、システムの大規模化・複雑化により、受け渡しするデータが巨大になるケースもあり、ネットワーク経由でのデータ転送では、効率が悪くジョブ実行を短時間で終了できない問題がある。
【００１０】
本発明の目的は、負荷分散を使用した場合でも、後続ジョブを先行ジョブと同じ実行先で実行するよう指定可能なジョブ管理システムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係るジョブ管理システムは、設定されたジョブネットワークに従ってジョブの実行を制御し、ジョブ実行先エージェントとして論理的にグルーピングされたサーバ群を指定することによりジョブ実行の負荷分散が可能なジョブ管理システムであって、実行すべきジョブネットワークの定義のために、実行すべき複数のジョブを特定する情報、それらの各ジョブの実行順序、各ジョブの実行先指定方法として「直接指定」または「先行ジョブ指定」の何れか、前記実行先指定方法として「直接指定」が設定されたときは当該ジョブの実行先エージェントを特定する情報、および、前記実行先指定方法として「先行ジョブ指定」が設定されたときは先行するどのジョブの実行先と同じサーバで当該ジョブを実行するかを特定する先行ジョブ情報の入力を受け付ける手段と、エージェントを特定する情報と、そのエージェントが稼働している１つ以上のサーバを特定する情報とを、格納したエージェントデータベースと、前記定義されたジョブネットワークの各ジョブが実行されたとき、どのジョブをどの実行先サーバで実行したかを示す実績情報を格納する実績データベースとを備えることを特徴とする。そして、前記定義されたジョブネットワークを実行する際、（１）実行しようとするジョブの実行先指定方法として「直接指定」が設定されているときは、前記エージェントデータベースを参照して、当該ジョブの実行先エージェントを特定する情報に基づいて特定される実行先エージェントが稼働しているサーバを決定し、該決定したサーバに当該ジョブの実行要求を出し、（２）実行しようとするジョブの実行先指定方法として「先行ジョブ指定」が設定されているときは、前記実績データベースを参照して、前記先行ジョブ情報で特定される先行ジョブを実行したサーバを決定し、該決定したサーバに当該ジョブの実行要求を出すようにする。
【００１２】
後続ジョブの実行先エージェントとして先行ジョブ名を指定する際には、設定されたジョブネットワークの定義情報から当該後続ジョブの先行ジョブ名の一覧を取得し、取得した先行ジョブ名の一覧から選択することで後続ジョブの実行先エージェントとして先行ジョブ名を指定可能とすると良い。また、先行ジョブ名を指定する際に、指定された先行ジョブ名が取得した先行ジョブ名の一覧の中に含まれるかを判定し、指定された先行ジョブ名が先行ジョブでないときには指定内容の確認を促すようにすると良い。
【発明の効果】
【００１３】
本発明によれば、負荷分散のために複数のサーバを論理的なエージェントにグルーピングし、ジョブの実行先として論理的なエージェント名を指定するような場合でも、後続ジョブを先行ジョブと同じ実行先サーバで実行するように指定可能なジョブ管理システムが提供される。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を図面に基づき説明する。
【００１５】
図１は、本発明の一実施形態であるジョブ管理システムの構成図である。ユーザーは、端末１１からジョブ管理システム１２の表示データ処理部１３へ接続して、ジョブネットワークの定義などを行う。ジョブ管理システム１２は、ジョブネットワーク要素の定義を格納する定義データベース１６と、ジョブネットワーク要素の先行・後続の関係を格納する関連データベース１７と、ジョブ実行先エージェントの定義を格納するエージェントデータベース１８と、ジョブネットワーク要素の実行予実績（予定と実績）を格納する実行予実績データベース１９とを持つ。
【００１６】
ジョブネットワーク実行部１４は、定義データベース１６および関連データベース１７の内容に基づき、ジョブネットワーク中のジョブを順番に実行していく。ジョブネットワーク実行部１４がジョブを実行する際には、定義データベース１６からジョブ実行先エージェントの情報を取得し、必要に応じて取得したジョブ実行先エージェントの名称をサーバ選択部１５へ渡し、ジョブを実行するサーバを決定する。サーバ選択部１５は、当該エージェント名の情報をエージェントデータベース１８から取得し、当該エージェント名に対応するサーバ名をジョブネットワーク実行部１４に返す。当該エージェント名に対応するサーバ名が複数ある場合は、サーバ選択部１５が保持する各サーバの負荷情報に基づき、最も負荷の低いサーバのサーバ名をジョブネットワーク実行部１４に返す。ジョブネットワーク実行部１４は、サーバ選択部１５から返されたサーバへジョブの実行要求を行い、また、そのサーバ名を実行予実績データベース１９に格納する。
【００１７】
なお、図１では不図示だが、ジョブ管理システム１２には、ネットワークを介して複数のサーバが接続されており、各サーバでは指示されたジョブを実行するエージェントが稼動しているものとする。また、負荷分散のため、複数台のサーバを論理的なエージェントにグルーピングして稼動させているものとする。
【００１８】
図２は、後続ジョブの実行先エージェントとして先行ジョブ名を指定した設定画面の例である。ユーザーは、端末１１から図２のような画面でジョブネットワークを定義することができる。図２では、まずジョブ１〜３を付番２０１〜２０３のように画面上で設定し、矢印を引くことで、ジョブ１→２→３の順に実行することが定義されている。また、各ジョブに対し、２１１〜２１５，２２１〜２２５の各項目の設定をしている。なお、ここではジョブ１→２→３の順に実行する単純な例を示したが、ジョブの先行・後続関係が定義されているのであれば、途中で分岐したり、分岐したものがまた１つになったりしても問題はない。
【００１９】
特に図２では、ジョブ２の実行先指定方法２２１として「先行ジョブ名指定」を選択し、実行先エージェント２２２として「ジョブ１と同じ」を指定している。この指定により、ジョブ２をジョブ１と同じサーバで実行させることができる。このとき、実行先エージェント２２２として「ジョブ３と同じ」を指定すると、ジョブ３はジョブ２の先行ジョブでないため指定内容の確認を促す。
【００２０】
図３は、後続ジョブの実行先エージェントとして先行ジョブ名を指定する際に、先行ジョブ名の一覧から選択して指定する設定画面の例である。ジョブ３の実行先指定方法３１１として「先行ジョブ名指定」を選択している。このとき、ジョブ３の実行先エージェント３１２として先行ジョブ名を指定する際に、先行ジョブ名の一覧３２１を表示させその中から選択することにより先行ジョブ名を指定できる。
【００２１】
図４は、以上に述べたようなジョブ管理システム１２を実現するために必要な各データベースのデータ構造例である。
【００２２】
定義データベース４１には、フィールドとして、ジョブネットワーク要素ＩＤ４１１、ジョブネットワーク要素名４１２、実行先指定方法４１３、実行先エージェント４１４、同一実行先ジョブネットワーク要素ＩＤ４１５、実行ファイル４１６、標準入力４１７、および標準出力４１８が含まれる。これらの情報は、図２や図３で説明したような画面でジョブネットワークが定義されたとき、それらの設定に応じて格納される。
【００２３】
関連データベース４２には、フィールドとして、先行ジョブネットワーク要素ＩＤ４２１、および後続ジョブネットワーク要素ＩＤ４２２が含まれる。このデータベース４２には、図２や図３で説明したような画面でジョブネットワークが定義されたとき、各ジョブネットワーク要素間の先行・後続の関係を設定する。
【００２４】
エージェントデータベース４３には、フィールドとして、エージェント名４３１、およびサーバ名１（４３２）〜サーバ名Ｎ（４３５）が含まれる。このデータベース４３には、予め、論理的なエージェントのエージェント名と、そのエージェントの処理を負荷分散して実行する任意の台数のサーバのサーバ名を設定しておく。
【００２５】
実行予実績データベース４４には、フィールドとして、ジョブネットワーク要素ＩＤ４４１、状態４４２、実行先サーバ４４３、実行開始日時４４４、および実行終了日時４４５が含まれる。本データベース４４は、初めは空の状態であり、ジョブネットワークの実行が開始されると、各ジョブネットワーク要素の実行の状態（特に、どのジョブがどの実行先サーバで実行されたかを示す実績）が格納される。
【００２６】
例えば、図２の画面において、ジョブ２の実行先指定方法２２１として「先行ジョブ名指定」を選択し、実行先エージェント２２２として「ジョブ１と同じ」を指定した場合には、定義データベース４１の「ジョブ２」のレコードの実行先指定方法４１３に「先行ジョブ名指定」、同一実行先ジョブネットワーク要素ＩＤ４１５にジョブ１のジョブネットワーク要素ＩＤ「１」が格納される。
【００２７】
ジョブ１の実行先指定方法２１１が「直接指定」で実行先エージェント２１２が「エージェントＡ」の場合、ジョブ実行時に、サーバ選択部１５は、エージェントデータベース４３のエージェント名４３１が「エージェントＡ」のレコードからサーバ名１（４３２）の「サーバα」を選択してジョブネットワーク実行部１４へ返す。ジョブネットワーク実行部１４は、そのサーバαへジョブ１の実行要求を行い、実行予実績データベース４４のジョブネットワーク要素ＩＤ４４１が「１」のレコードの実行先サーバ４４３に「サーバα」を格納する。
【００２８】
その後のジョブ２の実行時には、定義データベース４１の「ジョブ２」のレコードの実行先指定方法４１３が「先行ジョブ名指定」で同一実行先ジョブネットワーク要素ＩＤ４１５が「１」であるため、ジョブネットワーク実行部１４は、実行予実績データベース４４のジョブネットワーク要素ＩＤ４４１が「１」のレコードから実行先サーバ４４３の「サーバα」を取得し、先行ジョブのジョブ１と同じ実行先サーバのサーバαへジョブ２の実行要求を行う。
【００２９】
また、ジョブ１の実行先指定方法２１１が「直接指定」で実行先エージェント２１２が「エージェントＢ」の場合、エージェントデータベース４３の内容に従い実行先サーバは「サーバβ」か「サーバγ」のいずれかになり、ジョブ実行時にサーバ選択部１５により負荷の低いサーバ（ここでは「サーバβ」とする）が選択され、ジョブネットワーク実行部１４によりサーバβへジョブ１の実行要求が行われ、実行予実績データベース４４のジョブネットワーク要素ＩＤ４４１が「１」のレコードの実行先サーバ４４３に「サーバβ」が格納される。
【００３０】
その後のジョブ２の実行時には、定義データベース４１の「ジョブ２」のレコードの実行先指定方法４１３が「先行ジョブ名指定」で同一実行先ジョブネットワーク要素ＩＤ４１５が「１」であるため、ジョブネットワーク実行部１４は、実行予実績データベース４４のジョブネットワーク要素ＩＤ４４１が「１」のレコードから実行先サーバ４４３の「サーバβ」を取得し、先行ジョブのジョブ１と同じ実行先サーバのサーバβへジョブ２の実行要求を行う。
【００３１】
図３で説明したように、ジョブ３の実行先エージェント３１２を先行ジョブ名の一覧３２１から選択して指定する場合、まず、関連データベース４２で後続ジョブネットワーク要素ＩＤ４２２が「３」のレコードを検索し、先行ジョブネットワーク要素ＩＤ４２１として「２」を取得し、定義データベース４１のジョブネットワーク要素ＩＤ４１１が「２」のレコードのジョブネットワーク要素名４１２から先行ジョブ名として「ジョブ２」が得られる。さらに、関連データベース４２で後続ジョブネットワーク要素ＩＤ４２２が「２」のレコードを検索して、レコードがヒットしなくなるまで同様に繰り返すことで先行ジョブの先行ジョブも検索でき、直前以外も含む先行ジョブ名の一覧として「ジョブ１、ジョブ２」が得られる。そのようにして得られた先行ジョブ名の一覧を図３の３２１のように表示し、その中から選択させることができる。
【００３２】
図２の画面例で、ジョブ２の実行先指定方法２２１として「先行ジョブ名指定」を選択し、実行先エージェント２２２として「ジョブ３と同じ」を指定した場合、前記のように直前以外も含めた先行ジョブを検索しても、先行ジョブ名として「ジョブ３」が求まらないため先行ジョブでないと判断でき、指定内容の確認を促すことができる。
【００３３】
図５は、以上のデータ構造を使用して、ジョブネットワーク実行部１４がジョブを実行する際に、ジョブの実行先サーバを決定するためのフローチャートである。
【００３４】
最初に、処理対象であるジョブネットワーク要素について、定義データベース４１の実行先指定方法４１３が「直接指定」か判定する（ステップ５０１）。実行先指定方法４１３が「直接指定」の場合、定義データーベース４１の実行先エージェント４１４を取得し、そのエージェント名をサーバ選択部１５へ渡して実行先サーバを決定する（ステップ５０２、５０３）。実行先指定方法４１３が「先行ジョブ名指定」の場合、定義データーベース４１の同一実行先ジョブネットワーク要素ＩＤ４１５を取得し、それをキーにして実行予実績データベース４４から実行先サーバ４４３を取得する（ステップ５０４）。具体的な取得方法は、図４で説明した通りである。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態であるシステムの構成図である。
【図２】後続ジョブの実行先エージェントとして先行ジョブ名を指定した例である。
【図３】先行ジョブ名を先行ジョブ名の一覧から選択して指定する例である。
【図４】本実施形態のシステムで使用するデータベースのデータ構造図である。
【図５】ジョブの実行先サーバを決定するためのフローチャートである。
【符号の説明】
【００３６】
１１…端末、１２…ジョブ管理システム、１３…表示データ処理部、１４…ジョブネットワーク実行部、１５…サーバ選択部、１６…定義データベース、１７…関連データベース、１８…エージェントデータベース、１９…実行予実績データベース。
【図１】
2010128823.tif 000003
【図２】
2010128823.tif 000004
【図３】
2010128823.tif 000005
【図４】
2010128823.tif 000006
【図５】
2010128823.tif 000007