(57)【特許請求の範囲】
【請求項１】
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
を備える分散処理管理サーバ。
【請求項２】
請求項１に記載の分散処理管理サーバであって、
前記モデル生成手段は、始点を表すノードとデータを表すノードとの間が辺で接続され、終点を表すノードと処理サーバ又は当該処理サーバが備えるデータを処理する処理実行手段を表すノードとの間が辺で接続され、前記処理サーバと当該処理サーバが備える前記処理実行手段との間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記始点から前記終点へ流すことのできる単位時間当たりの最大のデータ量を計算することによって前記データフロー情報を生成する、分散処理管理サーバ。
【請求項３】
請求項１又は２に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上のデータ要素を含む論理データ集合及び当該データ要素のそれぞれがノードで表され、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、一以上の論理データ集合が特定されると、処理サーバを示す識別子の前記集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各論理データ集合との経路及び当該経路のデータ流量を示す前記データフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理サーバ。
【請求項４】
請求項３に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記論理データ集合は一以上の部分データを含み、当該部分データは一のデータが多重化されたデータのそれぞれであり、当該部分データは、それぞれ一以上のデータ要素を含み、
前記モデル生成手段は、一以上のデータ要素を含む部分データ及び当該データ要素のそれぞれがノードで表され、部分データ及び当該部分データに含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記処理割当手段は、前記データフロー情報が示す各経路のうち、一の部分データを示すノードを含む経路のデータ流量に基づいて、各処理サーバが取得するデータの単位時間当たりのデータ処理量を特定する、分散処理管理サーバ。
【請求項５】
請求項１乃至４のいずれか１項に記載の分散処理管理サーバであって、
前記モデル生成手段は、各処理サーバが備える処理実行手段及び当該処理サーバのそれぞれがノードで表され、処理サーバ及び当該処理サーバが備える処理実行手段を表すノードの間が辺で接続され、当該処理実行手段を表すノードと終点とが辺で接続され当該辺に対して当該処理実行手段が単位時間当たりに処理するデータ処理量に対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
【請求項６】
請求項２に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上の論理データ集合に対応付けられているジョブのそれぞれがノードで表され、ジョブ及び当該ジョブに対応付けられる論理データ集合をそれぞれ表すノードの間が辺で接続され、前記始点及び各ジョブを表すノードの間が辺で接続され当該辺に対して当該辺に接続されるジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
【請求項７】
請求項１又は２に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記処理割当手段は、前記データフロー情報で示される各経路のデータ流量を、当該経路における可用帯域から減算し、減算された結果の値を当該経路の新たな可用帯域として、前記モデル生成手段が使用する可用帯域を更新する、分散処理管理サーバ。
【請求項８】
請求項６に記載の分散処理管理サーバであって、
前記モデル生成手段は、ジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される辺の新たな制約条件が、前記最大値と前記最小値との差を上限値に、０を下限値にそれぞれ設定され、仮想始点を示すノードと前記辺に接続されているジョブを示すノードの間が仮想辺で接続され当該仮想辺に対して前記最小値が制約条件として設定され、前記始点を示すノードと仮想終点を示すノードとの間が辺で接続され当該辺に対して前記最小値が制約条件として設定され、前記終点と前記始点との間が辺で接続される、前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記ネットワークモデルに基づいて、前記仮想始点から出る辺及び前記仮想終点に入る辺のデータ流量が飽和するフローを特定し、当該フローから、前記仮想始点を示すノードと前記ジョブを示すノードの間の辺、前記始点を示すノードと前記仮想終点を示すノードとの間の辺、及び、前記終点と前記始点との間の辺を除いたフローを前記データフロー情報に含まれる初期フローとして生成する、分散処理管理サーバ。
【請求項９】
データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、
分散処理管理サーバは、
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、
処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、
データサーバは、データを格納する処理データ格納手段を備える、分散システム。
【請求項１０】
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、
処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データが記憶されるサーバとそのデータを処理するサーバとが分散配置されているシステムにおけるデータの分散処理の管理技術に関する。
【背景技術】
【０００２】
非特許文献１乃至３は、複数の計算機に格納されたデータを処理させる計算サーバを決定する分散システムを開示する。この分散システムは、個々のデータを格納する計算機から最も近傍な利用可能計算サーバを逐次決定することによって、全てのデータの通信経路を決定する。
特許文献１は、一台の計算機に格納されたデータを一台のクライアントに転送するに際して、転送処理に用いられる中継サーバを移動させるシステムを開示する。このシステムは、データを転送するのに要する各計算機と各クライアントとの間のデータ転送時間を算出し、算出したデータ転送時間に基づいて中継サーバを移動させる。
特許文献２は、ファイル転送元マシンからファイル転送先マシンへのファイル転送時に、そのファイルが転送される転送経路の回線速度と負荷状況に応じて、そのファイルを分割し、その分割されたファイルを転送するシステムを開示する。
特許文献３は、様々な速度が指定されるストリーム入出力要求に対して、使用効率の良い資源の割り当てを短時間で決定するストリーム処理装置を開示する。
特許文献４は、複数の計算機に対して、データを格納したファイルシステムにアクセスする複数のＩ／Ｏノードの占有率を、ジョブの実行過程に応じて動的に変更するシステムを開示する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｊｅｆｆｒｅｙ  Ｄｅａｎ  ａｎｄ  Ｓａｎｊａｙ  Ｇｈｅｍａｗａｔ，“ＭａｐＲｅｄｕｃｅ：Ｓｉｍｐｌｉｆｉｅｄ  Ｄａｔａ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｎ  Ｌａｒｇｅ  Ｃｌｕｓｔｅｒｓ″，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｓｉｘｔｈ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ（ＯＳＤＩ’０４），２００４年１２月６日
【非特許文献２】Ｓａｎｊａｙ  Ｇｈｅｍａｗａｔ，Ｈｏｗａｒｄ  Ｇｏｂｉｏｆｆ，ａｎｄ  Ｓｈｕｎ−Ｔａｋ  Ｌｅｕｎｇ，“Ｔｈｅ  Ｇｏｏｇｌｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ″，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｎｉｎｅｔｅｅｎｔｈ  ＡＣＭ  ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｏｐｅｒａｔｉｎｇｓｙｓｔｅｍｓ  ｐｒｉｎｃｉｐｌｅｓ（ＳＯＳＰ’０３），２００３年１０月１９日
【非特許文献３】西田圭介，Ｇｏｏｇｌｅを支える技術，ｐ．７４、ｐ．１３６−ｐ．１６３，２００８年４月２５日
【特許文献】
【０００４】
【特許文献１】特開平８−２０２７２６号公報
【特許文献２】特許第３３９０４０６号公報
【特許文献３】特開平８−１４７２３４号公報
【特許文献４】特許第４５６９８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献及び非特許文献の技術は、データを記憶する複数のデータサーバと、当該データを処理可能な複数の処理サーバと、が分散配置されるシステムに於いて、単位時間当たりの全処理サーバにおける総処理データ量を最大化するデータの転送経路を決定するための情報を生成できない。
その理由は以下の通りである。特許文献１及び２の技術は、一対一のデータ転送における転送時間を最小化するに過ぎない。非特許文献１乃至３の技術は、一対一のデータ転送時間を逐次的に最小化するに過ぎない。特許文献３の技術は、一対多のデータ転送技術を開示するに過ぎない。特許文献４の技術は、ファイルシステムにアクセスするために必要なＩ／Ｏノードの占有率を決定するに過ぎない。
つまり、前述の問題点の理由は、上記特許文献及び非特許文献に記載された技術が、いずれも複数のデータサーバから複数の処理サーバにデータが転送されるシステムにおける、単位時間当たりの処理サーバ全体の総処理データ量を考慮していないからである。
本発明の目的は、上記課題を解決する分散処理管理サーバ、分散システム、記憶媒体及び分散処理管理方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明の一形態における第一の分散処理管理サーバは、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、を備える。
本発明の一形態における第一の分散システムは、データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、分散処理管理サーバは、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、データサーバは、データを格納する処理データ格納手段を備える。
本発明の一形態における第一の分散処理管理方法は、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する。
本発明の一形態における第一の分散処理方法は、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成し、前記生成された前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信し、処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する。
本発明の一形態における第一のコンピュータが読み取り可能な記憶媒体は、コンピュータに、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成する処理と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する処理と、を実行させるための分散処理管理プログラムを格納する。
【発明の効果】
【０００７】
本発明は、データを記憶する複数のデータサーバと当該データを処理する複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバの総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
【図面の簡単な説明】
【０００８】
【図１Ａ】図１Ａは、第１の実施形態における分散システム３５０の構成を示す概要図である。
【図１Ｂ】図１Ｂは、分散システム３５０の構成例を示す図である。
【図２Ａ】図２Ａは、分散システム３５０の非効率な通信例を示す図である。
【図２Ｂ】図２Ｂは、分散システム３５０の効率的な通信例を示す図である。
【図３】図３は、各記憶用ディスク及びネットワークの帯域を表す表２２０の一例を示す図である。
【図４】図４は、分散処理管理サーバ３００、ネットワークスイッチ３２０、処理サーバ３３０及びデータサーバ３４０の構成を示す図である。
【図５】図５は、データ所在格納部３０７０に格納される情報を例示する図である。
【図６】図６は、入出力通信路情報格納部３０８０に格納される情報を例示する図である。
【図７】図７は、サーバ状態格納部３０６０に格納される情報を例示する図である。
【図８Ａ】図８Ａは、モデル生成部３０１が出力するモデル情報の表を例示する図である。
【図８Ｂ】図８Ｂは、モデル生成部３０１が生成するモデル情報の一例を示す概念図である。
【図９】図９は、最適配置計算部３０２が出力する、データフローＦｉを構成する経路情報と流量との対応表を例示する図である。
【図１０】図１０は、処理割当部３０３が決定する決定情報の構成を例示する図である。
【図１１】図１１は、分散システム３５０の全体動作を示すフローチャートである。
【図１２】図１２は、ステップＳ４０１における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１３】図１３は、ステップＳ４０４における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１４】図１４は、ステップＳ４０４内のステップＳ４０４−１０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１５】図１５は、ステップＳ４０４内のステップＳ４０４−２０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１６】図１６は、ステップＳ４０４内のステップＳ４０４−３０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１７】図１７は、ステップＳ４０４内のステップＳ４０４−４０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１８Ａ】図１８Ａは、ステップＳ４０４−４０内のステップＳ４０４−４３０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１８Ｂ】図１８Ｂは、ステップＳ４０４−４０内のステップＳ４０４−４３０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図１９】図１９は、ステップＳ４０４内のステップ４０４−５０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２０】図２０は、ステップＳ４０５における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２１】図２１は、ステップＳ４０６における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２２】図２２は、第２の実施の形態のステップＳ４０４−２０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２３】図２３は、第２の実施の形態におけるステップＳ４０４−３０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２４】図２４は、第２の実施の形態におけるステップＳ４０４−４０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２５】図２５は、第２の実施の形態におけるステップＳ４０６における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２６】図２６は、第３の実施の形態におけるステップＳ４０４−５０における分散処理管理サーバ３００の動作を示すフローチャートである。
【図２７】図２７は、第４の実施の形態における分散システム３５０の構成を示すブロック図である。
【図２８Ａ】図２８Ａは、ジョブ情報格納部３０４０に格納される構成情報を例示する図である。
【図２８Ｂ】図２８Ｂは、帯域制限情報格納部３０９０に格納される構成情報を例示する図である。
【図２８Ｃ】図２８Ｃは、帯域制限情報格納部３１００に格納される構成情報を例示する図である。
【図２９】図２９は、第４の実施の形態におけるステップＳ４０１における分散処理管理サーバ３００の動作を示すフローチャートである。
【図３０】図３０は、第４の実施の形態におけるステップＳ４０４における分散処理管理サーバ３００の動作を示すフローチャートである。
【図３１】図３１は、第４の実施の形態におけるステップＳ４０４−１０−１における分散処理管理サーバ３００の動作を示すフローチャートである。
【図３２】図３２は、第５の実施の形態における分散システム３５０の構成を示すブロック図である。
【図３３】図３３は、第５の実施の形態のステップＳ４０６における、分散処理管理サーバ３００の動作を示すフローチャートである。
【図３４】図３４は、第６の実施の形態における分散処理管理サーバ６００の構成を示すブロック図である。
【図３５】図３５は、処理サーバの識別子の集合の一例を示す図である。
【図３６】図３６は、データ所在情報の集合の一例を示す図である。
【図３７】図３７は、入出力通信路情報の集合の一例を示す図である。
【図３８】図３８は、第６の実施の形態における分散処理管理サーバ６００とその周辺装置のハードウェア構成を示す図である。
【図３９】図３９は、第６の実施の形態における分散処理管理サーバ６００の動作の概要を示すフローチャートである。
【図４０】図４０は、第６の実施の形態の第１の変形例における分散システム６５０の構成を示す図である。
【図４１】図４１は、第１の実施の形態の具体例で使用される分散システム３５０の構成を示すブロック図である。
【図４２】図４２は、第１の実施の形態の具体例において、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報の一例を示す図である。
【図４３】図４３は、第１の実施の形態の具体例において、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０に格納される情報の一例を示す図である。
【図４４】図４４は、第１の実施の形態の具体例において、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報の一例を示す図である。
【図４５】図４５は、第１の実施の形態の具体例において、モデル生成部３０１が生成する、モデル情報の表を示す図である。
【図４６】図４６は、第１の実施の形態の具体例において、図４５が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図である。
【図４７Ａ】図４７Ａは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｂ】図４７Ｂは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｃ】図４７Ｃは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｄ】図４７Ｄは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｅ】図４７Ｅは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｆ】図４７Ｆは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４７Ｇ】図４７Ｇは、第１の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図４８】図４８は、第１の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。
【図４９】図４９は、図４８のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。
【図５０】図５０は、第２の実施の形態の具体例で使用される分散システム３５０の構成を示す図である。
【図５１】図５１は、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報の一例を示す図である。
【図５２】図５２は、第２の実施の形態の具体例でモデル生成部３０１が生成するモデル情報の表を示す図である。
【図５３】図５３は、図５２が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図である。
【図５４Ａ】図５４Ａは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｂ】図５４Ｂは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｃ】図５４Ｃは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｄ】図５４Ｄは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｅ】図５４Ｅは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｆ】図５４Ｆは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５４Ｇ】図５４Ｇは、第２の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図５５】図５５は、第２の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。
【図５６】図５６は、図５５のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。
【図５７】図５７は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報の一例を示す図である。
【図５８】図５８は、第３の実施の形態の具体例でモデル生成部３０１が生成する、モデル情報の表を示す図である。
【図５９】図５９は、図５８が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図である。
【図６０Ａ】図６０Ａは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｂ】図６０Ｂは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｃ】図６０Ｃは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｄ】図６０Ｄは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｅ】図６０Ｅは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｆ】図６０Ｆは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６０Ｇ】図６０Ｇは、第３の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図６１】図６１は、第３の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。
【図６２】図６２は、図６１のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。
【図６３】図６３は、第４の実施の形態の具体例で使用される分散システム３５０の構成を示す図である。
【図６４】図６４は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報の一例を示す図である。
【図６５】図６５は、分散処理管理サーバ３００が備える、ジョブ情報格納部３０４０に格納される情報の一例を示す図である。
【図６６】図６６は、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報の一例を示す図である。
【図６７】図６７は、第４の実施の形態の具体例でモデル生成部３０１が生成するモデル情報の表を示す図である。
【図６８】図６８は、図６７が示すモデル情報の表が示すネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）の概念図である。
【図６９Ａ】図６９Ａは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図６９Ｂ】図６９Ｂは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図６９Ｃ】図６９Ｃは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図６９Ｄ】図６９Ｄは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図６９Ｅ】図６９Ｅは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図６９Ｆ】図６９Ｆは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
【図７０Ａ】図７０Ａは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７０Ｂ】図７０Ｂは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７０Ｃ】図７０Ｃは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７０Ｄ】図７０Ｄは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７０Ｅ】図７０Ｅは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７０Ｆ】図７０Ｆは、第４の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。
【図７１】図７１は、第４の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。
【図７２】図７２は、図７１のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
【図７３】図７３は、第５の実施の形態の具体例において、入出力通信路情報格納部３０８０が格納する情報の一例を示す。
【発明を実施するための形態】
【０００９】
次に、本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面及び明細書記載の各実施の形態において、同様の機能を備える構成要素には同様の符号が与えられている。
［第１の実施の形態］
はじめに、第１の実施の形態における分散システム３５０の構成と動作との概要、及び、分散システム３５０の、関連技術との相違点を説明する。
図１Ａは、第１の実施の形態における分散システム３５０の構成を示す概要図である。分散システム３５０は、分散処理管理サーバ３００、ネットワークスイッチ３２０、複数の処理サーバ３３０＃１ないし３３０＃ｎ、及び、複数のデータサーバ３４０＃１ないし３４０＃ｎを包含し、それぞれがネットワーク３７０によって接続される。分散システム３５０は、クライアント３６０や他のサーバ３９９を包含していても良い。
本明細書において、各データサーバ３４０＃１ないし３４０＃ｎは総称してデータサーバ３４０とも表される。各処理サーバ３３０＃１ないし３３０＃ｎは総称して処理サーバ３３０とも表される。
データサーバ３４０は、処理サーバ３３０による処理の対象となるデータを記憶している。処理サーバ３３０は、データサーバ３４０からデータを受信し、受信したデータに対して処理プログラムを実行することで、当該データを処理する。
クライアント３６０は、データ処理開始を分散処理管理サーバ３００に要求するための情報である要求情報を送信する。要求情報は、処理プログラムとその処理プログラムが使用するデータを含む。このデータとは、例えば、論理データ集合、部分データ又はデータ要素、若しくはそれらの集合である。論理データ集合、部分データ又はデータ要素については後述される。分散処理管理サーバ３００は、データサーバ３４０が記憶するデータのうちの一以上のデータが処理される処理サーバ３３０をデータ毎に決定する。そして分散処理管理サーバ３００は、データを処理する処理サーバ３３０ごとに、そのデータとそのデータが記憶されているデータサーバ３４０とを示す情報及び単位時間当たりのデータ処理量を示す情報を包含する決定情報を生成し、その決定情報を出力する。データサーバ３４０及び処理サーバ３３０は、当該決定情報に基づいてデータの送受信を行う。処理サーバ３３０は受信したデータを処理する。
ここで、分散処理管理サーバ３００、処理サーバ３３０、データサーバ３４０、クライアント３６０は、それぞれ専用の装置であっても汎用のコンピュータであっても良い。また、一台の装置又はコンピュータが、分散処理管理サーバ３００、処理サーバ３３０、データサーバ３４０、クライアント３６０のうちの複数の機能を有しても良い。以下、一台の装置及びコンピュータは総称して、コンピュータ等とも表される。また、分散処理管理サーバ３００、処理サーバ３３０、データサーバ３４０、及びクライアント３６０は総称して、分散処理管理サーバ３００等とも表される。多くの場合、一台のコンピュータ等が処理サーバ３３０及びデータサーバ３４０の両者として機能する。
図１Ｂ、図２Ａ、及び、図２Ｂは、分散システム３５０の構成例を示す図である。これらの図に於いて、処理サーバ３３０及びデータサーバ３４０は、コンピュータとして記述されている。ネットワーク３７０は、スイッチを経由するデータ送受信経路として記述されている。分散処理管理サーバ３００は明記されていない。
図１Ｂにおいて、分散システム３５０は、例えば、コンピュータ１１１及び１１２と、それらを接続するスイッチ１０１乃至１０３とを包含する。コンピュータ及びスイッチは、ラック１２１及び１２２に収容されている。ラック１２１及び１２２は、データセンタ１３１及び１３２に収容されている。データセンタ１３１及び１３２の間は、拠点間通信網１４１にて接続されている。
図１Ｂは、スイッチとコンピュータをスター型に接続した分散システム３５０を例示する。図２Ａ及び図２Ｂは、カスケード接続されたスイッチにより構成された分散システム３５０を例示する。
図２Ａ及び図２Ｂは、それぞれ、データサーバ３４０と処理サーバ３３０との間のデータ送受信の一例を示す。両図に於いて、コンピュータ２０７乃至２０９がデータサーバ３４０として機能し、コンピュータ２０８と２０９とが処理サーバ３３０としても機能する。なお、本図に於いて、例えばコンピュータ２２１が、分散処理管理サーバ３００として機能している。
図２Ａ及び図２Ｂに於いて、スイッチ２０２及び２０３で接続されたコンピュータのうち、コンピュータ２０８及び２０９以外のコンピュータは、他の処理を実行中であり、更なるデータ処理の利用は、不可能である。利用不可能なコンピュータ２０７は、処理対象のデータ２１２を記憶用ディスク２０５に記憶している。一方、更なるデータ処理の利用が可能なコンピュータ２０８は、処理対象のデータ２１０及び２１１を記憶用ディスク２０４に記憶している。同様に、利用可能なコンピュータ２０９は、処理対象のデータ２１３を記憶用ディスク２０６に記憶している。また、利用可能なコンピュータ２０８は、処理プロセス２１４及び２１５を並列に実行している。そして、利用可能なコンピュータ２０９は、処理プロセス２１６を実行している。各記憶用ディスク及びネットワークの可用帯域は、図３に示される表２２０の通りである。
すなわち、図３における表２２０を参照すると、各記憶用ディスクの可用帯域は１００ＭＢ／ｓであり、ネットワークの可用帯域は１００ＭＢ／ｓである。本例において、記憶用ディスクに接続されるデータ送受信経路のそれぞれに対して、前述の記憶用ディスクの可用帯域が均等に割り当てられると仮定する。また、本例においてスイッチに接続されるデータ送受信経路のそれぞれに対して、前述のネットワークの可用帯域が均等に割り当てられると仮定する。
図２Ａにおいて、処理対象のデータ２１０は、データ送受信経路２１７を介して伝送されて、利用可能なコンピュータ２０８で処理される。処理対象のデータ２１１は、データ送受信経路２１８を介して伝送されて、利用可能なコンピュータ２０８で処理される。処理対象のデータ２１３は、データ送受信経路２１９を介して伝送されて、利用可能なコンピュータ２０９で処理される。処理対象のデータ２１２は、どの処理プロセスにも割り当てられず、待機状態となっている。
一方、図２Ｂにおいては、処理対象のデータ２１０は、データ送受信経路２３０を介して伝送されて、利用可能なコンピュータ２０８で処理される。処理対象のデータ２１２は、データ送受信経路２３１を介して伝送されて、利用可能なコンピュータ２０８で処理される。処理対象のデータ２１３は、データ送受信経路２３２を介して伝送されて、利用可能なコンピュータ２０９で処理される。処理対象のデータ２１１は、どの処理プロセスにも割り当てられず、待機状態となっている。
図２Ａにおけるデータ送受信の総スループットは、データ送受信経路２１７の５０ＭＢ／ｓ、データ送受信経路２１８の５０ＭＢ／ｓ、及び、データ送受信経路２１９の１００ＭＢ／ｓの和となり、２００ＭＢ／ｓである。一方、図２Ｂにおけるデータ送受信の総スループットは、データ送受信経路２３０の１００ＭＢ／ｓ、データ送受信経路２３１の１００ＭＢ／ｓ、及び、データ送受信経路２３２の１００ＭＢ／ｓの和となり、３００ＭＢ／ｓである。図２Ｂにおけるデータ送受信は、図２Ａにおけるデータ送受信に較べて総スループットが高く、効率的である。
各処理対象のデータについて逐次的に、構成的な距離（例えば、ホップ数）に基づいてデータ送受信を行うコンピュータを決定するシステムは、図２Ａに示されたような非効率な送受信を行うことがある。この理由は、本発明に関連する他のシステムが、記憶用ディスクやネットワークの可用帯域を考慮せずに、構成的な距離のみでデータ送受信経路を決定するからである。
本実施形態の分散システム３５０は、図２Ａ及び図２Ｂに例示した状況において、図２Ｂで示した効率的なデータ送受信を行う可能性を高める。
以下、第１の実施の形態における分散システム３５０が備える各構成要素について説明する。
図４は、分散処理管理サーバ３００、ネットワークスイッチ３２０、処理サーバ３３０及びデータサーバ３４０の構成を示す図である。一台のコンピュータ等が、分散処理管理サーバ３００等のうちの複数の機能を有するとき、当該コンピュータ等が有する構成は、例えば、分散処理管理サーバ３００等の複数の構成のそれぞれの少なくとも一部を包含したものとなる。ここで、分散処理管理サーバ３００、ネットワークスイッチ３２０、処理サーバ３３０及びデータサーバ３４０は総称して分散処理管理サーバ３００等とも表される。この場合、コンピュータ等は、分散処理管理サーバ３００等の間で共通的な構成要素を重複して持たずに共用しても良い。
例えば、あるサーバが、分散処理管理サーバ３００と、処理サーバ３３０として動作する場合、当該サーバの構成は、例えば、分散処理管理サーバ３００と処理サーバ３３０との各々の構成の少なくとも一部を包含したものとなる。
＜処理サーバ３３０＞
処理サーバ３３０は、処理サーバ管理部３３１と、処理実行部３３２と、処理プログラム格納部３３３と、データ送受信部３３４とを包含する。
＝＝＝処理サーバ管理部３３１＝＝＝
処理サーバ管理部３３１は、分散処理管理サーバ３００からの処理割り当てに従って、処理実行部３３２に処理を実行させたり、現在実行中の処理の状態を管理したりする。
具体的には、処理サーバ管理部３３１は、データ要素の識別子とそのデータ要素の格納先であるデータサーバ３４０の処理データ格納部３４２の識別子とを含む決定情報を受信する。そして処理サーバ管理部３３１は、受信した決定情報を処理実行部３３２に渡す。決定情報は、処理実行部３３２ごとに生成されても良い。また、決定情報は処理実行部３３２を示すデバイスＩＤを含み、処理サーバ管理部３３１は、決定情報に含まれる識別子で識別される処理実行部３３２に決定情報を渡しても良い。後述の処理実行部３３２は、受け取った決定情報に含まれるデータ要素の識別子とそのデータ要素の格納先であるデータサーバ３４０の処理データ格納部３４２の識別子とに基づいて、データサーバ３４０から処理対象のデータを受信し、そのデータに対し処理を実行する。決定情報の詳細の説明は、後述される。
また、処理サーバ管理部３３１は、処理実行部３３２がデータを処理する際に用いる処理プログラムの実行状態に関する情報を格納する。そして、処理サーバ管理部３３１は、この処理プログラムの実行状態に関する情報を、当該処理プログラムの実行状態の変化に応じて更新する。処理プログラムの実行状態とは、例えば以下の各状態がある。例えば、処理プログラムの実行状態として、データを処理実行部３３２に割り当てる処理は終了したが、当該処理実行部３３２は、そのデータの処理を実行していない状態を示す「実行前状態」がある。また、処理プログラムの実行状態として、処理実行部３３２がそのデータを実行している状態を示す「実行中状態」がある。また、処理プログラムの実行状態として、処理実行部３３２がそのデータの処理を完了した状態を示す「実行完了状態」がある。処理プログラムの実行状態は、処理実行部３３２に割り当てられたデータの総量に対する、その処理実行部３３２による処理済みのデータ量の割合に基づいて定められる状態であっても良い。
処理サーバ管理部３３１は、分散処理管理サーバ３００に対して、処理サーバ３３０のディスク可用帯域やネットワーク可用帯域等の状態情報を送信する。
＝＝＝処理実行部３３２＝＝＝
処理実行部３３２は、処理サーバ管理部３３１の指示に従って、データ送受信部３３４を介して、データサーバ３４０から処理対象のデータを受信し、そのデータに対し処理を実行する。具体的には、処理実行部３３２は、処理サーバ管理部３３１から受け取ったデータ要素の識別子とそのデータ要素の格納先であるデータサーバ３４０の処理データ格納部３４２の識別子とを受け取る。そして処理実行部３３２は、受け取った処理データ格納部３４２の識別子に対応するデータサーバ３４０に対し、データ送受信部３３４を介して受け取ったデータ要素の識別子が示すデータ要素の送信を要求する。具体的には処理実行部３３２は、データ要素の送信を要求するための要求情報を送信する。そして処理実行部３３２は、要求情報に基づいて送信されるデータ要素を受信し、そのデータに対し処理を実行する。データ要素についての説明は、後述される。
処理実行部３３２は、複数の処理を並列に実行するために、処理サーバ３３０内に複数存在しても良い。
＝＝＝処理プログラム格納部３３３＝＝＝
処理プログラム格納部３３３は、他のサーバ３９９又はクライアント３６０から処理プログラムを受信し、その処理プログラムを格納する。
＝＝＝データ送受信部３３４＝＝＝
データ送受信部３３４は、他の処理サーバ３３０やデータサーバ３４０とデータの送受信を行う。
処理サーバ３３０は、処理対象のデータを、分散処理管理サーバ３００から指定されたデータサーバ３４０から、データサーバ３４０のデータ送受信部３４３、ネットワークスイッチ３２０のデータ送受信部３２２、及び、処理サーバ３３０のデータ送受信部３３４を介して受信する。そして処理サーバ３３０の処理実行部３３２は、受信された処理対象のデータを処理する。処理サーバ３３０がデータサーバ３４０と同一のコンピュータ等である場合、処理サーバ３３０は、処理対象のデータを、処理データ格納部３４２から直接受信しても良い。また、データサーバ３４０のデータ送受信部３４３と処理サーバ３３０のデータ送受信部３３４とが、ネットワークスイッチ３２０のデータ送受信部３２２を介さず、直接通信しても良い。
＜データサーバ３４０＞
データサーバ３４０は、データサーバ管理部３４１と、処理データ格納部３４２とを包含する。
＝＝＝データサーバ管理部３４１＝＝＝
データサーバ管理部３４１は、分散処理管理サーバ３００に対して、処理データ格納部３４２が格納するデータの所在情報、及び、データサーバ３４０のディスク可用帯域やネットワーク可用帯域等を含む状態情報を送信する。処理データ格納部３４２は、データサーバ３４０において一意に識別されるデータを格納する。
＝＝＝処理データ格納部３４２＝＝＝
処理データ格納部３４２は、処理サーバ３３０に処理されるデータを格納する記憶媒体として、例えばハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ；ＨＤＤ）やソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ；ＳＳＤ）、ＵＳＢメモリ（Ｕｎｉｖｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ  ｆｌａｓｈ  ｄｒｉｖｅ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；ＲＡＭ）ディスクなどを一台又は複数台備える。処理データ格納部３４２に格納されるデータは、処理サーバ３３０が出力したもの又は出力中のものであっても良い。また、処理データ格納部３４２に格納されるデータは、処理データ格納部３４２が他のサーバ等から受信したものでも、処理データ格納部３４２が記憶媒体等から読み込んだものでも良い。
＝＝＝データ送受信部３４３＝＝＝
データ送受信部３４３は、他の処理サーバ３３０や他のデータサーバ３４０とデータの送受信を行う。
＜ネットワークスイッチ３２０＞
ネットワークスイッチ３２０は、スイッチ管理部３２１とデータ送受信部３２２とを備える。
＝＝＝スイッチ管理部３２１＝＝＝
スイッチ管理部３２１は、ネットワークスイッチ３２０が接続している通信路（データ送受信経路）の可用帯域等の情報を、データ送受信部３２２から取得し、分散処理管理サーバ３００に送信する。
＝＝＝データ送受信部３２２＝＝＝
データ送受信部３２２は、処理サーバ３３０及びデータサーバ３４０の間で送受信されるデータを中継する。
＜分散処理管理サーバ３００＞
分散処理管理サーバ３００は、データ所在格納部３０７０、サーバ状態格納部３０６０、入出力通信路情報格納部３０８０、モデル生成部３０１、最適配置計算部３０２、及び、処理割当部３０３を包含する。
＝＝＝データ所在格納部３０７０＝＝＝
データ所在格納部３０７０は、論理データ集合の名称（論理データ集合名）に対して、その論理データ集合に含まれる部分データをそれぞれ格納しているデータサーバ３４０の処理データ格納部３４２の識別子を一以上対応付けて、格納する。
論理データ集合は、一以上のデータ要素の集合である。論理データ集合は、データ要素の識別子の集合、一以上のデータ要素を含むデータ要素群の識別子の集合、ある共通条件を満足するデータの集合として定義されても良いし、これらの集合の和集合や積集合として定義されても良い。論理データ集合は、その論理データ集合の名称によって、分散システム３５０において一意に識別される。すなわち論理データ集合の名称は、分散システム３５０において一意に識別されるように、その論理データ集合に対して設定される。
データ要素は、そのデータ要素を処理するための、一つの処理プログラムの入力又は出力における最小単位となる。
部分データは、一以上のデータ要素の集合である。そして部分データは論理データ集合を構成する要素でもある。
論理データ集合は、ディレクトリやデータの構造を規定する構造プログラムにおいて、識別名によって明示的に指定されても、指定した処理プログラムの出力結果等、他の処理結果に基づいて指定されても良い。構造プログラムは、論理データ集合そのものを指す情報、又はその論理データ集合を構成するデータ要素を規定する情報である。構造プログラムは、あるデータ要素又は論理データ集合を示す情報（名称や識別子）を入力として受け取る。そして構造プログラムは、受け取った入力に対応するデータ要素又は論理データ集合が格納されているディレクトリ名、及び、当該データ要素又は論理データ集合を構成するファイルを示すファイル名を出力する。構造プログラムは、ディレクトリ名又はファイル名の一覧表などであっても良い。
論理データ集合とデータ要素とは、典型的にはファイルとそのファイル内のレコードとにそれぞれ対応するが、この対応に限られない。
処理プログラムが引数として受け取る情報の単位が、分散ファイルシステム（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）における個々の分散ファイルである場合、データ要素は各分散ファイルである。この場合、論理データ集合は、分散ファイルの集合である。そして論理データ集合は、例えば、分散ファイルシステム上でのディレクトリ名、複数の分散ファイル名が列挙された情報、あるいは、分散ファイル名に対するある共通条件によって特定される。すなわち、論理データ集合の名称は、分散ファイルシステム上でのディレクトリ名、複数の分散ファイル名が列挙された情報、あるいは、分散ファイル名に対するある共通条件であっても良い。論理データ集合は、複数のディレクトリ名が列挙された情報によって特定されても良い。すなわち論理データ集合の名称は、複数のディレクトリ名が列挙された情報であっても良い。
処理プログラムが引数として受け取る情報の単位が、行又はレコードである場合、データ要素は、分散ファイル中の各行又は各レコードとなる。この場合、論理データ集合は、例えば、分散ファイルである。
処理プログラムが引数として受け取る情報の単位が、リレーショナルデータベースにおけるテーブルの「行」である場合、データ要素は、テーブル中の各行となる。この場合、論理データ集合は、あるテーブルの集合から所定の検索によって得られる行の集合、又は、当該あるテーブルの集合からある属性の範囲検索によって得られた行の集合などになる。
論理データ集合がＣ＋＋やＪａｖａ（登録商標）等のプログラムのＭａｐやＶｅｃｔｏｒ等のコンテナであって、データ要素がコンテナの要素であってもよい。さらに、論理データ集合が行列であって、データ要素が、行、列、あるいは行列要素であっても良い。
この論理データ集合とデータ要素との関係は、処理プログラムの内容によって規定される。この関係は、構造プログラムに記述されていても良い。
論理データ集合及びデータ要素が何れの場合であっても、論理データ集合が指定される、又は、一以上のデータ要素が登録されることにより、処理対象の論理データ集合が定まる。処理対象の論理データ集合の名称（論理データ集合名）は、その論理データ集合に含まれるデータ要素の識別子と当該データ要素を格納するデータサーバ３４０の処理データ格納部３４２の識別子と対応付けられて、データ所在格納部３０７０に格納される。
各論理データ集合は、複数の部分集合（部分データ）に分割され、その複数の部分集合がそれぞれ複数のデータサーバ３４０に分散配置されていても良い。
ある論理データ集合内のデータ要素が各々２以上のデータサーバ３４０に多重化されて配置されていても良い。この場合、一つのデータ要素から多重化されたデータは総称して分散データとも呼ばれる。処理サーバ３３０は、多重化されたデータ要素を処理するために、分散データの何れかの一つをデータ要素として入力すれば良い。
図５は、データ所在格納部３０７０に格納される情報を例示する。図５を参照すると、データ所在格納部３０７０は、論理データ集合名３０７１又は部分データ名３０７２と、分散形態３０７３と、データ記述３０７４又は部分データ名３０７７と、サイズ３０７８と、を対応付けた情報であるデータ所在情報を複数格納する。
分散形態３０７３は、論理データ集合名３０７１又は部分データ名３０７２で示される論理データ集合又は部分データに含まれるデータ要素が格納される形態を示す情報である。例えば、論理データ集合（例えば、ＭｙＤａｔａＳｅｔ１）が単一に配置されている場合、その論理データ集合に対応する行（データ所在情報）における分散形態３０７３として「単一」という情報が設定される。また、例えば、論理データ集合（例えば、ＭｙＤａｔａＳｅｔ２）が分散配置されている場合、その論理データ集合に対応する行の情報（データ所在情報）における分散形態３０７３として、「分散配置」という情報が設定される。
データ記述３０７４は、データ要素ＩＤ３０７５及びデバイスＩＤ３０７６を包含する。デバイスＩＤ３０７６は、各データ要素を格納する処理データ格納部３４２の識別子である。当該デバイスＩＤ３０７６は、分散システム３５０内における一意の情報でも良いし、機器に割り当てられたＩＰアドレスでも良い。データ要素ＩＤ３０７５は、各データ要素が格納されるデータサーバ３４０内において、そのデータ要素を示す一意の識別子である。
データ要素ＩＤ３０７５によって指定される情報は、対象とする論理データ集合の種類に応じて決定される。例えば、データ要素がファイルの場合、データ要素ＩＤ３０７５はファイル名を指定する情報である。データ要素がデータベースのレコードの場合、データ要素ＩＤ３０７５は、レコードを抽出するようなＳＱＬ文を指定する情報であっても良い。
サイズ３０７８は、論理データ集合名３０７１又は部分データ名３０７２で示される論理データ集合又は部分データのサイズを示す情報である。サイズ３０７８は、サイズが明らかである場合、省略されても良い。例えば、全ての論理データ集合や部分データが同じサイズである場合、サイズ３０７８は省略されても良い。
論理データ集合（例えば、ＭｙＤａｔａＳｅｔ４等）の一部又は全てのデータ要素が多重化されているとき、当該論理データ集合の論理データ集合名３０７１に対応付けられて、「分散配置」であることを示す記述（分散形態３０７３）、及び部分データの部分データ名３０７７（ＳｕｂＳｅｔ１、ＳｕｂＳｅｔ２等）が格納される。このとき、データ所在格納部３０７０は、前述の部分データ名３０７７のそれぞれを部分データ名３０７２として、それぞれ分散形態３０７３及び部分データ記述３０７４と対応付けて（例えば、図５の５行目）格納する。
部分データ（例えば、ＳｕｂＳｅｔ１）が多重化（例えば二重化）されている場合、当該部分データ名３０７２は、分散形態３０７３、及び、部分データに含まれる多重化データ毎のデータ記述３０７４と対応付けられて、データ所在格納部３０７０に格納される。当該データ記述３０７４は、多重化されたデータ要素を格納する処理データ格納部３４２の識別子（デバイスＩＤ３０７６）及びデータサーバ３４０内においてそのデータ要素を示す一意の識別子（データ要素ＩＤ３０７５）を包含する。
論理データ集合（例えば、ＭｙＤａｔａＳｅｔ３）は、複数の部分データに分割されずに多重化されても良い。この場合、当該論理データ集合の論理データ集合名３０７１に対応付けられるデータ記述３０７４は、多重化データを格納する処理データ格納部３４２の識別子（デバイスＩＤ３０７６）及びデータサーバ３４０内においてデータ要素を示す一意の識別子（データ要素ＩＤ３０７５）を包含する。
データ所在格納部３０７０の各行の情報（各データ所在情報）は、対応するデータの処理が完了した際に分散処理管理サーバ３００によって削除される。この削除を、処理サーバ３３０やデータサーバ３４０が行っても良い。また、データ所在格納部３０７０の各行の情報（各データ所在情報）の削除の代わりに、各行の情報（各データ所在情報）に対してデータの処理完了と未完了を表す情報が追加されることで、データの処理の完了が記録されても良い。
なお、分散システム３５０が扱う論理データ集合の分散態様の種類が単一である場合、データ所在格納部３０７０は、分散形態３０７３を包含しなくても良い。簡単のため、以降の実施の形態の説明は、原則的に論理データ集合の分散態様の種類が前述した何れか単一の態様であることを仮定して与えられる。複数の形態の組み合わせに対応するために、分散処理管理サーバ３００等は、分散形態３０７３の記述に基づいて、以降説明する処理を切り替える。
＝＝＝入出力通信路情報格納部３０８０＝＝＝
図６は、入出力通信路情報格納部３０８０に格納される情報を例示する。入出力通信路情報格納部３０８０は、分散システム３５０を構成する入出力通信路毎に、入出力経路ＩＤ３０８１、可用帯域３０８２、入力元デバイスＩＤ３０８３及び出力先デバイスＩＤ３０８４を対応付けた情報である入出力通信路情報を格納する。ここで入出力通信路は、本明細書において、データ送受信経路又は入出力経路とも表されている。入出力経路ＩＤ３０８１は、入出力通信が発生する機器間の入出力通信路の識別子である。可用帯域３０８２は、入出力通信路で現在利用可能な帯域情報である。帯域情報は実測値であっても推測値であっても良い。入力元デバイスＩＤ３０８３は、入出力通信路にデータを入力する機器のＩＤである。出力先デバイスＩＤ３０８４は、入出力通信路がデータを出力する機器のＩＤである。入力元デバイスＩＤ３０８３及び出力先デバイスＩＤ３０８４で示される機器のＩＤは、データサーバ３４０、処理サーバ３３０、及びネットワークスイッチ３２０等に割り当てられた、分散システム３５０内の一意の識別子でも良いし、各機器に割り当てられたＩＰアドレスでも良い。
入出力通信路は、以下に示す入出力通信路であってもよい。例えば、入出力通信路は、データサーバ３４０の処理データ格納部３４２とデータ送受信部３４３との入出力通信路であっても良い。また例えば、入出力通信路は、データサーバ３４０のデータ送受信部３４３とネットワークスイッチ３２０のデータ送受信部３２２との入出力通信路であっても良い。また例えば、入出力通信路は、ネットワークスイッチ３２０のデータ送受信部３２２と処理サーバ３３０のデータ送受信部３３４との入出力通信路であっても良い。また例えば、入出力通信路は、ネットワークスイッチ３２０のデータ送受信部３２２間の入出力通信路等であってもよい。ネットワークスイッチ３２０のデータ送受信部３２２を介さずに、直接データサーバ３４０のデータ送受信部３４３と処理サーバ３３０のデータ送受信部３３４との間で入出力通信路が構成されている場合、当該入出力通信路も入出力通信路に含まれる。
＝＝＝サーバ状態格納部３０６０＝＝＝
図７は、サーバ状態格納部３０６０に格納される情報を例示する。サーバ状態格納部３０６０は、分散システム３５０内で運転されている処理サーバ３３０及びデータサーバ３４０毎に、サーバＩＤ３０６１、負荷情報３０６２、構成情報３０６３、可用処理実行部情報３０６４及び処理データ格納部情報３０６５を対応付けた情報である処理サーバ状態情報を格納する。
サーバＩＤ３０６１は、処理サーバ３３０又はデータサーバ３４０の識別子である。処理サーバ３３０及びデータサーバ３４０の識別子は、分散システム３５０において一意の識別子でも良いし、それぞれに割り当てられたＩＰアドレスでも良い。負荷情報３０６２は、処理サーバ３３０又はデータサーバ３４０の処理負荷に関する情報を包含する。負荷情報３０６２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）の使用率や、メモリ使用量、又は、ネットワーク使用帯域等である。
構成情報３０６３は、処理サーバ３３０又はデータサーバ３４０の構成の状態情報を包含する。構成情報３０６３は、例えば、処理サーバ３３０の、ＣＰＵ周波数、コア数、及び、メモリ量等のハードウェアの仕様、若しくは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；オペレーティングシステム）等のソフトウェアの仕様等である。可用処理実行部情報３０６４は、処理サーバ３３０が備える処理実行部３３２のうちの、現在使用可能である処理実行部３３２の識別子である。処理実行部３３２の識別子は、処理サーバ３３０内で一意の識別子でも、分散システム３５０内で一意の識別子でも良い。処理データ格納部情報３０６５は、データサーバ３４０が備える処理データ格納部３４２の識別子である。
サーバ状態格納部３０６０、データ所在格納部３０７０、及び、入出力通信路情報格納部３０８０に格納される情報は、ネットワークスイッチ３２０や処理サーバ３３０、データサーバ３４０から送信される状態通知によって更新されても良い。またサーバ状態格納部３０６０、データ所在格納部３０７０、及び、入出力通信路情報格納部３０８０に格納される情報は、分散処理管理サーバ３００が状態を問い合わせて得られた応答情報によって更新されても良い。
ここで、前述の状態通知による更新の処理の詳細について説明する。
例えば、ネットワークスイッチ３２０は、前述の状態通知として、当該ネットワークスイッチ３２０が備える各ポートの通信のスループットを示す情報、及び各ポートの接続先の装置の識別子（ＭＡＣアドレス：Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ａｄｄｒｅｓｓ、やＩＰアドレス：Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ａｄｄｒｅｓｓ）を示す情報を生成する。そしてネットワークスイッチ３２０は、分散処理管理サーバ３００を介して、生成した情報をサーバ状態格納部３０６０やデータ所在格納部３０７０、入出力通信路情報格納部３０８０に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また例えば、処理サーバ３３０は、前述の状態通知として、ネットワークインタフェースのスループットを示す情報、処理対象のデータの処理実行部３３２への割当状況を示す情報、及び処理実行部３３２の使用状況を示す情報を生成する。そして処理サーバ３３０は、分散処理管理サーバ３００を介して、生成した情報をサーバ状態格納部３０６０やデータ所在格納部３０７０、入出力通信路情報格納部３０８０に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また例えば、データサーバ３４０は、前述の状態通知として、当該データサーバ３４０が格納する処理データ格納部３４２（ディスク）やネットワークインタフェースのスループットを示す情報、及び当該データサーバ３４０が格納しているデータ要素の一覧を示す情報を生成する。そしてデータサーバ３４０は、分散処理管理サーバ３００を介して、生成した情報をサーバ状態格納部３０６０やデータ所在格納部３０７０、入出力通信路情報格納部３０８０に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また、分散処理管理サーバ３００は、前述の状態通知を要求する情報を、ネットワークスイッチ３２０、処理サーバ３３０、及び、データサーバ３４０に送信し、前述の状態通知を得る。そして分散処理管理サーバ３００は、受け取った状態通知を、前述の応答情報として、サーバ状態格納部３０６０、データ所在格納部３０７０、及び、入出力通信路情報格納部３０８０に送信する。サーバ状態格納部３０６０、データ所在格納部３０７０、及び、入出力通信路情報格納部３０８０は、受け取った応答情報に基づいて、格納されている情報を更新する。
＝＝＝モデル生成部３０１＝＝＝
モデル生成部３０１は、サーバ状態格納部３０６０、データ所在格納部３０７０及び入出力通信路情報格納部３０８０から情報を取得する。そしてモデル生成部３０１は、取得した情報を元に、ネットワークモデルを生成する。
このネットワークモデルは、データサーバ３４０が備える処理データ格納部３４２から処理サーバ３３０がデータを取得する際のデータの転送経路を表すモデルである。
このネットワークモデルを構成する頂点（ノード）は、ネットワークを構成する装置及びハードウェア要素、並びにこれらの装置及びハードウェア要素によって処理されるデータをそれぞれ表す。
また、このネットワークモデルを構成する辺は、ネットワークを構成する装置及びハードウェア要素の間を接続するデータ送受信経路（入出力経路）をそれぞれ表す。当該辺には、その辺に対応する入出力経路の可用帯域が制約条件として設定されている。
さらに、このネットワークモデルを構成する辺は、データとそのデータを包含するデータの集合とをそれぞれ表すノードを接続している。
さらに、このネットワークモデルを構成する辺は、データとそのデータを記憶している装置及びハードウェア要素とをそれぞれ表すノードを接続している。
前述の転送経路は、前述のネットワークモデルにおいて、辺とその辺の端点であるノードとで構成される部分グラフで表される。
モデル生成部３０１は、このネットワークモデルに基づいてモデル情報を出力する。このモデル情報は、最適配置計算部３０２が、各データサーバ３４０に記憶される論理データ集合を処理する処理サーバ３３０をそれぞれ決定する際に使用される。
図８Ａは、モデル生成部３０１が出力するモデル情報の表を例示する。モデル情報の表の各行の情報は、識別子、辺の属性の種別、当該辺の流量の下限値（流量下限値）、当該辺の流量の上限値（流量上限値）、及び、グラフ（ネットワークモデル）における次の要素へのポインタを包含する。
識別子とは、ネットワークモデルに含まれるいずれかのノードを示す識別子である。
辺の種別とは、前述の識別子が示すノードから出る辺の種別を示す。この種別として、仮想的な経路を示す「始点経路」、「論理データ集合経路」、「部分データ経路」、「データ要素経路」、「終端経路」、及び物理的な通信経路（入出力通信路、又はデータ送受信経路）を示す「入出力経路」がある。
例えば、前述の識別子が示すノードが始点を表し、そのノードから出る辺に接続されるノード（後述の「次の要素へのポインタ」）が論理データ集合を表す場合、辺の種別は、「始点経路」である。また例えば、前述の識別子が示すノードが論理データ集合を表し、そのノードから出る辺に接続されるノードが部分データ又はデータ要素を表す場合、辺の種別は、「論理データ集合経路」である。また例えば、前述の識別子が表すノードが部分データを表し、そのノードから出る辺に接続されるノードがデータ要素又はデータサーバ３４０の処理データ格納部３４２を表す場合、辺の種別は、「部分データ経路」である。
また例えば、前述の識別子が示すノードがデータ要素を表し、そのノードから出る辺に接続されるノードがデータサーバ３４０の処理データ格納部３４２を表す場合、辺の種別は、「データ要素経路」である。また例えば、前述の識別子が表すノードがデータサーバ３４０の処理データ格納部３４２を含む現実の装置を表し、そのノードから出る辺に接続されるノードが現実の装置を表す場合、辺の種別は、「入出力経路」である。また例えば、前述の識別子が示すノードが現実の装置である処理サーバ３３０の処理実行部３３２を表し、そのノードから出る辺に接続されるノードが終点を表す場合、辺の種別は、「終端経路」である。なお、「辺の属性の種別」は、モデル情報の表から省略されても良い。
次の要素へのポインタは、対応する識別子が示すノードから出る辺に接続されるノードを示す識別子である。次の要素へのポインタは、モデル情報の表の各行の情報を示す行番号でも、モデル情報の表の行の情報が格納されているメモリの番地情報でも良い。
図８Ａにおいて、モデル情報は表形式であったが、モデル情報のデータの形式は表形式に限定されるものではない。例えば、モデル情報は、連想配列、リスト、ファイルなど任意の形式であっても良い。
図８Ｂは、モデル生成部３０１が生成するモデル情報の概念図を例示する。モデル情報は、概念的には、始点をｓ、終点をｔとしたグラフとして表される。このグラフは、ジョブＪを構成するデータ要素（又は部分データ）ｄを処理サーバ３３０の処理実行部Ｐが受信するまでのすべての経路を表す。グラフ上の各辺は、可用帯域を属性値（制約条件）として持つ。特に可用帯域の制限がない経路に関しては、可用帯域が無限大として扱われる。この可用帯域は、無限大以外の特別な値として扱われても良い。
モデル生成部３０１は、デバイスの状態に応じてモデルの生成方法を変更しても良い。例えば、モデル生成部３０１は、ＣＰＵ使用率の高い処理サーバ３３０を利用不可能の処理サーバ３３０として、当該分散処理管理サーバ３００が生成するモデル上から除外しても良い。
＝＝＝最適配置計算部３０２＝＝＝
最適配置計算部３０２は、モデル生成部３０１が出力したモデル情報によって示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）に対して、目的関数を最大化するようなｓ−ｔ−フローＦを決定する。そして最適配置計算部３０２は、そのｓ−ｔ−フローＦを満たすデータフローＦｉを出力する。
ここで、ネットワーク（Ｇ，ｕ，ｓ，ｔ）におけるＧは、有向グラフＧ＝（Ｖ，Ｅ）である。ただしＶは、Ｖ＝Ｐ∪Ｄ∪Ｔ∪Ｒ∪｛ｓ，ｔ｝を満たす集合である。Ｐは処理サーバ３３０の処理実行部３３２の集合である。Ｄはデータ要素の集合である。Ｔは論理データ集合の集合、Ｒは入出力通信路を構成するデバイスの集合である。ｓは始点、ｔは終点である。始点ｓと終点ｔとはモデル計算を容易にするために追加された論理的な頂点である。始点ｓと終点ｔは省略されても良い。またＥは、有効グラフＧ上の辺ｅの集合である。Ｅは物理的な通信路（データ送受信経路又は入出力通信路）とデータ間、データ及びデータの集合、又は、データ及びそのデータを格納するハードウェア要素をそれぞれ示すノードを接続する辺を含む。
ネットワーク（Ｇ，ｕ，ｓ，ｔ）におけるｕは、Ｇ上の辺ｅから、ｅにおける可用帯域への容量関数である。すなわち、ｕは、容量関数ｕ：Ｅ→Ｒ＋である。ただしＲ＋は正の実数を示す集合である。
ｓ−ｔ−フローＦは、データ転送通信の通信経路と通信量とを表したモデルである。このデータ転送通信とは、あるデータが、データサーバ３４０が備える記憶装置（ハードウェア要素）から処理サーバ３３０へ転送される際に分散システム３５０上で発生する、データ転送通信のことである。
ｓ−ｔ−フローＦは、頂点ｓ及びｔを除くグラフＧ上の全てのｅ∈Ｅでｆ（ｅ）≦ｕ（ｅ）を満たすような流量関数ｆによって決定される。
データフローＦｉは、割り当てられたデータを処理サーバ３３０が取得する際に行われるデータ転送通信の通信経路を構成する装置の識別子の集合と、当該通信経路の通信量とを示す情報である。
本実施の形態における目的関数（流量関数ｆ）を最大化させる計算式は、以下の［数１］の（１）式によって特定される。［数１］の（１）式に対する制約式は、［数１］の（２）式及び［数１］の（３）式である。
【数１】
0005850054.tif 000002
［数１］において、ｆ（ｅ）は、ｅ∈Ｅにおける流量を表す関数（流量関数）を示す。ｕ（ｅ）は、グラフＧの辺ｅ∈Ｅで送信することが可能な単位時間当たりの流量の上限値を表す関数（容量関数）である。ｕ（ｅ）の値は、モデル生成部３０１の出力に従って決定される。δ−（ｖ）は、グラフＧの頂点ｖ∈Ｖに入ってくる辺の集合であり、δ＋（ｖ）はｖ∈Ｖから出る辺の集合である。ｍａｘ．は最大化を示し、ｓ．ｔ．は制約を表す。
［数１］によれば、最適配置計算部３０２は、終点ｔに入る辺の流量について最大化するような関数ｆ：Ｅ→Ｒ＋を決定する。ただしＲ＋は正の実数を示す集合である。終点ｔに入る辺の流量とは、すなわち、処理サーバ３３０が単位時間当たりに処理するデータ量である。
図９は、最適配置計算部３０２が出力する、経路情報と流量との対応表を例示する。この経路情報と流量とはデータフローＦｉを構成する。すなわち最適配置計算部３０２は、フローを表す識別子と、そのフロー上で単位時間当たりに処理されるデータ量（単位処理量）と、そのフローの経路情報とを対応付けた情報であるデータフロー情報（データフローＦｉ）を出力する。
目的関数の最大化は、線形計画法や最大流問題におけるフロー増加法、プリフロープッシュ法等を用いることによって実現できる。最適配置計算部３０２は、前述の何れか又はその他の解法を実行するように構成される。
最適配置計算部３０２は、ｓ−ｔ−フローＦが決定されると、そのｓ−ｔ−フローＦに基づいて図９に示すようなデータフロー情報を出力する。
＝＝＝処理割当部３０３＝＝＝
処理割当部３０３は、最適配置計算部３０２が出力したデータフロー情報を基に、処理実行部３３２が取得すべきデータ要素と単位処理量を決定し、決定情報を出力する。単位処理量とは、データフロー情報で示される経路において単位時間当たりに通信されるデータ量である。すなわち、単位処理量とは、データフロー情報で示される処理実行部３３２が単位時間当たりに処理するデータ量でもある。
図１０は、処理割当部３０３が決定する決定情報の構成を例示する。図１０に例示される決定情報は、処理割当部３０３により各処理サーバ３３０に送信される。各処理サーバ３３０に処理実行部３３２が複数包含されている場合、処理割当部３０３は、処理サーバ管理部３３１を介して各処理実行部３３２に、この決定情報をそれぞれ送信してもよい。決定情報は、その決定情報を受信する処理サーバ３３０の処理実行部３３２が受信するデータ要素の識別子（データ要素ＩＤ）と、そのデータ要素を格納するデータサーバ３４０の処理データ格納部３４２の識別子（処理データ格納部ＩＤ）とを包含する。また決定情報は、前述のデータ要素を含む論理データ集合を特定できる識別子（論理データＩＤ）及び前述のデータサーバ３４０を特定できる識別子（データサーバＩＤ）を包含してもよい。また、決定情報は、単位時間当たりのデータ転送量を規定する情報（単位時間当たりのデータ転送量）を包含する。
決定情報の他の例として、一つの部分データを複数の処理実行部３３２が処理する場合、決定情報は、受信データ特定情報を包含しても良い。受信データ特定情報は、ある論理データ集合内における受信対象のデータ要素を特定する情報である。受信データ特定情報は、例えば、データ要素の識別子の集合、データサーバ３４０のローカルファイル内の所定の区間を指定する情報（例えば、区間の開始位置、転送量）である。決定情報に受信データ特定情報が包含される場合、この受信データ特定情報は、データ所在格納部３０７０に含まれる部分データのサイズ及び各データフロー情報で示される各経路の単位処理量の比に基づいて特定される。
決定情報を受信した各処理サーバ３３０は、当該決定情報で特定されたデータサーバ３４０にデータ送信を要求する。具体的には、処理サーバ３３０は、データサーバ３４０に対して、決定情報で特定されるデータを、その決定情報で特定される単位処理量で転送する要求を送信する。
なお、処理割当部３０３は、各データサーバ３４０にこの決定情報を送信しても良い。この場合、決定情報は、その決定情報を受信したデータサーバ３４０が送信する論理データ集合のあるデータ要素と、そのデータ要素を処理する処理サーバ３３０の処理実行部３３２と、単位時間当たりに送信するデータ量とを特定する情報を包含する。
続いて、処理割当部３０３は、処理サーバ３３０の処理サーバ管理部３３１に対して、決定情報を送信する。処理サーバ３３０が予め当該決定情報に対応する処理プログラムを処理プログラム格納部３３３に格納していない場合、処理割当部３０３は、例えばクライアントから受信した処理プログラムを処理サーバ３３０に配布しても良い。処理割当部３０３は、処理サーバ３３０に対して、決定情報に対応する処理プログラムを格納しているか否か問い合わせても良い。この場合、処理割当部３０３は、処理サーバ３３０が処理プログラムを格納していないと判定した場合に、クライアントから受信した処理プログラムを当該処理サーバ３３０に配布する。
分散処理管理サーバ３００、ネットワークスイッチ３２０、処理サーバ３３０及びデータサーバ３４０内の各構成要素は、専用ハードウェア装置として実現されても良い。又は、コンピュータモデルクライアント等のＣＰＵがプログラムを実行することで、ＣＰＵが前述の分散処理管理サーバ３００、ネットワークスイッチ３２０、処理サーバ３３０及びデータサーバ３４０内の各構成要素として機能しても良い。例えば、分散処理管理サーバ３００のモデル生成部３０１や、最適配置計算部３０２、処理割当部３０３は専用ハードウェア装置として実現されても良い。コンピュータでもある分散処理管理サーバ３００のＣＰＵが、メモリにロードされている分散処理管理プログラムを実行することで、ＣＰＵが分散処理管理サーバ３００のモデル生成部３０１や、最適配置計算部３０２、処理割当部３０３として機能しても良い。
また、前述したモデル、制約式、目的関数を指定するための情報は、構造プログラム等に記述され、その構造プログラム等がクライアントから分散処理管理サーバ３００に与えられても良い。また前述したモデル、制約式、目的関数を指定するための情報は、起動パラメータ等としてクライアントから分散処理管理サーバ３００に与えられても良い。さらに、分散処理管理サーバ３００が、データ所在格納部３０７０等を参照してモデルを決定しても良い。
分散処理管理サーバ３００は、モデル生成部３０１が生成したモデル情報等や、最適配置計算部３０２が生成したデータフロー情報等をメモリ等に保存し、当該モデル情報やデータフロー情報をモデル生成部３０１や最適配置計算部３０２の入力に加えても良い。この際に、モデル生成部３０１や最適配置計算部３０２は、当該モデル情報やデータフロー情報をモデル生成や最適配置計算に利用しても良い。
サーバ状態格納部３０６０、データ所在格納部３０７０、及び、入出力通信路情報格納部３０８０が格納する情報は、クライアントや分散システム３５０の管理者によって予め与えられていても良い。さらに、これらの情報が分散システム３５０を探索するクローラ等のプログラムによって収集されても良い。
分散処理管理サーバ３００は、全てのモデル、制約式、目的関数に対応するように実装されていても良いし、特定のモデル等だけに対応するように実装されていても良い。
なお、図４は、この分散処理管理サーバ３００が、特定の一台のコンピュータ等内に存在する場合を示しているが、入出力通信路情報格納部３０８０、及びデータ所在格納部３０７０が分散ハッシュテーブル等の技術にて分散した装置に備えられていても良い。
次に、フローチャートを参照して、分散システム３５０の動作を説明する。
図１１は、分散システム３５０の全体動作を示すフローチャートである。
分散処理管理サーバ３００は、クライアント３６０から処理プログラムの実行要求である要求情報を受け取ると、以下に挙げる情報をそれぞれ取得する（ステップＳ４０１）。第一に、分散処理管理サーバ３００は、分散システム３５０内のネットワーク３７０を構成するネットワークスイッチ３２０の識別子の集合を取得する。第二に、分散処理管理サーバ３００は、処理対象の論理データ集合のデータ要素とそのデータ要素を格納するデータサーバ３４０の処理データ格納部３４２の識別子とを対応付けたデータ所在情報の集合を取得する。第三に、分散処理管理サーバ３００は、利用可能な処理サーバ３３０の処理実行部３３２の識別子の集合を取得する。
分散処理管理サーバ３００は、取得した処理対象の論理データ集合に未処理のデータ要素が残っているか否か判定する（ステップＳ４０２）。分散処理管理サーバ３００は、取得した処理対象の論理データ集合に未処理のデータ要素が残っていないと判定した場合（ステップＳ４０２の“Ｎｏ”）、分散システム３５０の処理は終了する。分散処理管理サーバ３００は、取得した処理対象論理データ集合に未処理のデータ要素が残っていると判定した場合（ステップＳ４０２の“Ｙｅｓ”）、分散システム３５０の処理は、ステップＳ４０３に進む。
分散処理管理サーバ３００は、取得した利用可能な処理サーバ３３０の処理実行部３３２の識別子で示されるそれぞれのうち、データを処理していない処理実行部３３２を持つ処理サーバ３３０があるか否か判定する（ステップＳ４０３）。分散処理管理サーバ３００は、データを処理していない処理実行部３３２を持つ処理サーバ３３０が無いと判定した場合（ステップＳ４０３の“Ｎｏ”）、分散システム３５０の処理は、ステップＳ４０１に戻る。分散処理管理サーバ３００は、データを処理していない処理実行部３３２を持つ処理サーバ３３０があると判定した場合（ステップＳ４０３の“Ｙｅｓ”）、分散システム３５０の処理は、ステップＳ４０４に進む。
次に分散処理管理サーバ３００は、取得した各ネットワークスイッチ３２０の識別子の集合、各処理サーバ３３０の識別子の集合、及び、各データサーバ３４０の処理データ格納部３４２の識別子の集合をキーとして、入出力通信路情報と処理サーバ状態情報を取得する。そして、分散処理管理サーバ３００は、取得した入出力通信路情報と処理サーバ状態情報とに基づいて、ネットワークモデル（Ｇ，ｕ，ｓ，ｔ）を生成する（ステップＳ４０４）。
次に分散処理管理サーバ３００は、ステップＳ４０４にて生成されたネットワークモデル（Ｇ，ｕ，ｓ，ｔ）に基づいて、各処理実行部３３２と各データサーバ３４０との間における単位時間当たりのデータ転送量を決定する（ステップＳ４０５）。分散処理管理サーバ３００は、具体的には、前述のネットワークモデル（Ｇ，ｕ，ｓ，ｔ）に基づいて特定される、所定の制約条件下で所定の目的関数が最大となる際の単位時間当たりのデータ転送量を、所望の値として決定する。
次に、各処理サーバ３３０と各データサーバ３４０とは、ステップＳ４０５にて分散処理管理サーバ３００が決定した前述の単位時間当たりのデータ転送量に従ってデータ送受信を実施する。また各処理サーバ３３０の処理実行部３３２は、前述のデータ送受信によって受信したデータを処理する（ステップＳ４０６）。そして分散システム３５０の処理は、ステップＳ４０１に戻る。
図１２は、ステップＳ４０１における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、データ処理要求（プログラムの実行要求）である要求情報で指定された処理対象の論理データ集合の各データ要素を格納する処理データ格納部３４２の識別子の集合をデータ所在格納部３０７０から取得する（ステップＳ４０１−１）。次にモデル生成部３０１は、サーバ状態格納部３０６０から、データサーバ３４０の処理データ格納部３４２の識別子の集合、処理サーバ３３０の識別子の集合、及び、利用可能な処理実行部３３２の識別子の集合を取得する（ステップＳ４０１−２）。
図１３は、ステップＳ４０４における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、分散処理管理サーバ３００等のメモリ等に確保したモデル情報の表５００に、始点ｓから処理対象の論理データ集合への論理的な経路情報を追加する（ステップＳ４０４−１０）。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「始点経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、論理データ集合からその論理データ集合が含むデータ要素への論理的な経路情報を追加する（ステップＳ４０４−２０）。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「論理データ集合経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、データ要素からそのデータ要素を格納するデータサーバ３４０の処理データ格納部３４２への論理的な経路情報を追加する。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「データ要素経路」という辺の種別を有する行の情報である（ステップＳ４０４−３０）。
モデル生成部３０１は、入出力通信路情報格納部３０８０から、論理データ集合を構成するデータ要素を処理サーバ３３０の処理実行部３３２が処理する際の通信路の情報を示す入出力経路情報を取得する。そしてモデル生成部３０１は、モデル情報の表５００に、取得した入出力経路情報に基づいて、通信路の情報を追加する（ステップＳ４０４−４０）。この通信路の情報とは、前述のモデル情報の表５００のうち、「入出力経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、処理実行部３３２から終点ｔへの論理的な経路情報を追加する（ステップＳ４０４−５０）。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「終端経路」という辺の種別を有する行の情報である。
図１４は、ステップＳ４０４内のステップＳ４０４−１０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−１２乃至ステップＳ４０４−１５の処理を実施する（ステップＳ４０４−１１）。
まず分散処理管理サーバ３００のモデル生成部３０１は、モデル情報の表５００に、識別子を始点ｓとして含む行の情報を追加する（ステップＳ４０４−１２）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「始点経路」に設定する（ステップ４０４−１３）。
次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、Ｔｉの論理データ集合の名称に設定する（ステップＳ４０４−１４）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−１５）。
図１５は、ステップＳ４０４内のステップＳ４０４−２０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−２２の処理を実施する（ステップＳ４０４−２１）。
モデル生成部３０１は、論理データ集合Ｔｉのデータ要素の集合内の、各データ要素ｄｊについて、ステップＳ４０４−２３乃至ステップＳ４０４−２６の処理を実施する（ステップＳ４０４−２２）。
モデル生成部３０１は、モデル情報の表５００に、Ｔｉの論理データ集合の名称を識別子として含む行の情報を追加する（ステップＳ４０４−２３）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する（ステップＳ４０４−２４）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、ｄｊのデータ要素の名称（又は識別子）に設定する（ステップＳ４０４−２５）。
ここで、行の情報に含まれる「識別子」及び「次の要素へのポインタ」は、ネットワークモデルにおけるあるノードを特定する情報であればよい。
次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−２６）。
図１６は、ステップＳ４０４内のステップＳ４０４−３０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−３２の処理を実施する（ステップＳ４０４−３１）。
モデル生成部３０１は、論理データ集合Ｔｉのデータ要素の集合内の、各データ要素ｄｊについて、ステップＳ４０４−３３乃至ステップＳ４０４−３６の処理を実施する（ステップＳ４０４−３２）。
モデル生成部３０１は、モデル情報の表５００に、データ要素ｄｊの名称を識別子として含む行の情報を追加する（ステップＳ４０４−３３）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「データ要素経路」に設定する（ステップＳ４０４−３４）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、データ要素ｄｊが格納されているデータサーバ３４０の処理データ格納部３４２を示すデバイスＩＤに設定する（ステップＳ４０４−３５）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−３６）。
図１７は、ステップＳ４０４内のステップＳ４０４−４０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−４２の処理を実施する（ステップＳ４０４−４１）。
モデル生成部３０１は、論理データ集合Ｔｉのデータ要素の集合内の、各データ要素ｄｊについて、ステップＳ４０４−４３０の処理を実施する（ステップＳ４０４−４２）。
モデル生成部３０１は、モデル情報の表５００に基づいて、データ要素ｄｊの次の要素のポインタを識別子として含む行の情報を、モデル情報の表５００に追加する。すなわちモデル生成部３０１は、データ要素ｄｊが格納されている処理データ格納部３４２を示すデバイスＩＤｉを識別子として含む行の情報を、モデル情報の表５００に追加する（ステップＳ４０４−４３０）。
図１８Ａ及び図１８Ｂは、ステップＳ４０４−４０内のステップＳ４０４−４３０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、入出力通信路情報格納部３０８０から、入力元デバイスＩＤとして、ステップＳ４０４−４３０の呼び出し時に与えられたデバイスＩＤｉを含む行（入出力経路情報）を取り出す（ステップＳ４０４−４３１）。次にモデル生成部３０１は、ステップＳ４０４−４３１において取り出された入出力経路情報が含む出力先デバイスＩＤを含む、出力先デバイスＩＤの集合を特定する（ステップＳ４０４−４３２）。
次にモデル生成部３０１は、デバイスＩＤｉを識別子として含む行の情報が既にモデル情報の表５００に含まれているか否か判定する（ステップＳ４０４−４３３）。モデル生成部３０１は、当該行の情報が既にモデル情報の表５００に含まれていると判定した場合（ステップＳ４０４−４３３の“Ｙｅｓ”）、分散処理管理サーバ３００のステップＳ４０４−４３０から始まる一連の処理（サブルーチン）は終了する。一方、モデル生成部３０１は、当該行の情報がまだモデル情報の表５００に含まれていないと判定した場合（ステップＳ４０４−４３３の“Ｎｏ”）、分散処理管理サーバ３００の処理は、ステップＳ４０４−４３４に進む。
次にモデル生成部３０１は、ステップＳ４０４−４３２の処理において特定された出力デバイスＩＤの集合内の、各出力先デバイスＩＤｊについて、ステップＳ４０４−４３５乃至ステップＳ４０４−４３９、及び、ステップＳ４０４−４３０の再帰実行、又は、ステップＳ４０４−４３５１乃至ステップＳ４０４−４３５５の処理を実施する（ステップＳ４０４−４３４）。
モデル生成部３０１は、出力先デバイスＩＤｊが処理サーバ３３０を示すか否か判定する（ステップＳ４０４−４３５）。モデル生成部３０１は、出力先デバイスＩＤｊが処理サーバ３３０を示さないと判定した場合（ステップＳ４０４−４３５の“Ｎｏ”）、ステップＳ４０４−４３５乃至ステップＳ４０４−４３９の処理及びステップＳ４０４−４３０の処理の再帰実行を実施する。一方、モデル生成部３０１は、出力先デバイスＩＤｊが処理サーバ３３０を示すと判定した場合（ステップＳ４０４−４３５の“Ｙｅｓ”）、ステップＳ４０４−４３５１乃至ステップＳ４０４−４３５５の処理を実施する。
出力先デバイスＩＤｊが処理サーバ３３０以外の装置を示す場合（ステップＳ４０４−４３５の“Ｎｏ”）、モデル生成部３０１は、モデル情報の表５００に、入力元デバイスＩＤｉを識別子として含む行の情報を追加する（ステップＳ４０４−４３６）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「入出力経路」に設定する（ステップＳ４０４−４３７）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、出力先デバイスＩＤｊとする（ステップＳ４０４−４３８）。
次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を、入力元デバイスＩＤｉで示される装置と当該出力先デバイスＩＤｊで示される装置との間の入出力通信路の可用帯域に設定する（ステップＳ４０４−４３９）。次にモデル生成部３０１は、ステップＳ４０４−４３０の処理を再帰実行することで、モデル情報の表５００に、出力先デバイスＩＤｊを識別子として含む行の情報を追加する（ステップＳ４０４−４３０）。
出力先デバイスＩＤｊが処理サーバ３３０を示す場合（ステップＳ４０４−４３５の“Ｙｅｓ”）、ステップＳ４０４−４３５の処理の次にモデル生成部３０１は、以下の処理を実行する。すなわち、モデル生成部３０１は、当該処理サーバ３３０の利用可能な処理実行部３３２の集合内の、各処理実行部ｐにおいて、ステップＳ４０４−４３５２乃至ステップＳ４０４−４３５５の処理を実施する（ステップＳ４０４−４３５１）。モデル生成部３０１は、モデル情報の表５００に、入力元デバイスＩＤｉを識別子として含む行の情報を追加する（ステップＳ４０４−４３５２）。
次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「入出力経路」に設定する（ステップＳ４０４−４３５３）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、処理実行部ｐの識別子とする（ステップＳ４０４−４３５４）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値及び流量上限値をそれぞれ以下の値に設定する。すなわちモデル生成部３０１は、当該流量下限値を０に設定する。またモデル生成部３０１は、当該流量上限値を、ステップＳ４０４−４３０の呼び出し時に与えられたデバイスＩＤｉで示される装置と当該出力先デバイスＩＤｊで示される処理サーバ３３０との間の入出力通信路の可用帯域に設定する（ステップＳ４０４−４３５５）。
図１９は、ステップＳ４０４内のステップＳ４０４−５０における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、サーバ状態格納部３０６０から取得した利用可能な処理実行部３３２の集合内の、各処理実行部ｐｉについて、ステップＳ４０４−５２乃至ステップＳ４０４−５５の処理を実施する（ステップＳ４０４−５１）。
モデル生成部３０１は、モデル情報の表５００に、処理実行部ｐｉを示すデバイスＩＤを識別子として含む行の情報を追加する（ステップＳ４０４−５２）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「終点経路」に設定する（ステップＳ４０４−５３）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、終点ｔに設定する（ステップＳ４０４−５４）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−５５）。
図２０は、ステップＳ４０５における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００の最適配置計算部３０２は、当該分散処理管理サーバ３００のモデル生成部３０１が生成したモデル情報を基にグラフ（ｓ−ｔ−フローＦ）を構築する。そして最適配置計算部３０２は、そのグラフに基づいて、処理サーバ３３０への単位時間当たりのデータ転送量の合計値が最大となるように、各通信路のデータ転送量を決定する（ステップＳ４０５−１）。次に最適配置計算部３０２は、ステップＳ４０５−１で構築されたグラフの頂点（ノード）を示すｉについて、ｉの初期値として始点ｓを設定する（ステップＳ４０５−２）。次に最適配置計算部３０２は、メモリ上に経路情報記憶用の配列と、単位処理量の値を記録する領域を確保し、単位処理量の値を無限大で初期化する（ステップＳ４０５−３）。
次に最適配置計算部３０２は、ｉが終点ｔであるか否か判定する（ステップＳ４０５−４。最適配置計算部３０２は、ｉが終点ｔであると判定した場合（ステップＳ４０５−４の“Ｙｅｓ”）、分散処理管理サーバ３００の処理は、ステップＳ４０５−１１に進む。一方、最適配置計算部３０２は、ｉが終点ｔでないと判定した場合（ステップＳ４０５−４の“Ｎｏ”）、分散処理管理サーバ３００の処理は、ステップＳ４０５−５に進む。
ｉが終点ｔでない場合（ステップＳ４０５−４の“Ｎｏ”）、最適配置計算部３０２は、グラフ（ｓ−ｔ−フローＦ）上においてｉから出る経路のうち、流量が非ゼロである経路があるか否か判定する（ステップＳ４０５−５）。最適配置計算部３０２は、流量が非ゼロである経路が存在しないと判定した場合（ステップＳ４０５−５の“Ｎｏ”）、分散処理管理サーバ３００のステップＳ４０３の処理（サブルーチン）は終了する。一方、最適配置計算部３０２は、流量が非ゼロである経路が存在すると判定した場合（ステップＳ４０５−５の“Ｙｅｓ”）、その経路を選択する（ステップＳ４０５−６）。次に最適配置計算部３０２は、ステップＳ４０５−３の処理においてメモリ上に確保した経路情報記憶用の配列にｉを追加する（ステップＳ４０５−７）。
最適配置計算部３０２は、ステップＳ４０５−３の処理でメモリ上に確保した単位処理量の値が、ステップＳ４０５−６の処理において選択された経路の流量より小さい又は等しいか否かを判定する（ステップＳ４０５−８）。最適配置計算部３０２は、メモリ上に確保した単位処理量の値が当該経路の流量より小さい又は等しいと判定した場合（ステップＳ４０５−８の“Ｙｅｓ”）、最適配置計算部３０２の処理は、ステップＳ４０５−１０に進む。一方、最適配置計算部３０２は、メモリ上に確保した単位処理量の値が当該経路の流量より大きいと判定した場合（ステップＳ４０５−８の“Ｎｏ”）、最適配置計算部３０２の処理はステップＳ４０５−９に進む。
最適配置計算部３０２は、ステップＳ４０５−３の処理でメモリ上に確保した単位処理量の値を、ステップＳ４０５−６の処理において選択された経路の流量で更新する（ステップＳ４０５−９）。次に最適配置計算部３０２は、ｉとしてステップＳ４０５−６の処理において選択された経路の終点を設定する（ステップＳ４０５−１０）。ここで、当該経路の終点とは、現在のｉとは異なる、当該経路の他の端点である。そして分散処理管理サーバ３００の処理は、ステップＳ４０５−４に進む。
ステップＳ４０５−４の処理でｉが終点ｔであった場合（ステップＳ４０５−４の“Ｙｅｓ”）、最適配置計算部３０２は、経路情報記憶用の配列に格納された経路情報と単位処理量から、データフロー情報を生成する。そして最適配置計算部３０２は、生成したデータフロー情報をメモリに格納する（ステップＳ４０５−１１）。そして分散処理管理サーバ３００の処理は、ステップＳ４０５−２に進む。
最適配置計算部３０２は、ステップＳ４０５内のステップＳ４０５−１において、ネットワークモデル（Ｇ，ｕ，ｓ，ｔ）を基に目的関数を最大化する。最適配置計算部３０２は、この最大化の手法として、線形計画法や最大流問題におけるフロー増加法等を用いて、当該目的関数の最大化の処理を行う。最大流問題におけるフロー増加法を用いた動作の具体例が図４７Ａ乃至４７Ｇを参照して後述される。
図２１は、ステップＳ４０６における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００の処理割当部３０３は、利用可能な処理実行部３３２の集合内の、各処理実行部ｐｉについて、ステップＳ４０６−２の処理を実施する（ステップＳ４０６−１）。
処理割当部３０３は、処理実行部ｐｉを含む経路情報の集合内の、各経路情報ｆｊについて、ステップＳ４０６−３乃至ステップＳ４０６−４の処理を実施する（ステップＳ４０６−２）。なお、この各経路情報ｆｊは、ステップＳ４０５において生成されたデータフロー情報に含まれる。
処理割当部３０３は、最適配置計算部３０２が算出した経路情報ｆｊに対応するデータ要素の格納先を示すデータサーバ３４０の処理データ格納部３４２の識別子を経路情報ｆｊから取り出す（ステップＳ４０６−３）。次に処理割当部３０３は、処理実行部ｐｉを備える処理サーバ３３０に対して、処理プログラムと決定情報とを送付する（ステップＳ４０６−４）。ここで処理プログラムとは、当該データ要素を格納するデータサーバ３４０の処理データ格納部３４２から当該データ要素を、前述のデータフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ３４０、処理データ格納部３４２、データ要素、及び、単位処理量は、決定情報に含まれる情報によって特定される。
本実施の形態における分散システム３５０がもたらす第１の効果は、複数のデータサーバ３４０と複数の処理サーバ３３０とを備えるシステムが、そのシステム全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００が、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせ全体から、分散システム３５０におけるデータ送受信時の通信帯域を考慮して、送受信を行うデータサーバ３４０と処理実行部３３２を決定するからである。
本分散システム３５０のデータ送受信は、記憶装置などの装置内やネットワークにおけるデータ転送帯域のボトルネックによる悪影響を軽減する。
また、本実施の形態における分散システム３５０は、分散処理管理サーバ３００が、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせから、分散システム３５０におけるデータ送受信時の通信帯域を考慮する。よって、本実施の形態における分散システム３５０は、データを記憶する複数のデータサーバ３４０と当該データを処理する複数の処理サーバ３３０とが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバ３３０の総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
さらに、本実施の形態における分散システム３５０のデータ送受信は、関連技術よりも、記憶装置などの装置内やネットワークにおけるデータ転送帯域の利用効率を高めることが可能である。なぜなら、本実施の形態における分散システム３５０は、分散処理管理サーバ３００が、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせから、分散システム３５０におけるデータ送受信時の通信帯域を考慮するからである。具体的には分散システム３５０は、以下のように動作するからである。まず分散システム３５０は、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせから、空いている通信帯域を最大限活用する組み合わせを特定する。すなわち、分散システム３５０は、処理サーバ３３０が受信する単位時間当たりのデータ量の合計が最大となる、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせを特定する。そして分散システム３５０は、特定された組み合わせに基づいてデータ転送経路を決定するための情報を生成する。以上の動作により、本実施の形態における分散システム３５０は、前述の効果を奏する。
［第２の実施の形態］
第２の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ３００は、論理データ集合内の部分データが多重化された状態で複数のデータサーバ３４０に格納されたデータを扱う。この部分データは複数のデータ要素を含む。
図２２は、第２の実施の形態のステップＳ４０４−２０における分散処理管理サーバ３００の動作を示すフローチャートである。本実施の形態では、第１の実施の形態に対し、複数の部分データをモデルに追加する処理が追加されている。分散処理管理サーバ３００のモデル生成部３０１は、取得したデータ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−２１２の処理を実施する（ステップＳ４０４−２１１）。
モデル生成部３０１は、受け取った要求情報に基づいて特定される論理データ集合Ｔｉの部分データの集合内の、各部分データｄｊについて、ステップＳ４０４−２１３乃至ステップＳ４０４−２１６及びステップＳ４０４−２２１の処理を実施する（ステップＳ４０４−２１２）。ここで、各部分データｄｊは、複数のデータ要素ｅｋを含んでいる。
モデル生成部３０１は、モデル情報の表５００に、Ｔｉの論理データ集合の名称を識別子として含む行の情報を追加する（ステップＳ４０４−２１３）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する（ステップＳ４０４−２１４）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、ｄｊの部分データの名称に設定する（ステップＳ４０４−２１５）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−２１６）。
次にモデル生成部３０１は、部分データｄｊを構成する各データ要素ｅｋについて、ステップＳ４０４−２２２乃至ステップＳ４０４−２２５の処理を実施する（ステップＳ４０４−２２１）。
モデル生成部３０１は、モデル情報の表５００に、ｄｊの部分データの名称を識別子として含む行の情報を追加する（ステップＳ４０４−２２２）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「部分データ経路」に設定する（ステップＳ４０４−２２３）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、データ要素ｅｋの識別子に設定する（ステップＳ４０４−２２４）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−２２５）。
図２３は、本実施の形態におけるステップＳ４０４−３０における分散処理管理サーバ３００の動作を示すフローチャートである。本実施の形態では、第１の実施の形態に対し、複数のデータ要素に対してそれぞれデータ要素経路を特定し、それぞれモデルに追加する処理が追加されている。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−３２−１の処理を実施する（ステップＳ４０４−３１−１）。
モデル生成部３０１は、論理データ集合Ｔｉの部分データの集合内の、各部分データｄｊについて、ステップＳ４０４−３２−２の処理を実施する（ステップＳ４０４−３２−１）。ここで、各部分データｄｊは、複数のデータ要素ｅｋを含んでいる。
モデル生成部３０１は、部分データｄｊを構成する、各データ要素ｅｋについて、ステップＳ４０４−３３乃至ステップＳ４０４−３６の処理を実施する（ステップＳ４０４−３２−２）。
モデル生成部３０１は、モデル情報の表５００に、データ要素ｅｋの識別子を、識別子として含む行の情報を追加する（ステップＳ４０４−３３）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「データ要素経路」に設定する（ステップＳ４０４−３４）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、データ要素ｅｋが格納されているデータサーバ３４０の処理データ格納部３４２を示すデバイスＩＤに設定する（ステップＳ４０４−３５）。次にモデル生成部３０１は、当該追加行に含まれる、流量下限値を０に、流量上限値を無限大に設定する（ステップＳ４０４−３６）。
図２４は、本実施の形態におけるステップＳ４０４−４０における分散処理管理サーバ３００の動作を示すフローチャートである。本実施の形態では、第１の実施の形態に対し、複数のデータ要素に対してそれぞれデータ要素経路を特定し、それをモデルに追加する処理が追加されている。
分散処理管理サーバ３００のモデル生成部３０１は、受け取った要求情報に基づいて、データ所在格納部３０７０から取得した論理データ集合の集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−４２−１の処理を実施する（ステップＳ４０４−４１−１）。
モデル生成部３０１は、論理データ集合Ｔｉの部分データの集合内の、各部分データｄｊについて、ステップＳ４０４−４２−２の処理を実施する（ステップＳ４０４−４２−１）。ここで、各部分データｄｊは、複数のデータ要素ｅｋを含んでいる。
モデル生成部３０１は、部分データｄｊを構成する、各データ要素ｅｋについて、ステップＳ４０４−４３０の処理を実施する（ステップＳ４０４−４２−２）。
モデル生成部３０１は、データ要素ｅｋが格納されている処理データ格納部３４２を示すデバイスＩＤｉを識別子として含む行の情報を、モデル情報の表５００に追加する（ステップＳ４０４−４３０）。ステップＳ４０４−４３０の処理は、第１の実施の形態におけるモデル生成部３０１による同名のステップにおける処理と同様である。
図２５は、本実施の形態のステップＳ４０６における分散処理管理サーバ３００の動作を示すフローチャートである。本実施の形態では、第１の実施の形態に対し、複数の部分データ毎に処理実行部３３２を割り当てるように変更されている。分散処理管理サーバ３００の処理割当部３０３は、利用可能な処理実行部３３２の集合内の、各処理実行部ｐｉについて、ステップＳ４０６−２−１の処理を実施する（ステップＳ４０６−１−１）。処理割当部３０３は、処理実行部ｐｉを含む経路情報集合内の、各経路情報ｆｊについて、ステップＳ４０６−３−１乃至ステップＳ４０６−５−１の処理を実施する（ステップＳ４０６−２−１）。
処理割当部３０３は、経路情報ｆｊから部分データを示す情報を取り出す（ステップＳ４０６−３−１）。次に処理割当部３０３は、当該部分データを、当該部分データを表すノードを経路に含むデータフロー情報が指定するデータ要素毎の単位処理量の比で分割し、経路情報ｆｊに対応する単位処理量に対応する分割された部分データとその経路情報ｆｊに含まれるノードで表されるデータ要素とを対応付ける（ステップＳ４０６−４−１）。
具体的には、処理割当部３０３は、ステップＳ４０６−３−１にて取り出された部分データを示す情報に対応する部分データのサイズをデータ所在格納部３０７０に格納されている情報から特定する。そして処理割当部３０３は、当該部分データを、当該部分データを表すノードを経路に含むデータフロー情報が指定するデータ要素毎の単位処理量の比で分割する。例えばある部分データを表すノードを含む経路情報が、第一の経路情報と第二の経路情報であり、第一の経路情報に対応する単位処理量が１００ＭＢ／ｓであり、第二の経路情報に対応する単位処理量が５０ＭＢ／ｓである場合を仮定する。この仮定において、処理される部分データのサイズが３００ＭＢである場合を仮定する。この場合、第一の経路情報に対応する単位処理量と第二の経路情報に対応する単位処理量との比（２：１）に基づいて、部分データを２００ＭＢのデータ（データ１）と１００ＭＢのデータ（データ２）とに分割する。このデータ１とデータ２とをそれぞれ示す情報が図１０に示される受信データ特定情報である。そして処理割当部３０３は、経路情報ｆｊ（例えば第一の経路情報）に対応する単位処理量に対応する分割された部分データ（データ１）と経路情報ｆｊに対応するデータ要素（ｅｋ）とを対応付ける。すなわち、処理割当部３０３は、第一の経路情報が示す経路に含まれるデータ要素とデータ１とを対応付ける。
次に処理割当部３０３は、データ要素ｅｋについて、ステップＳ４０６−６−１の処理を実施する（ステップＳ４０６−５−１）。
処理割当部３０３は、処理実行部ｐｉを備える処理サーバ３３０に対して、処理プログラムと決定情報とを送付する（ステップＳ４０６−６−１）。ここで処理プログラムとは、当該データ要素ｅｋを含むデータサーバ３４０の処理データ格納部３４２から、ｅｋに対応する部分データの分割部分を、データフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ３４０、処理データ格納部３４２、データ要素ｅｋに対応する部分データの分割部分、及び、単位処理量は、決定情報に含まれる情報によって特定される。
第２の実施の形態がもたらす第１の効果は、論理データ集合内の部分データが多重化された状態で複数のデータサーバ３４０に格納された際に、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００が、以下のように動作するからである。まず分散処理管理サーバ３００は、各データサーバ３４０と各処理サーバ３３０の処理実行部３３２との任意の組み合わせ全体から、多重化された部分データの取得に必要な分散システム３５０におけるデータ送受信時の通信帯域を考慮したネットワークモデルを生成する。そして分散処理管理サーバ３００は、そのネットワークモデルに基づいて送受信を行うデータサーバ３４０と処理実行部３３２とを決定する。これらの動作により第２の実施の形態における分散処理管理サーバ３００は前述の効果を奏する。
［第３の実施の形態］
第３の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ３００は、処理サーバ３３０の処理性能に差異がある場合の、分散システム３５０に対応する。
図２６は、第３の実施の形態のステップＳ４０４−５０における分散処理管理サーバ３００の動作を示すフローチャートである。本実施の形態では、第１の実施の形態に対し、処理サーバ３３０の処理性能に応じて決定されるスループットをモデルに追加する。
分散処理管理サーバ３００のモデル生成部３０１は、利用可能な処理実行部３３２の集合内の、各処理実行部ｐｉについて、ステップＳ４０４−５２乃至ステップＳ４０４−５６−１の処理を実施する（ステップＳ４０４−５１−１）。
モデル生成部３０１は、モデル情報の表５００に、処理実行部ｐｉを示すデバイスＩＤを識別子として含む行の情報を追加する（ステップＳ４０４−５２）。次にモデル生成部３０１は、当該追加行を含む、辺の種別を「終点経路」に設定する（ステップＳ４０４−５３）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、終点ｔに設定する（ステップＳ４０４−５４）。モデル生成部３０１は、当該追加行に含まれる、流量下限値を、０に設定する（ステップＳ４０４−５５−１）。
次にモデル生成部３０１は、当該追加行に含まれる、流量上限値を、処理実行部ｐｉが単位時間当たりに処理可能な処理量に設定する（ステップＳ４０４−５６−１）。この処理量は、サーバ状態格納部３０６０に格納された処理サーバ３３０の構成情報３０６３等に基づいて決定される。例えば、この処理量は、ＣＰＵ周波数１ＧＨｚ当たりの単位時間におけるデータ処理量から決定される。この処理量は、他の情報や複数の情報に基づいて決定されても良い。
例えば、モデル生成部３０１は、サーバ状態格納部３０６０に格納された、処理サーバ３３０の負荷情報３０６２を参照することによってこの処理量を決定しても良い。また、この処理量は、論理データ集合毎や部分データ（又はデータ要素）毎に異なっても良い。その場合、モデル生成部３０１は、論理データ集合毎や部分データ（又はデータ要素）毎に、処理サーバ３３０の構成情報３０６３等に基づく当該データの単位時間当たりの処理量を計算する。また、モデル生成部３０１は、当該データと他のデータとの負荷の比等の対応表を作成する。当該対応表は、ステップＳ４０５において、最適配置計算部３０２によって参照される。
第３の実施の形態がもたらす第１の効果は、処理サーバ３３０の処理性能の差異を考慮して、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００が、以下のように動作するからである。まず分散処理管理サーバ３００は、各処理サーバ３３０の処理性能によって決定される単位時間当たりの処理量を制約条件として導入したネットワークモデルを生成する。そして分散処理管理サーバ３００は、そのネットワークモデルに基づいて、送受信を行うデータサーバ３４０と処理実行部３３２とを決定する。以上の動作により、第３の実施の形態における分散処理管理サーバ３００は前述の効果を奏する。
［第４の実施の形態］
第４の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ３００は、分散システム３５０が実行を要求されたプログラムについて、特定の論理データ集合内の部分データ（又はデータ要素）を取得する際に占有する通信帯域に上限値や下限値が設定されている場合に対応する。
なお、ここでは分散システム３５０が実行要求されたプログラム処理の一単位は、ジョブと表される。
図２７は、本実施の形態における分散システム３５０の構成を示すブロック図である。本実施の形態における分散処理管理サーバ３００は、第１の実施の形態の分散処理管理サーバ３００が包含する格納部や構成要素に加えて、ジョブ情報格納部３０４０を包含する。
＝＝＝ジョブ情報格納部３０４０＝＝＝
ジョブ情報格納部３０４０は、分散システム３５０が実行要求されたプログラム処理に関する構成情報を格納する。
図２８Ａは、ジョブ情報格納部３０４０に格納される構成情報を例示する。ジョブ情報格納部３０４０は、ジョブＩＤ３０４１、論理データ集合名３０４２、最低単位処理量３０４３、最大単位処理量３０４４を包含する。
ジョブＩＤ３０４１は、分散システム３５０が実行するジョブ毎に割り当てられた、分散システム３５０内において一意である識別子である。論理データ集合名３０４２は、当該ジョブが扱う論理データ集合の名称（識別子）である。最低単位処理量３０４３は、当該論理データ集合に指定された、単位時間当たりの処理量の最低値である。最大単位処理量３０４４は、当該論理データ集合に指定された、単位時間当たりの処理量の最大値である。
ひとつのジョブが複数の論理データ集合を扱う場合は、一つのジョブＩＤに対して異なる論理データ集合名３０４２、最低単位処理量３０４３、最大単位処理量３０４４を格納する行の情報が複数あっても良い。
図２９は、第４の実施の形態のステップＳ４０１における分散処理管理サーバ３００の動作を示すフローチャートである。
モデル生成部３０１は、ジョブ情報格納部３０４０から、実行中のジョブの集合を取得する（ステップＳ４０１−１−１）。次にモデル生成部３０１は、データ所在格納部３０７０から、データ処理要求で指定された処理対象の論理データ集合の各データ要素を格納する処理データ格納部３４２の識別子の集合を取得する（ステップＳ４０１−２−１）。
次にモデル生成部３０１は、サーバ状態格納部３０６０から、データサーバ３４０の処理データ格納部３４２の識別子の集合、処理サーバ３３０の識別子の集合、及び、利用可能な処理実行部３３２の識別子の集合を取得する（ステップＳ４０１−３−１）。
図３０は、第４の実施の形態のステップＳ４０４における分散処理管理サーバ３００の動作を示すフローチャートである。
モデル生成部３０１は、モデル情報の表５００に、始点ｓからジョブへの論理的な経路情報と、ジョブから論理データ集合への論理的な経路情報を追加する（ステップＳ４０４−１０−１）。始点ｓからジョブへの論理的な経路情報とは、モデル情報の表５００のうち、「始点経路」という辺の種別を有する行の情報である。ジョブから論理データ集合への論理的な経路情報とは、モデル情報の表５００のうち、「ジョブ情報経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、論理データ集合からデータ要素への論理的な経路情報を追加する（ステップＳ４０４−２０）。論理データ集合からデータ要素への論理的な経路情報とは、モデル情報の表５００のうち、「論理データ集合経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、データ要素からそのデータ要素を格納するデータサーバ３４０の処理データ格納部３４２への論理的な経路情報を追加する（ステップＳ４０４−３０）。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「データ要素経路」という辺の種別を有する行の情報である。
モデル生成部３０１は、入出力通信路情報格納部３０８０から、論理データ集合を構成するデータ要素を処理サーバ３３０の処理実行部３３２が処理する際の通信路の情報を示す入出力経路情報を取得する。そしてモデル生成部３０１は、モデル情報の表５００に、取得した入出力経路情報に基づいて、通信路の情報を追加する（ステップＳ４０４−４０）。この通信路の情報とは、前述のモデル情報の表５００のうち、「入出力経路」という辺の種別を有する行の情報である。
次にモデル生成部３０１は、モデル情報の表５００に、処理実行部３３２から終点ｔへの論理的な経路情報を追加する（ステップＳ４０４−５０）。この論理的な経路情報とは、前述のモデル情報の表５００のうち、「終端経路」という辺の種別を有する行の情報である。
図３１は、第４の実施の形態のステップＳ４０４−１０−１における分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００のモデル生成部３０１は、取得したジョブの集合ＪのジョブＪｏｂｉについて、ステップＳ４０４−１１２乃至ステップＳ４０４−１１５の処理を実施する（ステップＳ４０４−１１１）。
モデル生成部３０１は、モデル情報の表５００に、識別子をｓとして含む行の情報を追加する（ステップＳ４０４−１１２）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「始点経路」とする（ステップＳ４０４−１１３）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、ＪｏｂｉのジョブＩＤに設定する（ステップＳ４０４−１１４）。次にモデル生成部３０１は、ジョブ情報格納部３０４０に格納される情報に基づいて、当該追加行に含まれる、流量下限値と流量上限値を、それぞれＪｏｂｉの最低単位処理量と最大単位処理量に設定する（ステップＳ４０４−１１５）。
次にモデル生成部３０１は、ジョブの集合ＪのジョブＪｏｂｉについて、ステップＳ４０４−１２２の処理を実施する（ステップＳ４０４−１２１）。
モデル生成部３０１は、Ｊｏｂｉが扱う論理データ集合内の、各論理データ集合Ｔｉについて、ステップＳ４０４−１２３乃至ステップＳ４０４−１２６の処理を実施する（ステップＳ４０４−１２２）。
モデル生成部３０１は、モデル情報の表５００に、識別子をＪｏｂｉとして含む行の情報を追加する（ステップＳ４０４−１２３）。次にモデル生成部３０１は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する（ステップＳ４０４−１２４）。次にモデル生成部３０１は、当該追加行に含まれる、次の要素へのポインタを、Ｔｉの論理データ集合の名称（論理データ集合名）とする（ステップＳ４０４−１２５）。次にモデル生成部３０１は、ジョブ情報格納部３０４０に格納されている情報に基づいて、当該追加行に含まれる、流量下限値と流量上限値を、Ｔｉを論理データ集合名として含む行の情報に対応する流量下限値と流量上限値にそれぞれ設定する（ステップＳ４０４−１２６）。
本実施の形態では、最適配置計算部３０２は、モデル生成部３０１が出力したモデル情報によって示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）に対して、目的関数を最大化するようなｓ−ｔ−フローＦを決定する。そして最適配置計算部３０２は、そのｓ−ｔ−フローＦを満たす経路情報と流量との対応表を出力する。
ここで、ネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）におけるｌは、装置間の通信路ｅから、ｅにおける最低流量への最低流量関数である。また、ｕは、装置間の通信路ｅから、ｅにおける可用帯域への容量関数である。すなわち、ｕは、容量関数ｕ：Ｅ→Ｒ＋である。ただしＲ＋は正の実数を示す集合である。Ｅは、通信路ｅの集合である。またネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）におけるＧは、最低流量関数ｌ及び容量関数ｕによって制限された有向グラフＧ＝（Ｖ，Ｅ）である。
ｓ−ｔ−フローＦは、頂点ｓ及びｔを除くグラフＧ上の全てのｅ∈Ｅでｌ（ｅ）≦ｆ（ｅ）≦ｕ（ｅ）を満たすような流量関数ｆによって決定される。
すなわち、本実施の形態における制約式は、第１の実施の形態における［数１］の（３）式を次の［数２］の（４）式で置き換えた式である。
【数２】
0005850054.tif 000003
ただし、［数２］において、ｌ（ｅ）は辺ｅにおける流量の下限値を示す関数である。
第４の実施の形態がもたらす第１の効果は、特定の論理データ集合内の部分データ（又はデータ要素）を取得する際に占有する通信帯域に設定された上限値や下限値を考慮して、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００が、以下のように動作するからである。まず分散処理管理サーバ３００は、部分データ（又はデータ要素）を取得する際に占有する通信帯域に設定された上限値や下限値を制約条件として導入したネットワークモデルを生成する。そして分散処理管理サーバ３００は、そのネットワークモデルに基づいて、送受信を行うデータサーバ３４０と処理実行部３３２とを決定する。以上の動作により、第４の実施の形態における分散処理管理サーバ３００は、前述の効果を奏する。
第４の実施の形態がもたらす第２の効果は、特定の論理データ集合や部分データ（又はデータ要素）に対して優先度が設定されている際に、設定された優先度の制約を満たし、かつ、全体として単位時間当たりの処理量が最大となるサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００は、以下の機能を有するからである。すなわち、分散処理管理サーバ３００は、論理データ集合や部分データ（又はデータ要素）に対して設定された優先度を、論理データ集合や部分データ（又はデータ要素）を取得する際に占有する通信帯域の比率として設定する。以上の機能を有することにより、第４の実施の形態における分散処理管理サーバ３００は、前述の効果を奏する。
［第４の実施の形態の第１の変形例］
第４の実施の形態における分散処理管理サーバ３００は、「入出力経路」を辺の種別として含む行の情報で示されるネットワークモデル上の辺に対して上限値又は下限値を設定しても良い。
この場合、分散処理管理サーバ３００は、帯域制限情報格納部３０９０をさらに備える。図２８Ｂは、帯域制限情報格納部３０９０が格納する情報の一例を示す図である。図２８Ｂを参照すると、帯域制限情報格納部３０９０は、入力元デバイスＩＤ３０９１、出力先デバイスＩＤ３０９２、最低単位処理量３０９３、及び最大単位処理量３０９４を対応付けて格納している。入力元デバイスＩＤ３０９１及び出力先デバイスＩＤ３０９２は、「入出力経路」に接続されるノードによって表される装置を示す識別子である。最低単位処理量３０９３は、当該入出力経路に指定される通信帯域の最低値である。最大単位処理量３０９４は、当該入出力経路に指定される通信帯域の最大値である。
第４の実施の形態の第１の変形例における、分散処理管理サーバ３００の動作の概要を、第４の実施の形態における分散処理管理サーバ３００の動作との差分を示すことで説明する。
モデル生成部３０１は、ステップＳ４０４−４０内のステップＳ４０４−４３９（図１８Ａ参照）の処理において、ステップＳ４０４−４３０（図１７参照）の呼び出し時に与えられたデバイスＩＤｉと当該出力先デバイスＩＤｊとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部３０９０から読み出す。そしてモデル生成部３０１は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
また、モデル生成部３０１は、ステップＳ４０４−４０内のステップＳ４０４−４３５５（図１８Ｂ参照）の処理において、ステップＳ４０４−４３０（図１７参照）の呼び出し時に与えられたデバイスＩＤｉと当該出力先デバイスＩＤｊとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部３０９０から読み出す。そしてモデル生成部３０１は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
第４の実施の形態の第１の変形例における分散処理管理サーバ３００は、第４の実施の形態における分散処理管理サーバ３００と同様の機能を備える。また分散処理管理サーバ３００は、データ送受信経路に対して、可用帯域とは異なるデータ流量の上限値及び下限値を設定する。よって分散処理管理サーバ３００は、分散システム３５０が使用する通信帯域を可用帯域によらず任意に設定できるようになる。したがって分散処理管理サーバ３００は、第４の実施の形態における分散処理管理サーバ３００と同様の効果を奏するとともに、分散システム３５０がデータ送受信経路に与える負荷を制御することができる。
［第４の実施の形態の第２の変形例］
第４の実施の形態における分散処理管理サーバ３００は、「論理データ集合経路」を辺の種別として含む行の情報で示されるネットワークモデル上の辺に対して上限値又は下限値を設定しても良い。
この場合、分散処理管理サーバ３００は、帯域制限情報格納部３１００をさらに備える。図２８Ｃは、帯域制限情報格納部３１００が格納する情報の一例を示す図である。図２８Ｃを参照すると、帯域制限情報格納部３１００は、論理データ集合名３１０１、データ要素名３１０２、最低単位処理量３１０３、及び最大単位処理量３１０４を対応付けて格納している。論理データ集合名３１０１は、ジョブが扱う論理データ集合の名称（識別子）である。データ要素名３１０２は、この「論理データ集合経路」に接続されるノードで示されるデータ要素の名称（識別子）である。最低単位処理量３１０３は、当該論理データ集合経路に指定されるデータ流量の最低値である。最大単位処理量３１０４は、当該論理データ集合経路に指定されるデータ流量の最大値である。
第４の実施の形態の第２の変形例における、分散処理管理サーバ３００の動作の概要を、第４の実施の形態における分散処理管理サーバ３００の動作との差分を示すことで説明する。
モデル生成部３０１は、ステップＳ４０４−２０内のステップＳ４０４−２６（図１５参照）の処理において、論理データ集合名Ｔｉとデータ要素名ｄｊとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部３１００から読み出す。そしてモデル生成部３０１は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
第４の実施の形態の第２の変形例における分散処理管理サーバ３００は、第４の実施の形態における分散処理管理サーバ３００と同様の機能を備える。また分散処理管理サーバ３００は、論理データ集合経路に対して、データ流量の上限値及び下限値を設定する。よって分散処理管理サーバ３００は、各データ要素が単位時間当たりに処理されるデータ量を制御できる。したがって分散処理管理サーバ３００は、第４の実施の形態における分散処理管理サーバ３００と同様の効果を奏するとともに、各データ要素の処理における優先度を制御することができる。
［第５の実施の形態］
第５の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ３００は、入出力通信路の可用帯域を、自身が生成したモデル情報とデータフロー情報に基づいて各経路に割り当てられる帯域の情報とから推測する。
図３２は、本実施の形態における分散システム３５０の構成を示すブロック図である。本実施の形態では、分散処理管理サーバ３００が包含する処理割当部３０３は、各経路に対して処理を割り当てる際に消費する入出力通信路の帯域の情報を用いて、入出力通信路情報格納部３０８０が格納する各入出力通信路の可用帯域を示す情報を更新する機能をさらに有する。
図３３は、本実施の形態のステップＳ４０６における、分散処理管理サーバ３００の動作を示すフローチャートである。
分散処理管理サーバ３００の処理割当部３０３は、利用可能な処理実行部３３２の集合内の、各処理実行部ｐｉについて、ステップＳ４０６−２−２の処理を実行する（ステップＳ４０６−１−２）。
処理割当部３０３は、処理実行部ｐｉを含む経路情報の集合内の、各経路情報ｆｊについて、ステップＳ４０６−３−２の処理を実行する（ステップＳ４０６−２−２）。
処理割当部３０３は、経路情報ｆｊからその経路情報に対応するデータ要素の情報を取り出す（ステップＳ４０６−３−２）。
次に処理割当部３０３は、処理実行部ｐｉを備える処理サーバ３３０に対して、処理プログラムと決定情報とを送付する（ステップＳ４０６−４−２）。ここで処理プログラムは、当該データ要素を含むデータサーバ３４０の処理データ格納部３４２から当該データ要素を、データフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ３４０、処理データ格納部３４２、データ要素、及び、単位処理量は、決定情報に含まれる情報によって特定される。
次に処理割当部３０３は、当該データ要素を取得する際に経由する入出力通信路に対して、データフロー情報が指定する単位処理量をその入出力通信路の可用帯域から減算する。そして処理割当部３０３は、減算結果の値を、その入出力通信路に対応する入出力通信路情報の新しい可用帯域情報として入出力通信路情報格納部３０８０に格納する（ステップＳ４０６−５−２）。
第５の実施の形態がもたらす第１の効果は、入出力通信路の可用帯域を計測する際に生じる負荷を低減しながら、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ３００が、以下のように動作するからである。まず分散処理管理サーバ３００は、直前に決定した送受信を行うデータサーバ３４０と処理実行部３３２との情報を基に、通信路の現在の可用帯域を推測する。そして分散処理管理サーバ３００は、推測した情報を基にネットワークモデルを生成する。そして分散処理管理サーバ３００は、そのネットワークモデルに基づいて、送受信を行うデータサーバ３４０と処理実行部３３２とを決定する。以上の動作により、第５の実施の形態における分散処理管理サーバ３００は、前述の効果を奏する。
［第６の実施の形態］
図３４は、第６の実施の形態における分散処理管理サーバ６００の構成を示すブロック図である。図３４を参照すると、分散処理管理サーバ６００は、モデル生成部６０１と、最適配置計算部６０２とを備える。
＝＝＝モデル生成部６０１＝＝＝
モデル生成部６０１は、ネットワークを構成する装置、及び処理されるデータのそれぞれがノードで表される、ネットワークモデルを生成する。このネットワークモデルにおいて、データ及びそのデータを記憶するデータサーバをそれぞれ表すノードの間が辺で接続されている。またこのネットワークモデルにおいて、前述のネットワークを構成する装置を表すノードの間が辺で接続されその辺に対してその辺に接続されるノードで表される装置間の現実の通信路における可用帯域が辺の流量に関する制約条件として設定されている。
モデル生成部６０１は、データを処理する処理サーバの識別子の集合を、例えば第１の実施の形態におけるサーバ状態格納部３０６０から取得してもよい。またモデル生成部６０１は、データの識別子とそのデータを記憶するデータサーバの識別子とを対応付けた情報であるデータ所在情報の集合を、例えば第１の実施の形態におけるデータ所在格納部３０７０から取得してもよい。またモデル生成部６０１は、データサーバと処理サーバとを接続するネットワークを構成する装置の識別子とその装置間の通信路における可用帯域を示す帯域情報とを対応付けた情報である入出力通信路情報の集合を、例えば第１の実施の形態における入出力通信路情報格納部３０８０から取得してもよい。この場合、データサーバは、モデル生成部６０１が取得したデータ所在情報の集合に含まれる識別子で示されるデータサーバである。また、処理サーバは、モデル生成部６０１が取得した処理サーバの識別子の集合で示される処理サーバである。
図３５は、処理サーバの識別子の集合の一例を示す図である。図３５を参照すると、処理サーバの識別子として、ｎ１、ｎ２、及びｎ３が示されている。
図３６は、データ所在情報の集合の一例を示す図である。図３６を参照すると、データの識別子ｄ１で示されるデータがデータサーバの識別子Ｄ１で示されるデータサーバに記憶されていることが示されている。同様にデータの識別子ｄ２で示されるデータがデータサーバの識別子Ｄ３で示されるデータサーバに記憶されていることが示されている。またデータの識別子ｄ３で示されるデータがデータサーバの識別子Ｄ２で示されるデータサーバに記憶されていることが示されている。
図３７は、入出力通信路情報の集合の一例を示す図である。図３７を参照すると、入力元デバイスＩＤ「ｓｗ２」で示される装置と、出力先デバイスＩＤ「ｎ２」で示される装置との間の通信路の可用帯域が「１００ＭＢ／ｓ」であることが示されている。同様に、入力元デバイスＩＤ「ｓｗ１」で示される装置と、出力先デバイスＩＤ「ｓｗ２」で示される装置との間の通信路の可用帯域が「１０００ＭＢ／ｓ」であることが示されている。また、入力元デバイスＩＤ「Ｄ１」で示される装置と、出力先デバイスＩＤ「ＯＮ１」で示される装置との間の通信路の可用帯域が「１０ＭＢ／ｓ」であることが示されている。
モデル生成部６０１は、取得したデータ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する。このネットワークモデルは、装置及びデータのそれぞれがノードとして表されたモデルである。またこのネットワークモデルは、モデル生成部６０１が取得したあるデータ所在情報で示されるデータ及びデータサーバを表すノードの間が辺で接続されているモデルである。さらに、このネットワークモデルは、モデル生成部６０１が取得したある入出力通信路情報に含まれる識別子で示される装置を表すノードの間が辺で接続され、その辺に対して前述のある入出力通信路情報に含まれる帯域情報が制約条件として設定されているネットワークモデルである。
＝＝＝最適配置計算部６０２＝＝＝
最適配置計算部６０２は、モデル生成部６０１が生成したネットワークモデルに基づいて、データフロー情報を生成する。具体的には、最適配置計算部６０２は、モデル生成部６０１が取得したデータ所在情報の集合で示されるデータのうちから一以上のデータが特定されると、その特定されたデータと前述のネットワークモデルとに基づいて、データフロー情報を生成する。
データフロー情報とは、一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前述の処理サーバと、前述の特定されたデータとの経路及びその経路のデータ流量を示す情報である。前述の一以上の処理サーバとは、モデル生成部６０１が取得した処理サーバの識別子の集合で示される少なくとも一部の処理サーバである。
図３８は、本発明の第６の実施の形態における分散処理管理サーバ６００とその周辺装置のハードウェア構成を示す図である。図３８に示されるように、分散処理管理サーバ６００は、ＣＰＵ６９１、ネットワーク接続用の通信Ｉ／Ｆ６９２（通信インターフェース６９２）、メモリ６９３、及びプログラムを格納するハードディスク等の記憶装置６９４を含む。また、分散処理管理サーバ６００は、バス６９７を介して入力装置６９５及び出力装置６９６に接続されている。
ＣＰＵ６９１は、オペレーティングシステムを動作させて本発明の第６の実施の形態に係る分散処理管理サーバ６００の全体を制御する。また、ＣＰＵ６９１は、例えばドライブ装置などに装着された記録媒体からメモリ６９３にプログラムやデータを読み出し、これにしたがって第６の実施の形態における分散処理管理サーバ６００は、モデル生成部６０１、及び、最適配置計算部６０２として各種の処理を実行する。
記憶装置６９４は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、又は半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
入力装置６９５は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置６９５は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
出力装置６９６は、例えばディスプレイで実現され、出力を確認するために用いられる。
なお、第６の実施の形態の説明において利用されるブロック図（図３４）には、ハードウェア単位の構成ではなく、機能単位のブロックが示されている。これらの機能ブロックは図３８に示されるハードウェア構成によって実現される。ただし、分散処理管理サーバ６００が備える各部の実現手段は特に限定されない。すなわち、分散処理管理サーバ６００は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
また、ＣＰＵ６９１は、記憶装置６９４に記録されているコンピュータプログラムを読み込み、そのプログラムにしたがって、モデル生成部６０１、及び、最適配置計算部６０２として動作してもよい。
また、前述のプログラムのコードを記録した記録媒体（又は記憶媒体）が、分散処理管理サーバ６００に供給され、分散処理管理サーバ６００が記録媒体に格納されたプログラムのコードを読み出し実行してもよい。すなわち、本発明は、第６の実施の形態における分散処理管理サーバ６００が実行するためのソフトウェア（情報処理プログラム）を一時的に記憶する又は非一時的に記憶する記録媒体６９８も含む。
図３９は、第６の実施の形態における分散処理管理サーバ６００の動作の概要を示すフローチャートである。
モデル生成部６０１は、処理サーバを示す識別子の集合、データ所在情報の集合、及び、入出力通信路情報を取得する（ステップＳ６０１）。
モデル生成部６０１は、取得したデータ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する（ステップＳ６０２）。
最適配置計算部６０２は、一以上のデータが特定されると、モデル生成部６０１が生成したネットワークモデルに基づいて、前述のデータを処理する一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となるデータフロー情報を生成する（ステップＳ６０３）。
第６の実施の形態における分散処理管理サーバ６００は、データ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する。データ所在情報とは、データの識別子とそのデータを記憶するデータサーバの識別子とを対応付けた情報である。また、入出力通信路情報は、データサーバと処理サーバとを接続するネットワークを構成する装置の識別子とその装置間の通信路における可用帯域を示す帯域情報とを対応付けた情報である。
ネットワークモデルは、以下の特徴を有する。第一に、このネットワークモデルは、装置及びデータのそれぞれがノードとして表されている。第二に、このネットワークモデルは、あるデータ所在情報で示されるデータ及びデータサーバを表すノードの間が辺で接続されている。第三に、このネットワークモデルは、ある入出力通信路情報に含まれる識別子で示される装置を表すノードの間が辺で接続され、その辺に対して前述のある入出力通信路情報に含まれる帯域情報が制約条件として設定されている。
分散処理管理サーバ６００は、一以上のデータが特定されると、その特定されたデータと前述のネットワークモデルとに基づいて、データフロー情報を生成する。データフロー情報とは、一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前述の処理サーバと、前述の特定されたデータとの経路及びその経路のデータ流量を示す情報である。
よって第６の実施の形態における分散処理管理サーバ６００は、複数のデータサーバと複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける一以上の処理サーバにおける総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
［第６の実施の形態の第１の変形例］
図４０は、第６の実施の形態の第１の変形例における分散システム６５０の構成を示すブロック図である。
図４０を参照すると、分散システム６５０は、第６の実施の形態における分散処理管理サーバ６００、複数の処理サーバ６３０、及び、複数のデータサーバ６４０を包含し、それぞれがネットワーク６７０によって接続される。ネットワーク６７０は、ネットワークスイッチを含んでもよい。
第６の実施の形態の第１の変形例における分散システム６５０は第６の実施の形態における分散処理管理サーバ６００と同様の機能を少なくとも有する。よって、第６の実施の形態の第１の変形例における分散システム６５０は、第６の実施の形態における分散処理管理サーバ６００と同様の効果を奏する。
［［各実施の形態についての具体例に即した説明］］
［第１の実施の形態の具体例］
図４１は、本具体例で使用される分散システム３５０の構成を示す。本分散システム３５０は、スイッチｓｗ１及びｓｗ２で接続されたサーバｎ１乃至ｎ４で構成される。
サーバｎ１乃至ｎ４は、状況に応じ処理サーバ３３０としてもデータサーバ３４０としても機能する。サーバｎ１乃至ｎ４は、処理データ格納部３４２として、ディスクＤ１乃至Ｄ４をそれぞれ備える。本図において、サーバｎ１乃至ｎ４のいずれかが、分散処理管理サーバ３００として機能する。サーバｎ１は利用可能な処理実行部３３２としてｐ１及びｐ２を、サーバｎ３は利用可能な処理実行部３３２としてｐ３を備える。
図４２は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報の一例を示す。本具体例では、サーバｎ１の処理実行部ｐ１及びｐ２と、サーバｎ３の処理実行部ｐ３が利用可能である。
図４３は、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０に格納される情報の一例を示す。ディスクの入出力帯域及び各サーバのネットワーク帯域は１００ＭＢ／ｓ、スイッチｓｗ１及びｓｗ２間のネットワーク帯域は１０００ＭＢ／ｓである。本具体例における通信は全二重で行われることが想定されている。よって本具体例では、ネットワーク帯域は入力側と出力側とで独立していると仮定される。
図４４は、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報の一例を示す。当該情報は、ファイルｄａ、ｄｂ、ｄｃ、及び、ｄｄに分割されている。ファイルｄａ及びｄｂは、サーバｎ１のディスクＤ１内に、ファイルｄｃは、サーバｎ２のディスクＤ２内に、ファイルｄｄは、サーバｎ３のディスクＤ３内にそれぞれ格納されている。論理データ集合ＭｙＤａｔａＳｅｔ１は、単純に分散配置され、多重化処理がされていないデータ集合である。
クライアントによってＭｙＤａｔａＳｅｔ１を使用するプログラムの実行が指示されたとき、分散処理管理サーバ３００のサーバ状態格納部３０６０、入出力通信路情報格納部３０８０、及び、データ所在格納部３０７０が、それぞれ図４２、図４３、及び、図４４に示す状態であったとする。
分散処理管理サーバ３００のモデル生成部３０１は、図４４のデータ所在格納部３０７０から、データが格納されているデバイス（例えば処理データ格納部３４２）の識別子の集合として｛Ｄ１，Ｄ２，Ｄ３｝を得る。次に、モデル生成部３０１は、図４２のサーバ状態格納部３０６０から、データサーバ３４０の識別子の集合として｛ｎ１，ｎ２，ｎ３｝を、処理サーバ３３０の識別子の集合として｛ｎ１，ｎ３｝を得る。また、モデル生成部３０１は、利用可能な処理実行部３３２の識別子の集合として｛ｐ１，ｐ２，ｐ３｝を得る。
次に、分散処理管理サーバ３００のモデル生成部３０１は、処理サーバ３３０の識別子の集合、処理実行部３３２の識別子の集合、及び、データサーバ３４０の識別子の集合を基に、図４３の入出力通信路情報格納部３０８０に格納されている情報に基づいて、ネットワークモデル（Ｇ，ｕ，ｓ，ｔ）を生成する。
図４５は、本具体例でモデル生成部３０１が生成する、モデル情報の表を示す。図４６は、図４５が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図を示す。図４６で示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ３００の最適配置計算部３０２は、図４５のモデル情報の表を基に、［数１］の（２）式、及び（３）式の制約のもとで、［数１］の（１）式の目的関数の最大化を行う。図４７Ａ乃至４７Ｇは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部３０２は、図４７Ａに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）において、始点ｓから終点ｔまでの経路のうち経路に含まれるノード（端点）が最小の経路を特定する。すなわち最適配置計算部３０２は、始点ｓから終点ｔまでの経路のうちホップ数が最小の経路を特定する。そして最適配置計算部３０２は、特定された経路において流せる最大のデータ流量（フロー）を特定し、そのフローを当該経路に流すことを仮定する。
具体的には、最適配置計算部３０２は、図４７Ｂに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄａ，Ｄ１，ＯＮ１，ｎ１，ｐ１，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図４７Ｃに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
ネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフとは、グラフＧにおける流量が非ゼロの全ての辺ｅ０が、その辺で示される現実の又は仮想的な経路において利用可能な残り帯域を示す順方向の辺ｅ１と、削減可能な使用帯域を示す逆方向の辺ｅ２と、に分解されたグラフである。順方向とはｅ０が示す方向と同一の方向である。また逆方向とは、ｅ０が示す方向と逆の方向である。すなわち辺ｅの逆方向の辺ｅ’とは、グラフＧの頂点ｖから頂点ｗへ向かって接続する辺ｅに対する、ｗからｖへ向かう辺ｅ’を指す。
残余グラフ上の始点ｓから終点ｔまでのフロー増加路とは、残容量関数ｕｆに対し、ｕｆ（ｅ）＞０である辺ｅ及びｕｆ（ｅ’）＞０である、辺ｅの逆方向の辺ｅ’で構成されたｓからｔまでの経路を指す。残容量関数ｕｆは順方向の辺ｅと逆方向の辺ｅ’の残り容量を示す関数である。残容量関数ｕｆは次の［数３］で定義される。
【数３】
0005850054.tif 000004
次に最適配置計算部３０２は、図４７Ｃに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図４７Ｃに示される残余グラフに基づいて、図４７Ｄに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｄ，Ｄ３，ＯＮ３，ｎ３，ｐ３，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図４７Ｅに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図４７Ｅに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図４７Ｅに示される残余グラフに基づいて、図４７Ｆに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｃ，Ｄ２，ＯＮ２，ｓｗ１，ｎ１，ｐ２，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図４７Ｇに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
図４７Ｇを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部３０２は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図４８は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ３００の処理割当部３０３は、処理プログラムをｎ１及びｎ３に送信する。さらに、処理割当部３０３は、処理サーバｎ１及びｎ３に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバｎ１は、データサーバｎ１の処理データ格納部３４２内のファイルｄａを取得する。処理実行部ｐ１は取得したファイルｄａの処理を実行する。また、処理サーバｎ１は、データサーバｎ２の処理データ格納部３４２内のファイルｄｃを取得する。処理実行部ｐ２は、取得したファイルｄｃの処理を実行する。処理サーバｎ３は、データサーバｎ３の処理データ格納部３４２内のファイルｄｄを取得する。処理実行部ｐ３は取得したファイルｄｄの処理を実行する。図４９は、図４８のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
［第２の実施の形態の具体例］
第２の実施の形態の具体例を説明する。本実施の形態の具体例は、第１の実施の形態の具体例を基に、差分を示すことで説明される。
図５０は、本具体例で使用される分散システム３５０の構成を示す。本分散システム３５０は、第１の実施の形態と同様に、スイッチｓｗ１及びｓｗ２で接続されたサーバｎ１乃至ｎ４で構成される。
分散処理管理サーバ３００が備える、サーバ状態格納部３０６０と、入出力通信路情報格納部３０８０の状態は、第１の実施の形態の具体例と同一であるとする。すなわち、図４２は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報を、図４３は、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０に格納される情報をそれぞれ示す。
図５１は、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報の一例を示す。本具体例で実行されるプログラムは、論理データ集合ＭｙＤａｔａＳｅｔ１を入力として与えられる。当該論理データ集合は、ファイルｄａ、ｄｂ、及び、ｄｃに分割されている。ファイルｄａ及びｄｂは、２重化されている。ファイルｄａのデータの実体は、サーバｎ１のディスクＤ１と、サーバｎ２のディスクＤ２に、それぞれ格納されている。データの実体とは、多重化された部分データのそれぞれであり、データ要素である。ファイルｄｂのデータの実体は、サーバｎ１のディスクＤ１と、サーバｎ３のディスクＤ３に、それぞれ格納されている。ファイルｄｃは多重化されておらず、そのファイルｄｃはサーバｎ３のディスクＤ３に格納されている。
クライアントによってＭｙＤａｔａＳｅｔ１を使用するプログラムの実行が指示されたとき、分散処理管理サーバ３００のサーバ状態格納部３０６０、及び、入出力通信路情報格納部３０８０、データ所在格納部３０７０が、それぞれ図４２、図４３、及び、図５１に示す状態であったとする。
分散処理管理サーバ３００のモデル生成部３０１は、図５１のデータ所在格納部３０７０から、データが格納されているデバイス（例えば処理データ格納部３４２）の識別子の集合として｛Ｄ１，Ｄ２，Ｄ３｝を得る。次に、モデル生成部３０１は、図４２のサーバ状態格納部３０６０から、データサーバ３４０の識別子の集合として｛ｎ１，ｎ２，ｎ３｝を、処理サーバ３３０の識別子の集合として｛ｎ１，ｎ３｝を得る。また、モデル生成部３０１は、利用可能な処理実行部３３２の識別子の集合として｛ｐ１，ｐ２，ｐ３｝を得る。
次に、分散処理管理サーバ３００のモデル生成部３０１は、処理サーバ３３０の識別子の集合、処理実行部３３２の識別子の集合、及び、データサーバ３４０の識別子の集合を基に、図４３の入出力通信路情報格納部３０８０に格納されている情報に基づいて、ネットワークモデル（Ｇ，ｕ，ｓ，ｔ）を生成する。
図５２は、本具体例でモデル生成部３０１が生成する、モデル情報の表を示す。図５３は、図５２が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図を示す。図５３で示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ３００の最適配置計算部３０２は、図５２のモデル情報の表を基に、［数１］の（２）式、及び、（３）式の制約のもとで、［数１］の（１）式の目的関数の最大化を行う。図５４Ａ乃至５４Ｇは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部３０２は、図５４Ａに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）において、図５４Ｂに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｂ，ｄｂ１，Ｄ１，ＯＮ１，ｎ１，ｐ１，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図５４Ｃに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図５４Ｃに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図５４Ｃに示される残余グラフに基づいて、図５４Ｄに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｃ，ｄｃ１，Ｄ３，ＯＮ３，ｎ３，ｐ３；ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図５４Ｅに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図５４Ｅに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図５４Ｅに示される残余グラフに基づいて、図５４Ｆに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄａ，ｄａ２，Ｄ２，ＯＮ２，ｓｗ１，ｎ１，ｐ２，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図５４Ｇに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
図５４Ｇを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部３０２は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図５５は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ３００の処理割当部３０３は、処理プログラムをｎ１及びｎ３に送信する。さらに、処理割当部３０３は、処理サーバｎ１及びｎ３に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバｎ１は、データサーバｎ１の処理データ格納部３４２内のファイルｄｂのデータの実体ｄｂ１を取得する。処理実行部ｐ１は、取得したデータの実体ｄｂ１を実行する。また、処理サーバｎ１は、データサーバｎ２の処理データ格納部３４２内のファイルｄａのデータの実体ｄａ２を取得する。処理実行部ｐ２は、取得したデータの実体ｄａ２を実行する。処理サーバｎ３は、データサーバｎ３の処理データ格納部３４２内のファイルｄｃを取得する。処理実行部ｐ３は、取得したファイルｄｃを実行する。図５６は、図５５のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
［第３の実施の形態の具体例］
第３の実施の形態の具体例を説明する。本実施の形態の具体例は、第１の実施の形態の具体例を基に、差分を示すことで説明される。
本具体例で使用する分散システム３５０の構成と、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０の状態は、第１の実施の形態の具体例と同一であるとする。すなわち、図４１は、分散システム３５０の構成を、図４３は、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０に格納される情報をそれぞれ示す。
図５７は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報の一例を示す。本具体例では、サーバｎ１の処理実行部ｐ１及びｐ２と、サーバｎ３の処理実行部ｐ３が利用可能である。本具体例では、サーバ状態格納部３０６０の構成情報３０６３は、各処理サーバのＣＰＵ周波数で示される。
本具体例では処理サーバの構成が同一ではない。可用処理実行部ｐ１、ｐ２、及び、ｐ３を備える処理サーバｎ１及びｎ２について、処理サーバｎ１のＣＰＵは３ＧＨｚ、処理サーバｎ２のＣＰＵは１ＧＨｚである。本具体例では、１ＧＨｚ当たりの単位時間の処理量が５０ＭＢ／ｓであると設定されている。すなわち、処理サーバｎ１は合計で１５０ＭＢ／ｓ、処理サーバｎ３は合計で５０ＭＢ／ｓ処理できる。
クライアントによってＭｙＤａｔａＳｅｔ１を使用するプログラムの実行が指示されたとき、分散処理管理サーバ３００のサーバ状態格納部３０６０、入出力通信路情報格納部３０８０、及び、データ所在格納部３０７０が、それぞれ図５７、図４３、及び、図４４に示す状態であったとする。
分散処理管理サーバ３００のモデル生成部３０１は、図４４のデータ所在格納部３０７０から、データが格納されているデバイスの集合として｛Ｄ１，Ｄ２，Ｄ３｝を得る。次に、モデル生成部３０１は、図５７のサーバ状態格納部３０６０から、データサーバ３４０の集合として｛ｎ１，ｎ２，ｎ３｝を、処理サーバ３３０の集合として｛ｎ１，ｎ３｝を得る。また、モデル生成部３０１は、利用可能な処理実行部３３２の集合として｛ｐ１，ｐ２，ｐ３｝を得る。
次に、分散処理管理サーバ３００のモデル生成部３０１は、処理サーバ３３０の識別子の集合、処理実行部３３２の識別子の集合、及び、データサーバ３４０の識別子の集合を基に、図４３の入出力通信路情報格納部３０８０に格納されている情報に基づいて、ネットワークモデル（Ｇ，ｕ，ｓ，ｔ）を生成する。
図５８は、本具体例でモデル生成部３０１が生成する、モデル情報の表を示す。図５９は、図５８が示すモデル情報の表が示すネットワーク（Ｇ，ｕ，ｓ，ｔ）の概念図を示す。図５９で示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ３００の最適配置計算部３０２は、図５８のモデル情報の表を基に、［数１］の（２）式、及び、（３）式の制約のもとで、［数１］の（１）式の目的関数の最大化を行う。図６０Ａ乃至６０Ｇは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部３０２は、図６０Ａに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）において、図６０Ｂに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄａ，Ｄ１，ＯＮ１，ｎ１，ｐ１，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図６０Ｃに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図６０Ｃに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図６０Ｃに示される残余グラフに基づいて、図６０Ｄに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｄ，Ｄ３，ＯＮ３，ｎ３，ｐ３，ｔ）に５０ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図６０Ｅに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図６０Ｅに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図６０Ｅに示される残余グラフに基づいて、図６０Ｆに示されるように、経路（ｓ，ＭｙＤａｔａＳｅｔ１，ｄｃ，Ｄ２，ＯＮ２，ｓｗ１，ｎ１，ｐ２，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図６０Ｇに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。
図６０Ｇを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部３０２は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図６１は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ３００の処理割当部３０３は、処理プログラムをｎ１及びｎ３に送信する。さらに、処理割当部３０３は、処理サーバｎ１及びｎ３に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバｎ１は、データサーバｎ１の処理データ格納部３４２内のファイルｄａを取得する。処理実行部ｐ１は、取得したファイルｄａを実行する。また、処理サーバｎ１は、データサーバｎ２の処理データ格納部３４２内のファイルｄｃを取得する。処理実行部ｐ２は、取得したファイルｄｃを実行する。処理サーバｎ３は、データサーバｎ３の処理データ格納部３４２内のファイルｄｄを取得する。処理実行部ｐ３は、取得したファイルｄｄを実行する。図６２は、図６１のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
［第４の実施の形態の具体例］
第４の実施の形態の具体例を説明する。本実施の形態の具体例は、第１の実施の形態の具体例を基に、差分を示すことで説明される。
図６３は、本具体例で使用される分散システム３５０の構成を示す。本分散システム３５０は、第１の実施の形態と同様に、スイッチｓｗ１及びｓｗ２で接続されたサーバｎ１乃至ｎ４で構成される。
図６４は、分散処理管理サーバ３００が備える、サーバ状態格納部３０６０に格納される情報を示す。本具体例では、サーバｎ１の処理実行部ｐ１と、サーバｎ２の処理実行部ｐ２及びｐ３が利用可能である。
図６５は、分散処理管理サーバ３００が備える、ジョブ情報格納部３０４０に格納される情報を示す。本具体例では、プログラムを実行する単位として、ジョブＭｙＪｏｂ１とジョブＭｙＪｏｂ２が投入されている。
図６６は、分散処理管理サーバ３００が備える、データ所在格納部３０７０に格納される情報を示す。図６６を参照すると、データ所在格納部３０７０は、論理データ集合ＭｙＤａｔａＳｅｔ１とＭｙＤａｔａＳｅｔ２とをそれぞれ格納している。ＭｙＤａｔａＳｅｔ１はファイルｄａ及びｄｂに、ＭｙＤａｔａＳｅｔ２はｄｃ及びｄｄに、それぞれ分割されている。ファイルｄａは、サーバｎ１のディスクＤ１内に、ファイルｄｂは、サーバｎ２のディスクＤ２内に、ファイルｄｃ及びｄｄは、サーバｎ３のディスクＤ３内に、それぞれ格納されている。ＭｙＤａｔａＳｅｔ１及びＭｙＤａｔａＳｅｔ２は、単純に分散配置され、多重化処理がされていないデータ集合である。
本具体例で使用する分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０の状態は、第１の実施の形態の具体例と同一であるとする。すなわち、図４３は、分散処理管理サーバ３００が備える、入出力通信路情報格納部３０８０に格納される情報を示す。
クライアントによってＭｙＤａｔａＳｅｔ１を使用するジョブＭｙＪｏｂ１と、ＭｙＤａｔａＳｅｔ２を使用するジョブＭｙＪｏｂ２の実行が指示されたとき、分散処理管理サーバ３００のジョブ情報格納部３０４０、サーバ状態格納部３０６０、入出力通信路情報格納部３０８０、及び、データ所在格納部３０７０が、それぞれ図６５、図６４、図４３、及び、図６６に示す状態であったとする。
分散処理管理サーバ３００のモデル生成部３０１は、図６５のジョブ情報格納部３０４０から、現在実行が指示されているジョブの集合として｛ＭｙＪｏｂ１，ＭｙＪｏｂ２｝を得る。モデル生成部３０１は、ジョブそれぞれに対して、ジョブが使用する論理データ集合名、最低単位処理量及び最大単位処理量を取得する。
次に、分散処理管理サーバ３００のモデル生成部３０１は、図６６のデータ所在格納部３０７０から、データが格納されているデバイスの識別子の集合として｛Ｄ１，Ｄ２，Ｄ３｝を得る。次に、モデル生成部３０１は、図６４のサーバ状態格納部３０６０から、データサーバ３４０の識別子の集合として｛ｎ１，ｎ２，ｎ３｝を、処理サーバ３３０の識別子の集合として｛ｎ１，ｎ２｝を得る。また、モデル生成部３０１は、利用可能な処理実行部３３２の識別子の集合として｛ｐ１，ｐ２，ｐ３｝を得る。
次に、分散処理管理サーバ３００のモデル生成部３０１は、ジョブの集合、処理サーバ３３０の識別子の集合、処理実行部３３２の識別子の集合、及び、データサーバ３４０の識別子の集合を基に、図４３の入出力通信路情報格納部３０８０に格納された情報に基づいて、ネットワークモデル（Ｇ，ｌ，ｕ，ｓ，ｔ）を生成する。
図６７は、本具体例でモデル生成部３０１が生成する、モデル情報の表を示す。図６８は、図６７が示すモデル情報の表が示すネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）の概念図を示す。図６８で示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ３００の最適配置計算部３０２は、図６７のモデル情報の表を基に、［数１］の（２）式、及び、（３）式の制約のもとで、［数１］の（１）式の目的関数の最大化を行う。図６９Ａ乃至６９Ｆ及び図７０Ａ乃至７０Ｆは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
図６９Ａ乃至６９Ｆは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
まず、最適配置計算部３０２は、図６９Ａに示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）に対し、仮想始点ｓ＊、及び仮想終点ｔ＊を設定する。そして最適配置計算部３０２は、流量制限がなされている辺の新たな流量上限値を、変更前の流量上限値と流量下限値との差分値として設定する。また最適配置計算部３０２は当該辺の新たな流量下限値を、０に設定する。最適配置計算部３０２は、以上の処理をネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）に対して行うことで図６９Ｂに示されるネットワーク（Ｇ’，ｕ’，ｓ＊，ｔ＊）を得る。
最適配置計算部３０２は、流量制限がなされている当該辺の終点と仮想始点ｓ＊との間、及び、当該辺の始点と仮想終点ｔ＊との間をそれぞれ接続する。具体的には、前述の各頂点の間に、所定の流量上限値が設定された辺が追加される。この所定の流量上限値とは、流量制限がなされている当該辺に設定されていた変更前の流量下限値である。また、最適配置計算部３０２は、終点ｔと始点ｓとの間を接続する。具体的には終点ｔと始点ｓとの間に、流量上限値が無限大である辺が追加される。最適配置計算部３０２は、図６９Ｂに示されたネットワークに対して以上の処理を行うことで、図６９Ｃに示されるネットワーク（Ｇ’，ｕ’，ｓ＊，ｔ＊）を得る。
最適配置計算部３０２は、図６９Ｃに示されるネットワーク（Ｇ’，ｕ’，ｓ＊，ｔ＊）に対して、ｓ＊から出る辺及びｔ＊に入る辺の流量が飽和するｓ＊−ｔ＊−フローを求める。なお、該当するフローが存在しないことは、下限流量の制限を満たす解が元のネットワークにないことを示している。本例の場合、図６９Ｄに示される経路（ｓ＊，ＭｙＪｏｂ２，ＭｙＤａｔａＳｅｔ２，ｄｂ，Ｄ２，ＯＮ２，ｎ２，ｐ３，ｔ，ｓ，ｔ＊）が該当する経路に相当する。
最適配置計算部３０２は、ネットワーク（Ｇ’，ｕ’，ｓ＊，ｔ＊）から、追加した頂点及び辺を削除し、流量制限がなされている当該辺の流量制限値を変更前の元の値に戻す。そして最適配置計算部３０２は、流量制限がなされている当該辺に対し、流量下限値の分だけフローを流すことを仮定する。具体的には最適配置計算部３０２は、図６９Ａに示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）において、図６９Ｅに示されるように、前述の経路から現実のフローのみを残し、さらに流量制限がなされている当該辺が前述の現実のフローに追加された経路（ｓ，ＭｙＪｏｂ２，ＭｙＤａｔａＳｅｔ２，ｄｂ，Ｄ２，ＯＮ２，ｎ２，ｐ３，ｔ）を特定する。そして最適配置計算部３０２は、経路（ｓ，ＭｙＪｏｂ２，ＭｙＤａｔａＳｅｔ２，ｄｂ，Ｄ２，ＯＮ２，ｎ２，ｐ３，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図６９Ｆに示されるネットワーク（Ｇ，ｕ，ｓ，ｔ）の残余グラフを特定する。この経路（ｓ，ＭｙＪｏｂ２，ＭｙＤａｔａＳｅｔ２，ｄｂ，Ｄ２，ＯＮ２，ｎ２，ｐ３，ｔ）が、下限流量制限を満たす初期フロー（図７０Ａ）である。
次に最適配置計算部３０２は、図７０Ｂ（図６９Ｆと同様）に示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図７０Ｂに示される残余グラフに基づいて、図７０Ｃに示されるように、経路（ｓ，ＭｙＪｏｂ１，ＭｙＤａｔａＳｅｔ１，ｄａ，Ｄ１，ＯＮ１，ｎ１，ｐ１，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図７０Ｄに示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）の残余グラフを特定する。
次に最適配置計算部３０２は、図７０Ｄに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部３０２は、図７０Ｄに示される残余グラフに基づいて、図７０Ｅに示されるように、経路（ｓ，ＭｙＪｏｂ２，ＭｙＤａｔａＳｅｔ２，ｄｃ，Ｄ３，ＯＮ３，ｓｗ２，ｓｗ１，ｎ２，ｐ２，ｔ）に１００ＭＢ／ｓのフローを流すことを仮定する。すると、最適配置計算部３０２は、図７０Ｆに示されるネットワーク（Ｇ，ｌ，ｕ，ｓ，ｔ）の残余グラフを特定する。
図７０Ｆを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部３０２は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図７１は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ３００の処理割当部３０３は、処理プログラムをｎ１及びｎ２に送信する。さらに、処理割当部３０３は、処理サーバｎ１及びｎ２に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバｎ１は、データサーバｎ１の処理データ格納部３４２内のファイルｄａを取得する。処理実行部ｐ１は、取得したファイルｄａを実行する。処理サーバｎ２は、データサーバｎ３の処理データ格納部３４２内のファイルｄｃを取得する。処理実行部ｐ２は、取得したファイルｄｃを実行する。また、処理サーバｎ２は、データサーバｎ２の処理データ格納部３４２内のファイルｄｂを取得する。処理実行部ｐ３は、取得したファイルｄｂを実行する。図７２は、図７１のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
［第５の実施の形態の具体例］
第５の実施の形態の具体例を説明する。本実施の形態の具体例は、第１の実施の形態の具体例を基に、差分を示すことで説明される。
本具体例では、第１の実施の形態の具体例において、処理サーバ３３０への受信データ割り当てが実施された後に、入出力通信路情報格納部３０８０の格納情報が更新される。
図７３は、本具体例において、分散処理管理サーバ３００の処理割当部３０３が、処理サーバ３３０への受信データ割り当てを実施した後に、図４８のデータフロー情報を基に更新した、入出力通信路情報格納部３０８０が格納する情報の一例を示す。処理割当部３０３は、データフローＦｌｏｗ１で１００ＭＢ／ｓのデータ転送を指示した結果、Ｄ１とＯＮ１を接続する入出力経路Ｄｉｓｋ１の可用帯域を１００ＭＢ／ｓから０ＭＢ／ｓに変更する。次に、処理割当部３０３は、データフローＦｌｏｗ２で１００ＭＢ／ｓのデータ転送を指示した結果、Ｄ３とＯＮ３を接続する入出力経路Ｄｉｓｋ２の可用帯域を１００ＭＢ／ｓから０ＭＢ／ｓに変更する。次に、処理割当部３０３は、データフローＦｌｏｗ３で１００ＭＢ／ｓのデータ転送を指示した結果、以下の通りにデータを変更する。第一に、処理割当部３０３は、Ｄ２とＯＮ２を接続する入出力経路Ｄｉｓｋ３の可用帯域を１００ＭＢ／ｓから０ＭＢ／ｓに変更する。第二に、処理割当部３０３は、ＯＮ２とｓｗ１を接続する入出力経路ＯｕｔＮｅｔ２を１００ＭＢ／ｓから０ＭＢ／ｓに変更する。第三に、処理割当部３０３は、ｓｗ１とｎ１を接続する入出力経路ＩｎＮｅｔ１の可用帯域を１００ＭＢ／ｓから０ＭＢ／ｓに変更する。
本発明の効果の一例は、データを記憶する複数のデータサーバと当該データを処理する複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバの総処理データ量を最大化するデータ転送経路を決定できることである。
以上、各実施の形態及び実施例を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
また、本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
上記の各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、を備える分散処理管理サーバ。
（付記２）
付記１に記載の分散処理管理サーバであって、
前記モデル生成手段は、始点を表すノードとデータを表すノードとの間が辺で接続され、終点を表すノードと処理サーバ又は当該処理サーバが備えるデータを処理する処理実行手段を表すノードとの間が辺で接続され、前記処理サーバと当該処理サーバが備える前記処理実行手段との間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記始点から前記終点へ流すことのできる単位時間当たりの最大のデータ量を計算することによって前記データフロー情報を生成する、分散処理管理サーバ。
（付記３）
付記１又は２に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上のデータ要素を含む論理データ集合及び当該データ要素のそれぞれがノードで表され、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、一以上の論理データ集合が特定されると、処理サーバを示す識別子の前記集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各論理データ集合との経路及び当該経路のデータ流量を示す前記データフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理サーバ。
（付記４）
付記３に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記論理データ集合は一以上の部分データを含み、当該部分データは一のデータが多重化されたデータのそれぞれであり、当該部分データは、それぞれ一以上のデータ要素を含み、
前記モデル生成手段は、一以上のデータ要素を含む部分データ及び当該データ要素のそれぞれがノードで表され、部分データ及び当該部分データに含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記処理割当手段は、前記データフロー情報が示す各経路のうち、一の部分データを示すノードを含む経路のデータ流量に基づいて、各処理サーバが取得するデータの単位時間当たりのデータ処理量を特定する、分散処理管理サーバ。
（付記５）
付記１乃至４のいずれか１項に記載の分散処理管理サーバであって、
前記モデル生成手段は、各処理サーバが備える処理実行手段及び当該処理サーバのそれぞれがノードで表され、処理サーバ及び当該処理サーバが備える処理実行手段を表すノードの間が辺で接続され、当該処理実行手段を表すノードと終点とが辺で接続され当該辺に対して当該処理実行手段が単位時間当たりに処理するデータ処理量に対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
（付記６）
付記２に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上の論理データ集合に対応付けられているジョブのそれぞれがノードで表され、ジョブ及び当該ジョブに対応付けられる論理データ集合をそれぞれ表すノードの間が辺で接続され、前記始点及び各ジョブを表すノードの間が辺で接続され当該辺に対して当該辺に接続されるジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
（付記７）
付記１又は２に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記処理割当手段は、前記データフロー情報で示される各経路のデータ流量を、当該経路における可用帯域から減算し、減算された結果の値を当該経路の新たな可用帯域として、前記モデル生成手段が使用する可用帯域を更新する、分散処理管理サーバ。
（付記８）
付記６に記載の分散処理管理サーバであって、
前記モデル生成手段は、ジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される辺の新たな制約条件が、前記最大値と前記最小値との差を上限値に、０を下限値にそれぞれ設定され、仮想始点を示すノードと前記辺に接続されているジョブを示すノードの間が仮想辺で接続され当該仮想辺に対して前記最小値が制約条件として設定され、前記始点を示すノードと仮想終点を示すノードとの間が辺で接続され当該辺に対して前記最小値が制約条件として設定され、前記終点と前記始点との間が辺で接続される、前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記ネットワークモデルに基づいて、前記仮想始点から出る辺及び前記仮想終点に入る辺のデータ流量が飽和するフローを特定し、当該フローから、前記仮想始点を示すノードと前記ジョブを示すノードの間の辺、前記始点を示すノードと前記仮想終点を示すノードとの間の辺、及び、前記終点と前記始点との間の辺を除いたフローを前記データフロー情報に含まれる初期フローとして生成する、分散処理管理サーバ。
（付記９）
付記１乃至８に記載の分散処理管理サーバであって、
前記モデル生成手段は、辺で接続されるノードをそれぞれ表す装置の識別子と当該辺に対して設定される制約条件である最大単位処理量と最低単位処理量とを対応付けて格納する帯域制限情報格納手段に格納されている最大単位処理量と最低単位処理量とを、前記ネットワークを構成する装置を表すノードの間を接続している辺に対して制約条件として設定する、分散処理管理サーバ。
（付記１０）
付記３に記載の分散処理管理サーバであって、
前記モデル生成手段は、辺で接続される論理データ集合及びデータ要素のそれぞれの識別子と当該辺に対して設定される制約条件である最大単位処理量と最低単位処理量とを対応付けて格納する帯域制限情報格納手段に格納されている最大単位処理量と最低単位処理量とを、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間を接続している辺に対して制約条件として設定する、分散処理管理サーバ。
（付記１１）
データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、
分散処理管理サーバは、
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、
処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、
データサーバは、データを格納する処理データ格納手段を備える、分散システム。
（付記１２）
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理方法。
（付記１３）
コンピュータに、
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成する処理と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する処理と、を実行させるための分散処理管理プログラムを格納する、コンピュータが読み取り可能な記憶媒体。
この出願は、２０１１年８月１日に出願された日本出願特願２０１１−１６８２０３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００１０】
本発明による分散処理管理サーバは、複数のデータサーバに格納されたデータを複数の処理サーバで並列処理を行う分散システムに適用できる。また、本発明による分散処理管理サーバは、分散処理を行うデータベースシステムやバッチ処理システムといった用途にも適用できる。
【符号の説明】
【００１１】
１０１、１０２、１０３  スイッチ
１１１、１１２  コンピュータ
１２１、１２２  ラック
１３１、１３２  データセンタ
１４１  拠点間通信網
２０２、２０３  スイッチ
２０４、２０５、２０６  記憶用ディスク
２０７、２０８、２０９、２２１  コンピュータ
２１０、２１１、２１２、２１３  処理対象のデータ
２１４、２１５、２１６  処理プロセス
２１７、２１８、２１９、２３０、２３１、２３２  データ送受信経路
２２０  表
３００  分散処理管理サーバ
３０１  モデル生成部
３０２  最適配置計算部
３０３  処理割当部
３２０  ネットワークスイッチ
３２１  スイッチ管理部
３２２  データ送受信部
３３０  処理サーバ
３３１  処理サーバ管理部
３３２  処理実行部
３３３  処理プログラム格納部
３３４  データ送受信部
３４０  データサーバ
３４１  データサーバ管理部
３４２  処理データ格納部
３４３  データ送受信部
３５０  分散システム
３６０  クライアント
３７０  ネットワーク
３９９  他のサーバ
３０４０  ジョブ情報格納部
３０４１  ジョブＩＤ
３０４２  論理データ集合名
３０４３  最低単位処理量
３０４４  最大単位処理量
３０６０  サーバ状態格納部
３０６１  サーバＩＤ
３０６２  負荷情報
３０６３  構成情報
３０６４  可用処理実行部情報
３０６５  処理データ格納部情報
３０７０  データ所在格納部
３０７１  論理データ集合名
３０７２  部分データ名
３０７３  分散形態
３０７４  データ記述
３０７５  データ要素ＩＤ
３０７６  デバイスＩＤ
３０７７  部分データ名
３０７８  サイズ
３０８０  入出力通信路情報格納部
３０８１  入出力経路ＩＤ
３０８２  可用帯域
３０８３  入力元デバイスＩＤ
３０８４  出力先デバイスＩＤ
３０９０  帯域制限情報格納部
３０９１  入力元デバイスＩＤ
３０９２  出力先デバイスＩＤ
３０９３  最低単位処理量
３０９４  最大単位処理量
３１００  帯域制限情報格納部
３１０１  論理データ集合名
３１０２  データ要素名
３１０３  最低単位処理量
３１０４  最大単位処理量
５００  モデル情報の表
６００  分散処理管理サーバ
６０１  モデル生成部
６０２  最適配置計算部
６３０  処理サーバ
６４０  データサーバ
６５０  分散システム
６７０  ネットワーク
６９１  ＣＰＵ
６９２  通信Ｉ／Ｆ
６９３  メモリ
６９４  記憶装置
６９５  入力装置
６９６  出力装置
６９７  バス
６９８  記録媒体
【図１Ａ】
0005850054.tif 000005
【図１Ｂ】
0005850054.tif 000006
【図２Ａ】
0005850054.tif 000007
【図２Ｂ】
0005850054.tif 000008
【図３】
0005850054.tif 000009
【図４】
0005850054.tif 000010
【図５】
0005850054.tif 000011
【図６】
0005850054.tif 000012
【図７】
0005850054.tif 000013
【図８Ａ】
0005850054.tif 000014
【図８Ｂ】
0005850054.tif 000015
【図９】
0005850054.tif 000016
【図１０】
0005850054.tif 000017
【図１１】
0005850054.tif 000018
【図１２】
0005850054.tif 000019
【図１３】
0005850054.tif 000020
【図１４】
0005850054.tif 000021
【図１５】
0005850054.tif 000022
【図１６】
0005850054.tif 000023
【図１７】
0005850054.tif 000024
【図１８Ａ】
0005850054.tif 000025
【図１８Ｂ】
0005850054.tif 000026
【図１９】
0005850054.tif 000027
【図２０】
0005850054.tif 000028
【図２１】
0005850054.tif 000029
【図２２】
0005850054.tif 000030
【図２３】
0005850054.tif 000031
【図２４】
0005850054.tif 000032
【図２５】
0005850054.tif 000033
【図２６】
0005850054.tif 000034
【図２７】
0005850054.tif 000035
【図２８Ａ】
0005850054.tif 000036
【図２８Ｂ】
0005850054.tif 000037
【図２８Ｃ】
0005850054.tif 000038
【図２９】
0005850054.tif 000039
【図３０】
0005850054.tif 000040
【図３１】
0005850054.tif 000041
【図３２】
0005850054.tif 000042
【図３３】
0005850054.tif 000043
【図３４】
0005850054.tif 000044
【図３５】
0005850054.tif 000045
【図３６】
0005850054.tif 000046
【図３７】
0005850054.tif 000047
【図３８】
0005850054.tif 000048
【図３９】
0005850054.tif 000049
【図４０】
0005850054.tif 000050
【図４１】
0005850054.tif 000051
【図４２】
0005850054.tif 000052
【図４３】
0005850054.tif 000053
【図４４】
0005850054.tif 000054
【図４５】
0005850054.tif 000055
【図４６】
0005850054.tif 000056
【図４７Ａ】
0005850054.tif 000057
【図４７Ｂ】
0005850054.tif 000058
【図４７Ｃ】
0005850054.tif 000059
【図４７Ｄ】
0005850054.tif 000060
【図４７Ｅ】
0005850054.tif 000061
【図４７Ｆ】
0005850054.tif 000062
【図４７Ｇ】
0005850054.tif 000063
【図４８】
0005850054.tif 000064
【図４９】
0005850054.tif 000065
【図５０】
0005850054.tif 000066
【図５１】
0005850054.tif 000067
【図５２】
0005850054.tif 000068
【図５３】
0005850054.tif 000069
【図５４Ａ】
0005850054.tif 000070
【図５４Ｂ】
0005850054.tif 000071
【図５４Ｃ】
0005850054.tif 000072
【図５４Ｄ】
0005850054.tif 000073
【図５４Ｅ】
0005850054.tif 000074
【図５４Ｆ】
0005850054.tif 000075
【図５４Ｇ】
0005850054.tif 000076
【図５５】
0005850054.tif 000077
【図５６】
0005850054.tif 000078
【図５７】
0005850054.tif 000079
【図５８】
0005850054.tif 000080
【図５９】
0005850054.tif 000081
【図６０Ａ】
0005850054.tif 000082
【図６０Ｂ】
0005850054.tif 000083
【図６０Ｃ】
0005850054.tif 000084
【図６０Ｄ】
0005850054.tif 000085
【図６０Ｅ】
0005850054.tif 000086
【図６０Ｆ】
0005850054.tif 000087
【図６０Ｇ】
0005850054.tif 000088
【図６１】
0005850054.tif 000089
【図６４】
0005850054.tif 000090
【図６５】
0005850054.tif 000091
【図６６】
0005850054.tif 000092
【図６７】
0005850054.tif 000093
【図６８】
0005850054.tif 000094
【図６９Ａ】
0005850054.tif 000095
【図６９Ｂ】
0005850054.tif 000096
【図６９Ｃ】
0005850054.tif 000097
【図６９Ｄ】
0005850054.tif 000098
【図６９Ｅ】
0005850054.tif 000099
【図６９Ｆ】
0005850054.tif 000100
【図７０Ａ】
0005850054.tif 000101
【図７０Ｂ】
0005850054.tif 000102
【図７０Ｃ】
0005850054.tif 000103
【図７０Ｄ】
0005850054.tif 000104
【図７０Ｅ】
0005850054.tif 000105
【図７０Ｆ】
0005850054.tif 000106
【図７１】
0005850054.tif 000107
【図７３】
0005850054.tif 000108
【図６２】
0005850054.tif 000109
【図６３】
0005850054.tif 000110
【図７２】
0005850054.tif 000111