(57)【要約】【課題】データセンタにおける１つのサーバにおいて異なるプロジェクトを統一的に扱うことができるグリッドコンピューティング管理サーバ等を提供すること。【解決手段】グリッドコンピューティング管理サーバは、グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有し、各データの帯域によりサーバ側のプロセス・スレッドを分割し、並列に処理を実行させる。【選択図】図１
2010224776.tif 000002
【特許請求の範囲】
【請求項１】
グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有する手段と、各データの帯域によりサーバ側のプロセス・スレッドを分割し、並列に処理を実行させる手段とを備えることを特徴とするグリッドコンピューティング管理サーバ。
【請求項２】
負荷が高まった場合には、ハードウェア増設とともにプロセス・スレッド数を増やし、各データのプロセス・スレッドへの再割り当てを行うことでスケールアップをすることを特徴とする請求項１記載のグリッドコンピューティング管理サーバ。
【請求項３】
障害発生時に迅速に待機サーバへの切り替えを行うことを特徴とする請求項１または２記載のグリッドコンピューティング管理サーバ。
【請求項４】
ジョブをタスク単位に分割して更新対象となるエンティティを分割配置し、スレッドによる帯域分割を行うことでグリッド計算のデータ更新における排他制御を軽減することを特徴とする請求項１から３のいずれか１項に記載のグリッドコンピューティング管理サーバ。
【請求項５】
タスク単位にトランザクションを区切り、同一プロセス内の複数スレッドで一括処理を可能とし、データ格納装置としてメモリテーブルを用いることを特徴とする請求項１から４のいずれか１項に記載のグリッドコンピューティング管理サーバ。
【請求項６】
グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有するステップと、各データの帯域によりサーバ側のプロセス・スレッドを分割し、並列に処理を実行させるステップとを有することを特徴とするプロジェクト管理方法。
【請求項７】
負荷が高まった場合には、ハードウェア増設とともにプロセス・スレッド数を増やし、各データのプロセス・スレッドへの再割り当てを行うことでスケールアップをすることを特徴とする請求項６記載のプロジェクト管理方法。
【請求項８】
障害発生時に迅速に待機サーバへの切り替えを行うステップを有することを特徴とする請求項６または７記載のプロジェクト管理方法。
【請求項９】
ジョブをタスク単位に分割して更新対象となるエンティティを分割配置し、スレッドによる帯域分割を行うことでグリッド計算のデータ更新における排他制御を軽減することを特徴とする請求項６から８のいずれか１項に記載のプロジェクト管理方法。
【請求項１０】
タスク単位にトランザクションを区切り、同一プロセス内の複数スレッドで一括処理を可能とし、データ格納装置としてメモリテーブルを用いることを特徴とする請求項６から９のいずれか１項に記載のプロジェクト管理方法。
【請求項１１】
コンピュータに、グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有する処理と、並列に処理を実行させるために各データの帯域によりサーバ側のプロセス・スレッドを分割する処理とを実行させることを特徴とするプログラム。
【請求項１２】
負荷が高まった場合には、ハードウェア増設とともにプロセス・スレッド数を増やし、各データのプロセス・スレッドへの再割り当てを行う処理を実行させスケールアップをすることを特徴とする請求項１１記載のプログラム。
【請求項１３】
障害発生時に迅速に待機サーバへの切り替えを行う処理を実行させることを特徴とする請求項１１または１２記載のプログラム。
【請求項１４】
ジョブをタスク単位に分割して更新対象となるエンティティを分割配置し、スレッドによる帯域分割を行うことでグリッド計算のデータ更新における排他制御を軽減することを特徴とする請求項１１から１３のいずれか１項に記載のプログラム。
【請求項１５】
タスク単位にトランザクションを区切り、同一プロセス内の複数スレッドで一括処理を可能とし、データ格納装置としてメモリテーブルを用いることを特徴とする請求項１１から１４のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広域グリッドにおけるプロジェクトを管理する技術に関する。
【背景技術】
【０００２】
クライアントとプロジェクト主催者を仲介し、両者のマッピング・課金を行うシステムが例えば、特許文献１に記載されている。
【０００３】
これらの方式ではジョブ投入・結果取得がプロジェクト間で共有されておらず、プロジェクト主催者が各々で行わねばならないため、グリッド利用の敷居を高くしていた。
【０００４】
さらに、課金の元となる情報をプロジェクト主催者が仲介システムへ送信しているため、改ざんのリスクがあった。
【０００５】
アプリケーションの処理形態については、特許文献２に問題片のサイズという切り口で記述されているとおり、問題自体に並列性が存在する科学技術計算の場合、並列処理が容易だが、ビジネスアプリケーションのように逐次実行で、かつデータ更新部分に排他制御が必要な場合は単純並列化ができず、従来の公衆網グリッドでは扱うのが困難であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６２１４９号公報
【特許文献２】特開２００４−２０６２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の関連技術としての公衆網に代表される広域ネットワークにおけるグリッドコンピューティングでは、プロジェクト毎にサーバが構築されており、結果突合やジョブの投入といった処理を統一的に扱うことができなかった。
また、サーバ障害が発生した場合や、クライアント端末数の増大などにより負荷が集中した場合にサービスが停止する懸念があった。
さらに、アプリケーションの処理形態については、膨大なパラメータを用いた科学技術計算に代表される、単純並列処理可能でデータ更新における排他制御が不要なプロジェクトが主流であった。
【０００８】
本発明は、以上のような課題を解決するためになされたもので、データセンタにおける１つのサーバにおいて異なるプロジェクトを統一的に扱うことができ、プロジェクト主催者はジョブの投入・結果の突合などを行う必要がなくなり、利便性が向上するグリッドコンピューティング管理サーバ、プロジェクト管理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のグリッドコンピューティング管理サーバは、グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有する手段と、各データの帯域によりサーバ側のプロセス・スレッドを分割し、並列に処理を実行させる手段とを備えることを特徴とする。
【００１０】
また、本発明のプロジェクト管理方法は、グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有するステップと、各データの帯域によりサーバ側のプロセス・スレッドを分割し、並列に処理を実行させるステップとを有することを特徴とする。
【００１１】
また、本発明のプログラムは、コンピュータに、グリッドコンピューティングにおけるサーバ側の機能をプロジェクト間で共有する処理と、並列に処理を実行させるために各データの帯域によりサーバ側のプロセス・スレッドを分割する処理とを実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、データセンタにおける１つのサーバにおいて異なるプロジェクトを統一的に扱うことができ、プロジェクト主催者はジョブの投入・結果の突合などを行う必要がなくなり、利便性が向上する。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る本実施の形態におけるグリッドコンピューティングシステムの構成を示す図である。
【図２】本発明の実施の形態に係る電文形式を説明する図である。
【図３】本発明の実施の形態に係る帯域分割の考え方を説明する図である。
【図４】本発明の実施の形態に係るクライアント制御層の構成ならびに動作を示す図である。
【図５】本発明の実施の形態に係るプロジェクト制御層の構成ならびに動作を示す図である。
【図６】本発明の実施の形態に係るジョブ制御層の構成ならびに動作を示す図である。
【図７】本発明の実施の形態に係るデータ蓄積層の構成ならびにタスク投入時の動作を示す図である。
【図８】本発明の実施の形態に係る振分層の構成ならびに動作を示す図である。
【図９】本発明の実施の形態に係る結果突合層の構成ならびに動作を示す図である。
【図１０】本発明の実施の形態に係るデータ蓄積層の構成ならびに返却電文に対する動作を示す図である。
【図１１】本発明の実施の形態に係る課金・報酬計算層の構成ならびに動作を示す図である。
【図１２】本発明の実施の形態に係るジョブ制御スレッドの返却電文に対する動作を説明する図である。
【図１３】本発明の実施の形態に係るデータ蓄積スレッドの結果返却時の動作を示す図である。
【図１４】本発明の実施の形態に係る振分スレッドのタスク投入時の動作を示す図である。
【図１５】本発明の実施の形態に係る結果突合スレッドの動作を示す図である。
【図１６】グリッドコンピューティングで扱われていた処理を示す図である。
【図１７】本発明の実施の形態に係るパラメータセットならびに計算結果を一箇所に格納することを示す図である。
【図１８】本発明の実施の形態に係る複数のパラメータセットを説明する図である。
【図１９】本発明の実施の形態に係る処理毎にトランザクションを区切り、同一プロセスにおける複数スレッドで他のジョブにおけるタスクを並列に処理することを説明する図である。
【図２０】本発明の実施の形態に係るサーバダウン時の動作を説明する図である。
【図２１】本発明の他の実施の形態を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の第一の実施の形態について図面を参照して詳細に説明する。図１に示す本実施の形態におけるグリッドコンピューティングシステムは、リソース提供網１００、プロジェクト主催者１０５、データセンタ１０４から構成される。以下の説明においてはプロジェクト主催者１０５は、所定のプロジェクト主催者側の情報処理装置を用いて情報のやりとりを行うものとする。
【００１５】
リソース提供網１００は、専用フレームワーク１０３がインストールされた複数のクライアント端末１０２・クライアント１０１からなる。プロジェクト主催者１０５は複数であってよい。したがって、複数のプロジェクトが許容される。以下の説明においてはクライアント１０１は、クライアント側の情報処理装置であるクライアント端末１０２等を用いて情報のやりとりを行うものとする。
【００１６】
データセンタ１０４は、クライアント制御層１１０・プロジェクト制御層１１６・ジョブ制御層１１１・データ蓄積層１１２・振分層１１３・結果突合層１１４・課金・報酬計算層１１５を有する。
【００１７】
クライアント１０１は、予めデータセンタ１０４に対し(１-ａ)登録申請を行い、クライアント端末１０２に専用フレームワーク１０３をインストールする。また脱退時には(１-ｂ)脱退申請を行う。
【００１８】
プロジェクト主催者１０５は、データセンタ１０４へ(１-ｃ)プロジェクト情報登録、つまり実行するプログラム内容やパラメータのレンジ、間隔などのジョブ実行条件、使用データ、突合方式、タイムアウト値を登録申請する。
【００１９】
なおプロジェクト主催者１０５は、任意のタイミングでデータセンタ１０４に対し(１-ｆ)ステータス参照要求を行うことができ、データセンタ１０４は参照要求を受けてプロジェクト遂行状況の開示を行う。
【００２０】
データセンタ１０４は、クライアントからの(１-ａ)登録申請、(１-ｂ)脱退申請をクライアント制御層１１０にて処理し、プロジェクト主催者１０５からの(１-ｃ)プロジェクト情報登録をプロジェクト制御層１１６にて受けつけ、情報を保持する。
【００２１】
データセンタ１０４は、申請されたプロジェクト情報をもとに実行プログラムを作成する。またはプロジェクト主催者１０５が直接作成してもよい。プログラムはタスク単位に存在する。タスクとはジョブを構成する処理ステップであり、クライアント端末に割り振られる電文単位である。
【００２２】
データセンタ１０４は、プロジェクト制御層１１６においてジョブとジョブＩＤのマッピングを行い、プログラムにタスクＩＤを割り当てた後、ジョブ制御層１１１、データ蓄積層１１２、振分層１１３を介してリソース提供網１００へ(１-ｄ)タスク投入を行う。その際、計算の信頼性を上げるために同一タスクを複数のクライアントに対し投入する。
【００２３】
リソース提供網１００におけるクライアント端末１０２は、割り当てられたタスクを計算し、データセンタ１０４へ(１-ｅ)結果返却を行う。クライアント端末１０２におけるタスクの送受信やプログラムの実行制御は専用フレームワーク１０３にて行われる。
【００２４】
データセンタ１０４は、クライアント端末１０２から返却された計算結果を振分層１１３にて受信し、ルーティング情報を付与して結果突合層１１４へ送信する。
【００２５】
データセンタ１０４は、結果突合層１１４にて複数のクライアント端末からの結果を突合し、正しい計算が行われていることを確認した後にデータ蓄積層１１２にてデータを更新し、プロジェクト制御層１１６にてステータスの更新を行う。
【００２６】
データセンタ１０４は、課金・報酬計算層１１５にて課金・報酬の計算を実施し、あるタイミングでプロジェクト主催者１０５に対し(１-ｇ)課金を、クライアント１０１に対し(１-ｈ)報酬付与を行う。
【００２７】
以下、本実施の形態の動作を説明する。
はじめに、図２をもとに本実施の形態で扱う電文形式を説明する。リソース提供網へ投入されるタスクは投入電文２０１の構成をしており、ヘッダー部にプロジェクトＩＤ、ジョブＩＤ、タスクＩＤ、クライアントＩＤ、次いで実行プログラムと実行時パラメータ、使用データが搭載される。ただし、転送データ量の削減のために、クライアント端末のキャッシュ上に存在する要素は省略可能とする。タスクを受け取ったクライアント端末は専用のフレームワークを経由してタスクを遂行し、結果を返却する。結果は返却電文２０２の構成をとり、ヘッダー部に次いでプログラムの実行結果と、実行ログが搭載される。
【００２８】
次に、図３をもとに帯域分割の考え方を説明する。帯域分割とは、処理を特徴付けるキーデータ（たとえば、クライアントＩＤやジョブＩＤなど）に対してある単位に範囲分割し、それぞれ独立のスレッドを関連付けることである。任意の層３１１におけるプロセス３３１、３３２内のスレッドは処理で用いられるキーデータ（図中ではα）により帯域分割されている。それぞれのスレッドは、対応するデータが格納されたデータ格納装置３６１内のエンティティ３５１、３５２・・・にアクセスを行う。例えば、エンティティ３５１はキーデータαの下２桁が００から１０に該当するデータが格納されており、エンティティ３５２では同様に１１から２０に該当するデータが格納されている。
【００２９】
次に、図４〜図１５をもとに本実施の形態の動作について詳細に説明する。なお本実施の形態で登場するクライアント管理装置４６１・１１６１、プロジェクト管理装置５６３・６６２・１１６２、ジョブ／タスク管理装置５６１・６６１、データ格納装置５６２・７６１〜７６４・１０６１〜１０６４、宛先変換装置６６２・８６１、突合制御装置９６２は、データベースやメモリテーブル、あるいは演算等で実装される。
【００３０】
図４はクライアント制御層の構成ならびに動作を示している。クライアント４０２はリソースの提供に先立ち、データセンタに対して(４-ａ)登録申請を行う。データセンタでは、クライアント制御層４０１におけるクライアント登録プロセス４０４にてクライアントＩＤを割り当て、関連する情報をクライアント管理装置４６１へ登録する。次いでクライアント４０２は、クライアント端末４０３にタスクの送受信・実行制御などを行う専用フレームワーク４０４をインストールする。登録作業が済んだクライアント４０２は、専用フレームワーク４０４によりリソースが提供可能であることをデータセンタに対して通知する。なおクライアント４０２の脱退時には、(４-ｂ)脱退申請を受けてクライアント削除プロセス４０３がクライアント管理装置４６１から該当するクライアントＩＤと関連する情報を削除する。
【００３１】
図５はプロジェクト制御層の構成ならびに動作を示している。プロジェクト主催者５０２は、データセンタへ(５-ｃ)プロジェクト情報登録を行う。プロジェクト登録プロセス５３３は、プロジェクト情報をジョブ／タスク管理情報５６１、データ格納装置５６２ならびにプロジェクト管理装置５６３に格納する。プロジェクト情報には、プログラムの他、パラメータのレンジや間隔といった実行条件や、使用データ、結果の突合方式、タイムアウト値が含まれる。
プログラムはタスク単位に作成され、ジョブ／タスク管理装置５６１に格納される。プログラムの作成は、申請内容をもとにデータセンタが行ってもよい。
パラメータレンジと間隔などから導出されたパラメータセットは使用されていないジョブＩＤに関連付けた上、ジョブ／タスク管理装置５６１に登録される。ここで、パラメータ数や型はプロジェクトによって異なるため、パラメータセットは結合してバイナリ形式で登録しておく。
使用データはデータ格納装置５６２へ、突合方式、タイムアウト値はプロジェクト管理装置５６３へ登録される。
なおプロジェクト主催者５０２は、ステータス参照プロセス５３２を介して、(５-ｆ)ステータス参照要求によりプロジェクトの遂行状況を随時参照できる。ステータスとは、プロジェクトに占めるジョブのうち完了した割合などを判別可能な情報である。
【００３２】
図６はジョブ制御層の構成ならびに動作を示している。ジョブ開始プロセス６２２はプロジェクト管理情報からプロジェクト固有の情報を取得した上でジョブ制御プロセス６３１、６３２へトリガとなる電文を送信する。ジョブ制御プロセス６３1、６３２内のスレッドは、ジョブＩＤにより帯域分割されている。
ジョブ制御スレッドはジョブ／タスク管理装置６６１を参照してタスクを生成し、データ蓄積層６１１へ送信する。その際、宛先変換装置６６２を参照して宛先としてふさわしいデータ蓄積スレッド、振分スレッドを取得して電文上へ搭載する。
ジョブ制御スレッドの動作を図１２に示す（１２０１）。ジョブ制御スレッドが開始されると、最初にステータスの更新を行う（１２８１）。次いで後段タスクの存在チェックが行われ（１２８２）、存在すれば（初回は必ず存在）ジョブ／タスク管理情報を取得しタスクの生成が行われる（１２８３）。次いでルーティング処理によりデータ蓄積層・振分層の対応するスレッドを取得し（１２８４）、電文上へ搭載した上でデータ蓄積層へタスクを送信する（１２８５）。
【００３３】
図７はデータ蓄積層の構成ならびにタスク投入時の動作を示している。データ蓄積層７１２におけるデータ蓄積プロセス７３１〜７３４はタスク毎に存在し、タスク毎に異なるキーデータによるデータアクセスロジックが実装されている。プロセス内の各スレッドは、それぞれのタスクにおけるキーデータ（図中ではα、β、γ、δ）により帯域分割されている。各々のスレッドでは、対応するデータ格納装置７６１〜７６４に格納されている、キーデータの当該帯域に対応するエンティティに対してアクセスが行われる。
データ蓄積スレッドのタスク投入時の動作を図１３に示す（１３０１）。最初に、データのアクセスが行われ（１３８１）、計算に必要なデータがタスク上に搭載される（１３８２）。次いでジョブ制御層でタスク上に搭載されたルーティング情報をもとに、振分層のふさわしいスレッドへタスクが送信される（１３８３）。
【００３４】
図８は振分層の構成ならびに動作を示している。振分層８１１は複数プロセス、スレッドで構成されており、サーバ８２１、８２２を跨がってもよい。データ蓄積層８１３から投入されたタスクは、振分プロセス８３１〜８３４のジョブＩＤに対応するスレッドに到着する。
振分スレッドのタスク投入時の動作を図１４に示す（１４０１）。データ蓄積層からタスクを受け取ると、投入可能なクライアント端末が存在するかのチェックを行う（１４８１）。このとき、信頼性を上げるために同一タスクを複数投入するため、複数のクライアント端末に対して空きがあるかを確認する。また、待ち合わせ時間を極力短くするために、なるべく同等のスペックの端末が選択される。空きクライアント端末が存在しない場合は、タスクを一時的に退避させておき（１４８２）、後に再実行する（１４８４）。空きクライアント端末が存在した場合には、選択された複数のクライアント端末に対してタスクを複製し、クライアントを特定するためのルーティング情報を付加した上で（１４８５）、タスクを投入する（１４８６）。
【００３５】
図８において、(８-ｅ)結果返却により返却された結果は、データセンタ内の振分層８１１の何れかのスレッドへランダムに到着し、宛先変換装置８６１を参照してルーティングを行った上で結果突合層８１２へ送信される。
結果取得時の振分スレッドの動作を図１４に示す（１４０２）。返却電文を受け取ると、クライアントＩＤやジョブＩＤ、キーデータといったルーティングの元となる情報を電文上より取得し（１４８７）、後段処理のルーティング解決を行う。すなわち、結果突合プロセス、データ蓄積プロセス、ジョブ制御プロセス、課金・報酬計算プロセスにおける、返却電文の対応する各スレッドを、宛先変換装置を参照して取得し、電文上に搭載する（１４８８）。その後、ルーティング情報に基づき結果突合層の対応するスレッドへ返却電文を送信する（１４８９）。
【００３６】
図９は結果突合層の構成ならびに動作を示している。結果突合層９１２における結果突合プロセス９３１〜９３４内のスレッドは、サーバ９２１、９２２を跨いでジョブＩＤにより帯域分割されている。各々のスレッドには、バイナリ突合９７１、文字列突合９７２、マスキング突合９７３といった様々の突合パターンが実装されており、ふさわしい突合ロジックが呼び出される。突合結果が正しければ、結果電文がデータ蓄積層９１４へ送信さるとともに課金情報が課金・報酬計算層９１３へ送信される。
結果突合スレッドの動作を図１５に示す（１５０１）。返却電文を受け取ると、突合対象の複製電文が既に到着しているかの確認を行う（１５８１）。突合対象の返却電文が未到着の場合は、突合に必要な情報を突合制御装置へ格納し、後続の突合対象結果の到着を待つ（１５８２）。突合対象の複製電文が全て到着している場合、ふさわしい突合方式をプロジェクト管理装置から取得し、突合ロジックを実行する（１５８３）。結果が不正であれば、リトライ要求をジョブ制御層に送信する（１５８５）。正しく計算されたことが確認できれば、返却電文をデータ蓄積層へ送信するとともに、課金情報を課金・報酬計算層へ送信する（１５８４）。
【００３７】
図１０はデータ蓄積層の構成ならびに返却電文に対する動作を示している。結果突合層１０１１から送信された返却電文は、対応するデータ蓄積スレッドへ到着する。電文上に搭載されている結果をもとにデータの更新が行われた後、プロジェクト制御層１０１３へ送信される。
データ蓄積スレッドの結果返却時の動作を図１３に示す（１３０２）。返却電文を受け取ると、搭載されている計算結果を参照し、データ格納装置に対して更新を行う（１３８４）。次に、必要に応じて後段タスクへ引き継ぐデータをデータ格納装置より取得し、電文上に搭載する（１３８５）。その後、ルーティング情報に従いプロジェクト制御層へ返却電文を送信する（１３８６）。
【００３８】
図６をもとに、プロジェクト制御層の返却電文に対する動作を説明する。返却電文はジョブ制御プロセス６３１、６３２内の対応するジョブ制御スレッドに到着する。
【００３９】
図１２をもとにジョブ制御スレッドの返却電文に対する動作を説明する。返却電文を取得すると、ジョブステータスを更新し（１２８１）、後段タスクの存在有無を確認する（１２８２）。存在しない場合は、ジョブは完了となる。存在する場合は、後段タスクの情報をタスク管理装置より取得し（１２８３）、新たなキーデータによるデータ蓄積層・振分層のルーティングを行った上（１２８４）、データ蓄積層へ後段タスクを送信する（１２８５）。
【００４０】
図１１は課金・報酬計算層の構成ならびに動作を示している。課金・報酬計算層１１１２では、課金・報酬計算プロセス１１３１〜１１３４内の各スレッドがサーバ１１２１、１１２２を跨いでクライアントＩＤにより帯域分割されている。結果突合層１１１１から送信された課金情報は、対応する課金・報酬計算スレッドへ到着する。各スレッドは、電文中に搭載されたクライアントＩＤをもとにクライアント管理装置１１６１内の報酬情報を更新し、同時にプロジェクトＩＤをもとにプロジェクト管理装置１１６２内の課金情報を更新する。
【００４１】
次に、本実施の形態によりビジネスアプリケーションを含む様々な処理形態のプロジェクトを扱うことができることを、図１６〜図１９をもとに説明する。広域ネットワークにおける関連するグリッドコンピューティングで扱われていた処理は一般に、図１６で示されるように、パラメータセットならびに計算結果１６５１の主キーが単一であり、データへの参照・更新が計算の開始時と終了時のみに行われていた。
【００４２】
この場合、図１７のようにパラメータセットならびに計算結果を一箇所に格納可能であり（１７５１）、多重度を上げた場合にも排他制御が発生する懸念がなかった。ところが複雑な科学技術計算やビジネスアプリケーションでは、図１８で示されるように複数のパラメータセット（１８５１〜１８５３）をもち、かつそれぞれのパラメータセットに対し複数処理ステップ（１８８１〜１８８３）を経てトランザクションコミットが行われる。したがってそのまま多重度を上げてジョブを同時走行させようとするとデータ競合が発生し、排他制御やデバイスへのアクセス頻発による性能ネックが発生しうる。
【００４３】
そこで、本実施の形態においては図１９のように複数処理ステップ（１９８１〜１９８３）からそれぞれ独立したタスク（１９０２〜１９０４）を切り出し、処理毎にトランザクションを区切り、同一プロセスにおける複数スレッドで他のジョブにおけるタスクを並列に処理することで、一括処理を可能とするとともに、データ格納装置としてメモリテーブルを用いることでディスクデバイスへのアクセスネックを解消し性能を向上させる。さらにタスク毎にエンティティを分割配置し、帯域分割を行う（キーデータα、β、γにより処理単位に帯域分割）ことで排他制御の排除を行う。これらにより、広域ネットワークにおける従来のグリッドコンピューティングで懸念点であったデータアクセスにおける性能ネックが排除でき、複雑な科学技術計算やビジネスアプリケーションについても扱うことが可能となる。
【００４４】
次に、サーバダウン時の動作について図２０をもとに説明する。現用サーバ２０２１がダウンすると、待機サーバ２０２２は新たにプロセス２０３２を生成し、共有ストレージ２０６２をマウントするとともにデータベース２０６１に接続する。また、待機サーバ上のメモリデータベース２０５２は稼動サーバにおけるメモリデータベース２０５１と共に随時更新されている。ダウンしたプロセス２０３１が保持していた状態は、メモリデータベース２０５２や共有ストレージ２０６２・データベース２０６１に格納されているためサービスを停止することなく処理を継続することができる。
【００４５】
次に課金・報酬の計算方法について図１をもとに説明する。クライアント端末１０２にインストールされた専用フレームワーク１０３に、一定時間を超過しても完了しないタスクを終了させる機能を付与する。この一定時間をタイムアウト値Ｔと呼ぶ。本機能の導入により、タスクの計算が完了せず、報酬が莫大となるケースを防ぐ。プロジェクト主催者１０５は、(１-ｃ)プロジェクト情報登録の際にタイムアウト値Ｔを決定し、データセンタ１０４へ伝える。プロジェクトにおけるタスクの総数をＮとすると、プロジェクト主催者１０５への課金額ＸはＸ = Ｎ×Ｔ×ρと表される（定数ρを単位時間・単位タスクあたりの課金額とする）。またクライアント端末１０２が実行したタスク数をｎとすると、クライアント１０１への報酬ＹはＹ = ｎ×Ｔ×ρ´と表される（定数ρ´を単位時間・単位タスクあたりの報酬額とする）。
【００４６】
上記の本実施の形態によれば、データセンタにおける１つのサーバシステムにおいて異なるプロジェクトを統一的に扱うことができるため、プロジェクト主催者はジョブの投入・結果の突合などを行う必要がなくなり、利便性が向上する。
【００４７】
また、ジョブの投入・結果の突合のような共通的な処理においてプロジェクトを意識することなく、プロセス・スレッドを共有できるため、プロジェクト追加・削除が容易に行える。
【００４８】
また、クライアント端末数の増加などの要因で負荷が高まった場合には、ハードウェア増設とともにスレッドを追加しクライアントＩＤやジョブＩＤ、キーデータの再割り当てをするだけで、サービスを継続させたままスケーラブルに対応することができる。
【００４９】
また、クライアント・プロジェクト主催者間でジョブや資源消費量を受送信する必要がなくなり、課金情報の改ざんのリスクを低減できる。
【００５０】
さらに、ジョブの一連の流れをタスク毎に分割しトランザクションを区切ることで一括処理を可能とし、エンティティを分割配置することでデータ更新における排他制御を軽減し、メモリテーブルを用いてデータアクセス時の性能コストを向上させることで、単純並列処理が困難なアプリケーションについても扱うことが容易となる。
【００５１】
図２１に、本発明の他の実施の形態を示す。
本実施の形態では、プロジェクトの選択をクライアントが選択できる点と、プロジェクト毎に課金のロジックが分かれている点（２１３１、２１３２、２１３３）が前述の第一の実施の形態と異なる。
【００５２】
クライアントからの(２１-ｉ)プロジェクト選択申請をクライアント制御層２１１１が受け、クライアントとプロジェクトのマッピング情報を保持する。
【００５３】
プロジェクト毎の課金ロジックは、プロジェクト主催者が決める料金プランに基づき実装される。たとえば、暗号解析プロジェクトにおいて、正解を出したクライアントに懸賞金が与えられる、クライアント同士でコミュニティを構成し、コミュニティ間で報酬を共有できる、といった料金プランが考えられる。
【００５４】
本方式により、クライアントのモチベーションが高まるとともにプロジェクト主催者へも宣伝効果などの付加価値が生まれる。
【００５５】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、クライアント端末１０２、データセンタ１０４の機能を実現するためのプログラムを各装置に読込ませて実行することにより各装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。また、各装置の機能が他の装置によりまとめて実現されたり、追加の装置により機能が分散されて実現される形態も本発明の範囲内である。
【符号の説明】
【００５６】
１００    リソース提供網
１０１    クライアント
１０２    クライアント端末
１０３    専用フレームワーク
１０４    データセンタ
１０５    プロジェクト主催者
１１０    クライアント制御層
１１１    制御層
１１２    データ蓄積層
１１３    振分層
１１４    結果突合層
１１５    課金・報酬計算層
１１６    プロジェクト制御層
【図１】
2010224776.tif 000003
【図２】
2010224776.tif 000004
【図３】
2010224776.tif 000005
【図４】
2010224776.tif 000006
【図５】
2010224776.tif 000007
【図６】
2010224776.tif 000008
【図７】
2010224776.tif 000009
【図８】
2010224776.tif 000010
【図９】
2010224776.tif 000011
【図１０】
2010224776.tif 000012
【図１１】
2010224776.tif 000013
【図１２】
2010224776.tif 000014
【図１３】
2010224776.tif 000015
【図１４】
2010224776.tif 000016
【図１５】
2010224776.tif 000017
【図１６】
2010224776.tif 000018
【図１７】
2010224776.tif 000019
【図１８】
2010224776.tif 000020
【図１９】
2010224776.tif 000021
【図２０】
2010224776.tif 000022
【図２１】
2010224776.tif 000023