(57)【要約】【課題】複数の計算サーバ２１を用いてジョブの分散処理を行う場合に、分散処理に必要なデータの計算サーバ２１への転送によって生じるネットワーク負荷を低減すること。【解決手段】ネットワークセグメント特定部１５０が、構成情報ＤＢ１１０に記憶された構成情報に基づいて、ジョブを分散処理する計算サーバ２１が属するネットワークセグメント２０を特定し、データ分割部１６０が、ネットワークセグメント特定部１５０により特定されたネットワークセグメント２０の情報に基づいてデータを分割し、データ転送部１７０が、データ分割部１６０により分割されたデータをネットワークセグメント２０に転送する。【選択図】        図３
2010140505.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のサーバにジョブの分散実行を指示するジョブ分散プログラムであって、
ジョブの依頼を受け付けるジョブ依頼受付手順と、
前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行するサーバが属する複数のネットワークセグメントを特定するネットワークセグメント特定手順と、
ジョブデータが分散実行用に分割可能である場合には、ネットワークセグメントに属するサーバが必要とするデータにデータを分割するデータ分割手順と、
前記ネットワークセグメント特定手順により特定された各ネットワークセグメントに前記データ分割手順により分割されたデータのうち各ネットワークセグメントに対応するデータを送信するデータ送信手順と、
前記ジョブを分散実行するサーバに対して、前記受け付けたジョブの依頼に前記ネットワークセグメントに転送したデータの格納場所を付加して指示する分散実行手順と、
をコンピュータに実行させることを特徴とするジョブ分散プログラム。
【請求項２】
前記データ分割手順は、ネットワークセグメントに属するサーバの処理能力の総和を示すネットワークセグメント実行多重度のネットワークセグメント間の比率である多重度比率に基づいてデータを分割し、データの分割制限から前記多重度比率に基づいてデータを分割できない場合には、データの分割制限の範囲内で前記多重度比率に最も近い比率になるようにデータ分割することを特徴とする請求項１に記載のジョブ分散プログラム。
【請求項３】
ネットワークに接続された複数のサーバ及び該複数のサーバにジョブの分散実行を指示するジョブ分散装置を有するジョブ分散システムであって、
前記ジョブ分散装置は、
ジョブの依頼を受け付けるジョブ依頼受付手段と、
前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行するサーバが属する複数のネットワークセグメントを特定するネットワークセグメント特定手段と、
ジョブデータが分散実行用に分割可能である場合には、ネットワークセグメントに属するサーバが必要とするデータにデータを分割するデータ分割手段と、
前記ネットワークセグメント特定手段により特定された各ネットワークセグメントに前記データ分割手段により分割されたデータのうち各ネットワークセグメントに対応するデータを送信するデータ送信手段と、
前記ジョブを分散実行するサーバに対して、前記受け付けたジョブの依頼に前記ネットワークセグメントに転送したデータの格納場所を付加して指示する分散実行手段と、
を備え、
前記ジョブを分散実行する各サーバは、
前記分散実行手段によりジョブの依頼に付加された格納場所にアクセスしてジョブを実行することを特徴とするジョブ分散システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークに接続された複数のサーバにジョブの分散実行を指示するジョブ分散プログラムおよびジョブ分散システムに関し、特に、ジョブの実行に必要なデータをネットワークセグメントに分散配置し、もってデータの転送やアクセスによるネットワーク負荷を低減することができるジョブ分散プログラムおよびジョブ分散システムに関するものである。
【背景技術】
【０００２】
近年、ネットワークにより接続された多数のコンピュータを用いて大規模なジョブを分散実行するグリッドコンピューティングなどの分散処理システムに関する技術開発が進められている（例えば、特許文献１参照。）。
【０００３】
分散処理システムでは、ジョブの分散実行に必要なデータを各コンピュータがアクセスできることが必要なため、各コンピュータに必要なデータを送信するか、あるいは、コンピュータ間でデータを共有することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２４２６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、各コンピュータに必要なデータを送信する場合には、データを送信するためにネットワークに負荷がかかり、特に、データの規模が大きいときには、ネットワーク負荷が膨大になるという問題がある。
【０００６】
また、コンピュータ間でデータを共有する場合には、共有データを有するサーバへアクセスが集中し、サーバ負荷およびネットワーク負荷によって、処理が遅くなるという問題がある。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ジョブの実行に必要なデータをネットワークセグメントに分散配置し、もってデータの転送やアクセスによるネットワーク負荷を低減することができるジョブ分散プログラムおよびジョブ分散システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するジョブ分散プログラムは、一つの態様において、ネットワークに接続された複数のサーバにジョブの分散実行を指示するジョブ分散プログラムであって、ジョブの依頼を受け付けるジョブ依頼受付手順と、前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行するサーバが属する複数のネットワークセグメントを特定するネットワークセグメント特定手順と、ジョブデータが分散実行用に分割可能である場合には、ネットワークセグメントに属するサーバが必要とするデータにデータを分割するデータ分割手順と、前記ネットワークセグメント特定手順により特定された各ネットワークセグメントに前記データ分割手順により分割されたデータのうち各ネットワークセグメントに対応するデータを送信するデータ送信手順と、前記ジョブを分散実行するサーバに対して、前記受け付けたジョブの依頼に前記ネットワークセグメントに転送したデータの格納場所を付加して指示する分散実行手順と、をコンピュータに実行させる。
【発明の効果】
【０００９】
本願の開示するジョブ分散プログラムの一つの態様によれば、ジョブの実行に必要なデータをネットワークセグメントに分散配置するので、全てのサーバにデータを送信する場合と比較してネットワーク負荷を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例に係るグリッドコンピューティングにおけるデータの分割配置の概念を説明するための説明図である。
【図２】図２は、ネットワークセグメントの例を示す図である。
【図３】図３は、本実施例に係るグリッドコンピューティングシステムのシステム構成を示す機能ブロック図である。
【図４】図４は、構成情報ＤＢが記憶する構成情報の一例を示す図である。
【図５】図５は、本実施例に係るグリッドコンピューティングシステムによるジョブ分散処理の処理手順を示すフローチャートである。
【図６】図６は、図５のステップＳ１０２〜ステップＳ１０６の処理の詳細を示すフローチャートである。
【図７】図７は、データ分割処理の詳細を示すフローチャートである。
【図８】図８は、本実施例に係るジョブ分散プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明に係るジョブ分散プログラムおよびジョブ分散システムの好適な実施例を詳細に説明する。なお、本実施例では、本発明をグリッドコンピューティングに適用した場合を中心に説明する。
【実施例】
【００１２】
まず、本実施例に係るグリッドコンピューティングにおけるデータの分割配置の概念について説明する。図１は、本実施例に係るグリッドコンピューティングにおけるデータの分割配置の概念を説明するための説明図である。
【００１３】
同図に示すように、本実施例に係るグリッドコンピューティングでは、計算サーバが接続されたネットワークを複数のネットワークセグメント２０に分割し、各ネットワークセグメント２０にジョブの分散実行に必要なデータを分割配置する。
【００１４】
ここで、各ネットワークセグメント２０内では、通信が高速に行えるようにネットワークを分割する。図２は、ネットワークセグメント２０の例を示す図である。同図（ａ）は、計算サーバの地理的な関係によって計算サーバをグルーピングしてネットワークセグメント２０とする例を示し、福岡センタや東京センタをネットワークセグメント２０としている。同図（ｂ）は、同一サイト内の計算サーバをＩＰネットワークセグメントによりグルーピングしてネットワークセグメント２０とする例を示し、ＩＰネットワークセグメントを分散処理のネットワークセグメント２０としている。
【００１５】
グリッドコンピューティングシステムの管理者は、ジョブ分散装置１００にネットワークセグメント２０の情報を登録する（１）。ここで、ジョブ分散装置１００は、計算サーバに対してジョブの分散実行を指示する装置であり、ネットワークセグメント情報を構成情報ＤＢに記憶する。
【００１６】
そして、ユーザがクライアント装置１０からジョブの実行に必要なデータを登録して計算処理実行を要求すると（２）、ジョブ分散装置１００は、使用する計算サーバ群やネットワークセグメント２０を特定し（３）、各ネットワークセグメント２０内で計算サーバがデータにアクセスできるようにデータを分割する（４）。
【００１７】
そして、分割したデータをネットワークセグメント２０に転送し（５）、各計算サーバに対してジョブの分散実行を指示する（６）。すると、各計算サーバは、ネットワークセグメント内のデータにアクセスしてジョブを分散実行し、実行結果をジョブ分散装置１００に送信する（７）。
【００１８】
このように、本実施例に係るグリッドコンピューティングでは、高速通信が可能なネットワークセグメント２０ごとにジョブの分散実行に必要なデータを分割配置し、計算サーバがネットワークセグメント２０内のデータにアクセスすることによって、各計算サーバにデータを送信する場合と比較してネットワーク負荷を低減することができる。
【００１９】
また、計算サーバは、高速通信可能なネットワークセグメント２０内のデータにアクセスすることによって、一箇所の共有データをアクセスする場合と比較してデータへのアクセス時間を短縮することができる。
【００２０】
なお、ここでは、データを分割してネットワークセグメント２０に配置する場合について説明したが、データを分割することなく、データ全体をネットワークセグメント２０ごとに配置することもできる。
【００２１】
次に、本実施例に係るグリッドコンピューティングシステムのシステム構成について説明する。図３は、本実施例に係るグリッドコンピューティングシステムのシステム構成を示す機能ブロック図である。
【００２２】
同図に示すように、このグリッドコンピューティングシステムは、クライアント装置１０、ネットワークセグメント２０およびジョブ分散装置１００がネットワーク３０に接続されて構成される。
【００２３】
クライアント装置１０は、ユーザがジョブの実行を依頼する場合に使用するコンピュータである。ネットワークセグメント２０は、それぞれが複数の計算サーバ２１を有するコンピュータシステムであり、ジョブの分散実行に必要なデータを格納する分割データ部２２を有する。また、各ネットワークセグメント２０内では、計算サーバ２１は、高速に通信することが可能であり、分割データ部２２に格納されたデータに高速にアクセスすることができる。
【００２４】
なお、ここでは説明の便宜上、１台のクライアント装置１０および３つのネットワークセグメント２０のみを示したが、グリッドコンピューティングシステムは多数のクライアント装置１０やネットワークセグメント２０から構成される。
【００２５】
ジョブ分散装置１００は、ネットワークセグメント２０の計算サーバ２１を用いてジョブを分散処理する装置であり、構成情報ＤＢ１１０と、ネットワークセグメント情報登録部１２０と、ジョブ依頼受付部１３０と、ユーザデータＤＢ１４０と、ネットワークセグメント特定部１５０と、データ分割部１６０と、データ転送部１７０と、分散実行部１８０と、実行結果受付部１９０と、通信部１９５とを有する。
【００２６】
構成情報ＤＢ１１０は、ネットワークセグメント２０に関する情報などグリッドコンピューティングシステムの構成情報を記憶するデータベースである。図４は、構成情報ＤＢ１１０が記憶する構成情報の一例を示す図である。
【００２７】
同図に示すように、この構成情報には、（ａ）キューと計算サーバ情報、（ｂ）デフォルトキューの情報および（ｃ）ネットワークセグメント情報が含まれる。ここで、キューとは、ユーザから依頼されたジョブの待ち行列であり、例えば、計算サーバ２１のＯＳの種類ごとにキューを設けることができる。ユーザは、ジョブの実行を要求する際にキューを指定することができる。
【００２８】
キューと計算サーバ情報は、キューと計算サーバ２１との関係を示す情報であり、キューを識別するキュー名と、キューのジョブを分散実行する計算サーバ２１を識別するホスト名と、各計算サーバ２１が属するネットワークセグメント２０を識別する所属ネットワークセグメント名と、実行多重度とから構成される。
【００２９】
ここで、実行多重度は、並列に実行可能なジョブ数などの計算サーバ２１の処理能力を示す値であり、実行多重度が大きいほど計算サーバ２１の処理能力は高い。例えば、キュー「Queue1」のジョブを分散実行する計算サーバ「CalcservA1」はネットワークセグメント「Netgrp1」に属し、ネットワークセグメント「Netgrp2」に属する計算サーバ「CalcservA3」と比較して実行多重度の値が２倍であるので２倍の処理能力を有する。
【００３０】
デフォルトキューは、ユーザがキューを指定しない場合に用いられるキューであり、ここでは、「Queue1」をデフォルトキューとしている。ネットワークセグメント情報は、ネットワークセグメント２０を識別するネットワークセグメント名と、分割データを格納する計算サーバ２１のホスト名、分割データを格納するディレクトリを示すデータ格納場所と、格納可能な分割データの容量を示す最大格納容量と、ネットワークセグメント実行多重度１１１とから構成される。
【００３１】
ここで、ネットワークセグメント実行多重度１１１は、ネットワークセグメント２０に属する計算サーバ２１の実行多重度の和であり、ネットワークセグメント２０のジョブの処理能力を表わす。ジョブ分散装置１００は、このネットワークセグメント実行多重度１１１に基づいて、ネットワークセグメント２０に転送するデータを分割する。
【００３２】
ネットワークセグメント情報登録部１２０は、グリッドコンピューティングシステムの管理者からネットワークセグメント情報など構成情報を受け付け、構成情報ＤＢ１１０に格納する処理部である。
【００３３】
ジョブ依頼受付部１３０は、クライアント装置１０から通信部１９５を介してジョブ依頼を受け付ける処理部であり、ジョブ依頼に関する情報やジョブの実行に必要なデータなどをユーザデータＤＢ１４０に格納する。
【００３４】
ユーザデータＤＢ１４０は、ユーザのジョブ依頼に関する情報やジョブの実行に必要なデータなどを記憶する記憶部である。このユーザデータＤＢ１４０は、ユーザから実行要求のあったジョブのキューを記憶する。
【００３５】
ネットワークセグメント特定部１５０は、ジョブを分散実行する計算サーバ２１を有するネットワークセグメント２０を構成情報ＤＢ１１０の情報に基づいて特定する処理部である。すなわち、このネットワークセグメント特定部１５０は、ジョブが取り出されたキューに関する情報から構成情報ＤＢ１１０を参照してジョブを分散実行する計算サーバ２１およびネットワークセグメント２０を特定する。
【００３６】
このネットワークセグメント特定部１５０が、ジョブを分散実行する計算サーバ２１を有するネットワークセグメント２０を構成情報ＤＢ１１０を参照して特定することによって、ジョブ分散装置１００は、データの分割配置先を特定することができる。
【００３７】
データ分割部１６０は、ユーザが入力したデータをユーザデータＤＢ１４０から取り出し、ネットワークセグメント特定部１５０により特定されたネットワークセグメント２０に配置するデータに分割してユーザデータＤＢ１４０に格納する処理部である。
【００３８】
データ転送部１７０は、データ分割部１６０により分割されたデータをユーザデータＤＢ１４０から取り出し、通信部１９５を介して各ネットワークセグメント２０に送信する処理部であり、各ネットワークセグメント２０内のデータの格納場所は、構成情報ＤＢ１１０を参照して取得する。
【００３９】
分散実行部１８０は、ネットワークセグメント特定部１５０により特定された計算サーバ２１に対してジョブの分散実行を指示する処理部である。この分散実行部１８０の指示に基づいて、各計算サーバ２１が、それぞれが属するネットワークセグメント２０の分割データ部２２にアクセスしてジョブを分散実行する。
【００４０】
実行結果受付部１９０は、ジョブの分散実行結果を計算サーバ２１から受信し、ジョブ全体の実行結果としてクライアント装置１０に送信する処理部である。通信部１９５は、ネットワーク３０を介してクライアント装置１０や計算サーバ２１と通信する処理部である。
【００４１】
次に、本実施例に係るグリッドコンピューティングシステムによるジョブ分散処理の処理手順について説明する。図５は、本実施例に係るグリッドコンピューティングシステムによるジョブ分散処理の処理手順を示すフローチャートである。
【００４２】
同図に示すように、このジョブ分散処理では、ジョブ分散装置１００は、クライアント装置１０からユーザデータの登録と計算処理の実行依頼を受け付け（ステップＳ１０１）、構成情報ＤＢ１１０からジョブの分散先の計算サーバ２１およびネットワークセグメント２０を特定する（ステップＳ１０２）。
【００４３】
そして、特定したネットワークセグメント２０単位にユーザデータを分割し（ステップＳ１０３）、各ネットワークセグメント２０の分割データ部２２に分割したデータを転送する（ステップＳ１０４）。
【００４４】
そして、ジョブ分散装置１００が各計算サーバ２１へジョブの分散実行を指示すると（ステップＳ１０５）、各計算サーバ２１が分割データ部２２を参照しながらジョブを分散実行し（ステップＳ１０６）、実行結果をジョブ分散装置１００に転送する（ステップＳ１０７）。そして、ジョブ分散装置１００が、各計算サーバ２１からの実行結果をまとめてクライアント装置１０に実行結果を送信する（ステップＳ１０８）。
【００４５】
このように、ジョブ分散装置１００が構成情報ＤＢ１１０からジョブの分散先のネットワークセグメント２０を特定し、特定したネットワークセグメント２０単位にユーザデータを分割して送信することによって、データ転送によるネットワーク負荷を低減することができる。また、各計算サーバ２１は、ネットワークセグメント２０内の分割データ部２２を参照することによって、必要なデータに高速にアクセスすることができる。
【００４６】
次に、図５のステップＳ１０２〜ステップＳ１０６の処理の詳細について説明する。図６は、図５のステップＳ１０２〜ステップＳ１０６の処理の詳細を示すフローチャートである。
【００４７】
図６に示すように、ジョブ分散装置１００のジョブ依頼受付部１３０がユーザからのジョブ依頼を受け付けると、ネットワークセグメント特定部１５０は、データ分割の指定があるか否かを判定し（ステップＳ２０１）、データ分割の指定がない場合には、データの分割転送をスキップしてステップＳ２１１に進む。
【００４８】
一方、データの分割指定がある場合には、キューの指定があるか否かを判定し（ステップＳ２０２）、キューの指定がない場合には、ジョブの投入先のキューとして構成情報ＤＢ１１０からデフォルトキューを取得する（ステップＳ２０３）。
【００４９】
そして、キューに登録されている計算サーバ２１の所属ネットワークセグメント情報を構成情報ＤＢ１１０から取得する（ステップＳ２０４）。例えば、キューが「Queue1」であれば、ネットワークセグメント名「Netgrp1」および「Netgrp2」を取得する。
【００５０】
そして、ネットワークセグメント数からデータ分割数を特定する（ステップＳ２０５）。例えば、「Queue1」であれば、データ分割数は「２」となる。また、ネットワークセグメント名からデータ格納先ホスト名、データ格納場所およびネットワークセグメント実行多重度１１１を取得する（ステップＳ２０６）。例えば、「Netgrp1」であれば、データ格納先ホスト名「CalcservA1」、データ格納場所「/tmp」、ネットワークセグメント実行多重度１１１「５０」を取得する。
【００５１】
そして、データ分割部１６０がデータ分割が可能か否かを判定する（ステップＳ２０７）。ここで、データの分割が可能であるか否かの判定は、ユーザ定義にしたがう。例えば、ユーザは、分割可否、分割可能数、分割ツールなどを指定し、データ分割部１６０は、ユーザ定義をもとに分割可否を判定する。
【００５２】
その結果、分割可能である場合には、ネットワークセグメント実行多重度１１１を比較してデータの分割比率を決定し、データを分割する（ステップＳ２０８）。一方、分割可能でない場合には、ネットワークセグメント数分のデータのコピーを用意する（ステップＳ２０９）。
【００５３】
例えば、「Netgrp1」と「Netgrp2」では、ネットワークセグメント実行多重度１１１が「５０：３０」であるため、この比率でデータ分割する。なお、データによって分割可能な数が限定されている場合には、可能な分割数の範囲で分割比率に最も近いデータ分割を行う。例えば、２分割までしかできないデータの場合には、ネットワークセグメント実行多重度１１１が「５０：３０」であっても、「１：１」の比率でデータ分割する。
【００５４】
そして、各ネットワークセグメント２０用に用意した各データをデータ転送部１７０がデータ格納場所で指定された分割データ部２２へ転送する（ステップＳ２１０）。そして、分散実行部１８０が、ユーザからの計算処理依頼に従ってジョブ群を生成し（ステップＳ２１１）、生成したジョブを各ネットワークセグメント２０のデータ数に応じてネットワークセグメント２０に振り分ける。その際、ネットワークセグメント２０のデータ格納場所をパラメータで受け渡す（ステップＳ２１２）。
【００５５】
そして、分散実行部１８０からの実行指示に従って、計算サーバ２１がデータ格納場所で指定された分割データ部２２のデータを参照してジョブを分散実行する（ステップＳ２１３）。
【００５６】
このように、データ分割部１６０がネットワークセグメント実行多重度１１１に基づいてデータ分割を行うことによって、ネットワークセグメント２０の処理能力に応じて適切なデータの分割を行うことができる。
【００５７】
次に、データ分割処理（ステップＳ２０８の処理）の詳細について説明する。図７は、データ分割処理の詳細を示すフローチャートである。同図に示すように、データ分割部１６０は、前処理、すなわち図６のステップＳ２０６の処理で取得した各ネットワークセグメント実行多重度１１１を比較して多重度比率を算出する（ステップＳ３０１）。
【００５８】
そして、ユーザによるデータの分割可能な数指定があるか否かを判定し（ステップＳ３０２）、ユーザによるデータの分割可能な数指定がない場合には、多重度比率をそのまま分割比率とし（ステップＳ３０６）、分割比率に基づいてデータを分割する（ステップＳ３０７）。
【００５９】
一方、ユーザによるデータの分割可能な数指定がある場合には、指定された分割可能な数と多重度比率とを比較し（ステップＳ３０３）、指定された分割可能数の制限のもとに多重度比率に基づいて分割が可能であるか否かを判定する（ステップＳ３０４）。例えば、「Netgrp1」と「Netgrp2」では、多重度比率が「５０：３０＝５：３」のため、分割可能数が「８」の倍数であれば多重度比率に基づいて分割が可能となる。
【００６０】
そして、判定の結果、分割可能な場合には、多重度比率をそのまま分割比率とし（ステップＳ３０６）、分割比率に基づいてデータを分割する（ステップＳ３０７）。
【００６１】
これに対して、指定された分割可能数の制限のもとに多重度比率に基づいて分割が可能でない場合には、分割可能な数の中で多重度比率に最も近い比率を分割比率とし（ステップＳ３０５）、分割比率に基づいてデータを分割する（ステップＳ３０７）。
【００６２】
具体的には、ネットワークセグメントＡとネットワークセグメントＢの多重度比率がＸ：Ｙの場合、ネットワークセグメントＡのデータ分割数ＮAは、ＮA＝Ｘ／（Ｘ＋Ｙ）×データ分割可能数であり、データ分割数は整数であることが求められるため、小数点以下が生じた場合はＮAを四捨五入し、多重度比率の近似値を算出して分割比率とする。
【００６３】
このように、データ分割部１６０が、ユーザの指定による分割数の制限によって多重度比率に基づくデータ分割ができない場合に、ユーザの指定による分割数の中で多重度比率に最も近い分割比率を算出してデータを分割することによって、ユーザの指定範囲でネットワークセグメント２０の処理能力に応じて適切なデータ分割を行うことができる。
【００６４】
上述してきたように、本実施例では、ネットワークセグメント特定部１５０が、構成情報ＤＢ１１０に記憶された構成情報に基づいて、ジョブを分散処理する計算サーバ２１が属するネットワークセグメント２０を特定し、データ分割部１６０が、ネットワークセグメント特定部１５０により特定されたネットワークセグメント２０の情報に基づいてデータを分割し、データ転送部１７０が、データ分割部１６０により分割されたデータをネットワークセグメント２０に転送することとしたので、各計算サーバ２１にデータを転送する場合と比較して、データ転送によるネットワーク負荷を低減することができる。
【００６５】
また、計算サーバ２１は、自分が所属するネットワークセグメント２０内のデータにアクセスすることとしたので、一箇所の共有データを全ての計算サーバ２１がアクセスする場合と比較して、高速にデータをアクセスすることができる。
【００６６】
なお、本実施例では、ジョブ分散装置について説明したが、ジョブ分散装置が有する構成をソフトウェアによって実現することで、同様の機能を有するジョブ分散プログラムを得ることができる。そこで、このジョブ分散プログラムを実行するコンピュータについて説明する。
【００６７】
図８は、本実施例に係るジョブ分散プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ２００は、ＲＡＭ２１０と、ＣＰＵ２２０と、ＨＤＤ２３０と、ＬＡＮインタフェース２４０と、入出力インタフェース２５０と、ＤＶＤドライブ２６０とを有する。
【００６８】
ＲＡＭ２１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ２２０は、ＲＡＭ２１０からプログラムを読み出して実行する中央処理装置である。
【００６９】
ＨＤＤ２３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース２４０は、コンピュータ２００をＬＡＮ経由でクライアント装置１０や計算サーバ２１などの他のコンピュータに接続するためのインタフェースである。
【００７０】
入出力インタフェース２５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ２６０は、ＤＶＤの読み書きを行う装置である。
【００７１】
そして、このコンピュータ２００において実行されるジョブ分散プログラム２１１は、ＤＶＤに記憶され、ＤＶＤドライブ２６０によってＤＶＤから読み出されてコンピュータ２００にインストールされる。
【００７２】
あるいは、このジョブ分散プログラム２１１は、ＬＡＮインタフェース２４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ２００にインストールされる。
【００７３】
そして、インストールされたジョブ分散プログラム２１１は、ＨＤＤ２３０に記憶され、ＲＡＭ２１０に読み出されてＣＰＵ２２０によってジョブ分散プロセス２２１として実行される。
【００７４】
（付記１）ネットワークで接続された複数の計算サーバにジョブの分散実行を指示するジョブ分散プログラムであって、
接続する計算サーバとともに前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行する計算サーバが属するネットワークセグメントを特定するネットワークセグメント特定手順と、
前記ネットワークセグメント特定手順により特定されたネットワークセグメントにジョブの分散実行に必要なデータを送信するデータ送信手順と、
をコンピュータに実行させることを特徴とするジョブ分散プログラム。
【００７５】
（付記２）前記データ送信手順は、ジョブ全体のデータが分散実行用に分割可能である場合には、データを分割してネットワークセグメントに属する計算サーバが必要とするデータだけを各ネットワークセグメントに送信することを特徴とする付記１に記載のジョブ分散プログラム。
【００７６】
（付記３）前記データ送信手順は、ネットワークセグメントに属する計算サーバの処理能力の総和を示すネットワークセグメント実行多重度のネットワークセグメント間の比率である多重度比率に基づいてデータを分割することを特徴とする付記２に記載のジョブ分散プログラム。
【００７７】
（付記４）前記データ送信手順は、データの分割制限から前記多重度比率に基づいてデータを分割できない場合には、該データの分割制限の範囲内で多重度比率に最も近い比率になるようにデータ分割することを特徴とする付記３に記載のジョブ分散プログラム。
【００７８】
（付記５）前記ネットワークセグメント特定手順は、ジョブのキューごとに計算サーバと計算サーバが属するネットワークセグメントとを対応させた構成情報を記憶した構成情報データベースを用いて、ジョブを分散実行する計算サーバが属するネットワークセグメントを特定することを特徴とする付記１〜４のいずれか一つに記載のジョブ分散プログラム。
【００７９】
（付記６）前記構成情報を構成情報データベースに登録するネットワークセグメント情報登録手順をさらにコンピュータに実行させることを特徴とする付記５に記載のジョブ分散プログラム。
【００８０】
（付記７）前記ネットワークセグメント特定手順により特定されるネットワークセグメントは、複数の計算サーバを有する計算センタであることを特徴とする付記１〜６のいずれか一つに記載のジョブ分散プログラム。
【００８１】
（付記８）ネットワークで接続された複数の計算サーバにジョブの分散実行を指示するジョブ分散プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
接続する計算サーバとともに前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行する計算サーバが属するネットワークセグメントを特定するネットワークセグメント特定手順と、
前記ネットワークセグメント特定手順により特定されたネットワークセグメントにジョブの分散実行に必要なデータを送信するデータ送信手順と、
をコンピュータに実行させるジョブ分散プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【００８２】
（付記９）ネットワークで接続された複数の計算サーバを用いてジョブの分散処理を行うジョブ分散方法であって、
接続する計算サーバとともに前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行する計算サーバが属するネットワークセグメントを特定するネットワークセグメント特定工程と、
前記ネットワークセグメント特定工程により特定されたネットワークセグメントにジョブの分散実行に必要なデータを送信するデータ送信工程と、
を含んだことを特徴とするジョブ分散方法。
【００８３】
（付記１０）ネットワークで接続された複数の計算サーバにジョブの分散実行を指示するジョブ分散装置であって、
接続する計算サーバとともに前記ネットワークを複数に分割して得られるネットワークセグメントのうちでジョブを分散実行する計算サーバが属するネットワークセグメントを特定するネットワークセグメント特定手段と、
前記ネットワークセグメント特定手段により特定されたネットワークセグメントにジョブの分散実行に必要なデータを送信するデータ送信手段と、
を備えたことを特徴とするジョブ分散装置。
【符号の説明】
【００８４】
１０    クライアント装置
２０    ネットワークセグメント
２１    計算サーバ
２２    分割データ部
３０    ネットワーク
１００    ジョブ分散装置
１１０    構成情報ＤＢ
１１１    ネットワークセグメント実行多重度
１２０    ネットワークセグメント情報登録部
１３０    ジョブ依頼受付部
１４０    ユーザデータＤＢ
１５０    ネットワークセグメント特定部
１６０    データ分割部
１７０    データ転送部
１８０    分散実行部
１９０    実行結果受付部
１９５    通信部
２００    コンピュータ
２１０    ＲＡＭ
２１１    ジョブ分散プログラム
２２０    ＣＰＵ
２２１    ジョブ分散プロセス
２３０    ＨＤＤ
２４０    ＬＡＮインタフェース
２５０    入出力インタフェース
２６０    ＤＶＤドライブ
【図１】
2010140505.tif 000003
【図２】
2010140505.tif 000004
【図３】
2010140505.tif 000005
【図４】
2010140505.tif 000006
【図５】
2010140505.tif 000007
【図６】
2010140505.tif 000008
【図７】
2010140505.tif 000009
【図８】
2010140505.tif 000010