(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のコンピュータによりグリッドコンピューティングを実現するコンピュータシステムにおいて、
ネットワーク上のコンピュータに対してジョブの実行要求を行うセンターサーバと、
前記センターサーバからの要求に応じてジョブを実行するプロセスサーバとを備え、
前記センターサーバは、
前記プロセスサーバに対して実行すべきジョブを割り当て、ジョブ実行リクエストを発行するスケジューラ部と、
前記プロセスサーバの情報を管理すると共に、前記スケジューラ部により発行された前記リクエストを受け付けて、当該リクエストにかかるジョブを割り当てられたプロセスサーバの状況に応じて当該リクエストを当該プロセスサーバに送信するエージェント部とを備え、
前記エージェント部は、複数の前記プロセスサーバに対して１対１で対応させて設けられ、
少なくとも一部の前記エージェント部は、対応する少なくとも一部の前記プロセスサーバに対して、当該プロセスサーバからのポーリングによるアクセスに応じて前記スケジューラ部から受け付けた前記リクエストを送信し、少なくとも他の一部の前記エージェント部は、対応する少なくとも他の一部の前記プロセスサーバに対して、自身が管理するタイミングで前記スケジューラ部から受け付けた前記リクエストを送信することを特徴とするコンピュータシステム。
【請求項２】
前記エージェント部は、対応する前記プロセスサーバの能力および動作状況に関する情報を当該プロセスサーバから取得して管理し、
前記スケジューラ部は、前記エージェント部に管理されている前記情報に基づいて、前記プロセスサーバに対する前記ジョブの割り当てを行うことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
少なくとも一部の前記プロセスサーバは、ファイアウォールを介して前記センターサーバに接続されており、
前記エージェント部は、前記ファイアウォールを介して接続されている前記プロセスサーバに対して、当該プロセスサーバからのポーリングによるアクセスに応じて前記スケジューラ部から受け付けた前記リクエストを送信することを特徴とする請求項１に記載のコンピュータシステム。
【請求項４】
グリッドコンピューティングシステムにおけるジョブのスケジューリングおよび当該ジョブの実行要求を行うサーバであって、
システムを構成するコンピュータに対して実行すべきジョブを割り当て、当該ジョブの実行要求を行うスケジューラ部と、
前記コンピュータの情報を管理すると共に、前記スケジューラ部による前記ジョブの実行要求を当該ジョブの割り当てられた当該コンピュータに代わって受け付け、当該コンピュータの状況に応じて当該ジョブの実行要求を当該コンピュータに対して行うエージェント部とを備え、
前記エージェント部は、システムを構成する前記コンピュータごとに設けられ、各々が対応するコンピュータとの間で設定された個別の通信形式で前記ジョブの実行要求を行い、
少なくとも一部の前記エージェント部は、システムを構成する対応する前記コンピュータからのポーリングによるアクセスに応じて当該コンピュータに対する前記ジョブの実行要求を行い、少なくとも他の一部の前記エージェント部は、自身が管理するタイミングで対応する前記コンピュータに対する前記ジョブの実行要求を行うことを特徴とするサーバ。
【請求項５】
グリッドコンピューティングシステムにおけるジョブのスケジューリングおよび当該ジョブの実行要求を行うサーバにおいて、
システムを構成するコンピュータの能力および動作状況に関する情報を管理すると共に、当該コンピュータとの間で行われる通信を中継して、当該コンピュータの動作状況に応じて送受信を行うエージェント部と、
前記エージェント部に管理されている前記情報に基づいて前記コンピュータに実行させるジョブの割り当てを行い、ジョブを割り当てられたコンピュータに対する当該ジョブの実行要求を、当該エージェント部を介して行うスケジューラ部とを備え、
前記スケジューラ部は、前記エージェント部に格納されている前記コンピュータの能力に関する情報に基づいて前記ジョブの割り当てを行い、かつ当該ジョブの割り当てられたコンピュータの動作状況に関わらず、当該ジョブの実行要求を行い、
前記エージェント部は、システムを構成する前記コンピュータごとに設けられ、
少なくとも一部の前記エージェント部は、対応する少なくとも一部の前記コンピュータに対して、当該コンピュータからのポーリングによるアクセスに応じて前記スケジューラ部によるジョブの実行要求を送信し、少なくとも他の一部の前記エージェント部は、対応する少なくとも他の一部の前記コンピュータに対して、自身が管理するタイミングで前記スケジューラ部によるジョブの実行要求を送信し、
前記スケジューラ部は、ジョブを割り当てられた前記コンピュータに対応する前記エージェント部を介して当該ジョブの実行要求を行うことを特徴とするサーバ。
【請求項６】
コンピュータに、
グリッドコンピューティングシステムを構成しジョブを実行するプロセスサーバの情報を記憶手段に格納して管理する機能と、
前記プロセスサーバの情報に基づき、当該プロセスサーバに対して実行すべきジョブを割り当て、ジョブ実行リクエストを発行する機能と、
発行された前記リクエストを受け付けて、当該リクエストにかかるジョブを割り当てられたプロセスサーバの動作状況に応じて当該リクエストを当該プロセスサーバに送信する機能とを実現させ、
前記リクエストを前記プロセスサーバに送信する機能は、前記グリッドコンピューティングシステムを構成する前記プロセスサーバごとに設けられ、
前記リクエストを前記プロセスサーバに送信する機能では、前記コンピュータに、少なくとも一部の前記機能が、対応する少なくとも一部の前記プロセスサーバに対して、当該プロセスサーバからのポーリングによるアクセスに応じて前記リクエストを送信させ、少なくとも他の一部の前記機能が、対応する少なくとも他の一部の前記プロセスサーバに対して、自身が管理するタイミングで前記リクエストを送信させることを特徴とするプログラム。
【請求項７】
前記ジョブ実行リクエストを発行する機能では、前記コンピュータに、前記プロセスサーバの動作状況に関わらず前記ジョブの割り当てを実行させることを特徴とする請求項６に記載のプログラム。
【請求項８】
前記リクエストを前記プロセスサーバに送信する機能では、前記コンピュータに、ファイアウォールを介して接続されている前記プロセスサーバに対して、当該プロセスサーバからのポーリングによるアクセスに応じて前記スケジューラ部から受け付けた前記リクエストを送信させることを特徴とする請求項６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グリッドコンピューティングに関し、特にコンピュータに対してジョブの割り当てを行うスケジューリングの方法およびこれを実現するシステム構成に関する。
【背景技術】
【０００２】
近年、ネットワークで接続されたヘテロジーニアス（異機種混在）な情報システムを統合して利用する、グリッドコンピューティングと呼ばれるシステムが注目されている。このシステムでは、ネットワーク上の複数のコンピュータにおけるＣＰＵパワーやデータストレージなどのコンピュータ資源が共有され、仮想的な１つの高性能コンピュータとして利用される。複数のコンピュータに並列処理を行わせることで、１台１台の性能は低くとも高速に大量の処理を実行することが可能となる。【０００３】
グリッドコンピューティングでは、システムに与えられたジョブ（プログラムの処理単位）の実行順序を、ジョブの特性や優先順位に応じて決定するスケジューリングが非常に重要である。異機種混在環境を前提としたグリッド環境では、性能の異なる複数のコンピュータに対してジョブを割り当てる必要がある他、割り当てるジョブの大きさも様々であり、また、ローカルユーザだけでなく、遠隔地にいるユーザからもジョブを与えられることから、様々なジョブの実行スケジュールを適切に設定する必要があるためである。【０００４】
グリッドコンピューティングにおけるジョブのスケジューリングの方式には、大きく分けてプッシュ（Push）タイプとプル（Pull）タイプとがある。
プッシュタイプ（例えば、非特許文献１参照）のスケジューリング方式では、スケジューラにジョブの投入があった場合に、スケジューラが、そのジョブを処理すべきコンピュータを割り当て、そのコンピュータに対してジョブの実行をリクエストする。この場合にスケジューラは、各コンピュータの利用状況をモニタリングし、ジョブの負荷情報等に応じて最適なコンピュータとジョブの割り当てを行う。【０００５】
このプッシュタイプのスケジューリング方式は、主にクラスタグリッドと呼ばれる、数百台程度のサーバ（コンピュータ）で構成され、それらを同一サイト内に配置するタイプのグリッドシステムに多く用いられる。またプッシュタイプのスケジューリング方式は、最適なコンピュータに対してSpecificにジョブを割り当てることができ、最適なスケジューリングが可能である。特に、各コンピュータの挙動にばらつきがあり、かつユーザがコンピュータを使用した場合にジョブがキャンセルされる環境では、そのような動作環境を加味した上で、最適なスケジューリングにより非常に効率の良い運用が期待できる。【０００６】
一方、プルタイプ（例えば、非特許文献２参照）のスケジューリング方式では、各コンピュータがジョブを実行可能な状態になったときにスケジューラに対してポーリング（Polling）という形でジョブのリクエストを行う。そして、このリクエストが行われた際に
、実行すべきジョブがあれば、スケジューラはそのコンピュータに対してジョブを割り当て、コンピュータが割り当てられたジョブを実行する。実行すべきジョブが無い場合は、コンピュータは、一定時間の経過後に再度ポーリングを行う。【０００７】
このプルタイプのスケジューリング方式は、非常に簡単な構成でに実装することができるため、数千台規模のグリッドシステムで多く使われる。特に、インターネット上に構築されるグリッドの場合には、ネットワークの制限のために、このプルタイプのスケジューリング方式が用いられる。またプルタイプのスケジューリング方式は、コンピュータの管理情報が簡単で、多数のコンピュータに対して適用しやすい。そして、ポーリングによる自己最適化（余裕のあるコンピュータほど頻繁にポーリングを行う）により、ある程度の効率化は図れる。【０００８】
【非特許文献１】Chris Smith, "Open Source Metascheduling for Virtual Organizations with the Community Scheduler Framework (CSF)", Technical Whitepaper, Platform Computing Inc. ２００３年８月．
【非特許文献２】Eric Korpela, Dan Werthimer, David Anderson, Jeff Cobb, Matt Lebofsky, "Massively Distributed Computing for SETI", Computing in Science &amp; Engineering, Vol: 3, Issue: 1, Jan.-Feb. 2001, Pages: 78-83.
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、グリッドコンピューティングにおける従来のスケジューリング方式は、プッシュタイプの場合、最適なジョブの割り当てを行うことができる。
しかし、最適なスケジューリングを行うために各コンピュータの使用状況を管理することが必要である。このため、スケジューラの動作が複雑になり、システム構成の変更（ジョブを実行するコンピュータの増減等）に容易に対応することができない。
また、スケジューラから各コンピュータにアクセスしてジョブの実行をリクエストする形態であるため、ファイアウォールの内側にあるコンピュータなどに対しては適用できない。【００１０】
一方、プルタイプならば、上述したように、スケジューラが必要とするコンピュータの管理情報が簡単であるため、システム構成の変更にも容易に対応でき、またコンピュータからのポーリングによってネットワーク上でのアクセスが行われるため、ファイアウォールの内部にあるコンピュータに対してもジョブを割り当てることが可能である。
しかし、ポーリングによる自己最適化はあるものの、プルタイプのスケジューリング方式では、実行すべきジョブがあっても、コンピュータからのポーリングを待ってジョブの実行をリクエストするため、時間的なロスが発生してしまう。
また、ポーリングが行われた場合には、実行すべき複数のジョブのうち、そのポーリングを行ったコンピュータにとって最適なジョブを割り当てるが、そのジョブの種類によっては、より相応しい他のコンピュータがある可能性もあり、必ずしもシステム全体から見て最も効率の高い最適なスケジューリングができるわけではない。【００１１】
そこで本発明は、グリッドコンピューティングにおいて、コンピュータの種類や使用状況およびジョブの種類の両面から最適なスケジューリングを実現すると共に、システム構成の変更に対して容易に対応が可能なシステムおよびそのジョブ実行制御方法を提供することを目的とする。
また本発明は、ファイアウォール等によるアクセス制限のあるコンピュータを含むグリッドにおいても、プッシュタイプのスケジューリング方式と同等の最適なジョブの割り当てを可能とすることを他の目的とする。
また本発明は、プッシュタイプとプルタイプとを組み合わせたスケジューリング方式およびこれを用いたシステムを提供することをさらに他の目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するため、本発明は、ネットワークを介して接続された複数のコンピュータによりグリッドコンピューティングを実現する、次のように構成されたコンピュータシステムとして実現される。すなわち、このコンピュータシステムは、ネットワーク上のコンピュータに対してジョブの実行要求を行うコンピュータであるセンターサーバと、センターサーバからの要求に応じてジョブを実行するコンピュータであるプロセスサーバとを備えて構成される。そして、このセンターサーバは、プロセスサーバに対して実行すべきジョブを割り当て、ジョブ実行リクエストを発行するスケジューラ部と、プロセスサーバの情報を管理すると共に、スケジューラ部により発行されたリクエストを受け付けて、このリクエストにかかるジョブを割り当てられたプロセスサーバの状況に応じて、このリクエストをプロセスサーバに送信するエージェント部とを備える。【００１３】
ここで、より詳細には、エージェント部は、複数のプロセスサーバに対して１対１で対応させて設けられる。
また好ましくは、エージェント部は、対応するプロセスサーバの能力および動作状況に関する情報をプロセスサーバから取得して管理する。そして、スケジューラ部は、エージェント部に管理されている情報に基づいて、プロセスサーバに対するジョブの割り当てを行う。【００１４】
また、エージェント部は、プロセスサーバとのアクセスタイプに基づき、プロセスサーバからのポーリングによるアクセスに応じてスケジューラ部から受け付けたリクエストを送信したり、自身が管理するタイミングで前記スケジューラ部から受け付けたリクエストを送信したりする。
より具体的には、ファイアウォールを介してセンターサーバに接続されるプロセスサーバが存在する場合に、センターサーバからファイアウォールを越えてプロセスサーバにアクセスすることができないので、プロセスサーバからのポーリングによるアクセスを待ってリクエストを送信する。【００１５】
また、上記の目的を達成する他の本発明は、コンピュータによりグリッドコンピューティングシステムにおけるジョブのスケジューリングおよび当該ジョブの実行要求を行う、次のようなジョブ実行制御方法としても実現される。すなわち、このジョブ実行制御方法は、記憶装置に格納されたシステムを構成しジョブを実行するプロセスサーバの能力に基づき、このプロセスサーバの動作状況に関わらずにジョブの割り当てを行うステップと、ジョブの割り当てられたプロセスサーバに対するジョブ実行リクエストを発行するステップと、発行されたジョブ実行リクエストを一時的に保持し、ジョブの割り当てられたプロセスサーバの動作状況に応じて、このプロセスサーバに送信するステップとを含むことを特徴とする。【００１６】
さらに本発明は、コンピュータを制御して上述したセンターサーバの機能を実現させるプログラム、あるいはコンピュータに上記のジョブ実行制御方法の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供される。
【発明の効果】
【００１７】
以上のように構成された本発明によれば、グリッドコンピューティングにおいて、スケジューラとプロセスサーバとの間の通信を中継するエージェント部をセンターサーバに設け、プロセスサーバのアクセスタイプの違いをエージェント部の制御によって吸収することにより、プロセスサーバのアクセスタイプの違いによらずに、コンピュータの種類や使用状況およびジョブの種類の両面から最適なスケジューリングを行うことができる。そしてプロセスサーバごとにエージェント部を設けることにより、プロセスサーバを増減してシステム構成を変更することが容易にできる。【００１８】
また、本発明によれば、プロセスサーバのアクセスタイプの違いをエージェント部の制御によって吸収することにより、従来はプッシュタイプのスケジューリングを行っていたジョブの実行要求を直接受け付けられるプロセスサーバと、従来はプルタイプのスケジューリングを行っていたポーリングを行った後にジョブの実行要求を受け付けるプロセスサーバとをシステム内に混在させ、かつプッシュタイプのスケジューリング方式と同等の最適なジョブの割り当てを行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態によるグリッドコンピューティングシステムの全体構成を示す図である。
【図２】本実施形態によるグリッドコンピューティングシステムにおけるセンターサーバおよびプロセスサーバを実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図３】本実施形態におけるセンターサーバの機能構成を示す図である。
【図４】本実施形態におけるポーリングを行うプロセスサーバの機能構成とＰＳエージェント部との関係を示す図である。
【図５】本実施形態におけるポーリングを行わないプロセスサーバの機能構成とＰＳエージェント部との関係を示す図である。
【図６】本実施形態における各ＰＳエージェント部によるジョブの実行要求時の動作を説明するフローチャートである。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、実施形態）について詳細に説明する。
図１は、本実施形態によるグリッドコンピューティングシステムの全体構成を示す図である。
図１に示すように、本実施形態のシステムは、ジョブの割り当てを行うセンターサーバ（ＣＳ）１００による割り当てにしたがって実際にジョブを実行するプロセスサーバ（ＰＳ）２００とを備える。センターサーバ１００とプロセスサーバ２００とは、インターネットその他のコンピュータネットワークにて接続されている。このコンピュータネットワークは、通信プロトコルや、有線か、無線かといった通信形式を問わず、またファイアウォールやその他のアクセス制限を設けたものであっても良い。【００２１】
図２は、本実施形態によるグリッドコンピューティングシステムにおけるセンターサーバ１００およびプロセスサーバ２００を実現するのに好適なコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図２に示すコンピュータ装置は、演算手段であるＣＰＵ（Central Processing Unit：
中央処理装置）１１と、Ｍ／Ｂ（マザーボード）チップセット１２およびＣＰＵバスを介してＣＰＵ１１に接続されたメインメモリ１３と、同じくＭ／Ｂチップセット１２およびＡＧＰ（Accelerated Graphics Port）を介してＣＰＵ１１に接続されたビデオカード１
４と、ＰＣＩ（Peripheral Component Interconnect）バスを介してＭ／Ｂチップセット
１２に接続された磁気ディスク装置（ＨＤＤ）１５、ネットワークインターフェイス１６と、さらにこのＰＣＩバスからブリッジ回路１７およびＩＳＡ（Industry Standard Architecture）バスなどの低速なバスを介してＭ／Ｂチップセット１２に接続されたフレキシブルディスクドライブ１８およびキーボード／マウス１９とを備える。【００２２】
なお、図２は本実施形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード１４を設ける代わりに、ビデオメモリのみを搭載し、ＣＰＵ１１にてイメージデータを処理する構成としても良いし、外部記憶装置として、ＡＴＡ（AT Attachment
）やＳＣＳＩ（Small Computer System Interface）などのインターフェイスを介してＣ
Ｄ−Ｒ（Compact Disc Recordable）やＤＶＤ−ＲＡＭ（Digital Versatile Disc Random Access Memory）のドライブを設けても良い。【００２３】
図３は、センターサーバ１００の機能構成を示す図である。
センターサーバ１００は、各プロセスサーバ２００に対するジョブの割り当て（スケジューリング）を行うスケジューラ部１１０と、プロセスサーバ２００の管理を行うと共にプロセスサーバ２００に対するリクエストおよびレスポンスの送受信を中継するＰＳエージェント部１２０とを備える。ＰＳエージェント部１２０は、グリッドコンピューティングシステムを構成するプロセスサーバ２００ごとに設けられている。そして、スケジューラ部１１０は、このＰＳエージェント部１２０を介して各プロセスサーバ２００にアクセスする。【００２４】
スケジューラ部１１０は、例えば図２に示したプログラム制御されたＣＰＵ１１とメインメモリ１３や磁気ディスク装置１５等の記憶手段とで実現され、その具体的な機能として図３に示すように、ＰＳ能力検査部１１１と、最適ＰＳ選択部１１２と、ジョブ依頼部１１３とを備える。
ＰＳ能力検査部１１１は、プロセスサーバ２００の能力を各プロセスサーバ２００に対応するＰＳエージェント部１２０に問合せ、情報を取得する。
最適ＰＳ選択部１１２は、ＰＳ能力検査部１１１により取得されたプロセスサーバ２００の能力の情報に基づき、ジョブに応じて最適なプロセスサーバ２００を選択し、割り当てを行う。このジョブの割り当てにおける最適化のロジックは任意で良い。
ジョブ依頼部１１３は、最適ＰＳ選択部１１２において選択されたプロセスサーバ２００のＰＳエージェント部１２０に対してジョブ実行を要求するリクエストを発行する。【００２５】
本実施形態では、ＰＳエージェント部１２０がスケジューラ部１１０とプロセスサーバ２００との間の通信を中継し、スケジューラ部１１０によるジョブの実行要求をプロセスサーバ２００に代わって受け付ける。そのため、ＰＳ能力検査部１１１の問い合わせ先やジョブ依頼部１１３のリクエストの発行先がＰＳエージェント部１２０となっているが、上述したように、スケジューラ部１１０の機能自体は、既存のプッシュタイプのスケジューラと変わらない。したがって、スケジューラ部１１０には、既存のグリッドコンピューティングシステムで利用されているスケジューラを用いることができる。【００２６】
ＰＳエージェント部１２０は、例えば図２に示したプログラム制御されたＣＰＵ１１とメインメモリ１３や磁気ディスク装置１５等の記憶手段とで実現され、その具体的な機能として図３に示すように、ＰＳ状況管理部１２１と、ＰＳ能力管理部１２２と、ジョブ受け付け部１２３と、ジョブ依頼部１２４と、ポーリング待ち受け部１２５とを備える。
ＰＳ状況管理部１２１は、対応するプロセスサーバ２００とアクセスして、プロセスサーバ２００の現在の動作状況を把握する。
ＰＳ能力管理部１２２は、プロセスサーバ２００のジョブ実行能力に関する統計情報等を管理し、スケジューラ部１１０のＰＳ能力検査部１１１からの問い合わせに応じて、管理している情報を返す。ここで、ジョブ実行能力に関する統計情報等とは、単にＣＰＵ自身の処理能力や記憶装置の記憶容量の静的な情報だけでなく、ＣＰＵに対する負荷の時間変動や動作傾向といった動的な内容を統計的に処理して得られた情報を含む。
ＰＳ状況管理部１２１およびＰＳ能力管理部１２２に管理される情報は、ＰＳエージェント部１２０が対応しているプロセスサーバ２００から取得され、図２のメインメモリ１３や磁気ディスク装置１５等の記憶手段に格納される。
ジョブ受け付け部１２３は、スケジューラ部１１０のジョブ依頼部１１３から発行されたジョブ実行リクエストを受け付ける。
ジョブ依頼部１２４は、ジョブ受け付け部１２３により受け付けられたジョブ実行リクエストを対応するプロセスサーバ２００に送信する。
ポーリング待ち受け部１２５は、プロセスサーバ２００からのポーリングによる、ジョブの実行が可能であるという通知を受付ける。【００２７】
詳しくは後述するが、本実施形態では、プッシュタイプのスケジューラを用いながら、プロセスサーバ２００からのポーリングによるアクセスを受け付けてジョブ実行リクエストを送信することができる。ＰＳエージェント部１２０のポーリング待ち受け部１２５は、このポーリングの受け付けのために用いられるものであり、ポーリングを行わずにセンターサーバ１００における所望のタイミングで送信されたジョブ実行リクエストを受け付けられるプロセスサーバ２００のＰＳエージェント部１２０に対しては、必要な構成要素ではない。【００２８】
次に、プロセスサーバ２００の機能構成と、対応するＰＳエージェント部１２０との関係について説明する。
上述したように、本実施形態において想定されるプロセスサーバ２００は、ポーリングを行わないものと行うものとがある。
図４は、ポーリングを行うプロセスサーバ２００の機能構成とＰＳエージェント部１２０との関係を示す図である。
プロセスサーバ２００は、図２に示したようなコンピュータ装置をグリッドコンピューティングシステムにおけるプロセスサーバ２００として機能させるためのＰＳ組み込み部２１０を備えている。【００２９】
ＰＳ組み込み部２１０は、例えば図２に示したプログラム制御されたＣＰＵ１１とメインメモリ１３や磁気ディスク装置１５等の記憶手段とで実現され、その具体的な機能として図４に示すように、ＰＳ状況監視部２１１と、ＰＳ状況通知部２１２と、ジョブ受け付け部２１３と、ジョブ実行部２１４と、ポーリング実行部２１５とを備える。
ＰＳ状況監視部２１１は、自装置（プロセスサーバ２００）の現在の使用状況や資源の状況を監視し、情報を収集する。
ＰＳ状況通知部２１２は、ＰＳ状況監視部２１１において収集されたＰＳの使用状況や資源の状況に関する情報を、センターサーバ１００のＰＳエージェント部１２０に通知する。ＰＳエージェント部１２０では、ＰＳ状況管理部１２１およびＰＳ能力管理部１２２がこの通知を受け付け、メインメモリ１３や磁気ディスク装置１５等の記憶装置に格納して管理する。ＰＳ状況通知部２１２からセンターサーバ１００への通知は、定期的に行っても良いし、プロセスサーバ２００の動作状況が変更された際に行うようにしても良い。また、センターサーバ１００の対応するＰＳエージェント部１２０から任意のタイミングでプロセスサーバ２００へ問い合わせても良い。
ジョブ受け付け部２１３は、センターサーバ１００のＰＳエージェント部１２０のジョブ依頼部１２４から送信されたジョブ実行リクエストを受け付ける。
ジョブ実行部２１４は、ジョブ受け付け部２１３により受け付けられたジョブを、プロセスサーバ２００の資源を用いて実行する。
ポーリング実行部２１５は、ＰＳ状況監視部２１１の監視等に基づき、プロセスサーバ２００がジョブを実行可能な状況である場合に、その旨を示す通知をセンターサーバ１００のＰＳエージェント部１２０に対して行う。ＰＳエージェント部１２０では、ポーリング待ち受け部１２５がポーリング実行部２１５からの通知を受け付けて、ジョブ依頼部１２４にジョブ実行リクエストの送信を行わせる。【００３０】
なお、ポーリング実行部２１５は、プロセスサーバ２００がポーリングを行わずにセンターサーバ１００から送信されたジョブ実行リクエストを受け付けられる場合、すなわちファイアウォールの内側にある等のアクセス制限がない場合は、設ける必要はない。
図５は、ポーリングを行わないプロセスサーバ２００の機能構成とＰＳエージェント部１２０との関係を示す図である。【００３１】
次に、上記のように構成された本実施形態のグリッドコンピューティングシステムの動作について説明する。
上述したように、センターサーバ１００のスケジューラ部１１０は、既存のプッシュタイプのスケジューラと同様であるので、実行すべきジョブが発生すると、センターサーバ１００の管理下にある全てのプロセスサーバ２００を対象として、当該ジョブの割り当てを行う。このとき、ＰＳエージェント部１２０からプロセスサーバ２００の能力や動作傾向等の統計情報等を取得し、これらの情報およびジョブの種類や特性に基づいて最適なスケジューリングを行う。そして、ジョブが割り当てられたプロセスサーバ２００の動作状況に関わらずにジョブ実行リクエストを発行し、そのプロセスサーバ２００に対応するＰＳエージェント部１２０に送信してジョブの実行要求を行う。【００３２】
ＰＳエージェント部１２０の動作は、プロセスサーバ２００のアクセスタイプが、センターサーバ１００からのジョブの実行要求を直接受け付けられるタイプか、ファイアウォールの内側等にありポーリングを行った後にジョブの実行要求を受け付けるタイプかによって、動作が異なる。
図６は、各ＰＳエージェント部１２０によるジョブの実行要求時の動作を説明するフローチャートである。
図６に示すように、ＰＳエージェント部１２０は、ジョブ受け付け部１２３によりスケジューラ部１１０からジョブ実行リクエストを受け付け（ステップ６０１）、当該ＰＳエージェント部１２０に対応するプロセスサーバ２００がジョブの実行要求を直接受け付けられるタイプならば、そのジョブ実行リクエストを直ちにプロセスサーバ２００へ送信する（ステップ６０２、６０４）。【００３３】
一方、当該ＰＳエージェント部１２０に対応するプロセスサーバ２００がポーリングを行った後にジョブの実行要求を受け付けるタイプならば、ＰＳエージェント部１２０は、プロセスサーバ２００によるポーリングが行われるまで待機し（ステップ６０２、６０３）、ポーリングが行われた後にスケジューラ部１１０から受け付けたジョブ実行リクエストをプロセスサーバ２００へ送信する（ステップ６０４）。なお、ＰＳエージェント部１２０は、プロセスサーバ２００によるポーリングが行われた際に送信すべきジョブ実行リクエストを持っていない場合は、何ら処理を行わず、ジョブの受け付けおよび次のポーリングのタイミングを待ち受ける。【００３４】
プロセスサーバ２００は、センターサーバ１００からのジョブの実行要求を直接受け付けられるタイプである場合、センターサーバ１００のＰＳエージェント部１２０からジョブ実行リクエストを受け付けると、そのリクエストに応じてジョブを実行し、実行結果をセンターサーバ１００のＰＳエージェント部１２０に返す。
一方、プロセスサーバ２００がポーリングを行った後にジョブの実行要求を受け付けるタイプである場合、そのプロセスサーバ２００は、ジョブの実行が可能な動作状況となった時点でポーリングを行い、ジョブ実行リクエストが送られるのを待つ。そして、センターサーバ１００における対応するＰＳエージェント部１２０から送信されたジョブ実行リクエストを受け付けたならば、そのリクエストに応じてジョブを実行し、実行結果をセンターサーバ１００のＰＳエージェント部１２０に返す。ジョブ実行リクエストを受信しなかった場合は、一定時間経過後に再度ポーリングを繰り返す。【００３５】
以上のプロセスサーバ２００の動作は、従来のグリッドコンピューティングシステムにおけるプロセスサーバの動作と同様である。ただし、上述したように本実施形態では、センターサーバ１００において各プロセスサーバ２００に対応するＰＳエージェント部１２０が、プロセスサーバ２００のアクセスタイプに応じて、自身が管理するタイミングでジョブの実行要求を行うか、またはプロセスサーバ２００からのポーリングによるアクセスを待ってジョブの実行要求を行うかを制御できる。すなわち、プロセスサーバ２００のアクセスタイプの違いをＰＳエージェント部１２０の制御によって吸収できるため、本実施形態によるシステムは、センターサーバ１００からのジョブの実行要求を直接受け付けられるプロセスサーバ２００と、ファイアウォールの内側等にありポーリングを行った後にジョブの実行要求を受け付けるプロセスサーバ２００とを混在させることができる。【００３６】
また、本実施形態は、上記のようにポーリングを行った後にジョブの実行要求を受け付けるプロセスサーバ２００を含む構成とすることができる。そして、この場合でも、スケジューラ部１１０は、ＰＳエージェント部１２０を介してプロセスサーバ２００に対するジョブの実行要求を行うので、プロセスサーバ２００の動作状況の影響を受けずに、プロセスサーバ２００の能力とジョブの種類や特性とに基づく最適なスケジューリングを行うことができる。【００３７】
さらに本実施形態は、上述したように、プロセスサーバ２００ごとに１対１で対応するＰＳエージェント部１２０をセンターサーバ１００に設け、このＰＳエージェント部１２０に、対応するプロセスサーバ２００に関する情報の管理およびリクエストやレスポンスの送受信の制御を行わせる。また、スケジューラ部１１０は、ＰＳエージェント部１２０が管理するプロセスサーバ２００の情報に基づいて、プロセスサーバ２００に対するジョブの割り当てを行う。このため、プロセスサーバ２００を増減してシステム構成を変更する場合にも、対応するＰＳエージェント部１２０を追加または削除することによって、容易に対応することができる。
【図１】
0005022030.tif 000002
【図２】
0005022030.tif 000003
【図３】
0005022030.tif 000004
【図４】
0005022030.tif 000005
【図５】
0005022030.tif 000006
【図６】
0005022030.tif 000007