(57)【要約】【課題】分散処理の処理対象を記憶する管理コンピュータの負荷を低減し、かつ、管理コンピュータの障害時の復旧に要する処理を低減させた分散処理システムの提供を目的とする。【解決手段】分散処理の管理をする管理コンピュータから送信された演算の対象を処理コンピュータが演算して、管理コンピュータに演算の結果を送信する分散処理を実行させる分散処理であって、処理コンピュータが、管理コンピュータからの処理の対象を受信し、処理の対象の内、再現可能な処理の結果を選択的に記憶し、処理の結果を管理コンピュータに送信する。【選択図】図１
2008226177.tif 000002
【特許請求の範囲】
【請求項１】
分散処理の管理をする管理コンピュータから送信された演算の対象を処理コンピュータが演算して、該処理コンピュータが該管理コンピュータに該演算の結果を送信する分散処理を実行させる分散処理プログラムであって、
該処理コンピュータに、
該管理コンピュータからの演算の対象を受信するステップ、
該演算の対象が再度演算した場合に同一の結果となる、該演算の対象の結果を、選択的に記憶するステップ、
を実行させる分散処理プログラム。
【請求項２】
該管理コンピュータの異常の発生を検出したときに、
該再度演算した場合に同一の結果となる、該演算の対象の結果を、送信可能である情報を該管理コンピュータに送信するステップ、
を更に実行させる請求項１に記載の分散処理プログラム。
【請求項３】
該管理コンピュータから該再度演算した場合に同一の結果となる該演算の対象の結果を削除してもよい旨の情報を受信したときに、該再度演算した場合に同一の結果となる、該演算の対象の結果を、削除するステップ、
を更に実行させる請求項１に記載の分散処理プログラム。
【請求項４】
利用者端末から処理を受信し、該処理を複数の演算の対象に分割し、該演算の対象を処理コンピュータに送信し、該処理コンピュータから該演算の結果を受信する分散処理を管理コンピュータに実行させる分散処理プログラムであって、
該管理コンピュータに、
該分割した演算の対象毎に識別子を付加した該演算の対象を該処理コンピュータに送信するステップ、
分散処理の途中で該管理コンピュータの該分散処理に関する情報が失われた場合に、該演算の対象が再度演算した場合に同一の結果となる、該演算の対象の結果を、該処理コンピュータから受信するステップ、
を実行させる分散処理プログラム。
【請求項５】
該処理対象の内、再度演算した場合に同一の結果となることが不明な該演算の対象を該処理コンピュータに送信するステップ、
を更に実行させる請求項４に記載の分散処理プログラム。
【請求項６】
分散処理の分割された演算対象の管理をする管理コンピュータと、該演算対象の処理依頼を受信し、該処理対象を演算し、および演算結果を該管理コンピュータに送信する処理コンピュータとからなる分散処理システムであって、
該管理コンピュータは、該分割した演算の対象毎に識別子を付加した該演算の対象を該処理コンピュータに送信し、
該処理コンピュータは、受信した該処理対象の内、再度演算した場合に同一の結果となる、該演算の対象の結果を、選択的に記憶するとともに該処理対象の結果情報を該管理コンピュータに送信し、
分散処理の途中で該管理コンピュータの該分散処理に関する情報が失われた場合に、該演算の対象が再度演算した場合に同一の結果となる、該演算の対象の結果を、該処理コンピュータから受信することを特徴とする分散処理システム。
【請求項７】
分散処理の管理をする管理コンピュータから送信された演算の対象を処理コンピュータが演算して、該処理コンピュータが該管理コンピュータに該演算の結果を送信する分散処理を実行させる分散処理システムの分散処理方法であって、
該処理コンピュータが、
該管理コンピュータからの演算の対象を受信し、
該演算の対象が再度演算した場合に同一の結果となる、該演算の対象の結果を、選択的に記憶する
ことを特徴とする分散処理方法。
【請求項８】
該管理コンピュータが該分割した演算の対象毎に識別子を付加した該演算の対象を該処理コンピュータに送信し、
該処理コンピュータは受信した該処理対象の内、再度演算した場合に同一の結果となる該演算の対象の結果を、選択的に記憶するとともに、該処理対象の結果情報を該管理コンピュータに送信し、
分散処理の途中で該管理コンピュータの該分散処理に関する情報が失われた場合に、該演算の対象が再度演算した場合に同一の結果となる、該演算の対象の結果を、該処理コンピュータから受信する
ことを特徴とする請求項７に記載の分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散処理システムのデータの管理方法に関する。
【背景技術】
【０００２】
分散処理は、複数のコンピュータを通信によって接続し、互いのコンピュータ間で通信をしながら処理を実行する。分散処理のシステムでは、管理コンピュータは、利用者端末から与えられた一連の処理を処理コンピュータに分散させる処理の最小単位（以下、ジョブという）に分割し、各ジョブに応じた処理を実行する処理コンピュータに分散して処理させる。管理コンピュータは、障害発生に対する対策として、ジョブの管理情報を管理コンピュータ自身が有する記憶装置に格納する。分散処理の従来技術として、下記文献がある。
【０００３】
しかし、管理コンピュータはジョブに関する情報をジョブ毎に磁気ディスク装置等の記憶装置へ格納するため、格納するための時間を要する。この結果、分散処理システムでは管理コンピュータがジョブ情報を記憶装置に格納する時間が処理の遅延の要因となっている。一方、管理コンピュータがジョブ情報を記憶しない構成の場合、一連の処理の途中で管理コンピュータに異常が発生した場合、処理に関する情報が失われる場合もある。
【０００４】
別の方法として、管理コンピュータを冗長構成とする方式あるいは管理コンピュータの記憶装置を冗長構成とする方式もある。しかし冗長構成とするとシステムの構成に多額の費用がかかる問題があった。更に冗長構成での管理コンピュータ間の制御が必要となり、分散処理システムの処理が複雑になる結果、分散処理システムの動作が不安定になる問題があった。また、処理の経過を記憶する必要があるため、管理コンピュータの負荷は改善しない問題があった。
【特許文献１】特開平０８−１１０８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、分散処理の処理対象を記憶する処理による管理コンピュータの負荷を低減し、かつ、管理コンピュータの障害時の復旧に要する処理を低減させた分散処理システムの提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明は、分散処理の管理をする管理コンピュータから送信された演算の対象を処理コンピュータが演算して、処理コンピュータが管理コンピュータに演算の結果を送信する分散処理を実行させる分散処理システムに関する。本発明の第一の手段では、処理コンピュータが、管理コンピュータからの演算の対象を受信し、該演算の対象が再度演算した場合に同一の結果となる演算の対象の結果を選択的に記憶する。
【０００７】
また、本発明の第二の手段は第一の手段に加えて、管理コンピュータの異常の発生を検出したときに、再度演算した場合に同一の結果となる演算の対象の結果を送信可能である情報を管理コンピュータに送信する。
【０００８】
また、本発明の第三の手段は第一の手段に加えて、管理コンピュータから再度演算した場合に同一の結果となる演算の対象の結果を削除してもよい旨の情報を受信したときに、再度演算した場合に同一の結果となる演算の対象の結果を削除する。
【０００９】
また、本発明の第四の手段では、管理コンピュータが、分割した演算の対象毎に識別子を付加した演算の対象を処理コンピュータに送信し、分散処理の途中で管理コンピュータの分散処理に関する情報が失われた場合に、該演算の対象が再度演算した場合に同一の結果となる演算の対象の結果を処理コンピュータから受信する。
【発明の効果】
【００１０】
本発明は、処理コンピュータ及び利用者端末が分散処理に必要な情報を格納する。
【００１１】
したがって、管理コンピュータの分散処理に関する情報を記憶装置に記憶するための処理が不要となり、管理コンピュータの負荷が軽減する。また、処理コンピュータは再度演算した場合に同一の結果となる演算の対象の結果を選択的に格納するため、再度演算した場合に同一の結果となる演算の対象の結果については復旧に要する処理が低減する。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を説明する。
【００１３】
図１は、本実施例の分散処理システム１のシステム構成図である。本実施例での分散処理システム１は、管理コンピュータ（ｍａｎａｇｅｍｅｎｔ  ｃｏｍｐｕｔｅｒ）１０、複数の処理コンピュータ（ＪＯＢ  ｃｏｍｐｕｔｅｒ）２０、および複数の利用者端末（Ｕｓｅｒ  ｔｅｒｍｉｎａｌ）３０とから構成されており、それらがネットワーク４０を介して接続された構成となる。
【００１４】
管理コンピュータ１０は、ネットワーク４０を介して接続された複数の処理コンピュータ２０に実行させる処理群を管理する。利用者から登録された一つのまとまった処理要求を利用者端末３０が受け取り、利用者端末では受け取った処理要求を個々の処理コンピュータ２０が実行する処理毎に分割する。個々の処理コンピュータ２０が実行するために分割された処理はジョブ（ＪＯＢ）と呼ばれる。管理コンピュータ１０は、処理要求および分割された個々の処理を管理する。
【００１５】
処理コンピュータ２０は、それぞれ個別の処理能力を有する。処理能力は、処理コンピュータ２０が有するＣＰＵの性能、メモリの容量、記憶容量の大きさ等のハードウェアの構造、ＯＳ、およびジョブを実行する際に割り当てる処理能力の割合から決定される。分散処理システム１上の個々の処理コンピュータ２０毎に異なる処理能力を有する場合がある。処理コンピュータ２０は、ジョブの演算を実行した結果を管理コンピュータ１０に送信する。
【００１６】
利用者端末３０は、利用者からの処理要求が入力される端末である。利用者端末３０は管理コンピュータ１０にネットワーク４０を介して処理要求を送信する。
【００１７】
次に、管理コンピュータ１０、複数の処理コンピュータ２０、および複数の利用者端末３０のハードウェア構成について説明する。図２は、本実施例の管理コンピュータ１０のハードウェア構成図である。管理コンピュータ１０は、制御部１１、メモリ１２、記憶部１３、入力部１４、出力部１５、ネットワークインターフェース部１６を有し、それぞれがバス１７に接続された構成である。
【００１８】
制御部１１は管理コンピュータ１０の全体を制御する。例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）である。また、制御部１１はメモリ１２に展開された管理プログラム１８を実行する。管理プログラム１８は制御部１１を利用者端末３０からのジョブプログラムや処理コンピュータ２０からのジョブの処理結果などを受付けるとともに処理コンピュータ２０へのジョブ処理依頼や利用者端末３０への処理要求に対する処理結果などを出力するジョブ管理モジュール１１１、管理コンピュータの異常時にジョブデータを復旧する管理復旧モジュール１１２、として機能させる。
【００１９】
メモリ１２は、記憶部１３に格納された管理プログラム１８が展開される記憶領域である。また、メモリ１２は制御部１１が管理プログラム１８を実行する際に生成される種々の演算結果が格納される記憶領域である。メモリ１２は例えばＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）である。
【００２０】
入力部１４は管理者からの命令情報を受付ける。例えば、管理コンピュータ１０の異常状態からの復旧時の制御命令等である。入力部１４は、例えば、キーボード、マウス、タッチパネル等である。出力部１５は、例えば処理結果や管理コンピュータ１０の異常情報を出力する。出力部１５は、例えば、ディスプレイ（表示装置）等である。管理プログラム１８は記憶部１３に格納される。記憶部１３は例えばハードディスク装置である。
【００２１】
ネットワークインターフェース部１６は、インターネットあるいはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等のネットワーク４０に接続して、ネットワーク４０経由で処理要求あるいはジョブ等の送受信を行う。また、管理コンピュータ１０は管理プログラム１８を記録した記録媒体又はプログラムのダウンロードも可能である。
図３は、本実施例の処理コンピュータ２０のハードウェア構成図である。処理コンピュータ２０は、制御部２１、メモリ２２、記憶部２３、入力部２４、出力部２５、ネットワークインターフェース部２６を有し、それぞれがバス２７に接続された構成である。
【００２２】
制御部２１は処理コンピュータ２０の全体を制御する。例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）である。また、制御部２１はメモリ２２に展開された処理プログラム２８を実行する。処理プログラム２８は制御部２１を、ジョブを受付け、ジョブの演算処理を実行し、ジョブの演算処理結果を出力するジョブ処理モジュール２１１、管理コンピュータ１０の異常時に処理結果を送信し、管理コンピュータ１０の障害の迅速な復旧をする障害復旧モジュール２１２として機能させる。
【００２３】
メモリ２２は、記憶部２３に格納された処理プログラム２８が展開される記憶領域である。また、メモリ２２は制御部２１が処理プログラム２８を実行する際に生成される種々の演算結果が格納される記憶領域である。メモリ２２は例えばＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）である。
【００２４】
入力部２４は処理コンピュータの管理者からの制御命令等を受付ける。入力部２４は、例えば、キーボード、マウス、タッチパネル等である。出力部２５は、処理結果等を出力する。出力部２５は、例えば、ディスプレイ（表示装置）等である。処理プログラム２８は記憶部２３に格納される。記憶部２３は例えばハードディスク装置である。
【００２５】
ネットワークインターフェース部２６は、インターネットあるいはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等のネットワーク４０に接続して、ネットワーク４０経由で処理要求あるいはジョブ等の送受信を行う。また、処理コンピュータ２０は処理プログラム２８を記録した記録媒体又はプログラムのダウンロードも可能である。
図４は、本実施例の利用者端末３０のハードウェア構成図である。利用者端末３０は、制御部３１、メモリ３２、記憶部３３、入力部３４、出力部３５、ネットワークインターフェース部３６を有し、それぞれがバス３７に接続された構成である。
【００２６】
制御部３１は利用者端末３０の全体を制御する。例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）である。また、制御部３１はメモリ３２に展開された利用者プログラム３８を実行する。利用者プログラム３８は制御部３１を、利用者から受付けた処理要求を個別のジョブプログラムに分割するジョブ分割モジュール３１１、各ジョブプログラムの再現性の可否を判定する再現性可否モジュール３１２、処理要求およびジョブプログラムを管理する端末管理モジュール３１３、管理コンピュータ１０の復旧の補助の処理を実行する障害復旧モジュール３１４として機能させる。
【００２７】
メモリ３２は、記憶部３３に格納された利用者プログラム３８が展開される記憶領域である。また、メモリ３２は制御部３１が利用者プログラム３８を実行する際に生成される種々の演算結果が格納される記憶領域である。メモリ３２は例えばＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）である。
【００２８】
入力部３４は利用者からの処理要求情報を受付ける。入力部３４は、例えば、キーボード、マウス、タッチパネル等である。出力部３５は、処理要求に対する処理の結果情報を出力する。出力部３５は、例えば、ディスプレイ（表示装置）等である。利用者プログラム３８は記憶部３３に格納される。記憶部３３は例えばハードディスク装置である。
【００２９】
ネットワークインターフェース部３６は、インターネットあるいはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）等のネットワーク４０に接続して、ネットワーク４０経由で処理要求あるいはジョブ等の送受信を行う。また、利用者端末３０は利用者プログラム３８を記録した記録媒体又はプログラムのダウンロードも可能である。
【００３０】
次に、管理コンピュータ１０、複数の処理コンピュータ２０、および複数の利用者端末３０の機能構成について説明する。図５は、管理コンピュータ１０の機能構成図である。
【００３１】
管理コンピュータ１０は、ジョブ管理モジュール１１１および管理復旧モジュール１１２の機能を有する。また、管理コンピュータ１０は、ジョブプログラムＩＤ管理テーブル１３０およびジョブ情報テーブル１４０を有する。
【００３２】
ジョブプログラムＩＤ管理テーブル１３０およびジョブ情報テーブル１４０は本実施例では管理コンピュータ１０のメモリ１２上に展開される。
【００３３】
ジョブ管理モジュール１１１はジョブを管理する。ジョブ管理モジュール１１１は、利用者端末３０から送信されたジョブプログラム情報を取得する処理、各ジョブプログラムに識別番号を付与する処理、各ジョブプログラムに関する情報をジョブプログラムＩＤ管理テーブル１３０に格納する処理、利用者端末３０にジョブプログラムに関する情報を送信する処理、ジョブプログラムにジョブ識別番号を付加して管理する処理、処理コンピュータ２０にジョブの演算処理の依頼情報を送信する処理、処理コンピュータ２０からジョブの演算処理の結果の情報を取得する処理、および処理コンピュータ２０に対するジョブの処理状況に関する情報をジョブ情報テーブル１４０に格納する処理などを実行する。
【００３４】
障害管理モジュールは、管理コンピュータ１０の障害を検知すると管理コンピュータ１０の再起動の処理および処理要求から作成された一連のジョブプログラムを復旧する処理を実行する。
【００３５】
次にジョブプログラムＩＤ管理テーブル１３０の構成について説明する。図６は本実施例のジョブプログラムＩＤ管理テーブル１３０の構成である。
【００３６】
ジョブプログラムＩＤ管理テーブル１３０は利用者端末３０に入力された処理要求に対応する一連のジョブプログラムの情報を記憶するテーブルである。ジョブプログラムは、個々の処理コンピュータ２０に演算させる処理の単位である。ジョブプログラムＩＤ管理テーブル１３０は、管理コンピュータ１０にある。各利用者端末３０はそれぞれ端末ジョブプログラム管理テーブル１６０を有する。なお、本実施例では、利用者端末３０の端末ジョブプログラム管理テーブル１６０は、利用者端末３０に入力された処理要求に関する情報のみを格納する。一方、管理コンピュータ１０のジョブプログラムＩＤ管理テーブル１３０は、各利用者端末３０から受信した処理要求に関する情報を格納される。
管理コンピュータ１０にジョブプログラムＩＤ管理テーブル１３０が格納され、利用者端末３０に端末ジョブプログラム管理テーブル１６０が格納されることにより、一方のテーブルが失われても他方のテーブルによって復旧することが可能となる。例えば、利用者端末３０のジョブプログラムＩＤ管理テーブル１３０は管理コンピュータ１０の復旧の処理時に使用する。一方、管理コンピュータ１０のジョブプログラムＩＤ管理テーブル１３０は利用者端末３０の復旧の処理時に使用する。
【００３７】
ジョブプログラムＩＤ管理テーブル１３０は、ジョブプログラム名情報１３１、ジョブプログラムＩＤ情報１３２、ジョブプログラム保存場所情報１３３、ジョブの演算処理の結果に関する再現性の可否情報１３４、および管理コンピュータ１０の識別番号情報１３５を有する。
【００３８】
ジョブプログラム名情報１３１はジョブプログラムを識別するための名前情報である。ジョブプログラムＩＤ情報１３２はジョブプログラムを実行するときにジョブ毎に付される識別番号である。ジョブプログラムの保存場所情報１３３は、ジョブプログラムが格納されている利用者端末３０の場所を到底するための情報である。ジョブプログラムは管理コンピュータ１０のメモリ１２上および利用者端末３０の記憶部３３に格納される。
【００３９】
再現性の可否情報１３４は、処理コンピュータ２０がジョブプログラムの演算処理をした時に処理結果の再現の可否を示す情報である。再現性の可否の基準は、処理コンピュータ２０が同じジョブプログラムを実行した場合、ジョブプログラムの処理結果が同じ結果となるときに再現性が有るとし、ジョブプログラムの処理結果が同じ結果となるとは限らないときに再現性が無いとする。ジョブプログラムには種々の種類がある。例えば、与えられたパラメータと演算プログラムから演算結果を算出するジョブ、乱数を使用するジョブ、複数のジョブの処理結果をまとめるジョブ、ジョブの結果から複数の新たなジョブを生成するジョブ等がある。したがって、演算結果が同一になるジョブと演算結果が同一となるとは限らないジョブとがある。
【００４０】
管理コンピュータ１０の識別子情報は、管理コンピュータ１０が複数ある場合に管理コンピュータ１０を特定するための識別番号である。管理コンピュータ１０の識別子情報は予め管理コンピュータ１０に付されている。管理コンピュータ１０の識別子情報は、管理コンピュータ１０に異常があった場合、管理コンピュータ１０の復旧のために使用する。
【００４１】
次に、ジョブ情報テーブル１４０の構成について説明する。図７は本実施例のジョブ情報テーブル１４０の構成例である。管理コンピュータ１０がジョブ情報テーブル１４０を有する。ジョブ情報テーブル１４０は個々のジョブプログラムの状態を記憶するテーブルである。
【００４２】
ジョブ情報テーブル１４０は、ジョブＩＤ情報１４１、ジョブの処理内容情報１４２、処理コンピュータ情報１４３、ジョブの処理状況情報１４４、ジョブのリンク情報１４５、ジョブの優先度情報１４６、ジョブの処理結果情報１４７を有する。
【００４３】
ジョブＩＤ情報１４１は、利用者端末３０で分割されたジョブプログラム毎に付加される識別番号である。管理コンピュータ１０がジョブを処理コンピュータ２０に実行させる時に付加する。
【００４４】
ジョブの処理内容情報１４２は、ジョブプログラムを実行するときに読出すモジュールに関する情報である。例えば、ジョブの演算処理に使用するライブラリ関数などの情報が格納される。
【００４５】
処理コンピュータ情報１４３は、ジョブプログラムを処理する処理コンピュータ２０の情報である。管理コンピュータは予め各処理コンピュータ２０の処理性能を把握する。ジョブの演算を処理コンピュータ２０に依頼するときは、各処理コンピュータ２０の処理性能に応じて分配する。例えば、管理コンピュータ１０はジョブの演算の依頼を送信するときに分散処理システム１内でジョブの処理結果を得る間での時間が最も短いと予測される処理コンピュータ２０に対してジョブの演算依頼を送信する。
【００４６】
ジョブの処理状況情報１４４は、管理コンピュータ１０が把握する最新のジョブの処理の状況である。例えば、処理状況情報１４４はジョブの依頼日時情報、ジョブの演算の依頼を送信してからの経過時間情報、ジョブの演算結果の取得日時情報が格納される。ジョブのリンク情報１４５は、他のジョブプログラムとの間の関係が格納される。例えば、ジョブのリンク情報１４５は前後のジョブのジョブＩＤが格納される。ジョブの優先度情報１４６は、ジョブ処理の優先度情報が格納される。優先度情報は、先に演算すべきジョブか否かによって分類される。例えば、利用者端末に処理要求を入力したときに、利用者が各ジョブプログラムの優先度情報も登録する。優先度が高いジョブは、例えば、ジョブの処理結果を他のジョブが使用するようなジョブである。
【００４７】
ジョブの処理結果情報１４７は、ジョブの演算処理の結果のデータである。処理コンピュータ２０はジョブの演算処理の結果を管理コンピュータ１０に送信する。管理コンピュータは該当するジョブ情報テーブル１４０のレコードに処理結果を格納する。
【００４８】
次に、処理コンピュータ２０の機能構成について説明する。図８は、本実施例の処理コンピュータ２０の機能ブロック図である。
【００４９】
処理コンピュータ２０は、ジョブ処理モジュール２１１および障害復旧モジュール２１２の機能を有する。
【００５０】
また、処理コンピュータ２０は、処理結果テーブル１５０を有する。処理結果テーブル１５０は本実施例では処理コンピュータ２０の記憶部２３上に格納される。
【００５１】
ジョブ処理モジュール２１１はジョブを処理する。ジョブ処理モジュール１１１は、管理コンピュータ１０から送信されたジョブの処理依頼情報を演算する処理、ジョブの演算処理の結果情報を管理コンピュータ１０に送信する処理、処理結果をジョブの処理依頼情報と関連付けて処理結果テーブル１５０に格納する処理等を実行する。
【００５２】
障害復旧モジュール２１２は、管理コンピュータ１０の障害を検知すると、指示に応じて処理結果テーブル１５０の内容を管理コンピュータ１０に送信する機能を有する。
【００５３】
ここで処理結果テーブル１５０について説明する。図９は処理結果テーブル１５０の構成例である。処理結果テーブル１５０は、個々の処理コンピュータ２０が受信して演算したジョブに関する情報を格納するテーブルである。処理結果テーブル１５０は、処理コンピュータ２０にある。処理結果テーブル１５０は、ジョブプログラムＩＤ情報１５１、ジョブＩＤ情報１５２、管理コンピュータ識別子情報１５３、ジョブ開始／終了時間情報１５４および処理結果情報１５５を格納する。
【００５４】
ジョブプログラムＩＤ情報１５１はジョブプログラム毎に付される識別番号である。ジョブプログラムＩＤ管理テーブル１３０のジョブプログラムＩＤ情報１３２と同じ情報である。ジョブＩＤ情報１５２はジョブプログラムを実行するときにジョブ毎に付される識別番号である。ジョブプログラムＩＤ管理テーブル１３０のジョブプログラムＩＤ情報１３２と同じ情報である。管理コンピュータ識別子情報１５３は、管理コンピュータ１０が複数ある場合に管理コンピュータ１０を特定するための識別番号である。ジョブプログラムＩＤ管理テーブル１３０の管理コンピュータ識別子情報１３５と同じ情報である。
【００５５】
ジョブ開始／終了時間情報１５４は、処理コンピュータ２０がジョブ情報を受信した日時情報、及び処理コンピュータ２０がジョブの演算処理を実行した結果を管理コンピュータ１０に送信した日時情報が格納される。処理結果情報１５５は、ジョブの演算処理の結果の情報が格納される。
【００５６】
次に、利用者端末３０の機能構成について説明する。図１０は利用者端末３０の構成例である。
【００５７】
利用者端末３０は、ジョブ分割モジュール３１１、再現性可否モジュール３１２、端末管理モジュール３１３、および障害復旧モジュール３１４の機能を有する。
ジョブ分割モジュール３１１は、利用者が入力した処理要求をジョブプログラムに分割する。再現性可否モジュール３１２は、分割した個々のジョブプログラムの演算処理の再現性の可否を判定する。端末管理モジュール３１３は、利用者端末３０と管理コンピュータ１０との間のデータの整合性を確保する機能を有する。例えば端末ジョブプログラム管理テーブル１６０に格納されたレコードとジョブプログラムＩＤ管理テーブル１３のレコードとの間のデータの整合性を確保する。
【００５８】
障害復旧モジュール３１４は、管理コンピュータ１０が異常となり、管理コンピュータ１０の状態を復旧するときに管理コンピュータ１０の復旧の補助のための処理を実行する。例えば、端末ジョブプログラム管理テーブル１６０に格納されたレコードを管理コンピュータ１０に送信する。
【００５９】
また、利用者端末３０は、端末ジョブプログラム管理テーブル１６０を有する。
【００６０】
端末ジョブプログラム管理テーブル１６０は本実施例では利用者端末３０の記憶部３３に格納される。
端末ジョブプログラム管理テーブル１６０は、自己の利用者端末３０の処理要求に関するレコードが格納される。なお、端末ジョブプログラム管理テーブル１６０に格納されるレコードの列項目は、ジョブプログラムＩＤ管理テーブル１３０のレコードのデータ項目列と同じであるため説明を省略する。
【００６１】
次に分散処理システム１における通常時の処理の流れについて説明する。図１１は、ジョブ情報登録時の処理のフローチャートである。利用者は分散処理システム１に演算させるための処理要求プログラムを利用者端末３０に登録する。本実施例では適当なジョブプログラムに予め分割されている処理要求プログラムが設定されることとする。利用者端末３０は処理要求プログラムを取得する（Ｓ０１）。次に、利用者端末３０は処理要求プログラムの個々のジョブプログラムについて、再現性の有無の判定をする（Ｓ０２）。
【００６２】
ここで、図１１のＳ０２において利用者端末３０が実行する再現性の判定処理について説明する。図１２は再現性の有無の判別処理のフローチャートである。利用者端末３０の制御部３１は、個々のジョブプログラム毎に再現性の可否を判定する。
【００６３】
まず、利用者端末３０の制御部３１は、ジョブプログラム内に乱数を使用しているか否かを判別する（Ｓ１１）。乱数が使用されている場合（Ｓ１１：Ｙｅｓ）、制御部３１は、ジョブプログラムの再現性は無いと判定する。一方、乱数が使用されていない場合（Ｓ１１：Ｎｏ）、制御部３１は、ジョブパラメータに乱数が使用されているか否かを判定する（Ｓ１２）。ジョブパラメータはジョブに設定する入力値である。
【００６４】
ジョブパラメータに乱数が使用されている場合（Ｓ１２：Ｙｅｓ）、制御部３１は、ジョブプログラムの再現性は無いと判定する。一方、ジョブパラメータに乱数が使用されていない場合（Ｓ１２：Ｎｏ）、制御部３１は、ジョブの処理中に外部データを参照しているか否かを判定する（Ｓ１３）。外部データは、例えば、他のジョブの演算処理の結果の値である。
【００６５】
制御部３１が外部データを参照していないと判定した場合（Ｓ１３：Ｎｏ）、制御部３１は、ジョブの処理結果には再現性があると判定する。一方、外部データを参照していると判定した場合（Ｓ１３：Ｙｅｓ）、制御部３１は外部データが確定された値か否かを判別する。外部データが確定的か否かは、例えば、外部データを出力するジョブの再現性があると判定された場合に外部データが確定されると判定する。
【００６６】
制御部３１はジョブの構成の樹形図を利用することにより、外部データを出力するジョブの再現性の情報を取得して判定することが可能である。なお、外部データが確定的か否かについて不明確である場合は、その旨とジョブプログラムとを併せて利用者端末３０の出力部３５に表示する構成としてもよい。この場合、出力部２５に表示されたジョブプログラムが参照する外部データが確定的か否かを利用者が判断して、入力部３４に判断結果を入力する。利用者端末３０の制御部３１は取得した判断結果を登録する。
【００６７】
外部データが確定された値である場合（Ｓ１４：Ｙｅｓ）、制御部３１はジョブの演算処理結果の再現は可能であると判定する。一方、外部データが確定された値でない場合（Ｓ１４：Ｎｏ）、制御部３１はジョブの演算処理結果の再現は不可能であると判定する。制御部３１は、再現が可能と判断されたジョブプログラムに再現性有の情報を関連付け（Ｓ１５）、再現が不明と判断されたジョブプログラムに再現性無の情報を関連付ける（Ｓ１６）。制御部３１は端末ジョブプログラム管理テーブル１６０の再現可否情報１６４にＳ１５またはＳ１６で関連付けられた情報を格納する（Ｓ１７）。
【００６８】
以上によって、利用者端末３０の制御部３１は、ジョブプログラム毎の再現性の可否情報を取得する。図１１のフローチャートの説明に戻る。次に、管理コンピュータ１０のジョブプログラムＩＤ管理テーブル１３０と利用者端末３０の端末ジョブプログラム管理テーブル１６０へのデータの登録について説明する。利用者端末３０は、ジョブプログラム名情報、再現性の有無の情報、およびジョブプログラム保存場所情報を管理コンピュータ１０に送信する（Ｓ０３）。
【００６９】
管理コンピュータ１０は、利用者端末３０が送信したジョブプログラム名情報、再現性の有無の情報、およびジョブプログラム保存場所情報を受信する（Ｓ０４）。管理コンピュータ１０は、ジョブプログラム名情報毎にジョブプログラムＩＤを生成する（Ｓ０５）。管理コンピュータ１０は、ジョブプログラム名情報１３１、ジョブプログラムＩＤ情報１３２、ジョブプログラム保存場所情報１３３、再現性の有無の情報１３４、および管理コンピュータ識別子情報１３５を管理コンピュータ１０のジョブプログラムＩＤ管理テーブル１３０に格納する（Ｓ０６）。管理コンピュータ１０は、Ｓ０５で付加したジョブプログラムＩＤ情報および管理コンピュータ識別子情報を利用者端末３０に送信する（Ｓ０７）。
【００７０】
利用者端末３０は、Ｓ０７で管理コンピュータ１０から送信されたジョブプログラムＩＤ情報および管理コンピュータ識別子情報等を受信すると（Ｓ０８）、利用者端末３０は、ジョブプログラム名情報１６１、ジョブプログラムＩＤ情報１６２、ジョブプログラム保存場所情報１６３、再現性の有無の情報１６４、および管理コンピュータ識別子情報１６５を利用者端末３０の端末ジョブプログラム管理テーブル１６０に格納する（Ｓ０９）。
【００７１】
以上によって、利用者が利用者端末３０に入力した処理要求について、管理コンピュータ１０のジョブプログラムＩＤ管理テーブル１３０と利用者端末３０の端末ジョブプログラム管理テーブル１６０との間で整合性が保たれる。
【００７２】
次に、管理コンピュータ１０と処理コンピュータ２０との間で行う分散処理について説明する。図１３は、管理コンピュータ１０が処理コンピュータ２０にジョブを実行させる処理のフローチャートである。管理コンピュータ１０はジョブプログラムから処理コンピュータ２０に実行させるジョブを生成する（Ｓ２１）。本実施例でのジョブは、ジョブプログラムに対応する実際に演算を行う対象である。管理コンピュータ１０は、生成したジョブ毎にジョブを識別する識別子（ジョブＩＤ）を付加する（Ｓ２２）。また、管理コンピュータ１０は、ジョブ情報テーブル１４０のレコードのジョブＩＤ情報１４１にＳ２１で生成したジョブＩＤを格納し、リンク情報１４５にジョブのリンクを格納し、優先度情報１４６にジョブの優先度を格納する。
【００７３】
管理コンピュータ１０は、ジョブの実体情報、ジョブプログラム名、ジョブＩＤ、管理コンピュータ識別子、および再現性可否情報を処理コンピュータ２０に送信する（Ｓ２３）。Ｓ２３で管理コンピュータ１０は、ジョブの処理を送信する先の処理コンピュータ２０を特定する。管理コンピュータ１０は、例えば、以下の手順で処理コンピュータ２０を特定する。管理コンピュータ１０は予め処理コンピュータ２０の処理性能を把握する。管理コンピュータ１０は、例えば、処理コンピュータ２０の処理能力とジョブプログラムの処理量とを比較して、適当な処理コンピュータ２０を特定する。または、管理コンピュータ１０は、最も演算時間が短い処理コンピュータ２０を検索して特定する。また、管理コンピュータ１０はＳ２１で生成したジョブＩＤの処理を依頼する処理コンピュータを処理コンピュータ情報１４３に格納する。また管理コンピュータ１０は処理を依頼する処理コンピュータ２０に応じたジョブの処理内容をジョブの処理内容情報１４２に格納する。また管理コンピュータ１０は、ジョブの処理状況情報１４４を依頼中としてジョブ情報テーブル１４０に格納する。
【００７４】
処理コンピュータ２０は、管理コンピュータ１０が送信したジョブの実体情報、ジョブプログラムＩＤ、ジョブＩＤ、管理コンピュータ１０識別子、および再現性可否情報を受信する（Ｓ２４）。
【００７５】
処理コンピュータ２０は、受信したジョブの演算処理を実行する（Ｓ２５）。
【００７６】
処理コンピュータ２０は、受信した再現性可否情報について判定する（Ｓ２６）。本実施例では、ジョブの演算処理の結果が再現可能な場合にのみ登録する。本構成により、処理コンピュータ２０の記憶部には再現可能なジョブの処理結果のみが格納される。この結果処理コンピュータの記憶部２３のジョブの処理結果を記憶する領域は、全てのジョブの処理の結果を記憶する場合に比べて少ない領域で足りる。一方、再現性不可能なジョブの処理結果は、後述の管理コンピュータ１０の復旧時に使用しないため、記憶する必要はない。
【００７７】
再現性可否情報が再現性有の場合（Ｓ２６：Ｙｅｓ）、処理コンピュータ２０はジョブの演算処理の結果を処理結果テーブル１５０に登録する（Ｓ２７）。具体的には、処理コンピュータ２０はＳ２４で受信したジョブプログラム名情報１５１、Ｓ２４で受信したジョブＩＤ情報１５２、Ｓ２４で受信した管理コンピュータ識別子情報１５３、Ｓ２５のジョブの演算処理の開始時刻／終了時刻情報１５４、およびＳ２５のジョブの演算処理の結果情報１５５をジョブ情報テーブル１４０に格納する。処理コンピュータ２０は、演算処理の結果を管理コンピュータ１０に送信する（Ｓ２８）。
【００７８】
管理コンピュータ１０は、処理コンピュータ２０からジョブの演算結果を受信すると、ジョブ情報テーブル１４０のジョブＩＤ情報１４１が合致するレコードにジョブの処理結果情報１４７を格納する（Ｓ２９）。また、ジョブ情報テーブル１４０の管理コンピュータ１０は処理状況１４４を処理完了とする。
【００７９】
管理コンピュータ１０は処理要求に対応する全てのジョブプログラムの処理が完了するまで（Ｓ３０：Ｎｏ）、処理コンピュータ２０にジョブの演算処理を行わせる。一方、全てのジョブが完了すると（Ｓ３０：Ｙｅｓ）、管理コンピュータ１０は、各処理コンピュータ２０に対してジョブの演算結果の削除依頼をプルグラムＩＤと共に送信する（Ｓ３１）。管理コンピュータ１０からの削除指示を受けた処理コンピュータ２０は、処理結果テーブル１５０内のプログラムＩＤが合致するレコードを削除する（Ｓ３２）。
【００８０】
以上によって、管理コンピュータ１０は複数の処理コンピュータ２０に対してジョブを実行させ、処理要求に対する処理結果を得ることができる。
【００８１】
次に管理コンピュータ１０で障害が発生した場合の分散処理システム１の処理について説明する。管理コンピュータ１０で障害が発生すると、メモリ１２上のデータが失われる場合がある。図１４は、管理コンピュータ１０のメモリ１２上の処理要求に関するデータを復旧する処理のフローチャートである。
【００８２】
管理コンピュータ１０の制御部１１は、管理復旧モジュール１１２を実行する（Ｓ４１）。
【００８３】
次に管理コンピュータ１０の制御部１１は管理コンピュータ１０の処理に必要な機能を復旧する（Ｓ４２）。管理コンピュータ１０の処理に必要な機能は、例えば、管理コンピュータ１０のＯＳの起動、管理コンピュータ１０のネットワーク４０識別子の設定などである。次に管理コンピュータ１０は、処理要求の復旧を以下の処理によって行う。
【００８４】
本実施例の処理コンピュータ２０、利用者端末３０、および管理コンピュータ１０は予め定めた時間毎に相手の動作を確認する構成であるとする。例えばインターネットで標準的なプロトコルであるＴｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ  ／  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ／ＩＰプロトコル）では、指定したＩＰアドレスがネットワークに接続されているか否かを確認できるＰａｃｋｅｔ  ＩＮｔｅｒｎｅｔ  Ｇｒｏｐｅｒ（ｐｉｎｇコマンド）のような処理を所定時間毎に実行する。処理コンピュータ２０あるいは利用者端末３０は、管理コンピュータ１０がＳ４２の処理によって復旧する間は、管理コンピュータ１０をネットワーク４０上で検出できない。処理コンピュータ２０あるいは利用者端末３０は管理コンピュータ１０をネットワーク４０上に検出できない場合に、管理コンピュータ１０に異常が発生したと判定する（Ｓ４３、Ｓ４４）。
【００８５】
利用者端末３０は管理コンピュータ１０に対して、端末ジョブプログラム管理テーブル１６０に格納された情報を管理コンピュータ１０に送信することが可能である旨の情報を所定時間毎に送信する（Ｓ４５）。なお、Ｓ４５で情報を管理コンピュータ１０に送信する利用者端末３０の端末ジョブプログラムテーブル１６０の管理コンピュータ識別子１６５の列には、異常が発生した管理コンピュータ１０の識別子がある。
【００８６】
処理コンピュータ２０は管理コンピュータ１０に対して、処理結果テーブル１５０の処理結果情報を管理コンピュータ１０に送信することが可能である旨の情報を所定時間毎に送信する（Ｓ４６）。なお、Ｓ４６で情報を管理コンピュータ１０に送信する処理コンピュータ２０の処理結果テーブル１５０の管理コンピュータ識別子１５３の列には、異常が発生した管理コンピュータ１０の識別子がある。
【００８７】
管理コンピュータ１０は、処理コンピュータ２０からの処理結果テーブル１５０の処理結果情報を管理コンピュータ１０に送信することが可能である旨の情報、および利用者端末３０からの端末ジョブプログラム管理テーブル１６０に格納された情報を管理コンピュータ１０に送信することが可能である旨の情報を所定の時間受付ける。所定の時間以上の時間が経過した場合、利用者端末３０あるいは処理コンピュータ２０はネットワーク４０上に存在しない可能性が高いためである。所定の時間は、例えば、利用者端末３０および処理コンピュータ１０がｐｉｎｇコマンドを発行する所定の時間間隔に対応させて設定すれば良い。
【００８８】
管理コンピュータ１０は、利用者端末３０の管理テーブルに格納された情報を取得可能である旨の情報を各利用者端末３０に送信する（Ｓ４７）。利用者端末３０は、利用者端末３０の端末ジョブプログラム管理テーブル１６０に格納された情報を取得可能である旨の情報を管理コンピュータ１０から受信すると、利用者端末３０の端末ジョブプログラム管理テーブル１６０に格納された情報を管理コンピュータ１０に送信する（Ｓ４８）。
【００８９】
また、管理コンピュータ１０は、処理コンピュータ２０の処理結果テーブル１５０の処理結果情報を取得可能である旨の情報を処理コンピュータ２０に送信する（Ｓ４７）。処理コンピュータ２０は、処理コンピュータ２０の処理結果テーブル１５０処理結果情報を取得可能である旨の情報を管理コンピュータ１０から受信すると、処理結果情報を管理コンピュータ１０に送信する（Ｓ４９）。
【００９０】
管理コンピュータは、利用者端末３０から受信した端末ジョブプログラム管理テーブル１６０によって、メモリ１２上にジョブプログラムＩＤ管理テーブル１３０を構成する（Ｓ５０）。また、管理コンピュータ１０は、処理コンピュータ２０から送信された処理結果テーブル１５０のジョブプログラムＩＤ情報１５１から、ジョブプログラムＩＤ管理テーブル１３０の該当レコードを特定する。
【００９１】
続いて、ジョブの復旧処理について説明する。図１５は、管理コンピュータ１０のメモリ１２上の処理要求に関するデータを復旧する処理のフローチャートの続きである。管理コンピュータ１０は、ジョブの先頭から再度処理を実行する。ジョブの先頭から実行するため、通常の処理時と障害発生時との間で分散処理システム１の構成が異なっている場合でも復旧が可能となる。
【００９２】
管理コンピュータ１０はジョブプログラムから処理コンピュータ２０に実行させるジョブを生成する（Ｓ６１）。本実施例でのジョブは、ジョブプログラムに対応する実際に演算を行う対象である。管理コンピュータ１０は、生成したジョブ毎にジョブＩＤを付加する（Ｓ６２）。
【００９３】
次に、管理コンピュータ１０は、Ｓ６２で採番したジョブＩＤとＳ４９で処理コンピュータ２０から受信したジョブＩＤとを比較する（Ｓ６３）。管理コンピュータ１０は、生成したジョブＩＤと処理コンピュータ２０から取得したジョブＩＤとが合致するか否かを判定する（Ｓ６４）。
【００９４】
合致する場合（Ｓ６４：Ｙｅｓ）、管理コンピュータ１０はＳ４９で処理コンピュータ２０から取得したジョブＩＤに対応する処理結果をジョブ情報テーブル１４０に格納する（Ｓ６６）。一方、合致しない場合（Ｓ６４：Ｎｏ）は、管理コンピュータ１０は処理コンピュータ２０にジョブの処理依頼を送信する（Ｓ６５）。
【００９５】
処理コンピュータ２０は、管理コンピュータ１０が送信したジョブの実体情報、ジョブプログラムＩＤ、ジョブＩＤ、管理コンピュータ１０識別子、および再現性可否情報を受信する（Ｓ６７）。処理コンピュータ２０は、受信したジョブの演算処理を実行する（Ｓ６８）。処理コンピュータ２０は、受信した再現性可否情報について判定する（Ｓ６９）。再現性可否情報が再現性有の場合（Ｓ６９：Ｙｅｓ）、処理コンピュータ２０はジョブの演算処理の結果を処理結果テーブル１５０に登録する（Ｓ７０）。処理コンピュータ２０は、演算処理の結果を管理コンピュータ１０に送信する（Ｓ７１）。
【００９６】
管理コンピュータ１０は、処理コンピュータ２０からジョブの演算結果を受信すると、ジョブ情報テーブル１４０のジョブＩＤ情報１４１が合致するレコードにジョブの処理結果情報１４７を格納する（Ｓ７２）。また、ジョブ情報テーブル１４０の管理コンピュータ１０は処理状況１４４を処理完了とする。
【００９７】
管理コンピュータ１０は処理要求に対応する全てのジョブプログラムの処理が完了するまで（Ｓ７３：Ｎｏ）、処理コンピュータ２０にジョブの演算処理を行わせる。一方、全てのジョブが完了すると（Ｓ７３：Ｙｅｓ）、管理コンピュータ１０は、各処理コンピュータ２０に対してジョブの演算結果の削除依頼をプルグラムＩＤと共に送信する（Ｓ７４）。管理コンピュータ１０からの削除指示を受けた処理コンピュータ２０は、処理結果テーブル１５０内のプログラムＩＤが合致するレコードを削除する（Ｓ７５）。
【００９８】
以上の処理によって、管理コンピュータ１０は、ジョブ処理状態の復旧を行うことが可能となる。
【００９９】
本実施例の分散処理システム１は、ジョブ処理に関する情報を処理コンピュータ２０および利用者端末３０に保存しておく。管理コンピュータ１０の障害の復旧処理時に各処理コンピュータ２０にある処理結果テーブルの内容を管理コンピュータ１０に転送する。処理コンピュータ２０から転送された処理結果があれば、管理コンピュータ１０はジョブの処理要求を処理コンピュータ２０に出さず、処理コンピュータ２０から転送された処理結果を利用する事により、復旧時のジョブ処理を低減する事ができる。その結果、分散処理システム１は効率よくジョブ処理の復旧を行うことが可能となると共に、管理コンピュータ１０を冗長構成とすることなく復旧ができる。したがって、分散処理システム１の管理コンピュータ１０に要する導入コストおよび運用コストを低減できる。
【図面の簡単な説明】
【０１００】
【図１】本実施例の分散処理システム１システム構成図である。
【図２】本実施例の管理コンピュータ１０のハードウェア構成図である。
【図３】本実施例の処理コンピュータ２０のハードウェア構成図である。
【図４】本実施例の利用者端末３０のハードウェア構成図である。
【図５】本実施例の管理コンピュータ１０の機能構成図である。
【図６】本実施例のジョブプログラムＩＤ管理テーブル１３０の構成である。
【図７】本実施例のジョブ情報テーブル１４０の構成例である。
【図８】本実施例の処理コンピュータ２０の機能ブロック図である。
【図９】本実施例の処理結果テーブル１５０の構成例である。
【図１０】本実施例の利用者端末３０の構成例である。
【図１１】本実施例のジョブ情報登録時の処理のフローチャートである。
【図１２】本実施例の再現性の有無の判別処理のフローチャートである。
【図１３】本実施例の管理コンピュータ１０が処理コンピュータ２０にジョブを実行させる処理のフローチャートである。
【図１４】本実施例の管理コンピュータ１０のメモリ１２上の処理要求に関するデータを復旧する処理のフローチャートである。
【図１５】本実施例の管理コンピュータ１０のメモリ１２上の処理要求に関するデータを復旧する処理のフローチャートの続きである。
【符号の説明】
【０１０１】
１  分散処理システム
１０  管理コンピュータ
１１  制御部
１２  メモリ
１３  記憶部
１４  入力部
１５  出力部
１６  ネットワークインターフェース部
１７  バス
１８  管理プログラム
２０  処理コンピュータ
２１  制御部
２２  メモリ
２３  記憶部
２４  入力部
２５  出力部
２６  ネットワークインターフェース部
２７  バス
２８  処理プログラム
３０  利用者端末
３１  制御部
３２  メモリ
３３  記憶部
３４  入力部
３５  出力部
３６  ネットワークインターフェース部
３７  バス
３８  利用者プログラム
４０  ネットワーク
【図１】
2008226177.tif 000003
【図２】
2008226177.tif 000004
【図３】
2008226177.tif 000005
【図４】
2008226177.tif 000006
【図５】
2008226177.tif 000007
【図６】
2008226177.tif 000008
【図７】
2008226177.tif 000009
【図８】
2008226177.tif 000010
【図９】
2008226177.tif 000011
【図１０】
2008226177.tif 000012
【図１１】
2008226177.tif 000013
【図１２】
2008226177.tif 000014
【図１３】
2008226177.tif 000015
【図１４】
2008226177.tif 000016
【図１５】
2008226177.tif 000017