(57)【要約】【課題】管理用の検索装置がたとえダウンしたとしても各サーバ装置に関するリアルタイムな情報を各クライアント装置に提供することができるグリッドコンピューティングシステム，このシステムを構成するサーバ装置，検索装置，クライアント装置，このようなサーバ装置としてコンピュータを機能させる情報提供プログラムを、提供する。【解決手段】グリッドコンピューティングシステムのサービス検索装置３０に記録される情報を、サービス提供装置２０とそのサービス提供装置２０が提供するサービスとを対応付けた時間的変化のない静的情報のみに限定する。その一方、各サービス提供装置２０の稼働状況を示す動的情報は、そのサービス提供装置２０自身と、その他の幾つかのサービス提供装置２０とが所有する。動的情報に変化が生じた場合、自他の全てのサービス提供装置２０に記録されている動的情報が、変化後の動的情報で更新される。【選択図】図１
2005275946.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置が、サーバ装置に対してサービスの提供を依頼することにより、そのサーバ装置からそのサービスを享受するグリッドコンピューティングシステムであって、
前記各サーバ装置は、自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報とを、記憶するとともに、自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、前記クライアント装置から自己の動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、その他のサーバ装置の動的情報をそのクライアント装置に対して提供し、
前記クライアントに接続された一つ以上の検索装置が、何れも、各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶しているとともに、何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供し、
前記クライアント装置は、目的のサービスを提供できるサーバ装置のサーバ識別情報を取得すると、そのサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得する
ことを特徴とするグリッドコンピューティングシステム。
【請求項２】
グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するサーバ装置であって、
自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報を記憶し、
自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、
前記クライアント装置から動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、
前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、そのクライアント装置に対して他のサーバ装置の動的情報を提供する
ことを特徴とするサーバ装置。
【請求項３】
グリッドコンピューティングシステムにおいて各サーバ装置からサービスを享受するクライアント装置に対して接続される検索装置であって、
各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とを対応付ける静的情報を記憶し、
何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供する
ことを特徴とする検索装置。
【請求項４】
グリッドコンピューティングシステムのサーバ装置からサービスを享受するためのクライアント装置であって、
各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶した検索装置から、何れかのサービス識別情報に対応するサーバ識別情報を取得し、
取得したサーバ識別情報のサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得する
ことを特徴とするクライアント装置。
【請求項５】
グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するコンピュータに対し、情報提供の機能を付加するための情報提供プログラムであって、
前記コンピュータを、
自己の稼働状況を示す動的情報と、前記グリッドコンピューティングシステムの何れかのサーバ装置の稼働状況を示す動的情報とを記憶装置に記憶する記憶手段，
自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新する更新手段，及び、
前記クライアント装置から他のサーバ装置の動的情報を要求する情報を受信装置において受信すると、そのクライアント装置に対して他のサーバ装置の動的情報を送信装置を介して送信する通信手段
として機能させる
ことを特徴とする情報提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置に対してサービスの提供を依頼したクライアント装置がそのサーバ装置からそのサービスを享受するグリッドコンピューティングシステムと、このようなグリッドコンピューティングシステムを構成するサーバ装置，検索装置，及び、クライアント装置と、このようなサーバ装置としてコンピュータを機能させる情報提供プログラムとに、関する。
【背景技術】
【０００２】
一般に、グリッドコンピューティングシステムは、サービスを提供するサーバ装置の稼働状態を監視する管理サーバ装置を、備えている。グリッドコンピューティングシステムのクライアント装置は、目的のサービスを提供できるサーバ装置がどのサーバ装置であるかを管理用の検索装置に問い合わせることによって、何れのサーバ装置に対してサービスの提供を依頼できるかを決定してから、決定したそのサーバ装置に対してサービスの提供を依頼する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前述した従来のグリッドコンピューティングシステムでは、クライアント装置は、管理用の検索装置から得られる情報に基づいてそのサーバ装置に対して目的のサービスの実行の依頼をするか否かを決定しているため、管理用の検索装置は、各サーバ装置に関するリアルタイムな情報をクライアント装置に常時提供できなければならない。
【０００４】
しかしながら、決してダウンすることのない強靱な検索装置を構築することは現実には不可能であるため、クライアント装置が、ダウン中の検索装置に対して問い合わせをしても、各サーバ装置についての情報を得られないという問題があった。
【０００５】
また、このような問題を解消するために、同一の情報を有する検索装置を複数用意する方法が考えられ得る。しかしながら、検索装置を複数用意すると、各検索装置の間で共有されるべき各サーバ装置について情報の内容が時間的にずれるといういわゆる同期ずれの問題が新たに生じることとなる。
【０００６】
本発明は、前述したような従来の問題点に鑑みてなされたものであり、その課題は、管理用の検索装置がたとえダウンしたとしても各サーバ装置に関するリアルタイムな情報を各クライアント装置に提供することができるグリッドコンピューティングシステムを、提供することにある。
【０００７】
また、本発明の課題は、このようなグリッドコンピューティングシステムを構成するサーバ装置，検索装置，及び、クライアント装置と、このようなサーバ装置としてコンピュータを機能させる情報提供プログラムとを、提供することにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために発明されたグリッドコンピューティングシステムは、クライアント装置が、サーバ装置に対してサービスの提供を依頼することにより、そのサーバ装置からそのサービスを享受するグリッドコンピューティングシステムであって、前記各サーバ装置は、自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報とを、記憶するとともに、自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、前記クライアント装置から自己の動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、その他のサーバ装置の動的情報をそのクライアント装置に対して提供し、前記クライアントに接続された一つ以上の検索装置が、何れも、各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶しているとともに、何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供し、前記クライアント装置は、目的のサービスを提供できるサーバ装置のサーバ識別情報を取得すると、そのサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得することを、特徴としている。
【０００９】
このように、検索装置に記録される情報が、サーバ装置とそのサーバが提供するサービスとを対応付ける静的情報のみに限定されていると、複数の検索装置に同一の静的情報を記録したとしても、クライアント装置に提供する検索結果が、検索装置毎に異なることがない。このため、複数の検索装置のうちの幾つかがダウンしたとしても、クライアント装置に対して常に正常な処理を提供することができる。
【００１０】
また、サーバ装置の稼働状況を示す動的情報がそのサーバ装置とそのサーバ装置とは別の幾つかのサーバ装置に記録され、さらに、サーバ装置の動的情報に変化が生じた場合には、自他の全てのサーバ装置に記録されている動的情報が、変化後の動的情報で更新されるように構成されていると、クライアント装置が、目的のサービスを提供するサーバ装置の動的情報をそのサーバ装置から直接取得できなくても、その動的情報と同じ内容を持つ動的情報を、別のサーバ装置から取得できるので、クライアント装置は、常に、目的のサービスを提供できるサーバ装置に対してサービスの提供を依頼するか否かを決定することができる。
【００１１】
また、上記の課題を解決するために発明されたサーバ装置は、グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するサーバ装置であって、自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報を記憶し、自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、前記クライアント装置から動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、そのクライアント装置に対して他のサーバ装置の動的情報を提供することを、特徴としている。
【００１２】
また、上記の課題を解決するために発明された検索装置は、グリッドコンピューティングシステムにおいて各サーバ装置からサービスを享受するクライアント装置に対して接続される検索装置であって、各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とを対応付ける静的情報を記憶し、何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供することを、特徴としている。
【００１３】
また、上記の課題を解決するために発明されたクライアント装置は、グリッドコンピューティングシステムのサーバ装置からサービスを享受するためのクライアント装置であって、各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶した検索装置から、何れかのサービス識別情報に対応するサーバ識別情報を取得し、取得したサーバ識別情報のサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得することを、特徴としている。
【００１４】
従って、これらサーバ装置，検索装置，及び、クライアント装置は、前述した本発明によるグリッドコンピューティングシステムを構成するサーバ装置，検索装置，及び、クライアント装置として機能することになる。
【００１５】
また、上記の課題を解決するために発明された情報提供プログラムは、グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するコンピュータに対し、情報提供の機能を付加するための情報提供プログラムであって、前記コンピュータを、自己の稼働状況を示す動的情報と、前記グリッドコンピューティングシステムの何れかのサーバ装置の稼働状況を示す動的情報とを記憶装置に記憶する記憶手段，自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新する更新手段，及び、前記クライアント装置から他のサーバ装置の動的情報を要求する情報を受信装置において受信すると、そのクライアント装置に対して他のサーバ装置の動的情報を送信装置を介して送信する通信手段として機能させることを、特徴としている。
【００１６】
従って、この情報提供プログラムによれば、前述した本発明によるサーバ装置と同等な装置としてコンピュータを機能させることができることになる。
【発明の効果】
【００１７】
以上に説明したように、本発明によれば、管理用の検索装置がたとえダウンしたとしても各サーバ装置に関するリアルタイムな情報を各クライアント装置に提供することができるようになる。
【発明を実施するための最良の形態】
【００１８】
以下、添付図面に基づいて、本発明を実施するための形態について、説明する。
【００１９】
図１は、本発明の実施形態であるグリッドコンピューティングシステムの概略図である。グリッドコンピューティングシステムは、クライアント装置１０，サービス提供装置２０，及び、サービス検索装置３０を、備えており、これら各装置１０〜３０は、ネットワークＮを介して互いに接続されている。
【００２０】
クライアント装置１０は、各サービス提供装置２０が提供する各種のサービスを享受する利用者によって操作される端末装置である。このクライアント装置１０は、具体的には、いわゆるパーソナルコンピュータであり、液晶ディスプレイ等の表示装置と、キーボードやマウス等の入力装置と、これら装置に接続された本体とを、備えている。その本体は、ＣＰＵ［Central Processing Unit］，ＲＡＭ［Random Access Memory］，通信アダプタ，ＦＤＤ［Flexible Disk Drive］，ＣＤＤ［Compact Disk Drive］，及び、ＨＤＤ［Hard Disk Drive］を、備えており、ＨＤＤには、オペレーティングシステムプログラムの他、クライアントプログラム１１が、インストールされている。
【００２１】
クライアントプログラム１１は、操作者からの指示を受け付けてサービスの享受を各サービス提供装置２０に依頼するためのプログラムである。このクライアントプログラム１１に従ってＣＰＵが実行する処理の内容については、後述する。
【００２２】
サービス提供装置２０は、各クライアント装置１０に各種サービスを提供するためのサーバ装置である。このサービス提供装置２０は、具体的には、いわゆる汎用コンピュータであり、その内部に、ＣＰＵ，ＲＡＭ，通信アダプタ，及び、記憶装置を、備えている。その記憶装置には、オペレーティングシステムプログラムの他、サービス提供プログラムＳａ〜Ｓｅのうちの一つ以上のサービス提供プログラムが、インストールされている。
【００２３】
サービス提供プログラムＳａ〜Ｓｅは、クライアント装置１０にサービスを提供する機能を汎用コンピュータに付加するためのプログラムである。サービスの具体例としては、物理学的，天文学的，及び、遺伝学的な高度計算，製品情報や顧客情報などのデータベース検索，並びに、遠隔会議や遠隔監視などのアプリケーションによる処理がある。サービス提供装置２０は、記憶装置にインストールされているサービス提供プログラムの数だけ、クライアント装置１０にサービスを提供し得る。また、前述したように、二つ以上のサービス提供装置２０に対して同一のサービス提供プログラムがインストールされている場合もある。
【００２４】
なお、本実施形態では、七台のサービス提供装置２０がネットワークＮに接続されており、第１のサービス提供装置２０の記憶装置には、サービスＡを提供するためのサービス提供プログラムＳａが記録され、第２のサービス提供装置２０の記憶装置には、サービスＢを提供するためのサービス提供プログラムＳｂが記録され、第３のサービス提供装置２０の記憶装置には、サービスＣを提供するためのサービス提供プログラムＳｃが記録され、第４のサービス提供装置２０の記憶装置には、サービスＤを提供するためのサービス提供プログラムＳｄが記録され、第５のサービス提供装置２０の記憶装置には、サービスＥを提供するためのサービス提供プログラムＳｅが記録されている。また、第６のサービス提供装置２０の記憶装置には、サービスＡを提供するためのサービス提供プログラムＳａが記録され、第７のサービス提供装置２０の記憶装置には、サービスＣ，Ｄ，Ｅをそれぞれ提供するためのサービス提供プログラムＳｃ〜Ｓｅが記録されている。
【００２５】
そして、サービス提供装置２０の記憶装置には、前述したサービス提供プログラムＳａ〜Ｓｅの幾つかとともに、更に、本発明に係るテーブル群２０ａ及びプログラム群２０ｂが、インストールされている。図２は、サービス提供装置２０の記憶装置にインストールされているテーブル群２０ａ及びプログラム群２０ｂを示す説明図である。なお、図２に示されるテーブル群２０ａ及びプログラム群２０ｂは、図１の紙面内における最も右側にある第７のサービス提供装置２０の例である。
【００２６】
テーブル群２０ａは、キュー管理テーブル２１，動作履歴管理テーブル２２，スケジュール管理テーブル２３，及び、稼働状況管理テーブル２４からなる。このうち、稼働状況管理テーブル２４を除く一組の管理テーブル２１〜２３に記録されているレコードの内容は、サービスの提供にあたって時々変動するものとなっており、動的情報に相当している。
【００２７】
なお、本実施形態では、サービス提供装置２０が記憶装置に記憶する一組の管理テーブル２１〜２３のコピーが、少なくとも一台の他のサービス提供装置２０の記憶装置に記録されている。従って、サービス提供装置２０の記憶装置には、そのサービス提供装置２０が自己の動的情報を管理するために利用する一組の管理テーブル２１〜２３の他に、他のサービス提供装置がそれ自身の動的情報を管理するために利用する管理テーブル２１〜２３のコピーが、インストールされている場合がある。換言すれば、一台のサービス提供装置２０の記憶装置は、自装置用の管理テーブル２１〜２３と、他装置用の管理テーブル２１〜２３とを、記憶する場合がある。この場合において、記憶装置が記憶する他装置用の管理テーブル２１〜２３は、一組であっても良いし、二組以上であっても良い。二組以上の場合には、一組ごとに、その管理テーブル２１〜２３を利用するサービス提供装置２０が異なっている。
【００２８】
さらに、例えば二台のサービス提供装置２０が、互いに自装置用の管理テーブル２１〜２３と他装置用の管理テーブル２１〜２３とを持ち合っていても良い。このとき、一方のサービス提供装置２０の記憶装置には、自装置用の管理テーブル２１〜２３と、他装置用の管理テーブル２１〜２３とが、一組ずつ記録され、他方のサービス提供装置２０の記憶装置にも、同じように、自装置用と他装置用とが一組ずつ記録される。また、三台以上のサービス提供装置２０が、互いに自装置用の管理テーブル２１〜２３と他装置用の管理テーブル２１〜２３とを持ち合っていても良い。このとき、一台のサービス提供装置２０の記憶装置には、自装置用の管理テーブル２１〜２３が一組記録されるとともに、他装置用の管理テーブル２１〜２３が二組以上記録される。
【００２９】
以下では、サービス提供装置２０が自装置用として自身の記憶装置に記憶している管理テーブル２１〜２４について、説明する。
【００３０】
キュー管理テーブル２１は、このサービス提供装置２０がクライアント装置１０から受け付けた実行の指示を管理するためのテーブルである。図３は、キュー管理テーブル２１のデータ構造の一例を示す図である。図３のキュー管理テーブル２１中のレコードは、「依頼管理ＩＤ」，「依頼元」，「サービス名」，「パラメータ名」，「経由サーバ名」，「ステータス」，及び、「ステータス変更日時」のフィールドを、有している。
【００３１】
ここで、「依頼管理ＩＤ」は、サービス提供プログラムＳａ〜Ｓｅの実行の依頼を個別に識別するために各依頼に対して一意に割り当てられる識別情報である依頼管理ＩＤが記録されるフィールドである。「依頼元」は、サービスの実行を依頼してきたクライアント装置１０のアドレスが記録されるフィールドである。また、「サービス名」は、クライアント装置１０によって実行を依頼されたサービスの名称が記録されるフィールドである。また、「パラメータ名」は、サービスの実行の依頼とともにクライアント装置１０から引数として受け取ったパラメータの名称が記録されるフィールドである。
【００３２】
また、「経由サーバ名」は、クライアント装置１０からのサービスの実行の依頼を自装置の代わりに受けて一時的に保管していた他のサービス提供装置２０の名称が経由サーバ名として記録されるフィールドである。なお、クライアント装置１０からのサービスの実行をクライアント装置１０から直接依頼された場合には、この「経由サーバ名」フィールドは空欄となる。また、「ステータス」は、このサービスが実行済であるか実行中であるか待機中であるかを示すステータス情報が記録されるフィールドである。また、「ステータス変更日時」は、ステータス情報が最後に変更されたときの年月日時分秒がステータス変更日時情報として記録されるフィールドである。
【００３３】
動作履歴管理テーブル２２は、このサービス提供装置２０におけるイベント（自装置へのサービス実行依頼の受け付け，サービスの実行の開始，サービスの実行の終了，異常終了，他装置へのサービス実行依頼の代理受け付けなど）に関する情報を記録しておくためのテーブルである。図４は、動作履歴管理テーブル２２のデータ構造の一例を示す図である。図４の動作履歴管理テーブル２２中のレコードは、「依頼管理ＩＤ」，「イベント種別」，「イベント発生日時」，「対象サーバ名」，及び、「対象サービス名」のフィールドを、有している。
【００３４】
ここで、「依頼管理ＩＤ」は、依頼管理ＩＤが記録されるフィールドである。なお、この依頼管理ＩＤは、このサービス提供装置２０が他装置の代理で受け付けたその他装置へのサービス実行依頼に対しても、割り当てられる。但し、このようにして他装置への依頼に対して割り当てられた依頼管理ＩＤが、前述したキュー管理テーブル２１に記録されることはない。
【００３５】
また、「イベント種別」は、そのイベントの種別が記録されるフィールドである。また、「イベント発生日時」は、そのイベントが行われた時の年月日時分秒がイベント発生日時情報として記録されるフィールドである。また、「対象サーバ名」は、クライアント装置１０からサービスの実行の依頼がなされたサービス提供装置２０の名称が対象サーバ名として記録されるフィールドである。また、「対象サービス名」は、クライアント装置１０が提供を依頼してきたサービスの名称が記録されるフィールドである。
【００３６】
スケジュール管理テーブル２３は、保守によりこのサービス提供装置２０が停止する予定期間を管理するためのテーブルである。図５は、スケジュール管理テーブル２３のデータ構造の一例を示す図である。図５のスケジュール管理テーブル２３中のレコードは、「予定情報」及び「予定時刻」のフィールドを、有している。
【００３７】
ここで、「予定情報」は、サービス提供装置２０の稼働の開始又は停止を示す情報が記録されるフィールドである。また、「予定時刻」は、その稼働の開始又は停止が行われる予定時刻が記録されるフィールドである。なお、これら情報は、管理者によって事前にこのテーブル２３に記録されたものである。
【００３８】
稼働状況管理テーブル２４は、このサービス提供装置２０の稼働状況と、このサービス提供装置２０の記憶装置に記録されている他装置用の管理テーブル２１〜２３を本来利用するサービス提供装置２０の稼働状況とを記録しておくためのテーブルである。図６は、稼働状況管理テーブル２４のデータ構造の一例を示す図である。図６の稼働状況管理テーブル２４中のレコードは、「サーバ名」，「稼働状況」，及び、「自他情報」のフィールドを、有している。
【００３９】
ここで、「サーバ名」は、このサービス提供装置２０のサーバ名と、このサービス提供装置２０の記憶装置に記録されている他装置用の管理テーブル２１〜２３を本来利用するサービス提供装置２０のサーバ名とが、記録されるフィールドである。また、「稼働状況」は、各サービス提供装置２０が稼働中であるか停止中であるかを示す稼働状況情報が記録されるフィールドである。また、「自他情報」は、そのサーバ名にて示されるサービス提供装置２０が自装置であるか他装置であるかを示す自他情報が記録されるフィールドである。
【００４０】
図１中のサービス検索装置３０は、各サービスがどのサービス提供装置２０から提供されるかを検索するための装置である。サービス検索装置３０は、具体的には、汎用コンピュータであり、その内部に、ＣＰＵ，ＲＡＭ，通信アダプタ，及び、記憶装置を、備えている。その記憶装置には、オペレーティングシステムプログラムの他、静的情報管理テーブル３１，保有関係管理テーブル３２，及び、サービス検索プログラム３３が、インストールされている。
【００４１】
静的情報管理テーブル３１は、各サービスを提供するサービス提供装置２０についての情報を記録しておくためのテーブルである。図７は、静的情報管理テーブル３１のデータ構造の一例を示す図である。図７の静的情報管理テーブル３１中のレコードは、「サービス名」，「サーバ名」，「プログラム名」，及び、「プログラム引数」のフィールドを、有している。
【００４２】
ここで、「サービス名」は、サービスの名称が記録されるフィールドである。また、「サーバ名」は、そのサービスを提供するサービス提供装置２０のサーバ名が記録されるフィールドである。また、「プログラム名」は、そのサービスを提供する際に実行されるサービス提供プログラムの名称が記録されるフィールドである。また、「プログラム引数」は、同じレコードの「プログラム名」フィールドに名称が記録されたサービス提供プログラムの実行時に実行条件として与え得る全ての引数が記録されるフィールドである。なお、同一のサービスが複数のサービス提供装置２０から提供される場合、静的情報管理テーブル３１は、そのサービスについてのレコードを、そのサービスを提供するサービス提供装置２０の数だけ、有している。
【００４３】
保有関係管理テーブル３２は、サービス提供装置２０の記憶装置に自装置用として記録されている管理テーブル２１〜２３のコピーがどのサービス提供装置２０に保有されているかを記録しておくためのテーブルである。図８は、保有関係管理テーブル３２のデータ構造の一例を示す図である。図８の保有関係管理テーブル３２中のレコードは、「サーバ名」及び「コピー保有サーバ名」のフィールドを、有している。
【００４４】
ここで、「サーバ名」は、サービス提供装置２０のサーバ名が記録されるフィールドである。「コピー保有サーバ名」は、同じレコードの「サーバ名」フィールドにサーバ名が記録されているサービス提供装置２０の記憶装置に自装置用として記録されている管理テーブル２１〜２３のコピーを、記憶装置に保有しているサービス提供装置２０のサーバ名が記録されるフィールドである。
【００４５】
サービス検索プログラム３３は、各サービスがどのサービス提供装置２０において提供されているかを検索する機能を汎用コンピュータに付加するためのプログラムである。このサービス検索プログラム３３に従ったＣＰＵは、何れかのクライアント装置１０からの依頼を受けると、そのクライアント装置１０に指定されたサービスを提供するサービス提供装置２０のサーバ名と、そのサーバ名に対応するコピー保有サーバ名とを上記各テーブル３１，３２から検索してその検索結果をクライアント装置１０に通知する。
【００４６】
以下、以上のように構成される本実施形態のグリッドコンピューティングシステムにおいて実行される処理の内容について、説明する。
【００４７】
サービス提供装置２０では、所定の時間（例えば１０分間）が経過する毎に、ＣＰＵによって記憶装置からキュー実行プログラム２５が読み込まれ、キュー実行処理の実行が開始される。図９は、キュー実行処理の内容を示すフローチャートである。
【００４８】
キュー実行処理の開始後、最初のステップＳ１０１では、サービス提供装置２０は、自装置用として記憶装置に記憶しているキュー管理テーブル２１から、「ステータス」フィールドに「待機中」が記録されているレコードを検索する。そして、サービス提供装置２０は、「待機中」のステータス情報を持つレコードを自装置用のキュー管理テーブル２１から検出できなかったと判断した場合（Ｓ１０１；ＮＯ）、キュー実行処理を終了し、「待機中」のステータス情報を持つレコードを自装置用のキュー管理テーブル２１から検出できたと判断した場合（Ｓ１０１；ＹＥＳ）、ステップＳ１０２へ処理を進める。
【００４９】
ステップＳ１０２では、サービス提供装置２０は、ステップＳ１０１において自装置用のキュー管理テーブル２１から検出したレコードのうち、「ステータス変更日時」フィールドに記録されたステータス変更日時情報の示す年月日時分秒の値が最も古いレコードを、特定する。
【００５０】
次のステップＳ１０３では、サービス提供装置２０は、ステップＳ１０２において特定したレコードの「サービス名」フィールドに記録されているサービス名にて示されるサービス提供プログラムを、記憶装置から読み出して、その実行を開始する。
【００５１】
次のステップＳ１０４では、サービス提供装置２０は、ステップＳ１０２において特定したレコードの「ステータス」フィールド中の値を「待機中」から「実行中」へ切り替える。
【００５２】
次のステップＳ１０５では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている動作履歴管理テーブル２２に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ１０２において特定したレコードの「依頼管理ＩＤ」フィールド中の依頼管理ＩＤと同じものが記録され、その「イベント種別」フィールドには、「サービス開始」が記録される。
【００５３】
次のステップＳ１０６では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１のコピーを保有している全てのサービス提供装置２０に対し、ステップＳ１０２において特定したレコードの「ステータス」フィールド中の値を「待機中」から「実行中」へ切り替えるべき旨と、依頼元のクライアント装置１０のアドレス，対象サービス名，及び、パラメータ名とを含むイベント情報を、通知する。
【００５４】
次のステップＳ１０７では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１のコピーを保有している全てのサービス提供装置２０に対し、動作履歴管理テーブル２２に新たなレコードを追加すべき旨と、その新たなレコードに含まれる情報（依頼管理ＩＤやイベント種別など）とを含むイベント情報を、通知する。
【００５５】
次のステップＳ１０８では、サービス提供装置２０は、ステップＳ１０３において開始したサービス提供プログラムの実行が終了するまで、待機する（Ｓ１０８；ＮＯ）。そして、当該サービス提供プログラムの実行が終了すると（Ｓ１０８；ＹＥＳ）、サービス提供装置２０は、ステップＳ１０９へ処理を進める。
【００５６】
ステップＳ１０９では、サービス提供装置２０は、ステップＳ１０２において特定したレコードの「ステータス」フィールド中の値を「実行中」から「実行済」へ切り替える。
【００５７】
次のステップＳ１１０では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている動作履歴管理テーブル２２に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ１０２において特定したレコードの「依頼管理ＩＤ」フィールド中の依頼管理ＩＤと同じものが記録され、その「イベント種別」フィールドには、「サービス終了」が記録される。
【００５８】
次のステップＳ１１１では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１のコピーを保有している全てのサービス提供装置２０に対し、ステップＳ１０２において特定したレコードの「ステータス」フィールド中の値を「実行中」から「実行済」へ切り替えるべき旨と、依頼元のクライアント装置１０のアドレス，対象サービス名，及び、パラメータ名とを含むイベント情報を、通知する。
【００５９】
次のステップＳ１１２では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１のコピーを保有している全てのサービス提供装置２０に対し、動作履歴管理テーブル２２に新たなレコードを追加すべき旨と、その新たなレコードに含まれる情報（依頼管理ＩＤやイベント種別など）とを含むイベント情報を、通知する。通知後、ＣＰＵ３０は、キュー実行処理を終了する。
【００６０】
また、サービス提供装置２０では、何れかのクライアント装置１０，又は、自装置用として自身の記憶装置に記録されている管理テーブル２１〜２３のコピーを保有している何れかのサービス提供装置２０から、イベント情報が送信されてくると、その受信をトリガとして、ＣＰＵによって記憶装置からイベント受付プログラム２６が読み込まれ、イベント受付処理の実行が開始される。図１０及び図１１は、イベント受付処理の内容を示すフローチャートである。
【００６１】
イベント受付処理の開始後、最初のステップＳ２０１では、サービス提供装置２０は、イベント情報の送信元が、自装置用の管理テーブル２１〜２３のコピーを保有している何れかのサービス提供装置２０であるか否かを、判別する。そして、サービス提供装置２０は、イベント情報の送信元が、自装置用の管理テーブル２１〜２３のコピーを保有しているサービス提供装置２０の何れでもないと判断した場合（Ｓ２０１；ＮＯ）、イベント情報が何れかのクライアント装置１０から受信したものであると判断して、ステップＳ２０２へ処理を進める。
【００６２】
ステップＳ２０２では、サービス提供装置２０は、受信したイベント情報が自分へのサービスの実行依頼を示す情報であるか否かを、判別する。そして、受信したイベント情報が自分へのサービスの実行依頼を示す情報でないと判断した場合（Ｓ２０２；ＮＯ）、サービス提供装置２０は、そのイベント情報が、他装置用として自身の記憶装置に記録されている管理テーブル２１〜２３を利用するサービス提供装置２０に対するサービスの実行依頼を示す情報であると判断して、ステップＳ２０３へ処理を進める。
【００６３】
ステップＳ２０３では、サービス提供装置２０は、新たな依頼管理ＩＤを生成する。
【００６４】
次のステップＳ２０４では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている動作履歴管理テーブル２２に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ２０３において生成した依頼管理ＩＤが記録され、その「イベント種別」フィールドには、「依頼受付」が記録され、「対象サーバ名」フィールドには、このサービスの実行依頼を受けたサービス提供装置２０のサーバ名が記録される。
【００６５】
次のステップＳ２０５では、サービス提供装置２０は、他装置用として自身の記憶装置に記録されている管理テーブル２１〜２３を利用するサービス提供装置２０に対し、その装置２０宛てのサービスの実行依頼を代理にて受け付けた旨と、その依頼に係るその装置用の各テーブル２１〜２３の更新をすべき旨と、その装置用の各テーブル２１〜２３の更新に必要な各種の情報（クライアント装置のアドレス、実行が依頼されたサービスのサービス名など）とを含むイベント情報を、通知する。
【００６６】
次のステップＳ２０６では、サービス提供装置２０は、ステップＳ２０５においてイベント情報を通知したサービス提供装置２０からその応答があったか否かを、判別する。なお、その応答とは、そのサービス提供装置２０が、代理に受け付けられたその装置２０宛の依頼に基づいて、各テーブル２１〜２３の更新に係る情報を送信してくることである。そして、ステップＳ２０５においてイベント情報を通知したサービス提供装置２０からその応答がなかったと判断した場合（Ｓ２０６；ＮＯ）、サービス提供装置２０は、ステップＳ２０７へ処理を進める。
【００６７】
ステップＳ２０７では、サービス提供装置２０は、稼働状況管理テーブル２４において、ステップＳ２０６において応答が無かったサービス提供装置２０についてのレコードの「稼働状況」フィールド中の値を「稼働中」から「停止中」へ切り替える。切り替えた後、サービス提供装置２０は、イベント受付処理を終了する。
【００６８】
一方、ステップＳ２０６において、サービス提供装置２０は、ステップＳ２０５においてイベント情報を通知したサービス提供装置２０からその応答があったと判断した場合（Ｓ２０６；ＹＥＳ）、ステップＳ２０８へ処理を進める。
【００６９】
ステップＳ２０８では、サービス提供装置２０ａは、ステップＳ２０６において応答があったサービス提供装置２０について自身の記憶装置に記録する管理テーブル２１〜２３を、応答として受信した各種の情報に基づいて、更新する。更新後、サービス提供装置２０ａは、イベント受付処理を終了する。
【００７０】
一方、ステップＳ２０２において、サービス提供装置２０は、受信したイベント情報が自分へのサービスの実行依頼を示す情報であると判断した場合（Ｓ２０２；ＹＥＳ）、ステップＳ２１１へ処理を進める。
【００７１】
ステップＳ２１１では、サービス提供装置２０は、新たな管理ＩＤを生成する。
【００７２】
次のステップＳ２１２では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ２１１において生成した依頼管理ＩＤが記録され、その「イベント種別」フィールドには、「依頼受付」が記録され、「対象サーバ名」フィールドには、自装置のサーバ名が記録される。
【００７３】
次のステップＳ２１３では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている動作履歴管理テーブル２２に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ２１１において生成した依頼管理ＩＤが記録され、「イベント種別」フィールドには、「依頼受付」が記録される。
【００７４】
次のステップＳ２１４では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている管理テーブル２１〜２３のコピーを保有する全てのサービス提供装置２０に対し、自装置宛てのサービスの実行依頼を受け付た旨と、その依頼に係る自装置用の各テーブル２１〜２３の更新をすべき旨と、自装置用の各テーブル２１〜２３の更新に必要な各種の情報（クライアント装置のアドレス、実行が依頼されたサービスのサービス名など）とを含むイベント情報を、通知する。通知した後、サービス提供装置２０は、イベント受付処理を終了する。
【００７５】
また、ステップＳ２０１において、サービス提供装置２０は、イベント情報の送信元が、自装置用の管理テーブル２１〜２３のコピーを保有しているサービス提供装置２０の何れかであると判断した場合（Ｓ２０１；ＹＥＳ）、ステップＳ２２１へ処理を進める。
【００７６】
ステップＳ２２１では、サービス提供装置２０は、稼働状況管理テーブル２４において、イベント情報の送信元のサービス提供装置２０についてのレコードの「稼働状況」フィールドの値が「稼働中」となっているか否かを、判別する。そして、サービス提供装置２０は、稼働状況管理テーブル２４において、イベント情報の送信元のサービス提供装置２０についてのレコードの「稼働状況」フィールドの値が「稼働中」と判断した場合（Ｓ２２１；ＹＥＳ）、ステップＳ２２４へ処理を進め、稼働状況管理テーブル２４において、イベント情報の送信元のサービス提供装置２０についてのレコードの「稼働状況」フィールドの値が「稼働中」となっていないと判断した場合（Ｓ２２１；ＮＯ）、ステップＳ２２２へ処理を進める。
【００７７】
ステップＳ２２２では、ＣＰＵは、稼働状況管理テーブル２４において、イベント情報の送信元のサービス提供装置２０についてのレコードの「稼働状況」フィールドの値を「停止中」から「稼働中」に切り替える。
【００７８】
次のステップＳ２２３では、サービス提供装置２０は、自装置用として自身の記憶装置に記憶している動作履歴管理テーブル２２から、「対象サーバ名」フィールドが自装置のサーバ名でないレコードを読み出し、それらレコードを、イベント情報の送信元のサービス提供装置２０へ送信する。送信した後、サービス提供装置２０は、ステップＳ２２４へ処理を進める。
【００７９】
ステップＳ２２４では、サービス提供装置２０は、受信したイベント情報が自装置宛のサービスの実行依頼を示す情報であるか否かを、判別する。そして、受信したイベント情報が自装置宛てのサービスの実行依頼を示す情報であると判断した場合（Ｓ２２４；ＹＥＳ）、サービス提供装置２０は、ステップＳ２２５へ処理を進める。
【００８０】
ステップＳ２２５では、サービス提供装置２０は、新たな管理ＩＤを生成する。
【００８１】
次のステップＳ２２６では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されているキュー管理テーブル２１に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ２２５において生成した依頼管理ＩＤが記録され、その「イベント種別」フィールドには、「依頼受付」が記録され、「対象サーバ名」フィールドには、自装置のサーバ名が記録される。
【００８２】
次のステップＳ２２７では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている動作履歴管理テーブル２２に対し、新たなレコードを追加する。この新たなレコードの「依頼管理ＩＤ」フィールドには、ステップＳ２２５において生成した依頼管理ＩＤが記録され、「イベント種別」フィールドには、「依頼受付」が記録される。
【００８３】
次のステップＳ２２８では、サービス提供装置２０は、自装置用として自身の記憶装置に記録されている管理テーブル２１〜２３のコピーを保有する全てのサービス提供装置２０に対し、自装置宛てのサービスの実行依頼を受け付た旨と、その依頼に係る自装置用の各テーブル２１〜２３の更新をすべき旨と、自装置用の各テーブル２１〜２３の更新に必要な各種の情報（クライアント装置のアドレス、実行が依頼されたサービスのサービス名など）とを含むイベント情報を、通知する。通知した後、サービス提供装置２０は、イベント受付処理を終了する。
【００８４】
一方、ステップＳ２２４において、受信したイベント情報が自分へのサービスの実行依頼を示す情報でないと判断した場合（Ｓ２２４；ＮＯ）、サービス提供装置２０は、ステップＳ２２９へ処理を進める。
【００８５】
ステップＳ２２９では、サービス提供装置２０は、受信したイベント情報に基づき、他装置用として自身の記憶装置に記憶している各管理テーブル２１〜２３を更新する。サービス提供装置２０は、例えば、イベント情報がステータス情報の切り替え（他のサービス提供装置２０で実行されたＳ１０６やＳ１１１やＳ２１４やＳ２２８に基づくイベント情報）であれば、その他装置用のキュー管理テーブル２１における該当するレコードのステータス情報を切り替える。また、イベント情報が動作履歴管理テーブル２２への新レコードの追加（他のサービス提供装置２０において実行されたＳ１０７やＳ１１２や２０５やＳ２２３に基づくイベント情報）であれば、その他装置用の動作履歴管理テーブル２２に対し、該当する情報を有するレコードを追加する。このステップＳ２２９を実行した後、サービス提供装置２０は、イベント受付処理を終了する。
【００８６】
一方、クライアント装置１０では、入力装置が操作されることによって、クライアントプログラムの実行を指示されると、ＣＰＵによってＨＤＤからクライアントプログラムが読み込まれ、クライアント処理の実行が開始される。図１２乃至図１４は、クライアント処理の内容を示すフローチャートである。
【００８７】
クライアント処理の開始後、最初のステップＳ３０１では、クライアント装置１０は、操作画面を表示装置に表示する。図１５は、操作画面４１の一例を示す図である。
【００８８】
図１５の操作画面４１には、サービス名を入力するためのテキストボックス４１ａが、示されている。また、図１５の操作画面４１には、上記サービス名のサービスを提供できるサービス提供装置２０を検索してその検索結果を表示する際に、サービス提供装置２０を後述する速度優先の順番で表示するのか品質優先の順番で表示するのかを選択するための二個のラジオボタン４１ｂ，４１ｃが、示されている。
【００８９】
また、図１５の操作画面には、上記検索結果が表示される一覧表４１ｄが、示されている。この一覧表４１ｄの各行に検索結果として記録されるレコードは、サーバ名，そのサーバ名のサービス提供装置２０の動的情報のコピーを保有するサービス提供装置２０のサーバ名，予定されている全てのサービスの実行が終了する予定時刻，及び、現在の動作状態をそれぞれ示すフィールドを、有している。
【００９０】
さらに、図１５の操作画面には、テキストボックス４１ａへのサービス名の入力が済んだ際にクリックするための検索ボタン４１ｅ，一覧表４１ｄ中の何れかの行を選択した際にクリックするための実行ボタン４１ｆ，及び、クライアント処理を終了する際にクリックするための中止ボタン４１ｇが、示されている。
【００９１】
なお、ステップＳ３０１において表示装置に表示される操作画面４１の一覧表４１ｄには、何も列挙されていない。また、実行ボタン４１ｆはクリックできないように機能不能となっている。クライアント装置１０は、このような操作画面を表示装置に表示した後、ステップＳ３０２へ処理を進める。
【００９２】
ステップＳ３０２では、クライアント装置１０は、操作画面４１における検索ボタン４１ｅ及び中止ボタン４１ｇの何れか一方がクリックされるまで、待機する（Ｓ３０２；ＮＯ）。そして、操作画面４１における検索ボタン４１ｅ及び中止ボタン４１ｇの何れか一方がクリックされると（Ｓ３０２；ＹＥＳ）、クライアント装置１０は、ステップＳ３０３へ処理を進める。
【００９３】
ステップＳ３０３では、クライアント装置１０は、クリックされたボタンが検索ボタン４１ｅであるか否かを、判別する。そして、クライアント装置１０は、クリックされたボタンが検索ボタン４１ｅでないと判断した場合（Ｓ３０３；ＮＯ）、クライアント処理を終了し、クリックされたボタンが検索ボタン４１ｅであると判断した場合（Ｓ３０３；ＹＥＳ）、ステップＳ３０４へ処理を進める。
【００９４】
ステップＳ３０４では、クライアント装置１０は、検索ボタン４１ｅがクリックされた時点でテキストボックス４１ａに入力されていたサービス名を検索条件として静的情報管理テーブル３１を検索するとともにその検索結果を検索条件として保有関係管理テーブル３２を検索するように、サービス検索装置３０へ依頼する。なお、この依頼を受けたサービス検索装置３０では、サービス検索プログラムが起動して、上記サービス名を検索条件としたサービス検索処理が実行され、検索の結果得られた各サーバ名が、クライアント装置１０へ送信される。
【００９５】
次のステップＳ３０５では、クライアント装置１０は、サービス検索装置３０から検索結果として各レコードを受信するまで、待機する（Ｓ３０５；ＮＯ）。そして、サービス検索装置３０から検索結果として各サーバ名を受信すると、クライアント装置１０は、第１処理ループＬ１を実行する。
【００９６】
第１処理ループＬ１では、クライアント装置１０は、検索結果として受信した各サーバ名を一つずつ処理対象として特定することにより、ステップＳ３６１〜Ｓ３６３を全てのサーバ名に対して順に実行する。
【００９７】
ステップＳ３６１では、クライアント装置１０は、処理対象サーバ名にて示されるサービス提供装置２０に対し、自装置用の全ての動的情報（管理テーブル２１〜２３）を送信するように、要求する。
【００９８】
次のステップＳ３６２では、クライアント装置１０は、当該サービス提供装置２０から動的情報を取得できたか否かを、判別する。そして、クライアント装置１０は、当該サービス提供装置２０から動的情報を取得できたと判断した場合（Ｓ３６２；ＹＥＳ）、この処理対象サーバ名に対する第１処理ループＬ１の実行を終了し、当該サービス提供装置２０から動的情報を取得できなかったと判断した場合（Ｓ３６２；ＮＯ）、ステップＳ３６３へ処理を進める。
【００９９】
ステップＳ３６３では、クライアント装置１０は、処理対象サーバ名にて示されるサービス提供装置２０が自装置用として記憶装置に記憶している管理テーブル２１〜２３のコピーを保有しているサービス提供装置２０から、処理対象サーバ名にて示されるサービス提供装置２０用の動的情報を取得する。なお、クライアント装置１０は、コピーを保有するサービス提供装置２０が複数存在する場合には、これら装置２０に対して動的情報の送信を順に要求し、動的情報を取得できたところで、ステップＳ３６３の実行を終了する。このステップＳ３６３の実行後、クライアント装置１０は、この処理対象サーバ名に対する第１処理ループＬ１の実行を終了する。
【０１００】
クライアント装置１０は、検索結果として受信した全てのサーバ名について第１処理ループＬ１を実行した後、ステップＳ３０６へ処理を進める。
【０１０１】
ステップＳ３０６では、クライアント装置１０は、検索ボタン４１ｅがクリックされた時点で選択されていたラジオボタン４１ｂ，４１ｃが何れのラジオボタンであるか否かを、判別する。そして、検索ボタン４１ｅがクリックされた時点で選択されていたラジオボタンが速度優先のラジオボタン４１ｂであると判断した場合（Ｓ３０６；ＹＥＳ）、クライアント装置１０は、第２処理ループＬ２を実行する。
【０１０２】
第２処理ループＬ２では、クライアント装置１０は、検索結果として受信した各サーバ名を一つずつ処理対象として特定することにより、ステップＳ３７１〜Ｓ３７３を全てのサーバ名に対して順に実行する。
【０１０３】
ステップＳ３７１では、クライアント装置１０は、処理対象サーバ名のキュー管理テーブル２１を参照することによって、待機中キューの数を計数する。
【０１０４】
次のステップＳ３７２では、クライアント装置１０は、処理対象サーバ名の動作履歴管理テーブル２２を参照することによって、指定されたサービス名のサービスをこのサービス提供装置２０が実行したときの処理時間を、サービス開始のイベント発生日時とサービス終了のイベント発生日時とから算出する。このサービス提供装置２０が複数回このサービスを実行している場合には、その回数分だけ、処理時間を算出する。そして、クライアント装置１０は、算出した処理時間の総和をその個数にて除算することにより、平均処理時間を算出する。
【０１０５】
ステップＳ３７３では、クライアント装置１０は、処理対象サーバ名のサービス提供装置２０が停止中の場合には、そのスケジュール管理テーブル２３を参照することによって、その稼働が再開されるまでの時間を算出し、ステップＳ３７２において算出した平均処理時間にその時間を加算することによって得られる時間を、予定所要時間とする。また、クライアント装置１０は、処理対象サーバ名のサービス提供装置２０が停止中の場合には、平均処理時間をそのまま予定所要時間とする。その後、クライアント装置１０は、この処理対象サーバ名に対する第１処理ループＬ２の実行を終了する。
【０１０６】
クライアント装置１０は、検索結果として受信した全てのサーバ名について第２処理ループＬ２を実行した後、ステップＳ３０７へ処理を進める。
【０１０７】
ステップＳ３０７では、クライアント装置１０は、検索結果としての各サーバ名と予定所要時間とを持つレコードを、予定所要時間の短い順に並べ替える。並べ替えた後、クライアント装置１０は、ステップＳ３０９へ処理を進める。
【０１０８】
一方、ステップＳ３０６において、クライアント装置１０は、検索ボタン４１ｅがクリックされた時点で選択されていたラジオボタンが品質優先のラジオボタン４１ｃであると判断した場合（Ｓ３０６；ＮＯ）、クライアント装置１０は、第３処理ループＬ３を実行する。
【０１０９】
第３処理ループＬ３では、クライアント装置１０は、検索結果として受信した各サーバ名を一つずつ処理対象として特定することにより、ステップＳ３８１〜Ｓ３８３を全てのサーバ名に対して順に実行する。
【０１１０】
ステップＳ３８１では、クライアント装置１０は、処理対象サーバ名のサービス提供装置２０が自装置用として自身の記憶装置に記憶する管理テーブル２１〜２３のコピーを保有するサービス提供装置２０の数を、計数する。
【０１１１】
次のステップＳ３８２では、クライアント装置１０は、処理対象サーバ名のサービス提供装置２０の自装置用の動的情報のコピーを保有するサービス提供装置２０のそれぞれについて、その動作履歴管理テーブル２２から異常終了の発生頻度（単位時間当たりの発生件数）を算出する。
【０１１２】
次のステップＳ３８３では、クライアント装置１０は、各発生頻度の逆数を算出した後、各逆数を全て加算することによって品質値を算出する。その後、クライアント装置１０は、この処理対象サーバ名に対する第３処理ループＬ３の実行を終了する。
【０１１３】
クライアント装置１０は、検索結果として受信した全てのサーバ名について第３処理ループＬ３を実行した後、ステップＳ３０８へ処理を進める。
【０１１４】
ステップＳ３０８では、クライアント装置１０は、検索結果としての各サーバ名と品質値とを持つレコードを、品質値の大きい順に並べ替える。並べ替えた後、クライアント装置１０は、ステップＳ３０９へ処理を進める。
【０１１５】
ステップＳ３０９では、クライアント装置１０は、表示装置に表示中の操作画面４１の一覧表４１ｄに、検索結果としてのサーバ名と、そのサーバ名のサービス提供装置２０による指定サービスの実行終了予定時刻とを有するレコードを、ステップＳ３０７又はＳ３０８において並べ替えられた順に、列挙する。また、そのサーバ名のサービス提供装置２０が停止中である場合には、そのサーバ名のレコードには、さらに、そのサービス提供装置２０の代わりにサービスの実行依頼を受け付けるサービス提供装置２０（動的情報のコピーを保有するサービス提供装置２０）のサーバ名が、含まれる。また、そのサーバ名のサービス提供装置２０もそのコピー保有のサービス提供装置２０も全て停止中である場合には、そのサーバ名を持つレコードの「ステータス」フィールドには、「サービス停止中」が記述される。図１６は、検索結果が一覧表４１ｄに列挙された状態にある操作画面４１の一例を示す図である。なお、この図１６の操作画面４１においては、一覧表４１ｄ内の各行は、その行を選択することができるボタンとして機能する。そして、その一覧表４１ｄ内の何れかの行が選択されると、その行に示されたサーバ名のサービス提供装置２０における各種の情報がリストボックスとして表示される。図１７は、このリストボックスが表示されているときの操作画面４１の一例を示す図である。
【０１１６】
次のステップＳ３１０では、クライアント装置１０は、操作画面４１における各ボタン４１ｅ〜４１ｇの何れか一つがクリックされるまで、待機する（Ｓ３１０；ＮＯ）。そして、操作画面４１における各ボタン４１ｅ〜４１ｇの何れか一つがクリックされると（Ｓ３１０；ＹＥＳ）、クライアント装置１０は、ステップＳ３１１へ処理を進める。
【０１１７】
ステップＳ３１１では、クライアント装置１０は、クリックされたボタンが実行ボタン４１ｆであるか否かを、判別する。そして、クライアント装置１０は、クリックされたボタンが実行ボタン４１ｆであると判断した場合（Ｓ３１１；ＹＥＳ）、第４処理ループＬ４を実行する。
【０１１８】
第４処理ループＬ４では、クライアント装置１０は、操作画面４１の一覧表４１ｄに列挙されているレコードを一つずつ処理対象として特定することにより、ステップＳ３９１〜Ｓ３９５を全てのレコードに対して順に実行する。
【０１１９】
ステップＳ３９１では、クライアント装置１０は、処理対象レコード中のサーバ名のサービス提供装置２０に対し、指定サービスの実行を依頼する旨のイベント情報を、通知する。
【０１２０】
次のステップＳ３９２では、クライアント装置１０は、待機処理の実行を開始する。具体的には、サービス提供プログラムが呼び掛け型である場合には、クライアント装置１０は、実行が終了したかの問い合わせを定期的に送信する処理を、そのサービス提供プログラムから実行終了の応答が得られるまで繰り返す。この処理は、クライアント装置１０では、他の処理と並行に実行される。また、サービス提供プログラムが割り込み型である場合には、クライアント装置１０は、そのサービス提供プログラムから実行終了が通知されるまで、他の処理を行わずに待機状態を維持する。何れの場合も、クライアント装置１０は、操作画面４１の一覧表４１ｄにおける当該レコードのステータスフィールドに、「実行中」を表示する。図１８は、一覧表４１ｄ内の一つのレコードのステータスフィールドに「実行中」が示されているときの操作画面４１の一例を示す図である。
【０１２１】
次のステップＳ３９３では、クライアント装置１０は、処理対象レコードの終了予定時刻が経過するまで待機する（Ｓ３９３；ＮＯ）。そして、終了予定時刻が経過すると（Ｓ３９３；ＹＥＳ）、クライアント装置１０は、ステップＳ３９４へ処理を進める。
【０１２２】
ステップＳ３９４では、クライアント装置１０は、サービス提供装置２０においてサービスの実行が正常に終了したか否かを、判別する。そして、サービス提供装置２０においてサービスの実行が正常に終了していないと判断した場合（Ｓ３９４；ＮＯ）、クライアント装置１０は、ステップＳ３９５へ処理を進める。
【０１２３】
ステップＳ３９５では、クライアント装置１０は、サービスの実行を依頼しているサービス提供装置２０が自装置用として記憶装置に記憶する管理テーブル２１〜２３のコピーを保有するサービス提供装置２０に対し、サービス実行中のサービス提供装置２０において異常終了が発生した旨と、異常終了に係る各管理テーブル２１〜２３の更新をすべき旨を含むイベント情報を通知する。通知した後、クライアント装置１０は、操作画面４１の一覧表４１ｄにおける当該レコードのステータスフィールドに、「異常終了」を表示する。図１９は、一覧表４１ｄ内の一つのレコードのステータスフィールドに「異常終了」が示されているときの操作画面４１の一例を示す図である。このような表示の切り替えを行った後、クライアント装置１０は、この処理対象レコードに対する第４処理ループＬ４の実行を終了する。
【０１２４】
クライアント装置１０は、操作画面４１の一覧表４１ｄに列挙されている全てのレコードに対して第２処理ループＬ２を実行した場合には、ステップＳ３１０へ処理を戻す。
【０１２５】
一方、第４処理ループＬ４の実行中、サービス提供装置２０においてサービスの実行が正常に終了したと判断した場合（Ｓ３９４；ＹＥＳ）、クライアント装置１０は、第４処理ループＬ４から抜けだし、ステップＳ３１２へ処理を進める。
【０１２６】
ステップＳ３１２では、クライアント装置１０は、操作画面４１の一覧表４１ｄにおける当該レコードのステータスフィールドに、「正常終了」を表示する。図２０は、一覧表４１ｄ内の一つのレコードのステータスフィールドに「正常終了」が示されているときの操作画面４１の一例を示す図である。このような表示の切り替えを行った後、クライアント装置１０は、ステップＳ３１０へ処理を戻す。
【０１２７】
一方、ステップＳ３１１において、クライアント装置１０は、クリックされたボタンが実行ボタン４１ｆでないと判断した場合（Ｓ３１１；ＮＯ）、ステップＳ３１３へ処理を進める。
【０１２８】
ステップＳ３１３では、クライアント装置１０は、クリックされたボタンが検索ボタン４１ｅであるか否かを、判別する。そして、クライアント装置１０は、クリックされたボタンが検索ボタン４１ｅであると判断した場合（Ｓ３１３；ＹＥＳ）、ステップＳ３０４へ処理を戻し、クリックされたボタンが検索ボタン４１ｅでないと判断した場合（Ｓ３１３；ＮＯ）、中止ボタン４１ｇがクリックされたと判断して、クライアント処理を終了する。
【０１２９】
以上に示したような処理が実行されるため、本実施形態のグリッドコンピューティングシステムは、以下に記述するような作用及び効果を、有している。
【０１３０】
サービス検索装置３０では、サービス提供装置２０とそのサービス提供装置２０が提供するサービスとが、対応付けられた状態で、静的情報管理テーブル３１に記録されている。この静的情報管理テーブル３１内のレコードは、サービス提供装置２０の稼働状況とは無関係で時間的に一定な静的情報である。このため、本実施形態のグリッドコンピューティングシステムに対し、複数のサービス検索装置３０を用意することができる。このようにサービス検索装置３０を複数用意することにより、たとえ何れかのサービス検索装置３０がダウンしたとしても、その他の検索装置が動作を継続しているので、クライアント装置１０は、サービス検索装置３０から常に検索結果を取得することができる。然も、どのサービス検索装置３０においても、静的情報管理テーブル３１の内容に時間的な変化がないことから、どのサービス検索装置３０から取得される検索結果であっても、必ず同じ内容となる。従って、サービス検索装置３０は、クライアント装置１０に対して常に正常な処理を提供することができる。
【０１３１】
また、サービス提供装置２０の稼働状況を示す動的情報がそのサービス提供装置２０とそのサービス提供装置２０とは別の幾つかのサービス提供装置２０に記録され、さらに、サービス提供装置２０の動的情報に変化が生じた場合には、自他の全てのサービス提供装置２０に記録されている動的情報が、変化後の動的情報で更新される（Ｓ１０４〜Ｓ１０７，Ｓ１０９〜Ｓ１１２，Ｓ２０４〜Ｓ２０６，Ｓ２１２〜Ｓ２１４，Ｓ２２３，Ｓ２２６〜Ｓ２２８）。このため、クライアント装置１０が、目的のサービスを提供するサービス提供装置２０の動的情報をそのサービス提供装置２０から直接取得できなくても、その動的情報と同じ内容を持つ動的情報を、別のサービス提供装置２０から取得できる。従って、クライアント装置１０は、目的のサービスを提供できるサービス提供装置２０に対してサービスの提供を依頼するか否かを、常に且つ正確に決定することができる。
【０１３２】
グリッドコンピューティングシステムの利用者は、このシステムが提供可能な何れかのサービスを享受しようとする場合、自分のクライアント装置１０の入力装置を操作することによって、クライアントプログラム１１を起動する。すると、クライアント装置１０の表示装置には、図１５に示されるような操作画面４１が表示される（Ｓ３０１）。利用者は、その操作画面４１のテキストボックス４１ａに所望のサービスの名称を入力し、且つ、速度優先のラジオボタン４１ｂか品質優先のラジオボタン４１ｃの何れかをクリックして、検索ボタン４１ｅをクリックする（Ｓ３０２，Ｓ３０３；ＹＥＳ）。すると、クライアント装置１０の表示装置に表示されている操作画面４１の一覧表４１ｄには、図１６に示されるように、利用者が指定したサービスを提供することができるサービス提供装置２０のサーバ名が、利用者の選択した速度優先又は品質優先の順に、列挙される（Ｓ３０４〜Ｓ３０９，Ｌ１，Ｓ３６１〜Ｓ３６３，Ｌ２，Ｓ３７１〜Ｓ３７３，Ｌ３，Ｓ３８１〜Ｓ３８３）。そして、利用者が、実行ボタン４１ｆをクリックすると、一覧表４１ｄに列挙されたうちの一番上のサービス提供装置２０に対し、利用者が指定したサービスの提供が依頼される（Ｌ４，Ｓ３９１）。従って、利用者は、このシステムが提供可能な何れかのサービスを享受しようとする場合、サービスの名称と検索結果の優先順とを決定するだけで、所望のサービスを提供するのに最適なサービス提供装置２０に対し、サービスの提供を依頼することができる。
【０１３３】
（付記１）
クライアント装置が、サーバ装置に対してサービスの提供を依頼することにより、そのサーバ装置からそのサービスを享受するグリッドコンピューティングシステムであって、
前記各サーバ装置は、自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報とを、記憶するとともに、自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、前記クライアント装置から自己の動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、その他のサーバ装置の動的情報をそのクライアント装置に対して提供し、
前記クライアントに接続された一つ以上の検索装置が、何れも、各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶しているとともに、何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供し、
前記クライアント装置は、目的のサービスを提供できるサーバ装置のサーバ識別情報を取得すると、そのサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得する
ことを特徴とするグリッドコンピューティングシステム。
【０１３４】
（付記２）
グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するサーバ装置であって、
自己の稼働状況を示す動的情報と、少なくとも一つの他のサーバ装置の稼働状況を示す動的情報を記憶し、
自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新し、
前記クライアント装置から動的情報を要求された場合には、そのクライアント装置に対して自己の動的情報を提供し、
前記クライアント装置から他のサーバ装置の動的情報を要求された場合には、そのクライアント装置に対して他のサーバ装置の動的情報を提供する
ことを特徴とするサーバ装置。
【０１３５】
（付記３）
グリッドコンピューティングシステムにおいて各サーバ装置からサービスを享受するクライアント装置に対して接続される検索装置であって、
各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とを対応付ける静的情報を記憶し、
何れかのクライアント装置から、何れかのサービス識別情報を受信した場合には、そのサービス識別情報に対応するサーバ識別情報をそのクライアント装置に提供する
ことを特徴とする検索装置。
【０１３６】
（付記４）
グリッドコンピューティングシステムのサーバ装置からサービスを享受するためのクライアント装置であって、
各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶した検索装置から、何れかのサービス識別情報に対応するサーバ識別情報を取得し、
取得したサーバ識別情報のサーバ装置に対してサービスの提供を依頼するか否かを決定するために、そのサーバ識別情報のサーバ装置からその動的情報を取得し、そのサーバ装置から動的情報が得られない場合には、そのサーバ装置の動的情報を記憶する他のサーバ装置から当該動的情報を取得する
ことを特徴とするクライアント装置。
【０１３７】
（付記５）
グリッドコンピューティングシステムのクライアント装置からサービスの提供を依頼されると、そのクライアント装置に対してサービスを提供するコンピュータに対し、情報提供の機能を付加するための情報提供プログラムであって、
前記コンピュータを、
自己の稼働状況を示す動的情報と、前記グリッドコンピューティングシステムの何れかのサーバ装置の稼働状況を示す動的情報とを記憶装置に記憶する記憶手段，
自己の動的情報に変化が生じた場合に、他のサーバ装置に記録されている自己の動的情報を更新する更新手段，及び、
前記クライアント装置から他のサーバ装置の動的情報を要求する情報を受信装置において受信すると、そのクライアント装置に対して他のサーバ装置の動的情報を送信装置を介して送信する通信手段
として機能させる
ことを特徴とする情報提供プログラム。
【０１３８】
（付記６）
グリッドコンピューティングシステムにおいて各サーバ装置からサービスを享受するクライアント装置に対して接続されるコンピュータに対し、情報提供の機能を付加するための情報提供プログラムであって、
前記コンピュータを、
各サーバ装置を識別するためのサーバ識別情報とそのサーバ装置が提供できるサービスを識別するためのサービス識別情報とそのサーバ装置の動的情報を記憶する他のサーバ装置のサーバ識別情報とを対応付ける静的情報を記憶装置に記憶する記憶手段，及び、
前記何れかのクライアント装置から、何れかのサービス識別情報を受信装置において受信する受信手段，及び、
前記受信手段が受信したサービス識別情報に対応するサーバ識別情報を前記記憶装置から読み出して、送信装置において前記クライアント装置へ送信する送信手段
として機能させる
ことを特徴とする情報提供プログラム。
【図面の簡単な説明】
【０１３９】
【図１】本発明の実施形態であるグリッドコンピューティングシステムの概略図
【図２】サービス提供装置の記憶装置にインストールされているテーブル群及びプログラム群を示す説明図
【図３】キュー管理テーブルのデータ構造の一例を示す図
【図４】動作履歴管理テーブルのデータ構造の一例を示す図
【図５】スケジュール管理テーブルのデータ構造の一例を示す図
【図６】稼働状況管理テーブルのデータ構造の一例を示す図
【図７】静的情報管理テーブルのデータ構造の一例を示す図
【図８】保有関係管理テーブルのデータ構造の一例を示す図
【図９】キュー実行処理の内容を示すフローチャート
【図１０】イベント受付処理の内容を示すフローチャート
【図１１】イベント受付処理の内容を示すフローチャート
【図１２】クライアント処理の内容を示すフローチャート
【図１３】クライアント処理の内容を示すフローチャート
【図１４】クライアント処理の内容を示すフローチャート
【図１５】操作画面の一例を示す図
【図１６】操作画面の一例を示す図
【図１７】操作画面の一例を示す図
【図１８】操作画面の一例を示す図
【図１９】操作画面の一例を示す図
【図２０】操作画面の一例を示す図
【符号の説明】
【０１４０】
１０        クライアント装置
１１        クライアントプログラム
２０        サービス提供装置
２１        キュー管理テーブル
２２        動作履歴管理テーブル
２３        スケジュール管理テーブル
２４        稼働状況管理テーブル
２５        キュー実行プログラム
２６        イベント受付プログラム
Ｓａ〜Ｓｅ  サービス提供プログラム
３０        サービス検索装置
３１        静的情報管理テーブル
３２        保有関係管理テーブル
３３        サービス検索プログラム
４１        操作画面
４１ａ      テキストボックス
４１ｂ      ラジオボタン
４１ｃ      ラジオボタン
４１ｄ      一覧表
４１ｅ      検索ボタン
４１ｆ      実行ボタン
４１ｇ      中止ボタン
Ｎ          ネットワーク
【図１】
2005275946.tif 000003
【図２】
2005275946.tif 000004
【図３】
2005275946.tif 000005
【図４】
2005275946.tif 000006
【図５】
2005275946.tif 000007
【図６】
2005275946.tif 000008
【図７】
2005275946.tif 000009
【図８】
2005275946.tif 000010
【図９】
2005275946.tif 000011
【図１０】
2005275946.tif 000012
【図１１】
2005275946.tif 000013
【図１２】
2005275946.tif 000014
【図１３】
2005275946.tif 000015
【図１４】
2005275946.tif 000016
【図１５】
2005275946.tif 000017
【図１６】
2005275946.tif 000018
【図１７】
2005275946.tif 000019
【図１８】
2005275946.tif 000020
【図１９】
2005275946.tif 000021
【図２０】
2005275946.tif 000022