まず、本実施例にかかるデータ転送システムの概要について、図面を参照して説明する。図1は、実施例1にかかるデータ転送システムの全体構成の一例を示す図である。本実施例にかかるデータ転送システムは、例えば並列システムのように、複数のサーバを用いて同一のデータを用いるジョブを実行する際、これら複数のサーバに対してデータを効率よく転送するシステムである。
図1に示すように、本実施例にかかるデータ転送システムSは、ジョブ実行指示装置1と、データ転送スケジュール装置2と、ファイルサーバ3と、複数のサーバ4a〜4eと、複数のストレージ5a〜5eとを有する。ジョブ実行指示装置1、データ転送スケジュール装置2及び複数のサーバ4は、ネットワーク6を介して相互に接続される。
ジョブ実行指示装置1は、サーバ4a〜4eに対してジョブの実行を指示する装置である。また、データ転送スケジュール装置2は、サーバ4a〜4eに転送するデータ30の転送順序をスケジューリングすることにより、ネットワーク6内における該データ30の転送を最適化する装置である。また、ファイルサーバ3は、サーバ4a〜4eに転送するデータ30を保持するサーバであり、データ転送スケジュール装置2に接続される。本実施例において、データ30は、6つの部分データ31a〜31fに細分化されている。
サーバ4a〜4eは、一般的なサーバ装置を適用することができ、ジョブ実行指示装置1からの指示に基づいて各種のジョブを実行する。このジョブを実行する際、サーバ4a〜4eは、データ転送スケジュール装置2に対してジョブの実行に必要なデータの転送要求を行う。ストレージ5a〜5eは、各サーバ4a〜4eに接続された記憶装置であり、各サーバ4a〜4eが取得した部分データ31a〜31fを記憶する。なお、本実施例にかかるデータ転送システムSは、サーバ4a〜4e以外にも複数のサーバ(図示せず)を有しており、これら全てのサーバのうち、ジョブ実行指示装置1から指示を受けてジョブを実行するサーバ(ここでは、サーバ4a〜4e)を「実行サーバ」と称する。
このように、本実施例にかかるデータ転送システムSでは、先ず、ジョブ実行指示装置1が実行サーバ4a〜4eに対してジョブの実行を指示する。次に、ジョブ実行指示を受けた実行サーバ4a〜4eが、データ転送スケジュール装置2に対してジョブの実行に必要なデータの転送要求を行う。そして、データ転送スケジュール装置2は、各実行サーバ4a〜4eから取得した転送要求に基づき、各実行サーバ4a〜4eへの部分データ31a〜31fの転送順序をスケジューリングし、その結果に基づいて部分データ31a〜31fを転送する。
これにより、各部分データ31a〜31fは、データ転送スケジュール装置2によりスケジューリングされた転送順序に基づき、ファイルサーバ3及び実行サーバ4a〜4e間をバケツリレー的に転送されるため、全てのサーバ4a〜4eに短時間で効率よく配信される。
次に、ジョブ実行指示装置1の具体的構成について、図2を参照して説明する。図2は実施例1にかかるジョブ実行指示装置1の構成を示すブロック図、図3−1はソート処理の実行前におけるジョブ実行情報管理テーブルの一例を示す図、図3−2はソート処理の実行後におけるジョブ実行情報管理テーブルの一例を示す図である。
図2に示すように、本実施例にかかるジョブ実行指示装置1は、ジョブ実行受付部10と、制御部11と、ジョブ実行指示部12と、記憶部13とを有する。ジョブ実行受付部10は、ユーザからジョブの実行を開始すべき旨の要求を受け付ける。なお、この要求には、ジョブの内容や当該ジョブに用いるデータのファイル名などが含まれる。
制御部11は、ジョブ実行指示装置1全体を制御するものである。この制御部11は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、特に、マッチング処理部110と、ソート処理部111とを有する。マッチング処理部110は、データ転送システムS内の全てのサーバの中から、ジョブを実行する複数の実行サーバ4を選択する。この際、マッチング処理部110は、例えば、最終使用日時が最も古いことや空き容量が最も大きいことなどを条件として、ジョブを実行するサーバとして適したサーバを選択する。
ソート処理部111は、マッチング処理部110により選択された複数の実行サーバ4a〜4eに対して送信するジョブ実行指示の送信順序をソートする。具体的には、ソート処理部111は、ジョブ実行指示の送信順序を、データ転送スケジュール装置2によりスケジューリングされるデータの転送順序と同じ順序にソートする。
記憶部13は、データ転送システムS内の全てのサーバに関する情報(サーバ名やIPアドレスなど)、ユーザからのジョブ実行開始要求に含まれる情報、その他ジョブの実行指示に必要な情報を記憶する。この記憶部13は、ジョブ実行情報管理テーブル130を有する。ジョブ実行情報管理テーブル130は、図3−1に示すように、各実行サーバ4a〜4eのサーバ名と、各実行サーバ4a〜4eに割り当てられたIPアドレス(ネットワークアドレスに相当)とを、ジョブ実行指示の送信順序と関連付けて記憶する。このジョブ実行情報管理テーブル130は、データ30ごとに作成される。
ここで、図3−1に示すように、実行サーバ4a〜4eは、マッチング処理部110により選択された順に並んでいる。すなわち、実行サーバ4a〜4eは、マッチング処理部110により実行サーバ4d→実行サーバ4a→実行サーバ4e→実行サーバ4c→実行サーバ4bの順序で選択された場合、図3−1に示すように、ジョブ実行情報管理テーブル130には、当該選択された順でソートされる。
そして、かかる状態のときに、ソート処理部111によりソート処理がなされると、実行サーバ4a〜4eは、データ転送スケジュール装置2によりスケジューリングされるデータの転送順序と同じ順序にソートされた状態となる。ここで、本実施例において、データ転送スケジュール装置2は、各実行サーバ4a〜4eへのデータ30の転送順序を、データ転送システムS内の全てのサーバに割り当てられたIPアドレスの昇順にソートする。かかる点については、後述する。
したがって、本実施例にかかるソート処理部111は、データ転送スケジュール装置2によるソート方法と同様のソート方法として、図3−2に示すように、各実行サーバ4へのジョブ実行指示の送信順序を、データ転送システムS内の全てのサーバに割り当てられたIPアドレスの昇順にソートする。すなわち、ジョブ実行情報管理テーブル130におけるジョブ実行指示の送信順序は、最小のIPアドレス「10.25.109.51」が割り当てられた実行サーバ4aを起点として、実行サーバ4b(10.25.159.33)→実行サーバ4c(10.25.209.90)→実行サーバ4d(10.25.213.15)→実行サーバ4e(10.25.328.24)と、IPアドレスの昇順にソートされる。
ジョブ実行指示部12は、ソート処理部111によりソートされた送信順序で各実行サーバ4a〜4eに対してジョブの実行指示を送信する。
続いて、本実施例にかかるデータ転送スケジュール装置2の具体的構成について図面を用いて説明する。図4は実施例1にかかるデータ転送スケジュール装置2の構成を示すブロック図である。
なお、本実施例にかかるデータ転送スケジュール装置2は、バケツリレー方式と呼ばれるデータ転送方式を採用している。バケツリレー方式では、1つのデータを複数の部分データに細分化し、これら部分データを所定の方法で定められた転送順序に基づき複数のサーバ間で順次転送させる。これにより、各サーバ同士で部分データを転送し合うため、スタートポロジ方式のように特定のサーバ(例えば、データを格納するファイルサーバ3)が他の全てのサーバに対してデータを転送する場合と比べ、極めて高速なデータ転送が可能となる。
図4に示すように、本実施例にかかるデータ転送スケジュール装置2は、転送要求受付部20と、転送順序管理部21と、キャッシュ位置取得部22と、部分データ配信管理部23と、制御部24とを有する。また、各実行サーバ4a〜4eには、それぞれのサーバ名として、HOST1〜HOST5が設定されている。
転送順序管理部21は、各実行サーバ4へのデータ30の転送順序の管理を行う。この転送順序管理部21は、ソート処理部220と転送要求格納部221とを有する。ソート処理部220は、転送要求受付部20で受け付けたデータ転送要求50に基づき、データの転送順序をソートする。転送要求格納部221は、ソート処理部220によるソート結果に基づき作成されるファイル管理リスト300を格納する。また、制御部24は、データ転送スケジュール装置2全体を制御する。この制御部24は、転送情報管理部241、データ転送依頼部242及び転送完了処理部243を有する。
転送要求受付部20は、各実行サーバ4a〜4eからのデータ転送要求50a〜50eを受け付けて保持する。この転送要求受付部20で受け付けるデータ転送要求50には、ファイル名(例えば、「ファイルA」)が含まれている。なお、本実施例において、転送要求受付部20により受け付けたデータ転送要求50は、所定の領域に記憶され、ソート処理部220により所定間隔毎に取り出される。
データ転送要求50a〜50eは、転送要求受付部20で受け付けた順に転送順序管理部21へと送られる。転送順序管理部21は、転送要求受付部20から受け取ったデータ転送要求50a〜50eをIPアドレスの昇順にソートし、ファイル名に結合して配列したファイル管理リスト300を生成する。そして、転送順序管理部21は、このファイル管理リスト300に基づき、部分データ配信管理部23にデータ転送を依頼する。
部分データ配信管理部23は、転送順序管理部21から転送依頼を受けた際に、依頼先となるファイルサーバ3又は実行サーバ4a〜4eにデータ転送を指示してバケツリレーデータ転送を実行する。
ここで、この転送順序管理部21の機能について、制御部24とともに更に詳細に説明する。まず、ソート処理部220は、転送要求受付部20が受け付けたデータ転送要求50を所定の領域から取り出すと、取り出したデータ転送要求50をIPアドレスの昇順でソートし、これらデータ転送要求をサーバへの転送順に配列したファイル管理リスト300を生成する。
ファイル管理リスト300に配列されている「HOST1〜HOST5」で示されるそれぞれのサーバ転送要求には、後述する進捗管理情報がリンクされている。進捗管理情報は、転送先となる実行サーバ4に対する部分データ31の転送の進捗状況を示す情報である。例えば、ファイル名Aのデータに対応するファイル管理リスト300にリンクされた進捗管理情報には、転送順に「1/6、2/6、3/6、4/6、5/6」が記録されている。
転送情報管理部241は、ファイル管理リスト300に配列した「HOST1〜HOST5」で示すサーバ転送要求に基づき、進捗管理情報及び転送回数管理情報を生成して管理する。
ここで、ファイル管理リスト300、進捗管理情報及び転送回数管理情報について図面を用いて説明する。図5は、ファイル管理リスト300、進捗管理情報及び転送回数管理情報の構成の一例を示す図である。
図5に示すように、ファイル管理リスト300には、各実行サーバ4a〜4eから取得したデータ転送要求50a〜50eに基づくサーバ転送要求310a〜310eが含まれている。これらサーバ転送要求310a〜310eは、依頼元の実行サーバ4a〜4eのIPアドレスの昇順に配列されている。
ソート処理部220は、ファイル管理リスト300を生成すると、各サーバ転送要求310a〜310eに対してサーバ進捗管理情報62a〜62eをリンクさせる。
各サーバ転送要求310a〜310eにリンクされたサーバ進捗管理情報62a〜62eは、実行サーバ4間で転送される部分データ31の転送進捗情報を記録する。例えば、本実施例のように、データ30を6つの部分データ31a〜31fに細分化した場合、転送進捗情報には、部分データ31a〜31fを転送先の実行サーバ4に転送するごとに、1/6→2/6→3/6→4/6→5/6と変化する情報が記録される。
ここで、サーバ転送要求310、進捗管理情報60及び転送回数管理情報70に含まれる情報の内容について、図6を用いて説明する。図6−1はサーバ転送要求310の構成の一例を示す図、図6−2は進捗管理情報60の構成の一例を示す図、図6−3は転送回数管理情報70の構成の一例を示す図である。
図6−1に示すように、サーバ転送要求310は、実行サーバ4の要求したデータ30のファイル名311と転送先となる実行サーバ4のサーバ名312とを含む。また、図6−2に示すように、サーバ進捗管理情報62は、部分データ進捗比621とサーバ名622とを含む。部分データ進捗比621は、部分データの転送完了数/細分化数で与えられる情報である。具体的には、部分データ進捗比621は、部分データ31の転送の進捗に応じて、0/6→1/6→2/6→3/6→4/6→5/6→6/6と変化する。
なお、部分データ進捗比「0/6」は、部分データ31の転送が未だ行われていない状態を示す初期値である。また、部分データ進捗比「6/6」は、部分データ31の全ての転送が完了した状態を示す値となる。
転送回数管理情報70は、部分データ31をファイルサーバ3から各実行サーバ4a〜4eに対して転送する際に、各実行サーバ4間で同一の部分データ31を転送できる回数を制限する情報である。転送回数管理情報70は、図6−3に示すように、データ30の転送を要求した実行サーバ4のサーバ名71と、最大転送可能数72と、現在転送数73とを含む。
すなわち、実行サーバ4に転送するごとに現在転送数73は、1つずつ増加し、現在転送数73が最大転送可能数72に達すると、それ以降同じ部分データ31の実行サーバ4への転送が禁止される。本実施例では、この最大転送可能数72を「1」としており、各実行サーバ4は、一つの部分データ31を他の実行サーバ4に対して1回しか転送できないように制限されている。これによってファイルサーバ3から各実行サーバ4に対し、部分データ31を近接サーバ間で1回ずつ順次転送するバケツリレー転送を実現することができる。
データ転送依頼部242は、転送情報管理部241が管理する進捗管理情報60及び転送回数管理情報70に基づき転送可能な実行サーバ4を判定し、当該判定結果に基づき部分データ配信管理部23にデータ転送を依頼する。この際、データ転送依頼部242は、各実行サーバ4に対応する現在転送数73を「0」から「1」に更新する。
転送完了処理部243は、データ転送の完了通知を部分データ配信管理部23から受けた際に、進捗管理情報60に含まれるサーバ進捗管理情報62の部分データ進捗比621の分子を1つ増加させる更新を行う。また、転送完了処理部243は、部分データ進捗比621の分母の細分化数と分子の部分データ転送完了数とが一致したとき(ここでは、「6/6」)、全ての部分データ31の転送完了を判別し、対応するサーバ転送要求310を削除する。また、転送完了処理部243は、現在転送数73が最大転送可能数72の値(ここでは、「1」)に達した場合、次の部分データ31の転送に備え、現在転送数73をリセットし「0」とする。
キャッシュ位置取得部22は、ファイルサーバ3及び実行サーバ4a〜4eにキャッシュされている保有データの一覧を収集し、ファイル管理リスト300に転送元のキャッシュ位置を記述してセットする。
ファイル管理リスト300のファイル名には、転送元ファイルサーバ情報61として、キャッシュ位置取得部22により検出されたファイルサーバ3の情報がリンクされる。
ここで、データ転送の具体例として、ファイル管理リスト300に基づいて、ファイルAの部分データA1〜A6が実行サーバ4a〜4eに転送される様子について説明する。図7は、実施例1にかかるデータ転送を説明するためのタイムチャートである。なお、部分データA1〜A6は、それぞれ部分データ31a〜31fに対応する。
図7に示すように、ステップS1おいて、まず、ファイルサーバ3から最初の部分データA1を最初の実行サーバ4aに転送する。このとき、ファイルサーバ3からの部分データA1の転送は、転送回数管理情報の最大転送可能数が「1」に設定されているため、実行サーバ4aに対して1回のみ行われる。実行サーバ4aは、部分データA1を受け取ると、この部分データA1を自己のキャッシュに格納する。
続いて、ステップS2において、ファイルサーバ3は、部分データA1を1回しか送ることができないため、部分データA2を実行サーバ4aに転送する。また、実行サーバ4aは、キャッシュに格納した部分データA1を次の実行サーバに転送する。そして、部分データA2を受け取った実行サーバ4aは、部分データA2を自己のキャッシュに格納し、部分データA1を受け取った実行サーバ4bは、部分データA1を自己のキャッシュに格納する。
以下同様に、ファイルサーバ3は、ステップS3〜S6の各タイミングにおいて、部分データA3〜A6を次の実行サーバ4aに順次転送する。また、実行サーバ4aにあっては、ステップS2〜S7の各タイミングにおいて、部分データA1〜A6を次の実行サーバ4bに順次転送する。
残りの実行サーバ4b〜4eについても同様であり、各タイミングにおいて、部分データA1〜A6を次の実行サーバ4c〜4eに順次転送する。そして、ステップS10のタイミングにおいて、最後の実行サーバ4eに対する最後の部分データA6の転送が完了すると、実行サーバ4a〜4eに対するデータ30の転送が完了する。
ここで、各実行サーバ4へのデータの転送順序をIPアドレス順にソートすることによる効果について具体的に説明する。
本実施例にかかるデータ転送システムSのように複数のサーバを有するシステムにおいては、システム管理者等がサーバの管理を行い易いように、各サーバ同士を接続する通信路(ネットワーク6)の上流(下流)側に設置されたサーバから下流(上流)側に設置されたサーバに向かってIPアドレスを順番に割り振られている。
そのため、本実施例にかかるデータ転送スケジュール装置2のように、各実行サーバ4へのデータ転送を各実行サーバ4のIPアドレス順に行うことにより、通信路内で実行サーバ4同士による通信の衝突が起こるおそれがなく、スムーズなデータ転送を行うことができる。
しかも、本実施例にかかるデータ転送システムSでは、ジョブ実行指示装置1による各実行サーバ4に対するジョブ実行指示の送信順序を、データ転送スケジュール装置2によりスケジューリングされたデータ30の転送順序と同じ順序にソートする。
これにより、各実行サーバ4は、ジョブ実行指示装置1からジョブの実行指示を受けた順に、データ転送スケジュール装置2に対してデータ30の転送要求を行う。そして、データ転送スケジュール装置2は、これらデータ転送要求50に基づくサーバ転送要求を、当該データ転送要求50を受け取った順にファイル管理リスト300に追加し、所定期間ごとに、受け取ったデータ転送要求50に基づいてデータ30の転送順序をソートする。
このように、本実施例にかかるデータ転送システムSでは、データ転送スケジュール装置2に対してデータ転送要求50がデータ転送に最適な順序であるIPアドレス順に送られてくる。したがって、例えば、所定期間内に受け取ったデータ転送要求50に応じてデータ転送を行った後に、別の実行サーバ4からデータ転送要求50を受け取った場合であっても、データ転送スケジュール装置2は、IPアドレス順に基づく最適なデータ転送を行うことができる。
次に、本実施例にかかるジョブ実行指示装置1の具体的動作の一例について図面を参照して説明する。図8は、実施例1にかかるジョブ実行指示装置1の処理手順の一例を示すフローチャートである。なお、以下の処理は、ジョブ実行指示装置1が実行する種々の動作のうち、実行サーバ4に対するジョブの実行指示に関する処理のみを示している。
図8に示すように、ジョブ実行指示装置1の制御部11は、ジョブ実行受付部10にてユーザからジョブの実行を開始すべき旨の要求を受け付ける(ステップS11)。次に、マッチング処理部110は、マッチング処理を行う(ステップS12)。具体的には、マッチング処理部110は、所定の条件に基づき、データ転送システムS内の全てのサーバの中から、ジョブを実行する複数の実行サーバ4を選択する。
ステップS12の処理を終えると、ソート処理部111は、ソート処理を行う(ステップS13)。このソート処理は、マッチング処理により選択された実行サーバ4へのジョブ実行指示の送信順序のソートを行う処理であり、後述する。次に、制御部11は、ソート処理によりソートされた送信順序に従って、ジョブ実行指示をジョブ実行指示部12から各実行サーバ4に送信する(ステップS14)。この処理を終えると、ジョブ実行指示装置1は、ジョブ実行指示に関する処理を終了する。
続いて、ステップS13におけるソート処理について、図9を用いて具体的に説明する。図9は、実施例1にかかるジョブ実行指示装置1のソート処理の処理手順の一例を示すフローチャートである。
図9に示すように、ソート処理を開始すると、ソート処理部111は、記憶部13に記憶されたジョブ実行情報管理テーブル130を読み出す(ステップS21)。そして、ソート処理部111は、このジョブ実行情報管理テーブル130に記憶された実行サーバ4へのジョブ実行指示の送信順序をIPアドレスの昇順にソートし(ステップS22)、ジョブ実行情報管理テーブル130を更新する(ステップS23)。ステップS24の処理を終えたとき、ソート処理部111は、ソート処理を終了する。
続いて、データ転送スケジュール装置2の具体的動作の一例について、図面を参照して説明する。図10は、実施例1にかかるデータ転送スケジュール装置2の処理手順の一例を示すフローチャートである。なお、以下の処理は、データ転送スケジュール装置2が実行する種々の動作のうち、実行サーバ4へのデータ転送に関する処理のみを示している。
図10に示すように、データ転送スケジュール装置2の制御部24は、データ転送要求50があるか否かを判定する(ステップS31)。この判定は、転送要求受付部20において受け付けたデータ転送要求50が記憶される所定の領域に、データ転送要求50が存在するか否かにより判定される。この処理において、データ転送要求50を受け付けたと判定すると(ステップS31肯定)、制御部24は、ソート処理部220によるソート処理を行う(ステップS32)。このソート処理は、図11に示す処理であり、後述する。次に、転送情報管理部241は、転送順序管理処理を行う(ステップS33)。この転送順序管理処理は、図12に示す処理であり、後述する。
続いて、制御部24は、データ転送が完了したか否かを判定する(ステップS34)。この処理において、データ転送が完了したと判定すると(ステップS34肯定)、制御部24は、処理をステップS35に移行する。一方、ステップS34において、データ転送が完了していないとき(ステップS34否定)、制御部24は、処理をステップS33に移行する。
ステップS35において、転送完了処理部243は、ファイル管理リスト300を削除し(ステップS35)、依頼元に転送が正常に終了したことを通知する(ステップS36)。ステップS36の処理を終えたとき、あるいはステップS31において、データ転送要求を受け付けていないとき(ステップS31否定)、制御部24は、ログオフ等の停止指示がなされたか否かを判定する(ステップS37)。この処理において、停止指示がなされていないとき(ステップS37否定)、制御部24は、処理をステップS31に移行する。一方、停止指示がなされたと判定すると(ステップS37肯定)、制御部24は、実行サーバ4へのデータ転送に関する処理を終了する。
続いて、ステップS32におけるソート処理について、図11を参照して具体的に説明する。図11は、実施例1にかかるデータ転送スケジュール装置2のソート処理の処理手順の一例を示すフローチャートである。
図11に示すように、ソート処理を開始すると、制御部24は、ステップS31において転送要求受付部20で受け付けたデータ転送要求50に基づくサーバ転送要求310をIPアドレスの昇順にソートする(ステップS41)。そして、制御部24は、ファイル管理リスト300にサーバ転送要求310を連結する(ステップS42)。
続いて、制御部24は、進捗管理情報60を初期化して対応するサーバ転送要求310にリンクさせる(ステップS43)。そして、制御部24は、生成したファイル管理リスト300を追加イベントとして転送要求格納部221に送信する(ステップS44)。ステップS44の処理を終えたとき、制御部24は、ソート処理を終了する。
続いて、ステップS33における転送順序管理処理について、図12を参照して具体的に説明する。図12は、実施例1にかかるデータ転送スケジュール装置2の転送順序管理処理の処理手順の一例を示すフローチャートである。
図12に示すように、転送情報管理部241は、新規サーバの転送要求投入イベントがあるか否かを判定する(ステップS51)。この判定は、転送要求受付部20が実行サーバ4からデータ転送要求50を受け付けたか否かにより判定される。この処理において、新規サーバの転送要求投入イベントがない場合(ステップS51否定)、転送情報管理部241は、処理をステップS52に移行する。
ステップS52において、転送情報管理部241は、部分データ31の転送完了イベントがある否かを判定する。この処理において、部分データ31の転送完了イベントがあると判定したとき(ステップS52肯定)、あるいは、ステップS51において、新規サーバの転送投入イベントがあると判定したとき(ステップS51肯定)、転送情報管理部241は、処理をステップS53に移行する。
続いて、転送情報管理部241は、ファイル管理リスト300に対応付けて生成管理している進捗管理情報60及び転送回数管理情報70を更新する(ステップS53)。続いて、転送情報管理部241は、更新した進捗管理情報60及び転送回数管理情報70に基づき転送可能サーバがあるか否かを判定する(ステップS54)。この処理において、転送可能サーバがあると判定すると(ステップS54肯定)、データ転送依頼部242は、部分データ配信管理部23に部分データ31の転送を依頼する(ステップS55)。
ここで、転送可能サーバの判定方法について具体的に説明する。先ず、転送情報管理部241は、各実行サーバ4にリンクしたサーバ進捗管理情報62における部分データ進捗比621を読み取る。このとき、分子の転送完了数が分母の細分化数未満であることを判別すると、転送情報管理部241は、転送可能なサーバであると判定し、当該実行サーバ4にリンクした転送回数管理情報70の現在転送数73を読み取る。続いて、転送情報管理部241は、現在転送数73が最大転送可能数72未満か否かを判定し、最大転送可能数72未満であれば、この実行サーバ4は転送可能サーバと判定する。
ステップS56において、データ転送依頼部242は、転送回数管理情報70において、対応する部分データ31の現在転送数を1つ増加させて更新する。続いて、転送完了処理部243は、実行サーバ4へのデータ転送が完了したか否かを判定する(ステップS57)。この処理において、実行サーバ4へのデータ転送が完了したと判定すると(ステップS57肯定)、転送完了処理部243は、当該実行サーバ4に対応するサーバ転送要求310をファイル管理リスト300から削除する(ステップS58)。ステップS58の処理を終えたとき、制御部24は、転送順序管理処理を終了する。
上述してきたように、実施例1にかかるジョブ実行指示装置1によれば、各実行サーバ4に転送するデータ30の転送順序のソート方法と同じソート方法を用いて、各実行サーバ4に送信するジョブ実行指示の送信順序のソートを行う。これにより、各実行サーバ4からデータ転送スケジュール装置2へのデータ転送要求50は、データ転送スケジュール装置2によるデータ30の転送に最適な順序で送信されるため、最適なデータ転送をより確実に行うことができる。
なお、本実施例においては、ジョブ実行指示の送信順序及びデータの転送順序を、実行サーバ4に割り当てられたIPアドレスの昇順にソートすることとしたが、必ずしも昇順である必要はなく、IPアドレスの降順であってもよい。このように、IPアドレスの降順にソートした場合であっても、IPアドレスの昇順にソートした場合と同様の効果を奏することができる。
上述した各実施例では、ジョブ実行指示装置1のソート処理部111及びデータ転送スケジュール装置2のソート処理部220により、それぞれジョブ実行指示の送信順序及びデータの転送順序のソートが同一のソート方法により行われることとした。実施例4では、これに代えて、ジョブ実行指示装置1及びデータ転送スケジュール装置2との間に設けたジョブ実行順序決定装置により、これら送信順序及び転送順序を決定する。
以下、実施例4にかかるデータ転送システムSについて説明する。図19は、実施例4にかかるデータ転送システムSの全体構成の一例を示す図である。なお、既に説明した構成と同じものについては同一の符号を付し、その説明を省略する。
図19に示すように、実施例4にかかるデータ転送システムSは、ジョブ実行指示装置1のソート処理部113と、データ転送スケジュール装置2のソート処理部222とに相互に接続されたジョブ実行順序決定装置8を有する。ジョブ実行順序決定装置8は、ジョブ実行指示装置1又はデータ転送スケジュール装置2から取得した情報に基づき、ジョブ実行指示の送信順序又はデータ30の転送順序を決定する。
次に、実施例4にかかるジョブ実行順序決定装置8の構成について、図面を参照して具体的に説明する。図20は、実施例4にかかるジョブ実行順序決定装置8の構成を示すブロック図である。
図20に示すように、ジョブ実行順序決定装置8は、サーバ情報取得部81と、制御部82と、転送順序情報送信部83とを有する。サーバ情報取得部81は、情報取得部として機能し、ジョブ実行指示装置1又はデータ転送スケジュール装置2から、サーバ情報を取得する。サーバ情報とは、ジョブ実行指示装置1のマッチング処理部110により選択された実行サーバ4のサーバ名とIPアドレスを含む情報である。
制御部82は、ジョブ実行順序決定装置8全体を制御する。この制御部82は、ソート処理部820を有する。ソート処理部820は、サーバ情報取得部81により取得したサーバ情報に基づき、各実行サーバ4に送信するジョブ実行指示の送信順序又は各実行サーバに転送するデータの転送順序を所定のソート方法でソートする。
転送順序情報送信部83は、情報送信部として機能し、ソート処理部820によりソートされた送信順序又は転送順序の情報をジョブ実行指示装置1又はデータ転送スケジュール装置2に送信する。
また、本実施例において、ジョブ実行指示装置1のソート処理部113は、マッチング処理部110により選択された実行サーバ4の情報を取得した後、当該情報(すなわち、サーバ情報)をジョブ実行順序決定装置8に送信する。
ジョブ実行順序決定装置8の制御部82は、このサーバ情報をサーバ情報取得部81より取得し、当該取得したサーバ情報に基づき、ジョブ実行指示の送信順序をIPアドレス順にソートする。次に、制御部82は、ソート処理部820によりソートされた送信順序の情報を転送順序情報送信部83を介してジョブ実行指示装置1のソート処理部113に送信する。そして、ジョブ実行指示装置1のソート処理部113は、取得した送信順序の情報に基づき、ジョブ実行情報管理テーブル130を更新する。
また、本実施例において、データ転送スケジュール装置2のソート処理部222は、転送要求受付部20により取得したデータ転送要求50に含まれるサーバ情報をジョブ実行順序決定装置8に送信する。
続いて、ジョブ実行順序決定装置8の制御部82は、このサーバ情報をサーバ情報取得部81より取得し、当該取得したサーバ情報に基づき、ジョブ実行指示の送信順序をIPアドレス順にソートする。次に、制御部82は、ソート処理部820によりソートされた送信順序の情報を転送順序情報送信部83を介してデータ転送スケジュール装置2のソート処理部222に送信する。そして、データ転送スケジュール装置2のソート処理部222は、取得した送信順序の情報に基づき、ソート処理(図11に示すステップS43、S44の処理)を行う。
上述してきたように、実施例4にかかるデータ転送システムSは、ジョブ実行指示装置1及びデータ転送スケジュール装置2の各々において行っていたソート処理をジョブ実行順序決定装置8により一元的に行う。したがって、データ転送システムSに複数のジョブ実行指示装置1やデータ転送スケジュール装置2が存在する場合であっても、ジョブ実行指示の送信順序及びデータ30の転送順序のソート方法を容易に合わせることができる。
なお、実施例4では、ジョブ実行指示の送信順序及びデータ30の転送順序のソート方法(所定のソート方法)として、IPアドレス順にソートする場合を例にとり説明したが、実施例2や実施例3において説明したその他のソート方法も適用することができる。
例えば、実施例2のようにラックの情報に基づいてソートを行う場合、ジョブ実行順序決定装置8の制御部82は、ジョブ実行指示装置1またはデータ転送スケジュール装置2から、サーバ情報として実行サーバ4のサーバ名、IPアドレス及びラック番号の情報を取得する。そして、ソート処理部820は、ソート処理として、図14に示すステップS72〜S75までの処理を行ったのち、この処理によってソートされた送信順序又は転送順序をジョブ実行指示装置1またはデータ転送スケジュール装置2に送信する。これにより、実施例2と同様の効果を奏する。
また、実施例3のように、ファイルごとにソートの起点を異ならせる場合、ジョブ実行順序決定装置8は、開始IPアドレス情報管理テーブルを記憶している。そして、ジョブ実行順序決定装置8の制御部82は、ジョブ実行指示装置1またはデータ転送スケジュール装置2から、サーバ情報として実行サーバ4のサーバ名及びIPアドレスの情報を取得する。続いて、ソート処理部820は、ソート処理として、図18に示すステップS82〜S85までの処理を行ったのち、この処理によってソートされた送信順序又は転送順序をジョブ実行指示装置1またはデータ転送スケジュール装置2に送信する。これにより、実施例3と同様の効果を奏する。
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図21を用いて、上記実施例に示したジョブ実行指示装置1と同様の機能を有するジョブ実行指示プログラムを実行するコンピュータの一例を説明する。図21は、ジョブ実行指示プログラムを実行するコンピュータを示す図である。
図21に示すように、ジョブ実行指示装置1としてのコンピュータ500は、HDD510、CPU520、ROM530及びRAM540をバス550で接続して構成される。
ROM530には、上記の実施例と同様の機能を発揮するジョブ実行指示プログラム、つまり、図21に示すように、マッチング処理プログラム531、ソート処理プログラム532及び送信プログラム533が予め記憶されている。
そして、CPU520が、これらのプログラム531〜533をROM530から読み出して実行することにより、各プログラム531〜533は、それぞれマッチング処理プロセス521、ソート処理プロセス522及び送信プロセス523として機能する。このようにCPU520は、図2に示す制御部11に相当する。
なお、HDD510には、プロセス521〜523によって利用される各種データが格納されている。CPU520は、HDD510に格納された各種データを読み出して、RAM540に格納し、プロセス521〜523が、RAM540に格納された各種データを利用して、ソート処理などの各種処理を実行する。
また、図22を用いて、上記実施例に示したジョブ実行順序決定装置8と同様の機能を有するジョブ実行順序決定プログラムを実行するコンピュータの一例を説明する。図22は、ジョブ実行順序決定プログラムを実行するコンピュータを示す図である。
図22に示すように、ジョブ実行指示装置1としてのコンピュータ600は、HDD610、CPU620、ROM630及びRAM640をバス650で接続して構成される。
ROM630には、上記の実施例と同様の機能を発揮するジョブ実行順序決定プログラム、つまり、図22に示すように、情報取得プログラム631、ソート処理プログラム632及び情報送信プログラム633が予め記憶されている。
そして、CPU620が、これらのプログラム631〜633をROM630から読み出して実行することにより、各プログラム631〜633は、それぞれ情報取得プロセス621、ソート処理プロセス622及び情報送信プロセス623として機能する。このようにCPU620は、図20に示す制御部82に相当する。
なお、HDD610には、プロセス621〜623によって利用される各種データが格納されている。CPU620は、HDD610に格納された各種データを読み出して、RAM640に格納し、プロセス621〜623が、RAM640に格納された各種データを利用して、ソート処理などの各種処理を実行する。
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
例えば、上述した各実施例では、ネットワークアドレスとして、IPアドレスとして説明したが、IPアドレスに限らず、ホスト名やイーサネット(登録商標)アドレス等を用いてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示プログラムであって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理手順と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示手順と
をコンピュータに実行させることを特徴とするジョブ実行指示プログラム。
(付記2)前記ソート処理手順は、各前記実行サーバへの前記ジョブ実行指示の送信順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする付記1に記載のジョブ実行指示プログラム。
(付記3)前記複数のサーバは、複数のラックに分割して収容されており、
前記ソート処理手順は、各ラックに収容された実行サーバの中から一の実行サーバをそれぞれ選択し、当該選択した各実行サーバに対して前記ジョブ実行指示が優先的に送信されるようにソートすることを特徴とする付記1に記載のジョブ実行指示プログラム。
(付記4)前記ソート処理手順は、前記データ毎にソートの起点を異ならせることを特徴とする付記1〜3の何れか1つに記載のジョブ実行指示プログラム。
(付記5)複数のサーバと、これら複数のサーバに対してジョブの実行を指示するジョブ実行指示装置と、前記ジョブの実行に必要なデータの各前記サーバへの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムにおける、前記データ転送スケジュール装置と前記ジョブ実行指示装置との間に設けられたジョブ実行順序決定装置におけるジョブ実行順序決定プログラムであって、
前記ジョブ実行指示装置又は前記データ転送スケジュール装置から、前記ジョブを実行する実行サーバのサーバ情報を取得する情報取得手順と、
前記情報取得部により取得したサーバ情報に基づき、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を所定のソート方法でソートするソート処理手順と、
前記ソート処理部によりソートされた送信順序又は転送順序の情報を前記ジョブ実行指示装置又は前記データ転送スケジュール装置に送信する情報送信手順と
をコンピュータに実行させることを特徴とするジョブ実行順序決定プログラム。
(付記6)前記ソート処理手順は、各前記実行サーバに送信するジョブ実行指示の送信順序又は各前記実行サーバに転送するデータの転送順序を、前記複数のサーバに割り当てられたネットワークアドレスの昇順又は降順にソートすることを特徴とする付記5に記載のジョブ実行順序決定プログラム。
(付記7)前記複数のサーバは、複数のラックに分割して収容されており、
前記ソート処理手順は、各ラックに収容された実行サーバの中から一の実行サーバをそれぞれ選択し、当該選択した各実行サーバに対して前記ジョブ実行指示が優先的に送信されるようにソートすることを特徴とする付記5に記載のジョブ実行順序決定プログラム。
(付記8)前記ソート処理手順は、前記データ毎にソートの起点を異ならせることを特徴とする付記5〜7の何れか1つに記載のジョブ実行順序決定プログラム。
(付記9)複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置におけるジョブ実行指示方法であって、
前記ジョブ実行指示装置が、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択する選択ステップと、
前記選択ステップにおいて選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソートステップと、
前記ソートステップによりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示ステップと
を含むことを特徴とするジョブ実行指示方法。
(付記10)複数のサーバと、これら複数のサーバに転送するデータの転送順序をスケジューリングすることにより前記データの転送を最適化するデータ転送スケジュール装置とを有するデータ転送システムに設けられ、前記複数のサーバに対して前記データを用いたジョブの実行を指示するジョブ実行指示装置であって、
前記複数のサーバの中から、前記ジョブを実行する実行サーバを複数選択するマッチング処理部と、
前記マッチング処理部により選択された複数の実行サーバに対して送信するジョブ実行指示の送信順序を、前記データ転送スケジュール装置によりスケジューリングされた前記データの転送順序と同じ順序にソートするソート処理部と、
前記ソート処理部によりソートされた送信順序で各前記実行サーバに対して前記ジョブ実行指示を送信するジョブ実行指示部と
を備えたことを特徴とするジョブ実行指示装置。