(57)【特許請求の範囲】
【請求項１】
通信路で結合された複数の計算機を有し、各計算機が他の計算機の資源を利用しながら処理を行なう分散システムにおいて、個々の計算機の状態を特定の状態に遷移させるスケジュールを定義するスケジュール情報を作成する方法であって、
前記各計算機について、各計算機毎に、当該計算機が前記特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の依存関係が記述された第１の情報を入力するステップと、
各計算機についての前記第１の情報に基づいて、前記各計算機を各々表す複数の識別情報間を、前記識別情報各々に対応する計算機間の前記依存関係を表すようにリンクした第２の情報を生成するステップと、
生成した前記第２の情報に基づいて、前記全ての計算機の前記第１の情報に記述された全ての前記依存関係を満足するように、当該依存関係に記述された内容を設定した前記スケジュール情報を、前記各計算機毎に作成するステップと、を有すること
を特徴とする分散システムのスケジュール作成方法。
【請求項２】
請求項１記載の分散システムのスケジュール作成方法であって、
前記第１の情報には、前記依存関係が、当該依存関係情報の示す関係が満たされなければならない期間と共に記述されており、
前記第２の情報は、前記第１の情報に基づいて日時毎に作成され、
前記スケジュール情報は、日時毎の前記第２の情報に基づいて日時毎に作成されることを特徴とする分散システムのスケジュール作成方法。
【請求項３】
請求項１または２記載の分散システムのスケジュール作成方法であって、
前記特定の状態とは、前記計算機の起動状態であって、前記第１の情報には、前記依存関係として、当該第１の情報に対応する計算機が資源を利用している他の計算機が起動されてから、当該第１の情報に対応する計算機を起動するまでの時間として保証すべき時間が記述されること
を特徴とする分散システムのスケジュール作成方法。
【請求項４】
請求項１または２記載の分散システムのスケジュール作成方法であって、
前記特定の状態とは、前記計算機の停止状態であって、前記第１の情報には、前記依存関係として、当該第１の情報に対応する計算機が停止されてから、当該第１の情報に対応する計算機が資源を利用している他の計算機が停止されるまでの時間として保証すべき時間が記述されることを特徴とする分散システムのスケジュール作成方法。
【請求項５】
請求項１または２記載の分散システムのスケジュール作成方法であって、
前記第１の情報には、前記依存関係として、当該第１の情報に対応する計算機が前記特定の状態に遷移する場合に、当該第１の情報に対応する計算機が資源を利用している他の計算機がとっていなければならない状態が記述されること
を特徴とする分散システムのスケジュール作成方法。
【請求項６】
請求項３記載の分散システムのスケジュール作成方法であって、
前記スケジュール情報を作成する各計算機について、前記第２の情報に基づいて、他の計算機の資源を利用している計算機が、当該他の計算機より前に停止するように、各計算機の状態を停止の状態に遷移させるスケジュールを定義する第２のスケジュール情報を、各計算機毎に作成するステップを、さらに有すること
を特徴とする分散システムのスケジュール作成方法。
【請求項７】
通信路で結合された複数の計算機を有し、各計算機が他の計算機の資源を利用しながら処理を行なう分散システムであって、
前記複数の計算機のうちの特定の計算機は、
各計算機毎に、当該計算機が特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の依存関係が記述された第１の情報を記憶する記憶手段と、
前記記憶手段に記憶された前記第１の情報に基づいて、前記複数の計算機を各々表す複数の識別情報間を、前記識別情報各々に対応する計算機間の前記依存関係を表すようにリンクした第２の情報を生成する手段と、
生成した前記第２の情報に基づいて、前記第１の情報に記述された全ての前記依存関係を満足するように、計算機の状態を前記特定の状態に遷移させるスケジュールを定義するスケジュール情報であって当該依存関係に記述された内容を設定したスケジュール情報を、各計算機毎に作成する手段と、
各計算機毎に作成した前記スケジュール情報のそれぞれを、対応する計算機に配布する手段とを有し、
前記複数の計算機のそれぞれは、配布された前記スケジュール情報に定義されたスケジュールに従って、自計算機の状態を前記特定の状態に遷移させる自動運転手段を有すること
を特徴とする分散システム。
【請求項８】
通信路で結合された複数の計算機を有し、各計算機が他の計算機の資源を利用しながら処理を行なう分散システムであって、
前記複数の計算機のうちの特定の計算機は、
各計算機毎に、当該計算機が特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の依存関係が記述された第１の情報を記憶する記憶手段と、
前記記憶手段に記憶された前記第１の情報に基づいて、前記複数の計算機を各々表す複数の識別情報間を、前記識別情報各々に対応する計算機間の前記依存関係を表すようにリンクした第２の情報を生成する手段と、
生成した前記第２の情報に基づいて、前記第１の情報に記述された全ての前記依存関係を満足するように、計算機の状態を前記特定の状態に遷移させるスケジュールを定義するスケジュール情報であって当該依存関係に記述された内容を設定したスケジュール情報を、各計算機毎に作成する手段と、
表示手段と、
生成した前記第２の情報の示す、前記複数の計算機を各々表す複数の図形間を、前記複数の図形各々に対応する計算機間の前記依存関係を表す図形で結んだグラフを前記表示手段に表示する手段と、
前記表示手段の表示上で、前記グラフの変更を受付ける手段と、
受付けたグラフの変更に応じて、前記第２の情報の内容を変更する手段と、をさらに有すること
を特徴とする分散システム。
【請求項９】
通信路で結合された複数の計算機を有し、各計算機が他の計算機の資源を利用しながら処理を行なう分散システムであって、
前記複数の計算機のうちの特定の計算機は、
各計算機毎に、当該計算機が特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の依存関係が記述された第１の情報を記憶する記憶手段と、
前記記憶手段に記憶された前記第１の情報に基づいて、前記複数の計算機を各々表す複数の識別情報間を、前記識別情報各々に対応する計算機間の前記依存関係を表すようにリンクした第２の情報を生成する手段と、
生成した前記第２の情報に基づいて、前記第１の情報に記述された全ての前記依存関係を満足するように、計算機の状態を前記特定の状態に遷移させるスケジュールを定義するスケジュール情報であって当該依存関係に記述された内容を設定したスケジュール情報を、各計算機毎に作成する手段と、
前記複数の計算機のうちの１つの計算機の状態を前記特定の状態に遷移させる場合に、前記スケジュール情報に従って、前記１つの計算機以外の計算機を制御した後に、前記１つの計算機を、その状態が前記特定の状態に遷移するよう制御する手段と、を有すること
を特徴とする分散システム。
【請求項１０】
請求項７、８または９記載の分散システムであって、
前記各計算機は、前記第１の情報を編集する手段を有し、
前記特定の計算機は、さらに、各計算機上で編集された前記第１の情報を前記記憶手段に収集する手段を有すること
を特徴とする分散システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、複数の計算機をＬＡＮ等のネットワークで結合して構成される分散システムに関し、特に、その自動運転を行なう技術に関するものである。
【０００２】
【従来の技術】
ＬＡＮ等で結合した複数の計算機を用いて分散処理を行なう分散システムが普及している。また、このような分散システムにおいて、自動的に計算機の起動／停止の制御を行なうことにより、その運用の省力化を図る自動運転の技術が知られている。
【０００３】
このような従来の自動運転の技術としては、たとえば、日立製作所マニュアル「プログラムプロダクトＶＯＳ３統合システム自動運転ＡＯＭＰＬＵＳ解説」に示されている自動運転システムが知られている。この自動運転システムは、複合プロセッサシステムに関するものであり、あらかじめ設定されたスケジュールに基づいて各プロセッサの起動／停止を制御する。また、このスケジュールの設定は、日立製作所マニュアル「プログラムプロダクトＶＯＳ統合システム自動運転ＡＯＭＰＬＵＳ運用の手引」Ｐ３０に記載されているように行なわれていた。すなわち、利用者が各プロセッサ毎に起動／停止スケジュールを定義したパターンを、１または複数作成し、さらに、利用者が、日毎に当該日の自動運転に用いるパターンを指定する、日毎のスケジュールを作成することにより行なわれていた。
【０００４】
【発明が解決しようとする課題】
各計算機毎に起動／停止スケジュールを定義していけば、前述した従来の自動運転システムを、分散システムに適用することができる。
【０００５】
しかし、分散システムでは、その可用性を向上させるために機能を各計算機に分散して担当させており、各計算機は他の計算機のハードウェア、ソフトウェア上の資源を利用しながら処理を遂行することが一般的である。
【０００６】
このため、分散システムでは、ある計算機の動作には、他の計算機が動作していることが必要になるという依存関係が発生する。そして、システムが大規模化するに伴い、このような依存関係は複雑に絡み合ってくる。
【０００７】
しかし、このような複雑な各計算機間の依存関係を、利用者は、即座には把握することができない。
【０００８】
したがって、前述した従来の自動運転システムを、このような分散システムに適用した場合、利用者は、前述した依存関係を調べながら、依存関係を考慮して各計算機の起動／停止スケジュールを決定しなければならなくなる。すなわち、複雑な依存関係が正確に起動／停止スケジュールに反映されたかどうかの保証を、利用者自身が行なわなければならないので、利用者の起動／停止スケジュール作成の負担は過大となる。
【０００９】
そこで、本発明は、各計算機間の依存関係を考慮した自動運転スケジュールの作成を自動的に行なうことのできる分散システムを提供することを目的とする。
【００１０】
また、各計算機間の依存関係を、利用者が把握しやすい形態で示すことのできる分散システムを提供することを目的とする。
【００１１】
また、本発明は、ある特定の計算機の起動／停止を指示された場合に、当該計算機の起動／停止が、各計算機間の依存関係を満たすように行なわれることを保証することのできる分散システムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
前記目的達成のために、たとえば、本発明は、通信路で結合された複数の計算機を有し、各計算機が他の計算機の資源を利用しながら処理を行なう分散システムにおいて、個々の計算機の状態を特定の状態に遷移させるスケジュールを定義するスケジュール情報を作成する方法であって、
前記スケジュール情報を作成する各計算機について、各計算機毎に、当該計算機が前記特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の関係が記述された第１の情報を入力するステップと、
各計算機についての前記第１の情報に基づいて、前記スケジュール情報を作成する各計算機を各々表す識別情報間を、対応する計算機間の前記関係でリンクした第２の情報を生成するステップと、
生成した前記第２の情報に基づいて、前記スケジュール情報を作成する全ての計算機の前記第１の情報に記述された全ての前記関係を満足するように、計算機の状態を特定の状態に遷移させるスケジュールを定義するスケジュール情報を、前記スケジュール情報を作成する各計算機毎に作成するステップとを有することを特徴とする分散システムのスケジュール作成方法を提供する。
【００１３】
【作用】
本発明に係る分散システムのスケジュール作成方法によれば、前記スケジュール情報を作成する各計算機について、各計算機毎に、当該計算機が前記特定の状態に遷移する場合に満たされなければならない、当該計算機と当該計算機が資源を利用している他の計算機との間の関係が記述された第１の情報に基づいて、まず、前記スケジュール情報を作成する各計算機を各々表す識別情報間を、対応する計算機間の前記関係でリンクした第２の情報を生成する。そして、これに基づいて、前記スケジュール情報を作成する全ての計算機の前記第１の情報に記述された全ての前記関係を満足するように、計算機の状態を特定の状態に遷移させるスケジュールを定義するスケジュール情報を、各計算機毎に作成する。
【００１４】
したがって、システム全体の依存関係を考慮することなく２つの計算機間の依存関係を考慮するだけでよくなり、問題を極小化して考えることができるため、スケジュールの作成が容易になる。また、依存関係を表す第１の情報を元にスケジュールを作成していることから、分散システムで機能分散した場合に問題となる依存関係を確実にスケジュールに反映することができる。これによって、スケジュールの正当性を保証し検証処理を省くことができる。
【００１５】
【実施例】
以下、本発明に係る分散システムの実施例について説明する。
【００１６】
図１に、本実施例に係る分散システムの構成を示す。
【００１７】
図中、１００、１２４〜１２７は計算機（ホスト）０〜計算機（ホスト）ｎ、１５０は各計算機１００、１２４〜１２７を結ぶネットワークである。各計算機０〜ｎ（符号１００、１２４〜１２７）は、計算機としての一般的な構成を有しており、たとえば、図２に示すように、ＣＰＵ２００、主記憶２０１、外部記憶装置２０２、キーボードやポインティングデバイス等の入力装置２０３、ＣＲＴ等の表示装置２０４等の各種出力装置、ネットワーク１５０を利用するためのネットワークアダプタ２０５等を備えている。各計算機０〜ｎ（符号１００、１２４〜１２７）は、ネットワーク１５０を介して、相互に機能、資源を提供または利用し合いながら処理を行なう分散システムを構成している。
【００１８】
また、本実施例では、自動運転の中心となる一つの計算機として、計算機０（符号１００）が選択されている。
【００１９】
各計算機１００、１２４〜１２７は、このような分散システム環境を提供するＯＳ上で、主記憶等に格納したプログラムを実行することにより、利用者が利用するユーザプロセスを含め、多くのプロセスを計算機上に実現する。
【００２０】
図３には、このような分散システムにおいて、本実施例において行なう自動運転と自動スケジュールの作成に関係するプロセスによって実現される機能部と、自動運転と自動スケジュールの作成に関係する各種情報を抜き出して示した。各種情報は、主記憶や外部記憶装置等に記憶されている。
【００２１】
図３中、依存情報定義ファイル１〜ｎ（１０１〜１０４）は、自動運転の中心となる計算機０（符号１００）に記憶される情報である。各依存情報定義ファイル１〜ｎ（１０１〜１０４）は、計算機０（１００）〜計算機ｎ（１２７）のいずれかに、それぞれ対応している。また、各依存情報定義ファイル１〜ｎ（１０１〜１０４）は、自身が対応する計算機と他の計算機との間の依存関係を示す情報である。
【００２２】
また、依存グラフ作成部１０５は、自動運転の中心となる計算機０（符号１００）上に設けられており、依存情報定義ファイル１０１〜１０４を読み込んで依存グラフ１０９を作成する。依存グラフ１０９については後述する。
【００２３】
また、スケジュール作成／配布部１０７も、自動運転の中心となる計算機０（符号１００）上に設けられており、作成された依存グラフ１０９から、起動／停止全体スケジュール１１１を作成し、これを基にして、各計算機０〜ｎ（符号１００〜１０７）の起動／停止スケジュール０〜３、ｎ（１０６、１１３、１１６、１２２）を作成し、各計算機のスケジュール切替部１１０、１１４、１１７、１２０、１２３に、その計算機について作成した起動／停止スケジュールを配布する。ここで、各起動／停止スケジュール０〜３、ｎは、対応する計算機の起動、停止のスケジュールを記述した情報である。
【００２４】
次に、スケジュール切替部１１０、１１４、１１７、１２０、１２３は、各計算機０〜ｎ（符号１００〜１０７）上に、それぞれ設けられる。各スケジュール切替部１１０、１１４、１１７、１２０、１２３は、自計算機の自動運転システム１０８、１１２、１１５、１１８、１２１で用いる起動／停止スケジュールを、スケジュール作成／配布部１０７により配布された起動／停止スケジュール０〜３、ｎ（１００６、１１３、１１６、１２２）に切り替える。
【００２５】
また、自動運転システム１０８、１１２、１１５、１１８、１２１も、各計算機０〜ｎ（符号１００〜１０７）上に、それぞれ設けられる。各自動運転システム１０８、１１２、１１５、１１８、１２１は、自計算機に記憶された起動／停止スケジュールに記述されたスケジュールに従い、自計算機の自動運転を制御する。
【００２６】
次に、本実施例において用いる各種情報について説明する。
【００２７】
まず、あらかじめ、少なくとも自動運転の中心となる計算機０（符号１００）に、自動運転の対象となる計算機を定義する情報が記憶されているものとする。
【００２８】
自動運転の対象となる計算機の定義は、たとえば、図４に示す内容を有するグループ定義ファイルによって行なわれる。
【００２９】
図４の例では、グループ定義ファイルは複数のレコードから構成されている。また、１つのレコードは２つのフィールドから構成されている。第１フィールドは自動運転の対象とする計算機名称 (ホスト名称) を一つ指定する必須のフィールドである。第２フィールドはコメントフィールドとなっており必ずしも指定する必要はない。また、記号” ＃” 以降も、また、コメントとして処理される。
【００３０】
このようなグループ定義ファイルの各レコードの第１フィールドに記述された計算機のグループが自動運転の対象となる。
【００３１】
つぎに、依存情報定義ファイル１０１〜１０４の構成例を図５に示す。
【００３２】
前述したように、各依存情報定義ファイル１０１〜１０４は、それぞれに対応して設けられ、対応する計算機と他の計算機との間の依存関係を示している。ただし、この依存情報定義ファイルはすべての計算機について定義する必要はなく、依存関係が全く存在しない計算機については、定義する必要はない。
【００３３】
図５に示した依存情報定義ファイル４００は、複数のレコードから構成される。また、１レコードには６つのフィールド（４０１〜４０６）が設けられている。
【００３４】
第１フィールド４０１は、この依存情報定義ファイル４００が対応する計算機と依存関係にある計算機の名称を記述する。
【００３５】
第２フィールド４０２、第３フィールド４０３には、第１フィールドで指定した計算機と、この依存情報定義ファイル４００が対応する計算機との依存関係の内容を記述する。第２フィールド４０２には、この依存情報定義ファイル４００が対応する計算機を起動する前に起動させる必要があるという依存関係の内容を記述する。第３フィールド４０３には、この依存情報定義ファイル４００が対応する計算機を停止する前に停止させる必要があるという依存関係の内容を記述する。
【００３６】
具体的には、第２フィールド４０２には、起動条件を記述する。ここでは、第１フィールド４０１に記述した計算機を、この依存情報定義ファイル４００が対応する計算機を起動させる、どのくらい前に起動させる必要があるかを" 分"で記述する。また、第３フィールド４０３には、この依存情報定義ファイル４００が対応する計算機を、第１フィールドで指定した計算機を停止させる、どのくらい前に停止させる必要があるかを" 分" で記述する。
【００３７】
第４フィールド４０４から第６フィールド４０６は依存関係が発生する日時を記述する。それぞれ、第４フィールドが月の指定、第５フィールドが日の指定、第６フィールドが曜日の指定である。図５に示した例では、全てがワイルドカード（デフォルト）指定となっているため、毎日第１フィールド４０１で指定した計算機に対して、この依存情報定義ファイル４００が対応する計算機は、第２フィールド４０２、第３フィールド４０３で指定した依存関係が生じることを表している。
【００３８】
なお、各フィールドの記述において、記号”＃” 以降はコメントとなる。
【００３９】
ところで、依存情報定義ファイルは、図６に示すように構成するようにしてもよい。
【００４０】
図６に示した依存情報定義ファイル５００では、図５に示した依存情報定義ファイル４００と第２、第３フィールド５０２、５０３の記述の仕方が異る。
【００４１】
この場合は、時間ではなく計算機の状態を表すようなキーワードで指定する。
【００４２】
たとえば、第１レコード５５２の第２フィイールド５０２の"ｉｐｌ"は、この依存情報定義ファイル５００が対応する計算機の起動は、第１フィールド５５２に記述した計算機が、イニシャルプログラムのロード状態となった後でなければならないという依存関係を表す。また、第１レコード５５２の第３フィイールド５０３の"ｉｎｉｔ０"は、この依存情報定義ファイル５００が対応する計算機の停止は、第１フィールド５５２に記述した計算機でユーザプロセスが実行されていない状態、たとえば、ＵＮＩＸの名称で知られるオペレーティグシステムにおいてはカーネル以外のプロセスが実行されていない状態となった後でなければならないという依存関係を表す。
【００４３】
すなわち、第２フィールドには、依存情報定義ファイルが対応する計算機を起動する前に第１フィールドに記述した計算機がとっていなければならない状態を、第３フィールドには、第１フィールドに記述した計算機を停止する前に依存情報定義ファイルが対応する計算機がとっていなければならない状態を記述する。なお、図６中のｂｏｏｔは、システムのブート状態を、ｓｈｕｔｄｏｗｎはシステムの停止化状態を、ｐｏｗｅｒｏｆｆは休止化状態を示す。
【００４４】
次に、起動／停止スケジュール０〜３、ｎ（１０６、１１３、１１６、１２２）の構成を図７に示す。
【００４５】
前述したように、各起動／停止スケジュール０〜３、ｎは、各計算機のそれぞれに対応して作成され、対応計算機に分配される、対応する計算機の起動／停止のスケジュールを定義している情報である。
【００４６】
図７に示す起動／停止スケジュール３００は、複数のレコードから構成される。また、１レコードは、４つのフィールド（３０１〜３０４）から構成される。第１フィールド３０１、第２フィールド３０２は、この起動／停止スケジュール３００に対応する計算機の起動／停止を自動的に行なう日付が記載される。第１フィールド３０１には、月日の指定が記述され第２フィールド３０２は曜日での指定が記述される。
【００４７】
第３フィールド３０３、第４フィールド３０４には、時刻が記述される。第３フィールド３０３には、計算機の電源を投入する時刻を指定する。第４フィールド３０４には、計算機の電源を切断する時刻を指定する。
【００４８】
なお、第１フィールド３０１の月日の指定および、第２フィールド３０２の曜日指定において、記号” ー” で２つの月日もしくは曜日を結んで記述することにより、自動運転を行なう月日もしくは曜日の範囲を指定することもできる。
【００４９】
また、記号”、” で区切って、複数の日を記述することにより、２つ以上の日を指定できる。
【００５０】
ここで、第２フィールド３０２の曜日の指定には、キーワードとして、” ｍｏｎ”、” ｔｕｅ”、” ｗｅｄ”、” ｔｈｒ”、” ｆｒｉ”、” ｓａｔ”、” ｓｕｎ” を用いて曜日を指定する（たとえば第２レコード３５２）。また、第３フィールド３０３、第４フィールド３０４の開始／終了時刻は、２４時間制で指定する。
【００５１】
また、第３フィールド３０４の開始時刻の” ｈｏｌｉｄａｙ” というキーワード（第３レコード３５３、第７レコード３５７の第３フィールド３０３）は、計算機の電源を投入しないことを示している。なお、各フィールドに記号” ＊” が指定された場合は（第３レコード３５３〜第７レコード３５７の第２フィールド３０２など）、ワイルドカードとして認識される。すなわち、第２レコード３５２の第１フィールド３０１のように月日の指定に記号” ＊”が指定されていれば、デフォルトの起動／停止時刻が指定されたものとして処理する。
【００５２】
以下、本実施例に係る分散システムにおける自動運転に関連する動作について説明する。
【００５３】
図８に、この動作の流れを示す。
【００５４】
まず、自動運転の中心となる計算機０（符号１００）の依存グラフ作成部１０５は、ステップ７０１において依存情報定義ファイル（図５参照）を、図４に示したグループ定義ファイルを参照し、自動運転の対象として定義されているグループに属する計算機全てに対して収集しマージし、これよりステップ７０２において依存グラフ１０９を作成する。
【００５５】
次に、スケジュール作成／配布部１０７は、ステップ７０３において、ステップ７０２においてグラフ化した依存関係から、グループ全体のスケジュールを作成し、ステップ７０４において、起動停止全体スケジュール１１１から各計算機毎に関係のある部分だけを抜き取り、各計算機毎の起動／停止のスケジュール（図７参照）を作成し、ステップ７０５において、ステップ７０４において作成した各計算機毎の起動／停止のスケジュールを、対応する計算機に、それぞれ配布する。
【００５６】
次に、各計算機のスケジュール切替部１１０、１１４、１１７、１２０、１２３は、現在有効となっている起動／停止スケジュールを、ステップ７０６にて配布された起動／停止スケジュール０〜３、ｎ（１００６、１１３、１１６、１２２）に切り替える。
【００５７】
以降、各計算機の自動運転システム１０８、１１２、１１５、１１８、１２１は、この切り替えられた起動／停止スケジュールに従い、自計算機の起動、停止を制御する。
【００５８】
次に、図８において、自動運転の中心となる計算機０（符号１００）の依存グラフ作成部１０５が行なうステップ７０１の処理の詳細について説明する。
【００５９】
図９に、ステップ７０１の処理内容の詳細な手順を示す。
【００６０】
すなわち、まず、依存グラフ作成部１０５は、ステップ８０１において、グループ全体の依存関係を定義する全体依存関係定義ファイルをオープンする。
【００６１】
次に、ステップ８０２において、図４に示したグループ定義ファイルを参照し、自動運転の対象となるグループに属する各計算機の名称を得る。
【００６２】
次に、ステップ８０３において、図４に示したグループ定義ファイルの第１レコードに記述された計算機の名称に対応する依存情報定義ファイルをオープンする。次にステップ８０４において、ステップ８０３においてオープンした依存情報定義ファイルからレコードを１つ読みだす。そして、ステップ８０２で得た計算機の名称とステップ８０４で得た依存情報定義ファイルを対にして、ステップ８０１でオープンした全体依存関係定義ファイルへ書き込む。
【００６３】
次に、ステップ８０６で、ステップ８０３でオープンした依存情報定義ファイルに登録された情報を全てステップ８０４、８０５で処理したか否かを反映し、処理していれば、ステップ８０３でオープンしたファイルをクローズし、ステップ８０７へ進む。まだ、残っている場合は、ステップ８０４、８０５に戻り、依存情報定義ファイルの次のレコードの処理を繰り返す。
【００６４】
ステップ８０７では、ステップ８０１でオープンしたファイルに登録されてる計算機の全てに対して、ステップ８０２〜ステップ８０６までの処理を行なったか否かを判定し、終了していれば処理を終了する。まだ残っている場合には、再びステップ８０２〜８０７までの処理を、次の依存情報定義ファイルについて繰り返す。
【００６５】
以上の処理により、各依存情報定義ファイルの情報はマージされ、全体依存関係定義ファイルに格納される。
【００６６】
なお、この全体依存関係定義ファイルは、図１０に示すように構成する。
【００６７】
すなわち、全体依存関係定義ファイルは、複数のレコードを有し、各レコードは７つのフィールドで構成される。各レコードの第２フィールド９０２から第７フィールド９０７の内容は、図５で示したホスト毎の依存情報定義ファイルの第１フィールドから第６フィールドの内容と同じである。
【００６８】
第１フィールド７０１には、そのレコードの元となった依存情報定義ファイルが対応する計算機の名称が記述される。
【００６９】
なお、先に述べたように、依存情報定義ファイルを持たない計算機も存在するが、この場合、図１０に示した全体依存関係定義ファイル中に、その計算機名称を第１フィールド９０１に持つコードは存在しないことになる。
【００７０】
以上の処理によって、各計算機について個々に依存情報を定義している依存情報定義ファイルが一つにまとめられることになる。
【００７１】
次に、図８のステップ７０２において依存グラフ作成部１０５が行なう依存グラフ作成処理の詳細について説明する。
【００７２】
この処理では、図１０に示した依存関係定義ファイル９００の起動条件（第３フィールド９０３）、停止条件（第４フィールド９０４）のそれぞれについて、全体依存関係定義ファイル９００より、全体依存関係定義ファイル９００中に現れる各計算機についてのノードを作成する。
【００７３】
図１１には、起動条件９０３について作成したノードの構成を示す。
【００７４】
図示するように、各ノードは、３つのエントリより構成する。第１エントリ１００１には、ノードが表す計算機の名称を示す。第２エントリ１００２は、第１エントリ１００１が示す計算機が、依存している計算機のノード１０００へのポインタを示す。第３のエントリ１００３は、第２のエントリ１００２で指し示す計算機への依存度を表し、これは、起動条件（図１０の第３フィールド９０３）に定義されている情報である。なお、第２エントリ１００２と第３エントリ１００３は１つのノード１０００内に複数持つことができる（１０１１、１０１２および１０２１、１０２２および１０ｎ１、１０ｎ２）。１つの計算機が複数の計算機に依存している場合などに、複数のエントリが現われる。
【００７５】
たとえば、図１０の第２レコード９５２、第３レコード９５３のように、第１フィールド９０１、９０２の計算機が同一である場合などである。
【００７６】
このように、各ノード１０００は、依存先と依存度の構造体として構成する。なお、停止条件（図１０の第４フィールド１００４）についても、同様にして、各計算機についてのノードが作成される。ただし、この場合には、第３のエントリ１００３には、停止条件（図１０の第３フィールド９０４）に定義されている情報が格納される。
【００７７】
次に、このノードの集合によって表現される依存グラフの概念について説明する。
【００７８】
図１２に、この起動条件について作成されたノードの集合によって表現される依存グラフの概念を示す。
【００７９】
図１２において、四角で囲んだ部分１１０１〜１１１４はノード１０００を示す。ノードとノードを結ぶ矢印１１５０１〜１１７２は、依存度１０１２、１０２２、１０ｎ２として重み（丸で囲んだ数字）を持つ依存関係を表す。
【００８０】
たとえば、ＨＯＳＴ１（１１０２）とＨＯＳＴ６（１１０７）を結ぶ矢印１１５４は、３０の依存度を持ち、ＨＯＳＴ１（１１０２）はＨＯＳＴ６（１１０７）は影響を与えることを示す（いいかえれば、ＨＯＳＴ６（１１０７）の名称の計算機はＨＯＳＴ１（１１０２）の名称の計算機に依存していることを表す）。たとえば、依存度３０（１１５４）は、ＨＯＳＴ６（１１０７）を起動する３０分前に、ＨＯＳＴ１（１１０２）が起動されていなければならないことを表す。
【００８１】
さらに、ＨＯＳＴ６（９００７）への３つの矢印１１５４、１１５８、１１５９は、ＨＯＳＴ６（１１０７）が３つの計算機ＨＯＳＴ１（１１０２）ＨＯＳＴ４（１１０５）ＨＯＳＴ５（１１０６）に依存していることを示している。これは、図１１に示したように、依存先が複数ある場合（１０１１、１０２１、１０ｎ１）である。なお、図１２中の矢印の向きと、図１１の第２エントリ１００２ポインタの向きは逆になっている。
【００８２】
なお、停止条件について作成されたノードの集合によって表現される依存グラフの概念も、図１２に示したものと同様である。ただ、たとえば、依存度３０（１１５４）は、ＨＯＳＴ１（１１０２）を停止する３０分前に、ＨＯＳＴ６（１１０７）が停止されていなければならないことを表すといったように依存関係の種類が変わるだけである。
【００８３】
また、各ノードは、依存関係に日時・曜日の指定がある場合には、その日時・曜日毎に依存グラフを構築されるように作成するようにする。
【００８４】
以降では、便宜上、日時曜日毎の起動条件の依存グラフを各々構成するノード集合や、停止条件についての日時曜日毎の依存グラフを各々構成するノード集合を依存グラフと呼ぶことにする。
【００８５】
以下、図１１に示したノードを作成する処理の詳細について説明する。
【００８６】
図１３に、この処理の手順を示す。この処理の手順は、図１０に示した全体依存関係定義ファイル９００の起動条件（第３フィールド９０３）、停止条件（第４フィールド９０４）のそれぞれについて行なう。ここでは、起動条件についての処理を例にとり説明する。
【００８７】
さて、まず始めに、全体依存関係定義ファイル９００をオープンする。次にステップ１２０２において、前記全体依存関係定義ファイル９００のレコードを１つ取り出す。次にステップ１２０３において、取り出したレコードから日時・曜日（第４〜第６フィールド）を抽出し、その日時・曜日に該当の起動条件についての依存グラフを検索する。
【００８８】
もし、依存グラフが存在すれば、そのままステップ１２０４に進み、存在しなければ、ステップ１００１０において新しく依存グラフを作成する処理として、先頭と末尾のノード（ｂｅｇｉｎとｅｎｄ）を作成し、これらを相互にリンクさせ、ステップ１２０４に進む。
【００８９】
ステップ１２０４では、登録の対象となる計算機（取りだしたレコードの第１フィールド）に対応するノードが、依存グラフの中に存在するかどうかを探索する。
【００９０】
そして、存在する場合はステップ１２０５に進み、もし存在しない場合は、登録の対象となる計算機についての図１１に示したようなノードを作成し（ステップ１２１１）、ステップ１２９５に進む。
【００９１】
ステップ１２０５では、登録対象の依存先の計算機（取りだしたレコードの第２フィールド）が依存グラフ上に存在するかを探索する。そして、存在する場合には、ステップ１２０６に進み、存在しない場合には、ステップ１２１１と同様に、依存先の計算機についての新たなノードを作成する（ステップ１２１２）し、ステップ１２０６に進む。
【００９２】
ステップ１２０６では、ステップ１２０４、１２０５で求めたノード同志のリンクを確立する。具体的には、図１１に示すノードへのポインタ１０１１、１０２１、１０ｎ１に、取りだしたレコードの第２フィールドを設定する。さらに、そのリンクに対して図１２で示したような重み（依存度：第３フィールド）を設定する（ステップ１２０７）。具体的には、図１１に示す依存度１０１２、１０２２、１０ｎ２に、取りだしたレコードの第３フィールドを設定する。
【００９３】
最後にステップ１２０８において、ステップ１２０１でオープンしたファイルに定義されているレコードを全て処理したかどうかを判定し、まだ残っている場合は、ステップ１２０２〜１２０８までの処理を繰り返し、全て処理した場合は終了する。
【００９４】
以上の処理によって、日時曜日毎の起動条件についての図１２に示したような依存グラフが完成する。また、停止条件について、同様な処理を行なうことにより、日時曜日毎の停止条件の依存グラフが作成される。
【００９５】
ここで、ステップ１２１１において新たにノードを登録する場合は、次の条件で登録する。
【００９６】
（１） 登録対象計算機についてのノードも依存先計算機についてのノードも登録されていない場合：先頭ノードと末尾のノードの間に挿入
（２） 依存先計算機のノードだけ登録されている場合：その依存先計算機のノードと末尾ノードの間に挿入
また、ステップ１２１２において新たにノードを登録する場合は、依存元の計算機（登録対象計算機）についてのノードと先頭ノードとの間に挿入する。
【００９７】
なお、ここで挿入とは、ノードをその間に挿入する２つのノードをリンクしている、２つのノードのうちの末尾ノード側のノードのポインタ１００２を、挿入するノードをリンクするように変更し、挿入するノードのポインタ１００２を、２つのノードのうちの先頭ノード側のノードをリンクするように設定することをいう。
【００９８】
また、本実施例では、先頭ノードおよび末尾ノードと、計算機を表すノードとの依存度は、”０”として設定する。ただし、先頭ノードおよび末尾ノードを、あるイベント（たとえば定時）を表すノードとし、これとの依存度を設定するようにしてもよい。
【００９９】
次に、図８のステップ７０３において、スケジュール作成／配布部１０７が行なう起動停止全体スケジュール１１１の作成について説明する。
【０１００】
この処理では、作成した依存グラフより、各ノードの起動時間、停止時間を設定した起動停止全体スケジュール１１１を作成する。これには、たとえば最短経路問題などで知られているアルゴリズムを用いる。いま、起動時間の設定を例にとり説明する。この場合は、
（１） まず、先頭のノード（ｂｅｇｉｎ１１０１）を探索対象とする。
【０１０１】
（２） 探索対象となるノードへの依存を表すパスを全て探索する。たとえば、ｂｅｇｉｎ（１１０１）が探索対象ならば、パス１１５２、１１５３、１１５４が探索される。
【０１０２】
（３） 探索したパスで接続する各依存元のノードの起動時間からパスの重みを減算したもののうちで、最も早く起動するものをそのノードの起動時間とする。この際、探索したパスで接続するノードに依存しているノードがなければ（末尾のノード；ｅｎｄ１１１４であれば）、そのノードの起動時刻は、あらかじめ決定しておいたデフォルトの起動時刻とする。
【０１０３】
（４）また、探索したパスで接続する各依存元のノードに依存しているノードがあれば、探索したパスで接続する各依存元のノードを探索対象として（２）からの処理を行なう。
【０１０４】
このようにすることにより、先頭のノード（ｂｅｇｉｎ１１０１）より、順次、（２）（３）の処理がリカーシブに適用され、各ノードの起動時間が求められる。  なお、各日時曜日毎の依存グラフが作成されている場合には、日時曜日毎に、各ノードの起動時間を求める。
【０１０５】
また、各ノードの停止時間も、日時曜日毎に、同様に求めることができる。ただし、この場合は、前記処理の（３）で、探索したパスで接続する各依存元のノードの停止時刻にパスの重みを加算したもののうちで、最も遅く停止する時刻をそのノードの停止時間とする。また、探索したパスで接続するノードに依存しているノードなければ（ｅｎｄノード１１１４であれば）、そのノードの停止時刻は、あらかじめ決定しておいたデフォルトの停止時刻とする。なお、停止条件について処理する場合は、起動条件について処理する場合の先頭ノードｂｅｇｉｎと末尾のノードｅｎｄを交換してもよい。そして、図１２の矢印の向きを、矢印の向きと、図１１の第２エントリ１００２ポインタの向きを揃えるように考えてもよい。このようにすると、停止の時間的順序と、先頭ノードｂｅｇｉｎから末尾のノードｅｎｄに向かう矢印の向きの流れが一致する。
【０１０６】
なお、起動条件、停止条件の双方について、先頭ノードｂｅｇｉｎ（１１０１）ではなく、ｅｎｄノード１１１４から順次（２）（３）の処理をリカーシブに適用し、各ノードの起動、停止時間を求めることもできる。これは、ｂｅｇｉｎノードと、ｅｎｄノード１１１４のいづれを、絶対的な時刻の基準とするかによって選択すればよい。
【０１０７】
なお、さらに、たとえば、サーバ  ー  クライアントの関係にあるサービスを考えた場合、起動時は、サーバが必ず先に起動されていなければならず、停止時はクライアントが停止するまでサーバを停止することはできないなど、ちょうど起動時の依存関係が停止時にもそのまま利用できる場合には、起動条件の依存グラフを元に停止時のスケジュールを作成するようにしてもよい。
【０１０８】
さて、最後に、スケジュール作成／配布部１０７は、このようにして作成された日時曜日毎に各ノードの起動、停止時刻より、日毎の起動停止全体スケジュール１１１を作成し登録する。ただし、ｂｅｇｉｎノードと、ｅｎｄノード１１１４についての起動、停止時刻は登録する必要はない。
【０１０９】
次に、図８のステップ７０４において、スケジュール作成／配布部１０７が行なう計算機毎の起動／停止スケジュールの作成について説明する。
【０１１０】
この処理の手順を図１４に示す。
【０１１１】
図示するように、この処理では、まず、図４に示したグループ定義ファイルに登録された計算機の名称を１つ取り出し、処理対象の計算機とする（ステップ１３０１）。次に、ステップ１３０２として、１つの日毎の起動停止全体スケジュール１１１から、ステップ１３０１で取り出した計算機についての起動／停止時間を検索する。次に検索の結果、この全体スケジュールに処理対象の計算機が登録されている場合、日付と登録されている起動時刻／停止時刻を処理対象の計算機についての起動／停止スケジュール（図７参照）に記述し、次の処理へ移る（ステップ１３０４）。
【０１１２】
全体スケジュール１１１に登録されていない場合は、ステップ１３０４は行なわずステップ１３０５へ進む。ステップ１３０５では、全ての全体スケジュールを処理したかどうかを判定し、未処理のものがある場合は、次の起動停止全体スケジュール１１１について、ステップ１３０２〜ステップ１３０４までの処理を再び行なう。
【０１１３】
そして、全ての全体スケジュールを処理したら、ステップ１３０６として曜日に依存しない起動／停止時刻（デフォルトの起動／停止時刻）を、処理対象の計算機についての起動／停止スケジュール（図７参照）に記述する。
【０１１４】
最後にステップ１３０７として、図４に登録された計算機に対して全て処理したかどうかを判定し、未処理の計算機がある場合再びステップ１３０１〜ステップ１３０７までの処理を、次の計算機について繰り返す。全ての計算機に対して処理が終了した場合、計算機毎の起動／停止スケジュール作成処理を終了する。
【０１１５】
なお、ここで、他の計算機との間の依存関係を全く有しない計算機については、ステップ１３０６において、デフォルトの起動／停止時刻のみが設定された起動／停止スケジュールが作成される。
【０１１６】
次に、図８のステップ７０５において、スケジュール作成／配布部１０７が行なう計算機毎の起動／停止スケジュールの配布について説明する。
【０１１７】
この処理の手順を図１５に示す。
【０１１８】
図示するように、この処理では、まず、ステップ１４０１として、図４に示したグループ定義ファイルに登録された計算機の名称を１つ取り出す。
【０１１９】
次に、その計算機とのネットワーク１５０を介した通信コネクションを確立する（ステップ１４０２）。次に、ステップ１４０２において確立しようとした通信コネクションが確立できなかった場合（ステップ１４０３）、ステップ１４１０において『確立失敗』したことをログとして記録する。通信コネクションが確立できた場合は、ステップ１４０１で得た計算機の起動停止スケジュールファイルを、その計算機の、あらかじめ定めた論理的な記憶領域（パス）にネットワーク１５０を介して転送する（ステップ１４０４）。この論理的な記憶領域は、自動運転システム１１２〜１１７が起動／停止スケジュールを参照する領域として、あらかじめ定めた領域である。
【０１２０】
なお、計算機０（符号１００）については、既に、起動／停止スケジュールが同計算機上に存在するので、ステップ１４０２、１４０３の処理は不要であり、単に、ステップ１４０４で、あらかじめ定めた論理的な記憶領域（パス）に起動／停止スケジュールを転送するだけでよい。
【０１２１】
次に、グループ定義ファイルに定義されている全ての計算機に対してステップ１４０１〜ステップ１４０５の処理を適用した場合は、ステップ１４０６に進む。まだ未処理の計算機が存在する場合は、再び、次の計算機についてステップ１４０１〜ステップ１４０５の処理を繰り返す（ステップ１４０５）。
【０１２２】
そして、最後にステップ１４０６においてステップ１４１０で記録したログを備えた表示装置に表示し、転送失敗した計算機を表示し終了する。なお、転送に失敗した計算機に対しては、ユーザにより転送処理が必要となる。
【０１２３】
また、エラー無しに全ての計算機への転送が完了した場合は、次の起動／停止スケジュールの切り替え処理を実行するように設定しておくのが好ましい。このようにすることにより、各計算機について自動的に新しい起動／停止スケジュールに、起動／停止スケジュールを切り替えることができる。
【０１２４】
次に、図８のステップ７０６において、各計算機のスケジュール切替部１１０、１１４、１１７、１２０、１２３が行なう起動／停止スケジュールの切り替え処理について説明する。
【０１２５】
この処理の手順を図１６に示す。
【０１２６】
図示するように、この処理では、各計算機のスケジュール切替部は、まず、ステップ１５０１として、自計算機の自動運転システムに登録されている次回の停止時刻を得る。これは、たとえば自動運転システムで提供されているコマンドなどを利用して行なうことができる。
【０１２７】
次にステップ１５０２として、転送された新しい起動／停止スケジュールの中からステップ１５０１で求めた停止日時時刻以降で最も近い起動時刻を検索する。これによって得た起動時刻で、現在自動運転システム登録されている次回起動時刻を更新する（ステップ１５０３）。そして、最後にステップ１５０４として、現在自動運転システムが認識しているス起動／停止ケジュールを新たに作成／転送された起動。停止スケジュールに切り替える。これによって、計算機の停止するまでは、旧起動／停止スケジュールに従い運用され、次回の起動後からは新しい起動／停止スケジュールで計算機は、自動運転システムによって運用される。
【０１２８】
以上、本実施例に係る分散システムにおいて各計算機の自動運転システムが、自動運転に用いる起動／停止スケジュールの作成と更新動作について説明した。
【０１２９】
なお、以上の実施例では、あらかじめ、各計算機の依存情報１０１〜１０４が、自動運転の中心となる計算機０（符号１００）上に存在するものとして説明したが、これは、各計算機上において作成されたものを計算機０に収集して用いるようにしてもよい。
【０１３０】
この場合は、計算機０上に、図１７に示すように、依存情報収集部６０１を設け、依存情報収集部６０１が図８に示す処理に先立ち、各計算機から、その計算機についての依存情報を、ネットワーク１５０を介して収集するようにしてもよい。
【０１３１】
また、以上の実施例では、図５に示した依存情報を用いる場合について説明したが、図６に示した形式の依存情報も、その起動条件５０２と停止条件５０３とを、その内容に応じた時間に変換することにより図５に示した依存情報と同様に用いることができる。
【０１３２】
ところで、以上示した実施例において、さらに、図１２に示した形式の依存グラフを表示装置に表示し、この表示上で、起動停止全体スケジュール１１１の変更を受付けるようにしてもよい。
【０１３３】
すなわち、図１８に示すように、図１２に示した依存グラフと同様、四角１６０２〜１６１３と矢印で示された計算機間の依存関係を表示するようにする。図中の１６５０は表示装置の画面を表し、１６５１はポインティングデバイス、１６５２はポインティングデバイス１６５１により操作されるカーソルを表す。
【０１３４】
そして、たとえば、表示された依存グラフ上の矢印をピックされた場合には、その矢印に対応する依存度を変更する。また、矢印がピックされドラッグ（移動）された場合には、矢印を移動し、この移動に伴い、依存関係を有する計算機を変更する。これらは、実際には、図１１に示したノードのポインタ１００２や依存度１００３を、カーソル１６５２の位置とポインティングデバイスの操作（たとえば、クリック等）に応じて変更することにより実現される。
【０１３５】
そして、その後、再び図８に示すステップ７０３以降の処理を行なわれると、会話的に各計算機の起動／停止スケジュールが作成される。
【０１３６】
なお、停止条件についての依存グラフについては、ノ−ド（図１１）の第２エントリ１００２のポインタの向きと矢印の向きが揃うように表示するのがよい。停止の順序と矢印を一致させることができるからである。
【０１３７】
また、図１８のように単に表示するだけでも、現在のシステムの依存関係が明確になり、システム構築の参考にすることができる。
【０１３８】
また、図１３に示した処理で作成した依存グラフは、図１９に示すような構成の分散システムにおいて、次のような計算機の停止制御に用いることもできる。
【０１３９】
図１９において、状態管理手段１７０６は、各計算機１７００、１７０２〜１７０４の状態報告手段１７０５、１７１０〜１７１３から計算機１７００、１７０２〜１７０４の状態報告を受け、計算機の状態管理を行う。
【０１４０】
この状態管理手段１７０６は、計算機の状態が変わるたびに起動停止制御手段１７０８にその旨を報告し、起動停止制御手段１７０８は、あらかじめ登録されているスケジュールに基づいて、停止または起動の条件にマッチした計算機の起動／停止を制御する。このとき使用されるスケジュールとしては、たとえば、図６に示すような内容のものを用いることができる。または、利用者より、特定の計算機の起動または停止を指示された場合に、この計算機の起動／停止を制御する。
【０１４１】
起動停止制御手段１７０８の計算機の起動／停止の制御は、次のように行なう。
【０１４２】
すなわち、ある特定の計算機起動する場合は、その計算機が依存する計算機を依存グラフ１０９より検索し、その依存している計算機のほうから先に起動するように起動停止手段１７０９、１７１４〜１７１７に起動指示を与える。各計算機の起動停止手段１７０９、１７１４〜１７１７は、与えられた起動指示に従い、自計算機を起動させる。
【０１４３】
たとえば、図１２でＨＯＳＴ６（１１０７）を起動しようとした場合、依存グラフからＨＯＳＴ１（１１０２）、ＨＯＳＴ２（１１０３）、ＨＯＳＴ３（１１０４）、ＨＯＳＴ４（１１０５）、ＨＯＳＴ５（１１０６）の５つの計算機に依存していることがわかる。また、その依存度から、どれを最初に起動しなければならないかも判定できる。そこで、依存度の累計の大きいものから順に起動するようにする。
【０１４４】
また、停止させる場合は、先の例とは逆に影響を与えている計算機を検索するようにし、影響を与える計算機のほうを先に停止するようにする。たとえば、図１２でＨＯＳＴ６（１１０７）を停止しようとした場合、依存グラフからＨＯＳＴ８（１１０９）、ＨＯＳＴ１１（１１１２）、ＨＯＳＴ１０（１１１１）の３つの計算機に影響を与えていることが判る。そこで、依存度の累計の大きいものから順に停止するように起動停止手段１７０９、１７１４〜１７１７に停止指示を与える。
【０１４５】
各計算機の起動停止手段１７０９、１７１４〜１７１７は、与えられた停止指示に従い、自計算機を停止させるが、停止は、自計算機が停止可能な状態、たとえば、ユーザプロセス等によって使用されていない状態になった後に行なう。この停止は、状態報告手段１７１０、１７１１、１７１２、１７１３、１７０５によって、状態管理手段１７０６に報告される。起動停止制御手段１７０８は、この状態管理手段１７０６に報告された停止の報告に基づいて、各計算機の停止のシーケンスを制御する。
【０１４６】
以上説明してきたように、本実施例によれば、分散システムの自動運転における運転スケジュール作成において、スケジュール作成の対象となる個々の計算機とその依存先のみの関係より全体のスケジュールを構築できる。したがって、利用者は、システム全体の複雑な依存関係を考慮する必要がなく、依存関係を極小化して考えることができる。また、依存関係を基にスケジュールを作成することから、分散システムに起因する計算機間の複雑な依存関係を確実に各計算機のスケジュールに反映することができ、スケジュールの検証手段を必要としない。また、依存関係を依存グラフの形態で明確に示すことができるため、分散システムにおける機能分散の設計方針決定の支援を行なうことができる。また、依存関係を考慮して起動／停止順序を指示できることから、多数ある計算機のうち必要な部分だけを起動させるというように分散システムの利用を行なうことができ、システムの可用性を向上させることができる。
【０１４７】
なお、以上の実施例では、各計算機の起動／停止の制御を行なうためのスケジュールについて説明したが、各計算機の、起動／停止以外の状態の制御にも同様に適用することができる。
【０１４８】
【発明の効果】
以上のように、本発明によれば、各計算機間の依存関係を考慮した自動運転スケジュールの作成を自動的に行なうことのできる分散システムを提供することができる。また、各計算機間の依存関係を、利用者が把握しやすい形態で示すことのできる分散システムを提供することができる。また、ある特定の計算機の起動／停止を指示された場合に、当該計算機の起動／停止が、各計算機間の依存関係を満たすように行なわれることを保証することのできる分散システムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施例に係る分散システムの構成を示すブロック図である。
【図２】本発明の実施例に係る計算機の構成を示すブロック図である。
【図３】本発明の実施例に係る分散システムの自動運転に関する部分を抜き出して示したブロック図である。
【図４】本発明の実施例に係るグループ定義ファイルの構成を示す図である。
【図５】本発明の実施例に係る依存情報定義ファイルの構成を示す図である。
【図６】本発明の実施例に係る依存情報定義ファイルの構成を示す図である。
【図７】本発明の実施例に係る起動／停止スケジュールの構成を示す図である。
【図８】本発明の実施例に係る分散システムの動作の流れを示すフローチャートである。
【図９】本発明の実施例に係る依存情報定義ファイルのマージ処理の手順を示すフローチャートである。
【図１０】本発明の実施例に係る全体依存関係定義ファイルの構成を示す図である。グラフを構成するノードの構成を示す。
【図１１】本発明の実施例に係るノードの構成を示す図である。
【図１２】本発明の実施例に係るノードによって表現される依存グラフを示す図である。
【図１３】本発明の実施例に係る依存グラフの生成処理の手順を示すフローチャートである。
【図１４】本発明の実施例に係る起動／停止スケジュール生成処理の手順を示すフローチャートである。
【図１５】本発明の実施例に係る起動／停止スケジュール配布処理の手順を示すフローチャートである。
【図１６】本発明の実施例に係る起動／停止スケジュール切替処理の手順を示すフローチャートである。
【図１７】本発明の実施例に係る分散システムの自動運転に関する部分の他の構成例を示すブロック図である。
【図１８】本発明の実施例に係る依存グラフの表示のようすを示す図である。
【図１９】本発明の実施例に係る分散システムの自動運転に関する部分の他の構成例を示すブロック図である。
【符号の説明】
１００、１２４、１２５、１２６…計算機
１５０…ネットワーク
１０６、１１２、１１５、１１６、１２１…自動運転システム
１０１〜１０４…依存情報定義ファイル
１０９…依存グラフ
１０６…依存グラフ作成部
１０７…スケジュール作成／配布部
１１１…起動停止全体スケジュール
１０６、１１３、１１６、１１９、１２２…起動／停止スケジュール
１１０、１１４、１１７、１２０、１２３…スケジュール切替部
【図１】
0003636744.tif 000002
【図２】
0003636744.tif 000003
【図３】
0003636744.tif 000004
【図４】
0003636744.tif 000005
【図５】
0003636744.tif 000006
【図６】
0003636744.tif 000007
【図７】
0003636744.tif 000008
【図８】
0003636744.tif 000009
【図９】
0003636744.tif 000010
【図１０】
0003636744.tif 000011
【図１１】
0003636744.tif 000012
【図１２】
0003636744.tif 000013
【図１３】
0003636744.tif 000014
【図１４】
0003636744.tif 000015
【図１５】
0003636744.tif 000016
【図１６】
0003636744.tif 000017
【図１７】
0003636744.tif 000018
【図１８】
0003636744.tif 000019
【図１９】
0003636744.tif 000020