(57)【特許請求の範囲】
【請求項１】
ジョブを管理するためのデータを配布する計算機システムであって、
前記計算機システムは、ジョブを実行する複数の計算機がネットワークを介して接続されて構成されており、
前記複数の計算機の各々は、プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを有し、
前記複数の計算機の一つは、
データの配布先の計算機のアドレスを収集する計算機のアドレスが記録されたリーダーリストを保持し、
前記リーダーリストから選択されたアドレスの計算機が活性状態であるかを判定し、
非活性状態であると判定された計算機のアドレスを前記リーダーリストから削除し、
活性状態であると判定された第２の計算機を前記リーダーリストの送付先に設定し、
前記ネットワークのサブネット内の計算機にアドレスを要求して、当該サブネット内の計算機のアドレスを収集し、
前記収集したアドレスと自計算機のアドレスとを宛先リストに記録し、
前記設定された送付先に、前記リーダーリスト及び前記宛先リストを配布する計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記複数の計算機の各々は、前記計算機システムを構成する計算機の数及び前記計算機の負荷状況を考慮して、前記データを配布する配信木の分割数を決定する計算機システム。
【請求項３】
請求項１に記載の計算機システムであって、
前記複数の計算機の一つは、前記配布すべきデータに含まれる計算機の依存関係を解析して、前記データの配布先の計算機のアドレスを収集する計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記複数の計算機の一つは、
前記収集したアドレスの計算機が活性状態であるかを判定し、
活性状態であると判定された計算機に前記データを配布し、
活性状態である計算機がない場合、前記データの配布先がないと判定する計算機システム。
【請求項５】
ジョブ管理システムにおけるデータ配布方法であって、
前記ジョブ管理システムは、ジョブを実行する複数の計算機がネットワークを介して接続されて構成されており、
前記複数の計算機の各々は、プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを有し、
前記複数の計算機の一つは、
データの配布先の計算機のアドレスを収集する計算機のアドレスが記録されたリーダーリストを保持し、
前記リーダーリストから選択されたアドレスの計算機が活性状態であるかを判定し、
非活性状態であると判定された計算機のアドレスを前記リーダーリストから削除し、
活性状態であると判定された計算機を前記リーダーリストの送付先に設定し、
前記ネットワークのサブネット内の計算機にアドレスを要求して、当該サブネット内の計算機のアドレスを収集し、
前記収集したアドレスと自計算機のアドレスとを宛先リストに記録し、
前記設定された送付先に、前記リーダーリスト及び前記宛先リストを配布するデータ配布方法。
【請求項６】
請求項５に記載のデータ配布方法であって、
前記複数の計算機の各々は、前記ジョブ管理システムを構成する計算機の数及び前記計算機の負荷状況を考慮して、前記データを配布する配信木の分割数を決定するデータ配布方法。
【請求項７】
請求項５に記載のデータ配布方法であって、
前記複数の計算機の一つは、前記配布すべきデータに含まれる計算機の依存関係を解析して、前記データの配布先の計算機のアドレスを収集するデータ配布方法。
【請求項８】
請求項７に記載のデータ配布方法であって、
前記複数の計算機の一つは、
前記収集したアドレスの計算機が活性状態であるかを判定し、
活性状態であると判定された計算機に前記データを配布し、
活性状態である計算機がない場合、前記データの配布先がないと判定するデータ配布方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブを実行する複数の計算機で構成される計算機システムに関し、特に、ジョブを管理するためのデータを配布する方法に関する。
【背景技術】
【０００２】
クライアント・サーバシステムにおいて、クライアントマシンとして使用されているパーソナルコンピュータ、タブレットＰＣ、スマートフォンなどの性能が向上し、クライアントマシン上で業務プログラムを自動的に実行したり、クライアントマシンの運用管理の必要性が高まっている。
【０００３】
一方、日々の業務プログラムを計画的にスケジューリングし、自動的に実行するため、ジョブ管理システムが利用されている。ジョブ管理システムは、実行する業務プログラムをジョブという単位で管理し、運用日や休業日を設定したカレンダや、日次又は月次などの各種処理サイクルを指定することによって、様々な業務にあわせてジョブをスケジューリングできる。
【０００４】
従来のシステムは、マネージャマシン及びエージェントマシンから構成されており、管理者はマネージャマシンを操作して、ジョブの実行順序や実行タイミングをエージェントマシンに指示している。また、マネージャマシンから各エージェントマシンに順次ジョブの実行指示を出すことによって、エージェントマシン間の連携を可能にしている。
【０００５】
この技術分野の背景技術として、特開２００８−９０４８５号公報（特許文献１）、特開２００８−２５２２９７号公報（特許文献２）がある。
【０００６】
特許文献１には、ジョブ登録受付部は、複数のサーバを有する情報システムにおいて、ジョブの実行に必要な情報であるジョブ定義とジョブにしたがって実行されるバッチコマンドとを含むジョブ登録情報を受け付ける。ジョブ管理部は、ジョブ登録情報のうち承認を受けたものをジョブ登録受付部から受け取り保持する。配布部は、ジョブ登録情報のうちバッチコマンドを情報システム内のサーバに配布する。ジョブ定義保持部は、ジョブ登録情報のうちジョブ定義を保持する。マッチング部は、ジョブ管理部に保持されているジョブ登録情報と、サーバに配布されたバッチコマンドに関する情報およびジョブ定義保持部に保持されているジョブ定義とのマッチングを実行し、バッチコマンドおよびジョブ定義が一致するか否かを判定するジョブ管理装置が記載されている。
【０００７】
また、特許文献２には、ネットワーク構成情報収集処理部は、管理対象とするネットワークの各機器に対してＰｉｎｇコマンドを送信し、また、送信元ＩＰアドレスを書き換えたＰｉｎｇコマンドを送信し、その応答を行わせることで、各ネットワーク機器の間に通信を発生させ、各ネットワーク機器の通信履歴情報を収集する。これにより、単一地点からの通信によってネットワーク機器間に双方向の通信を発生させ、偶発性に頼らずにネットワーク機器間の接続構成を含む構成情報を収集するネットワーク管理システムが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−９０４８５号公報
【特許文献２】特開２００８−２５２２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述した従来のジョブ管理システムでは、マネージャマシンが全てのエージェントマシンを管理し、ジョブの実行指示を出す。また、管理者は、各エージェントマシンの動作を個別に設定する必要があり、マシン台数の増加とともに管理コストが増大する。このようなマシンの性能や、コストなどの制約によって、数千から数万を越える多台数のマシンを含むジョブ管理システムでは、その運用が困難となっている。
【００１０】
そのため、マネージャマシンを介さずに、マシン単体で自律的にジョブを自動的に実行し、各マシンが相互に連携することで、一つの大きなシステムを実現する自律分散型のジョブ管理システムが望まれている。自律分散型ジョブ管理システムを実現するためには、各マシンに対して、ジョブやスケジュールなどの設定情報が定義されたファイル（以下、定義ファイル）を配布する必要がある。
【００１１】
しかし、予め管理者が定義ファイルの配布先のマシンを管理し、人手によりマシン一台一台に定義ファイルをコピーしたり、配布先マシンをファイル転送ソフトウェアに登録して定義ファイルを配布しているが、この方法では数千から数万を越える多台数マシンへの定義ファイルの配布は困難である。また、新たに増えたマシンや、故障に伴うマシンの変更への対応が困難であるという問題がある。また、管理者は、ジョブ定義を作成する作業の他に、配布定義を作成する作業を別に行う必要があるため、作業量が増大するという問題がある。
【００１２】
本発明の目的は、管理者が定義ファイルの配布先マシンの管理や登録ができない状態でも、ジョブ管理プログラムがインストールされたマシンを自動的に特定し、ファイルを自動的に配布することにある。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ジョブを管理するためのデータを配布する計算機システムであって、前記計算機システムは、ジョブを実行する複数の計算機がネットワークを介して接続されて構成されており、前記複数の計算機の各々は、プログラムを実行するプロセッサと、前記プログラムを格納する記憶装置とを有し、前記複数の計算機の一つは、データの配布先の計算機のアドレスを収集する計算機のアドレスが記録されたリーダーリストを保持し、前記リーダーリストから選択されたアドレスの計算機が活性状態であるかを判定し、非活性状態であると判定された計算機のアドレスを前記リーダーリストから削除し、活性状態であると判定された第２の計算機を前記リーダーリストの送付先に設定し、前記ネットワークのサブネット内の計算機にアドレスを要求して、当該サブネット内の計算機のアドレスを収集し、前記収集したアドレスと自計算機のアドレスとを宛先リストに記録し、前記設定された送付先に、前記リーダーリスト及び前記宛先リストを送付する。
【発明の効果】
【００１４】
本発明の代表的な実施の形態によれば、マシンの追加・削除などのシステムの構成の変化に動的に対応できる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１５】
【図１】第１実施例のジョブ管理システムの構成図である。
【図２】第１実施例の自律分散型ジョブ管理プログラムの構成図である。
【図３】第１実施例の配布先マシンの物理的な構成を示すブロック図である。
【図４】第１実施例の宛先リストの作成を説明する図である。
【図５】第１実施例の宛先リストを作成する処理のフローチャートである。
【図６】第１実施例の定義ファイルの配布を説明する図である。
【図７】第２実施例のジョブ定義から取得したマシンの依存関係から生成した宛先に定義ファイルを配布する処理のフローチャートである。
【図８】第２実施例のジョブ管理プログラムを有するマシンを見つける処理のフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例について図面を用いて詳細に説明する。
【００１７】
＜実施例１＞
図１は、本発明の第１実施例のジョブ管理システムの構成図である。
【００１８】
本実施例のジョブ管理システムは、複数の配布先マシン１０１Ａ〜１０１Ｄによって構成され、各配布先マシン１０１Ａ〜１０１Ｄは、ネットワーク１０４で相互に接続される。図１には、４台の配布先マシンを図示するが、図４や図６に示すように、より多くの配布先マシンがジョブ管理システムを構成している。
【００１９】
各配布先マシン１０１Ａ〜１０１Ｄには、自律分散型ジョブ管理プログラム１０２Ａ〜１０２Ｄがインストールされており、ネットワーク情報１０３Ａ〜１０３Ｄを格納している。
【００２０】
ネットワーク情報１０３Ａ〜１０３Ｄは、ＭＡＣアドレス、ＩＰアドレス、サブネットマスク、ノード名称、ノードの説明、検出日時、ノード種別等の基本情報と、ＡＲＰ情報と、ＦＤＢ情報とを含み、さらにＶＬＡＮ情報、トランク情報、スパニングツリー情報を含んでもよい。ＡＲＰ情報は、ＩＰアドレスとＭＡＣアドレスを対応づけた情報で、ＳＮＭＰプロトコルによってネットワーク機器構成情報をリクエストされた場合に、ネットワーク情報１０３Ａ〜１０３Ｄに含まれる。ＦＤＢ情報（フィルタリングデータベース情報）は、ネットワーク機器が通信したときに学習したＭＡＣアドレスとポート番号とを組み合わせた情報である。ＶＬＡＮ情報は、仮想的なネットワーク構成の情報であり、ホスト名やＶＬＡＮ  ＩＤである。トランク情報は、接続インターフェースの情報である。スパニングツリー情報は、物理的なブリッジ及びスイッチで動作するレイヤ２プロトコルの情報である。
【００２１】
また、配布先マシン１０１Ａ〜１０１Ｄには、自律分散型ジョブ管理プログラム１０２Ａ〜１０２Ｄがインストールされているが、新規の追加又は計算機の変更等によって、エージェントとして機能する自律分散型ジョブ管理プログラムを持っていない配布先マシンも想定される。この場合、後述する第２実施例の方法によって定義ファイルを配布できる。
【００２２】
図２は、自律分散型ジョブ管理プログラム１０２Ａ〜１０２Ｄの構成図である。
【００２３】
自律分散型ジョブ管理プログラム１０２Ａ〜１０２Ｄは、ジョブ実行制御部２０６と、連携部２１０とを含む。
【００２４】
ジョブ実行制御部２０６は、定義読込部２０７と、スケジュール算出部２０８と、ジョブ実行処理部２０９とを含む。定義読込部２０７は、入力装置２０１から入力された定義ファイル２０２を読み込む。スケジュール算出部２０８は、読み込まれた定義ファイル２０２からスケジュールを算出する。ジョブ実行処理部２０９は、算出されたスケジュールに従ってジョブを実行し、その結果を実行結果ログ２１４に出力する。
【００２５】
連携部２１０は、宛先リスト読込部２１１と、送付先設定部２１２と、イベント通信部２１３とを含む。宛先リスト読込部２１１は、宛先リスト２１５を読み込み、送付先設定部２１２に送付先を設定する。イベント通信部２１３は、送付先設定部２１２に設定された送付先にイベントを送受信する。
【００２６】
定義ファイル２０２は、ジョブ定義情報２０３と、ジョブスケジュール定義情報２０４と、業務フロー情報２０５とを含む。
【００２７】
ジョブ定義情報２０３は、実施すべきジョブの内容、ジョブ実行日程（日、時刻）、優先度、代替えジョブの有無などの項目を含み、これらの項目はジョブの内容によって変更されるため、例示した項目に限らない。
【００２８】
ジョブスケジュール定義情報２０４は、ジョブスケジュール全体を示すカレンダー情報と、実行される業務フローの名称と、実行開始日と、実行時刻と、実行サイクルとを含み、これらの項目は各ジョブで必須ではなく、ジョブの属性によって変更される。カレンダー情報は、一般用、社内用、プロジェクト用、ジョブ実行マシン用のカレンダーなど、そのジョブの実行目的によってカレンダーは異なる。
【００２９】
業務フロー情報２０５は、業務フロー名と、実行するジョブの名前と、コマンドと、パラメータ（ジョブの依存関係）の情報とを含む。パラメータには、ジョブの接続先、依存先のジョブの情報が格納され、ジョブの接続時の時間的優先度が設定されてもよい。ジョブの接続時の時間的優先度は、先行するジョブが遅延し、後行するジョブを実行すべき時刻を過ぎた場合、優先度を考慮してジョブの実行を制御する必要がある。また、実行する必要がないジョブもある。また、参照するジョブがない場合、パラメータをヌル値に設定して、そのジョブの実行を停止する。
【００３０】
図３は、配布先マシン１０１Ａの物理的な構成を示すブロック図である。なお、図３では、配布先マシン１０１Ａについて説明するが、他の配布先マシン１０１Ｂ〜１０１Ｄも同じ構成である。
【００３１】
本実施例の配布先マシン１０１Ａは、プロセッサ（ＣＰＵ）１、メモリ２、補助記憶装置３及び通信インターフェース４を有する計算機によって構成される。
【００３２】
プロセッサ１は、メモリ２に格納されたプログラムを実行する。メモリ２は、不揮発性の記憶素子であるＲＯＭ及び揮発性の記憶素子であるＲＡＭを含む。ＲＯＭは、不変のプログラム（例えば、ＢＩＯＳ）などを格納する。ＲＡＭは、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶素子であり、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【００３３】
補助記憶装置３は、例えば、磁気記憶装置（ＨＤＤ）、フラッシュメモリ（ＳＳＤ）などの大容量かつ不揮発性の記憶装置であり、プロセッサ１が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置３から読み出されて、メモリ２にロードされて、プロセッサ１によって実行される。
【００３４】
通信インターフェース４は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【００３５】
配布先マシン１０１Ａは、入力インターフェース５及び出力インターフェース８を有してもよい。入力インターフェース５は、オペレータからの入力を受けるインターフェースであり、マウス、キーボード、タッチパネルなどである。出力インターフェース８には、ディスプレイ装置９やプリンタなどが接続されており、プログラムの実行結果をオペレータが視認可能な形式で出力するインターフェースである。
【００３６】
プロセッサ１が実行するプログラムは、リムーバブルメディア（ＣＤ−ＲＯＭ、フラッシュメモリなど）又はネットワークを介して配布先マシン１０１Ａに提供され、非一時的記憶媒体である不揮発性の補助記憶装置３に格納される。このため、行動可視化装置１０１は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【００３７】
配布先マシン１０１Ａは、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。また、配布先マシン１０１Ａの各機能部は異なる計算機上で実現されてもよい。
【００３８】
図４は、宛先リスト３０５の作成を説明する図である。
【００３９】
ジョブ管理システムは、ネットワーク上で複数のサブネット３０１Ａ〜３０１Ｅに分かれて構成されており、各サブネット３０１Ａ〜３０１Ｅには、リーダーマシン３０３Ａ〜３０３Ｅと、リーダーマシン以外のマシン３０２Ａ〜３０２Ｅが設置されており、リーダーマシン以外のマシン３０２Ａ〜３０２Ｅはグルーピングされている。
【００４０】
本実施例では、宛先リスト３０５を作成する前に、リーダーリスト３０４が作成される。リーダーリスト３０４は、各サブネット３０１Ａ〜３０１Ｅのリーダーマシン３０３Ａ〜３０３ＥのＩＰアドレスのリストである。リーダーリスト３０４は、管理者が予め作成するとよい。
【００４１】
一台のリーダーマシン３０３Ｃは、リーダーリスト３０４を受け取ると、自分のＩＰアドレスをリーダーリスト３０４から削除し、自分のＩＰアドレスを宛先リスト３０５に書き込む。次に、リーダーマシン３０３Ｃは、ＵＤＰプロトコルを用いて、ＩＰアドレスの要求をマルチキャストして、サブネット３０１Ｃ内の他のマシン３０２ＣのＩＰアドレスを取得して、取得したＩＰアドレスを宛先リスト３０５に書き込む。そして、リーダーマシン３０３Ｃは、次のリーダーマシンにリーダーリスト３０４及び宛先リスト３０５を送信する。
【００４２】
図５は、宛先リスト３０５を作成する処理のフローチャートである。
【００４３】
リーダーマシン３０３Ｃは、リーダーリスト３０４及び宛先リスト３０５を受け取ると、自分のＩＰアドレス及び次の送付先となる有効なＩＰアドレスが見つかるまで、ステップ４０２〜４０９の処理を繰り返す（ステップ４０１）。ループ内では、リーダーリスト３０４の最後尾に到達するまで、リーダーリスト３０４からアドレスを読み込む（ステップ４０２）。
【００４４】
そして、読み込んだＩＰアドレスが自分のＩＰアドレスと一致するかを判定する（ステップ４０３）。その結果、読み込んだＩＰアドレスが自分のＩＰアドレスと一致する場合、自分のＩＰアドレスを宛先リスト３０５に書き込み（ステップ４０７）、自分のＩＰアドレスをリーダーリスト３０４から削除する（ステップ４０８）。
【００４５】
一方、ステップ４０３で、読み込んだＩＰアドレスが自分のＩＰアドレスでない場合、読み込んだＩＰアドレス宛にＰｉｎｇコマンドを送信して、応答のあるＩＰアドレスかを判定する（ステップ４０４）。Ｐｉｎｇコマンドに対する応答がない場合、有効なＩＰアドレスでないと判断し、リーダーリストから削除する（ステップ４０６）。一方、Ｐｉｎｇコマンドに対する応答がある場合、有効なＩＰアドレスであると判断し、該ＩＰアドレスを次の送付先のリーダーマシンに設定する（ステップ４０５）。なお、本実施例では、マシンの生死をＰｉｎｇコマンドによって確認したが、他のヘルスチェック方法によってマシンの活性又は非活性の状態を確認してもよい。
【００４６】
自分のＩＰアドレス及び次の送付先のＩＰアドレスが見つかった後、ループを抜け、サブネット内のマシンにＵＤＰでＩＰアドレスの要求を発行する（４０９）。配布先マシン３０２Ｃは、要求ＵＤＰリクエストを受け取ると、自マシンのＩＰアドレスをリーダーマシン３０３Ｃに返す。
【００４７】
リーダーマシン３０３Ｃは、受け取った配布先マシン３０２ＣのＩＰアドレスを宛先リスト３０５に書き込む（ステップ４１０）。
【００４８】
リーダーマシン３０３Ｃは、リーダーリスト３０４と宛先リスト３０５を、ステップ４０５で定めた次の送付先のリーダーマシンに送付する（ステップ４１１）。
【００４９】
複数のリーダーマシン３０３Ａ〜３０３Ｅは、図５に示す処理を順に実行し、最終的にリーダーリスト３０４から全てのアドレスが削除される。最後にリーダーリストを受け取ったリーダーマシンは、全ての配布先マシンが書き込まれた宛先リスト３０５を保持しており、宛先リスト３０５に書き込まれた全てのマシンに宛先リスト３０５を配布する。
【００５０】
図６は、定義ファイル５０２の配布を説明する図である。
【００５１】
複数の配布先マシンの１台を定義マシン５０３に定め、ユーザが定義マシン５０３を用いて、配布先マシンに配布する定義ファイルを作成する。
【００５２】
次に、配布先マシンを複数のグループに分割する。このため、定義マシン５０３は宛先リスト３０５に書き込まれたＩＰアドレス数を計数し、マシンの総数を取得する。定義マシン５０３は、マシンの総数に応じて定められた分割数Ｎで、宛先リスト３０５のＩＰアドレス（配布先マシン）を分割し、定義ファイル５０２を配布する配信木の分割数を決定する。分割数Ｎは、階層数とノード数に応じて決定するとよい。また、分割数Ｎは各配布先マシンの負荷を考慮して決定してもよい。また、分割数Ｎはユーザが決めてもよい。
【００５３】
図６に示す場合、Ｎ＝２で分割しているが、例えば、定義ファイルの配布時の各配布先マシンの負荷を分散したい場合は分割数Ｎ＝２とし、配布クライアント数が多く、ファイル配布時間の短縮したい場合は、分割数Ｎを大きくするとよい（例えば、Ｎ＝１０）。
【００５４】
また、ある階層において下位のノードの数が所定の閾値を超えた場合、定義ファイルの配布元のマシンを増やして並列処理を実行して高速化するため、分割数Ｎを多くするとよい。階層の広がりと配布可能なノード数の数は比例するので、階層が増えた場合には分割数を増やすことができる。
【００５５】
より具体的には、図６に示す例では、宛先リスト５０１に記載された３０個の宛先を２で分割して、宛先リスト５０１Ａと宛先リスト５０１Ｂが作成される。
【００５６】
定義マシン５０３は、宛先リスト５０１Ａの最後尾のＩＰアドレス「１９２．１６８．３．８」を持つ配布先マシン５０６に、ＩＰアドレス（１９２．１６８．３．８）を削除した宛先リスト５０４及び定義ファイル５０２を送付し、宛先リスト５０１Ｂの最後尾のＩＰアドレス「１９２．１６８．２．３」を持つ配布先マシン５０７に、ＩＰアドレス（１９２．１６８．２．３）を削除した宛先リスト５０５及び定義ファイル５０２を送付する。
【００５７】
同様に、配布先マシン５０６は、宛先リスト５０４及び定義ファイル５０２を受け取ると、宛先リスト５０４を任意の数Ｎ（図６に示す例では２）で分割し、分割された宛先リストの最後のＩＰアドレスを持つマシンに、最後のＩＰアドレスを削除した宛先リスト５０８、５０９及び定義ファイル５０２をそれぞれ配布する。同様に、配布先マシン５０７は、宛先リスト５０５及び定義ファイル５０２を受け取ると、宛先リスト５０５を任意の数Ｎ（図６に示す例では２）で分割し、分割された宛先リストの最後のＩＰアドレスを持つマシンに、最後のＩＰアドレスを削除した宛先リスト５１０、５１１及び定義ファイル５０２をそれぞれ配布する。
【００５８】
前述した手順を、宛先リスト内の全てのＩＰアドレスが削除されるまで繰り返し、定義ファイルを配布先マシンに配布する。
【００５９】
以上に説明したように、本発明の第１実施例によると、一台のリーダーマシン３０３Ｃは、ネットワーク１０４の所定の範囲（サブネット）内において、定義ファイル５０２の配布先となるマシンのアドレスを収集し、収集したアドレスのマシンに定義ファイル５０２を配布するので、マシンの追加・削除などのシステムの構成の変化に動的に対応でき、管理者が配布先マシンを管理し、登録する手間を省くことができる。
【００６０】
また、一台のリーダーマシン３０３Ｃは、ネットワーク１０４のサブネット内のマシンにアドレスを要求して、当該サブネット内の計算機のアドレスを収集し、収集したアドレスとリーダーマシン３０３Ｃのアドレスとを宛先リスト３０５に記録し、別のサブネットにおいてアドレスを収集する計算機に送付するので、管理者が定義ファイルの配布先マシンの管理や登録ができない状態でも、サブネット内の配布先が記録された宛先リストを作成できる。また、ネットワーク上の配布先マシンにインストールされたジョブ管理プログラムからアドレスを収集するので、ジョブ管理プログラムがインストールされた配布先マシンを自動的に特定し、ファイルを自動的に配布できる。
【００６１】
また、一台のリーダーマシン３０３Ｃは、定義ファイルの配布先のマシンのアドレスを収集するリーダーマシンのアドレスが記録されたリーダーリスト３０４を保持し、リーダーリスト３０４から選択されたアドレスのマシンが活性状態であるかを判定し、非活性状態であると判定された計算機のアドレスをリーダーリスト３０４から削除し、活性状態であると判定された計算機をリーダーリスト３０４の送付先に設定し、設定された送付先にリーダーリスト３０４及び宛先リスト３０５を送付するので、管理者がリーダーリスト３０４を作成すれば、サブネット内の配布先が記録された宛先リストを作成できる。
【００６２】
また、各配布先マシンは、ジョブ管理システムを構成する計算機の数及び配布先マシンの負荷状況を考慮して、定義ファイル５０２を配布する配信木の分割数Ｎを決定するので、ツリー構造の階層毎のマシンが配布先を決定し、定義ファイルを配信するので、特定のマシンへの負荷の集中を避けることができる。また、配布スピードとマシンの負荷とのバランスにおいて分割数を決定できる。
【００６３】
＜実施例２＞
次に、本発明の第２の実施例について説明する。
【００６４】
前述した第１の実施例では、リーダーリストを用いて配下の配布先マシンのＩＰアドレスを収集して宛先リストを作成したが、第２の実施例では、ジョブ定義からマシンの依存関係を取得し、定義ファイルの配布先を決定する。
【００６５】
図７は、ジョブ定義から取得したマシンの依存関係から生成した宛先に定義ファイルを配布する処理のフローチャートである。
【００６６】
ジョブ定義は、パラメータとしてジョブの依存関係を含む。
【００６７】
ジョブ定義からマシンの依存関係を取得し、配布先を決定する場合（ステップ６０１）、ジョブ定義にパラメータとして記録されている依存関係から自分の接続先のジョブ管理プログラムのＩＰアドレスを取得し（ステップ６０２）、取得したＩＰアドレスにＰｉｎｇを送信し、マシンの生死を確認する（ステップ６０３）。そして、所定時間内にＰｉｎｇの返信がない場合、当該ＩＰアドレスのマシンに自律分散型ジョブ管理プログラムがインストールされていないか、当該ＩＰアドレスのマシンが非活性であると判定し、上位のジョブ管理プログラムにノーリターンの回答を送信し（ステップ６０７）、定義ファイルの配布を終了する（ステップ６０８）。
【００６８】
一方、Ｐｉｎｇの応答があり、Ｐｉｎｇを送信したＩＰアドレスのマシンが生きている場合、接続先のジョブ管理プログラムに定義ファイル５０２を送付する（ステップ６０４）。
【００６９】
接続先のジョブ管理プログラムは、さらに、ジョブ定義にパラメータとして記録されている依存関係から自分の接続先のジョブ管理プログラムのＩＰアドレスを取得し、取得したＩＰアドレスにＰｉｎｇを送信し、当該マシンが生きていることを確認して、接続先のジョブ管理プログラムに定義ファイル５０２を送付する（ステップ６０５）。
【００７０】
ジョブ管理プログラムは、下位のジョブ管理プログラムに定義ファイル５０２の配布が終了すると、上位のジョブ管理プログラムに配布終了の情報を送付する（ステップ６０６）。
【００７１】
ツリー構造の各階層において、ステップ６０６の処理が繰り返されることによって、上位階層のジョブは定義ファイル５０２の配布が終了したジョブ管理プログラムのＩＰアドレスなどの情報を記録して、上位のジョブ管理プログラムに送付する。
【００７２】
接続先ジョブの情報がパラメータに記載されてないジョブ管理プログラムは、配布先がない旨を示す情報を上位のジョブ管理プログラムへ送付する。リーダーマシンは、全てのマシンから配布先がない旨又は配布終了の情報を受けた段階で、情報が配布されるべき全てのマシンに定義ファイル５０２が配布されたことを確認でき、接続すべきマシンのＩＰアドレスの情報を含む宛先リストを有することができる。リーダーマシンは、次に定義ファイル５０２を配布する際、この宛先リストに基づいて、定義ファイル５０２を配布すればよい。
【００７３】
図８は、ジョブ管理プログラムを有するマシンを見つける処理のフローチャートである。図８に示す処理は、リーダーマシンが宛先リストを持っておらず、送信先及び送信範囲が不明な時に実行される。
【００７４】
まず、リーダーマシンから一斉にＰｉｎｇを送信する（ステップ７０１）。Ｐｉｎｇはサブネットアドレスで指定される全ての範囲に送信する。なお、サブネットアドレスの範囲を超えてＰｉｎｇを送信すると、定義ファイルの配付に関係ないマシンがＰｉｎｇに応答することがあり、情報が漏洩のおそれがあるため、送信範囲を制限する。
【００７５】
Ｐｉｎｇの返信によって、マシンの生死を確認し（ステップ７０２）、Ｐｉｎｇの返信があったマシンに、管理情報を一意に識別可能な識別子（ＯＩＤ：Ｏｂｊｅｃｔ  Ｉｄｅｎｔｉｆｉｅｒ）を含むＳＮＭＰコマンドを送信する（ステップ７０３）。
【００７６】
配布先マシンは、ＧｅｔＲｅｓｐｏｎｓｅコマンドを返信する（ステップ７０４）。
【００７７】
また、配布先マシンは、受信したＳＮＭＰコマンドに含まれる管理情報の識別子によって、ＳＮＭＰコマンドを送信したマシンが自分を管理しているリーダーマシンであるかを判定する（ステップ７０５）。そして、ＳＮＭＰコマンドを送信したマシンがリーダーマシンであれば、ネットワーク機器情報を送信する（ステップ７０６）。
【００７８】
その後、リーダーマシンは、ネットワーク機器情報からＩＰアドレスを抽出し、抽出したＩＰアドレスのマシンに、定義ファイル５０２を配布する（ステップ７０７）。そして、定義ファイル５０２の配布が終了すると、上位のジョブ管理プログラムに配布終了の情報を送付する（ステップ７０８）。
【００７９】
情報の配信を受けた配布先マシンは、自分のジョブ管理プログラムの依存情報から、自マシンに接続予定のマシンに配付情報を配布し、ステップ７０５と同様に、返信されたネットワーク機器情報にはＩＰアドレスが含まれており、ＧｅｔＲｅｓｐｏｎｓｅコマンドが返信された端末を宛先リストに含めることによって、予め、ＩＰアドレスリストを有することなく情報を配布できる。
【００８０】
また、リーダーマシンが故障している場合でも、サブネットアドレスが同一のネットワーク内のマシンであれば、送付しようとする情報が必要なマシンにデータを送付できる。
【００８１】
以上に説明したように、本発明の第２実施例によると、一台のリーダーマシンは、配布すべき定義ファイル５０２に含まれる計算機の依存関係を解析して、定義ファイル５０２の配布先となるマシンのアドレスを収集するので、管理者が定義ファイルの配布先マシンの管理や登録ができない状態でも、配布先のアドレスを収集でき、管理者が配布先マシンを管理し、登録する手間を省くことができる。
【００８２】
また、一台のリーダーマシンは、集取したアドレスのマシンが活性状態であるかを判定し、活性状態であると判定されたマシンにデータを配布し、活性状態であるマシンがない場合、データの配布先の計算機がないと判定するので、成りすましによる不正なマシンに定義ファイルを配布する危険を低減できる。
【００８３】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【００８４】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【００８５】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に格納することができる。
【００８６】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【００８７】
１０１Ａ〜１０１Ｄ：配布先マシン
１０２Ａ〜１０２Ｄ：自律分散型ジョブ管理プログラム
１０３Ａ〜１０３Ｄ：ネットワーク情報
１０４：ネットワーク
２０１：入力装置
２０２：定義ファイル
２０３：ジョブ定義情報
２０４：ジョブスケジュール定義情報
２０５：業務フロー情報
２０６：ジョブ実行制御部
２０７：定義読込部
２０８：スケジュール算出部
２０９：ジョブ実行処理部
２１０：連携部
２１１：宛先リスト読込部
２１２：送付先設定部
２１３：イベント通信部
２１４：実行結果ログ
２１５：宛先リスト
３０１Ａ〜３０１Ｅ：サブネット
３０２Ａ〜３０２Ｅ：リーダーマシン以外のマシン
３０３Ａ〜３０３Ｅ：リーダーマシン
３０４：リーダーリスト
３０５：宛先リスト
４０１〜４１０：フローチャート
５０１、５０１Ａ、５０１Ｂ、５０４、５０５、５０８〜５１１、５１６〜５２３：宛先リスト
５０２：定義ファイル
５０３：定義マシン
５０６、５０７、５１２〜５１５、５２４〜５４７：配布先マシン
【図１】
0006489978.tif 000002
【図２】
0006489978.tif 000003
【図３】
0006489978.tif 000004
【図４】
0006489978.tif 000005
【図５】
0006489978.tif 000006
【図６】
0006489978.tif 000007
【図７】
0006489978.tif 000008
【図８】
0006489978.tif 000009