(57)【要約】【課題】並列実行する複数のジョブネットに対して、ジョブネットごとの効果的な資源ブローカリングをおこなうことにより、個々のサービスの円滑な提供を図ること。【解決手段】ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付けると、ジョブネットごとに当該各ジョブネットの実行に利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１におこなう。この結果、資源ブローカリング装置１０１から割り当てられた資源ノード１０３を各ジョブネットに割り振ることにより、ジョブネットごとの効果的な資源ブローカリングをおこなうことができる。【選択図】図１
2008226181.tif 000002
【特許請求の範囲】
【請求項１】
サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行させる並列実行プログラムであって、
コンピュータを、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振手段、
前記割振手段を制御して、前記スクリプトデータに基づいて、前記ジョブネットごとに資源ノードを割り振る割振制御手段、
として機能させることを特徴とする並列実行プログラム。
【請求項２】
前記コンピュータを、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットごとの実行に利用する資源ノードの割当要求を前記資源ブローカに送信する送信手段、
前記送信手段によって前記割当要求が送信された結果、前記ジョブネットごとの実行に利用可能な資源ノードの割当応答を前記資源ブローカから受信する受信手段、として機能させ、
前記割振制御手段は、
前記割振手段を制御して、前記受信手段によって受信された割当応答に基づいて、前記ジョブネットごとに資源ノードを割り振ることを特徴とする請求項１に記載の並列実行プログラム。
【請求項３】
前記コンピュータを、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットに利用される資源ノードが不足しているか否かを検出する検出手段、として機能させ、
前記送信手段は、
前記検出手段によって不足していると検出された場合、前記ジョブネットに利用する資源ノードの割当要求を前記資源ブローカに送信することを特徴とする請求項２に記載の並列実行プログラム。
【請求項４】
前記コンピュータを、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットの実行が完了したか否かを検知する検知手段、として機能させ、
前記送信手段は、
前記検知手段によって実行完了が検知された場合、前記ジョブネットに割り振られている資源ノードの返却通知を前記資源ブローカに送信することを特徴とする請求項２または３に記載の並列実行プログラム。
【請求項５】
前記コンピュータを、
前記割振手段によって前記ジョブネットに割り振られている資源ノードの利用を停止する停止手段、として機能させ、
前記受信手段は、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該資源ノードの解放要求を前記資源ブローカから受信し、
前記停止手段は、
前記受信手段によって前記解放要求が受信された場合、当該解放要求によって特定される資源ノードの利用を停止することを特徴とする請求項２〜４のいずれか一つに記載の並列実行プログラム。
【請求項６】
請求項１〜５のいずれか一つに記載の並列実行プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項７】
サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行装置であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段と、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振手段と、
前記割振手段を制御して、前記スクリプトデータに基づいて、前記ジョブネットごとに資源ノードを割り振る割振制御手段と、
を備えることを特徴とする並列実行装置。
【請求項８】
サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行方法であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力工程と、
前記入力工程によって入力されたスクリプトデータに基づいて、前記ジョブネットの実行に利用する資源ノードの割当要求を前記ジョブネットごとにおこなうことにより、当該割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットごとに割り振る割振工程と、
を含んだことを特徴とする並列実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の資源ノードを利用してバッチジョブを並列実行する並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法に関する。
【背景技術】
【０００２】
従来、システムの構成に柔軟性がないために、処理能力の増強に多額の追加投資が必要になる場合がある。例えば、ビジネスの状況の変化とともに必要なピーク性能が高くなり、追加の計算資源を余儀なくされている。逆に突発的な負荷上昇を見越して予め大量の予備の計算資源を確保することもあるが、多くの場合無駄遣いになっている。
【０００３】
そこで、サービス間で計算資源を共用することにより、繁忙期などに他のサービス用に確保されている計算資源を利用して、計算資源の利用効率を高める技術が提供されている。近年、このような計算資源を最適化する技術分野において、サービス間の重要度に基づいて、各サービスに計算資源を割り当てる技術に対する要求が高まっている。
【０００４】
たとえば、複数のアプリケーションを実行するためのアプリケーションサーバが必要な場合に、割り当て可能な各アプリケーションサーバの負荷を測定し、起動するアプリケーションサーバの台数をアプリケーション間で調整する技術が提供されている。
【０００５】
また、バッチジョブに関して、アカウントまたはグループごとにポリシーを設定し、そのポリシーに基づいて、同時に実行するジョブの数を調整する技術が提供されている。
【０００６】
また、並列実行させるアプリケーションを新規開発する代わりに複数の並列動作可能なバッチジョブを投入して、それらの完了を待ち合わせることにより、アプリケーションサーバとバッチジョブとの資源ブローカリングを適切におこなう技術が提供されている（たとえば、下記特許文献１参照。）。
【０００７】
【特許文献１】特開２００４−３３４４９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術によれば、個々のサービスは、それぞれの価値基準で専用の計算資源の価値を決定し利用している。このため、オンラインアプリケーションなどインタラクティブなサービスとバッチアプリケーションなど非インタラクティブなサービスとの間では価値基準が違い、計算資源の融通が難しいという問題があった。
【０００９】
また、上述した特許文献１に記載の従来技術によれば、並列実行させたいアプリケーションの優先度をオンラインアプリケーションと同等の優先度で実行する場合に、それらのサービス間で計算資源の融通をおこなうことが非常に困難であるという問題があった。
【００１０】
なぜなら、資源ブローカリングのためのポリシーが、サービス間で利用される計算資源の割当状態を管理する資源ブローカに関するポリシーとバッチシステムの内部でのジョブ割り当てのポリシーとに分離してしまい、計算資源の融通を一貫して管理することが難しくなってしまうからである。
【００１１】
たとえば、バッチシステム中に高い優先度のジョブと低い優先度のジョブとが混在する場合に、適切な数の計算資源を要求するためには、非常に複雑なアルゴリズムが必要となるため、アルゴリズム作成にかかる作業労力および作業時間が増大してしまうという問題があった。
【００１２】
特に、ある特定のサービスと同等の優先度のバッチジョブ群となるようにバッチシステムから資源要求をおこなう場合には、特定のサービスの優先度と同じ優先度で資源要求をおこなう必要がある。このため、特定のサービスの優先度を予め判断し、その優先度にバッチシステムの優先度を設定して資源要求をおこなうこととなり、さらに複雑なアルゴリズムが必要となってしまう。
【００１３】
また、バッチシステムに新しい優先度のジョブを投入する場合には、バッチシステムに設定されている優先度の修正が必要となり、修正のためのコストがかかってしまうという問題があった。
【００１４】
この発明は、上述した従来技術による問題点を解消するため、ジョブネットごとの効果的な資源ブローカリングをおこなうことにより、個々のサービスの円滑な提供を実現することができる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、この発明にかかる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置、および並列実行方法は、サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行させる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置、および並列実行方法であって、ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付け、前記スクリプトデータに基づいて、前記ジョブネットの実行に利用する資源ノードの割当要求を前記ジョブネットごとにおこなうことにより、当該割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットごとに割り振ることを特徴とする。
【００１６】
また、上記発明において、前記ジョブネットごとの実行に利用する資源ノードの割当要求を前記資源ブローカに送信し、前記割当要求が送信された結果、前記ジョブネットごとの実行に利用可能な資源ノードの割当応答を前記資源ブローカから受信し、その割当応答に基づいて、前記ジョブネットごとに資源ノードを割り振ることとしてもよい。
【００１７】
これらの発明によれば、複数のジョブネットを並列して実行する場合に、ジョブネットごとに割当要求をおこない、その結果、資源ブローカから割り当てられた資源ノードをジョブネットごとに割り振ることができる。
【００１８】
また、上記発明において、前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットに利用される資源ノードが不足しているか否かを検出し、資源ノードが不足していると検出された場合、前記ジョブネットに利用する資源ノードの割当要求を前記資源ブローカに送信することとしてもよい。
【００１９】
この発明によれば、ジョブネットごとに割り振られた資源ノードを利用した当該ジョブネットの実行中に資源不足となると、ジョブネットに追加して割り振る資源ノードの割当要求をおこなうことができる。
【００２０】
また、上記発明において、前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットの実行が完了したか否かを検知し、実行完了が検知された場合、前記ジョブネットに割り振られている資源ノードの返却通知を前記資源ブローカに送信することとしてもよい。
【００２１】
この発明によれば、ジョブネットの実行が完了すると、当該ジョブネットに割り振られている資源ノードを資源ブローカに返却することができる。
【００２２】
また、上記発明において、前記ジョブネットに資源ノードが割り振られた結果、当該資源ノードの解放要求を前記資源ブローカから受信した場合、当該解放要求によって特定される資源ノードの利用を停止することとしてもよい。
【００２３】
この発明によれば、資源ノードの解放要求があった場合、その資源ノードを利用しているジョブネットの実行を一時停止または強制終了させることができる。
【００２４】
また、上記発明において、前記資源ノードの利用が停止された場合、当該資源ノードの返却通知を前記資源ブローカに送信することとしてもよい。
【００２５】
この発明によれば、資源ブローカから解放要求があった資源ノードを資源ブローカに返却することができる。
【発明の効果】
【００２６】
本発明にかかる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法によれば、ジョブネットごとの効果的な資源ブローカリングをおこなうことにより、個々のサービスの円滑な提供を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照して、この発明にかかる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法の好適な実施の形態を詳細に説明する。
【００２８】
（資源ブローカリングシステムのシステム構成図）
まず、この発明の実施の形態にかかる資源ブローカリングシステムのシステム構成について説明する。図１は、この発明の実施の形態にかかる資源ブローカリングシステムのシステム構成図である。図１において、資源ブローカリングシステム１００は、資源ブローカリング装置１０１と、並列実行装置１０２と、各サイトＣに設置されている資源ノード１０３とが、ネットワーク１１０を介して通信可能となって接続されている。
【００２９】
資源ブローカリング装置１０１は、複数のサービス間で利用される資源ノード１０３をブローカリングするコンピュータ装置であり、割当要求リストテーブル２００および資源リストテーブル３００を備えている。具体的には、要求されるサービスに応じて、どのサイトＣのどの資源ノード１０３を割り当てるかを決定したり、あるサービスを提供しているあるサイトＣの資源ノード１０３を他のサービスに割り当てたりする。
【００３０】
並列実行装置１０２は、サービス（バッチ処理など）の要求を受け付けるコンピュータ装置である。並列実行装置１０２は、受け付けたサービスに応じて、資源ブローカリング装置１０１に対してジョブネット（バッチジョブ）ごとの資源要求をおこなう。さらに、割り当てられた資源ノード１０３を利用して各ジョブネットを実行させる機能を有している。
【００３１】
また、資源ノード１０３は各サイトＣに設置されており、資源ブローカリング装置１０１によって割り与えられたサービスを並列実行装置１０２や他のクライアント端末（不図示）に提供するコンピュータ装置である。
【００３２】
（割当要求リストテーブルの記憶内容）
つぎに、割当要求リストテーブル２００について説明する。図２は、割当要求リストテーブル２００の記憶内容を示す説明図である。図２において、割当要求リストテーブル２００は、資源ブローカリング装置１０１に対しておこなわれる資源ノード１０３の割当要求ごとに、サービスＩＤ、ユーザアカウント、プライオリティおよび要求数に関する情報を格納している。
【００３３】
サービスＩＤは、割り当てをおこなうサービスを識別する識別情報である。ユーザアカウントは、割当要求をおこなうユーザを識別する識別情報であり、ユーザごとに設定されている。プライオリティは、要求する資源ノード１０３の優先度をあらわす情報である。ここでは、プライオリティの数値が大きいほど優先度が高いことを示している。
【００３４】
要求数は、要求する資源ノード１０３の台数をあらわしている。割当要求リストテーブル２００の記憶内容は、ユーザからの割当要求を受け付けると、その都度、内容が更新される。資源ブローカリング装置１０１は、資源ブローカリングシステム１００のポリシーに従って、このプライオリティに基づく資源ノード１０３のブローカリングをおこなう。
【００３５】
（資源リストテーブルの記憶内容）
つぎに、資源リストテーブル３００について説明する。図３は、資源リストテーブル３００の記憶内容を示す説明図である。図３において、資源リストテーブル３００は、資源ブローカリング装置１０１の管理下にある資源ノード１０３ごとに、ノードＩＤ、サービス名、および資源情報を格納している。
【００３６】
ノードＩＤは、各サイトＣに設置されている資源ノード１０３を識別する識別情報であり、資源ノード１０３ごとに設定されている。サービス名は、割り当てられているサービスの名称である。なお、サービスに割り当てられていない資源ノード１０３の項目には「ｎｏｎｅ」と表記されている。また、サービス名には、各サービスを識別するサービスＩＤが関連付けられている。
【００３７】
資源情報は、各資源ノード１０３に関する情報であり、たとえば、各資源ノード１０３のＩＰアドレス、使用可能なＯＳ、ＣＰＵ性能、インストールされているアプリケーションソフトなどの静的な情報であってもよく、また、ＣＰＵ使用率、メモリ使用率などの動的な情報であってもよい。
【００３８】
（割当資源リストテーブルの記憶内容）
つぎに、割当資源リストテーブル４００ついて説明する。図４、割当資源リストテーブル４００の記憶内容を示す説明図である。図４において、割当資源リストテーブル４００は、ジョブネットごとに、ジョブネット番号、ノードＩＤ、およびノード状態に関する資源情報４００−１〜４００−ｎを格納している。
【００３９】
ジョブネット番号は、各ジョブネットを識別する識別番号である。ノードＩＤは、ジョブネットごとに割り当てられた資源ノード１０３を識別する識別情報である。ノード状態は、各資源ノード１０３の割振り状態をあらわす情報である。資源ノード１０３がジョブネットの実行に利用されている場合には「使用中」となり、利用されていない場合には「未使用」となる。
【００４０】
ここで、ジョブネット番号が「ＪＮ−１」のジョブネットを例に挙げて説明する。このジョブネット（ＪＮ−１）には、ノードＩＤが「０７−×××」、「１２−○○○」および「６３−□□□」である３台の資源ノード１０３が割り当てられており、３台の資源ノード１０３すべてがジョブネット（ＪＮ−１）の実行に利用されている。
【００４１】
（コンピュータ装置のハードウェア構成）
つぎに、図１に示したコンピュータ装置のハードウェア構成について説明する。図５は、図１に示したコンピュータ装置のハードウェア構成を示す説明図である。図５において、コンピュータ装置は、コンピュータ本体５１０と、入力装置５２０と、出力装置５３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ、ＷＡＮやインターネットなどのネットワーク１１０に接続可能である。
【００４２】
コンピュータ本体５１０は、ＣＰＵ、メモリ、インターフェースを有する。ＣＰＵは、コンピュータ装置のハードウェア構成の全体の制御を司る。メモリは、ＲＯＭ、ＲＡＭ、ＨＤ、光ディスク５１１、フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００４３】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク５１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク５１１およびフラッシュメモリはコンピュータ本体５１０に対し着脱自在である。インターフェースは、入力装置５２０からの入力、出力装置５３０への出力、ネットワーク１１０に対する送受信の制御をおこなう。
【００４４】
また、入力装置５２０としては、キーボード５２１、マウス５２２、スキャナ５２３などがある。キーボード５２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス５２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ５２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体５１０内のメモリに格納される。なお、スキャナ５２３にＯＣＲ機能を持たせてもよい。
【００４５】
また、出力装置５３０としては、ディスプレイ５３１、スピーカ５３２、プリンタ５３３などがある。ディスプレイ５３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、スピーカ５３２は、効果音や読み上げ音などの音声を出力する。また、プリンタ５３３は、画像データや文書データを印刷する。
【００４６】
（並列実行装置１０２の機能的構成）
つぎに、この発明の実施の形態にかかる並列実行装置１０２の機能的構成について説明する。図６は、この発明の実施の形態にかかる並列実行装置１０２の機能的構成を示すブロック図である。図６において、並列実行装置１０２は、割当資源リストテーブル４００と、入力部６０１と、割振部６０２と、割振制御部６０３と、生成／送信部６０４と、受信部６０５と、検出部６０６と、検知部６０７と、停止部６０８と、から構成されている。なお、本実施の形態ではメモリに画像データなどの格納をおこなうこととしたが、メモリの代わりにハードディスクなどの記録媒体に構成することも可能である。
【００４７】
これら各機能６０１〜６０８は、メモリに格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能６０１〜６０８からの出力データはメモリに保持される。また、図６中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００４８】
並列実行装置１０２は、サービスに利用される資源ノード１０３の割当状態を管理する資源ブローカリング装置１０１によって割り当てられる資源ノード１０３を利用してジョブを実行させるコンピュータ装置である。サービスとは、資源ノード１０３のコンピュータ端末に提供する情報処理であり、たとえば、給与計算処理、科学技術計算処理などの非インタラクティブなサービスやインターネット電話やテレビ会議システムといったインタラクティブなサービスがある。
【００４９】
まず、入力部６０１は、ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける機能を有する。具体的には、図５に示したキーボード５２１やマウス５２２などの入力装置５２０をユーザが操作することで、ジョブネットに関するスクリプトデータの入力を受け付けて、メモリに保持する。
【００５０】
ジョブネットとは、少なくとも一つ以上のジョブから構成され、ジョブの実行順序や連携関係が規定されたジョブの集合である。スクリプトデータとは、ジョブネットに関する制御スクリプトが記述されたデータであり、ジョブネットを構成するジョブの実行データが含まれている。
【００５１】
スクリプトデータには、少なくとも一つ以上のジョブネットに関する制御スクリプトが記述可能である。すなわち、１つのジョブネットに関する制御スクリプトが記述されていてもよく、また、複数のジョブネットに関する制御スクリプトが記述されていてもよい。
【００５２】
割振部６０２は、入力部６０１によってスクリプトデータが入力された場合、ジョブネットの実行に利用する資源ノード１０３の割当要求に応じて資源ブローカリング装置１０１から割り当てられた資源ノード１０３をジョブネットに割り振る機能を有する。
【００５３】
具体的には、割振部６０２は、メモリからスクリプトデータを読み出して、そのスクリプトデータに含まれている実行データに基づく資源ノード１０３の割当要求を資源ブローカリング装置１０１におこなう。その結果、資源ブローカリング装置１０１から割り当てられた資源ノード１０３をジョブネットに割り振る。
【００５４】
割振制御部６０３は、割振部６０２を制御して、入力部６０１によって入力されたスクリプトデータに基づいて、ジョブネットごとに資源ノードを割り振る機能を有する。具体的には、割振制御部６０３は、メモリからスクリプトデータを読み出して、複数のスクリプトデータが入力されたか、また、スクリプトデータに複数のジョブネットに関する制御スクリプトが記述されているかを判断し、その判断結果に基づいて割振部６０２を制御する。
【００５５】
たとえば、各スクリプトデータに１つのジョブネットに関する制御スクリプトが記述されている場合には、各スクリプトデータが入力されると、その都度、割振部６０２を制御して、ジョブネットごとに資源ノード１０３を割り振ることとなる。
【００５６】
また、スクリプトデータに複数のジョブネットに関する制御スクリプトが記述されている場合には、その制御スクリプトを個々のジョブネットの制御スクリプトに分割することにより、割振部６０２を制御して、ジョブネットごとに資源ノード１０３を割り振ることとなる。
【００５７】
ここで、割振制御部６０３により、割振部６０２を制御して、ジョブネットごとに資源ノード１０３を割り振る際に実行される各機能について説明する。まず、生成／送信部６０４は、入力部６０１によってスクリプトデータが入力された場合、ジョブネットごとの実行に利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１に送信する機能を有する。
【００５８】
具体的には、生成／送信部６０４は、メモリからスクリプトデータを読み出して、各ジョブネットを構成するジョブの実行データに基づく資源ノード１０３の割当要求を生成し、その割当要求を資源ブローカリング装置１０１に送信する。
【００５９】
この割当要求には、たとえば、要求する資源ノード１０３の台数、その資源ノード１０３のプライオリティ、および並列実行装置１０２を使用するユーザのユーザアカウントに関する情報が含まれている。資源ブローカリング装置１０１に送信された割当要求は、たとえば、図２に示した割当要求リストテーブル２００に記憶される。
【００６０】
資源ブローカリング装置１０１は、並列実行装置１０２からの割当要求を受信すると、たとえば、割当要求リストテーブル２００および資源リストテーブル３００に保持されている記憶内容に基づいて、ジョブネットごとの資源ノード１０３のブローカリングをおこなうこととなる。
【００６１】
なお、資源ブローカリング装置１０１において実行されるブローカリング処理は公知技術のため説明を省略する。たとえば、［背景技術］で示した従来技術によって資源ノード１０３のブローカリングを実現することができる。
【００６２】
受信部６０５は、生成／送信部６０４によって割当要求が送信された結果、ジョブネットごとの実行に利用可能な資源ノード１０３の割当応答を資源ブローカリング装置１０１から受信する機能を有する。割当応答には、たとえば、資源ブローカリング装置１０１から割り当てられた資源ノード１０３を識別するノードＩＤが含まれている。受信部６０５によって受信された割当応答は、たとえば、図４に示した割当資源リストテーブル４００に資源情報として記憶される。
【００６３】
そして、割振制御部６０３は、割振部６０２を制御して、受信部６０５によって受信された割当応答に基づいて、ジョブネットごとに資源ノード１０３を割り振る。具体的には、割振制御部６０３は、割振部６０２を制御して、割当資源リストテーブル４００から対応する資源情報を読み出して、その資源情報に基づいて、ジョブネットごとに資源ノード１０３を割り振る。
【００６４】
検出部６０６は、割振部６０２によってジョブネットに資源ノード１０３が割り振られた結果、当該ジョブネットに利用される資源ノードが不足しているか否かを検出する機能を有する。検出部６０６によって検出された検出結果はメモリに保持される。
【００６５】
具体的には、たとえば、検出部６０６は、ジョブネットが投入されたバッチシステムにおけるジョブの実行状態に基づいて、ジョブネットに利用される資源ノードが不足しているか否かを検出することとしてもよい。バッチシステムとは、ジョブネットを構成する複数のジョブを制御スクリプトに従って実行可能な情報処理システムである。
【００６６】
また、初期においては、資源ノード１０３が充足していても、個々のサービスを運用していく過程で他のサービスに利用するために、割り当てられている資源ノード１０３を取り上げられる場合がある。このような場合にも、検出部６０６は資源ノード不足を検出することとなる。
【００６７】
生成／送信部６０４は、検出部６０６によって不足していると検出された場合、ジョブネットに利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１に送信する機能を有している。具体的には、生成／送信部６０４は、メモリから検出部６０６によって検出された検出結果を読み出し、資源ノード不足を補うための資源ノード１０３を追加する割当要求を資源ブローカリング装置１０１に送信する。
【００６８】
検知部６０７は、割振部６０２によってジョブネットに資源ノードが割り振られた結果、当該ジョブネットの実行が完了したか否かを検知する機能を有する。具体的には、検知部６０７は、実行中のジョブネットを監視し、制御スクリプトに従ってすべてのジョブの実行が完了したか否かを検知する。検知部６０７によって検知された検知結果はメモリに保持される。
【００６９】
生成／送信部６０４は、検知部６０７によって実行完了が検知された場合、ジョブネットに割り振られている資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信する機能を有する。具体的には、生成／送信部６０４は、メモリから検知部６０７によって検知された検知結果を読み出して、実行が完了したジョブネットに割り振られている資源ノード１０３の返却通知を生成し、その返却通知を資源ブローカリング装置１０１に送信する。返却通知には、たとえば、実行が完了したジョブネットに割り振られている資源ノード１０３を識別するノードＩＤが含まれている。
【００７０】
停止部６０８は、割振部６０２によってジョブネットに割り振られている資源ノード１０３の利用を停止する機能を有する。また、受信部６０５は、割振部６０２によってジョブネットに資源ノード１０３が割り振られた結果、この資源ノード１０３の解放要求を資源ブローカリング装置１０１から受信する機能を有する。この解放要求には、解放を要求する資源ノード１０３を識別するノードＩＤが含まれている。受信部６０５によって受信された解放要求はメモリに保持される。
【００７１】
具体的には、停止部６０８は、受信部６０５によって解放要求が受信された場合、その解放要求をメモリから読み出して、当該解放要求によって特定される資源ノード１０３の利用を停止する。すなわち、解放要求によって特定される資源ノード１０３を利用したジョブネットの実行を停止する。
【００７２】
生成／送信部６０４は、停止部６０８によって資源ノード１０３の利用が停止された場合、この資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信する機能を有する。この結果、ジョブネットの実行に割り当てられた資源ノード１０３が資源ブローカリング装置１０１に返却されることとなる。
【００７３】
また、割振制御部６０３は、割振部６０２を制御して、ジョブネットを投入するバッチシステムを当該ジョブネットごとに起動することにより、バッチシステムごとに資源ノード１０３を割り振ることとしてもよい。この場合、生成／送信部６０４は、バッチシステムに投入されたジョブの実行データに基づいて、バッチシステムに利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１に送信する。
【００７４】
そして、受信部６０５は、生成／送信部６０４によって割当要求が送信された結果、バッチシステムに利用可能な資源ノード１０３の割当応答を資源ブローカリング装置１０１から受信し、割振制御部６０３は、割振部６０２を制御して、受信部６０５によって受信された割当応答に基づいて、バッチシステムごとに資源ノード１０３を割り振る。
【００７５】
また、検出部６０６は、割振部６０２によってバッチシステムに資源ノード１０３が割り振られた結果、当該バッチシステムに利用される資源ノード１０３が不足しているか否かを検出し、不足していると検出された場合、生成／送信部６０４により、バッチシステムに利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１に送信することとしてもよい。
【００７６】
また、検知部６０７は、割振部６０２によってバッチシステムに資源ノード１０３が割り振られた結果、当該バッチシステムに投入されたジョブネットの実行が完了したか否かを検知し、実行完了が検知された場合、生成／送信部６０４により、バッチシステムに割り振られている資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信することとしてもよい。
【００７７】
さらに、停止部６０８は、検知部６０７によって実行完了が検知された場合、バッチシステムを停止することとしてもよい。また、受信部６０５によってバッチシステムに利用している資源ノード１０３の解放要求が受信された場合、停止部６０８により、バッチシステムを停止し、生成／送信部６０４により、バッチシステムに割り振られている資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信することとしてもよい。
【００７８】
（並列実行装置１０２の並列実行処理手順）
つぎに、この発明の実施の形態にかかる並列実行装置１０２の並列実行処理手順について説明する。図７は、この発明の実施の形態にかかる並列実行装置１０２の並列実行処理手順を示すフローチャートである。図７のフローチャートにおいて、まず、入力部６０１により、ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付けたか否かを判断する（ステップＳ７０１）。
【００７９】
ここで、スクリプトデータの入力を待って（ステップＳ７０１：Ｎｏ）、入力された場合（ステップＳ７０１：Ｙｅｓ）、生成／送信部６０４により、各ジョブネットの実行に利用する資源ノード１０３の割当要求を資源ブローカリング装置１０１に送信する（ステップＳ７０２）。
【００８０】
このあと、受信部６０５により、生成／送信部６０４によって割当要求が送信された結果、各ジョブネットの実行に利用可能な資源ノード１０３の割当応答を資源ブローカリング装置１０１から受信する（ステップＳ７０３）。そして、割振制御部６０３により、割振部６０２を制御して、受信部６０５によって受信された割当応答に基づいて、ジョブネットごとに資源ノード１０３を割り振る（ステップＳ７０４）。
【００８１】
このあと、検出部６０６により、割振部６０２によってジョブネットに資源ノード１０３が割り振られた結果、当該ジョブネットに利用される資源ノード１０３が不足しているか否かを判断する（ステップＳ７０５）。ここで、資源不足が検出された場合（ステップＳ７０５：Ｙｅｓ）、ステップＳ７０２に移行し、資源不足を補う追加の割当要求を送信する。
【００８２】
一方、資源不足が検出されなかった場合（ステップＳ７０５：Ｎｏ）、検知部６０７により、ジョブネットの実行が完了したか否かを検知する（ステップＳ７０６）。ここで、実行完了が検知された場合（ステップＳ７０６：Ｙｅｓ）、生成／送信部６０４により、ジョブネットに割り振られている資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信して（ステップＳ７０７）、本フローチャートによる一連の処理を終了する。また、ステップＳ７０６において実行完了が検知されなかった場合（ステップＳ７０６：Ｎｏ）、ステップＳ７０５に戻る。
【００８３】
つぎに、資源ブローカリング装置１０１から資源ノード１０３の解放要求があった場合に、並列実行装置１０２において実行される資源返却処理手順について説明する。図８は、資源返却処理手順を示すフローチャートである。図８において、割振部６０２によってジョブネットに資源ノード１０３が割り振られた結果、受信部６０５により、資源ノード１０３の解放要求を資源ブローカリング装置１０１から受信したか否かを判断する（ステップＳ８０１）。
【００８４】
ここで、解放要求を受信するのを待って（ステップＳ８０１：Ｎｏ）、受信した場合（ステップＳ８０１：Ｙｅｓ）、停止部６０８により、解放要求によって特定される資源ノード１０３の利用を停止する（ステップＳ８０２）。最後に、生成／送信部６０４により、停止部６０８によって資源ノード１０３の利用が停止された場合、その資源ノード１０３の返却通知を資源ブローカリング装置１０１に送信して（ステップＳ８０３）、本フローチャートによる一連の処理を終了する。
【００８５】
このように、この発明の実施の形態によれば、複数のジョブネットを並列して実行する場合に、ジョブネットごとに割当要求をおこない、その結果、資源ブローカリング装置１０１から割り当てられた資源ノード１０３をジョブネットごとに割り振ることができる。
【００８６】
さらに、ジョブネットごとに割り振られた資源ノード１０３を利用した当該ジョブネットの実行中に資源不足となると、ジョブネットに追加して割り振る資源ノード１０３の割当要求をおこなうことができる。
【００８７】
また、ジョブネットの実行が完了すると、当該ジョブネットに割り振られている資源ノード１０３を資源ブローカリング装置１０１に返却することができる。また、資源ノード１０３の解放要求があった場合、その資源ノード１０３を利用しているジョブネットの実行を一時停止または強制終了させて、資源ブローカリング装置１０１に返却することができる。
【００８８】
このようにして、ジョブネットごとに資源ノード１０３の割当要求およびそれにともなう資源ノード１０３の割り振りをおこなうことにより、効果的な資源ブローカリングをおこなうことができ、個々のサービスの円滑な提供を実現することができる。
【実施例１】
【００８９】
つぎに、資源ブローカリングシステム１００の実施例１について説明する。まず、資源ブローカリングシステム１００の詳細なシステム構成について説明する。図９は、資源ブローカリングシステム１００の詳細なシステム構成図である。資源ブローカリングシステム１００は、グリッド・サービスサブシステム９０１と、資源ブローカリングサブシステム９０２と、グリッド情報サブシステム９０３と、運用管理サブシステム９０４と、から構成されている。
【００９０】
グリッド・サービスサブシステム９０１とは、グリッドで実行する個々のサービスを実現するサブシステムであり、サービスの種類ごとに１つずつ用意される。グリッドとは、地理的に分散した複数のコンピュータシステムをネットワークで結び、計算パワーを提供する仮想的な１つのシステムとして見せる技術である。グリッド・サービスサブシステム９０１は、既存のアプリケーションをグリッド環境に対応させ、資源ブローカリングシステム１００上のサービスとして実行できるようにする。
【００９１】
また、資源ブローカリングサブシステム９０２とは、グリッド・サービスサブシステム９０１からの資源要求を受け付けて、サービスの実行に必要な物理的な資源ノード１０３をブローカリングする。優先度が高いサービスの資源要求が満たされるように、各サービスへの資源割り当ての配分を動的に調整する。また、資源要求をサービスや資源の優先度に基づいて調停する機能や、実行するアプリケーションを個々の資源ノード１０３ごとに切り替える機能を備えている。
【００９２】
また、グリッド情報サブシステム９０３とは、資源ブローカリング装置１０１内の様々な情報を収集して提供するサブシステムである。たとえば、個々の資源ノード１０３に関する情報（ＣＰＵの性能やＯＳの種類）や各サービスに関する情報（負荷や資源ノード１０３の獲得状況）の収集と提供をおこなう。
【００９３】
また、運用管理サブシステム９０４とは、資源ブローカリング装置１０１の運用管理をおこなうためのサブシステムである。資源ブローカリング装置１０１の全体的な動作状況の確認や運用ポリシーの設定をおこなう。
【００９４】
つぎに、資源ブローカリングシステム１００を構成するモジュールについて説明する。図９中、ライフサイクルマネージャＬＭは、グリッド・サービスサブシステム９０１のモジュールである。ライフサイクルマネージャＬＭは、サービスの開始から終了まで、サービスに割り当てられた資源ノード１０３を管理する。また、サービスの負荷の変動に応じて、資源ノード１０３の追加や解放をアービトレータＡＲＢに要求する。また、管理している資源ノード１０３の優先度を自律的に調節する機能も有する。
【００９５】
また、ライフサイクルマネージャファクトリサービスＬＭＦＳは、資源ブローカリングサブシステム９０２のモジュールであり、サービスの起動と停止をおこなう。サービスの起動要求を受け付けると、そのサービスのライフサイクルマネージャＬＭを実行するための資源ノード１０３を要求し、割り当てられた資源ノード１０３でライフサイクルマネージャＬＭを起動する。また、サービスの停止要求を受け付けると、そのサービスのライフサイクルマネージャＬＭを停止して資源ノード１０３を解放する。
【００９６】
また、アービトレータＡＲＢは、資源ブローカリングサブシステム９０２のモジュールであり、ライフサイクルマネージャＬＭからの資源ノード１０３の追加／解放要求を受け付けて、各サービスに対して資源ノード１０３を割り当てる。また、各サービスの優先度に基づいて調停をおこない、優先度の高いサービスにグリッドの計算パワーを集中させる。
【００９７】
また、物理資源ブローカＰＲＢは、資源ブローカリングサブシステム９０２のモジュールである。物理資源ブローカＰＲＢは、グリッド内の各資源ノード１０３の物理的な属性情報に基づいて、サービスを実行する能力や機能を持った資源ノード１０３をアービトレータＡＲＢにブローカリングする。
【００９８】
また、資源ロールスイッチャＲＲＳは、資源ブローカリングサブシステム９０２のモジュールである。資源ロールスイッチャＲＲＳは各資源ノード１０３が実行するサービス（アプリケーション）の切り替えを実行する。
【００９９】
また、ノードモニタＮＭは、グリッド情報サブシステム９０３のためのモジュールである。ノードモニタＮＭは、各資源ノード１０３に１つずつ配置され、資源ノード１０３の情報（ＣＰＵの種類や負荷、メモリ使用率など）を収集し、定期的にクラスタマネージャＣＭに報告する。また、物理切替機ＡＳＣＣは資源ブローカリングサブシステム９０２における論理的な切替処理に応じて、物理的に資源ノード１０３のサービス切替処理をおこなう。
【０１００】
また、クラスタマネージャＣＭは、グリッド情報サブシステム９０３のためのモジュールであり、各サイトＣに１つずつ配置される。クラスタマネージャＣＭは、サイトＣ内のノードモニタＮＭから集まる情報をルートサーバＲＳに中継する。
【０１０１】
また、ルートサーバＲＳは、グリッド情報サブシステム９０３のモジュールであり、グリッド内のすべての資源ノード１０３の情報を集約する。また、アーカイバＡＲは、グリッド情報サブシステム９０３のモジュールであり、ルートサーバＲＳに集約された情報を蓄積し、データベース化するモジュールである。資源ブローカリングサブシステム９０２に対して、データベースの検索機能を提供する。
【０１０２】
また、エージェントＡＧは、資源ノード１０３が実行するアプリケーションを受け付け、アプリケーションとライフサイクルマネージャＬＭを接続する。また、アプリケーションラッパーＡＷは、資源ブローカリングサブシステム９０２のためのモジュールであり、グリッドの各資源ノード１０３に配置するモジュールで、資源ノード１０３が実行するアプリケーションのＡＰＩをラッピングする。
【０１０３】
また、アドミニストレーションポータルＡＰＴＬは、資源ブローカリングサブシステム９０２のモジュールであり、グリッドで実行するサービスの管理者がサービスの起動や停止をおこなうためのインターフェースを提供する。
【０１０４】
また、アドミニストレーションコンソールＡＣＮＳは、運用管理サブシステム９０４のモジュールであり、資源ブローカリング装置１０１の管理者が資源ブローカリングシステム１００全体の設定や調整をおこなうためのインターフェースを提供する。
【０１０５】
つぎに、実施例１における資源ブローカリング処理について説明する。図１０は、実施例１における資源ブローカリング処理を示すシーケンス図である。図１０に示した例では、資源ノード１０３の要求と割り当てに関する典型的な動作シーケンスを示す。この例では、サービスｓの優先度がサービスｔの優先度よりも高いと仮定している。なお、カッコ数字はシーケンスの順序をあらわしている。
【０１０６】
アービトレータＡＲＢは各ライフサイクルマネージャＬＭからの資源ノード要求をサービスの優先度に基づいて調停するため、サービスｓのライフサイクルマネージャＬＭ（以下、「ＬＭｓ」と表記する）の要求がサービスｔのライフサイクルマネージャＬＭ（以下、「ＬＭｔ」と表記する）の要求よりも優先的に扱われる。
【０１０７】
図１０では、アービトレータＡＲＢでの調停の結果、サービスｓに割り当てられている資源ノード１０３をサービスｔの資源ノード１０３に切り替えることが決定され、物理資源ブローカＰＲＢ、資源ロールスイッチャＲＲＳ、物理切替機ＡＳＣＣ、アプリケーションラッパーＡＷの各モジュールが連携して切替をおこなうシーケンスをあらわしている。
【０１０８】
つぎに、実施例１における並列実行処理について説明する。図１１は、実施例１における資源ブローカリングシステム１００の具体的なシステム構成を示す説明図である。実施例１では、図６に示した並列実行装置１０２の割振部６０２の機能を複数の計算機（並列実行装置１０２および資源ノード１０３）を利用して実現する。
【０１０９】
具体的には、並列実行装置１０２上で複数のバッチシステムを起動させることが難しい場合に、資源ノード１０３上でバッチシステムを起動させてジョブネットを投入する。資源ノード１０３上で起動させるバッチシステムの数は、ジョブネットの数に応じて動的に変化させる。
【０１１０】
たとえば、実行すべきジョブネットが３つの場合、３台の資源ノード１０３上でそれぞれバッチシステムを起動させる。ここでは、実行すべきジョブネットが１つの場合を例に挙げて説明する。なお、実行すべきジョブネットが複数存在する場合には、以下に説明する並列実行処理をジョブネットごとに実行することとなる。
【０１１１】
図１１において、資源ノード１０３−１〜１０３−３は、並列実行装置１０２が有する機能を備えていることとする。具体的には、並列実行装置１０２の機能を実現する並列実行プログラムが資源ノード１０３−１〜１０３−３にインストールされている。また、並列実行装置１０２は、資源ノード１０３に対する遠隔実行を可能とする機能を有している。
【０１１２】
具体的には、スクリプトデータに基づいてジョブの実行順序を制御する制御部（以下、「オーガニックジョブコントローラーＯＪＣ」という）を利用して、資源ノード１０３に対する遠隔実行を可能とする。また、バッチシステムに対する各種要求、およびバッチシステムからの各種応答により、資源ノード１０３に対する遠隔実行を可能とする。
【０１１３】
また、アービトレータＡＲＢは、並列実行装置１０２のユーザのアカウントに基づいて、資源ノード１０３の割り当てポリシーを決定する。ここでは、並列実行装置１０２のライフサイクルマネージャＬＭから送信されてくる資源要求に対して、少なくとも１台の資源ノード１０３を割り当て、さらに、資源ブローカリングシステム１００の管理者が定めるポリシーに従って資源ノード１０３を割り当てることとする。なお、ライフサイクルマネージャＬＭは、図６に示した生成／送信部６０４に相当する。
【０１１４】
図１１において、資源ノード１０３−１上でバッチシステムが起動されている（以下、バッチシステムを起動する資源ノード１０３を「マスタノード」という）。また、アービトレータＡＲＢにより、資源ノード１０３−２，１０３−３が並列実行装置１０２に割り当てられている（以下、並列実行装置１０２に割り当てられた資源ノード１０３を「ワーカ」という）。
【０１１５】
ここで、実施例１における並列実行処理手順について説明する。図１２は、実施例１における並列実行処理を示すシーケンス図（その１）である。図１２に示した例では、ジョブネットごとに実行される典型的な動作シーケンスを示す。なお、カッコ数字はシーケンスの順序をあらわしている。
【０１１６】
まず、並列実行装置１０２にジョブネットに関するスクリプトデータが入力された場合、ライフサイクルマネージャＬＭを起動する（１）。つぎに、ライフサイクルマネージャＬＭにより、アービトレータＡＲＢに対して、バッチシステムを起動するための１台の資源ノード１０３を要求する（２）。
【０１１７】
このあと、アービトレータＡＲＢは、ライフサイクルマネージャＬＭからの資源ノード要求に基づいてブローカリングし（３）、ライフサイクルマネージャＬＭに資源ノード１０３の割り当て通知をおこなう（４）。ライフサイクルマネージャＬＭは、アービトレータＡＲＢからの割り当て通知に従って、資源ノード１０３−１（以下、「マスタノード１０３−１」という）に対してバッチシステムの起動要求をおこなう（５）。
【０１１８】
マスタノード１０３−１は、バッチシステムを起動して、ライフサイクルマネージャＬＭに起動完了通知をおこなう（６）。つぎに、ライフサイクルマネージャＬＭは、オーガニックジョブコントローラーＯＪＣを制御して、マスタノード１０３−１のバッチシステムにジョブ（ジョブネット）を投入する（７）。
【０１１９】
このあと、ライフサイクルマネージャＬＭは、バッチシステムのジョブ数を監視し、マスタノード１０３−１のバッチシステムのキューに溜まったジョブ数に応じて、アービトレータＡＲＢに資源ノード１０３を要求する（８）。
【０１２０】
アービトレータＡＲＢは、ライフサイクルマネージャＬＭからの資源ノード要求に応じてブローカリングして割り当てる資源ノード１０３−２，１０３−３を決定し、資源ノード１０３−２，１０３−３のエージェントＡＧを起動し（９）、これら資源ノード１０３−２，１０３−３の割り当て通知をおこなう（１０）。
【０１２１】
このあと、ライフサイクルマネージャＬＭは、マスタノード１０３−１のバッチシステムに対して、割り当てられた資源ノード１０３−２，１０３−２（以下、「ワーカ１０３−２，１０３−３」という）の利用可能通知（たとえば、図４に示した割当資源リストテーブル４００内の資源情報４００−１〜４００−ｎのいずれか）をおこなう（１１）。
【０１２２】
マスタノード１０３−１のバッチシステムは、ライフサイクルマネージャＬＭからの利用可能通知によって特定されるワーカ１０３−２，１０３−３のエージェントＡＧに対して、ジョブネットの制御スクリプトに基づいてジョブを投入し（１２）、ワーカ１０３−２，１０３−３を利用してジョブを実行する（１３）。
【０１２３】
つぎに、実施例１における並列実行処理の実行終了シーケンスについて説明する。実行終了シーケンスは、アービトレータＡＲＢから資源解放要求が通知された場合、またはジョブネットの実行が完了した場合に開始される。図１３および図１４は、実施例１における並列実行処理を示すシーケンス図（その２およびその３）である。
【０１２４】
図１３において、ライフサイクルマネージャＬＭは、アービトレータＡＲＢから資源ノード１０３の解放要求が通知されると（１４）、マスタノード１０３−１のバッチシステムに対してワーカ１０３−２，１０３−３の利用不能通知をおこなう（１５）。
【０１２５】
つぎに、マスタノード１０３−１のバッチシステムは、ワーカ１０３−２，１０３−３からジョブを回収（ジョブをキューの先頭に戻す）し（１６）、ライフサイクルマネージャＬＭに回収通知をおこなう（１７）。
【０１２６】
このあと、ライフサイクルマネージャＬＭは、ワーカ１０３−２，１０３−３の返却通知をアービトレータＡＲＢにおこない（１８）、その結果、ワーカ１０３−２，１０３−３がアービトレータＡＲＢに返却される。このあと、マスタノード１０３−１のバッチシステムは、ライフサイクルマネージャＬＭからの利用可能通知を待ち、利用可能通知があった場合、それに従ってジョブを投入し、ジョブを再実行する。
【０１２７】
図１４において、ライフサイクルマネージャＬＭは、オーガニックジョブコントローラーＯＪＣによる実行が完了、すなわち、ジョブネット（ワークフロー）の実行完了を検出すると（１４）、マスタノード１０３−１のバッチシステムに対してワーカ１０３−２，１０３−３の利用不能通知をおこなう（１５）。
【０１２８】
このあと、ライフサイクルマネージャＬＭは、マスタノード１０３−１のバッチシステムからの利用不能応答があると（１６）、ワーカ１０３−２，１０３−３の返却通知をアービトレータＡＲＢにおこない（１７）、その結果、ワーカ１０３−２，１０３−３がアービトレータＡＲＢに返却される。
【０１２９】
そして、ライフサイクルマネージャＬＭは、マスタノード１０３−１のバッチシステムにバッチシステム終了要求をおこなう（１８）。このあと、マスタノード１０３−１からバッチシステム終了応答があると（１９）、マスタノード１０３−１の返却通知をアービトレータＡＲＢにおこない（２０）、その結果、マスタノード１０３−１がアービトレータＡＲＢに返却される。
【０１３０】
ここで、資源ブローカリングシステム１００の実行例について説明する。図１５〜図１７は、資源ブローカリングシステム１００の実行例を示す説明図である。ここでは、非インタラクティブなサービスとして、給与計算アプリケーションおよび科学技術計算アプリケーションを提供し、インタラクティブなサービスとして、ＷｅｂのアプリケーションサーバおよびＷｅｂサーバを提供する場合について説明する。
【０１３１】
給与計算アプリケーションおよび科学技術計算アプリケーションは、各アプリケーションを実行するジョブネットに関する制御スクリプトおよび実行データを並列実行装置１０２に入力することによって実行される。また、資源ブローカリングシステム１００の管理者によって、以下に示すポリシーが設定されていることとする。なお、割り当て可能な資源ノード１０３の台数は２０台とする。
【０１３２】
（ａ）Ｗｅｂサーバには、最低１台の資源ノード１０３を割り当て、さらに、Ｗｅｂサーバの需要に従って可能な限り資源ノード１０３を割り当てる。（ｂ）給与計算アプリケーションには、最低２台の資源ノード１０３を割り当て、さらに、残りの均等分の資源ノード１０３を割り当てる。
【０１３３】
（ｃ）Ｗｅｂのアプリケーションサーバには、残りの均等分の資源ノード１０３を割り当てる。（ｄ）科学技術計算アプリケーションには、残りの均等分の２倍の台数の資源ノード１０３を割り当てる。なお、残りの均等分とは、各サービスに最低限必要となる資源ノード１０３が割り当てられた結果、残りの資源ノード１０３をサービスの数で除算したものである。
【０１３４】
図１５において、まず、ポリシーに従って各サービスに資源ノード１０３を割り当てると、給与計算アプリケーションには８台、科学技術計算アプリケーションには７台、Ｗｅｂのアプリケーションサーバには４台、Ｗｅｂサーバには１台の資源ノード１０３が割り当てられることとなる。この結果、制御スクリプトに従って、給与計算アプリケーションおよび科学技術計算アプリケーションが実行されることとなる。
【０１３５】
図１６において、給与計算アプリケーションが終了すると、残りの資源ノード１０３の台数が１９台となり、その結果、科学技術計算アプリケーションには１３（１２．６）台、Ｗｅｂのアプリケーションサーバには６（６．３）台、Ｗｅｂサーバには１台の資源ノード１０３が割り当てられることとなる。
【０１３６】
図１７において、Ｗｅｂサーバの需要が高まると、各サービスの重要度に従って、科学技術計算アプリケーションには１０台、Ｗｅｂのアプリケーションサーバには５台、Ｗｅｂサーバには５台の資源ノード１０３が割り当てられることとなる。
【０１３７】
この実施例１によれば、トータルコストの削減を図ることができる。具体的には、別々のシステムとして構築されているサーバを１つのシステムに統合できたり、地理的に分散して設置されているサーバを１つのシステムとして統合できたり、複数のサービス間で資源ノード１０３の余裕を融通しあうことによって、各々のサービスのピーク性能を向上させることができる。
【０１３８】
特に、非インタラクティブなサービスについてジョブネットを記述するだけで既存のアプリケーションを容易にグリッド環境へ移行することができる。これにより、たとえば、オンライン系（Ｗｅｂアプリケーション、Ｗｅｂサーバ）およびバッチ系（給与計算アプリケーション、科学技術計算アプリケーション）をあわせた資源ブローカリングの全体最適化を実現することができる。
【０１３９】
また、ビジネスの状況の変化に柔軟に対応できるシステムを実現することができる。具体的には、必要量に応じた計算パワーを自動的にサービスに供給することができたり、優先度の高いサービスに計算パワーを自動的に集中することができたり、状況の変化に合わせて自律的にサービスの優先度を調整することができる。
【０１４０】
なお、各資源ノード１０３に読込専用ファイルに利用するキャッシュ領域を用意し、オーガニックジョブコントローラーＯＪＣのスクリプトにおいてファイル名を指定するようにしてもよい。具体的には、オーガニックジョブコントローラーＯＪＣによるジョブの投入にともなって、読込専用ファイルの転送の指示をバッチシステムにおこなう。
【０１４１】
バッチシステムは、該当ファイルがジョブの実行に利用する資源ノード１０３に転送済みではない場合に限り、ファイルをキャッシュ領域に転送する。これにより、共通の読込専用ファイルの再転送を削減させることができるため、ジョブネット実行時における処理の効率化を図ることができる。
【実施例２】
【０１４２】
つぎに、資源ブローカリングシステム１００の実施例２について説明する。なお、実施例１において説明した箇所と同一箇所については、図示および説明を省略する。実施例２では、並列実行装置１０２内部に仮想的なマシンを立ち上げて、そのマシンを利用して割振部６０２（図６参照）の機能を実現する。
【０１４３】
具体的には、並列実行装置１０２は、実施例１で説明したマスタノード１０３−１が実行する処理を実現するＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）の仮想イメージを有している。また、オーガニックジョブコントローラーＯＪＣを利用して、仮想イメージ上のマシンに対する遠隔実行を可能とし、そのマシンとＶＭ上で動くデータファイルを共有する。
【０１４４】
図１８は、実施例２における資源ブローカリングシステム１００の具体的なシステム構成を示す説明図である。図１８において、並列実行装置１０２は、内部に仮想マシン１８１０を立ち上げて、その仮想マシン１８１０上にバッチシステムを起動している。また、アービトレータＡＲＢにより、ワーカ１０３−２，１０３−３が並列実行装置１０２に割り当てられている。
【０１４５】
並列実行装置１０２内に立ち上げるライフサイクルマネージャＬＭおよび仮想マシンの数は、ジョブネットの数に応じて動的に変化させる。ここでは、実行すべきジョブネットが１つの場合を例に挙げて説明する。なお、実行すべきジョブネットが複数存在する場合には、複数のライフサイクルマネージャＬＭおよび仮想マシンを立ち上げることとなる。
【０１４６】
ここで、実施例２における並列実行処理の動作シーケンスについて、実施例１における並列実行処理の動作シーケンスと異なる箇所のみ説明する。図１２に示した（２）〜（４）において実行される処理の替わりに、ＶＭの仮想イメージから仮想マシン１８１０を立ち上げて、その仮想マシン１８１０上にバッチシステムを起動させる。
【０１４７】
このとき、並列実行処理用に予め用意されている仮想マシンの中から未使用のものを選択して立ち上げてもよく、また、ブートイメージのコピーから新しい仮想マシンを立ち上げてもよい。いずれの場合であっても、立ち上げた仮想マシン１８１０のマシンＩＤ（ホスト名、ＩＰアドレスなど）をメモリに保持する。
【０１４８】
このあと、ライフサイクルマネージャＬＭは、オーガニックジョブコントローラーＯＪＣを制御して、仮想マシン１８１０上のバッチシステムにジョブ（ジョブネット）を投入する。
【０１４９】
また、図１４に示した（１５）〜（１９）において実行される処理の替わりに、ライフサイクルマネージャＬＭは、ジョブネットの完了を検出すると、仮想マシン１８１０上のバッチシステムに対してワーカ１０３−２，１０３−３の利用不能通知をおこなう。
【０１５０】
そして、ライフサイクルマネージャＬＭは、仮想マシン１８１０上のバッチシステムから利用不能応答があると、ワーカ１０３−２，１０３−３の返却通知をアービトレータＡＲＢにおこない、その結果、ワーカ１０３−２，１０３−３がアービトレータＡＲＢに返却される。最後に、ＶＭをシャットダウンあるいはサスペンドして待機する。
【０１５１】
この実施例２によれば、並列実行装置１０２が有する機能を資源ノード１０３−１〜１０３−３が備えている必要がなくなるため、資源ブローカリングシステム１００の運用コストを削減させることができる。また、１台のマシン（並列実行装置１０２）によって並列実行処理を実行することができるため、効率化を図ることができる。
【実施例３】
【０１５２】
つぎに、資源ブローカリングシステム１００の実施例３について説明する。なお、実施例１において説明した箇所と同一箇所については、図示および説明を省略する。実施例３では、バッチシステムを起動させる代わりに、ジョブネットをキュー制御するためのキューを動的に作成して、並列実行装置１０２の割振部６０２（図６参照）の機能を実現する。
【０１５３】
図１９は、実施例３における資源ブローカリングシステム１００の具体的なシステム構成を示す説明図である。作成するキューの数は、ジョブネットの数に応じて動的に変化させる。ここでは、実行すべきジョブネットが１つの場合を例に挙げて説明する。なお、実行すべきジョブネットが複数存在する場合には、複数のキューを作成することとなる。
【０１５４】
図１９において、並列実行装置１０２は、ライフサイクルマネージャＬＭを起動しており、さらに、ジョブネットをキュー制御するためのメモリ領域を確保して、キュー１９１０を新設している。また、アービトレータＡＲＢにより、ワーカ１０３−２，１０３−３が並列実行装置１０２に割り当てられている。
【０１５５】
ここで、実施例３における並列実行処理の動作シーケンスについて、実施例１における並列実行処理の動作シーケンスと異なる箇所のみ説明する。図１２に示した（２）〜（７）において実行される処理の替わりに、バッチシステムに対して新しいキューを作成する。このとき作成されるキュー名は、現在存在しない名称にする。
【０１５６】
このあと、ライフサイクルマネージャＬＭは、オーガニックジョブコントローラーＯＪＣを制御して、バッチシステムにジョブ（ジョブネット）を投入する。このとき、新たに作成したキューを指定して、ジョブを投入する。
【０１５７】
また、図１４示した（１５）〜（１９）において実行される処理の替わりに、新たに作成されたキューを消去する。
【０１５８】
この実施例３によれば、並列実行装置１０２が有する機能を資源ノード１０３−１〜１０３−３が備えている必要がなくなるため、資源ブローカリングシステム１００の運用コストを削減させることができる。
【０１５９】
以上説明したように、並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法によれば、ジョブネットごとの効果的な資源ブローカリングをおこなうことにより、個々のサービスの円滑な提供を実現することができる。
【０１６０】
なお、本実施の形態で説明した並列実行方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１６１】
また、上述した並列実行装置１０２は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した並列実行装置１０２の機能的構成６０１〜６０８をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、並列実行装置１０２を製造することができる。
【０１６２】
（付記１）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行させる並列実行プログラムであって、
コンピュータを、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振手段、
前記割振手段を制御して、前記スクリプトデータに基づいて、前記ジョブネットごとに資源ノードを割り振る割振制御手段、
として機能させることを特徴とする並列実行プログラム。
【０１６３】
（付記２）前記コンピュータを、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットごとの実行に利用する資源ノードの割当要求を前記資源ブローカに送信する送信手段、
前記送信手段によって前記割当要求が送信された結果、前記ジョブネットごとの実行に利用可能な資源ノードの割当応答を前記資源ブローカから受信する受信手段、として機能させ、
前記割振制御手段は、
前記割振手段を制御して、前記受信手段によって受信された割当応答に基づいて、前記ジョブネットごとに資源ノードを割り振ることを特徴とする付記１に記載の並列実行プログラム。
【０１６４】
（付記３）前記コンピュータを、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットに利用される資源ノードが不足しているか否かを検出する検出手段、として機能させ、
前記送信手段は、
前記検出手段によって不足していると検出された場合、前記ジョブネットに利用する資源ノードの割当要求を前記資源ブローカに送信することを特徴とする付記２に記載の並列実行プログラム。
【０１６５】
（付記４）前記コンピュータを、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該ジョブネットの実行が完了したか否かを検知する検知手段、として機能させ、
前記送信手段は、
前記検知手段によって実行完了が検知された場合、前記ジョブネットに割り振られている資源ノードの返却通知を前記資源ブローカに送信することを特徴とする付記２または３に記載の並列実行プログラム。
【０１６６】
（付記５）前記コンピュータを、
前記割振手段によって前記ジョブネットに割り振られている資源ノードの利用を停止する停止手段、として機能させ、
前記受信手段は、
前記割振手段によって前記ジョブネットに資源ノードが割り振られた結果、当該資源ノードの解放要求を前記資源ブローカから受信し、
前記停止手段は、
前記受信手段によって前記解放要求が受信された場合、当該解放要求によって特定される資源ノードの利用を停止することを特徴とする付記２〜４のいずれか一つに記載の並列実行プログラム。
【０１６７】
（付記６）前記送信手段は、
前記停止手段によって前記資源ノードの利用が停止された場合、当該資源ノードの返却通知を前記資源ブローカに送信することを特徴とする付記５に記載の並列実行プログラム。
【０１６８】
（付記７）前記割振制御手段は、
前記割振手段を制御して、前記ジョブネットを投入するバッチシステムを当該ジョブネットごとに起動することにより、前記バッチシステムごとに資源ノードを割り振ることを特徴とする付記６に記載の並列実行プログラム。
【０１６９】
（付記８）前記送信手段は、
前記バッチシステムに投入された前記ジョブの実行データに基づいて、前記バッチシステムに利用する資源ノードの割当要求を前記資源ブローカに送信し、
前記受信手段は、
前記送信手段によって前記割当要求が送信された結果、前記バッチシステムに利用可能な資源ノードの割当応答を前記資源ブローカから受信し、
前記割振制御手段は、
前記割振手段を制御して、前記受信手段によって受信された割当応答に基づいて、前記バッチシステムごとに資源ノードを割り振ることを特徴とする付記７に記載の並列実行プログラム。
【０１７０】
（付記９）前記検出手段は、
前記割振手段によって前記バッチシステムに資源ノードが割り振られた結果、当該バッチシステムに利用される資源ノードが不足しているか否かを検出し、
前記送信手段は、
前記検出手段によって不足していると検出された場合、前記バッチシステムに利用する資源ノードの割当要求を前記資源ブローカに送信することを特徴とする付記７または８に記載の並列実行プログラム。
【０１７１】
（付記１０）前記検知手段は、
前記割振手段によって前記バッチシステムに資源ノードが割り振られた結果、当該バッチシステムに投入されたジョブネットの実行が完了したか否かを検知し、
前記送信手段は、
前記検知手段によって実行完了が検知された場合、前記バッチシステムに割り振られている資源ノードの返却通知を前記資源ブローカに送信することを特徴とする付記８または９に記載の並列実行プログラム。
【０１７２】
（付記１１）前記停止手段は、
前記検知手段によって実行完了が検知された場合、前記バッチシステムを停止する停止手段として機能させることを特徴とする付記１０に記載の並列実行プログラム。
【０１７３】
（付記１２）前記受信手段は、
前記割振手段によって前記バッチシステムに資源ノードが割り振られた結果、当該資源ノードの解放要求を前記資源ブローカから受信し、
前記停止手段は、
前記受信手段によって前記解放要求が受信された場合、前記バッチシステムを停止することを特徴とする付記１１に記載の並列実行プログラム。
【０１７４】
（付記１３）前記送信手段は、
前記停止手段によって前記バッチシステムが停止された場合、前記資源ノードの返却通知を前記資源ブローカに送信することを特徴とする付記１２に記載の並列実行プログラム。
【０１７５】
（付記１４）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行させる並列実行プログラムであって、
コンピュータを、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段、
前記入力手段によって入力されたスクリプトデータ単体に設けられ、処理対象の前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振制御手段、
として機能させることを特徴とする並列実行プログラム。
【０１７６】
（付記１５）付記１〜１４のいずれか一つに記載の並列実行プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【０１７７】
（付記１６）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行装置であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段と、
前記入力手段によって前記スクリプトデータが入力された場合、前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振手段と、
前記割振手段を制御して、前記スクリプトデータに基づいて、前記ジョブネットごとに資源ノードを割り振る割振制御手段と、
を備えることを特徴とする並列実行装置。
【０１７８】
（付記１７）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行装置であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力手段と、
前記入力手段によって入力されたスクリプトデータ単位に設けられ、処理対象の前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振制御手段と、
を備えることを特徴とする並列実行装置。
【０１７９】
（付記１８）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行方法であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力工程と、
前記入力工程によって入力されたスクリプトデータに基づいて、前記ジョブネットの実行に利用する資源ノードの割当要求を前記ジョブネットごとにおこなうことにより、当該割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットごとに割り振る割振工程と、
を含んだことを特徴とする並列実行方法。
【０１８０】
（付記１９）サービスに利用される資源ノードの割当状態を管理する資源ブローカから割り当てられる資源ノードを利用してジョブを実行する並列実行方法であって、
ジョブの実行順序が定義されたジョブネットに関するスクリプトデータの入力を受け付ける入力工程と、
前記入力工程によって入力されたスクリプトデータ単位に設けられ、処理対象の前記ジョブネットの実行に利用する資源ノードの割当要求に応じて前記資源ブローカから割り当てられた資源ノードを前記ジョブネットに割り振る割振制御工程と、
を含んだことを特徴とする並列実行方法。
【産業上の利用可能性】
【０１８１】
以上のように、本発明にかかる並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法は、サービスに利用される資源ノードを決定するシステムに有用である。
【図面の簡単な説明】
【０１８２】
【図１】この発明の実施の形態にかかる資源ブローカリングシステムのシステム構成図である。
【図２】割当要求リストテーブルの記憶内容を示す説明図である。
【図３】資源リストテーブルの記憶内容を示す説明図である。
【図４】割当資源リストテーブルの記憶内容を示す説明図である。
【図５】図１に示したコンピュータ装置のハードウェア構成を示す説明図である。
【図６】この発明の実施の形態にかかる並列実行装置の機能的構成を示すブロック図である。
【図７】この発明の実施の形態にかかる並列実行装置の並列実行処理手順を示すフローチャートである。
【図８】資源返却処理手順を示すフローチャートである。
【図９】資源ブローカリングシステムの詳細なシステム構成図である。
【図１０】実施例１における資源ブローカリング処理を示すシーケンス図である。
【図１１】実施例１における資源ブローカリングシステムの具体的なシステム構成を示す説明図である。
【図１２】実施例１における並列実行処理を示すシーケンス図（その１）である。
【図１３】実施例１における並列実行処理を示すシーケンス図（その２）である。
【図１４】実施例１における並列実行処理を示すシーケンス図（その３）である。
【図１５】資源ブローカリングシステムの実行例を示す説明図（その１）である。
【図１６】資源ブローカリングシステムの実行例を示す説明図（その２）である。
【図１７】資源ブローカリングシステムの実行例を示す説明図（その３）である。
【図１８】実施例２における資源ブローカリングシステムの具体的なシステム構成を示す説明図である。
【図１９】実施例３における資源ブローカリングシステムの具体的なシステム構成を示す説明図である。
【符号の説明】
【０１８３】
１００  資源ブローカリングシステム
１０１  資源ブローカリング装置
１０２  並列実行装置
１０３  資源ノード
２００  割当要求リストテーブル
３００  資源リストテーブル
４００  割当資源リストテーブル
６０１  入力部
６０２  割振部
６０３  割振制御部
６０４  生成／送信部
６０５  受信部
６０６  検出部
６０７  検知部
６０８  停止部
【図１】
2008226181.tif 000003
【図２】
2008226181.tif 000004
【図３】
2008226181.tif 000005
【図４】
2008226181.tif 000006
【図５】
2008226181.tif 000007
【図６】
2008226181.tif 000008
【図７】
2008226181.tif 000009
【図８】
2008226181.tif 000010
【図９】
2008226181.tif 000011
【図１０】
2008226181.tif 000012
【図１１】
2008226181.tif 000013
【図１２】
2008226181.tif 000014
【図１３】
2008226181.tif 000015
【図１４】
2008226181.tif 000016
【図１５】
2008226181.tif 000017
【図１６】
2008226181.tif 000018
【図１７】
2008226181.tif 000019
【図１８】
2008226181.tif 000020
【図１９】
2008226181.tif 000021