(57)【特許請求の範囲】
【請求項１】
利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバと、前記複数の引受サーバを管理する管理サーバとを備えたシステムであって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部を有し、
前記複数の引受サーバの各々は、
受信した前記入力データを入力として割り当てられた前記処理プログラムを実行することにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部を有する、
システム。
【請求項２】
前記複数の引受サーバの各々は、前記引受サーバ選択部が過去に前記問合対応部に問合せた結果取得した引受サーバの識別情報を、当該引受サーバが実行する処理プログラムの識別情報に対応付けてキャッシュするキャッシュ部を更に備え、
前記引受サーバ選択部は、実行するべき処理プログラムの識別情報が、前記キャッシュ部によりキャッシュされている場合に、当該処理プログラムに対応する引受サーバを選択し、実行するべき処理プログラムの識別情報が、前記キャッシュ部によりキャッシュされていない場合に、当該処理プログラムを実行する引受サーバを前記問合対応部に問合せる請求項１記載のシステム。
【請求項３】
前記処理プログラム実行部は、前記入力データを受信した場合に、入力データを受信した旨を示す受信通知を前記管理サーバに送信し、前記処理プログラムの実行が終了した場合に、当該処理プログラムの実行が終了した旨を示す終了通知を前記管理サーバに送信し、
前記引受サーバ情報格納部は、前記複数の引受サーバの各々が新たに入力データを受信して処理プログラムを実行可能か否かを、前記受信通知及び前記終了通知に基づいて判断した判断結果を実行可否情報として更に格納し、
前記問合対応部は、問合せを受けた処理プログラムについて、当該処理プログラムを実行する複数の引受サーバのうち、新たに入力データを受信して処理プログラムを実行可能な引受サーバを、前記実行可否情報に基づいて選択し、選択した当該引受サーバの識別情報を前記問合せに対する返信として送信する
請求項１記載のシステム。
【請求項４】
前記管理サーバは、前記問合対応部が問合せを受けた処理プログラムについて、当該処理プログラムを実行する複数の引受サーバのうち、予め定められた基準割合を超える数の引受サーバが、新たに入力データを受信して処理プログラムを実行可能でない場合に、当該処理プログラムを起動していない引受サーバの何れかにおいて当該処理プログラムを起動する処理プログラム起動部を更に備え、
前記問合対応部は、前記処理プログラム起動部により当該処理プログラムが起動された引受サーバの識別情報を、前記問合せに対する返信として送信する
請求項３記載のシステム。
【請求項５】
前記複数の引受サーバの各々は、
前記入力データ受渡部により引受サーバに送信された入力データ及び実行指示情報の履歴を格納する履歴格納部と、
前記入力データ受渡部が更新された前記入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、処理プログラムの実行に障害が発生したか否か判断する障害発生判断部と
を更に有し、
前記障害発生判断部により障害が発生したと判断された場合において、
前記引受サーバ選択部は、更新された前記入力データを入力として次に実行するべき処理プログラムを実行する他の引受サーバを選択し、
前記入力データ受渡部は、前記履歴格納部から入力データ及び実行指示情報を取得して、前記引受サーバ選択部により選択された前記他の引受サーバに送信する
請求項１記載のシステム。
【請求項６】
前記処理プログラム実行部は、前記入力データを受信した場合に、入力データを受信した旨を示す受信通知を前記管理サーバに送信し、前記処理プログラムの実行が終了した場合に、当該処理プログラムの実行が終了した旨を示す終了通知を前記管理サーバに送信し、
前記管理サーバは、何れかの引受サーバから前記受信通知を受信してから予め定められた基準処理時間内に、当該引受サーバから前記終了通知を受信できなかった場合に、当該引受サーバに入力データを送信した送信元の引受サーバに、当該引受サーバにおいて処理プログラムの実行に障害が発生した旨を示す障害発生通知を送信する障害発生通知送信部を更に備え、
前記障害発生判断部は、前記障害発生通知を受信した場合に、前記入力データ受渡部が更新された前記入力データ及び実行指示情報を送信した送信先の引受サーバにおいて処理プログラムの実行に障害が発生したと判断する
請求項５記載のシステム。
【請求項７】
入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、
前記処理プログラム実行部は、新たに入力データを受信して処理プログラムを実行可能でないと判断した場合に、入力データを拒絶する旨を示す拒絶通知を当該入力データ及び当該実行指示情報の送信元の引受サーバに送信し、
当該送信元の引受サーバにおける前記障害発生判断部は、当該送信先の引受サーバから前記拒絶通知を受信した場合に、当該送信先の引受サーバにおいて処理プログラムの実行に障害が発生したと判断する
請求項５記載のシステム。
【請求項８】
前記管理サーバは、前記複数の処理プログラムが実行されることにより前記ジョブが完了した場合に、前記複数の引受サーバの各々における前記履歴格納部から、入力データ及び実行指示情報を削除させる削除指示部を更に備える
請求項５記載のシステム。
【請求項９】
前記複数の引受サーバの各々において、
前記引受サーバ選択部は、更新された前記入力データを入力として次に実行するべき処理プログラムを起動している複数の引受サーバのうち、当該引受サーバとの間の通信速度がより速い引受サーバを、当該通信速度がより遅い引受サーバより優先して、前記他の引受サーバとして選択する
請求項５記載のシステム。
【請求項１０】
前記複数の引受サーバの各々は、
前記処理プログラム実行部が前記処理プログラムを実行することにより変更した当該引受サーバ上のデータの履歴情報を、当該変更を復元可能な情報に対応付けて格納する履歴格納部と、
前記入力データ受渡部が更新された前記入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、処理プログラムの実行に障害が発生した場合に、前記処理プログラム実行部が変更したデータを、前記履歴格納部の前記履歴情報に基づいて復元する変更復元部と
を更に有する
請求項１記載のシステム。
【請求項１１】
前記管理サーバは、生成した前記実行指示情報に基づいて、前記ジョブに入力される前記入力データを入力として２回目以降に実行するべき処理プログラムの各々を検出し、検出した処理プログラムの各々を、前記入力データ送信部の送信先とは異なる引受サーバの何れかにおいて起動する処理プログラム起動部を更に備える
請求項１記載のシステム。
【請求項１２】
前記複数の引受サーバの各々において、
前記処理プログラム実行部は、過去に処理プログラムの実行に要した処理量を前記管理サーバに通知し、
前記管理サーバにおいて、
前記処理プログラム起動部は、前記処理プログラム実行部から通知された処理プログラムの過去の処理量が、既に当該処理プログラムを起動している引受サーバが処理可能な最大処理量を超える場合に、前記入力データ送信部の送信先とは異なる引受サーバの何れかにおいて、当該処理プログラムを起動する
請求項１１記載のシステム。
【請求項１３】
前記管理サーバは、前記ジョブに入力される前記入力データを入力として実行するべき複数の処理プログラムの各々を検出し、検出した処理プログラムの各々について、当該入力データを入力として実行する当該処理プログラムに必要な処理量が、既に当該処理プログラムを起動している引受サーバが処理可能な最大処理量を超える場合に、当該処理プログラムを、前記入力データ送信部の送信先とは異なる引受サーバの何れかにおいて起動する処理プログラム起動部
を更に備える請求項１記載のシステム。
【請求項１４】
前記処理プログラム実行部は、最後に入力データ及び実行指示情報を受信してから予め定められた基準待機時間内に、入力データ及び実行指示情報を受信しなかった場合に、当該引受サーバの処理プログラムの実行を中止する
請求項１記載のシステム。
【請求項１５】
前記管理サーバは、前記複数の引受サーバの何れかにおいて、前記処理プログラム実行部が処理プログラムを実行することにより使用する計算資源の使用率が、予め定められた基準使用率より低い場合に、当該処理プログラムを、最大処理量が当該引受サーバより少ない他の引受サーバに実行させる引受サーバ変更部を更に備える
請求項１記載のシステム。
【請求項１６】
入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、
前記処理プログラム実行部は、受信した実行指示情報に基づいて、受信した入力データに既に実行されているべき処理プログラムを検出し、検出した当該処理プログラムが送信元の引受サーバにより実行可能であった場合に、処理プログラムを実行する
請求項１記載のシステム。
【請求項１７】
前記複数の引受サーバの各々において、
前記入力データ受渡部は、更新された前記入力データ又は前記実行指示情報の電子署名を作成し、作成した当該電子署名を、電子署名の対象である当該入力データ及び当該実行指示情報に更に対応付けて送信し、
入力データ、実行指示情報、及び電子署名を受信した引受サーバにおいて、
前記処理プログラム実行部は、前記電子署名が正しく検証された場合に処理プログラムを実行する
請求項１記載のシステム。
【請求項１８】
利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管理する管理サーバであって、
前記複数の引受サーバの各々は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行することにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部を有し、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部と、
を備える管理サーバ。
【請求項１９】
管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する引受サーバであって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部を有し、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行することにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される他の引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と
を備える引受サーバ。
【請求項２０】
利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管理する管理サーバを制御する制御方法であって、
前記複数の引受サーバの各々は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行することにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される他の引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部を有し、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成段階と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送信する入力データ送信段階と
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部に格納する段階と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応段階と、
を備える制御方法。
【請求項２１】
管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する引受サーバを制御する制御方法であって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部を有し、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行することにより前記入力データを更新する処理プログラム実行段階と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される他の引受サーバを選択する引受サーバ選択段階と、
前記引受サーバ選択段階において選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡段階と、
を備える制御方法。
【請求項２２】
利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバを管理する管理サーバとして、コンピュータを機能させる制御プログラムであって、
前記複数の引受サーバの各々は、
受信した入力データを入力として、割り当てられた前記処理プログラムを実行することにより、前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される他の引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と
を有し、
前記コンピュータを、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、当該入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部と
して機能させる制御プログラム。
【請求項２３】
管理サーバにより管理され、利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムを実行する引受サーバとして、コンピュータを機能させる制御プログラムであって、
前記管理サーバは、
前記複数の処理プログラムの各々を識別する識別情報と、前記複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、
前記ジョブに入力される入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、前記入力データと前記実行指示情報とを対応付けて送信する入力データ送信部と、
複数の処理プログラムの各々を識別する識別情報と、当該処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する引受サーバ情報格納部と、
前記引受サーバから問合せを受けたことに応じて、次に実行するべき処理プログラムの識別情報に対応する引受サーバの識別情報を、前記引受サーバ情報格納部から取得して、前記問合せに対する返信として送信する問合対応部を有し、
前記コンピュータを、
受信した前記入力データを入力として、割り当てられた前記処理プログラムを実行することにより前記入力データを更新する処理プログラム実行部と、
前記入力データに対応付けて受信した実行指示情報に基づいて、更新された前記入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを前記管理サーバに問合せ、問合せ結果の識別情報により識別される他の引受サーバを選択する引受サーバ選択部と、
前記引受サーバ選択部により選択された前記引受サーバに、受信した前記実行指示情報と更新された前記入力データとを対応付けて送信する入力データ受渡部と
して機能させる制御プログラム。
【請求項２４】
請求項２２又は請求項２３記載の制御プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体に関する。特に、本発明は、管理サーバにより管理された複数の引受サーバが協調して、要求されたジョブを処理するグリッドコンピューティングシステム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年、ネットワークで接続された複数のコンピュータが、ジョブに含まれる複数のステップ（処理部分）の何れかをそれぞれ処理することにより、ジョブを効率的に実行するグリッドコンピューティングが注目されている。グリッドコンピューティングによると、ジョブの依頼者は、ジョブの一部を処理するプログラムと、ジョブの処理に必要なデータとの組を、複数のコンピュータの各々に送信する。そして、複数のコンピュータの各々は、受け取ったデータを入力として、受け取ったプログラムを実行し、実行結果を依頼者に返信する。ジョブの依頼者は、返信された実行結果の各々を結合して、ジョブの結果を得る。これにより、ジョブに必要な計算処理量が膨大な場合であっても、ジョブの一部ずつを並列して複数のコンピュータにより実行させることにより、ジョブを効率的に完了させることができる。
非特許文献１には、グリッドコンピューティングシステムの一例が説明されている。
【非特許文献１】「情報処理」  社団法人情報処理学会発行、２００３年発行、Vol.44、特集「PCグリッドの現在と展望」
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記のグリッドコンピューティングによると、ジョブの依頼者のサーバのみが、複数のコンピュータの各々にプログラム及びデータを送信する。従って、依頼先のコンピュータの数に応じて、依頼者のサーバの負荷が増大すると共に、依頼者のサーバへネットワークトラフィックが集中する。このため、多くのコンピュータにより効率的にジョブを完了させるには、多くの費用をかけて依頼者のサーバの設備を増強しなければならなかった。【０００４】
そこで本発明は、上記の課題を解決することのできるグリッドコンピューティングシステム、管理サーバ、引受サーバ、制御方法、制御プログラム、及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、利用者の要求するジョブに含まれる複数のステップを処理する複数の処理プログラムのうち、割り当てられた処理プログラムをそれぞれ実行する複数の引受サーバと、複数の引受サーバを管理する管理サーバとを備えたシステムであって、管理サーバは、複数の処理プログラムの各々を識別する識別情報と、複数の処理プログラムの実行順序とを含む実行指示情報を生成する実行指示情報生成部と、入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバに、入力データと実行指示情報とを対応付けて送信する入力データ送信部とを有し、複数の引受サーバの各々は、受信した入力データを入力として割り当てられた前記処理プログラムを実行することにより入力データを更新する処理プログラム実行部と、入力データに対応付けて受信した実行指示情報に基づいて、更新された入力データを入力として次に実行するべき処理プログラムを実行させる引受サーバを選択する引受サーバ選択部と、引受サーバ選択部により選択された引受サーバに、受信した実行指示情報と更新された入力データとを対応付けて送信する入力データ受渡部とを有するシステム、当該システムの引受サーバ及び管理サーバ、当該引受サーバ又は管理サーバを制御する制御方法、当該引受サーバ又は管理サーバを制御する制御プログラム、及び制御プログラムを記録した記録媒体を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【０００６】
本発明によれば、より多くのコンピュータを結合してグリッドコンピューティングシステムを構築することができる。
【発明を実施するための最良の形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。【０００８】
図１は、グリッドコンピューティングシステム１０の機能ブロック図である。グリッドコンピューティングシステム１０は、ＬＡＮ、ＷＡＮ、又はインターネット等のネットワークにより互いに接続された、管理サーバ２０と、利用者端末４０と、引受サーバ５０−１〜Ｎとを備える。利用者端末４０は、例えば、パーソナル・コンピュータ等の端末であり、既存のグリッドコンピューティングシステムにおけるジョブの依頼者の端末と同様の構成により実現されてもよい。そして、引受サーバ５０−１〜Ｎの各々には、ジョブに含まれる複数の処理部分を処理する複数の処理プログラムのうち、割り当てられた処理プログラムが予めインストールされて起動されている。データベース５５−１〜Ｎの各々には、例えば同一のデータが予め格納されている。【０００９】
まず、利用者端末４０は、利用者からの指示を受けて、管理サーバ２０にジョブを要求する。管理サーバ２０は、ジョブに入力される入力データと、複数の処理プログラムの実行順序等を示す実行指示情報との組を、送信用データ３０として引受サーバ５０−１に送る。引受サーバ５０−１は、受け取った実行指示情報に基づいて、管理サーバ２０から受け取った入力データを入力として処理プログラムを実行し、入力データを更新する。引受サーバ５０−１は、更新した入力データと、実行指示情報との組とを、送信用データ３０として引受サーバ５０−２に送信する。【００１０】
この際、引受サーバ５０−１は、入力データの次の送信先を、制御用データにより管理サーバ２０に問合せてもよい。また、処理の内容によっては、引受サーバ５０−１は、データベース５５−１に格納されたデータにアクセスしてもよい。以降同様に、引受サーバ５０−２〜（Ｎ−１）の各々は、入力データを入力として処理プログラムを順次実行する。最後に、引受サーバ５０−Ｎは、全ての処理プログラムの実行が完了した完了通知を管理サーバ２０に送る。管理サーバ２０は、受け取った完了通知を利用者端末４０に転送する。【００１１】
このように、本実施例に係るグリッドコンピューティングシステム１０によると、各引受サーバは、処理プログラムを送信することなく、処理に必要なデータのみを送信する。この結果、多数のジョブが多数の利用者端末４０等から入力された場合であっても、各ジョブの一部ずつをパイプライン方式で実行することにより、ジョブを効率的に実行することができる。【００１２】
図２は、管理サーバ２０の機能ブロック図である。管理サーバ２０は、実行指示情報生成部２００と、入力データ送信部２１０と、引受サーバ情報格納部２２０と、問合対応部２３０と、処理プログラム起動部２４０と、障害発生通知送信部２５０と、引受サーバ変更部２６０と、削除指示部２７０とを有する。実行指示情報生成部２００は、ジョブの要求を利用者端末４０から受けると、ジョブに含まれる複数の処理部分を処理する複数の処理プログラムの各々を識別する識別情報と、その複数の処理プログラムの実行順序とを含む実行指示情報を生成する。そして、実行指示情報生成部２００は、生成した実行指示情報を、ジョブに入力するべき入力データと共に入力データ送信部２１０に送る。【００１３】
入力データ送信部２１０は、入力データを入力として最初に実行するべき処理プログラムを実行する引受サーバ、例えば引受サーバ５０−１に、入力データと実行指示情報とを対応付けて送信する。この際、入力データ送信部２１０は、最初に実行するべき処理プログラムを実行する引受サーバを、引受サーバ情報格納部２２０に格納されている情報に基づいて選択してもよい。【００１４】
引受サーバ情報格納部２２０は、複数の処理プログラムの各々を識別する識別情報と、その処理プログラムを実行する引受サーバの識別情報とを対応付けて格納する。更に、引受サーバ情報格納部２２０は、各引受サーバの識別情報に対応付けて、その引受サーバが新たに入力データを受信して処理プログラムを実行可能な実行可能状態か否かを示す実行可否情報を格納する。また、引受サーバ情報格納部２２０は、各引受サーバの識別情報に対応付けて、その引受サーバが入力データを受信した時刻を対応付けて更に格納してもよいし、その引受サーバの最大処理量及び計算資源の使用率を対応付けて更に格納してもよい。【００１５】
問合対応部２３０は、引受サーバ５０−１〜Ｎの何れかから、所定の処理プログラムを実行する引受サーバの問合せを受けた場合に、問合せを受けた処理プログラムの識別情報に対応する引受サーバの識別情報を引受サーバ情報格納部２２０から取得して、その問合せに対する返信として送信する。処理プログラム起動部２４０は、所定の条件が満たされる場合に、実行指示情報生成部２００により生成された実行指示情報に基づいて、入力データを入力として２回目以降に実行するべき処理プログラムの各々を検出し、検出した処理プログラムの各々を、入力データ送信部２１０の送信先とは異なる引受サーバの何れかにおいて起動する。【００１６】
具体的には、処理プログラム起動部２４０は、２回目以降に実行するべき当該処理プログラムを実行する引受サーバが所定の基準台数より少ないという条件、又は、そのような引受サーバが１台も検出できないという条件が満たされる場合に、処理プログラムを起動してもよい。また、処理プログラム起動部２４０は、問合対応部２３０が問い合わせを受けた処理プログラムについて、その処理プログラムを実行する複数の引受サーバのうち、予め定められた基準割合を超える数の引受サーバが実行可能状態でない場合に、その処理プログラムを起動していない引受サーバの何れかにおいてその処理プログラム起動してもよい。
これにより、次の処理プログラムを予め準備できるので、ジョブの処理を中断されにくくすることができる。なお、これらの処理に伴い、処理プログラム起動部２４０は、引受サーバ情報格納部２２０のデータを更新してもよい。【００１７】
障害発生通知送信部２５０は、何れかの引受サーバから受信通知を受信してから予め定められた基準処理時間内に、その引受サーバから終了通知を受信したか否かを、引受サーバ情報格納部２２０に格納された情報に基づいて判断する。そして、障害発生通知送信部２５０は、基準処理時間内に受信できなかった場合に、当該引受サーバに入力データ等を送信した送信元の引受サーバに、当該引受サーバにおいて処理プログラムの実行に障害が発生した旨を示す障害発生通知を送信する。【００１８】
引受サーバ変更部２６０は、複数の引受サーバの何れかが処理プログラムを実行することにより使用する計算資源の使用率が、予め定められた基準使用率より低いか否かを、引受サーバ情報格納部２２０に格納されたデータに基づいて判断する。そして、引受サーバ変更部２６０は、何れかの引受サーバにおいて計算資源の使用率が基準使用率より低い場合に、最大処理量がその引受サーバより小さい他の引受サーバに実行させるように、引受サーバ５０−１〜Ｎを設定する。これに伴い、引受サーバ変更部２６０は、引受サーバ情報格納部２２０内のデータを更新する。【００１９】
削除指示部２７０は、最後に処理プログラムを実行した引受サーバ５０−Ｎから完了通知を受けた場合に、複数の処理プログラムの全てが実行されることによりジョブが完了したと判断する。そしてこの場合、削除指示部２７０は、その複数の引き受けサーバの各々から、そのジョブの実行の過程で格納された入力データ及び実行指示情報を削除させる。これに代えて、削除指示部２７０は、これらの入力データ及び実行指示情報が不要である旨を通知するのみであってもよい。この場合、この通知を受けた引受サーバは、不要な入力データ及び実行指示情報を定期的に検出して削除してもよい。【００２０】
図３は、送信用データ３０のデータ構造の一例を示す。（ａ）は、送信用データ３０のデータ構造の概要を示す。送信用データ３０は、本体部分と、ヘッダ部分とを含む。そして、送信用データ３０は、本体部分に入力データを含み、ヘッダ部分に実行指示情報３００を含む。このように、入力データ送信部２１０は、実行指示情報３００を入力データのヘッダ部分に格納することにより、入力データ及び実行指示情報３００を対応付けて送信してもよい。【００２１】
更に、好ましくは、送信用データ３０は、実行指示情報３００が示す処理プログラムのうち、既に実行を終えた処理プログラムを示す処理済フラグを、ヘッダ部分に含む。これにより、送信用データ３０を受け取った引受サーバ５０−１等は、複数の処理プログラムを実行可能な場合であっても、次にどの処理プログラムを実行するべきかを適切に判断できる。更に、送信用データ３０は、処理済フラグに加えて、各処理プログラムの終了状態、例えば正常終了若しくは異常終了した旨、又はエラーコード等を示す情報を格納してもよい。これにより、障害発生時に障害の原因を調査しやすくすることができる。【００２２】
これに代えて、送信用データ３０は、既に実行を終えた処理プログラムの識別情報を有しておらず、未だ実行されていない処理プログラムの識別情報のみを有していてもよい。即ち、引受サーバ５０−１等は、既に実行を終えた処理プログラムの識別情報を送信用データ３０から削除してもよい。これにより、送信用データ３０のデータサイズを減少させることができる。【００２３】
（ｂ）は、実行指示情報３００の一例を示す。実行指示情報３００は、ジョブを識別する情報であるJOBを１行目に含む。そして、実行指示情報３００は、第１のステップとし
て、識別情報がプログラムAである処理プログラムを実行するべき旨の指示を２行目に含
む。更に、実行指示情報３００は、プログラムAの実行に用いるファイルを示す情報を、
３行目及び４行目に含む。これらのファイルは、例えば、データベース５５−１〜Ｎ等に格納されているファイルである。【００２４】
実行指示情報３００は、第２のステップとして、識別情報がプログラムAである処理プ
ログラムを実行するべき旨の指示を２行目に含む。第１のステップと同様に、実行指示情報３００は、プログラムBの実行に用いるファイルを示す情報を、６行目及び７行目に含
む。なお、実行指示情報３００は、例えば、ワークフロースクリプト又はJCL(Job Control Language)等の書式により記述されていてもよい。【００２５】
ここで、処理プログラムとは、例えば、コンピュータのオペレーティングシステムで１つの実行可能ファイルとして取扱われるプログラムである。これに代えて、又はこれに加えて、処理プログラムとは、実行可能ファイル及び実行時に動的に読み込まれるライブラリファイルの組み合わせであってもよい。更に、処理プログラムとは、所定のプログラムが実行されることにより起動されるプロセス又はスレッドであってもよいし、所定のプログラム中に記述された少なくとも１つの関数、手続、メソッド、又はステップであってもよい。【００２６】
このように、実行指示情報３００は、処理プログラムの各々の識別情報、例えばプログラムA及びプログラムBと、これらの実行順序とを含んでいる。これにより、送信用データ３０を受け取った引受サーバは、実行するべき処理プログラムを適切に選択できるのみならず、次に実行するべき処理プログラムを適切に選択することができる。【００２７】
なお、実行指示情報３００は、本図に示したデータの他に、ジョブの完了に必要な種々の情報を含んでいてもよい。例えば、実行指示情報３００は、各処理プログラムが参照すべきデータベースの識別情報を更に含んでいてもよいし、全ての処理プログラムが実行された場合にその旨を通知するべき通知先を示す情報を更に含んでいてもよい。【００２８】
図４は、引受サーバ情報格納部２２０のデータ構造の一例を示す。引受サーバ情報格納部２２０は、各引受サーバの識別情報である引受サーバＩＤと、その引受サーバにインストールされて実行される処理プログラムの識別情報(ID)とを対応付けて格納する。更に、引受サーバ情報格納部２２０は、引受サーバＩＤに対応付けて、その引受サーバで処理中の入力データの数を示す処理数と、その引受サーバが他の引受サーバから入力データを受信した受信通知を最後に受信した時刻とを格納する。【００２９】
ここで、引受サーバにおいて処理中の入力データの数とは、その引受サーバで実際に実行されている処理プログラムが入力とする入力データのみならず、その引受サーバに受信されたものの処理待ちで未処理である入力データの数をも含む。また、受信通知を最後に受信した時刻とは、受信通知を受信したものの、その受信通知に対応する終了通知を受け取っていない場合における受信通知の受信時刻をいう。これにより、障害発生通知送信部２５０は、各引受サーバから受信通知を受信してから終了通知を受信しないまま経過した時間を計測することができる。【００３０】
更に、引受サーバ情報格納部２２０は、各引受サーバＩＤに対応付けて、その引受サーバが新たに入力データを受信して処理プログラムを実行可能な実行可能状態か否かを示す実行可否情報を格納する。ここで、例えば、引受サーバ情報格納部２２０は、各引受サーバが許容する処理待ちの入力データの数と、その引受サーバで処理中の入力データとに基づいて、各引受サーバが実行可能状態か否かを判断して格納してもよい。例えば、ある引受サーバ（例えば、NodeBB）が許容する処理待ちの入力データの数が１つであり、その引受サーバで処理中の入力データの数が２つである場合には、引受サーバ情報格納部２２０は、その引受サーバを実行可能状態でないと判断し、その旨の実行可否情報を格納する。【００３１】
また、引受サーバ情報格納部２２０は、各引受サーバＩＤに対応付けて、その引受サーバの最大処理量及び計算資源の使用率を対応付けて更に格納してもよい。ある引受サーバの最大処理量とは、例えば、その引受サーバのＣＰＵの動作周波数であってもよいし、そのＣＰＵの種類であってもよいし、そのＣＰＵが単位時間あたりに処理可能なインストランクションの数であってもよい。これに加えて、最大処理量とは、その引受サーバのハードディスクドライブのアクセス速度若しくは容量、又は、その引受サーバのメモリのアクセス速度若しくは容量等により定まる値であってもよい。【００３２】
また、ある引受サーバにおける計算資源の使用率とは、例えば、所定の基準時間に対する、その基準時間内にその引受サーバのＣＰＵが処理プログラムを実行している時間の割合である。これに代えて、使用率とは、メモリ又はハードディスクの占有率であってもよい。【００３３】
図５は、引受サーバ５０−２の機能ブロック図である。引受サーバ５０−２は、処理プログラム実行部５００と、引受サーバ選択部５１０と、キャッシュ部５２０と、入力データ受渡部５３０と、履歴格納部５４０と、障害発生判断部５５０と、変更復元部５６０とを有する。本図においては、引受サーバが、他の引受サーバから受信した入力データを更新し、更に他の引受サーバに受け渡す処理を説明するべく、引受サーバ５０−２について説明する。なお、引受サーバ５０−１及び引受サーバ５０−３〜Ｎの各々は、本図に示す引受サーバ５０−２と略同一の構成を取るので、説明を省略する。【００３４】
処理プログラム実行部５００は、実行可能状態である場合に引受サーバ５０−１から入力データを受信すると、割り当てられた処理プログラムを例えばデータベース５５−２から取得して、受信した入力データを入力として実行する。そして、処理プログラム実行部５００は、処理プログラムの実行により入力データを更新し、更新した入力データを入力データ受渡部５３０に送る。また、処理プログラム実行部５００は、処理プログラムの実行により、データベース５５−２のデータを参照してもよいし、データベース５５−２のデータを更新してもよい。【００３５】
なお、データベース５５−１〜Ｎの各々は、互いに異なるデータを格納してもよいし、同一のデータを格納するクローンデータベースであってもよい。そしてこの場合、処理プログラム実行部５００は、データベースの一貫性を保持する既存のシステムにより、データベース５５−２に対するデータの更新を、他のデータベース、例えばデータベース５５−１及びデータベース５５−３〜Ｎに反映してもよい。これにより、データベースの全てのデータを入力データとして送信する必要がなく、更新した部分のみが送信されるので、効率がよい。【００３６】
一方、処理プログラム実行部５００は、実行可能状態でない場合に引受サーバ５０−１から入力データを受信すると、新たに入力データを受け取れないと判断する。そして、処理プログラム実行部５００は、入力データを拒絶する旨の拒絶通知を、入力データ及び実行指示情報の送信元の引受サーバ５０−１に送信する。また、処理プログラム実行部５００は、最後に入力データを受信してから予め定められた基準待機時間内に、入力データ及び実行指示情報を受信しなかった場合に、引受サーバ５０−２における処理プログラムの実行を中止し、その旨を管理サーバ２０に通知する。更に、処理プログラム実行部５００は、処理プログラムの実行を中止する旨を管理サーバ２０から指示された場合にも、処理プログラムの実行を中止する。【００３７】
引受サーバ選択部５１０は、引受サーバ５０−１から実行指示情報を入力データに対応付けて受信する。そして、引受サーバ選択部５１０は、受信したその実行指示情報に基づいて、処理プログラム実行部５００により更新された入力データを入力として次に実行するべき処理プログラムを実行させる引受サーバを選択する。例えば、引受サーバ選択部５１０は、更新された入力データを入力として次に実行するべき処理プログラムを実行する引受サーバの識別情報を、管理サーバ２０に問合せ、問合せ結果の識別情報により識別される引受サーバを選択する。より具体的には、キャッシュ部５２０は、引受サーバ選択部５１０が過去に管理サーバ２０の問合対応部２３０に問合せた結果取得した引受サーバの識別情報を、当該引受サーバが実行する処理プログラムの識別情報に対応付けてキャッシュしている。【００３８】
そして、引受サーバ選択部５１０は、その処理プログラムを実行する引受サーバの識別情報がキャッシュ部５２０によりキャッシュされていない場合に、その処理プログラムを実行する引受サーバを管理サーバ２０の問合対応部２３０に問合せる。一方、引受サーバ選択部５１０は、その処理プログラムを実行する引受サーバの識別情報がキャッシュ部５２０によりキャッシュされている場合に、識別情報のキャッシュされたその引受サーバを選択する。また、引受サーバ選択部５１０は、障害発生判断部５５０により障害が発生したと判断された場合に、更新された入力データを入力として次に実行するべき処理プログラムを実行する他の引受サーバを再選択する。本図では、引受サーバ選択部５１０が、引受サーバ５０−（Ｎ−１）を選択した場合について説明する。【００３９】
続いて、入力データ受渡部５３０は、引受サーバ選択部５１０により選択された引受サーバ５０−（Ｎ−１）に、受信した実行指示情報と更新された入力データとを対応付けて送信する。そして、入力データ受渡部５３０は、送信した入力データ及び実行指示情報を履歴格納部５４０に格納する。そして、入力データ受渡部５３０は、引受サーバ５０−（Ｎ−１）から拒絶通知を受けた場合に、その旨を障害発生判断部５５０に送る。この場合、入力データ受渡部５３０は、入力データ及び実行指示情報を履歴格納部５４０から取得して、引受サーバ選択部５１０により選択された他の引受サーバに送信する。【００４０】
履歴格納部５４０は、上記のように、入力データ受渡部５３０により引受サーバに送信された入力データ及び実行指示情報の履歴を格納する。更に、履歴格納部５４０は、処理プログラム実行部５００が処理プログラムを実行することにより変更した引受サーバ５０−２上のデータの履歴情報を、その変更を復元可能な情報に対応付けて格納する。ここで、引受サーバ５０−２上のデータとは、例えば、データベース５５−２に格納されているデータをいう。更に、引受サーバ５０−２上のデータとは、引受サーバ５０−２のみにより管理されているデータのみならず、ネットワーク・ファイル・システム又は共有ファイルシステムにより、他のサーバ装置と共有されている記憶装置のデータを含む。【００４１】
障害発生判断部５５０は、障害発生通知を管理サーバ２０から受けると、入力データ受渡部５３０が更新された入力データ及び実行指示情報を送信した送信先の引受サーバにおいて、処理プログラムの実行に障害が発生したと判断する。他の例として、障害発生判断部５５０は、引受サーバ５０−（Ｎ−１）から拒絶通知を受けた旨を入力データ受渡部５３０から通知された場合に、引受サーバ５０−（Ｎ−１）において、処理プログラムの実行に障害が発生したと判断する。そして、障害発生判断部５５０は、障害の発生したジョブが、障害を回避して再試行可能な種類である場合には、他の引受サーバを選択する旨を引受サーバ選択部５１０に通知し、当該種類でない場合には、処理プログラム実行部５００によるデータの変更を元に戻す旨の復元指示を変更復元部５６０に通知する。【００４２】
変更復元部５６０は、障害発生判断部５５０からの通知に基づいて、処理プログラム実行部５００が変更したデータ、例えばデータベース５５−２内のデータを、履歴格納部５４０の履歴情報に基づいて復元する。
以上、本図に示すように、引受サーバ５０−２は、受信した入力データを入力として、予めインストールされ起動されている処理プログラムを実行すると共に、次に実行するべき処理プログラムを実行する引受サーバを選択し、その引受サーバに入力データを送信する。これにより、管理サーバ２０における、処理プログラム及び入力データを送受信する負荷を軽減することができる。【００４３】
以降、図６から図９を用いて、本実施例のグリッドコンピューティングシステム１０において、管理サーバ２０が引受サーバ５０−１〜Ｎの各々に処理プログラムを実行させる４つの例について説明する。なお、図６から図９において、入力データ及び実行指示情報又は完了通知を点線で示し、その他の制御用データを一点破線で示す。【００４４】
図６は、正常動作時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第１例）。利用者端末４０は、管理サーバ２０に対してジョブを要求する（Ｓ６００）。そして、管理サーバ２０は、実行指示情報を入力データのヘッダ部分に格納して、引受サーバ５０−１に送信する（Ｓ６１０）。なお、管理サーバ２０は、入力データを入力として２回目以降に実行するべき処理プログラムの各々を検出し、検出した処理プログラムを、引受サーバ５０−１とは異なる引受サーバ、例えば引受サーバ５０−Ｎにおいて起動してもよい。【００４５】
引受サーバ５０−１は、入力データを受信すると、受信通知を管理サーバ２０に送信する（Ｓ６２０）。そして、引受サーバ５０−１は、受信した入力データを入力として処理プログラム（例えば、プログラムＡ）を実行することにより入力データを更新する。処理プログラムの実行が終了すると、引受サーバ５０−１は、終了通知を管理サーバ２０に送信する。【００４６】
続いて、引受サーバ５０−１は、次に実行するべき処理プログラムを実行する引受サーバを、必要に応じて管理サーバ２０に問合せることにより選択する。引受サーバ５０−１は、選択した引受サーバ５０−２に、入力データ及び実行指示情報を送信する。管理サーバ２０は、引受サーバ５０−１から問合せを受けた場合に、問合せを受けた処理プログラムの識別情報に対応する引受サーバの識別情報を、引受サーバ５０−１に返信する（Ｓ６３０）。【００４７】
引受サーバ５０−２は、入力データを受信すると、受信通知を管理サーバ２０に送信する（Ｓ６４０）。そして、引受サーバ５０−２は、受信した入力データを入力として処理プログラム（例えば、プログラムＢ）を実行することにより入力データを更新する。処理プログラムの実行が終了すると、引受サーバ５０−２は、終了通知を管理サーバ２０に送信する。【００４８】
続いて、引受サーバ５０−２は、次に実行するべき処理プログラムを実行する引受サーバを、必要に応じて管理サーバ２０に問合せることにより選択する。引受サーバ５０−２は、選択した引受サーバに、入力データ及び実行指示情報を送信する。管理サーバ２０は、引受サーバ５０−２から問合せを受けた場合に、問合せを受けた処理プログラムの識別情報に対応する引受サーバの識別情報を、引受サーバ５０−２に返信する（Ｓ６５０）。  【００４９】
続いて、引受サーバ５０−２により送信された入力データ及び実行指示情報が、複数の引受サーバを順次経由して、引受サーバ５０−Ｎに到達した場合について説明する。
引受サーバ５０−Ｎは、受信した入力データを入力として処理プログラム（例えば、プログラムＸ）を実行することにより入力データを更新する（Ｓ６６０）。引受サーバ５０−Ｎは、ジョブを処理する全ての処理プログラムの実行が完了した旨を示す完了通知を管理サーバ２０に返信する。【００５０】
管理サーバ２０は、受信した完了通知を利用者端末４０に転送する（Ｓ６７０）。そして、管理サーバ２０は、複数の引受サーバにおける履歴格納部から、入力データ及び実行指示情報を削除させる削除指示を、引受サーバ５０−１〜Ｎの各々に送信する。
なお、本図で示したデータの送受信の他に、引受サーバ５０−１〜Ｎの各々は、処理プログラムを実行することにより計算資源を使用する使用率を示す情報を、管理サーバ２０に定期的に送信してもよい。【００５１】
図７は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第２例）。本図のＳ６００、Ｓ６１０、Ｓ６２０、及びＳ６３０における処理は、図６の同一符号のステップにおける処理と略同一であるので説明を省略する。Ｓ６４０において、引受サーバ５０−２は、実行可能状態でないか、又は、処理プログラムの実行に障害が発生した場合に、入力データを拒絶する旨の拒絶通知を引受サーバ５０−１に送信する（Ｓ６４０）。【００５２】
引受サーバ５０−１は、入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを再選択する（Ｓ７００）。例えば、引受サーバ５０−１は、引受サーバ５０−Ｎを選択する。そして、引受サーバ５０−１は、入力データ及び実行指示情報を履歴格納部から取得して、引受サーバ５０−Ｎに再送する。これを受けて、引受サーバ５０−Ｎは、受信した入力データを入力として処理プログラムを実行することにより入力データを更新する（Ｓ６６０）。そして、引受サーバ５０−Ｎは、次に実行するべき処理プログラムを実行する引受サーバを、必要に応じて管理サーバ２０に問合せることにより選択する。Ｓ７１０における処理は、Ｓ６３０における処理と略同一であるので説明を省略する。【００５３】
図８は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第３例）。本図のＳ６００、Ｓ６１０、Ｓ６２０、Ｓ６３０、Ｓ６６０、及びＳ７００における処理は、図７の同一符号のステップにおける処理と略同一であるので説明を省略する。本図では、図７と異なり、Ｓ６４０において処理プログラムの実行に障害が発生し、かつ引受サーバ５０−２が、拒絶通知を引受サーバ５０−１に送信できなかった場合について説明する。【００５４】
管理サーバ２０は、引受サーバ５０−２から最後に受信通知を受信してから基準処理時間内に、引受サーバ５０−２から終了通知を受信できなかった場合に、引受サーバ５０−２において処理プログラムの実行に障害が発生したと判断する（Ｓ８００）。そして、管理サーバ２０は、その旨を示す障害発生通知を、引受サーバ５０−２に入力データを送信した送信元、即ち引受サーバ５０−１に送信する。【００５５】
引受サーバ５０−１は、入力データを入力として次に実行するべき処理プログラムを実行させる他の引受サーバを再選択する（Ｓ７００）。例えば、引受サーバ５０−１は、引受サーバ５０−Ｎを選択する。そして、引受サーバ５０−１は、入力データ及び実行指示情報を履歴格納部から取得して、引受サーバ５０−Ｎに再送する。なお、Ｓ７１０における処理は、Ｓ６３０における処理と略同一であるので説明を省略する。【００５６】
図９は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第４例）。本図のＳ６００、Ｓ６１０、Ｓ６２０、Ｓ６３０、Ｓ６４０、及びＳ６５０における処理は、図６の同一符号のステップにおける処理と略同一であるので説明を省略する。本図は、Ｓ６６０における処理プログラムの実行に障害が発生した場合について説明する。【００５７】
管理サーバ２０は、引受サーバ５０−Ｎから最後に受信通知を受信してから基準処理時間内に、引受サーバ５０−Ｎから終了通知を受信できなかった場合に、引受サーバ５０−Ｎにおいて処理プログラムの実行に障害が発生したと判断する（Ｓ８００）。そして、管理サーバ２０は、実行中のジョブが、障害を回避して再試行可能な種類でない場合には、引受サーバ５０−Ｎ以前にそのジョブの処理プログラムを実行した全ての引受サーバに対して、処理プログラムの実行による変更を復元する復元指示を送る。【００５８】
引受サーバ５０−１の変更復元部５６０は、この復元指示を受けると、入力データ受渡部５３０が更新された入力データ等を送信した送信先の何れかの引受サーバ、例えば引受サーバ５０−２〜Ｎの何れかに障害が発生したと判断する。そして、変更復元部５６０は、処理プログラム実行部５００が変更したデータを、履歴格納部５４０の履歴情報に基づいて復元する（Ｓ９００）。【００５９】
同様に、引受サーバ５０−２の変更復元部５６０は、この復元指示を受けると、処理プログラム実行部５００が変更したデータを、履歴格納部５４０の履歴情報に基づいて復元する（Ｓ９１０）。これにより、変更すべきデータの一部のみが変更され、データベース５５−１又はデータベース５５−２等のデータの一貫性が失われる事態を防ぐことができる。【００６０】
以降、図１０から図１６を用いて、図６から図９において説明した管理サーバ２０及び引受サーバ５０−１〜Ｎの処理の詳細を説明する。なお、図６から図９と同様に、入力データ及び実行指示情報又は完了通知を点線で示し、その他の制御用データを一点破線で示す。【００６１】
図１０は、Ｓ６１０の動作の詳細を示す。管理サーバ２０は、利用者端末４０からジョブの要求を受ける毎に、以下の処理を行う。まず、実行指示情報生成部２００は、実行指示情報を生成する（Ｓ１０００）。そして、処理プログラム起動部２４０は、実行指示情報に基づいて、入力データを入力として２回目以降に実行するべき処理プログラムを検出し、何れかの引受サーバにおいてその処理プログラムが既に起動されているか否か判断する（Ｓ１０１０）。【００６２】
引受サーバが１台も起動されていない場合に（Ｓ１０１０：ＮＯ）、処理プログラム起動部２４０は、その処理プログラムを起動する旨の指示を、例えば引受サーバ５０−Ｎに送る（Ｓ１０２０）。この場合、処理プログラム起動部２４０は、新たに処理プログラムを起動させる引受サーバの識別情報を、その処理プログラムの識別情報に対応付けて、引受サーバ情報格納部２２０に格納する。【００６３】
これに代えて、処理プログラム起動部２４０は、過去に実行したジョブの情報に更に基づいて、以下の処理により、処理プログラムを新たに起動するか否か判断してもよい。具体的には、処理プログラム起動部２４０は、各引受サーバの処理プログラム実行部５００に、処理プログラムを実行させる毎に、その処理プログラムの実行に要した処理量を通知させる。この通知に基づいて、処理プログラム起動部２４０は、過去に受けたジョブの要求の種類に、その種類のジョブに含まれる複数の処理部分を処理する複数の処理プログラムの実行に要した処理量を対応付けて管理する。【００６４】
そして、処理プログラム起動部２４０は、ジョブの要求を受ける毎に、過去にその種類のジョブが実行された時に各処理プログラムの実行に要した処理量が、既にその処理プログラムを起動している引受サーバが処理可能な最大処理量を超える場合に、他の引受サーバにおいて処理プログラムを新たに起動する。これにより、不足する恐れのある処理プログラムを予め起動し、ジョブを円滑に完了できる。更に他の例として、処理プログラム起動部２４０は、ジョブの処理内容に基づいて、各処理プログラムの実行に要する処理量が、既にその処理プログラムを起動している引受サーバが処理可能な最大処理量を超えるか否かを判断してもよい。具体的には、処理プログラム起動部２４０は、処理プログラム毎に予め定められている処理量に基づいて判断してもよいし、処理プログラムの実行内容を解析する処理を行ってもよい。【００６５】
続いて、実行指示情報生成部２００は、生成した実行指示情報を、ジョブに入力するべき入力データのヘッダ部分に格納することにより送信用データを生成し、例えば引受サーバ５０−１に送信する（Ｓ１０３０）。【００６６】
図１１は、Ｓ６２０の動作の詳細を示す。引受サーバ５０−１は、処理プログラムを起動している場合に、定期的に以下の処理を行う。まず、処理プログラム実行部５００は、送信用データを受信したか否か判断する（Ｓ１１００）。受信していない場合に（Ｓ１１００：ＮＯ）、処理プログラム実行部５００は、最後に送信用データを受信してから基準待機時間が経過したか否か判断する（Ｓ１１１０）。【００６７】
基準待機時間が経過した場合、即ち、最後に送信用データを受信してから基準待機時間内に次の送信用データを受信できなかった場合に（Ｓ１１１０：ＹＥＳ）、処理プログラム実行部５００は、処理プログラムを停止し（Ｓ１１２０）、処理プログラムを停止した旨を管理サーバ２０に通知し（Ｓ１１３０）、処理を終了する。一方、処理プログラム実行部５００は、送信用データを受信した場合に（Ｓ１１００：ＹＥＳ）、引受サーバ５０−１が実行可能状態か否か判断する（Ｓ１１４０）。実行可能状態でない場合に（Ｓ１１４０：ＮＯ）、処理プログラム実行部５００は、拒絶通知を管理サーバ２０に返信する（Ｓ１１５０）。ここで、実行可能状態の場合とは、処理待ち状態の入力データが所定以上である場合のみならず、引受サーバ５０−１が既に処理プログラムＡの実行を中止した場合も含む。【００６８】
これに加えて、処理プログラム実行部５００は、以下の処理により拒絶通知を管理サーバ２０に返信してもよい。具体的には、処理プログラム実行部５００は、受信した実行指示情報に基づいて、受信した入力データを入力として既に実行されているべき処理プログラムを検出する。そして、処理プログラム実行部５００は、検出したその処理プログラムが、入力データの送信元の引受サーバにより実行可能でなかった場合に、拒絶通知を返信する。例えば、処理プログラム実行部５００は、検出したその処理プログラムが、入力データの送信元の引受サーバにより現在実行可能でない場合に、その引受サーバが入力データの送信時にもその処理プログラムを実行可能でなかったものと判断してもよい。【００６９】
更にこれに加えて、処理プログラム実行部５００は、入力データと共に受け取った電子書名の検証に失敗した場合に、拒絶通知を返信してもよい。これにより、送信元の引受サーバが正当な引受サーバに成りすます不正行為を防止することができる。【００７０】
当該引受サーバが実行可能状態であり、検出したその処理プログラムが、入力データの送信元の引受サーバにより実行可能であって、かつ電子署名が正しく検証された場合に（Ｓ１１４０：ＹＥＳ）、処理プログラム実行部５００は、受信通知を管理サーバ２０に送信する（Ｓ１１６０）。そして、処理プログラム実行部５００は、入力データを入力として割り当てられた処理プログラムを実行することによりその入力データを更新する（Ｓ１１７０）。履歴格納部５４０は、処理プログラム実行部５００が処理プログラムを実行することにより変更した引受サーバ５０−１上のデータの履歴情報を、その変更を復元可能な情報に対応付けて格納する（Ｓ１１８０）。【００７１】
図１２は、図１１に続く動作の詳細を示す。引受サーバ選択部５１０は、管理サーバ２０から受信した実行指示情報に基づいて、入力データを入力として次に実行するべき処理プログラムを検出する（Ｓ１２００）。引受サーバ選択部５１０は、そのような処理プログラムを検出できない場合に（Ｓ１２００：ＮＯ）、完了通知を管理サーバ２０に送信する（Ｓ１２０５）。【００７２】
一方、処理プログラムを検出できた場合に（Ｓ１２００：ＹＥＳ）、引受サーバ選択部５１０は、キャッシュ部５２０を参照することにより、その処理プログラムの識別情報を実行する引受サーバの識別情報がキャッシュされているか否か判断する（Ｓ１２１０）。キャッシュされている場合に（Ｓ１２２０：ＹＥＳ）、引受サーバ選択部５１０は、キャッシュされているその識別情報の引受サーバを選択する（Ｓ１２３０）。【００７３】
一方、キャッシュされていない場合に（Ｓ１２２０：ＮＯ）、引受サーバ選択部５１０は、その処理プログラムを実行する引受サーバの識別情報を管理サーバ２０に問合せ、問合せ結果の識別情報により識別される引受サーバを選択する（Ｓ１２４０）。この場合、キャッシュ部５２０は、問合せ結果の識別情報を、問合せ対象の処理プログラムの識別情報に対応付けてキャッシュする（Ｓ１２４５）。【００７４】
続いて、入力データ受渡部５３０は、引受サーバ選択部５１０により選択された引受サーバに、受信した実行指示情報と更新された入力データとを対応付けて送信用データとして送信する（Ｓ１２５０）。なお、入力データ受渡部５３０は、この更新された入力データ及び実行指示情報を対象として電子署名を作成し、作成した電子署名を、この入力データ及び実行指示情報に対応付けて送信してもよい。【００７５】
そして、処理プログラム実行部５００は、終了通知を管理サーバ２０に送信する（Ｓ１２６０）。なお、処理プログラム実行部５００は、処理プログラムの実行に所定以上の時間を要する場合等には、処理プログラムの処理経過を示す情報を、終了通知に先だって送信してもよい。続いて、履歴格納部５４０は、入力データ受渡部５３０により引受サーバに送信された入力データ及び実行指示情報の履歴を格納する（Ｓ１２７０）。なお、引受サーバ５０−１は、本図に示す動作の他、処理プログラム実行部５００が処理プログラムを実行することにより使用している計算資源の使用率を示す情報を、定期的に管理サーバ２０に送ってもよい。【００７６】
ここで、Ｓ６４０における動作は、送信用データの送信元が管理サーバ２０に代えて引受サーバ５０−１であり、当該送信先が引受サーバ５０−２に代えて引受サーバ５０−Ｎ等である他は、Ｓ６２０における動作と略同一であるので説明を省略する。同様に、Ｓ６６０における動作は、送信用データの送信元が管理サーバ２０に代えて引受サーバ５０−２である他は、Ｓ６２０における動作と略同一であるので説明を省略する。【００７７】
図１３は、Ｓ６３０の動作の詳細を示す。管理サーバ２０は、引受サーバ５０−１〜Ｎの何れかから何らかの通知又は問合せを受ける毎に、以下の処理を行う。まず、引受サーバ情報格納部２２０は、受信通知又は終了通知を例えば引受サーバ５０−１から受信したか否か判断する（Ｓ１３００）。受信した場合に（Ｓ１３００：ＹＥＳ）、引受サーバ情報格納部２２０は、受信通知又は終了通知に基づいて、各引受サーバで処理中のジョブの数を更新して、更新結果に基づいて実行可否情報を更新する（Ｓ１３１０）。【００７８】
続いて、問合対応部２３０は、所定の処理プログラムを実行する引受サーバの識別情報の問合せを受けたか否か判断する（Ｓ１３２０）。問合せを受けた場合に（Ｓ１３２０：ＹＥＳ）、処理プログラム起動部２４０は、問合対応部２３０が問い合わせを受けた処理プログラムについて、その処理プログラムを実行する複数の引受サーバのうち、実行可能状態でない引受サーバが、予め定められた基準割合を超えるか否か判断する（Ｓ１３３０）。【００７９】
基準割合を超える場合に（Ｓ１３３０：ＹＥＳ）、処理プログラム起動部２４０は、その処理プログラムを起動していない引受サーバの何れかにおいてその処理プログラムを新たに起動する（Ｓ１３４０）。この場合、処理プログラム起動部２４０は、新たに処理プログラムを起動した引受サーバの識別情報を、その処理プログラムの識別情報に対応付けて、引受サーバ情報格納部２２０に格納する。【００８０】
そして、問合対応部２３０は、問合せを受けた処理プログラムの識別情報に対応する引受サーバの識別情報を引受サーバ情報格納部２２０から取得して、その問合せに対する返信として送信する（Ｓ１３５０）。引受サーバ情報格納部２２０が、その処理プログラムの識別情報に対応する引受サーバの識別情報を複数格納している場合には、問合対応部２３０は、その処理プログラムの識別情報に対応する全ての識別情報を送信してもよいし、所定の判断基準に基づいて一部の識別情報を選択して送信してもよい。【００８１】
例えば、問合対応部２３０は、問合せた引受サーバとの間の通信速度がより速い引受サーバの識別情報を、問合せた引受サーバとの間の通信速度がより遅い引受サーバの識別情報より優先して選択し、送信してもよい。また、Ｓ１３４０において処理プログラム起動部２４０により新たに処理プログラムが起動された場合には、問合対応部２３０は、処理プログラムが起動されたその引受サーバの識別情報のみを送信してもよい。【００８２】
更に、引受サーバ情報格納部２２０が、引受サーバ５０−１〜Ｎの何れかから、処理プログラムを実行することにより使用する計算資源の使用率を受信した場合に（Ｓ１３６０：ＹＥＳ）、引受サーバ変更部２６０は、その使用率が基準使用率以下か否か判断する（Ｓ１３７０）。基準使用率以下の場合に（Ｓ１３７０：ＹＥＳ）、引受サーバ変更部２６０は、その処理プログラムを、その使用率を送信した引受サーバより最大処理量が少ない他の引受サーバに実行させる（Ｓ１３８０）。具体的には、引受サーバ変更部２６０は、その処理プログラムを実行していた引受サーバに、その処理プログラムの実行を中止する中止指示を送信し、その引受サーバより最大処理量が少ない当該他の引受サーバに、その処理プログラムを起動する起動指示を送信する。【００８３】
この結果、変更前の引受サーバは、処理プログラム実行部５００により当該処理プログラムの実行を停止し、変更後の引受サーバは、処理プログラム実行部５００により当該処理プログラムを起動する。そしてこの場合、処理プログラム起動部２４０は、新たに処理プログラムを起動した引受サーバの識別情報を、その処理プログラムの識別情報に対応付けて、引受サーバ情報格納部２２０に格納する。一方、処理プログラム起動部２４０は、処理プログラムの実行を中止した引受サーバの識別情報を、引受サーバ情報格納部２２０から削除する。【００８４】
なお、Ｓ６５０における動作は、問合せ元の引受サーバが引受サーバ５０−１に代えて引受サーバ５０−２である事項の他は、Ｓ６３０における動作と略同一であるので説明を省略する。【００８５】
図１４は、Ｓ６７０の動作の詳細を示す。削除指示部２７０は、最後に処理プログラムを実行した引受サーバ５０−Ｎから完了通知を受けた場合に（Ｓ１４００：ＹＥＳ）、複数の処理プログラムの全てが実行されることによりジョブが完了したと判断し、その旨を利用者端末４０に通知する（Ｓ１４１０）。そして、削除指示部２７０は、引受サーバ５０−１〜Ｎの各々に指示して、引受サーバ５０−１〜Ｎの各々における履歴格納部５４０から、そのジョブの実行の過程で格納された入力データ、実行指示情報、及び履歴情報を削除する（Ｓ１４２０）。【００８６】
図１５は、Ｓ７００の動作の詳細を示す。障害発生判断部５５０は、入力データの送信先の引受サーバで障害が発生したか否か判断する（Ｓ１５００）。例えば、障害発生判断部５５０は、障害発生通知を管理サーバ２０から受けるか、又は拒絶通知を引受サーバ５０−２から受けた場合に、障害が発生したと判断する。【００８７】
そして、障害発生判断部５５０により障害が発生したと判断された場合に（Ｓ１５００：ＹＥＳ）、引受サーバ選択部５１０は、実行中に障害が発生したその処理プログラムを実行する他の引受サーバの識別情報を管理サーバ２０に問合せる（Ｓ１５１０）。この場合、キャッシュ部５２０は、問合せ結果の識別情報を、問合せ対象の処理プログラムの識別情報に対応付けてキャッシュする（Ｓ１５２０）。【００８８】
引受サーバ選択部５１０は、問合せ結果の識別情報により識別される引受サーバを選択する（Ｓ１５３０）。例えば、問合対応部２３０は、当該引受サーバとの通信速度等がより速い引受サーバの識別情報を優先して問合せ結果として返信する。この結果、引受サーバ選択部５１０は、更新された入力データを入力として次に実行するべき処理プログラムを実行している複数の引受サーバのうち、当該引受サーバとの間の通信速度がより速い引受サーバを、当該通信速度がより遅い引受サーバより優先して選択する。一例として、引受サーバ選択部５１０は、当該通信速度が最も速い引受サーバを選択し、他の引受サーバを選択しない。【００８９】
入力データ受渡部５３０は、既に送信した入力データ及び実行指示情報を履歴格納部５４０から取得する（Ｓ１５４０）。入力データ受渡部５３０は、取得したこれらの入力データ及び実行指示情報を、送信用データとして、再選択した引受サーバ、例えば引受サーバ５０−Ｎに送信する（Ｓ１５５０）。【００９０】
図１６は、Ｓ８００の動作の詳細を示す。管理サーバ２０は、ジョブを引受サーバ５０−１〜Ｎに実行させている場合に、例えば定期的に以下の処理を繰り返す。まず、引受サーバ情報格納部２２０は、各引受サーバについて、その引受サーバから最後に受信通知を受信してから基準処理時間が経過したか否か判断する（Ｓ１６００）。基準処理時間が経過した場合に、即ち、基準処理時間内に終了通知を受信できなかった場合に（Ｓ１６００：ＹＥＳ）、引受サーバ情報格納部２２０は、障害の発生したジョブが再試行可能な種類であるか否か判断する（Ｓ１６１０）。【００９１】
再試行可能な種類である場合に（Ｓ１６１０：ＹＥＳ）、引受サーバ情報格納部２２０は、障害発生通知を引受サーバ５０−１に送信する（Ｓ１６２０）。更に、引受サーバ情報格納部２２０は、入力データの送信先の引受サーバのハードウェアに障害が発生した場合等には、障害の発生したその引受サーバに対応付けて格納されていた処理プログラムの識別情報を削除してもよい。一方、再試行可能でない種類である場合に（Ｓ１６１０：ＮＯ）、引受サーバ情報格納部２２０は、そのジョブの一部を実行した処理プログラムによるデータの変更を復元する旨の指示を、すでに処理プログラムを実行した引受サーバに送る。例えば、引受サーバ情報格納部２２０は、引受サーバ５０−１及び引受サーバ５０−２にその指示を送る（Ｓ１６３０）。【００９２】
図１７は、管理サーバ２０として機能するコンピュータのハードウェア構成の一例を示す。管理サーバ２０は、ホストコントローラ１７８２により相互に接続されるＣＰＵ１７００、ＲＡＭ１７２０、グラフィックコントローラ１７７５、及び表示装置１７８０を有するＣＰＵ周辺部と、入出力コントローラ１７８４によりホストコントローラ１７８２に接続される通信インターフェイス１７３０、ハードディスクドライブ１７４０、及びＣＤ−ＲＯＭドライブ１７６０を有する入出力部と、入出力コントローラ１７８４に接続されるＢＩＯＳ１７１０、フレキシブルディスクドライブ１７５０、及び入出力チップ１７７０を有するレガシー入出力部とを備える。【００９３】
ホストコントローラ１７８２は、ＲＡＭ１７２０と、高い転送レートでＲＡＭ１７２０をアクセスするＣＰＵ１７００及びグラフィックコントローラ１７７５とを接続する。ＣＰＵ１７００は、ＢＩＯＳ１７１０及びＲＡＭ１７２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１７７５は、ＣＰＵ１７００等がＲＡＭ１７２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１７８０上に表示させる。これに代えて、グラフィックコントローラ１７７５は、ＣＰＵ１７００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。【００９４】
入出力コントローラ１７８４は、ホストコントローラ１７８２と、比較的高速な入出力装置である通信インターフェイス１７３０、ハードディスクドライブ１７４０、及びＣＤ−ＲＯＭドライブ１７６０を接続する。通信インターフェイス１７３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１７４０は、管理サーバ２０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１７６０は、ＣＤ−ＲＯＭ１７９５からプログラム又はデータを読み取り、ＲＡＭ１７２０を介して入出力チップ１７７０に提供する。【００９５】
また、入出力コントローラ１７８４には、ＢＩＯＳ１７１０と、フレキシブルディスクドライブ１７５０や入出力チップ１７７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１７１０は、管理サーバ２０の起動時にＣＰＵ１７００が実行するブートプログラムや、管理サーバ２０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１７５０は、フレキシブルディスク１７９０からプログラム又はデータを読み取り、ＲＡＭ１７２０を介して入出力チップ１７７０に提供する。入出力チップ１７７０は、フレキシブルディスク１７９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。【００９６】
管理サーバ２０に提供されるプログラムは、フレキシブルディスク１７９０、ＣＤ−ＲＯＭ１７９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１７７０及び／又は入出力コントローラ１７８４を介して、記録媒体から読み出され管理サーバ２０にインストールされて実行される。【００９７】
管理サーバ２０にインストールされて実行される制御プログラムは、実行指示情報生成モジュールと、入力データ送信モジュールと、引受サーバ情報格納もジュールと、問合対応モジュールと、処理プログラム起動モジュールと、障害発生通知送信モジュールと、引受サーバ変更モジュールと、削除指示モジュールとを含む。各モジュールが管理サーバ２０に働きかけて行わせる動作は、図１から図１６において説明した管理サーバ２０における、対応する部材の動作と同一であるから、説明を省略する。【００９８】
また、管理サーバ２０に提供される制御プログラムは、ネットワークなどを介して引受サーバ５０−１〜Ｎの各々にインストールされて実行されてもよい。引受サーバ５０−１〜Ｎの各々にインストールされて実行される制御プログラムは、処理プログラム実行モジュールと、引受サーバ選択モジュールと、キャッシュモジュールと、入力データ受渡モジュールと、履歴格納モジュールと、障害発生判断モジュールとを含む。各モジュールが引受サーバ５０−１〜Ｎの各々に働きかけて行わせる動作は、図１から図１６において説明した引受サーバ５０−１〜Ｎの各々における、対応する部材の動作と同一であるから、説明を省略する。【００９９】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１７９０、ＣＤ−ＲＯＭ１７９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを管理サーバ２０に提供してもよい。【０１００】
以上、本実施例に示すように、管理サーバ２０は、処理プログラムを引受サーバに実行させる毎に入力データを送受信することなく、入力データを複数の引受サーバに順次受渡しさせることができる。この結果、管理サーバ２０の負荷が軽減されるとともに、管理サーバ２０へのネットワークトラフィックが減少する。更に、引受サーバ５０は、入力データの送信先をキャッシュしており、キャッシュされていない送信先のみを管理サーバ２０に問合せる。この結果、管理サーバ２０へのネットワークトラフィックが更に減少する。【０１０１】
更に、本実施例によると、処理プログラムの実行に障害が発生した場合であっても、引受サーバ５０は、できるだけ管理サーバ２０に問合せずに障害の復旧を試みる。この結果、管理サーバ２０へのネットワークトラフィックを減少できる。また、管理サーバ２０は、実行させる処理プログラムを、引受サーバに予めインストールして起動させておく。これにより、管理サーバ２０のみが、入力データにアクセスすることを許可する引受サーバを管理していればよく、引受サーバにそのような管理をさせる負担を軽減できる。また、管理サーバ２０は、引受サーバ５０からの問合せ等に応じて、各引受サーバの負荷を分散することができる。
以上、本実施例によると、より多くのコンピュータを結合して適切かつ柔軟なグリッドコンピューティングシステムを構築することができる。【０１０２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【０１０３】
【図１】図１は、グリッドコンピューティングシステム１０の機能ブロック図である。
【図２】図２は、管理サーバ２０の機能ブロック図である。
【図３】図３は、送信用データ３０のデータ構造の一例を示す。
【図４】図４は、引受サーバ情報格納部２２０のデータ構造の一例を示す。
【図５】図５は、引受サーバ５０−２の機能ブロック図である。
【図６】図６は、正常動作時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第１例）。
【図７】図７は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第２例）。
【図８】図８は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第３例）。
【図９】図９は、障害発生時におけるグリッドコンピューティングシステム１０の動作フローの概要を示す（第４例）。
【図１０】図１０は、Ｓ６１０の動作の詳細を示す。
【図１１】図１１は、Ｓ６２０の動作の詳細を示す。
【図１２】図１２は、図１１に続く動作の詳細を示す。
【図１３】図１３は、Ｓ６３０の動作の詳細を示す。
【図１４】図１４は、Ｓ６７０の動作の詳細を示す。
【図１５】図１５は、Ｓ７００の動作の詳細を示す。
【図１６】図１６は、Ｓ８００の動作の詳細を示す。
【図１７】図１７は、管理サーバ２０として機能するコンピュータのハードウェア構成の一例を示す。
【符号の説明】
【０１０４】
１０  グリッドコンピューティングシステム
２０  管理サーバ
３０  送信用データ
４０  利用者端末
５０  引受サーバ
５５  データベース
２００  実行指示情報生成部
２１０  入力データ送信部
２２０  引受サーバ情報格納部
２３０  問合対応部
２４０  処理プログラム起動部
２５０  障害発生通知送信部
２６０  引受サーバ変更部
２７０  削除指示部
３００  実行指示情報
５００  処理プログラム実行部
５１０  引受サーバ選択部
５２０  キャッシュ部
５３０  入力データ受渡部
５４０  履歴格納部
５５０  障害発生判断部
５６０  変更復元部
【図１】
0004197701.tif 000002
【図２】
0004197701.tif 000003
【図３】
0004197701.tif 000004
【図４】
0004197701.tif 000005
【図５】
0004197701.tif 000006
【図６】
0004197701.tif 000007
【図７】
0004197701.tif 000008
【図８】
0004197701.tif 000009
【図９】
0004197701.tif 000010
【図１０】
0004197701.tif 000011
【図１１】
0004197701.tif 000012
【図１２】
0004197701.tif 000013
【図１３】
0004197701.tif 000014
【図１４】
0004197701.tif 000015
【図１５】
0004197701.tif 000016
【図１６】
0004197701.tif 000017
【図１７】
0004197701.tif 000018