(57)【要約】【課題】最適なデータ転送をより確実に行うことのできるジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置の提供。【解決手段】システムＳ内の複数のサーバの中から、ジョブを実行する実行サーバ４を複数選択するマッチング処理手順と、マッチング処理手順により選択された複数の実行サーバ４に対して送信するジョブ実行指示の送信順序を、データ転送スケジュール装置によりスケジューリングされたデータの転送順序と同じ順序にソートするソート処理手順と、ソート処理手順によりソートされた送信順序で各実行サーバ４に対してジョブ実行指示を送信するジョブ実行指示手順とをコンピュータに実行させる。【選択図】        図２
2010113688.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示プログラムであって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理手順と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示手順と
をコンピュータに実行させることを特徴とするジョブ実行指示プログラム。
【請求項２】
前記ソート処理手順は、各前記実行サーバへの前記ジョブ実行指示の送信順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする請求項１に記載のジョブ実行指示プログラム。
【請求項３】
前記複数のサーバは、複数のラックに分割して収容されており、
前記ソート処理手順は、各ラックに収容された実行サーバの中から一の実行サーバをそれぞれ選択し、当該選択した各実行サーバに対して前記ジョブ実行指示が優先的に送信されるようにソートすることを特徴とする請求項１に記載のジョブ実行指示プログラム。
【請求項４】
前記ソート処理手順は、前記データ毎にソートの起点を異ならせることを特徴とする請求項１〜３の何れか１項に記載のジョブ実行指示プログラム。
【請求項５】
複数のサーバと、これら複数のサーバに対してジョブの実行を指示するジョブ実行指示装置と、前記ジョブの実行に必要なデータの各前記サーバへの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムにおける、前記データ転送スケジュール装置と前記ジョブ実行指示装置との間に設けられたジョブ実行順序決定装置におけるジョブ実行順序決定プログラムであって、
前記ジョブ実行指示装置又は前記データ転送スケジュール装置から、前記ジョブを実行する実行サーバのサーバ情報を取得する情報取得手順と、
前記情報取得部により取得したサーバ情報に基づき、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を所定のソート方法でソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序又は転送順序の情報を前記ジョブ実行指示装置又は前記データ転送スケジュール装置に送信する情報送信手順と
をコンピュータに実行させることを特徴とするジョブ実行順序決定プログラム。
【請求項６】
前記ソート処理手順は、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする請求項５に記載のジョブ実行順序決定プログラム。
【請求項７】
複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示方法であって、
前記ジョブ実行指示装置が、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択する選択ステップと、
前記選択ステップにおいて選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソートステップと、
前記ソートステップによりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示ステップと
を含むことを特徴とするジョブ実行指示方法。
【請求項８】
複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置であって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理部と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理部と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示部と
を備えたことを特徴とするジョブ実行指示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置に関し、特に、最適なデータ転送をより確実に行うことのできるジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置に関するものである。
【背景技術】
【０００２】
従来、サーバファームやデータセンタのように多数のサーバを用いてデータ処理を行う施設において、サイズの大きなデータを複数のサーバに実行させる場合、そのデータを各サーバに対して効率よく転送するためのデータ転送方法が用いられている。
【０００３】
また、ジョブに用いるデータの各サーバへの転送順序を決める方法として、例えば、特許文献１には、各部分データのデータ量とデータ転送に要する時間とに基づきデータの転送順序のスケジューリングを行う方法が開示されている。この方法によれば、各サーバの通信路の性能に応じたスケジューリングが行われるため、より均一なデータ転送を行うことが可能となる。
【０００４】
【特許文献１】特開平６−７５７８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のデータ転送では、転送順序のスケジューリングを行っても、実際には最適な転送順序とならない場合があった。
【０００６】
すなわち、１つのデータに対する処理を複数のサーバに実行させる際は、先ず、各サーバに対してジョブの実行指示が送信される。そして、ジョブ実行指示を受信したサーバは、当該指示に基づき、データ転送のスケジューリングを行うデータ転送スケジューリング装置に対してデータの転送要求を行う。続いて、データ転送スケジュール装置は、各サーバから取得したデータの転送要求に基づきデータ転送のスケジューリングを行い、当該作成した転送スケジュールに基づき、部分データを保持するサーバやファイルサーバに対してデータの転送指示を行う。
【０００７】
このとき、サーバからデータ転送スケジュール装置に対して送信されるデータの転送要求は、必ずしもデータ転送に最適な順序で送られてくるわけではない。そのため、データ転送スケジュール装置は、転送順序のスケジューリングを行った後、当該スケジューリングされた最適な転送順序を乱すようなデータ要求を新たに受け取る場合もあり、全体として最適なスケジューリングとならないおそれがある。
【０００８】
開示の技術は、上述した従来技術による問題点を解消するためになされたものであり、最適なデータ転送をより確実に行うことのできるジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本件に開示するジョブ実行指示プログラムは、複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示プログラムであって、前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理手順と、前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理手順と、前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示手順とをコンピュータに実行させる。
【発明の効果】
【００１０】
本件に開示するジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置によれば、各実行サーバに転送するデータの転送順序のソート方法と同じソート方法を用いて、各実行サーバに送信するジョブ実行指示の送信順序のソートを行うことにより、最適な順序でデータ転送をより確実に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、本件に開示するジョブ実行指示プログラム、ジョブ実行順序決定プログラム、ジョブ実行指示方法及びジョブ実行指示装置にかかる実施例について詳細に説明する。
【実施例１】
【００１２】
まず、本実施例にかかるデータ転送システムの概要について、図面を参照して説明する。図１は、実施例１にかかるデータ転送システムの全体構成の一例を示す図である。本実施例にかかるデータ転送システムは、例えば並列システムのように、複数のサーバを用いて同一のデータを用いるジョブを実行する際、これら複数のサーバに対してデータを効率よく転送するシステムである。
【００１３】
図１に示すように、本実施例にかかるデータ転送システムＳは、ジョブ実行指示装置１と、データ転送スケジュール装置２と、ファイルサーバ３と、複数のサーバ４ａ〜４ｅと、複数のストレージ５ａ〜５ｅとを有する。ジョブ実行指示装置１、データ転送スケジュール装置２及び複数のサーバ４は、ネットワーク６を介して相互に接続される。
【００１４】
ジョブ実行指示装置１は、サーバ４ａ〜４ｅに対してジョブの実行を指示する装置である。また、データ転送スケジュール装置２は、サーバ４ａ〜４ｅに転送するデータ３０の転送順序をスケジューリングすることにより、ネットワーク６内における該データ３０の転送を最適化する装置である。また、ファイルサーバ３は、サーバ４ａ〜４ｅに転送するデータ３０を保持するサーバであり、データ転送スケジュール装置２に接続される。本実施例において、データ３０は、６つの部分データ３１ａ〜３１ｆに細分化されている。
【００１５】
サーバ４ａ〜４ｅは、一般的なサーバ装置を適用することができ、ジョブ実行指示装置１からの指示に基づいて各種のジョブを実行する。このジョブを実行する際、サーバ４ａ〜４ｅは、データ転送スケジュール装置２に対してジョブの実行に必要なデータの転送要求を行う。ストレージ５ａ〜５ｅは、各サーバ４ａ〜４ｅに接続された記憶装置であり、各サーバ４ａ〜４ｅが取得した部分データ３１ａ〜３１ｆを記憶する。なお、本実施例にかかるデータ転送システムＳは、サーバ４ａ〜４ｅ以外にも複数のサーバ（図示せず）を有しており、これら全てのサーバのうち、ジョブ実行指示装置１から指示を受けてジョブを実行するサーバ（ここでは、サーバ４ａ〜４ｅ）を「実行サーバ」と称する。
【００１６】
このように、本実施例にかかるデータ転送システムＳでは、先ず、ジョブ実行指示装置１が実行サーバ４ａ〜４ｅに対してジョブの実行を指示する。次に、ジョブ実行指示を受けた実行サーバ４ａ〜４ｅが、データ転送スケジュール装置２に対してジョブの実行に必要なデータの転送要求を行う。そして、データ転送スケジュール装置２は、各実行サーバ４ａ〜４ｅから取得した転送要求に基づき、各実行サーバ４ａ〜４ｅへの部分データ３１ａ〜３１ｆの転送順序をスケジューリングし、その結果に基づいて部分データ３１ａ〜３１ｆを転送する。
【００１７】
これにより、各部分データ３１ａ〜３１ｆは、データ転送スケジュール装置２によりスケジューリングされた転送順序に基づき、ファイルサーバ３及び実行サーバ４ａ〜４ｅ間をバケツリレー的に転送されるため、全てのサーバ４ａ〜４ｅに短時間で効率よく配信される。
【００１８】
次に、ジョブ実行指示装置１の具体的構成について、図２を参照して説明する。図２は実施例１にかかるジョブ実行指示装置１の構成を示すブロック図、図３−１はソート処理の実行前におけるジョブ実行情報管理テーブルの一例を示す図、図３−２はソート処理の実行後におけるジョブ実行情報管理テーブルの一例を示す図である。
【００１９】
図２に示すように、本実施例にかかるジョブ実行指示装置１は、ジョブ実行受付部１０と、制御部１１と、ジョブ実行指示部１２と、記憶部１３とを有する。ジョブ実行受付部１０は、ユーザからジョブの実行を開始すべき旨の要求を受け付ける。なお、この要求には、ジョブの内容や当該ジョブに用いるデータのファイル名などが含まれる。
【００２０】
制御部１１は、ジョブ実行指示装置１全体を制御するものである。この制御部１１は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、特に、マッチング処理部１１０と、ソート処理部１１１とを有する。マッチング処理部１１０は、データ転送システムＳ内の全てのサーバの中から、ジョブを実行する複数の実行サーバ４を選択する。この際、マッチング処理部１１０は、例えば、最終使用日時が最も古いことや空き容量が最も大きいことなどを条件として、ジョブを実行するサーバとして適したサーバを選択する。
【００２１】
ソート処理部１１１は、マッチング処理部１１０により選択された複数の実行サーバ４ａ〜４ｅに対して送信するジョブ実行指示の送信順序をソートする。具体的には、ソート処理部１１１は、ジョブ実行指示の送信順序を、データ転送スケジュール装置２によりスケジューリングされるデータの転送順序と同じ順序にソートする。
【００２２】
記憶部１３は、データ転送システムＳ内の全てのサーバに関する情報（サーバ名やＩＰアドレスなど）、ユーザからのジョブ実行開始要求に含まれる情報、その他ジョブの実行指示に必要な情報を記憶する。この記憶部１３は、ジョブ実行情報管理テーブル１３０を有する。ジョブ実行情報管理テーブル１３０は、図３−１に示すように、各実行サーバ４ａ〜４ｅのサーバ名と、各実行サーバ４ａ〜４ｅに割り当てられたＩＰアドレス（ネットワークアドレスに相当）とを、ジョブ実行指示の送信順序と関連付けて記憶する。このジョブ実行情報管理テーブル１３０は、データ３０ごとに作成される。
【００２３】
ここで、図３−１に示すように、実行サーバ４ａ〜４ｅは、マッチング処理部１１０により選択された順に並んでいる。すなわち、実行サーバ４ａ〜４ｅは、マッチング処理部１１０により実行サーバ４ｄ→実行サーバ４ａ→実行サーバ４ｅ→実行サーバ４ｃ→実行サーバ４ｂの順序で選択された場合、図３−１に示すように、ジョブ実行情報管理テーブル１３０には、当該選択された順でソートされる。
【００２４】
そして、かかる状態のときに、ソート処理部１１１によりソート処理がなされると、実行サーバ４ａ〜４ｅは、データ転送スケジュール装置２によりスケジューリングされるデータの転送順序と同じ順序にソートされた状態となる。ここで、本実施例において、データ転送スケジュール装置２は、各実行サーバ４ａ〜４ｅへのデータ３０の転送順序を、データ転送システムＳ内の全てのサーバに割り当てられたＩＰアドレスの昇順にソートする。かかる点については、後述する。
【００２５】
したがって、本実施例にかかるソート処理部１１１は、データ転送スケジュール装置２によるソート方法と同様のソート方法として、図３−２に示すように、各実行サーバ４へのジョブ実行指示の送信順序を、データ転送システムＳ内の全てのサーバに割り当てられたＩＰアドレスの昇順にソートする。すなわち、ジョブ実行情報管理テーブル１３０におけるジョブ実行指示の送信順序は、最小のＩＰアドレス「10.25.109.51」が割り当てられた実行サーバ４ａを起点として、実行サーバ４ｂ（10.25.159.33）→実行サーバ４ｃ（10.25.209.90）→実行サーバ４ｄ（10.25.213.15）→実行サーバ４ｅ（10.25.328.24）と、ＩＰアドレスの昇順にソートされる。
【００２６】
ジョブ実行指示部１２は、ソート処理部１１１によりソートされた送信順序で各実行サーバ４ａ〜４ｅに対してジョブの実行指示を送信する。
【００２７】
続いて、本実施例にかかるデータ転送スケジュール装置２の具体的構成について図面を用いて説明する。図４は実施例１にかかるデータ転送スケジュール装置２の構成を示すブロック図である。
【００２８】
なお、本実施例にかかるデータ転送スケジュール装置２は、バケツリレー方式と呼ばれるデータ転送方式を採用している。バケツリレー方式では、１つのデータを複数の部分データに細分化し、これら部分データを所定の方法で定められた転送順序に基づき複数のサーバ間で順次転送させる。これにより、各サーバ同士で部分データを転送し合うため、スタートポロジ方式のように特定のサーバ（例えば、データを格納するファイルサーバ３）が他の全てのサーバに対してデータを転送する場合と比べ、極めて高速なデータ転送が可能となる。
【００２９】
図４に示すように、本実施例にかかるデータ転送スケジュール装置２は、転送要求受付部２０と、転送順序管理部２１と、キャッシュ位置取得部２２と、部分データ配信管理部２３と、制御部２４とを有する。また、各実行サーバ４ａ〜４ｅには、それぞれのサーバ名として、ＨＯＳＴ１〜ＨＯＳＴ５が設定されている。
【００３０】
転送順序管理部２１は、各実行サーバ４へのデータ３０の転送順序の管理を行う。この転送順序管理部２１は、ソート処理部２２０と転送要求格納部２２１とを有する。ソート処理部２２０は、転送要求受付部２０で受け付けたデータ転送要求５０に基づき、データの転送順序をソートする。転送要求格納部２２１は、ソート処理部２２０によるソート結果に基づき作成されるファイル管理リスト３００を格納する。また、制御部２４は、データ転送スケジュール装置２全体を制御する。この制御部２４は、転送情報管理部２４１、データ転送依頼部２４２及び転送完了処理部２４３を有する。
【００３１】
転送要求受付部２０は、各実行サーバ４ａ〜４ｅからのデータ転送要求５０ａ〜５０ｅを受け付けて保持する。この転送要求受付部２０で受け付けるデータ転送要求５０には、ファイル名（例えば、「ファイルＡ」）が含まれている。なお、本実施例において、転送要求受付部２０により受け付けたデータ転送要求５０は、所定の領域に記憶され、ソート処理部２２０により所定間隔毎に取り出される。
【００３２】
データ転送要求５０ａ〜５０ｅは、転送要求受付部２０で受け付けた順に転送順序管理部２１へと送られる。転送順序管理部２１は、転送要求受付部２０から受け取ったデータ転送要求５０ａ〜５０ｅをＩＰアドレスの昇順にソートし、ファイル名に結合して配列したファイル管理リスト３００を生成する。そして、転送順序管理部２１は、このファイル管理リスト３００に基づき、部分データ配信管理部２３にデータ転送を依頼する。
【００３３】
部分データ配信管理部２３は、転送順序管理部２１から転送依頼を受けた際に、依頼先となるファイルサーバ３又は実行サーバ４ａ〜４ｅにデータ転送を指示してバケツリレーデータ転送を実行する。
【００３４】
ここで、この転送順序管理部２１の機能について、制御部２４とともに更に詳細に説明する。まず、ソート処理部２２０は、転送要求受付部２０が受け付けたデータ転送要求５０を所定の領域から取り出すと、取り出したデータ転送要求５０をＩＰアドレスの昇順でソートし、これらデータ転送要求をサーバへの転送順に配列したファイル管理リスト３００を生成する。
【００３５】
ファイル管理リスト３００に配列されている「ＨＯＳＴ１〜ＨＯＳＴ５」で示されるそれぞれのサーバ転送要求には、後述する進捗管理情報がリンクされている。進捗管理情報は、転送先となる実行サーバ４に対する部分データ３１の転送の進捗状況を示す情報である。例えば、ファイル名Ａのデータに対応するファイル管理リスト３００にリンクされた進捗管理情報には、転送順に「１／６、２／６、３／６、４／６、５／６」が記録されている。
【００３６】
転送情報管理部２４１は、ファイル管理リスト３００に配列した「ＨＯＳＴ１〜ＨＯＳＴ５」で示すサーバ転送要求に基づき、進捗管理情報及び転送回数管理情報を生成して管理する。
【００３７】
ここで、ファイル管理リスト３００、進捗管理情報及び転送回数管理情報について図面を用いて説明する。図５は、ファイル管理リスト３００、進捗管理情報及び転送回数管理情報の構成の一例を示す図である。
【００３８】
図５に示すように、ファイル管理リスト３００には、各実行サーバ４ａ〜４ｅから取得したデータ転送要求５０ａ〜５０ｅに基づくサーバ転送要求３１０ａ〜３１０ｅが含まれている。これらサーバ転送要求３１０ａ〜３１０ｅは、依頼元の実行サーバ４ａ〜４ｅのＩＰアドレスの昇順に配列されている。
【００３９】
ソート処理部２２０は、ファイル管理リスト３００を生成すると、各サーバ転送要求３１０ａ〜３１０ｅに対してサーバ進捗管理情報６２ａ〜６２ｅをリンクさせる。
【００４０】
各サーバ転送要求３１０ａ〜３１０ｅにリンクされたサーバ進捗管理情報６２ａ〜６２ｅは、実行サーバ４間で転送される部分データ３１の転送進捗情報を記録する。例えば、本実施例のように、データ３０を６つの部分データ３１ａ〜３１ｆに細分化した場合、転送進捗情報には、部分データ３１ａ〜３１ｆを転送先の実行サーバ４に転送するごとに、１／６→２／６→３／６→４／６→５／６と変化する情報が記録される。
【００４１】
ここで、サーバ転送要求３１０、進捗管理情報６０及び転送回数管理情報７０に含まれる情報の内容について、図６を用いて説明する。図６−１はサーバ転送要求３１０の構成の一例を示す図、図６−２は進捗管理情報６０の構成の一例を示す図、図６−３は転送回数管理情報７０の構成の一例を示す図である。
【００４２】
図６−１に示すように、サーバ転送要求３１０は、実行サーバ４の要求したデータ３０のファイル名３１１と転送先となる実行サーバ４のサーバ名３１２とを含む。また、図６−２に示すように、サーバ進捗管理情報６２は、部分データ進捗比６２１とサーバ名６２２とを含む。部分データ進捗比６２１は、部分データの転送完了数／細分化数で与えられる情報である。具体的には、部分データ進捗比６２１は、部分データ３１の転送の進捗に応じて、０／６→１／６→２／６→３／６→４／６→５／６→６／６と変化する。
【００４３】
なお、部分データ進捗比「０／６」は、部分データ３１の転送が未だ行われていない状態を示す初期値である。また、部分データ進捗比「６／６」は、部分データ３１の全ての転送が完了した状態を示す値となる。
【００４４】
転送回数管理情報７０は、部分データ３１をファイルサーバ３から各実行サーバ４ａ〜４ｅに対して転送する際に、各実行サーバ４間で同一の部分データ３１を転送できる回数を制限する情報である。転送回数管理情報７０は、図６−３に示すように、データ３０の転送を要求した実行サーバ４のサーバ名７１と、最大転送可能数７２と、現在転送数７３とを含む。
【００４５】
すなわち、実行サーバ４に転送するごとに現在転送数７３は、１つずつ増加し、現在転送数７３が最大転送可能数７２に達すると、それ以降同じ部分データ３１の実行サーバ４への転送が禁止される。本実施例では、この最大転送可能数７２を「１」としており、各実行サーバ４は、一つの部分データ３１を他の実行サーバ４に対して１回しか転送できないように制限されている。これによってファイルサーバ３から各実行サーバ４に対し、部分データ３１を近接サーバ間で１回ずつ順次転送するバケツリレー転送を実現することができる。
【００４６】
データ転送依頼部２４２は、転送情報管理部２４１が管理する進捗管理情報６０及び転送回数管理情報７０に基づき転送可能な実行サーバ４を判定し、当該判定結果に基づき部分データ配信管理部２３にデータ転送を依頼する。この際、データ転送依頼部２４２は、各実行サーバ４に対応する現在転送数７３を「０」から「１」に更新する。
【００４７】
転送完了処理部２４３は、データ転送の完了通知を部分データ配信管理部２３から受けた際に、進捗管理情報６０に含まれるサーバ進捗管理情報６２の部分データ進捗比６２１の分子を１つ増加させる更新を行う。また、転送完了処理部２４３は、部分データ進捗比６２１の分母の細分化数と分子の部分データ転送完了数とが一致したとき（ここでは、「６／６」）、全ての部分データ３１の転送完了を判別し、対応するサーバ転送要求３１０を削除する。また、転送完了処理部２４３は、現在転送数７３が最大転送可能数７２の値（ここでは、「１」）に達した場合、次の部分データ３１の転送に備え、現在転送数７３をリセットし「０」とする。
【００４８】
キャッシュ位置取得部２２は、ファイルサーバ３及び実行サーバ４ａ〜４ｅにキャッシュされている保有データの一覧を収集し、ファイル管理リスト３００に転送元のキャッシュ位置を記述してセットする。
【００４９】
ファイル管理リスト３００のファイル名には、転送元ファイルサーバ情報６１として、キャッシュ位置取得部２２により検出されたファイルサーバ３の情報がリンクされる。
【００５０】
ここで、データ転送の具体例として、ファイル管理リスト３００に基づいて、ファイルＡの部分データＡ１〜Ａ６が実行サーバ４ａ〜４ｅに転送される様子について説明する。図７は、実施例１にかかるデータ転送を説明するためのタイムチャートである。なお、部分データＡ１〜Ａ６は、それぞれ部分データ３１ａ〜３１ｆに対応する。
【００５１】
図７に示すように、ステップＳ１おいて、まず、ファイルサーバ３から最初の部分データＡ１を最初の実行サーバ４ａに転送する。このとき、ファイルサーバ３からの部分データＡ１の転送は、転送回数管理情報の最大転送可能数が「１」に設定されているため、実行サーバ４ａに対して１回のみ行われる。実行サーバ４ａは、部分データＡ１を受け取ると、この部分データＡ１を自己のキャッシュに格納する。
【００５２】
続いて、ステップＳ２において、ファイルサーバ３は、部分データＡ１を１回しか送ることができないため、部分データＡ２を実行サーバ４ａに転送する。また、実行サーバ４ａは、キャッシュに格納した部分データＡ１を次の実行サーバに転送する。そして、部分データＡ２を受け取った実行サーバ４ａは、部分データＡ２を自己のキャッシュに格納し、部分データＡ１を受け取った実行サーバ４ｂは、部分データＡ１を自己のキャッシュに格納する。
【００５３】
以下同様に、ファイルサーバ３は、ステップＳ３〜Ｓ６の各タイミングにおいて、部分データＡ３〜Ａ６を次の実行サーバ４ａに順次転送する。また、実行サーバ４ａにあっては、ステップＳ２〜Ｓ７の各タイミングにおいて、部分データＡ１〜Ａ６を次の実行サーバ４ｂに順次転送する。
【００５４】
残りの実行サーバ４ｂ〜４ｅについても同様であり、各タイミングにおいて、部分データＡ１〜Ａ６を次の実行サーバ４ｃ〜４ｅに順次転送する。そして、ステップＳ１０のタイミングにおいて、最後の実行サーバ４ｅに対する最後の部分データＡ６の転送が完了すると、実行サーバ４ａ〜４ｅに対するデータ３０の転送が完了する。
【００５５】
ここで、各実行サーバ４へのデータの転送順序をＩＰアドレス順にソートすることによる効果について具体的に説明する。
【００５６】
本実施例にかかるデータ転送システムＳのように複数のサーバを有するシステムにおいては、システム管理者等がサーバの管理を行い易いように、各サーバ同士を接続する通信路（ネットワーク６）の上流（下流）側に設置されたサーバから下流（上流）側に設置されたサーバに向かってＩＰアドレスを順番に割り振られている。
【００５７】
そのため、本実施例にかかるデータ転送スケジュール装置２のように、各実行サーバ４へのデータ転送を各実行サーバ４のＩＰアドレス順に行うことにより、通信路内で実行サーバ４同士による通信の衝突が起こるおそれがなく、スムーズなデータ転送を行うことができる。
【００５８】
しかも、本実施例にかかるデータ転送システムＳでは、ジョブ実行指示装置１による各実行サーバ４に対するジョブ実行指示の送信順序を、データ転送スケジュール装置２によりスケジューリングされたデータ３０の転送順序と同じ順序にソートする。
【００５９】
これにより、各実行サーバ４は、ジョブ実行指示装置１からジョブの実行指示を受けた順に、データ転送スケジュール装置２に対してデータ３０の転送要求を行う。そして、データ転送スケジュール装置２は、これらデータ転送要求５０に基づくサーバ転送要求を、当該データ転送要求５０を受け取った順にファイル管理リスト３００に追加し、所定期間ごとに、受け取ったデータ転送要求５０に基づいてデータ３０の転送順序をソートする。
【００６０】
このように、本実施例にかかるデータ転送システムＳでは、データ転送スケジュール装置２に対してデータ転送要求５０がデータ転送に最適な順序であるＩＰアドレス順に送られてくる。したがって、例えば、所定期間内に受け取ったデータ転送要求５０に応じてデータ転送を行った後に、別の実行サーバ４からデータ転送要求５０を受け取った場合であっても、データ転送スケジュール装置２は、ＩＰアドレス順に基づく最適なデータ転送を行うことができる。
【００６１】
次に、本実施例にかかるジョブ実行指示装置１の具体的動作の一例について図面を参照して説明する。図８は、実施例１にかかるジョブ実行指示装置１の処理手順の一例を示すフローチャートである。なお、以下の処理は、ジョブ実行指示装置１が実行する種々の動作のうち、実行サーバ４に対するジョブの実行指示に関する処理のみを示している。
【００６２】
図８に示すように、ジョブ実行指示装置１の制御部１１は、ジョブ実行受付部１０にてユーザからジョブの実行を開始すべき旨の要求を受け付ける（ステップＳ１１）。次に、マッチング処理部１１０は、マッチング処理を行う（ステップＳ１２）。具体的には、マッチング処理部１１０は、所定の条件に基づき、データ転送システムＳ内の全てのサーバの中から、ジョブを実行する複数の実行サーバ４を選択する。
【００６３】
ステップＳ１２の処理を終えると、ソート処理部１１１は、ソート処理を行う（ステップＳ１３）。このソート処理は、マッチング処理により選択された実行サーバ４へのジョブ実行指示の送信順序のソートを行う処理であり、後述する。次に、制御部１１は、ソート処理によりソートされた送信順序に従って、ジョブ実行指示をジョブ実行指示部１２から各実行サーバ４に送信する（ステップＳ１４）。この処理を終えると、ジョブ実行指示装置１は、ジョブ実行指示に関する処理を終了する。
【００６４】
続いて、ステップＳ１３におけるソート処理について、図９を用いて具体的に説明する。図９は、実施例１にかかるジョブ実行指示装置１のソート処理の処理手順の一例を示すフローチャートである。
【００６５】
図９に示すように、ソート処理を開始すると、ソート処理部１１１は、記憶部１３に記憶されたジョブ実行情報管理テーブル１３０を読み出す（ステップＳ２１）。そして、ソート処理部１１１は、このジョブ実行情報管理テーブル１３０に記憶された実行サーバ４へのジョブ実行指示の送信順序をＩＰアドレスの昇順にソートし（ステップＳ２２）、ジョブ実行情報管理テーブル１３０を更新する（ステップＳ２３）。ステップＳ２４の処理を終えたとき、ソート処理部１１１は、ソート処理を終了する。
【００６６】
続いて、データ転送スケジュール装置２の具体的動作の一例について、図面を参照して説明する。図１０は、実施例１にかかるデータ転送スケジュール装置２の処理手順の一例を示すフローチャートである。なお、以下の処理は、データ転送スケジュール装置２が実行する種々の動作のうち、実行サーバ４へのデータ転送に関する処理のみを示している。
【００６７】
図１０に示すように、データ転送スケジュール装置２の制御部２４は、データ転送要求５０があるか否かを判定する（ステップＳ３１）。この判定は、転送要求受付部２０において受け付けたデータ転送要求５０が記憶される所定の領域に、データ転送要求５０が存在するか否かにより判定される。この処理において、データ転送要求５０を受け付けたと判定すると（ステップＳ３１肯定）、制御部２４は、ソート処理部２２０によるソート処理を行う（ステップＳ３２）。このソート処理は、図１１に示す処理であり、後述する。次に、転送情報管理部２４１は、転送順序管理処理を行う（ステップＳ３３）。この転送順序管理処理は、図１２に示す処理であり、後述する。
【００６８】
続いて、制御部２４は、データ転送が完了したか否かを判定する（ステップＳ３４）。この処理において、データ転送が完了したと判定すると（ステップＳ３４肯定）、制御部２４は、処理をステップＳ３５に移行する。一方、ステップＳ３４において、データ転送が完了していないとき（ステップＳ３４否定）、制御部２４は、処理をステップＳ３３に移行する。
【００６９】
ステップＳ３５において、転送完了処理部２４３は、ファイル管理リスト３００を削除し（ステップＳ３５）、依頼元に転送が正常に終了したことを通知する（ステップＳ３６）。ステップＳ３６の処理を終えたとき、あるいはステップＳ３１において、データ転送要求を受け付けていないとき（ステップＳ３１否定）、制御部２４は、ログオフ等の停止指示がなされたか否かを判定する（ステップＳ３７）。この処理において、停止指示がなされていないとき（ステップＳ３７否定）、制御部２４は、処理をステップＳ３１に移行する。一方、停止指示がなされたと判定すると（ステップＳ３７肯定）、制御部２４は、実行サーバ４へのデータ転送に関する処理を終了する。
【００７０】
続いて、ステップＳ３２におけるソート処理について、図１１を参照して具体的に説明する。図１１は、実施例１にかかるデータ転送スケジュール装置２のソート処理の処理手順の一例を示すフローチャートである。
【００７１】
図１１に示すように、ソート処理を開始すると、制御部２４は、ステップＳ３１において転送要求受付部２０で受け付けたデータ転送要求５０に基づくサーバ転送要求３１０をＩＰアドレスの昇順にソートする（ステップＳ４１）。そして、制御部２４は、ファイル管理リスト３００にサーバ転送要求３１０を連結する（ステップＳ４２）。
【００７２】
続いて、制御部２４は、進捗管理情報６０を初期化して対応するサーバ転送要求３１０にリンクさせる（ステップＳ４３）。そして、制御部２４は、生成したファイル管理リスト３００を追加イベントとして転送要求格納部２２１に送信する（ステップＳ４４）。ステップＳ４４の処理を終えたとき、制御部２４は、ソート処理を終了する。
【００７３】
続いて、ステップＳ３３における転送順序管理処理について、図１２を参照して具体的に説明する。図１２は、実施例１にかかるデータ転送スケジュール装置２の転送順序管理処理の処理手順の一例を示すフローチャートである。
【００７４】
図１２に示すように、転送情報管理部２４１は、新規サーバの転送要求投入イベントがあるか否かを判定する（ステップＳ５１）。この判定は、転送要求受付部２０が実行サーバ４からデータ転送要求５０を受け付けたか否かにより判定される。この処理において、新規サーバの転送要求投入イベントがない場合（ステップＳ５１否定）、転送情報管理部２４１は、処理をステップＳ５２に移行する。
【００７５】
ステップＳ５２において、転送情報管理部２４１は、部分データ３１の転送完了イベントがある否かを判定する。この処理において、部分データ３１の転送完了イベントがあると判定したとき（ステップＳ５２肯定）、あるいは、ステップＳ５１において、新規サーバの転送投入イベントがあると判定したとき（ステップＳ５１肯定）、転送情報管理部２４１は、処理をステップＳ５３に移行する。
【００７６】
続いて、転送情報管理部２４１は、ファイル管理リスト３００に対応付けて生成管理している進捗管理情報６０及び転送回数管理情報７０を更新する（ステップＳ５３）。続いて、転送情報管理部２４１は、更新した進捗管理情報６０及び転送回数管理情報７０に基づき転送可能サーバがあるか否かを判定する（ステップＳ５４）。この処理において、転送可能サーバがあると判定すると（ステップＳ５４肯定）、データ転送依頼部２４２は、部分データ配信管理部２３に部分データ３１の転送を依頼する（ステップＳ５５）。
【００７７】
ここで、転送可能サーバの判定方法について具体的に説明する。先ず、転送情報管理部２４１は、各実行サーバ４にリンクしたサーバ進捗管理情報６２における部分データ進捗比６２１を読み取る。このとき、分子の転送完了数が分母の細分化数未満であることを判別すると、転送情報管理部２４１は、転送可能なサーバであると判定し、当該実行サーバ４にリンクした転送回数管理情報７０の現在転送数７３を読み取る。続いて、転送情報管理部２４１は、現在転送数７３が最大転送可能数７２未満か否かを判定し、最大転送可能数７２未満であれば、この実行サーバ４は転送可能サーバと判定する。
【００７８】
ステップＳ５６において、データ転送依頼部２４２は、転送回数管理情報７０において、対応する部分データ３１の現在転送数を１つ増加させて更新する。続いて、転送完了処理部２４３は、実行サーバ４へのデータ転送が完了したか否かを判定する（ステップＳ５７）。この処理において、実行サーバ４へのデータ転送が完了したと判定すると（ステップＳ５７肯定）、転送完了処理部２４３は、当該実行サーバ４に対応するサーバ転送要求３１０をファイル管理リスト３００から削除する（ステップＳ５８）。ステップＳ５８の処理を終えたとき、制御部２４は、転送順序管理処理を終了する。
【００７９】
上述してきたように、実施例１にかかるジョブ実行指示装置１によれば、各実行サーバ４に転送するデータ３０の転送順序のソート方法と同じソート方法を用いて、各実行サーバ４に送信するジョブ実行指示の送信順序のソートを行う。これにより、各実行サーバ４からデータ転送スケジュール装置２へのデータ転送要求５０は、データ転送スケジュール装置２によるデータ３０の転送に最適な順序で送信されるため、最適なデータ転送をより確実に行うことができる。
【００８０】
なお、本実施例においては、ジョブ実行指示の送信順序及びデータの転送順序を、実行サーバ４に割り当てられたＩＰアドレスの昇順にソートすることとしたが、必ずしも昇順である必要はなく、ＩＰアドレスの降順であってもよい。このように、ＩＰアドレスの降順にソートした場合であっても、ＩＰアドレスの昇順にソートした場合と同様の効果を奏することができる。
【実施例２】
【００８１】
上述した実施例１にかかるデータ転送システムＳでは、ジョブ実行指示の送信順序及びデータの転送順序を、実行サーバ４に割り当てられたＩＰアドレス順にソートすることとした。実施例２では、これに代えて、各サーバが複数のラックに分割して収容されている場合に、これら送信順序及びデータの転送順序を、ラックの情報に基づきソートする。
【００８２】
以下に、実施例２におけるデータ転送システムの概要について図面を参照して説明する。図１３は、実施例２にかかるジョブ実行情報管理テーブルの一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
【００８３】
本実施例にかかるデータ転送システムＳにおいて、各サーバは、複数のラックごとに分割して収容されている。本実施にかかるデータ転送システムＳは、２００台のサーバと、これらサーバを収容するための１０台のラックを有するものとする。すなわち、各ラックには、サーバが２０台ずつ収容される。
【００８４】
また、各ラックには、ラック番号が割り当てられている。すなわち、本実施例にかかるデータ転送システムＳでは、各ラックには、１〜１０のラック番号が与えられている。
【００８５】
本実施例にかかるジョブ実行指示装置１が記憶するジョブ実行情報管理テーブル１３０は、図１３に示すように、各実行サーバ４のサーバ名と、各実行サーバ４に割り当てられたＩＰアドレスと、各実行サーバ４が属するラックに割り当てられたラック番号とを、ジョブ実行指示の送信順序と関連付けて記憶する。すなわち、本実施例にかかるデータ転送システムＳでは、ラック番号「１」が割り当てられたラックには、実行サーバ４ａ，４ｃ，４ｂが収容されており、ラック番号「２」が割り当てられたラックには、実行サーバ４ｄ，４ｅが収容されている。
【００８６】
次に、本実施例にかかるジョブ実行指示装置１の具体的動作の一例について図面を参照して説明する。図１４は、実施例２にかかるジョブ実行指示装置１のソート処理の処理手順の一例を示すフローチャートである。
【００８７】
図１４に示すように、ソート処理を開始すると、ソート処理部１１１は、記憶部１３に記憶されたジョブ実行情報管理テーブル１３０を読み出す（ステップＳ７１）。次に、ソート処理部１１１は、最も小さいＩＰアドレスが割り当てられた実行サーバ４をラック番号ごとに１つずつ選択する（ステップＳ７２）。
【００８８】
続いて、ソート処理部１１１は、ステップＳ７２において選択した実行サーバ４をＩＰアドレスの昇順にソートする（ステップＳ７３）。その後、ソート処理部１１１は、ステップＳ７２において選択されなかったその他の実行サーバ４をＩＰアドレスの昇順にソートし（ステップＳ７４）、ジョブ実行情報管理テーブル１３０を更新する（ステップＳ７５）。ステップＳ７５の処理を終えたとき、ソート処理部１１１は、ソート処理を終了する。
【００８９】
上述してきたように、実施例２にかかるデータ転送システムＳによれば、あるデータ３０を同一ラック内に存在する実行サーバ４間で転送し合う場合に、各ラック内の一の実行サーバ４に当該データ３０が優先的に転送されるため、当該データ転送をより効率的に行うことができる。
【実施例３】
【００９０】
以下に、実施例３にかかるデータ転送システムＳの概要について説明する。図１５は、データごとにソートの起点が異なることを説明するための図である。
【００９１】
実施例３では、転送するデータごとにソートの起点を異ならせる。具体的には、例えば、ジョブ実行指示の送信順序又はデータ３０の転送順序をＩＰアドレスの昇順にソートする場合において、ファイルＡを転送する場合は、図１５に示すように、ＩＰアドレス「10.25.100.00」を起点としてソートを行う。すなわち、ファイルＡを転送する場合は、ＩＰアドレス「10.25.100.00」に最も近い値を持つ実行サーバ４にファイルＡが最初に転送される。また、ファイルＢを転送する場合は、ＩＰアドレス「10.25.200.00」を起点としてソートを行う。
【００９２】
以下同様に、ファイルＣを転送する場合は、ＩＰアドレス「10.25.300.00」を起点とし、ファイルＤを転送する場合は、ＩＰアドレス「10.25.400.00」を起点とし、ファイルＥを転送する場合は、ＩＰアドレス「10.25.500.00」を起点としてソートが行われる。また、起点となるＩＰアドレスよりも小さい値のＩＰアドレスを持つ実行サーバ４が存在する場合、当該実行サーバ４は、最も大きいＩＰアドレスを持つ実行サーバ４の次にデータが転送されるようにソートされる。
【００９３】
次に、実施例３にかかるジョブ実行指示装置１の構成について図面を参照して具体的に説明する。図１６は、実施例３にかかるジョブ実行指示装置の構成を示すブロック図、図１７は実施例３にかかる開始ＩＰアドレス情報管理テーブルの一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
【００９４】
図１６に示すように、実施例３にかかるジョブ実行指示装置１は、記憶部１３に開始ＩＰアドレス情報管理テーブル１３１を有する。この開始ＩＰアドレス情報管理テーブル１３１は、図１７に示すように、ソートの起点となる開始ＩＰアドレスをデータ３０のファイル名と関連付けて記憶する。例えば、ファイルＡには、開始ＩＰアドレスとして「10.25.100.00」が関連付けられている。すなわち、ファイルＡを転送する場合は、このＩＰアドレスの次に大きい値のＩＰアドレスが割り当てられた実行サーバ４に最初にファイルＡが転送される。
【００９５】
次に、実施例３にかかるジョブ実行指示装置１のソート処理について、図面を参照して説明する。図１８は、実施例３にかかるジョブ実行指示装置１のソート処理の処理手順の一例を示すフローチャートである。なお、その他の処理は、実施例１において説明したジョブ実行指示装置１の具体的動作と同様である。
【００９６】
図１８に示すように、ソート処理を開始すると、ソート処理部１１１は、記憶部１３に記憶されたジョブ実行情報管理テーブル１３０を読み出す（ステップＳ８１）。次に、ソート処理部１１１は、開始ＩＰアドレス情報管理テーブル１３１を参照して、当該ジョブに用いるデータのファイル名に関連付けられた開始ＩＰアドレス情報を取得する（ステップＳ８２）。
【００９７】
そして、ソート処理部１１１は、取得した開始ＩＰアドレス情報を起点として、ジョブ実行指示の送信順序を各実行サーバ４に割り当てられたＩＰアドレスの昇順にソートする（ステップＳ８３）。すなわち、例えば、ファイルＡを用いたジョブの実行を指示する場合、ソート処理部１１１は、開始ＩＰアドレス「10.25.500.00」の次に大きい値のＩＰアドレスが割り当てられた実行サーバ４に対してファイルＡが最初に転送されるように送信順序のソートを行う。
【００９８】
ステップＳ８３の処理を終えると、ソート処理部１１１は、開始ＩＰアドレスよりも小さいＩＰアドレスを持つ実行サーバ４が存在するか否かを判定する（ステップＳ８４）。この処理において、開始ＩＰアドレスよりも小さいＩＰアドレスを持つ実行サーバ４が存在すると判定した場合（ステップＳ８４肯定）、ソート処理部１１１は、当該実行サーバ４をＩＰアドレスの昇順にソートする（ステップＳ８５）。
【００９９】
ステップＳ８５の処理を終えたとき、あるいは、ステップＳ８４において、開始ＩＰアドレスよりも小さいＩＰアドレスを持つ実行サーバ４が存在しない場合（ステップＳ８４否定）、ソート処理部１１１は、ジョブ実行情報管理テーブル１３０を更新し（ステップＳ８６）、ソート処理を終了する。
【０１００】
上述してきたように、実施例３にかかるデータ転送システムＳによれば、データごとにソートの起点を異ならせるため、データ転送を行う際に特定のサーバに負荷が集中するのを防止することができる。
【実施例４】
【０１０１】
上述した各実施例では、ジョブ実行指示装置１のソート処理部１１１及びデータ転送スケジュール装置２のソート処理部２２０により、それぞれジョブ実行指示の送信順序及びデータの転送順序のソートが同一のソート方法により行われることとした。実施例４では、これに代えて、ジョブ実行指示装置１及びデータ転送スケジュール装置２との間に設けたジョブ実行順序決定装置により、これら送信順序及び転送順序を決定する。
【０１０２】
以下、実施例４にかかるデータ転送システムＳについて説明する。図１９は、実施例４にかかるデータ転送システムＳの全体構成の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
【０１０３】
図１９に示すように、実施例４にかかるデータ転送システムＳは、ジョブ実行指示装置１のソート処理部１１３と、データ転送スケジュール装置２のソート処理部２２２とに相互に接続されたジョブ実行順序決定装置８を有する。ジョブ実行順序決定装置８は、ジョブ実行指示装置１又はデータ転送スケジュール装置２から取得した情報に基づき、ジョブ実行指示の送信順序又はデータ３０の転送順序を決定する。
【０１０４】
次に、実施例４にかかるジョブ実行順序決定装置８の構成について、図面を参照して具体的に説明する。図２０は、実施例４にかかるジョブ実行順序決定装置８の構成を示すブロック図である。
【０１０５】
図２０に示すように、ジョブ実行順序決定装置８は、サーバ情報取得部８１と、制御部８２と、転送順序情報送信部８３とを有する。サーバ情報取得部８１は、情報取得部として機能し、ジョブ実行指示装置１又はデータ転送スケジュール装置２から、サーバ情報を取得する。サーバ情報とは、ジョブ実行指示装置１のマッチング処理部１１０により選択された実行サーバ４のサーバ名とＩＰアドレスを含む情報である。
【０１０６】
制御部８２は、ジョブ実行順序決定装置８全体を制御する。この制御部８２は、ソート処理部８２０を有する。ソート処理部８２０は、サーバ情報取得部８１により取得したサーバ情報に基づき、各実行サーバ４に送信するジョブ実行指示の送信順序又は各実行サーバに転送するデータの転送順序を所定のソート方法でソートする。
【０１０７】
転送順序情報送信部８３は、情報送信部として機能し、ソート処理部８２０によりソートされた送信順序又は転送順序の情報をジョブ実行指示装置１又はデータ転送スケジュール装置２に送信する。
【０１０８】
また、本実施例において、ジョブ実行指示装置１のソート処理部１１３は、マッチング処理部１１０により選択された実行サーバ４の情報を取得した後、当該情報（すなわち、サーバ情報）をジョブ実行順序決定装置８に送信する。
【０１０９】
ジョブ実行順序決定装置８の制御部８２は、このサーバ情報をサーバ情報取得部８１より取得し、当該取得したサーバ情報に基づき、ジョブ実行指示の送信順序をＩＰアドレス順にソートする。次に、制御部８２は、ソート処理部８２０によりソートされた送信順序の情報を転送順序情報送信部８３を介してジョブ実行指示装置１のソート処理部１１３に送信する。そして、ジョブ実行指示装置１のソート処理部１１３は、取得した送信順序の情報に基づき、ジョブ実行情報管理テーブル１３０を更新する。
【０１１０】
また、本実施例において、データ転送スケジュール装置２のソート処理部２２２は、転送要求受付部２０により取得したデータ転送要求５０に含まれるサーバ情報をジョブ実行順序決定装置８に送信する。
【０１１１】
続いて、ジョブ実行順序決定装置８の制御部８２は、このサーバ情報をサーバ情報取得部８１より取得し、当該取得したサーバ情報に基づき、ジョブ実行指示の送信順序をＩＰアドレス順にソートする。次に、制御部８２は、ソート処理部８２０によりソートされた送信順序の情報を転送順序情報送信部８３を介してデータ転送スケジュール装置２のソート処理部２２２に送信する。そして、データ転送スケジュール装置２のソート処理部２２２は、取得した送信順序の情報に基づき、ソート処理（図１１に示すステップＳ４３、Ｓ４４の処理）を行う。
【０１１２】
上述してきたように、実施例４にかかるデータ転送システムＳは、ジョブ実行指示装置１及びデータ転送スケジュール装置２の各々において行っていたソート処理をジョブ実行順序決定装置８により一元的に行う。したがって、データ転送システムＳに複数のジョブ実行指示装置１やデータ転送スケジュール装置２が存在する場合であっても、ジョブ実行指示の送信順序及びデータ３０の転送順序のソート方法を容易に合わせることができる。
【０１１３】
なお、実施例４では、ジョブ実行指示の送信順序及びデータ３０の転送順序のソート方法（所定のソート方法）として、ＩＰアドレス順にソートする場合を例にとり説明したが、実施例２や実施例３において説明したその他のソート方法も適用することができる。
【０１１４】
例えば、実施例２のようにラックの情報に基づいてソートを行う場合、ジョブ実行順序決定装置８の制御部８２は、ジョブ実行指示装置１またはデータ転送スケジュール装置２から、サーバ情報として実行サーバ４のサーバ名、ＩＰアドレス及びラック番号の情報を取得する。そして、ソート処理部８２０は、ソート処理として、図１４に示すステップＳ７２〜Ｓ７５までの処理を行ったのち、この処理によってソートされた送信順序又は転送順序をジョブ実行指示装置１またはデータ転送スケジュール装置２に送信する。これにより、実施例２と同様の効果を奏する。
【０１１５】
また、実施例３のように、ファイルごとにソートの起点を異ならせる場合、ジョブ実行順序決定装置８は、開始ＩＰアドレス情報管理テーブルを記憶している。そして、ジョブ実行順序決定装置８の制御部８２は、ジョブ実行指示装置１またはデータ転送スケジュール装置２から、サーバ情報として実行サーバ４のサーバ名及びＩＰアドレスの情報を取得する。続いて、ソート処理部８２０は、ソート処理として、図１８に示すステップＳ８２〜Ｓ８５までの処理を行ったのち、この処理によってソートされた送信順序又は転送順序をジョブ実行指示装置１またはデータ転送スケジュール装置２に送信する。これにより、実施例３と同様の効果を奏する。
【０１１６】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図２１を用いて、上記実施例に示したジョブ実行指示装置１と同様の機能を有するジョブ実行指示プログラムを実行するコンピュータの一例を説明する。図２１は、ジョブ実行指示プログラムを実行するコンピュータを示す図である。
【０１１７】
図２１に示すように、ジョブ実行指示装置１としてのコンピュータ５００は、ＨＤＤ５１０、ＣＰＵ５２０、ＲＯＭ５３０及びＲＡＭ５４０をバス５５０で接続して構成される。
【０１１８】
ＲＯＭ５３０には、上記の実施例と同様の機能を発揮するジョブ実行指示プログラム、つまり、図２１に示すように、マッチング処理プログラム５３１、ソート処理プログラム５３２及び送信プログラム５３３が予め記憶されている。
【０１１９】
そして、ＣＰＵ５２０が、これらのプログラム５３１〜５３３をＲＯＭ５３０から読み出して実行することにより、各プログラム５３１〜５３３は、それぞれマッチング処理プロセス５２１、ソート処理プロセス５２２及び送信プロセス５２３として機能する。このようにＣＰＵ５２０は、図２に示す制御部１１に相当する。
【０１２０】
なお、ＨＤＤ５１０には、プロセス５２１〜５２３によって利用される各種データが格納されている。ＣＰＵ５２０は、ＨＤＤ５１０に格納された各種データを読み出して、ＲＡＭ５４０に格納し、プロセス５２１〜５２３が、ＲＡＭ５４０に格納された各種データを利用して、ソート処理などの各種処理を実行する。
【０１２１】
また、図２２を用いて、上記実施例に示したジョブ実行順序決定装置８と同様の機能を有するジョブ実行順序決定プログラムを実行するコンピュータの一例を説明する。図２２は、ジョブ実行順序決定プログラムを実行するコンピュータを示す図である。
【０１２２】
図２２に示すように、ジョブ実行指示装置１としてのコンピュータ６００は、ＨＤＤ６１０、ＣＰＵ６２０、ＲＯＭ６３０及びＲＡＭ６４０をバス６５０で接続して構成される。
【０１２３】
ＲＯＭ６３０には、上記の実施例と同様の機能を発揮するジョブ実行順序決定プログラム、つまり、図２２に示すように、情報取得プログラム６３１、ソート処理プログラム６３２及び情報送信プログラム６３３が予め記憶されている。
【０１２４】
そして、ＣＰＵ６２０が、これらのプログラム６３１〜６３３をＲＯＭ６３０から読み出して実行することにより、各プログラム６３１〜６３３は、それぞれ情報取得プロセス６２１、ソート処理プロセス６２２及び情報送信プロセス６２３として機能する。このようにＣＰＵ６２０は、図２０に示す制御部８２に相当する。
【０１２５】
なお、ＨＤＤ６１０には、プロセス６２１〜６２３によって利用される各種データが格納されている。ＣＰＵ６２０は、ＨＤＤ６１０に格納された各種データを読み出して、ＲＡＭ６４０に格納し、プロセス６２１〜６２３が、ＲＡＭ６４０に格納された各種データを利用して、ソート処理などの各種処理を実行する。
【０１２６】
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１２７】
例えば、上述した各実施例では、ネットワークアドレスとして、ＩＰアドレスとして説明したが、ＩＰアドレスに限らず、ホスト名やイーサネット（登録商標）アドレス等を用いてもよい。
【０１２８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２９】
（付記１）複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示プログラムであって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理手順と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示手順と
をコンピュータに実行させることを特徴とするジョブ実行指示プログラム。
【０１３０】
（付記２）前記ソート処理手順は、各前記実行サーバへの前記ジョブ実行指示の送信順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする付記１に記載のジョブ実行指示プログラム。
【０１３１】
（付記３）前記複数のサーバは、複数のラックに分割して収容されており、
前記ソート処理手順は、各ラックに収容された実行サーバの中から一の実行サーバをそれぞれ選択し、当該選択した各実行サーバに対して前記ジョブ実行指示が優先的に送信されるようにソートすることを特徴とする付記１に記載のジョブ実行指示プログラム。
【０１３２】
（付記４）前記ソート処理手順は、前記データ毎にソートの起点を異ならせることを特徴とする付記１〜３の何れか１つに記載のジョブ実行指示プログラム。
【０１３３】
（付記５）複数のサーバと、これら複数のサーバに対してジョブの実行を指示するジョブ実行指示装置と、前記ジョブの実行に必要なデータの各前記サーバへの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムにおける、前記データ転送スケジュール装置と前記ジョブ実行指示装置との間に設けられたジョブ実行順序決定装置におけるジョブ実行順序決定プログラムであって、
前記ジョブ実行指示装置又は前記データ転送スケジュール装置から、前記ジョブを実行する実行サーバのサーバ情報を取得する情報取得手順と、
前記情報取得部により取得したサーバ情報に基づき、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を所定のソート方法でソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序又は転送順序の情報を前記ジョブ実行指示装置又は前記データ転送スケジュール装置に送信する情報送信手順と
をコンピュータに実行させることを特徴とするジョブ実行順序決定プログラム。
【０１３４】
（付記６）前記ソート処理手順は、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする付記５に記載のジョブ実行順序決定プログラム。
【０１３５】
（付記７）前記複数のサーバは、複数のラックに分割して収容されており、
前記ソート処理手順は、各ラックに収容された実行サーバの中から一の実行サーバをそれぞれ選択し、当該選択した各実行サーバに対して前記ジョブ実行指示が優先的に送信されるようにソートすることを特徴とする付記５に記載のジョブ実行順序決定プログラム。
【０１３６】
（付記８）前記ソート処理手順は、前記データ毎にソートの起点を異ならせることを特徴とする付記５〜７の何れか１つに記載のジョブ実行順序決定プログラム。
【０１３７】
（付記９）複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示方法であって、
前記ジョブ実行指示装置が、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択する選択ステップと、
前記選択ステップにおいて選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソートステップと、
前記ソートステップによりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示ステップと
を含むことを特徴とするジョブ実行指示方法。
【０１３８】
（付記１０）複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置であって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理部と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理部と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示部と
を備えたことを特徴とするジョブ実行指示装置。
【図面の簡単な説明】
【０１３９】
【図１】実施例１にかかるデータ転送システムの全体構成の一例を示す図である。
【図２】実施例１にかかるジョブ実行指示装置の構成を示すブロック図である。
【図３−１】ソート処理の実行前におけるジョブ実行情報管理テーブルの一例を示す図である。
【図３−２】ソート処理の実行後におけるジョブ実行情報管理テーブルの一例を示す図である。
【図４】実施例１にかかるデータ転送スケジュール装置の構成を示すブロック図である。
【図５】ファイル管理リスト、進捗管理情報及び転送回数管理情報の構成の一例を示す図である。
【図６−１】サーバ転送要求の構成の一例を示す図である。
【図６−２】サーバ進捗管理情報の構成の一例を示す図である。
【図６−３】転送回数管理情報の構成の一例を示す図である。
【図７】実施例１にかかるデータ転送を説明するためのタイムチャートである。
【図８】実施例１にかかるジョブ実行指示装置の処理手順の一例を示すフローチャートである。
【図９】実施例１にかかるジョブ実行指示装置のソート処理の処理手順の一例を示すフローチャートである。
【図１０】実施例１にかかるデータ転送スケジュール装置の処理手順の一例を示すフローチャートである。
【図１１】実施例１にかかるデータ転送スケジュール装置のソート処理の処理手順の一例を示すフローチャートである。
【図１２】実施例１にかかるデータ転送スケジュール装置の転送順序管理処理の処理手順の一例を示すフローチャートである。
【図１３】実施例２にかかるジョブ実行情報管理テーブルの一例を示す図である。
【図１４】実施例２にかかるジョブ実行指示装置のソート処理の処理手順の一例を示すフローチャートである。
【図１５】データごとにソートの起点が異なることを説明するための図である。
【図１６】実施例３にかかるジョブ実行指示装置の構成を示すブロック図である。
【図１７】実施例３にかかる開始ＩＰアドレス情報管理テーブルの一例を示す図である。
【図１８】実施例３にかかるジョブ実行指示装置のソート処理の処理手順の一例を示すフローチャートである。
【図１９】実施例４にかかるデータ転送システムの全体構成の一例を示す図である。
【図２０】実施例４にかかるジョブ実行順序決定装置の構成を示すブロック図である。
【図２１】ジョブ実行指示プログラムを実行するコンピュータを示す図である。
【図２２】ジョブ実行順序決定プログラムを実行するコンピュータを示す図である。
【符号の説明】
【０１４０】
Ｓ  データ転送システム
１  ジョブ実行指示装置
２  データ転送スケジュール装置
３  ファイルサーバ
４  実行サーバ
５  ストレージ
６  ネットワーク
１０  ジョブ実行受付部
１１  制御部
１２  ジョブ実行指示部
１３  記憶部
１１０  マッチング処理部
１１１  ソート処理部
１３０  ジョブ実行情報管理テーブル
【図１】
2010113688.tif 000003
【図２】
2010113688.tif 000004
【図３−１】
2010113688.tif 000005
【図３−２】
2010113688.tif 000006
【図４】
2010113688.tif 000007
【図５】
2010113688.tif 000008
【図６−１】
2010113688.tif 000009
【図６−２】
2010113688.tif 000010
【図６−３】
2010113688.tif 000011
【図７】
2010113688.tif 000012
【図８】
2010113688.tif 000013
【図９】
2010113688.tif 000014
【図１０】
2010113688.tif 000015
【図１１】
2010113688.tif 000016
【図１２】
2010113688.tif 000017
【図１３】
2010113688.tif 000018
【図１４】
2010113688.tif 000019
【図１５】
2010113688.tif 000020
【図１６】
2010113688.tif 000021
【図１７】
2010113688.tif 000022
【図１８】
2010113688.tif 000023
【図１９】
2010113688.tif 000024
【図２０】
2010113688.tif 000025
【図２１】
2010113688.tif 000026
【図２２】
2010113688.tif 000027