(57)【要約】【課題】グリッドコンピューティングの処理を短時間で終了し、新規の処理を実施する場合に多数のクライアント端末装置を確保する。【解決手段】各クライアント端末装置２は、複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を実現するコンテンツ共有システム部と、グリッドワーク要求装置１からグリッドワーク処理データを取得して処理するグリッドワーク実行部と、コンテンツ共有システム部のプログラムとグリッドワーク実行部のプログラムとを同時に起動させ、コンテンツ共有システム部の稼働状態に応じてグリッドワーク実行部の稼働状態を制御するシステム管理部と、要求装置１からの要求に応じてグリッドワーク実行部のプログラムを動的に組み替えるグリッドワークフレームワーク部とを有する。【選択図】  図１
2005070897.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント端末装置を通信ネットワークで相互に接続し、前記複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、
前記複数のクライアント端末装置と、複数の端末装置に処理を分散させる分散処理システムとして前記複数のクライアント端末装置を動作させ、各クライアント端末装置に処理すべきデータを配布する要求装置とを有し、
各クライアント端末装置は、
前記情報交換処理機能を実現する情報交換処理手段と、
前記要求装置からデータを取得して処理する分散処理手段と、
前記情報交換処理手段のプログラムと前記分散処理手段のプログラムとを同時に起動させ、前記情報交換処理手段の稼働状態に応じて前記分散処理手段の稼働状態を制御する管理手段と、
前記要求装置からの要求に応じて前記分散処理手段のプログラムを動的に組み替える組替手段とを備えることを特徴とするネットワークシステム。
【請求項２】
請求項１記載のネットワークシステムにおいて、
前記分散処理手段は、前記データの処理結果を前記要求装置に送信することを特徴とするネットワークシステム。
【請求項３】
複数のクライアント端末装置を通信ネットワークで相互に接続し、前記複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、前記複数のクライアント端末装置に処理を分散させる分散処理機能を実現する分散処理方法であって、
各クライアント端末装置において、
前記情報交換処理機能のプログラムの起動と同時に前記分散処理機能のプログラムを起動する起動手順と、
複数の端末装置に処理を分散させる分散処理システムとして前記複数のクライアント端末装置を動作させる要求装置からデータを取得して処理する前記分散処理機能の稼働状態を、前記情報交換処理機能の稼働状態に応じて制御する管理手順と、
前記要求装置からの要求に応じて前記分散処理機能のプログラムを動的に組み替える組替手順とを実行することを特徴とする分散処理方法。
【請求項４】
請求項３記載の分散処理方法において、
前記データの処理結果を前記要求装置に送信する送信手順を実行することを特徴とする分散処理方法。
【請求項５】
複数のコンピュータを通信ネットワークで相互に接続し、前記複数のコンピュータで情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、前記複数のコンピュータに処理を分散させる分散処理機能を実現する分散処理プログラムであって、
各コンピュータに、
前記情報交換処理機能のプログラムの起動と同時に前記分散処理機能のプログラムを起動する起動手順と、
複数の端末装置に処理を分散させる分散処理システムとして前記複数のコンピュータを動作させる要求装置からデータを取得して処理する前記分散処理機能の稼働状態を、前記情報交換処理機能の稼働状態に応じて制御する管理手順と、
前記要求装置からの要求に応じて前記分散処理機能のプログラムを動的に組み替える組替手順とを実行させることを特徴とする分散処理プログラム。
【請求項６】
請求項５記載の分散処理プログラムにおいて、
前記データの処理結果を前記要求装置に送信する送信手順を各コンピュータに実行させることを特徴とする分散処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置と大容量の記憶領域資源とインターネット接続機能やイントラネット接続機能等のネットワーク資源とを持つ複数のクライアント端末装置をネットワークで相互に接続し、複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムに係り、特に複数のクライアント端末装置に処理を分散させる分散処理システムとしても機能させることができるネットワークシステム、分散処理方法およびプログラムに関するものである。
【背景技術】
【０００２】
従来より、演算装置（Central Processing Unit ）と大容量の記憶領域資源（Hard Disk Drive ）とインターネット接続機能やイントラネット接続機能等のネットワーク資源とを持つ多数のクライアント端末装置をネットワークで相互に接続し、この多数のクライアント端末装置の遊休資源を利用することで、分割可能な問題を安価にしかも高速に処理するグリッドコンピューティングシステム（分散処理システム）がある（例えば、非特許文献１、非特許文献２参照）。
【０００３】
従来のグリッドコンピューティングシステムでは、高性能で高価なスーパーコンピュータが必要なデータの解析作業を、世界中にあるクライアント端末装置の遊休資源を利用することにより、安価にしかも高速に処理することを目的として実施され、世界中のボランティア端末を集めることで、スーパーコンピュータの処理能力を上回ることを可能としている。
【０００４】
グリッドコンピューティングシステムの具体的な動作としては、システムに参加するクライアント端末装置がグリッドコンピューティングサーバから解析用プログラムと解析すべきデータとを予め取得しておき、解析用プログラムを待機状態にしておく。クライアント端末装置のＣＰＵが遊休状態になると、解析用プログラムが稼動してデータの解析処理を行う。解析用プログラムは、解析が終了したデータをグリッドコンピューティングサーバヘ送信し、新たな解析用データを取得して解析を続ける。クライアント端末装置のＣＰＵが通常稼動を開始すると、解析用プログラムは待機状態になり、ＣＰＵが遊休状態へ再び移行すると、解析用プログラムが再稼動する。
【０００５】
また、マルチタスクＯＳ（Operating System）が動作するクライアント端末装置では、解析用プログラムの優先度を低くし、結果として、クライアント端末装置が完全に遊休状態ではないときにも処理を行う方式があり、通常のプロセスと同等の優先度でデータ解析を行うことができる方式もある。また、以上のようなグリッドコンピューティングシステムには、クライアント／サーバ方式や、ピア・ツー・ピア（Ｐ２Ｐ）方式など様々な実装方法がある。
【０００６】
なお、出願人は、本明細書に記載した先行技術文献情報で特定される先行技術文献以外には、本発明に関連する先行技術文献を出願時までに発見するには至らなかった。
【非特許文献１】伊藤直樹著，「Ｐ２Ｐコンピューティング〜技術解説とアプリケーション〜」，株式会社ソフト・リサーチ・センター，２００１年１１月，ｐ．１０４−１０７
【非特許文献２】マイケル・ミラー著，「Ｐ２Ｐコンピューティング入門」，株式会社大和総研情報技術研究所，２００２年１０月，ｐ．９２−１１２
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のグリッドコンピューティングシステムでは、クライアント端末装置の遊休時間を利用してデータ処理を行うことが多いため、処理効率が悪く、処理結果が出るまでに長い時間がかかるという問題点があった。
また、グリッドコンピューティングシステムでは、新規のグリッドコンピューティングプロジェクトを実施する場合、プロジェクトに参加するクライアント端末装置をボランティアで募るため、クライアント端末装置を多数確保することが難しいという問題点があった。
【０００８】
本発明は、上記課題を解決するためになされたもので、グリッドコンピューティングの処理を短時間で終わらせることができ、新規の処理を実施する場合に、多数のクライアント端末装置を確保することが容易なネットワークシステム、分散処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、複数のクライアント端末装置を通信ネットワークで相互に接続し、前記複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、前記複数のクライアント端末装置と、複数の端末装置に処理を分散させる分散処理システムとして前記複数のクライアント端末装置を動作させ、各クライアント端末装置に処理すべきデータを配布する要求装置とを有し、各クライアント端末装置は、前記情報交換処理機能を実現する情報交換処理手段と、前記要求装置からデータを取得して処理する分散処理手段と、前記情報交換処理手段のプログラムと前記分散処理手段のプログラムとを同時に起動させ、前記情報交換処理手段の稼働状態に応じて前記分散処理手段の稼働状態を制御する管理手段と、前記要求装置からの要求に応じて前記分散処理手段のプログラムを動的に組み替える組替手段とを備えるものである。
また、本発明のネットワークシステムの１構成例において、前記分散処理手段は、前記データの処理結果を前記要求装置に送信するものである。
【００１０】
また、本発明は、複数のクライアント端末装置を通信ネットワークで相互に接続し、前記複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、前記複数のクライアント端末装置に処理を分散させる分散処理機能を実現する分散処理方法であって、各クライアント端末装置において、前記情報交換処理機能のプログラムの起動と同時に前記分散処理機能のプログラムを起動する起動手順と、複数の端末装置に処理を分散させる分散処理システムとして前記複数のクライアント端末装置を動作させる要求装置からデータを取得して処理する前記分散処理機能の稼働状態を、前記情報交換処理機能の稼働状態に応じて制御する管理手順と、前記要求装置からの要求に応じて前記分散処理機能のプログラムを動的に組み替える組替手順とを実行するようにしたものである。
また、本発明の分散処理方法の１構成例は、前記データの処理結果を前記要求装置に送信する送信手順を実行するようにしたものである。
【００１１】
また、本発明は、複数のコンピュータを通信ネットワークで相互に接続し、前記複数のコンピュータで情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムにおいて、前記複数のコンピュータに処理を分散させる分散処理機能を実現する分散処理プログラムであって、各コンピュータに、前記情報交換処理機能のプログラムの起動と同時に前記分散処理機能のプログラムを起動する起動手順と、複数の端末装置に処理を分散させる分散処理システムとして前記複数のコンピュータを動作させる要求装置からデータを取得して処理する前記分散処理機能の稼働状態を、前記情報交換処理機能の稼働状態に応じて制御する管理手順と、前記要求装置からの要求に応じて前記分散処理機能のプログラムを動的に組み替える組替手順とを実行させるようにしたものである。
また、本発明の分散処理プログラムの１構成例は、前記データの処理結果を前記要求装置に送信する送信手順を各コンピュータに実行させるようにしたものである。
【発明の効果】
【００１２】
本発明によれば、情報交換処理機能を提供するネットワークシステムの各クライアント端末装置に、分散処理手段と管理手段とを設け、情報交換処理機能を実現する情報交換処理手段のプログラムが起動している場合、分散処理手段のプログラムを必ず同時に起動させるようにし、情報交換処理手段の稼働状態に応じて分散処理手段の稼働状態を管理手段で制御するようにしたので、情報交換処理手段が稼働している状態であっても、低稼働状態とみなせる場合であれば、情報交換処理手段のプログラムのバックグラウンドで分散処理手段が稼働し、データ処理を行うようにようにしたため、データ処理の効率を向上させることができ、処理に要する時間を短縮することができる。また、ネットワークシステムに参加した各クライアント端末装置で情報交換処理手段のプログラムが起動するだけで、分散処理システムに参加するクライアント端末装置を多数確保することができるので、この多数のクライアント端末装置の確保と前述の情報交換処理手段の稼働状態に応じた分散処理手段の稼働状態の制御により、従来の分散処理システムに比べて処理効率を著しく向上させることができる。また、新規のデータ処理を実施する場合に、多数のクライアント端末装置を確保することが容易となる。さらに、組替手段により分散処理手段のプログラムを自由に差し替えることを可能としたため、あまり知られていない新規のプロジェクトが、ボランティアでクライアント端末装置を募集するよりも、効果的にクライアント端末装置を確保することが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の実施の形態となるネットワークシステムの構成を示すブロック図である。本実施の形態のネットワークシステムは、複数のクライアント端末装置を通信ネットワークで相互に接続し、複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するコンテンツ共有システムとして機能すると同時に、複数のクライアント端末装置に処理を分散させるグリッドコンピューティングシステム（分散処理システム）として機能するものである。
【００１４】
このネットワークシステムは、各クライアント端末装置２を分散処理システムの一部として動作させ、各クライアント端末装置２に分散処理機能のプログラムと処理すべきデータとを配布し、各クライアント端末装置２で処理された結果を受信するグリッドワーク要求装置１と、グリッドワーク要求装置１と通信ネットワークを介して接続された複数のクライアント端末装置２とから構成される。グリッドワーク要求装置１と各クライアント端末装置２とは、それぞれＣＰＵ、記憶装置及びインタフェースを備えたコンピュータとこれらのハードウェア資源を制御するプログラムによって実現することができる。以下、分散処理システムの一部として各クライアント端末装置２が行うデータ処理をグリッドワークと呼ぶ。
【００１５】
図２はグリッドワーク要求装置１とクライアント端末装置２の構成を示すブロック図である。グリッドワーク要求装置１は、後述するグリッドワーク実行部のプログラムを通信ネットワークを介して各クライアント端末装置２に配布するグリッドワークプログラム配布部１１と、処理対象（複数のコンピュータに分散させて処理させることができる問題）を複数のグリッドワーク処理データに分割し、分割後のグリッドワーク処理データを通信ネットワークを介して各クライアント端末装置２に配布するグリッドワーク処理データ配布部１２と、各クライアント端末装置２から通信ネットワークを介してグリッドワークの処理結果を受信するグリッドワーク結果受信部１３とからなる。
【００１６】
クライアント端末装置２は、情報交換処理機能を実現する情報交換処理手段となるコンテンツ共有システム部２１と、複数のクライアント端末装置２で共有するコンテンツを保持する共有コンテンツ保持部２２と、グリッドワーク要求装置１からグリッドワーク処理データを取得して処理する分散処理手段となるグリッドワーク実行部２３と、グリッドワーク要求装置１からの要求に応じてグリッドワーク実行部２３のプログラムを動的に組み替える組替手段となるグリッドワークフレームワーク部２４と、コンテンツ共有システム部２１のプログラム（コンテンツ共有プロセス）とグリッドワーク実行部２３のプログラム（グリッドワークプロセス）とを同時に起動させ、コンテンツ共有システム部２１の稼働状態に応じてグリッドワーク実行部２３の稼働状態を制御する管理手段となるシステム管理部２５とからなる。
【００１７】
図３はグリッドワーク実行部２３の構成を示すブロック図である。グリッドワーク実行部２３は、グリッドワーク要求装置１から配布されたグリッドワークプログラムを記憶するグリッドワークプログラム格納部２３０（２３０−１，２３０−２，・・・・）と、グリッドワーク要求装置１から配布されたグリッドワーク処理データを記憶するグリッドワーク処理データ格納部２３１（２３１−１，２３１−２，・・・・）とを有する。
【００１８】
グリッドワーク要求装置１は、グリッドワークプログラム配布部１１から各クライアント端末装置２へグリッドワークプログラムを配布し、クライアント端末装置２のグリッドワーク実行部２３からのグリッドワーク取得要求を待ち、グリッドワーク取得要求を受信すると、グリッドワーク処理データ配布部１２から要求元のクライアント端末装置２のグリッドワーク実行部２３ヘグリッドワーク処理データを送信する。このグリッドワーク処理データはクライアント端末装置２のグリッドワーク実行部２３で処理され、そのグリッドワークの処理結果がグリッドワーク実行部２３からグリッドワーク要求装置１へ送信され、グリッドワーク要求装置１のグリッドワーク結果受信部１３で受信される。
【００１９】
一方、クライアント端末装置２において、システム管理部２５は、コンテンツ共有システム部２１とグリッドワーク実行部２３とを必ず同時に起動させるために、コンテンツ共有システム部２１の状態をプロセスモニター等で検出し、コンテンツ共有システム部２１のプロセスが起動した場合、グリッドワーク実行部２３のプロセスを起動させる機能を持つ。また、システム管理部２５は、コンテンツ共有システム部２１とグリッドワーク実行部２３とが連携して動くように、グリッドワーク実行部２３の稼動状態をグリッドワーク中断命令のフラグ等を利用して制御する。
【００２０】
図４に、クライアント端末装置２におけるグリッドワーク実行部２３とコンテンツ共有システム部２１の状態遷移図を示す。グリッドワーク実行部２３は、グリッドワークを実行するグリッドワーク稼動状態３１１と、グリッドワークを実行しないグリッドワーク非稼動状態３１２の２つの状態をとり得る。
【００２１】
コンテンツ共有システム部２１は、他のクライアント端末装置２からのコンテンツ取得要求の発生または他のクライアント端末装置２へのコンテンツ取得要求の発生を待つコンテンツ取得要求待機状態３２１と、コンテンツ取得要求の発生後に例えばファイル名等のコンテンツ情報を取得するコンテンツ情報交換状態３２２と、コンテンツ取得要求を発した要求元のクライアント端末装置２またはコンテンツ取得要求を送る要求先のクライアント端末装置２と相互に情報交換しながら通信設定を行い、要求元または要求先のクライアント端末装置２との通信を確立するネゴシエーション状態３２３と、要求元のクライアント端末装置２にコンテンツを送信するか、あるいは要求先のクライアント端末装置２からコンテンツを受信するコンテンツ転送状態３２４の４つの状態をとり得る。
【００２２】
コンテンツ共有システム部２１がコンテンツ取得要求待機状態３２１、コンテンツ情報交換状態３２２またはコンテンツ転送状態３２４のとき、グリッドワーク実行部２３は、クライアント端末装置２のＣＰＵが遊休状態とみなしてグリッドワーク稼動状態３１１をとる。コンテンツ共有システム部２１がネゴシエーション状態３２３のとき、グリッドワーク実行部２３は、グリッドワーク非稼動状態３１２をとる。
【００２３】
次に、状態遷移する条件について述べる。コンテンツ取得要求待機状態３２１からコンテンツ情報交換状態３２２への遷移条件は、特に無く、タイマーなどの利用により任意のタイミングで遷移する。コンテンツ取得要求待機状態３２１からネゴシエーション状態３２３への遷移条件は、コンテンツ共有システム部２１が他のクライアント端末装置２からのコンテンツ取得要求を受信するか、あるいは他のクライアント端末装置２にコンテンツ取得要求を送信することである。
【００２４】
ネゴシエーション状態３２３からコンテンツ転送状態３２４への遷移条件は、コンテンツ取得のためのネゴシエーション、例えば接続のためのネゴシエーションやコンテンツ取得接続が途中で切断した場合の再開のためのネゴシエーション等が終了することである。コンテンツ転送状態３２４からコンテンツ取得要求待機状態３２１への遷移条件は、他のクライアント端末装置２へのコンテンツ転送あるいは他のクライアント端末装置２からのコンテンツ転送が終了することである。このコンテンツ転送の終了は、コンテンツ転送の最中に通信が切断した場合を含む。
【００２５】
グリッドワーク稼動状態３１１からグリッドワーク非稼動状態３１２への遷移条件は、コンテンツ共有システム部２１がネゴシエーション状態３２３へ遷移することであり、グリッドワーク非稼動状態３１２からグリッドワーク稼動状態３１１への遷移条件は、コンテンツ共有システム部２１のネゴシエーション状態３２３が終了することである。
【００２６】
図５は、クライアント端末装置２のシステム管理部２５の動作を示すフローチャートである。図５は、システム管理部２５がコンテンツ共有システム部２１とグリッドワーク実行部２３とを同時に起動させる処理、およびグリッドワーク実行部２３をグリッドワーク稼動状態３１１からグリッドワーク非稼動状態３１２へ遷移させる処理あるいはグリッドワーク非稼動状態３１２からグリッドワーク稼動状態３１１へ遷移させる処理を示している。
【００２７】
まず、コンテンツ共有システム部２１とグリッドワーク実行部２３とを同時に起動（コンテンツ共有プロセスとグリッドワークプロセスとを同時に起動）する処理について説明する。
システム管理部２５は、コンテンツ共有システム部２１のプロセスの有無をＯＳ（Operating System）のプロセスリスト等を利用して確認し（図５ステップ５１０）、コンテンツ共有プロセスが存在しない場合は再びステップ５１０に戻る。このステップ５１０のコンテンツ共有プロセスの有無の確認は、タイマーなどの利用により任意のタイミングで行われる。
【００２８】
システム管理部２５は、ステップ５１０においてコンテンツ共有プロセスが存在する場合、すなわちコンテンツ共有プログラムが実行中の場合、グリッドワーク実行部２３のプロセスの有無をＯＳのプロセスリスト等を利用して確認し（ステップ５２０）、グリッドワークプロセスが存在しない場合は、ステップ５３０に進んで、後述のようにグリッドワークフレームワーク部２４により実行対象として設定されたグリッドワークプロセスを起動する（すなわち、グリッドワーク実行部２３に実行対象のグリッドワークプログラムを実行させる）。
【００２９】
次に、グリッドワーク実行部２３をグリッドワーク稼動状態３１１からグリッドワーク非稼動状態３１２へ遷移させる処理、あるいはグリッドワーク非稼動状態３１２からグリッドワーク稼動状態３１１へ遷移させる処理について説明する。
システム管理部２５は、ステップ５２０においてグリッドワークプロセスの存在を確認した後あるいはステップ５３０においてグリッドワークプロセスを起動させた後、コンテンツ共有システム部２１がネゴシエーション状態に遷移しているかどうかを確認する（ステップ５４０）。このステップ５４０のコンテンツ共有システム部２１の状態確認は、タイマーなどの利用により任意のタイミングで行われる。
【００３０】
システム管理部２５は、コンテンツ共有システム部２１がネゴシエーション状態に遷移した場合、グリッドワーク実行部２３をグリッドワーク稼動状態３１１からグリッドワーク非稼動状態３１２へ遷移させる中断要求をグリッドワーク実行部２３に送る（ステップ５５０）。また、システム管理部２５は、コンテンツ共有システム部２１がネゴシエーション状態に遷移していない場合、グリッドワーク実行部２３をグリッドワーク非稼動状態３１２からグリッドワーク稼動状態３１１へ遷移させる（あるいはグリッドワーク稼動状態３１１のままにする）中断解除要求をグリッドワーク実行部２３に送る（ステップ５６０）。システム管理部２５は、以上のようなステップ５１０〜５６０の処理を繰り返し実行する。
【００３１】
図６は、クライアント端末装置２のグリッドワークフレームワーク部２４の動作を示すフローチャートである。グリッドワークプログラムは、グリッドワーク要求装置１のグリッドワークプログラム配布部１１から配布され、グリッドワークフレームワーク部２４を通じてグリッドワーク実行部２３に実装される。グリッドワークプログラムには、グリッドワーク処理データの取得先およびグリッドワークの処理結果の送信先が記載されている。
【００３２】
また、処理対象を複数のグリッドワーク処理データに分割するプログラムについては、グリッドコンピューティング用言語（例えば、Globus Toolkit）を用いて作成され、グリッドワーク要求装置１のグリッドワーク処理データ配布部１２に実装されている。これにより、グリッドワーク処理データ配布部１２は、処理対象を複数のグリッドワーク処理データに分割し、分割後のグリッドワーク処理データを保持している。
【００３３】
グリッドワークフレームワーク部２４は、グリッドワークプログラム配布部１１からのグリッドワークプログラムの配布の有無を確認し（図６ステップ６０１）、グリッドワークプログラムが配布された場合、この配布されたグリッドワークプログラムをグリッドワーク実行部２３のグリッドワークプログラム格納部２３０に格納する（ステップ６０２）。
【００３４】
続いて、グリッドワークフレームワーク部２４は、グリッドワークプログラム配布部１１からのグリッドワークプログラム取り外し要求の有無を確認し（ステップ６０３）、取り外し要求が発行された場合、この要求で取り外しが指示されているグリッドワークプログラムをグリッドワーク実行部２３のグリッドワークプログラム格納部２３０から取り外し（ステップ６０４）、グリッドワークプログラム格納部２３０に格納済のグリッドワークプログラムのうち前記取り外し要求で実行対象として指定されているグリッドワークプログラムをグリッドワーク実行部２３の新たな実行対象とする。グリッドワークプログラムを新たに実行対象として設定するには、指定されたグリッドワークプログラムに例えば実行対象であることを示すフラグを付加すればよい。
【００３５】
なお、ステップ６０４で取り外すグリッドワークプログラムが既に起動中であった場合には、このグリッドワークプログラムの実行を停止させた後にグリッドワークプログラム格納部２３０から取り外し、新たに実行対象となったグリッドワークプログラムをグリッドワーク実行部２３に実行させるようにすればよい。
【００３６】
次に、グリッドワークフレームワーク部２４は、システム管理部２５から中断要求が発行されたかどうかを確認する（ステップ６０５）。このステップ６０５の中断要求の有無の確認は、タイマーなどの利用により任意のタイミングで行われる。
グリッドワークフレームワーク部２４は、システム管理部２５から中断要求が発行されていない場合、実行中のグリッドワーク処理をそのまま継続させ、グリッドワーク処理が始まっていない場合にはグリッドワーク実行部２３にグリッドワーク処理を開始させる（ステップ６０６）
【００３７】
グリッドワーク処理の実行中に、コンテンツ共有システム部２１がネゴシエーション状態に遷移したことにより、システム管理部２５から中断要求が発行された場合、グリッドワークフレームワーク部２４は、グリッドワーク実行部２３に中断要求を転送してグリッドワーク処理を停止させ（ステップ６０７）、続いてシステム管理部２５から中断解除要求が発行されたかどうかを確認する（ステップ６０８）。このステップ６０８の中断解除要求の有無の確認は、タイマーなどの利用により任意のタイミングで行われる。こうして、中断解除要求が発行されるまで、グリッドワーク処理が停止する。
【００３８】
次に、システム管理部２５から中断解除要求が発行された場合、グリッドワークフレームワーク部２４は、ステップ６０５に戻ってシステム管理部２５から中断要求が発行されたかどうかを確認した後、グリッドワーク実行部２３に中断解除要求を転送して再びグリッドワーク処理を開始させる（ステップ６０６）。
【００３９】
図７は、クライアント端末装置２のグリッドワーク実行部２３の動作を示すフローチャートである。グリッドワークプロセスが起動すると、グリッドワーク実行部２３は、まず処理すべきグリッドワーク処理データの有無を確認する（図７ステップ７０１）。このグリッドワーク処理データの有無の確認は、タイマーなどの利用により任意のタイミングで行われる。
【００４０】
グリッドワーク実行部２３は、処理すべきグリッドワーク処理データが存在しない場合、実行中のグリッドワークプログラムの記載に基づいてグリッドワーク処理データの取得先（グリッドワーク要求装置１のグリッドワーク処理データ配布部１２）を決定し、この取得先にグリッドワーク取得要求を送信してグリッドワーク処理データを取得し、取得したグリッドワーク処理データをグリッドワーク処理データ格納部２３１に格納する（ステップ７０２）。
【００４１】
グリッドワークプログラムとグリッドワーク処理データとが揃った後、グリッドワーク実行部２３は、実行中のグリッドワークプログラムに従ってグリッドワーク処理データの処理を開始する（ステップ７０３）。グリッドワーク実行部２３は、このようなグリッドワーク処理の最中に、システム管理部２５からグリッドワークフレームワーク部２４を通じて中断要求が発行されたかどうかを確認する（ステップ７０４）。このステップ７０４の中断要求の有無の確認は、タイマーなどの利用により任意のタイミングで行われる。
【００４２】
グリッドワーク実行部２３は、中断要求が発行されていない場合、ステップ７０３から開始したグリッドワーク処理が完了したか否かを確認し（ステップ７０５）、グリッドワーク処理が完了していない場合には、ステップ７０４に戻って中断要求が発行されたかどうかを確認する。
【００４３】
グリッドワーク処理の実行中に、コンテンツ共有システム部２１がネゴシエーション状態に遷移したことにより、中断要求が発行された場合、グリッドワーク実行部２３は、グリッドワーク処理を停止し（ステップ７０６）、続いてシステム管理部２５からグリッドワークフレームワーク部２４を通じて中断解除要求が発行されたかどうかを確認する（ステップ７０７）。このステップ７０７の中断解除要求の有無の確認は、タイマーなどの利用により任意のタイミングで行われる。こうして、中断解除要求が発行されるまで、グリッドワーク処理が停止する。
【００４４】
次に、中断解除要求が発行された場合、グリッドワーク実行部２３は、再びグリッドワーク処理を開始する（ステップ７０３）。グリッドワーク実行部２３は、グリッドワーク処理が完了した場合、実行中のグリッドワークプログラムの記載に基づいてグリッドワークの処理結果の送信先（グリッドワーク要求装置１のグリッドワーク結果受信部１３）を決定し、この送信先にグリッドワークの処理結果であるグリッドワーク完了データを送信する（ステップ７０８）。そして、グリッドワーク実行部２３は、処理が完了したグリッドワーク処理データを破棄し（ステップ７０９）、再びグリッドワーク処理データを取得してグリッドワーク処理データ格納部２３１に格納し（ステップ７０２）、グリッドワーク処理を開始する（ステップ７０３）。
【００４５】
図８は、クライアント端末装置２のコンテンツ共有システム部２１の動作を示すフローチャートである。コンテンツ共有プロセスが起動すると、コンテンツ共有システム部２１は、起動と同時にコンテンツ取得要求待機状態３２１になる（ステップ８１０）。その後、コンテンツ共有システム部２１は、任意のタイミングでコンテンツ情報交換状態３２２となり（ステップ８２０）、コンテンツ取得要求の有無を確認する（ステップ８３０）。このステップ８３０のコンテンツ取得要求の有無の確認は、タイマーなどの利用により任意のタイミングで行われる。
【００４６】
コンテンツ共有システム部２１は、ステップ８３０においてコンテンツ取得要求が発生していない場合、再びコンテンツ取得要求待機状態３２１になる（ステップ８１０）。ステップ８３０において他のクライアント端末装置２からのコンテンツ取得要求の発生または自装置から他のクライアント端末装置２へのコンテンツ取得要求の発生があった場合、コンテンツ共有システム部２１は、要求されたコンテンツを保持している自装置または他のクライアント端末装置２の共有コンテンツ保持部２２から例えばファイル名等のコンテンツ情報を取得した後（ステップ８４０）、ネゴシエーション状態３２３になり、コンテンツ取得要求を発した要求元のクライアント端末装置２またはコンテンツ取得要求を送る要求先のクライアント端末装置２との間でクライアント接続要求を行って通信を確立する（ステップ８５０）。
【００４７】
コンテンツ共有システム部２１は、通信の確立によりネゴシエーション状態３２３が終了して、コンテンツ転送状態３２４になり、自装置の共有コンテンツ保持部２２から該当コンテンツを取り出して要求元のクライアント端末装置２に送信するコンテンツ転送、あるいは要求先のクライアント端末装置２から該当コンテンツを受信するコンテンツ転送を行い（ステップ８６０）、コンテンツ転送が終了した場合（コンテンツ転送の最中に通信が切断した場合を含む）、再びコンテンツ取得要求待機状態３２１に戻る（ステップ８１０）。
【００４８】
図９に、クライアント端末装置２におけるグリッドワーク実行部２３の状態遷移図を示す。グリッドワーク実行部２３は、始めはグリッドワークプロセスが起動していない状態９０３にあるが、コンテンツ共有プロセスと共に起動することにより、待機状態９０２（図４のグリッドワーク非稼動状態３１２）へ遷移する。グリッドワーク実行部２３は、システム管理部２５から中断要求が発行されていない場合、グリッドワーク実行状態９０１（図４のグリッドワーク稼動状態３１１）へ遷移する。コンテンツ共有システム部２１がネゴシエーション状態３２３へ遷移した場合、グリッドワーク実行部２３は、待機状態９０２へ遷移する。
【００４９】
図１０（ａ）に従来のグリッドコンピューティングシステムのグリッドワークの稼働時間を示し、図１０（ｂ）に本実施の形態のシステムのグリッドワークの稼働時間を示す。従来のグリッドコンピューティングシステムでは、スクリーンセイバーの起動などによりＣＰＵの遊休状態を検知して、グリッドワーク処理が稼動する。また、スクリーンセイバーの停止などによりＣＰＵの遊休状態終了を検知して、グリッドワーク処理が停止する（図１０（ａ）の１０１１）。
【００５０】
これに対して、本実施の形態では、コンテンツ共有システム部２１が明確なＣＰＵ遊休時間であるコンテンツ取得要求待機状態３２１の場合、グリッドワークが稼動し（図１０（ｂ）の１０２１）、時刻ｔ１においてＣＰＵの明確な非遊休状態であるネゴシエーション状態３２３になった場合、グリッドワークが非稼動になる。さらに、時刻ｔ２においてコンテンツ共有システム部２１のネゴシエーション状態３２３が終了してコンテンツ転送状態３２４になった場合もグリッドワークを稼動させることによって（１０２２）、従来と比較してより多くの時間グリッドワーク処理が可能となる。このとき、時刻ｔ３においてコンテンツ共有システム部２１のコンテンツ転送状態３２４が終了してコンテンツ取得要求待機状態３２１へ遷移しても同様にグリッドワーク処理は継続される（１０２２）。
【００５１】
以上のように、コンテンツ共有システムでは、複数台のクライアント端末装置がそれぞれ保持するコンテンツを共有可能な状態に設定して、各クライアント端末装置が所望のコンテンツを検索できるようにしており、所望のコンテンツを保持するクライアント端末装置に接続してコンテンツを取得できる仕組みを提供している。このようなコンテンツ共有システムでは、コンテンツを共有するためのＨＤＤ（Hard Disk Drive ）を主に利用している状態で、他のクライアント端末装置からのコンテンツ取得要求を待っている場合、ＣＰＵ資源はほとんど利用されず低稼働状態にある。また、コンテンツの送受信を行っている間は、入出力（Ｉ／Ｏ）処理やネットワーク帯域がボトルネックとなって、ＣＰＵ資源の利用率は著しく低下し、ＣＰＵ資源は低稼働状態とみなせる。そのため、コンテンツ取得要求を待っているクライアント端末装置やコンテンツの送受信を行っているクライアント端末装置、すなわち低稼働状態のクライアント端末がネットワーク中に多数存在しているということが言える。
【００５２】
そこで、本実施の形態では、コンテンツ共有システムとして機能するネットワークシステムの各クライアント端末装置２に、グリッドワーク実行部２３とシステム管理部２５とを設け、コンテンツ共有システム部２１のプロセスが起動している場合、グリッドワーク実行部２３のプロセスを必ず同時に起動させるようにし、コンテンツ共有システム部２１の稼働状態に応じてグリッドワーク実行部２３の稼働状態をシステム管理部２５で制御するようにした。
【００５３】
従来のグリッドコンピューティングシステムでは、クライアント端末装置の遊休時間でのみグリッドワークを処理していたが、本実施の形態では、コンテンツ共有システム部２１が稼働している状態であっても、ＣＰＵ資源が低稼働状態とみなせる場合（コンテンツ取得要求待機状態３２１、コンテンツ情報交換状態３２２またはコンテンツ転送状態３２４）であれば、グリッドワーク実行部２３がＣＰＵ資源を確保して稼働し、グリッドワークを処理するようにしているので、グリッドワークを効率的に処理することが可能となり、処理に要する時間を短縮することができる。
【００５４】
また、一般的にコンテンツ共有システムはグリッドコンピューティングシステムと比べてクライアント端末装置数が非常に多い。例えば、コンテンツ共有システムの一種である音楽ファイル交換ソフトウェアのナップスター（Napster ）のユーザ数は２０００年の末の時点で５０００万人であり、一方、グリッドコンピューティングシステムの一種であるセティアットホーム（SETI@home ）ソフトウェアの場合、２００１年の８月時点でダウンロードした総ユーザ数が３２０万人で、そのうち実際のアクティブユーザ数は５０万人である。
【００５５】
したがって、本実施の形態では、コンテンツ共有システムに参加した各クライアント端末装置でコンテンツ共有プロセスが起動するだけで、グリッドコンピューティングシステムに参加するクライアント端末装置を多数確保することができるので、この多数のクライアント端末装置の確保と前述のＣＰＵ資源の確保とにより、従来のグリッドコンピューティングシステムに比べて処理効率を著しく向上させることができる。前述のナップスターのユーザ数が５０００万人、セティアットホームのユーザ数が５０万人であるので、セティアットホームの場合に比べて１００倍のクライアント端末装置を確保できることになり、最低１００倍の効率向上が見込めることになる。
【００５６】
また、前述のように、各クライアント端末装置でコンテンツ共有プロセスが起動するだけで、グリッドコンピューティングシステムに参加するクライアント端末装置を多数確保することができるので、新規のデータ処理を実施する場合に、多数のクライアント端末装置を確保することが容易となる。
【００５７】
さらに、本実施の形態では、グリッドワークフレームワーク部２４によりプラグイン方式で自由にグリッドワークプログラムを差し替えることを可能としたため、あまり知られていない新規のグリッドコンピューティングプロジェクトが、ボランティアでクライアント端末装置を募集するよりも、効果的にクライアント端末装置を確保することが可能となる。クライアント端末装置にグリッドコンピューティングのソフトウェアをインストールすることは、多くのユーザにとって敷居が高い。その結果、クライアント端末装置の確保を困難にしている。本実施の形態によれば、従来のグリッドコンピューティングシステムと比べて、「ユーザによるソフトウェアのダウンロードおよびインストール」という工程が不要なため、新規のグリッドコンピューティングプロジェクトであっても、クライアント端末装置の確保が容易になる。
【００５８】
また、本実施の形態では、グリッドワークプログラム格納部２３０とグリッドワーク処理データ格納部２３１に、グリッドワークプログラムとこれに対応するグリッドワーク処理データの組を複数組格納して、これら複数組の中から実行対象を指定することが可能である。このとき、各グリッドワークプログラムは他のグリッドワークプログラムと互いに通信する手段を持たず、各グリッドワークプログラムの独立性を保証する構成となっている。このことは、各グリッドワークプログラムが他のグリッドワークプログラムの処理を阻害しないことを保証し、実行対象のグリッドワークプログラムとグリッドワーク処理データの組を差し替えることを容易にする。
【００５９】
なお、前述のとおり、クライアント端末装置２の構成はコンピュータで実現することができる。このコンピュータは、中央処理装置（ＣＰＵ）と、リードオンリメモリ（ＲＯＭ）と、ランダムアクセスメモリ（ＲＡＭ）と、フレキシブルディスク装置等の補助記憶装置と、ハードディスク装置等の大容量の外部記憶装置と、表示装置やキーボード、補助記憶装置、外部記憶装置および通信ネットワークとのインタフェースをとるための回路などを備えた周知の構成のものでよい。
【００６０】
コンピュータをクライアント端末装置２として機能させるためのプログラムのうちグリッドワークプログラムを除くプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、メモリカード等の記録媒体に記録された状態で提供される。この記録媒体をコンピュータの補助記憶装置に挿入すると、媒体に記録されたプログラムが読み取られる。あるいは、グリッドワーク要求装置１からネットワークを介してプログラムをダウンロードするようにしてもよい。ＣＰＵは、読み込んだプログラムをＲＡＭあるいは外部記憶装置に書き込み、このプログラムに従って実施の形態で説明したような処理を実行する。
【産業上の利用可能性】
【００６１】
本発明は、複数のクライアント端末装置で情報の共有と交換とを行う情報交換処理機能を提供するネットワークシステムに適用することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態となるネットワークシステムの構成を示すブロック図である。
【図２】本発明の実施の形態においてグリッドワーク要求装置とクライアント端末装置の構成を示すブロック図である。
【図３】本発明の実施の形態においてクライアント端末装置のグリッドワーク実行部の構成を示すブロック図である。
【図４】本発明の実施の形態においてクライアント端末装置内のグリッドワーク実行部とコンテンツ共有システム部の状態遷移を示す図である。
【図５】本発明の実施の形態におけるクライアント端末装置のシステム管理部の動作を示すフローチャートである。
【図６】本発明の実施の形態におけるクライアント端末装置のグリッドワークフレームワーク部の動作を示すフローチャートである。
【図７】本発明の実施の形態におけるクライアント端末装置のグリッドワーク実行部の動作を示すフローチャートである。
【図８】本発明の実施の形態におけるクライアント端末装置のコンテンツ共有システム部の動作を示すフローチャートである。
【図９】本発明の実施の形態においてクライアント端末装置内のグリッドワーク実行部の状態遷移を示す図である。
【図１０】従来のグリッドコンピューティングシステムおよび本発明の実施の形態のネットワークシステムのグリッドワークの稼働時間を示す図である。
【符号の説明】
【００６３】
１…グリッドワーク要求装置、２…クライアント端末装置、１１…グリッドワークプログラム配布部、１２…グリッドワーク処理データ配布部、１３…グリッドワーク結果受信部、２１…コンテンツ共有システム部、２２…共有コンテンツ保持部、２３…グリッドワーク実行部、２４…グリッドワークフレームワーク部、２５…システム管理部、２３０…グリッドワークプログラム格納部、２３１…グリッドワーク処理データ格納部。
【図１】
2005070897.tif 000003
【図２】
2005070897.tif 000004
【図３】
2005070897.tif 000005
【図４】
2005070897.tif 000006
【図５】
2005070897.tif 000007
【図６】
2005070897.tif 000008
【図７】
2005070897.tif 000009
【図８】
2005070897.tif 000010
【図９】
2005070897.tif 000011
【図１０】
2005070897.tif 000012