(57)【要約】【課題】分散システムにおいて、データの処理時間が最小となるような処理サーバへの処理割り当てを行う技術を提供する。【解決手段】当該サーバ装置とデータの送信先候補のサーバ装置との転送可能量を含む情報を送信先候補とするサーバ装置毎に記憶する通信先格納手段と、当該サーバ装置を送信先候補とするサーバ装置から受信したメッセージ内の転送可能量と当該サーバ装置が記憶する転送可能量で値が小さい方を次のサーバ装置に送信するメッセージに設定し、当該サーバ装置がデータ処理手段を含む場合、当該サーバ装置の残存資源量に基づきデータを処理可能か判定し、処理可能であった場合、当該サーバの処理可能量を算出し、受信した転送可能量と処理可能量のうち値が小さい方を探索結果として出力する転送手段と、探索結果に基づきデータ通信経路を決定する通信先決定手段を有するサーバ装置を複数備える。【選択図】図２
2013214130.tif 000002
【特許請求の範囲】
【請求項１】
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数備え、
前記サーバ装置は、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１サーバ装置毎に記憶する通信先格納手段と、
当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信する、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段と、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信先決定手段を有する通信制御システム。
【請求項２】
請求項１に記載の通信制御システムにおいて、
前記転送手段は、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に基づき、前記識別子に対応する処理と当該処理の負荷値を特定し、前記負荷値と、当該サーバにおいて一定の時間で一定の負荷値をかけた場合の資源使用量と、前記残存資源量とに基づいて、前記判定および前記処理可能量の算出を行う通信制御システム。
【請求項３】
請求項１または２に記載の通信制御システムにおいて、
前記サーバ装置は、
前記処理対象データを格納する前記データ格納手段を含む任意の前記サーバ装置から、前記処理対象データを処理可能な前記データ処理手段を含む任意の前記サーバ装置までの、前記データ通信経路を示す経路表を記憶する経路表格納手段と、
当該通信制御システムの状態変化に応じて前記経路表を更新し、当該サーバ装置と接続されている全ての他の前記サーバ装置に対し、当該サーバ装置が更新した情報を送信する経路表更新手段をさらに有し、
前記通信先決定手段は、
前記経路表に基づき、最短距離で前記データを処理可能な前記データ装置までの前記データ転送経路を特定する通信制御システム。
【請求項４】
請求項３に記載の通信制御システムにおいて、
前記経路表更新手段は、
前記データ処理手段を有する前記サーバ装置の前記残存資源量の変化、または、前記サーバ装置間の前記転送可能量の変化に応じて、前記経路表を更新する通信制御システム。
【請求項５】
請求項１、３〜４のいずれか一項に記載の通信制御システムにおいて、
前記転送手段は、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に対応する処理において、単位時間当たりの前記処理可能量が大きい処理を優先して、前記処理を実行する前記サーバ装置を探索する処理割当要求を送信する通信制御システム。
【請求項６】
請求項１〜５のいずれか一項に記載の通信制御システムにおいて、
前記サーバ装置は、
当該サーバ装置が前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む出ノード情報と、当該サーバ装置に前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む入ノード情報とを格納するノード情報格納手段をさらに備え、
前記通信先決定手段は、
前記出ノード情報に含まれる前記第１サーバ装置の前記識別子と、前記入ノード情報に含まれる前記第２サーバ装置の前記識別子とに基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置と、前記処理対象データを処理する前記データ処理手段を含む前記サーバ装置の組み合わせを入れ替える通信制御システム。
【請求項７】
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数使用し、
前記サーバ装置が、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を前記第１サーバ装置毎に記憶する通信先格納手段から、前記転送可能量を含む情報を読み出し、
転送手段で、当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信し、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力し、
通信先決定手段で、前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信制御方法。
【請求項８】
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むコンピュータを、
当該コンピュータと、当該コンピュータが処理対象データの送信先候補とする他の前記コンピュータである第１コンピュータとの間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１コンピュータ毎に記憶する通信先格納手段、
当該コンピュータを前記送信先候補とする他の前記コンピュータである第２コンピュータから前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該コンピュータが前記通信先格納手段で記憶する前記第１コンピュータに対応する前記転送可能量のうち、値が小さい方を、前記第１コンピュータに送信するメッセージに設定して送信する、または、当該コンピュータが前記データ処理手段を含む場合、当該コンピュータの資源の余力を示す残存資源量に基づき、当該コンピュータで前記処理対象データを処理可能か否か判定し、当該コンピュータで処理可能であった場合、当該コンピュータが単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２コンピュータから受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記コンピュータから当該コンピュータまでのデータ通信経路を決定する通信先決定手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システム、通信制御方法、およびプログラムに関する。特に、本発明は、データが記憶されるサーバとそのデータを処理するサーバとが分散配置されているシステムにおける、単位時間当たりのデータ処理量の最大化を可能とする通信制御システム、通信制御方法、および、プログラムに関する。
【背景技術】
【０００２】
特許文献１は、複数の計算機に格納されたデータを処理させる計算サーバを決定する分散システムを開示する。この分散システムは、個々のデータを格納する計算機から最も近傍な利用可能計算サーバを逐次決定することによって、全てのデータの通信経路を決定する。
【０００３】
特許文献２は、複数のファイル転送要求が同時にあっても蓄積側においてファイルを入出力する速度が低下しない技術を開示する。
【０００４】
特許文献３は、一台の計算機に格納されたデータを一台のクライアントに転送するに際して、転送処理に用いられる中継サーバを移動させるシステムを開示する。このシステムは、データを転送するのに要する各計算機と各クライアントとの間のデータ転送時間を算出し、算出したデータ転送時間に基づいて中継サーバを移動させる。
【０００５】
特許文献４は、ファイル転送元マシンからファイル転送先マシンへのファイル転送時に、そのファイルが転送される転送経路の回線速度と負荷状況に応じて、そのファイルを分割し、その分割されたファイルを転送するシステムを開示する。
【０００６】
特許文献５は、様々な速度が指定されるストリーム入出力要求に対して、使用効率の良い資源の割り当てを短時間で決定するストリーム処理装置を開示する。
【０００７】
特許文献６は、複数の計算機に対して、データを格納したファイルシステムにアクセスする複数のＩ／Ｏノードの占有率を、ジョブの実行過程に応じて動的に変更するシステムを開示する。
【０００８】
特許文献７は、トークンリングネットワークにおける帯域幅や遅延を保証するためのアクセス統制システムを開示する。
【０００９】
特許文献８は、プロキシサーバを介したサーバスループット予約システムを開示する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第７６５０３３１号明細書
【特許文献２】特開２００８−１１７０９１号公報
【特許文献３】特開平８−２０２７２６号公報
【特許文献４】特許第３３９０４０６号公報
【特許文献５】特開平８−１４７２３４号公報
【特許文献６】特許第４５６９８４６号公報
【特許文献７】特許第２５９２２１３号公報
【特許文献８】特許第３７０７９２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の技術は、データを記憶するデータサーバから処理を行う処理サーバへのデータ転送時間を逐次的に最小化する。この決定は、必ずしもデータの処理時間を最小化しない。すなわち、本技術で決定される割り当てよりも、データの処理時間が短くなるような割り当てが可能である場合がある。また本技術は、特定の計算機に負荷の高い処理が集中して、処理時間が長くなるという問題がある。さらに、マスタ装置という特定のコンピュータに情報収集、決定処理が集中して、大規模システムに於いてボトルネックが発生したり、このコンピュータの障害発生時にシステム全体に及ぼす影響が大きかったりという問題がある。
【００１２】
特許文献２の技術は、ファイルの転送速度の低下を抑えるに過ぎない。特許文献３及び４の技術は、一対一のデータ転送における転送時間を最小化するに過ぎない。特許文献５の技術は、一対多のデータ転送技術を開示するに過ぎない。特許文献６の技術は、ファイルシステムにアクセスするために必要なＩ／Ｏノードの占有率を決定するに過ぎない。特許文献７の技術は、特定のネットワークトポロジに対してデータ転送に使用する帯域の保証をするに過ぎない。特許文献８の技術は、一対多のデータ転送システムを対象とするに過ぎない。
【００１３】
本発明の目的は、分散システムにおいて、データの処理時間が最小となるような処理サーバへの処理割り当てを行う技術を提供することにある。また、本発明はさらに、大規模システムにおけるボトルネックの発生や、コンピュータの障害発生時のシステム全体に及ぼす影響を抑えながら、処理サーバへの処理割り当てを行う技術の提供を目的とする。
【課題を解決するための手段】
【００１４】
本発明によれば、
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数備え、
前記サーバ装置は、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１サーバ装置毎に記憶する通信先格納手段と、
当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信する、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段と、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信先決定手段を有する通信制御システムが提供される。
【００１５】
本発明によれば、
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数使用し、
前記サーバ装置が、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を前記第１サーバ装置毎に記憶する通信先格納手段から、前記転送可能量を含む情報を読み出し、
転送手段で、当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信し、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力し、
通信先決定手段で、前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信制御方法が提供される。
【００１６】
本発明によれば、
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むコンピュータを、
当該コンピュータと、当該コンピュータが処理対象データの送信先候補とする他の前記コンピュータである第１コンピュータとの間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１コンピュータ毎に記憶する通信先格納手段、
当該コンピュータを前記送信先候補とする他の前記コンピュータである第２コンピュータから前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該コンピュータが前記通信先格納手段で記憶する前記第１コンピュータに対応する前記転送可能量のうち、値が小さい方を、前記第１コンピュータに送信するメッセージに設定して送信する、または、当該コンピュータが前記データ処理手段を含む場合、当該コンピュータの資源の余力を示す残存資源量に基づき、当該コンピュータで前記処理対象データを処理可能か否か判定し、当該コンピュータで処理可能であった場合、当該コンピュータが単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２コンピュータから受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記コンピュータから当該コンピュータまでのデータ通信経路を決定する通信先決定手段として機能させるためのプログラムが提供される。
【発明の効果】
【００１７】
本発明によれば、分散システムにおいて、データの処理時間が最小となるような処理サーバへの処理割り当てを行うことができる。また、本発明によれば、大規模システムにおけるボトルネックの発生や、コンピュータの障害発生時のシステム全体に及ぼす影響を抑えながら、処理サーバへの処理割り当てを行うことができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態に係る通信制御システムの構成例を示すブロック図である。
【図２】通信先探索部の構成を示すブロック図である。
【図３】探索処理部の構成を示すブロック図である。
【図４Ａ】通信制御システムで実行される通信先の決定と処理の開始の例を示す図である。
【図４Ｂ】通信制御システムで実行される通信先の決定と処理の開始の例を示す図である。
【図５】処理対象のデータを他のコンピュータに転送する際の単位時間当たりの転送可能量の例を示す図である。
【図６】各データ処理部が処理する単位時間当たりの処理可能量の例を示す図である。
【図７】データノードに該当する通信先探索部のノード情報生成部が、データノードのノード情報を生成する動作を示すフローチャートである。
【図８】データノードの通信先探索部が探索を開始する動作を示すフローチャートである。
【図９】探索処理部の受信部が、受信処理を開始する動作を示すフローチャートである。
【図１０】探索処理部の転送部が、受信した増加フロー探索要求を更新し他ノードに転送する動作を示すフローチャートである。
【図１１】探索処理部の受信部が受信処理を開始する際の動作を示すフローチャートである。
【図１２】探索処理部の転送部が、受信した増加フロー探索要求を更新し他ノードに転送する動作を示すフローチャートである。
【図１３Ａ】転送部が、増加フロー探索結果に基づいてノード情報格納部の情報の更新を行う動作を示すフローチャートである。
【図１３Ｂ】転送部が、増加フロー探索結果に基づいてノード情報格納部の情報の更新を行う動作を示すフローチャートである。
【図１４Ａ】探索処理部の転送部が、処理終了要求と処理交換後の増加フロー探索結果を送信する動作を示すフローチャートである。
【図１４Ｂ】探索処理部の転送部が、処理終了要求と処理交換後の増加フロー探索結果を送信する動作を示すフローチャートである。
【図１４Ｃ】探索処理部の転送部が、処理終了要求と処理交換後の増加フロー探索結果を送信する動作を示すフローチャートである。
【図１５】探索処理部の転送部が、処理終了要求に基づいてノード情報格納部１１１の情報の更新を行う動作を示すフローチャートである。
【図１６】第３の実施形態に係る通信制御システムの構成例を示すブロック図である。
【図１７】通信先探索部のノード情報生成部が、装置のノード情報を生成する動作を示すフローチャートである。
【図１８】第４の実施形態における通信制御システムの構成例を示すブロック図である。
【図１９】通信先探索部の探索処理部の構成例を示すブロック図である。
【図２０】探索処理部の受信部の動作を示すフローチャートである。
【図２１】通信先探索部の経路表生成部が経路表を生成する動作を示すフローチャートである。
【図２２】探索処理部の経路表更新部が、受信した経路表更新要求に従って、経路表格納部の経路表の更新を行う動作を示すフローチャートである。
【図２３】探索処理部の経路表更新部が、出ノードリスト内のノードを参照して経路表を更新する動作を示すフローチャートである。
【図２４】処理ノードの経路表更新部が、データ処理部情報格納部を参照して、処理状況の変化に合わせて経路表を更新する動作を示すフローチャートである。
【図２５】探索処理部の経路表更新部が、データの転送状況の変化に合わせて経路表を更新する動作を示すフローチャートである。
【図２６】データノードの通信先探索部の更新部と転送部が処理割当要求を送信する動作を示すフローチャートである。
【図２７】探索処理部の受信部が受信した処理割当要求を更新し他ノードに転送する動作を示すフローチャートである。
【図２８】実施例１で使用される通信制御システムの構成を示すブロック図である。
【図２９】各ノードが備えるデータ処理部情報格納部に格納されたデータ処理部情報を例示する図である。
【図３０】各ノードが備えるデータ格納部情報格納部に格納されたデータ格納部情報を例示する図である。
【図３１】通信路情報生成部が生成する通信路情報を例示する図である。
【図３２−１Ａ】実施例１における通信制御システム９０でのメッセージ送受信の流れを例示する図である。
【図３２−１Ｂ】ｎ２のノード情報格納部が格納する、ノード情報を例示する図である。
【図３２Ａ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図３２Ｂ】データノードｎ２が送信した増加フロー探索要求とその送信先を示す図である。
【図３２Ｃ】データノードｎ４が送信した増加フロー探索要求とその送信先を示す図である。
【図３２Ｄ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図３２Ｅ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図３２Ｆ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図３２Ｇ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図３２Ｈ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図３２Ｉ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図３３】データ送受信の一例を示す図である。
【図３４】実施例２で使用される通信制御システムの構成を示すブロック図である。
【図３５】各ノードが備えるデータ処理部情報格納部に格納されたデータ処理部情報を例示する図である。
【図３６】各ノードが備えるデータ格納部情報格納部に格納されたデータ格納部情報を例示する図である。
【図３７】通信路情報生成部が生成する通信路情報を例示する図である。
【図３８Ａ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｂ】各ノードの入ノードリストを示す図である。
【図３８Ｃ】データノードｎ４が送信した増加フロー探索要求とその送信先を示す図である。
【図３８Ｄ】処理ノードｎ１がデータノードｎ２に送信した増加フロー探索要求を例示する図である。
【図３８Ｅ】データノードｎ２が処理ノードｎ３に送信した増加フロー探索要求を例示する図である。
【図３８Ｆ】処理ノードｎ３がデータノードｎ４に送信した増加フロー探索結果を例示する図である。
【図３８Ｇ】データノードｎ４が処理ノードｎ１に送信した増加フロー探索結果を例示する図である。
【図３８Ｈ】データノードｎ２が生成した処理終了要求を例示する図である。
【図３８Ｉ】データノードｎ２が送信先に送信する増加フロー探索結果を例示する図である。
【図３８Ｊ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｋ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｌ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｍ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｎ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｏ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｐ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【図３８Ｑ】実施例２において、一連の処理が行われた後の入ノードリストを例示する図である。
【図３９】データ送受信の一例を示す図である。
【図４０】実施例３で使用される通信制御システムの構成を示すブロック図である。
【図４１】各ノードが備えるデータ処理部情報格納部に格納されたデータ処理部情報を例示する図である。
【図４２】各ノードが備えるデータ格納部情報格納部に格納されたデータ格納部情報を例示する図である。
【図４３】通信路情報生成部が生成する通信路情報を例示する図である。
【図４４−１Ａ】実施例３における通信制御システムでのメッセージ送受信の流れを例示するブロック図である。
【図４４−１Ｂ】ノードＯＮ２を管理するプロセスのノード情報格納部が格納する、ノード情報を例示する図である。
【図４４Ａ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表したグラフである。
【図４４Ｂ】処理ノードｎ２が受信した増加フロー探索要求を示す図である。
【図４４Ｃ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図４４Ｄ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図４４Ｅ】処理ノードｎ１が受信した増加フロー探索要求を示す図である。
【図４４Ｆ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図４４Ｇ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図４４Ｈ】処理ノードｎ１が受信した増加フロー探索要求を示す図である。
【図４４Ｉ】データ処理部情報格納部が格納するデータ処理部情報を示す図である。
【図４４Ｊ】各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【図４５】データ送受信の一例を示す図である。
【図４６】各ノードが備えるデータ処理部情報格納部に格納されたデータ処理部情報を示す図である。
【図４７Ａ】各ノードがそれぞれ経路表の初期化を終えた時点での、全ての経路表を一括して表した表である。
【図４７Ｂ】更新後の経路表を例示する図である。
【図４７Ｃ】更新後の経路表を例示する図である。
【図４７Ｄ】更新後の経路表を例示する図である。
【図４７Ｅ】更新後の経路表を例示する図である。
【図４８Ａ】処理ノードｎ２が受信した処理割当要求を例示する図である。
【図４８Ｂ】更新されたデータ処理部情報を例示する図である。
【図４８Ｃ】更新後の経路表を例示する図である。
【図４８Ｄ】更新後の経路表を例示する図である。
【図４８Ｅ】更新後の経路表を例示する図である。
【図４８Ｆ】処理ノードｎ１が受信した処理割当要求を例示する図である。
【図４８Ｇ】更新されたデータ処理部情報を例示する図である。
【図４８Ｈ】更新後の経路表を例示する図である。
【図４８Ｉ】更新後の経路表を例示する図である。
【図４８Ｊ】処理ノードｎ２が受信した処理割当要求を例示する図である。
【図４８Ｋ】更新後の経路表を例示する図である。
【図４９Ａ】データ送受信の一例を示す図である。
【図４９Ｂ】データ送受信の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２０】
（第１の実施形態）
図１は、第１の実施形態に係る通信制御システム９０の構成例を示すブロック図である。通信制御システム９０は、通信網１０に接続された複数のコンピュータ等であるサーバ装置１を包含する。なお、個々の装置を区別する場合、各装置は、１ａ、１ｂ、１ｃ、等の符号で参照される。装置内の構成要素についても同様である。
【００２１】
サーバ装置１の各々は、データ格納部１４と、データ処理部１３と、通信先格納部１２と、通信先探索部１１とを包含する。データ処理部１３は、指定されたデータ格納部１４に格納されているデータを取得して処理し、指定されたデータ格納部１４にデータを出力する。
【００２２】
データ処理部１３が取得または出力するデータが格納されるデータ格納部１４は、同じサーバ装置１のものであっても、異なるサーバ装置１のものであってもよい。例えば、データ処理部１３ａは、データ格納部１４ｂに格納されているデータを取得して処理し、出力データをデータ格納部１４ｃに格納してもよい。本実施形態の通信制御システム９０は、データ処理部１３とデータ格納部１４とを接続する通信網１０の転送可能量と、データ処理部１３の処理可能量から、単位時間当たりの処理量を最大とするデータ処理部１３とデータ格納部１４の組み合わせを検出する。ここで、転送可能量とは、あるサーバ装置１から当該サーバ装置１に接続されている他のサーバ装置１へ、単位時間当たりに転送することができるデータ量を示す。また、処理可能量とは、あるサーバ装置１が単位時間当たりに処理することができるデータ量を示す。
【００２３】
通信先格納部１２は、処理の入出力データを通信する相手となるサーバ装置１の識別子を格納する。
【００２４】
通信先探索部１１は、他のサーバ装置１の通信先探索部１１とメッセージ交換を行って、単位時間当たりの処理量を最大とするデータ処理部１３とデータ格納部１４の組み合わせを検出する。
【００２５】
この構成例において、通信先探索部１１は、同じサーバ装置１に含まれるデータ処理部１３、データ格納部１４に関する処理を行う。
【００２６】
なお、データ処理部１３は、データ格納部１４からのデータの入力、または、データ格納部１４へのデータの出力の一方だけを行ってもよい。また、サーバ装置１は、データ処理部１３、データ格納部１４のうち、いずれか一方だけを備えていてもよい。すなわち、サーバ装置１は、データ処理に特化した処理サーバ、データ格納に特化したデータサーバ、あるいは、ファイルサーバであってもよい。
【００２７】
図２は、通信先探索部１１の構成を示すブロック図である。通信先探索部１１は、ノード情報格納部１１１と、データ処理部情報格納部１１２と、通信路情報生成部１１３と、通信先決定部１１４とを含む。
【００２８】
通信先探索部１１は、通信制御システム９０を、データ格納部１４やデータ処理部１３などをノードとする通信ネットワークとしてモデル化し、関連情報を生成する。通信先探索部１１は、サーバ装置１がデータ処理部１３を備えて処理サーバ等として機能するときはそれらを処理ノードとしてモデル化し、データ格納１４を備えてファイルサーバ等として機能するときはそれらをデータノードとしてモデル化する。
【００２９】
なお、通信先探索部１１は、データ処理部１３とデータ格納部１４とを備えて、処理サーバおよびデータサーバ等として機能するサーバ装置１を、データノードと処理ノードの２つのノードとしてモデル化する。したがって、通信先探索部１１は、１台のサーバ装置１を１つのノードとして扱うこともあるし、２つのノードとして扱うこともある。
【００３０】
以降の説明において、メッセージ交換はノード間で行われる。１台のサーバ装置１が複数のノードとしてモデル化されている場合、当該ノード間のメッセージ交換は、例えば、１台のサーバ装置１内で擬似的に実行される。
【００３１】
なお、通信先探索部１１等の動作の説明において、「当該ノード」という言葉は、図１に示す通信制御システムにおいて、動作の説明で対象としている通信先探索部１１等を含むサーバ装置１がモデル化されたノードを含む。
【００３２】
また、以降の説明において、「そのノード」という言葉は、複数のノードの各々を処理対象として繰り返し実行される処理が、ｎ番目（ｎは、１〜繰り返しの最大数のうちの、いずれかの数値）に実行されたときに処理対象とするノードを示す。
【００３３】
ノード情報格納部１１１は、ノード間の転送可能量、処理サーバの処理可能量、メッセージ交換を行うノードの情報等を格納する。
【００３４】
データ処理部情報格納部１１２は、与えられた処理に対するデータ処理部１３の単位時間当たりの処理可能量の情報を格納する。
【００３５】
データ格納部情報格納部１１５は、データ格納部１４の識別子を格納する。
【００３６】
通信路情報生成部１１３は任意の２つのノード間におけるデータの転送経路や、転送可能量を算出し、ノード情報格納部１１１に格納する。通信路情報生成部１１３は、通信先探索部１１の外にある、ネットワークトポロジの情報を格納する格納部や、通信制御システム９０を構成する装置が持つデータの転送経路に関する情報を参照してもよい。
【００３７】
ノード情報生成部１１６は、データ処理部情報格納部１１２及びデータ格納部情報格納部１１５を参照して、ノード情報を生成する。ノード情報生成部１１６は、生成したノード情報をノード情報格納部１１１に格納する。
【００３８】
通信先決定部１１４は、探索処理部１１０が出力する探索結果情報に基づいて、データ処理部１３及びデータ格納部１４の通信先を決定する。また、通信先決定部１１４は、データの処理量を決定してもよい。
【００３９】
探索処理部１１０は、ノード情報格納部１１１が格納する情報と、データ処理部情報格納部１１２が格納する情報を参照する。探索処理部１１０は参照した情報に基づいて、他のノードとメッセージ交換を行う。
【００４０】
通信先格納部１２は、通信先決定部１１４が決定した通信先情報を格納する。
【００４１】
処理起動部１６は、通信先格納部１２を参照し、データ処理部１３に対して処理の実行を指示する。
【００４２】
データ処理部１３は、通信先格納部１２を参照して、通信先情報を取得する。データ処理部１３は、取得した通信先情報に基づいて、データ格納部１４からデータを取得する。データ処理部１３は、取得したデータに対し、与えられた処理に対応するプログラムをプログラム格納部１５から読み出して実行する。
【００４３】
図３は、探索処理部１１０の構成例を示すブロック図である。探索処理部１１０は、複数のサーバ装置１にまたがって散在するノード情報格納部１１１に格納されたノード間のグラフにおいて、辺に付された制約条件を満たす増加フローを探索する。探索処理部１１０は、複数のサーバ装置１間でメッセージを交換して増加フローを探索する。
【００４４】
ここで増加フローとは、通信制御システム９０における単位時間当たりの処理量を高めるデータ転送経路と転送量を示す。
【００４５】
探索処理部１１０は、図３を参照すると、受信部１１０１と、転送部１１０２と、起動部１１０５を包含する。
【００４６】
受信部１１０１は、他のノードから探索情報を受け付け、当該探索情報の種別に応じて処理を実施する。受信部１１０１は必要に応じて、メッセージもしくはメッセージ送信の指示を転送部１１０２に出力する。受信部１１０１は、受信した探索情報に基づいてノード情報格納部１１１内のノード情報を更新する。
【００４７】
受信部１１０１は、受信したメッセージから、サーバ装置１の処理状況と利用可能状況をモデル化したノード間のグラフにおいて、全体のデータ処理量を増加させるフローを検出する。そして、受信部１１０１は、データ転送経路や処理可能量といったフローの情報を通信先決定部１１４に出力する。
【００４８】
ここで、サーバ装置１は、例えば、探索処理部１１０外に通信先決定部１１４を備えている（図２参照）。
【００４９】
転送部１１０２は、ノード間で交換されるメッセージに付加された処理可能量情報を更新し、どのノードに転送するか判断する。
【００５０】
起動部１１０５は、転送部１１０２に探索の開始を指示する。
【００５１】
通信先決定部１１４は、受信部１１０１が出力するフロー情報が含む経路（ノードの識別子のシーケンス等）情報に基づいて、処理の開始や停止等を行うサーバ装置１を特定する。通信先決定部１１４は特定情報を基に、データ処理の開始や変更等をサーバ装置１に指示する。さらに、通信先決定部１１４は、新たな処理を開始するサーバ装置１に処理プログラムを送信して、インストール、ダイナミックローディング、デプロイを指示してもよい。
【００５２】
プログラムの送信は、データ処理部１３がデータを処理するために実行するプログラムが、全てのサーバ装置１に予め配備されたプログラムではなく、ユーザにより与えられたプログラムであるような場合に必要となる。プログラム格納部１５は、受信したプログラムの一時保存をしてもよい。
【００５３】
サーバ装置１に対するデータ処理の開始、変更指示やプログラム配備は、通信制御システム９０のオペレータ等が各サーバ装置１に対して実施してもよい。この場合、通信先決定部１１４は、例えばディスプレイなどを用いて、決定情報を外部に表示する。
【００５４】
図４Ａ及び図４Ｂは、通信制御システム９０で実行される通信先の決定と処理の開始の例を示す図である。この通信先の決定により、通信制御システム９０における処理時間が短くなる。  
【００５５】
図５は、図４Ａ及び図４Ｂが示す通信制御装置９０における、処理対象のデータを他のコンピュータに転送する際の単位時間当たりの転送可能量の例を示す図である。図６は、各データ処理部１３が処理する単位時間当たりの処理可能量の例を示す図である。
【００５６】
図４Ａの通信制御システム９０は、最初に、データ２１１の処理とデータ２１３の処理が実行されている。サーバ装置２０７のデータ処理部２１４が、サーバ装置２０８のデータ格納部２０４に格納されているデータ２１１を、データ転送経路２３０を介して取得し、処理している。一方、サーバ装置２０９のデータ処理部２１５が、サーバ装置２１０のデータ格納部２０６に格納されているデータ２１３を、データ転送経路２３２を介して取得し、処理している。
【００５７】
サーバ装置２０８からサーバ装置２０７への単位時間当たりの転送可能量は、図５の表２２０を参照すると、５０ＭＢ／ｓである。また、サーバ装置２０７のデータ処理部２１４における単位時間当たりの処理可能量は、図６の表２２１を参照すると、５０ＭＢ／ｓである。よって、データ処理部２１４の単位時間当たりのデータの処理量は５０ＭＢ／ｓとなる。一方、サーバ装置２１０からサーバ装置２０９への単位時間当たりの転送可能量は、図５の表２２０を参照すると、１００ＭＢ／ｓである。また、サーバ装置２０９のデータ処理部２１５における単位時間当たりの処理可能量は、図６の表２２１を参照すると、１５０ＭＢ／ｓである。よって、データ処理部２１５の単位時間当たりのデータの処理量は、転送可能量と処理可能量のうち小さい値である、１００ＭＢ／ｓとなる。
【００５８】
この状態で、サーバ装置２０９のデータ処理部２１５は、追加で５０ＭＢ／ｓの処理が実行可能である。また、サーバ装置２０８からサーバ装置２０９へのデータ転送経路は、図５の表２２０を参照すると、５０ＭＢ／ｓのデータ転送が可能である。また、データ２１２は未処理である。
【００５９】
ここで、通信制御システム９０は、サーバ装置２０９のデータ処理部２１５が、サーバ装置２０８のデータ格納部２０４が格納するデータ２１２を、図４Ｂが示すデータ転送経路２３１を介して取得し、５０ＭＢ／ｓで処理可能であることを検出する。そこで通信制御システム９０は、データ処理部２１５に、データ格納部２０４に格納されているデータ２１２の処理の実行を指示する。
【００６０】
次に、本実施形態の通信制御システム９０の動作を説明する。本実施形態では、探索処理部１１０が、フラッディングにより、増加フローである転送経路を探索する。
【００６１】
本実施形態において、フローチャートで示される手順を実行するのは、サーバ装置１ａ乃至１ｃ等である。また、ここで述べる手順にて処理される対象ノードは、サーバ装置１である。
【００６２】
図７は、データノードに該当する通信先探索部１１のノード情報生成部１１６が、データノードのノード情報を生成する動作を示すフローチャートである。
【００６３】
ノード情報生成部１１６は、ノード情報格納部１１１の出ノードリストを空にする（Ｓ７１）。
【００６４】
ノード情報生成部１１６は、データ処理部情報格納部１１２に格納された各データ処理部１３（以下、処理ノード）について、Ｓ７３及びＳ７４の処理を実行する（Ｓ７２）。
【００６５】
ノード情報生成部１１６は、その処理ノードへの単位時間当たりの転送可能量を通信路情報生成部１１３から取得する（Ｓ７３）。
【００６６】
ノード情報生成部１１６は、その処理ノードの識別子と、その処理ノードへの単位時間辺りの転送可能量を、ノード情報格納部１１１の出ノードリストに格納する（Ｓ７４）。
【００６７】
図８は、データノードの通信先探索部１１が探索を開始する動作を示すフローチャートである。
【００６８】
データノードの探索処理部１１０の転送部１１０２は、起点ノードを当該ノードとして、増加フロー探索要求を生成する（Ｓ８１）。
【００６９】
転送部１１０２は、出ノードリストに格納されている各ノードについて、Ｓ８３の処理を繰り返し実行する（Ｓ８２）。
【００７０】
次に転送部１１０２は、そのノードに対応付けられたサーバ装置１への転送可能量が０より大きいか否か判定する（Ｓ８３）。転送部１１０２は、転送可能量が０より大きい場合（Ｓ８３のＹＥＳ）、転送部１１０２の処理はＳ８４に進む。一方、転送可能量が０以下である場合（Ｓ８３のＮＯ）、転送部１１０２はＳ８４の処理を実行しない。
【００７１】
転送部１１０２は、当該ノードからそのノードへの転送可能量を、処理上限値として増加フロー探索要求に設定し、当該増加フロー探索要求をそのノードに送信する（Ｓ８４）。
【００７２】
通信先探索部１１は、探索を開始する際、既に送信した増加フロー探索要求の処理の完了を待ち合わせてもよい。また、増加フロー探索要求の送信に限定されずに、他のデータ処理開始を待ち合わせてもよい。また、探索の開始時期を他のノードと調停して決定してもよい。
【００７３】
図９は、探索処理部１１０の受信部１１０１が、受信処理を開始する動作を示すフローチャートである。
【００７４】
探索処理部１１０の受信部１１０１は、終了設定がされているか否か判定する。終了設定がされている場合（Ｓ９１のＹＥＳ）、受信処理は終了する。終了設定がされていない場合（Ｓ９１のＮＯ）、受信部１１０１の処理はＳ９２に進む。なお、終了設定は、当該サーバ装置１を停止して通信制御システム９０から取り除く際に、当該サーバ装置１に対して設定される。
【００７５】
受信部１１０１は、他のノードから送信されるメッセージの受信を待つ（Ｓ９２）。次に受信部１１０１は、受信したメッセージの種別の判定を行う（Ｓ９３）。受信したメッセージが増加フロー探索要求であった場合、受信部１１０１の処理はＳ９４に進む。受信部１１０１が増加フロー探索要求以外のメッセージを受信した場合、各図に示されるサーバ装置１の処理部１３とは異なる、図示しない処理部が、当該メッセージの処理を行う。
【００７６】
受信したメッセージが増加フロー探索要求であった場合、探索処理部１１０の転送部１１０２は、受信した増加フロー探索要求を更新し他ノードに転送する（Ｓ９４）。受信部１１０１の処理はＳ９１に進む。
【００７７】
図１０は、探索処理部１１０の転送部１１０２が、受信した増加フロー探索要求を更新し他ノードに転送する動作を示すフローチャートである。
【００７８】
探索処理部１１０の転送部１１０２は、当該ノードが処理ノードであるか否か判定する（Ｓ１０１）。当該ノードが処理ノードであった場合（Ｓ１０１のＹＥＳ）、転送部１１０２の処理はＳ１０５に進む。一方、当該ノードが処理ノードでない場合（Ｓ１０１のＮＯ）、転送部１１０２の処理はＳ１０２に進む。
【００７９】
転送部１１０２は、出ノードリストに格納される各ノードについて、Ｓ１０３の処理を実施する。（Ｓ１０２）
【００８０】
転送部１１０２は、そのノードへの転送可能量が０より大きいか否か判定する（Ｓ１０３）。そのノードへの転送可能量が０より大きい場合（Ｓ１０３のＹＥＳ）、転送部１１０２の処理はＳ１０４に進む。一方、転送可能量が０以下である場合（Ｓ１０３のＮＯ）、転送部１１０２はＳ１０４の処理を実行しない。
【００８１】
転送部１１０２は、そのノードと接続された通信路の転送可能量と増加フロー探索要求内に設定された処理上限値のうち、どちらか小さい値を増加フロー探索要求の新しい処理上限値として設定する。また転送部１１０２は、当該ノードを増加フロー探索要求のノードリストに追加する。そして転送部１１０２は、増加フロー探索要求をそのノードに送信する（Ｓ１０４）。
【００８２】
転送部１１０２は、当該ノードが処理ノードであった場合、当該ノードで処理が実行可能か否か判定する（Ｓ１０５）。処理が実行可能であった場合（Ｓ１０５のＹＥＳ）、転送部１１０２の処理はＳ１０６に進む。一方、処理が実行可能でなかった場合（Ｓ１０５のＮＯ）、転送部１１０２の処理はＳ１０２に進む。ここで、転送部１１０２は、当該処理ノードの残存資源量に基づき処理可能か否か判定する。例えば、転送部１１０２は、当該処理ノードの残存資源量が一定の閾値以上あるか否かに基づき、処理可能か否かを判定する。
【００８３】
転送部１１０２は、増加フロー探索要求に設定された処理上限値と、当該処理ノードの単位時間当たりの処理可能量のうち、どちらか小さい値を、増加フロー探索要求の新たな処理上限値とする（Ｓ１０６）。ここで、当該処理ノードの単位時間当たりの処理可能量は、当該処理ノードの残存資源量と、一定時間に一定量の負荷を与えた場合の資源使用量に基づいて算出する。
【００８４】
転送部１１０２は、増加フロー探索要求のノードリストと処理上限値を増加フロー探索結果とし、通信先決定部１１４に出力する（Ｓ１０７）。
【００８５】
第１の実施形態における通信制御システム９０がもたらす第１の効果は、データの処理時間が最小となるような処理サーバへの処理割り当てを行う可能性を高めることである。
【００８６】
その理由は、探索処理部１１０等が、単位時間当たりのデータ処理量を高めるデータノードと処理ノードの組み合わせとデータ通信経路を発見し、その組み合わせとデータ転送経路の情報を出力するからである。処理ノードとして動作するサーバ装置１は、この出力情報に基づいてデータを処理することで、単位時間当たりのデータ処理量を高めることが可能となる。これにより、データ処理時間が最小となる可能性を高める。
【００８７】
また、本実施形態における情報制御システム９０は、データノードと処理ノードの組み合わせの探索を実行する際に、特定のコンピュータや装置が処理の迅速性や信頼性の点でボトルネックとなることを回避しやすくなる。
【００８８】
その理由は、通信制御システム９０は、特定のコンピュータ等にシステム全般のデータ通信やデータ処理の状況を示す情報を集めるのではなく、異なるノードに分散して格納されている、通信や処理の状態を参照し、増加フロー探索要求メッセージを交換しながら、データノードと処理ノードの組み合わせとデータ転送経路を発見するからである。
【００８９】
（第１の実施形態の変形例）
第１の実施形態の通信探索部１１は、処理ノードで実行しようとする処理と、当該処理で使用するデータ群とを含む集合（以下、データ集合）を区別して、データノードと処理ノードの組み合わせとデータ転送経路の探索を実行してもよい。
【００９０】
この場合、第１の実施形態は以下のように変形される。データノードの通信先探索部１１が探索を開始する際（図８参照）、データノードの通信先探索部１１は、増加フロー探索要求に、データ集合を識別するための識別子を含め、Ｓ８１以下の処理を実行する。
【００９１】
探索処理部１１０の転送部１１０２が、受信した増加フロー探索要求を更新し他ノードに転送する処理を実行する際（図１０参照）の処理は次のように変更される。処理ノードはステップＳ１０５で実施する処理の実行可能判定の際に、増加フロー探索要求に含まれている識別子を参照する。処理ノードは、例えば図示しない記憶部に識別子とデータ集合を対応付けるテーブルを別途用意しておき、増加フロー探索要求に含まれている識別子に基づき、対応する処理と当該処理の負荷値を特定する。そして、処理ノードは、当該処理の負荷値、当該サーバ装置１の残存資源量、および当該サーバ装置１において一定時間に一定の負荷値をかけた場合の資源使用量に基づき、当該処理が実行可能か否か判定する。また、Ｓ１０６において、処理ノードは、当該ノードの単位時間当たりの処理可能量を、増加フロー探索要求に含まれている識別子と対応する処理の負荷値に基づいて算出する。
【００９２】
増加フロー探索要求に、実行しようとする処理を特定する識別子を含めることより、処理ノードは識別子に基づき処理を区別して処理上限値を計算することが可能となる。これにより、第１の実施形態の変形例における通信制御システム９０は、データ集合によって処理の負荷が異なる際に、データの処理時間が最小となるような処理サーバへの処理割り当てを行う可能性を高めることができる。例えば、図４Ａにおいて、データ２１３が処理Ａと処理Ｂで使用されうる場合、増加フロー探索要求に識別子が含まれてないと、処理Ａと処理Ｂのどちらの処理を実行するか区別できず、処理ノードは残存資源量のみに基づき処理可能か否かを判定することとなる。増加フロー探索要求に識別子を含めることによって、実行しようとする処理を区別することができ、処理ノードは残存資源量で当該処理が処理可能か否か、より適確に判定することができる。また、単位時間当たりの処理可能量を算出する際において、処理ノードは、実行しようとする処理の負荷値を認識できるため、より適確に単位時間当たりの処理可能量を算出することができる。
（第２の実施形態）
【００９３】
第２の実施形態について図面を参照して詳細に説明する。本実施形態の通信制御システム９０は、単位時間当たりのデータ処理量を増加させるために、実行されている処理の停止や処理を実行するノードの切替を行う。
【００９４】
図１１は、本実施形態における探索処理部１１０の受信部１１０１が受信処理を開始する際の動作を示すフローチャートである。
【００９５】
探索処理部１１０の受信部１１０１は、終了設定がされているか否か判定する（Ｓ１１１）。終了設定がされている場合（Ｓ１１１のＹＥＳ）、受信処理は終了する。終了設定がされていない場合（Ｓ１１１のＮＯ）、受信部１１０１の処理はＳ１１２に進む。
【００９６】
受信部１１０１は、他のノードから送信されるメッセージの受信を待つ（Ｓ１１１２）。
【００９７】
次に受信部１１０１は、受信したメッセージの種別の判定を行う（ステップＳ１１３）。受信したメッセージが増加フロー探索要求であった場合、受信部１１０１の処理はステップＳ１１４に進む。受信したメッセージが増加フロー探索結果であった場合、受信部１１０１の処理はステップＳ１１５に進む。受信したメッセージが処理終了要求であった場合、受信部１１０１の処理はステップＳ１１６に進む。受信部１１０１がここで示す３種類のメッセージ以外のメッセージを受信した場合、各図に示されるサーバ装置１の処理部１３とは異なる、図示しない処理部が、当該メッセージの処理を行う。
【００９８】
受信したメッセージが増加フロー探索要求であった場合、探索処理部１１０の転送部１１０２は、受信した増加フロー探索要求を更新し他ノードに転送する（Ｓ１１４）。受信したメッセージが増加フロー探索結果であった場合、探索処理部１１０の転送部１１０２は、受信した増加フロー探索結果に基づいてノード情報格納部１１１の情報の更新を行う（Ｓ１１５）。受信したメッセージが処理終了要求であった場合、探索処理部１１０の転送部１１０２は、処理終了要求に基づいてノード情報格納部１１１の情報の更新を行う（Ｓ１１６）。受信部１１０１の処理はＳ１１１に進む。
【００９９】
図１２は、探索処理部１１０の転送部１１０２が、受信した増加フロー探索要求を更新し他ノードに転送する動作を示すフローチャートである。
【０１００】
探索処理部１１０の転送部１１０２は、受信した増加フロー探索要求のノードリストに当該ノードが含まれているか否か判定する（Ｓ１２Ｂ）。当該ノードがノードリストに含まれていた場合（Ｓ１２ＢのＹＥＳ）、転送部１１０２の処理は終了する。一方、当該ノードがノードリストに含まれていない場合（Ｓの１２ＢのＮＯ）、転送部１１０２の処理は１２１に進む。
【０１０１】
転送部１１０２は、当該ノードが処理ノードであるか否か判定する（Ｓ１２１）。当該ノードが処理ノードであった場合（Ｓ１２１のＹＥＳ）、転送部１１０２の処理はＳ１２８に進む。一方、当該ノードが処理ノードでない場合（Ｓ１２１のＮＯ）、転送部１１０２の処理はＳ１２２に進む。
【０１０２】
転送部１１０２は、出ノードリストに格納されている各ノードについて、Ｓ１２３の処理を実施する（Ｓ１２２）。
【０１０３】
転送部１１０２は、そのノードへの転送可能量が０より大きいか否か判定する（Ｓ１２３）。そのノードへの転送可能量が０より大きい場合（Ｓ１２３のＹＥＳ）、転送部１１０２の処理はＳ１２４に進む。一方、転送可能量が０以下である場合（Ｓ１２３のＮＯ）、転送部１１０２はＳ１２４乃至Ｓ１２７の処理を実行しない。
【０１０４】
転送部１１０２は、受信した増加フロー探索要求の複製を生成する（Ｓ１２４）。
【０１０５】
転送部１１０２は、そのノードが入ノードリストに含まれているか否か判定する（Ｓ１２５）。そのノードが入ノードリストに含まれていると判定した場合（Ｓ１２５のＹＥＳ）、転送部１１０２の処理はＳ１２６に進む。一方、そのノードが入ノードリストに含まれていないと判定した場合（Ｓ１２５のＮＯ）、転送部１１０２の処理はＳ１２７に進む。
【０１０６】
転送部１１０２は、複製した増加フロー探索要求の交換フラグを有効にする（Ｓ１２６）。
【０１０７】
転送部１１０２は、そのノードと接続された通信路の転送可能量と増加フロー探索要求に設定された処理上限値のどちらか小さい値を、複製した増加フロー探索要求の新しい処理上限値として設定する。また転送部１１０２は、当該ノードを複製した増加フロー探索要求のノードリストに追加する。そして転送部１１０２は、複製した増加フロー探索要求をそのノードに送信する（Ｓ１２７）。
【０１０８】
転送部１１０２は、Ｓ１２１において当該ノードが処理ノードであると判定した場合、当該処理ノードで処理が実行可能か否か判定する（Ｓ１２８）。処理が実行可能であった場合（Ｓ１２８のＹＥＳ）、転送部１１０２の処理はＳ１２９に進む。一方、処理が実行可能でなかった場合（Ｓ１２８のＮＯ）、転送部１１０２の処理は終了する。
【０１０９】
転送部１１０２は、受信した増加フロー探索要求に設定された処理上限値と、当該ノードの単位時間当たりの処理可能量のうち、どちらか小さい値を、増加フロー探索要求の新たな処理上限値とする（Ｓ１２９）。
【０１１０】
転送部１１０２は、受信した増加フロー探索要求のノードリストと処理上限値と交換フラグを増加フロー探索結果として、ノードリストの起点ノードに通知する（Ｓ１２Ａ）。
【０１１１】
図１３Ａ及び図１３Ｂは、転送部１１０２が、増加フロー探索結果に基づいてノード情報格納部１１１の情報の更新を行う動作を示すフローチャートである。
【０１１２】
探索処理部１１０の転送部１１０２は、受信した増加フロー探索結果の交換フラグが無効か否かを判定する（Ｓ１３１）。交換フラグが無効であった場合（Ｓ１３１のＹＥＳ）、転送部１１０２の処理はＳ１３３に進む。一方、交換フラグが有効であった場合（Ｓ１３１のＮＯ）、転送部１１０２の処理はＳ１３２に進む。
【０１１３】
転送部１１０２は、受信した増加フロー探索要求の交換フラグが有効であった場合、処理終了要求と処理交換後の増加フロー探索結果を送信する（Ｓ１３２）。そして転送部１１０２の処理は終了する。
【０１１４】
転送部１１０２は、受信した増加フロー探索要求の交換フラグが無効であった場合、増加フロー探索結果のノードリストを参照し、当該ノードの１つ前のノードの識別子αを取得する（Ｓ１３３）。
【０１１５】
転送部１１０２は、取得した識別子αと、増加フロー探索結果に含まれるノードリストと、増加フロー探索結果に含まれる処理上限値を、入ノードリストに追加する（Ｓ１３４）。
【０１１６】
転送部１１０２は、識別子αが出ノードリストに含まれているか否か判定する（Ｓ１３５）。識別子αが出ノードリストに含まれている場合（Ｓ１３５のＹＥＳ）、転送部１１０２の処理はＳ１３６に進む。一方、識別子αが出ノードリストに含まれていない場合（Ｓ１３５のＮＯ）、転送部１１０２の処理はＳ１３７に進む。
【０１１７】
転送部１１０２は、識別子αが出ノードリストに含まれている場合、出ノードリストに記録されている、識別子αに対応する現在の処理量に増加フロー探索結果の処理上限値を加算し、加算後の値で現在の処理量を更新する（Ｓ１３６）。
【０１１８】
転送部１１０２は、識別子αが出ノードリストに含まれていない場合、識別子αを出ノードリストに追加する。増加フロー探索結果に含まれる処理上限値を現在の処理量として、追加した識別子αに対応付ける（Ｓ１３７）。
【０１１９】
転送部１１０２は、増加フロー探索結果のノードリストを参照し、当該ノードの１つ後のノードの識別子βを取得する（Ｓ１３８）。
【０１２０】
転送部１１０２は、識別子βが出ノードリストに含まれているか否か判定する（Ｓ１３９）。識別子βが出ノードリストに含まれている場合（Ｓ１３９のＹＥＳ）、転送部１１０２の処理はＳ１３Ａに進む。一方、識別子βが出ノードリストに含まれていない場合（Ｓ１３９のＮＯ）、転送部１１０２の処理はＳ１３Ｂに進む。
【０１２１】
転送部１１０２は、識別子βが出ノードリストに含まれている場合、出ノードリストに記録されている、識別子βに対応する現在の処理量から増加フロー探索結果の処理上限値を減算し、減算後の値で現在の処理量を更新する（Ｓ１３Ａ）。
【０１２２】
転送部１１０２は、識別子βが出ノードリストに含まれていない場合、識別子βを出ノードリストに追加する。増加フロー探索結果に含まれる処理上限値を現在の処理量として、追加した識別子βに対応付ける（Ｓ１３Ｂ）。
【０１２３】
転送部１１０２は、当該ノードが処理ノードであるか否か判定する（Ｓ１３Ｃ）。当該ノードが処理ノードであった場合（Ｓ１３ＣのＹＥＳ）、転送部１１０２の処理はＳ１３Ｅに進む。一方、当該ノードが処理ノードでない場合（Ｓ１３ＣのＮＯ）、転送部１１０２の処理はＳ１３Ｄに進む。
【０１２４】
転送部１１０２は、当該ノードが処理ノードではない場合、増加フロー探索結果のノードリストに含まれる、当該ノードの１つ後のノードに増加フロー探索結果を送信する（Ｓ１３Ｄ）。
【０１２５】
転送部１１０２は、当該ノードが処理ノードであった場合、増加フロー探索結果のノードリストと処理上限値を、通信先決定部１１４に出力する（Ｓ１３Ｅ）。
【０１２６】
図１４Ａ乃至図１４Ｃは、探索処理部１１０の転送部１１０２が、処理終了要求と処理交換後の増加フロー探索結果を送信する動作を示すフローチャートである。
【０１２７】
探索処理部１１０の転送部１１０２は、受信した増加フロー探索結果のノードリストを参照する。そして転送部１１０２は、ノードリストにおいて当該ノードの１つ後のノードが入ノードリストにあるか否かを判定する（Ｓ１４１）。入ノードリストにあった場合（Ｓ１４１のＹＥＳ）、転送部１１０２の処理はＳ１４２に進む。一方、入ノードリストにない場合（Ｓ１４１のＮＯ）、転送部１１０２の処理はＳ１４３に進む。
【０１２８】
転送部１１０２は、増加フロー探索結果のノードリストにおいて当該ノードの１つ後のノードが入ノードリストにあった場合、増加フロー探索結果に含まれる、キャンセルするノードリストｌに当該ノードを追加する（Ｓ１４２）。
【０１２９】
転送部１１０２は、受信した増加フロー探索結果に含まれる、キャンセルするノードリストｌが空か否か判定する（Ｓ１４３）。キャンセルするノードリストｌが空であった場合（Ｓ１４３のＹＥＳ）、転送部１１０２の処理はＳ１４Ｌに進む。一方、キャンセルするノードリストｌが空でない場合（Ｓ１４３のＮＯ）、転送部１１０２の処理はＳ１４Ｍに進む。
【０１３０】
キャンセルするノードリストｌが空であった場合、転送部１１０２は、受信した増加フロー探索結果のノードリストを参照する。そして転送部１１０２は、参照したノードリストにおいて、当該ノードの１つ後のノードに対して、増加フロー探索結果を送信する（Ｓ１４Ｌ）。
【０１３１】
キャンセルするノードリストｌが空でない場合、転送部１１０２は、受信した増加フロー探索結果に含まれる、キャンセルするノードリストｌに当該ノードを追加する（Ｓ１４Ｍ）。
【０１３２】
転送部１１０２は、受信した増加フロー探索結果に含まれる、キャンセルするノードリストｌを取得する（Ｓ１４４）。
【０１３３】
転送部１１０２は、増加フロー探索結果に含まれるノードリストにおいて、キャンセルするノードリストｌの始点と同じノードの位置を特定する。そして特定したノードより後の部分ノードリストを、部分ノードリストｌａ１として取り出す。転送部１１０２はまた、キャンセルするノードリストｌの終点と同じノードの位置を特定する。そして特定したノードより前の部分ノードリストを、部分ノードリストｌｂ１として取り出す（Ｓ１４５）。
【０１３４】
転送部１１０２は、出ノードリストに格納されているノードのうち、ノードに対応付けられたノードリストがキャンセルするノードリストｌを含むノードｎについて、Ｓ１４７乃至Ｓ１４Ｆの処理を実施する（Ｓ１４６）。
【０１３５】
転送部１１０２は、ノードｎに対応付けられたノードリストにおいて、キャンセルするノードリストｌの始点と同じノードの位置を特定する。そして特定したノードを含む前の部分ノードリストを、部分ノードリストｌｂ２として取り出す。転送部１１０２はまた、キャンセルするノードリストｌの終点と同じノードの位置を特定する。そして特定したノードを含む後の部分ノードリストを、部分ノードリストｌａ２として取り出す（Ｓ１４７）。
【０１３６】
転送部１１０２は、増加フロー探索結果に含まれる処理上限値と、Ｓ１４６のループで生成した処理終了要求の処理量の和との差を計算し、ノードｎに対応付けられた現在の処理量がこの計算値以下であるか否か判定する（Ｓ１４８）。ノードｎに対応付けられた現在の処理量がこの計算値以下である場合（Ｓ１４８のＹＥＳ）、転送部１１０２の処理はＳ１４９に進む。一方、ノードｎに対応付けられた現在の処理量がこの計算値以下でない場合（Ｓ１４８のＮＯ）、転送部１１０２の処理はＳ１４Ｃに進む。
【０１３７】
ノードｎに対応付けられた現在の処理量が、増加フロー探索結果に含まれる処理上限値とこれまでに生成した処理終了要求の処理量の和との差以下である場合、転送部１１０２は、新しい増加フロー探索結果を生成する。そして部分ノードリストｌｂ２とｌａ１を結合してできたノードリストを、生成した増加フロー探索結果のノードリストにする。またノードｎと対応付けられている流量値を、生成した増加フロー探索結果の処理上限値とする（Ｓ１４９）。
【０１３８】
転送部１１０２は、新しい増加フロー探索結果を生成する。そして部分ノードリストｌｂ１とｌａ２を結合してできたノードリストを、生成した増加フロー探索結果のノードリストにする。またノードｎと対応付けられている流量値を、生成した増加フロー探索結果の処理上限値とする（Ｓ１４Ａ）。
【０１３９】
転送部１１０２は、ノードｎに対応付けられたノードリストと現在の処理量から、処理終了要求を生成する。そして転送部１１０２は、当該ノードリストの起点ノードに生成した処理終了要求を送信する（Ｓ１４Ｂ）。
【０１４０】
ノードｎに対応付けられた現在の処理量が、受信した増加フロー探索結果に含まれる処理上限値とこれまでに生成した処理終了要求の処理量の和との差以下でない場合、転送部１１０２は、新しい増加フロー探索結果を生成する。そして部分ノードリストｌｂ２とｌａ１を結合してできたノードリストを、生成した増加フロー探索結果のノードリストにする。また受信した増加フロー探索結果に含まれる処理上限値とこれまでに生成した処理終了要求の処理量の和との差を、生成した増加フロー探索結果の処理上限値とする（Ｓ１４Ｃ）。
【０１４１】
転送部１１０２は、新しい増加フロー探索結果を生成する。そして部分ノードリストｌｂ１とｌａ２を結合してできたノードリストを、生成した増加フロー探索結果のノードリストにする。また受信した増加フロー探索結果に含まれる処理上限値とこれまでに生成した処理終了要求の処理量の和との差を、生成した増加フロー探索結果の処理上限値とする（Ｓ１４Ｄ）。
【０１４２】
転送部１１０２は、ノードｎに対応付けられたノードリストと、受信した増加フロー探索結果に含まれる処理上限値とこれまでに生成した処理終了要求の処理量の和との差から、処理終了要求を生成する。そして転送部１１０２は、当該ノードリストの起点ノードに生成した処理終了要求を送信する（Ｓ１４Ｅ）。
【０１４３】
転送部１１０２は、これまでに生成した処理終了要求の処理量の和が、受信した増加フロー探索結果の処理上限値未満であるか否か判定する（Ｓ１４Ｆ）。これまでに生成した処理終了要求の処理量の和が、受信した増加フロー探索結果の処理上限値未満である場合（Ｓ１４ＦのＹＥＳ）、転送部１１０２の処理はＳ１４６の次のループの処理に進む。一方、これまでに生成した処理終了要求の処理量の和が、受信した増加フロー探索結果の処理上限値未満でない場合（Ｓ１４ＦのＮＯ）、転送部１１０２の処理はＳ１４Ｇに進む。
【０１４４】
転送部１１０２は、受信した増加フロー探索結果に含まれる、キャンセルするノードリストｌを空にする（Ｓ１４Ｇ）。
【０１４５】
転送部１１０２は、受信した増加フロー探索結果のノードリストから、当該ノードより前の部分リストを削除する（Ｓ１４Ｈ）。
【０１４６】
転送部１１０２は、受信した増加フロー探索結果のノードリストにある当該ノードの次のノードに、受信した増加フロー探索結果を送信する（Ｓ１４ｌ）。
【０１４７】
転送部１１０２は、生成した増加フロー探索結果について、Ｓ１４Ｋの処理を実施する（Ｓ１４Ｊ）。
【０１４８】
転送部１１０２は、生成した増加フロー探索結果のノードリストの起点ノードに、その増加フロー探索結果を送信する（Ｓ１４Ｋ）。
【０１４９】
図１５は、探索処理部１１０の転送部１１０２が、処理終了要求に基づいてノード情報格納部１１１の情報の更新を行う動作を示すフローチャートである。
【０１５０】
探索処理部１１０の転送部１１０２は、受信した処理終了要求のノードリストに含まれる、当該ノードの１つ前のノードの識別子αを取得する（Ｓ１５１）。
【０１５１】
転送部１１０２は、処理終了要求のノードリストと処理量が等しい入ノードリストの情報を一つ削除する（Ｓ１５２）。
【０１５２】
転送部１１０２は、出ノードリスト中の、識別子αに対応する現在の上限値から処理終了要求の処理量を減算し、減算後の値で現在の上限値を更新する（Ｓ１５３）。
【０１５３】
転送部１１０２は、処理終了要求のノードリストに含まれる、当該ノードの１つ後のノードの識別子βを取得する（Ｓ１５４）。
【０１５４】
転送部１１０２は、出ノードリスト中の、識別子βに対応する現在の上限値に処理終了要求の処理量を加算し、加算後の値で現在の上限値を更新する（Ｓ１５５）。
【０１５５】
転送部１１０２は、当該ノードが処理ノードであるか否か判定する（Ｓ１５６）。当該ノードが処理ノードである場合（Ｓ１５６のＹＥＳ）、転送部１１０２の処理はＳ１５８に進む。一方、当該ノードが処理ノードでない場合（Ｓ１５６のＮＯ）、転送部１１０２の処理はＳ１５７に進む。
【０１５６】
当該ノードが処理ノードでない場合、転送部１１０２は、処理終了要求のノードリストに含まれる、当該ノードの１つ後のノードに処理終了要求を送信する（Ｓ１５７）。
【０１５７】
当該ノードが処理ノードである場合、転送部１１０２は、処理終了要求と対応する処理の終了指示を通信先決定部１１４に出力する（Ｓ１５８）。
【０１５８】
第２の実施の形態における通信制御システム９０がもたらす効果は、処理サーバで実施される処理を入れ替えることによって、データの処理時間が最小となるような処理サーバへの処理割り当てを行う可能性を高めることである。
【０１５９】
その理由は、探索処理部１１０等が、既に実行を開始している処理によって占有されている通信路や処理サーバを認識できるからである。これにより、データの転送やデータの処理を入れ替えることが可能となり、より単位時間当たりのデータ処理量を高めることが可能となる。以上のことから、データの処理時間が最小となる可能性を高めることができる。
【０１６０】
（第３の実施形態）
第３の実施形態について図面を参照して詳細に説明する。本実施形態の通信制御システム９０は、処理サーバが処理対象のデータを取得する際に使用する、データ転送経路の構成要素間で、データノードと処理ノードの組み合わせの決定に必要な情報の交換を行う。
【０１６１】
本実施形態では、処理対象のデータの送受信で使用する通信路を構成する要素毎に、通信先探索部１１を設ける。処理対象のデータの送受信で使用する通信路を構成する要素とは、例えば、データ格納部１４、通信網１０と接続するサーバ装置１の入出力部、通信網１０を構成するスイッチ３の入出力部等である。これらの通信先探索部３１は、他の通信先探索部１１と通信路に関する情報を交換する。
【０１６２】
図１６は、第３の実施形態に係る通信制御システム９０の構成例を示すブロック図である。図１６が示す例では、データの転送経路を構成するスイッチ３の各々に、通信先探索部３１と、データ送受信部３２を包含する。スイッチ３の通信先探索部３１は、サーバ装置１の通信先探索部１１と同等の機能を有する。通信先探索部３１は、他のスイッチ３の通信先探索部３１や、サーバ装置１の通信先探索部１１と、通信網１０を介して接続される。データ送受信部３２は、他のスイッチ３のデータ送受信部３２や、データ装置１のデータ処理部１３やデータ格納部１４と接続される。
【０１６３】
通信先探索部３１は、他の装置や、他のコンピュータに備えられていても良い。例えば、スイッチに割り当てられた識別子のハッシュ値を求め、求めたハッシュ値と対応するサーバ装置１でスイッチの通信先探索部１１を備えても良い。この場合、通信先探索部１１はスイッチから、通信路に関する情報を受け取る。
【０１６４】
図１７は、通信先探索部１１のノード情報生成部１１６が、装置のノード情報を生成する動作を示すフローチャートである。
【０１６５】
通信先探索部１１のノード情報生成部１１６は、ノード情報格納部１１１の出ノードリストを空にする（Ｓ１６１）。
【０１６６】
次にノード情報生成部１１６は、当該ノードが処理ノードであるか否か判定する（Ｓ１６２）。ノード情報生成部１１６は、当該ノードが処理ノードでない場合（Ｓ１６２のＮＯ）、ノード情報生成部１１６の処理はＳ１６３に進む。一方、当該ノードが処理ノードである場合（Ｓ１６２のＹＥＳ）、ノード情報生成部１１６の処理は終了する。
【０１６７】
当該ノードが処理ノードでない場合、ノード情報生成部１１６は、任意の処理ノードに至るデータ転送経路が含む、当該装置に接続された装置を示すノードについて、Ｓ１６４の処理を実施する（Ｓ１６３）。
【０１６８】
ノード情報生成部１１６は、そのノードの識別子を、当該ノードのノード情報格納部１１１の出ノードリストに格納する（Ｓ１６４）。
【０１６９】
第３の実施形態における通信制御システム９０がもたらす効果は、データ転送経路を構成する装置の情報を交換することによって、データの処理時間が最小となるような処理サーバへの処理割り当てを行う可能性をさらに高めることである。
【０１７０】
その理由は、通信先探索部１１が、装置の入出力部の帯域情報を個別に扱えるようになるからである。これにより、データ転送経路の可用帯域のボトルネックが通信制御システム９０で認識できるようになり、より単位時間当たりのデータ処理量を高めることが可能となる。以上のことから、データの処理時間が最小となる可能性を高めることができる。
【０１７１】
（第４の実施形態）
第４の実施形態について図面を参照して詳細に説明する。本実施形態の説明は、第１の実施形態の変形例を参照して行われる。本実施形態の通信制御システム９０は、処理サーバまでの到達経路の情報を包含する経路表を参照しながら、データノードと処理ノードの組み合わせの決定に必要な情報の交換を行う。
【０１７２】
本実施形態における通信制御システム９０は、最大フロー問題の解法のひとつであるＥｄｍｏｎｄｓ−Ｋａｒｐのアルゴリズムに基づいて、辺数最小である増加経路から順に特定し、データノードと処理ノードの組み合わせを決定する。これにより、本実施の形態における通信制御システム９０は、単位時間当たりの処理量を最大化する組み合わせを決定するまでの時間がＯ（ｍ２ｎ）であることが保証される。ただし、ｍはノード間の辺数、ｎはノード数である。
【０１７３】
図１８は、第４の実施形態における通信制御システム９０の構成例を示すブロック図である。本実施形態におけるサーバ装置１は、第１の実施形態のサーバ装置１に加えて、経路表生成部１１７と経路表格納部１１８を備える。
【０１７４】
経路表生成部１１７は、データ処理部情報格納部１１２と、データ格納部情報格納部１１５と、通信路情報生成部１１３が生成した通信路情報を参照して、経路表を生成する。生成された経路表は、経路表格納部１１８に格納される。
【０１７５】
探索処理部１１０は、増加フローの探索を行う際に、経路表格納部１１８を参照する。経路表格納部１１８に格納された経路表は、通信制御システム９０の状態変化に応じて更新される。経路表が更新される契機は、例えば、データ処理が開始されたり、終了したり、中止されたりした場合である。経路表はまた、通信網１０の使用状況の変化によって通信帯域が変化した際に更新されても良い。
【０１７６】
図１９は、通信先探索部１１の探索処理部１１０の構成例を示すブロック図である。本実施形態における通信先探索部１１は、更新部１１０６と経路表更新部１１０７を備える。
【０１７７】
更新部１１０６は、データ処理部情報格納部１１２と通信路情報生成部１１３とデータ格納部情報格納部１１５を参照して、処理割当要求を生成する。生成された処理割当要求は、転送部１１０２を介して他の通信先探索部１１に送信される。
【０１７８】
転送部１１０２は、経路表格納部１１８に格納された経路表を参照して、通信先探索部１１が交換するメッセージの転送先を決定する。
【０１７９】
経路表更新部１１０７は、データ処理部情報格納部１１２、通信路情報生成部１１３、データ格納部情報格納部１１５の情報を参照して、経路表の更新を行う。また、経路表更新部１１０７は、受信部１１０１が受信した経路表更新要求に従って、経路表の更新を行う。経路表更新部１１０７は、経路表更新要求を生成し、転送部１１０２を介して他の通信先探索部１１に送信する。
【０１８０】
図２０は、本実施形態における探索処理部１１０の受信部１１０１の動作を示すフローチャートである。本実施の形態における受信部１１０１は、処理割当要求と経路表更新要求を受信する。
【０１８１】
受信部１１０１が処理割当要求を受信すると、受信した処理割当要求を更新し、転送部１１０２が他ノードに転送する（Ｓ１９４）。
【０１８２】
受信部１１０１が経路表更新要求を受信すると、経路表更新部１１０７が経路表格納部１１８に格納された経路表の更新を行う（Ｓ１９５）。
【０１８３】
図２１は、通信先探索部１１の経路表生成部１１７が経路表を生成する動作を示すフローチャートである。
【０１８４】
通信先探索部１１の経路表生成部１１７は、経路表情報格納部１１８の経路表を空にする（Ｓ２０１）。
【０１８５】
次に経路表生成部１１７は、当該ノードが処理ノードであるか否か判定する（Ｓ２０２）。当該ノードが処理ノードでない場合（Ｓ２０２のＮＯ）、経路表生成部１１７の処理はＳ２０３に進む。一方、当該ノードが処理ノードである場合（Ｓ２０２のＹＥＳ）、経路表生成部１１７の処理はＳ２０５に進む。
【０１８６】
当該ノードが処理ノードでない場合、経路表生成部１１７は、データ集合Ｄｉについて、Ｓ２０４の処理を実施する（Ｓ２０３）。
【０１８７】
経路表生成部１１７は、集合名をＤｉ、ホップ数を無限大とする行を経路表情報格納部１１８の経路表に追加する（Ｓ２０４）。
【０１８８】
当該ノードが処理ノードである場合、経路表生成部１１７は、データ集合Ｄｉについて、Ｓ２０６の処理を実施する（Ｓ２０５）。
【０１８９】
経路表生成部１１７は、当該ノードがデータ集合Ｄｉの処理が実行可能であるか否か判定する（Ｓ２０６）。データ集合Ｄｉの処理が実行可能である場合（Ｓ２０６のＹＥＳ）、経路表生成部１１７の処理はＳ２０７に進む。一方、データ集合Ｄｉの処理が実行可能でない場合（Ｓ２０６のＮＯ）、経路表生成部１１７の処理はＳ２０Ａに進む。
【０１９０】
データ集合Ｄｉの処理が実行可能である場合、経路表生成部１１７は、集合名をＤｉ、ホップ数を０とする行を経路表情報格納部１１８の経路表に追加する（Ｓ２０７）。
【０１９１】
経路表生成部１１７は、データ集合をＤｉ、ホップ数を１、次ホップを当該ノードとして、経路表更新要求を生成する（Ｓ２０８）。
【０１９２】
経路表生成部１１７は、当該ノードを出ノードリストに含むノードに、経路表更新要求を送信する（Ｓ２０９）。
【０１９３】
データ集合Ｄｉの処理が実行可能でない場合、経路表生成部１１７は、集合名をＤｉ、ホップ数を無限大とする行を経路表情報格納部１１８の経路表に追加する（Ｓ２０Ａ）。
【０１９４】
図２２は、探索処理部１１０の経路表更新部１１０７が、受信した経路表更新要求に従って、経路表格納部１１８の経路表の更新を行う動作を示すフローチャートである。
【０１９５】
探索処理部１１０の経路表更新部１１０７は、経路表情報格納部１１８の経路表から、経路表更新要求が保持するデータ集合の識別子と対応する行を参照する（Ｓ２１２）。
【０１９６】
経路表更新部１１０７は、経路表更新要求が保持するホップ数が、Ｓ２１２で参照した行のホップ数より小さいか否か判定する（Ｓ２１３）。経路表更新要求が保持するホップ数がＳ２１２で参照した行のホップ数より小さい場合（Ｓ２１３のＹＥＳ）、経路表更新部１１０７の処理はＳ２１４に進む。一方、経路表更新要求が保持するホップ数がＳ２１２で参照した行のホップ数以上である場合（Ｓ２１３のＮＯ）、経路表更新部１１０７の処理はＳ２１５に進む。
【０１９７】
経路表更新要求が保持するホップ数がＳ２１２で参照した行のホップ数より小さい場合、経路表更新部１１０７は、Ｓ２１２で参照した行のホップ数と次ホップを、経路表更新要求が保持するホップ数と次ホップで置き換える（Ｓ２１４）。
【０１９８】
経路表更新要求が保持するホップ数がＳ２１２で参照した行のホップ数以上である場合、経路表更新部１１０７は、経路表更新要求が保持する次ホップが、Ｓ２１２で参照した行の次ホップと等しいか否か判定する（Ｓ２１５）。経路表更新要求が保持する次ホップが、Ｓ２１２で参照した行の次ホップと等しい場合（Ｓ２１５のＹＥＳ）、経路表更新部１１０７の処理はＳ２１６に進む。一方、経路表更新要求が保持する次ホップが、Ｓ２１２で参照した行の次ホップと異なる場合（Ｓ２１５のＮＯ）、経路表更新部１１０７の処理は終了する。
【０１９９】
経路表更新要求が保持する次ホップが、Ｓ２１２で参照した行の次ホップと等しい場合、経路表更新部１１０７は、経路表更新要求が保持するデータ集合の識別子について、出ノードリスト内のノードを参照して経路表を更新する（Ｓ２１６）。
【０２００】
経路表更新部１１０７は、データ集合の識別子を経路表更新要求が保持するもの、ホップ数を経路表の当該識別子と対応する行のホップ数に１を足したもの、次ホップを当該ノードとして、経路表更新要求を生成する（Ｓ２１７）。
【０２０１】
経路表更新部１１０７は、当該ノードを出ノードリストに含むノードに、Ｓ２１７で生成した経路表更新要求を送信する（Ｓ２１８）。
【０２０２】
図２３は、探索処理部１１０の経路表更新部１１０７が、出ノードリスト内のノードを参照して経路表を更新する動作を示すフローチャートである。
【０２０３】
探索処理部１１０の経路表更新部１１０７は、経路表情報格納部１１８の経路表について、受信した経路表更新要求が保持するデータ集合の識別子と対応する行の、ホップ数を無限大とする（Ｓ２２５）。
【０２０４】
経路表更新部１１０７は、出ノードリストは空か、又は、出ノードリスト内のノードとの転送可能量が全て０以下か否か判定する（Ｓ２２１）。出ノードリストは空か、又は、出ノードリスト内のノードとの転送可能量が全て０以下である場合（Ｓ２２１のＹＥＳ）、経路表更新部１１０７の処理は終了する。一方、出ノードリストは空でない、かつ、出ノードリスト内のノードとの転送可能量に０より大きいものがある場合（Ｓ２２１のＮＯ）、経路表更新部１１０７の処理はＳ２２２に進む。
【０２０５】
出ノードリストは空でないか、又は、出ノードリスト内のノードとの転送可能量に０より大きいものがある場合、経路表更新部１１０７は、出ノードリスト内のノードのうち、転送可能量が０より大きいノードについて、Ｓ２２３の処理を実施する（Ｓ２２２）。
【０２０６】
経路表更新部１１０７は、そのノードの経路表から、入力されたデータ集合の識別子と対応する行を取得する（Ｓ２２３）。
【０２０７】
経路表更新部１１０７は、経路表情報格納部１１８の経路表から、受信した経路表更新要求が保持するデータ集合の識別子と対応する行を取り出す。そして経路表更新部１１０７は、当該行の次ホップをＳ２２３で取得した行の中で最もホップ数の小さいノードに、ホップ数を最も小さいホップ数で置き換える（Ｓ２２４）。
【０２０８】
図２４は、処理ノードの経路表更新部１１０７が、データ処理部情報格納部１１２を参照して、処理状況の変化に合わせて経路表を更新する動作を示すフローチャートである。
【０２０９】
処理ノードの経路表更新部１１０７は、データ集合Ｄｉについて、Ｓ２３２乃至Ｓ２３６の処理を実施する（Ｓ２３１）。
【０２１０】
経路表更新部１１０７は、データ集合Ｄｉに対する処理は追加で実行可能か否か判定する（Ｓ２３２）。データ集合Ｄｉに対する処理が追加で実行可能である場合（Ｓ２３２のＹＥＳ）、経路表更新部１１０７の処理はＳ２３３に進む。一方、データ集合Ｄｉに対する処理が追加で実行可能でない場合（Ｓ２３２のＮＯ）、経路表更新部１１０７の処理はＳ２３４に進む。
【０２１１】
データ集合Ｄｉに対する処理が追加で実行可能である場合、経路表更新部１１０７は、経路表情報格納部１１８の経路表の、Ｄｉに対応する行のホップ数を０にする（Ｓ２３３）。
【０２１２】
データ集合Ｄｉに対する処理が追加で実行可能でない場合、経路表更新部１１０７は、経路表情報格納部１１８の経路表の、Ｄｉに対応する行のホップ数を無限大にする（Ｓ２３４）。
【０２１３】
経路表更新部１１０７は、データ集合の識別子をＤｉ、ホップ数を経路表の当該識別子と対応する行のホップ数に１を足したもの、次ホップを当該処理ノードとして、経路表更新要求を生成する（Ｓ２３５）。
【０２１４】
経路表更新部１１０７は、当該ノードを出ノードリストに含むノードに、経路表更新要求を送信する（Ｓ２３６）。
【０２１５】
図２５は、探索処理部１１０の経路表更新部１１０７が、データの転送状況の変化に合わせて経路表を更新する動作を示すフローチャートである。
【０２１６】
探索処理部１１０の経路表更新部１１０７は、経路表情報格納部１１８の経路表の行について、Ｓ２４２乃至Ｓ２４５の処理を実施する（Ｓ２４１）。
【０２１７】
経路表更新部１１０７は、その行のデータ集合の識別子を入力として、出ノードリスト内のノードを参照して経路表を更新する（Ｓ２４２）。この処理は、図２２が示す処理と同じである。
【０２１８】
経路表更新部１１０７は、Ｓ２４２の処理の後に、その行の情報に変化があったか否か判定する（Ｓ２４３）。その行の情報に変化があった場合（Ｓ２４３のＹＥＳ）、経路表更新部１１０７の処理はＳ２４４に進む。一方、その行の情報に変化がなかった場合（Ｓ２４３のＮＯ）、経路表更新部１１０７の処理はＳ２４１の次のループの処理に進む。
【０２１９】
その行の情報に変化があった場合、経路表更新部１１０７は、データ集合の識別子をその行の識別子に、ホップ数を経路表の当該識別子と対応する行のホップ数に１を足したものに、次ホップを当該ノードとして、経路表更新要求を生成する（Ｓ２４４）。
【０２２０】
経路表更新部１１０７は、当該ノードを出ノードリストに含むノードに、生成した経路表更新要求を送信する（Ｓ２４５）。
【０２２１】
図２６は、データノードの通信先探索部１１の更新部１１０６と転送部１１０２が処理割当要求を送信する動作を示すフローチャートである。
【０２２２】
データノードの通信先探索部１１の更新部１１０６は、終了設定がされているか否か判定する（Ｓ２５１）。終了設定がされている場合（Ｓ２５１のＹＥＳ）、更新部１１０６の処理は終了する。一方、終了設定がされていない場合（Ｓ２５１のＮＯ）、更新部１１０６の処理はＳ２５２に進む。
【０２２３】
終了設定がされていない場合、更新部１１０６は、データ格納部に格納されている処理済みでないデータを含むデータ集合Ｄｉについて、Ｓ２５３乃至Ｓ２５５の処理を実施する（Ｓ２５２）。
【０２２４】
更新部１１０６は、経路表情報格納部１１８の経路表を参照し、Ｄｉに対応する行のホップ数が無限大か否か判定する（Ｓ２５３）。Ｄｉに対応する行のホップ数が無限大である場合（Ｓ２５３のＹＥＳ）、更新部１１０６の処理はＳ２５２の次のループの処理に進む。一方、Ｄｉに対応する行のホップ数が無限大でない場合（Ｓ２５３のＮＯ）、更新部１１０６の処理はＳ２５６に進む。
【０２２５】
更新部１１０６は、経路表情報格納部１１８の経路表を参照し、Ｄｉに対応する行の次ホップへの転送可能量が０より大きいか否か判定する（Ｓ２５６）。Ｄｉに対応する行の次ホップへの転送可能量が０より大きい場合（Ｓ２５６のＹＥＳ）、更新部１１０６の処理はＳ２５４に進む。一方、Ｄｉに対応する行の次ホップへの転送可能量が０以下である場合（Ｓ２５６のＮＯ）、更新部１１０６の処理はＳ２５２の次のループの処理に進む。
【０２２６】
Ｄｉに対応する行のホップ数が無限大でない場合、更新部１１０６は、起点ノードを当該ノードとして、処理割当要求を生成する（Ｓ２５４）。
【０２２７】
更新部１１０６は、経路表のＤｉに対応する行を参照する。その行の次ホップと対応するノードへの転送可能量を処理上限値として生成した処理割当要求に設定する。そして更新部１１０６は生成した処理割当要求を転送部１１０２に出力する。転送部１１０２は入力された処理割当要求を、更新部１１０６が参照した経路表の行の次ホップに送信する（Ｓ２５５）。
【０２２８】
図２７は、探索処理部１１０の受信部１１０１が受信した処理割当要求を更新し他ノードに転送する動作を示すフローチャートである。
【０２２９】
探索処理部１１０の受信部１１０１は、当該ノードが処理ノードであるか否か判定する（Ｓ２６１）。当該ノードが処理ノードである場合（Ｓ２６１のＹＥＳ）、受信部１１０１の処理はＳ２６３に進む。一方、当該ノードが処理ノードでない場合（Ｓ２６１のＮＯ）、受信部１１０１の処理はＳ２６２に進む。
【０２３０】
当該ノードが処理ノードである場合、受信部１１０１は、当該ノードが受信した処理割当要求が内包するデータ集合の処理を実行可能であるか否か判定する（Ｓ２６３）。当該ノードが処理を実行不可能である場合（Ｓ２６３のＮＯ）、受信部１１０１の処理は終了する。
【０２３１】
当該ノードが受信した処理割当要求が内包するデータ集合の処理を実行可能である場合（Ｓ２６３のＹＥＳ）、受信部１１０１は、処理割当要求が保持する処理上限値と、当該ノードの単位時間当たりの処理可能量を比較する。そして受信部１１０１は、比較した値のうちどちらか小さい値を、受信した処理割当要求の新たな処理上限値とする（Ｓ２６７）。
【０２３２】
受信部１１０１は、処理割当要求のノードリストと処理上限値を探索結果とし、通信先決定部１１４に探索結果を出力する（Ｓ２６８）。
【０２３３】
当該ノードが処理ノードでない場合、受信部１１０１は、受信した処理割当要求が保持するデータ集合の識別子に対応する、経路表情報格納部１１８の経路表の行を参照する（Ｓ２６２）。
【０２３４】
受信部１１０１は、Ｓ２６２で参照した行のホップ数が無限大か否か判定する（Ｓ２６４）。ホップ数が無限大である場合（Ｓ２６４のＹＥＳ）、受信部１１０１の処理は終了する。一方、ホップ数が無限大でない場合（Ｓ２６４のＮＯ）、受信部１１０１の処理はＳ２６５に進む。
【０２３５】
ホップ数が無限大でない場合、受信部１１０１は、Ｓ２６２で参照した行の次ホップへの転送可能量が０より大きいか否か判定する（Ｓ２６５）。次ホップへの転送可能量が０以下である場合（Ｓ２６５のＮＯ）、受信部１１０１の処理は終了する。一方、次ホップへの転送可能量が０より大きい場合（Ｓ２６５のＹＥＳ）、受信部１１０１の処理はＳ２６６に進む。
【０２３６】
次ホップへの転送可能量が０より大きい場合、受信部１１０１は、処理割当要求に、次ホップのノードに接続された通信路の転送可能量と探索要求内の上限値のどちらか小さい値を新しい処理上限値として設定する。受信部１１０１はまた、当該ノードを処理割当要求のノードリストに追加する。そして受信部１１０１は、転送部１１０２を介して、参照した行の次ホップのノードに処理割当要求を送信する（Ｓ２６６）。
【０２３７】
本実施形態の通信先探索部１１は、経路表の更新を適切に行うために、上述したメッセージ以外のメッセージを交換しても良い。例えば、経路表の循環参照を回避するために、経路表更新要求を送信してきたノードに対して、ホップ数を無限大かつ次ホップを自ノードとするメッセージを送信しても良い。また、本実施形態の通信先探索部１１は、経路表の更新を適切に行うために、経路表更新要求を送信するノードを制限しても良い。例えば、経路表の循環参照を回避するために、経路表更新要求を送信する契機となった別の経路表更新要求を送信してきたノードを、経路表更新要求の送信対象から除外しても良い。
【０２３８】
本実施形態の通信先探索部１１は、経路表の更新を適切に行うために、経路表の更新を抑制しても良い。例えば、経路表の循環参照を回避するために、ホップ数が無限大となった経路の更新を一定時間抑制しても良い。
【０２３９】
本実施形態の通信先探索部１１は、経路表の更新を適切に行うために、経路表のホップ数に上限値を設けても良い。この場合、上述の「無限大のホップ数」は、上限値より大きい任意の値となる。
【０２４０】
第４の実施形態における通信制御システム９０がもたらす第１の効果は、短時間でデータノードと処理ノードの組み合わせの探索が完了することである。
【０２４１】
その理由は、本実施の形態における通信制御システム９０が、処理ノードへの最短経路を示す経路表を用いることで、単位時間当たりの処理量を最大化する組み合わせを決定するまでの時間がＯ（ｍ２ｎ)であることが保証されるからである。
【０２４２】
第４の実施形態における通信制御システム９０がもたらす第２の効果は、データノードと処理ノードの組み合わせの探索で消費する通信帯域が抑えられることである。
【０２４３】
その理由は、本実施の形態における通信制御システム９０が、処理ノードへの最短経路を示す経路表を用いることで、メッセージをフラッディングする必要なく探索が行えるからである。
【０２４４】
（第４の実施形態の変形例）
第４の実施形態の通信先探索部１１は、複数のデータ集合がある時、データノードと処理ノードの組み合わせの探索順序を限定しても良い。
【０２４５】
この場合、第４の実施形態は以下のように変形される。データノードの通信先探索部１１が探索を開始する際（図２５参照）、Ｓ２５２の処理でデータ集合Ｄｉの順序を、ある特定の順序に限定する。後述する第４の実施の形態の具体例では、例えば、処理負荷が小さいものから昇順になるように限定する。
【０２４６】
第４の実施形態の変形例における通信制御システム９０は、データ集合によって処理の負荷が異なる際に、データの処理時間が最小となるような処理サーバへの処理割り当てを行う可能性を高める。これは、第４の実施形態の処理ノードでは、処理ノードと通信網の性能を最大限利用してデータ処理ができない場合があるのに対して、第４の実施形態の変形例における処理ノードでは、処理ノードと通信網の性能を効率良く利用してデータ処理が行える可能性が高まるからである。例えば、処理負荷の小さいデータ集合を優先して、すなわち単位時間当たりの処理可能量が大きい処理を行うデータ集合を優先して、処理ノードの探索を実行する。優先順位は、例えばそのまま処理可能量が大きい順に探索を実行するようにしてもよいし、データ集合の処理可能量を一定の範囲ずつ段階的にランク付けし、ランク内の優先順位は問わないが、ランク順で探索を実行するようにしてもよい。これらの例に示すようにすれば、処理ノードの処理量に対する通信網の転送量の比の値が大きいものから順に処理が実行されるので、単位時間当たりの処理量が高まる。これにより、データの処理時間が最小となる可能性を高める。
【０２４７】
［［各実施形態についての具体例に即した説明］］
以下に実施例を挙げ、上述の各実施形態を更に詳細に説明する。なお、本発明は以下の各実施例から何ら限定を受けない。
【０２４８】
（実施例１）
実施例１では、上述の第１の実施形態の具体例を示す。
【０２４９】
図２８は、実施例１で使用される通信制御システム９０の構成を示すブロック図である。本通信制御システム９０は、スイッチｓｗ１及びｓｗ２で接続されたサーバ装置ｎ１乃至ｎ４で構成される。
【０２５０】
サーバ装置ｎ１乃至ｎ４は、状況に応じ処理ノードとしてもデータノードとしても機能する。サーバ装置ｎ１乃至ｎ４は、データ格納部１４として、ディスクＤ１乃至Ｄ４をそれぞれ備える。サーバ装置ｎ１は利用可能なデータ処理部１３としてｐ１を、サーバ装置ｎ３は利用可能なデータ処理部１３としてｐ３を備える。
【０２５１】
図２９は、各ノードが備えるデータ処理部情報格納部１１２に格納されたデータ処理部情報を例示する図である。実際は、各処理ノードのデータ処理部情報格納部１１２が、サーバＩＤと対応する図２９の表の行を個別に格納する。本例では、データ処理部情報として処理負荷情報と残存資源量を包含する。処理負荷情報は、毎秒当たり１ＭＢのデータを処理する際の消費資源量を示す。本例では、処理ノードｎ１での処理負荷は０．０２／［ＭＢ／ｓ］、残存資源量は１である。また、処理ノードｎ３での処理負荷は０．００５／［ＭＢ／ｓ］、残存資源量は０．７５である。
【０２５２】
図３０は、各ノードが備えるデータ格納部情報格納部１１５に格納されたデータ格納部情報を例示する図である。実際は、各データノードのデータ格納部情報格納部１１５が、サーバＩＤと対応する図３０の表の行を個別に格納する。本例では、データノードｎ２がデータｄａ及びｄｂを格納する。また、データノードｎ４がデータｄｃを格納する。
【０２５３】
図３１は、通信路情報生成部１１３が生成する通信路情報を例示する図である。サーバｎ２からサーバｎ１へのデータ送信時の可用帯域は５０ＭＢ／ｓである。同様に、サーバｎ２からサーバｎ３へのデータ送信時の可用帯域は５０ＭＢ／ｓ、サーバｎ４からサーバｎ１へのデータ送信時の可用帯域は５０ＭＢ／ｓ、サーバｎ４からサーバｎ３へのデータ送信時の可用帯域は１００ＭＢ／ｓである。
【０２５４】
クライアントによってプログラムの実行が指示された時、全ての処理ノード及び全てのデータノードが備えるデータ処理部情報格納部１１２及びデータ格納部情報格納部１１５が、図２９及び図３０に示す状態であり、通信路情報生成部１１３が生成する通信路情報が図３１に示す情報であったとする。
【０２５５】
図３２−１Ａは、実施例１における通信制御システム９０でのメッセージ送受信の流れを例示する図である。ｎ２及びｎ４は、ノード情報格納部を参照して増加フロー探索要求を生成し、ｎ１及びｎ３に送信する。ｎ１及びｎ３は、受信した増加フロー探索要求を参照して探索結果を生成し、通信先決定部に出力する。
【０２５６】
図３２−１Ｂは、ｎ２のノード情報格納部が格納する、ノード情報を例示する図である。このノード情報は、例えば、転送先ｎ１には５０ＭＢ／ｓでデータの転送が可能であることを示す。ノード情報が包含するメッセージ送信先は、生成した増加フロー探索要求の送信先を示す。
【０２５７】
図３２Ａ乃至図３２Ｉは、増加フローの探索が行われた場合を例示する図である。
【０２５８】
図３２Ａは、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。頂点が各ノードを、頂点から出る辺が指し示す頂点が出ノードリストに包含されている各ノードを示す。辺に付記されている値は、辺の始点から終点へデータを転送する際の転送可能量を示す。本例では、データノードｎ２の出ノードリストは、処理ノードｎ１及びｎ３を包含する。データノードｎ２の通信路情報生成部１１３は、処理ノードｎ１への転送可能量として５０ＭＢ／ｓを返す。また、データノードｎ２の通信路情報生成部１１３は、処理ノードｎ３への転送可能量として５０ＭＢ／ｓを返す。同様に、データノードｎ４の出ノードリストは、処理ノードｎ１及びｎ３を包含する。データノードｎ４の通信路情報生成部１１３は、処理ノードｎ１への転送可能量として５０ＭＢ／ｓを返す。また、データノードｎ４の通信路情報生成部１１３は、処理ノードｎ３への転送可能量として１００ＭＢ／ｓを返す。
【０２５９】
ここで、データノードｎ２がフラッディングによって増加フロー探索要求を送信したとする。図３２Ｂは、データノードｎ２が送信した増加フロー探索要求とその送信先を示す図である。データノードｎ２は、ノードリストが（ｎ２，）、処理上限値が５０ＭＢ／ｓの増加フロー探索要求を処理ノードｎ１に送信する。一方、データノードｎ２は、ノードリストが（ｎ２，）、処理上限値が５０ＭＢ／ｓの増加フロー探索要求を処理ノードｎ３に送信する。
【０２６０】
一方、データノードｎ２とは別に、データノードｎ４がフラッディングによって増加フロー探索要求を送信したとする。図３２Ｃは、データノードｎ４が送信した増加フロー探索要求とその送信先を示す図である。データノードｎ４は、ノードリストが（ｎ４，）、処理上限値が５０ＭＢ／ｓの増加フロー探索要求を処理ノードｎ１に送信する。一方、データノードｎ４は、ノードリストが（ｎ４，）、処理上限値が１００ＭＢ／ｓの増加フロー探索要求を処理ノードｎ３に送信する。
【０２６１】
ここで、データノードｎ２が送信した増加フロー探索要求が処理ノードｎ１に到達したとする。すると処理ノードｎ１はデータ処理部情報格納部１１２を参照して、データ処理可能量を求める。そして探索要求が包含する処理上限値とデータ処理可能量を比較し、小さい値を処理ノードｎ１での処理可能量とする。本例では、処理ノードｎ１での処理可能量は、処理負荷が０．０２／［ＭＢ／ｓ］、残存資源量が１であることから、５０ＭＢ／ｓである。そこで処理ノードｎ１はデータノードｎ２に格納されたデータのひとつ（ここではｄａ）の処理を５０ＭＢ／ｓで開始する。図３２Ｄは、実施例１で上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。図３２Ｅは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。
【０２６２】
次に、データノードｎ４が送信した増加フロー探索要求が処理ノードｎ１に到達したとする。ここで処理ノードｎ１のデータ処理部情報格納部１１２を参照すると、図３２Ｅが示すように残存資源量が０である。従って処理ノードｎ１はデータの処理は行えないと判定する。
【０２６３】
次に、データノードｎ４が送信した増加フロー探索要求が処理ノードｎ３に到達したとする。ここで処理ノードｎ３のデータ処理部情報格納部１１２を参照すると、図３２Ｅが示すように処理負荷が０．００５／［ＭＢ／ｓ］、残存資源量が０．７５である。よって処理ノードｎ３のデータ処理可能量は１５０ＭＢ／ｓとなる。探索要求が包含する処理上限値は１００ＭＢ／ｓであるので、処理ノードｎ３の処理可能量は１００ＭＢ／ｓとなる。そこで処理ノードｎ３はデータノードｎ４に格納されたデータのひとつ（ここではｄｃ）の処理を１００ＭＢ／ｓで開始する。図３２Ｆは、上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。図３２Ｇは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。
【０２６４】
次に、データノードｎ２が送信した増加フロー探索要求が処理ノードｎ３に到達したとする。ここで処理ノードｎ３のデータ処理部情報格納部１１２を参照すると、図３２Ｇが示すように処理負荷が０．００５／［ＭＢ／ｓ］、残存資源量が０．２５である。よって処理ノードｎ３のデータ処理可能量は５０ＭＢ／ｓとなる。探索要求が包含する処理上限値は５０ＭＢ／ｓであるので、処理ノードｎ３の処理可能量は５０ＭＢ／ｓとなる。そこで処理ノードｎ３はデータノードｎ２に格納されたデータのひとつ（ここではｄｂ）の処理を５０ＭＢ／ｓで開始する。図３２Ｈは、上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。図３２Ｉは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。
【０２６５】
図３３は、上述の操作が実行された後に行われる、データ送受信の一例を示す図である。
【０２６６】
（実施例２）
実施例２は、実施例１を基に、差分を示すことで説明される。
【０２６７】
図３４は、実施例２で使用される通信制御システム９０の構成を示すブロック図である。本通信制御システム９０は、スイッチｓｗ１及びｓｗ２で接続されたサーバ装置ｎ１乃至ｎ４で構成される。本例では、既に処理ノードｎ１のデータ処理部ｐ１によって、データノードｎ２のデータ格納部Ｄ２が格納するデータｄａが５０ＭＢ／ｓで処理されているとする。
【０２６８】
図３５は、各ノードが備えるデータ処理部情報格納部１１２に格納されたデータ処理部情報を例示する図である。本例では、処理ノードｎ１での処理負荷は０．０２／［ＭＢ／ｓ］、残存資源量は０である。また、処理ノードｎ３での処理負荷は０．０２／［ＭＢ／ｓ］、残存資源量は１である。
【０２６９】
図３６は、各ノードが備えるデータ格納部情報格納部１１５に格納されたデータ格納部情報を例示する図である。本例では、データノードｎ２がデータｄａ及びｄｂを格納する。また、データノードｎ４がデータｄｃを格納する。
【０２７０】
図３７は、通信路情報生成部１１３が生成する通信路情報を例示する図である。サーバｎ２からサーバｎ１へのデータ送信時の性能は５０ＭＢ／ｓで、現在の可用帯域は０ＭＢ／ｓである。同様に、サーバｎ２からサーバｎ３へのデータ送信時の性能と可用帯域は５０ＭＢ／ｓ、サーバｎ４からサーバｎ１へのデータ送信時の性能と可用帯域は５０ＭＢ／ｓ、サーバｎ４からサーバｎ３へのデータ送信時の性能と可用帯域は１０ＭＢ／ｓである。
【０２７１】
クライアントによってプログラムの実行が指示された時、全ての処理ノード及び全てのデータノードが備えるデータ処理部情報格納部１１２及びデータ格納部情報格納部１１５が、図３５及び図３６に示す状態であり、通信路情報生成部１１３が生成する通信路情報が図３７に示す情報であったとする。
【０２７２】
図３８Ａ乃至図３８Ｑは、増加フローの探索が行われた場合を例示する図である。
【０２７３】
図３８Ａは、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。本例では、データノードｎ２の出ノードリストは、処理ノードｎ１及びｎ３を包含する。処理ノードｎ１に対しては、ノードリスト［ｎ２，ｎ１］と、当該転送経路の転送量５０ＭＢ／ｓが対応付けられている。データノードｎ２の通信路情報生成部１１３は、処理ノードｎ１への転送可能量として０ＭＢ／ｓを返す。また、データノードｎ２の通信路情報生成部１１３は、処理ノードｎ３への転送可能量として５０ＭＢ／ｓを返す。同様に、データノードｎ４の出ノードリストは、処理ノードｎ１及びｎ３を包含する。データノードｎ４の通信路情報生成部１１３は、処理ノードｎ１への転送可能量として５０ＭＢ／ｓを返す。また、データノードｎ４の通信路情報生成部１１３は、処理ノードｎ３への転送可能量として１０ＭＢ／ｓを返す。さらに、本例では処理ノードｎ１の出ノードリストがデータノードｎ２を包含する。処理ノードｎ１の出ノードリストは、データノードｎ２への転送可能量として５０ＭＢ／ｓを記憶している。
【０２７４】
図３８Ｂは、各ノードの入ノードリストを示す図である。処理ノードｎ１はデータノードｎ２のデータを処理中であるので、処理ノードｎ１の入ノードリストはデータノードｎ２を包含する。そしてデータノードｎ２とノードリスト［ｎ２，ｎ１］が対応付けられている。
【０２７５】
ここで、データノードｎ４が増加フロー探索要求を送信したとする。図３８Ｃは、データノードｎ４が送信した増加フロー探索要求とその送信先を示す図である。データノードｎ４は、ノードリストが（ｎ４，）、処理上限値が５０ＭＢ／ｓの増加フロー探索要求を処理ノードｎ１に送信する。
【０２７６】
データノードｎ４が送信した増加フロー探索要求が処理ノードｎ１に到達したとする。ここで処理ノードｎ１のデータ処理部情報格納部１１２を参照すると、図３５が示すように残存資源量が０であるため、処理ノードｎ１は追加で処理を実行しない。次に、処理ノードｎ１は出ノードリストを参照し、データノードｎ２と、ｎ２に対応する転送可能量５０ＭＢ／ｓを特定する。また、データノードｎ２は処理ノードｎ１の入ノードリストに入っているので、探索要求の交換フラグを有効にする。そして処理ノードｎ１は探索要求のノードリストに処理ノードｎ１を追加し、探索要求の処理上限値を５０ＭＢ／ｓとする。処理ノードｎ１は探索要求をデータノードｎ２に送信する。図３８Ｄは処理ノードｎ１がデータノードｎ２に送信した増加フロー探索要求を例示する図である。
【０２７７】
処理ノードｎ１が送信した増加フロー探索要求がデータノードｎ２に到達したとする。ここでデータノードｎ２は、出ノードリストを参照し、転送先として処理ノードｎ３を選択する。処理ノードｎ３への転送可能量は、図３７が示すように、５０ＭＢ／ｓである。よって、データノードｎ２は探索要求のノードリストにデータノードｎ２を追加し、探索要求の処理上限値を５０ＭＢ／ｓとする。データノードｎ２は探索要求をデータノードｎ３に送信する。図３８Ｅはデータノードｎ２が処理ノードｎ３に送信した増加フロー探索要求を例示する図である。
【０２７８】
データノードｎ２が送信した増加フロー探索要求が処理ノードｎ３に到達したとする。ここで処理ノードｎ３のデータ処理部情報格納部１１２を参照すると、処理ノードｎ３の処理負荷量が０．０２／［ＭＢ／ｓ］、残存資源量が１である。よって処理ノードｎ３は５０ＭＢ／ｓの処理が可能である。そこで処理ノードｎ３は探索要求のノードリストに処理ノードｎ３を追加し、処理上限値を５０ＭＢ／ｓとする。そして処理ノードｎ３は、探索要求のノードリストと処理上限値から増加フロー探索結果を生成し、ノードリストの起点であるデータノードｎ４に送信する。図３８Ｆは処理ノードｎ３がデータノードｎ４に送信した増加フロー探索結果を例示する図である。
【０２７９】
処理ノードｎ３が送信した増加フロー探索結果がデータノードｎ４に到達したとする。探索結果の交換フラグが有効であるので、データノードｎ４は図１４Ａ乃至図１４Ｃが示す処理を実行する。するとデータノードｎ４は、処理ノードｎ１に探索結果を送信する。図３８Ｇは、データノードｎ４が処理ノードｎ１に送信した増加フロー探索結果を例示する図である。
【０２８０】
データノードｎ４が送信した増加フロー探索結果が処理ノードｎ１に到達したとする。探索結果の交換フラグが有効であるので、処理ノードｎ１は図１４Ａ乃至図１４Ｃが示す処理を実行する。すると処理ノードｎ１は、ノードリストの次のノードｎ２が入ノードリストに含まれているので、キャンセルするノードリストに処理ノードｎ１を追加する。そして処理ノードｎ１は、データノードｎ２に探索結果を送信する。図３８Ｈは、処理ノードｎ１がデータノードｎ２に送信した増加フロー探索結果を例示する図である。
【０２８１】
処理ノードｎ１が送信した増加フロー探索結果がデータノードｎ２に到達したとする。探索結果の交換フラグが有効であるので、処理ノードｎ２は図１４Ａ乃至図１４Ｃが示す処理を実行する。するとデータノードｎ２は、キャンセルするノードリストにデータノードｎ２を追加する。そして出ノードリストを参照し、処理ノードｎ１に対応するノードリスト［ｎ２，ｎ１］を取り出す。取り出したノードリスト［ｎ２，ｎ１］と探索結果のノードリスト［ｎ４，ｎ１，ｎ２，ｎ３］から、新しい探索結果が包含するノードリスト［ｎ４，ｎ１］と［ｎ２，ｎ３］を生成する。データノードｎ２は、生成したノードリストを包含する新しい探索結果を生成する。新しい探索結果の処理上限値は５０ＭＢ／ｓである。また、ノードリストが［ｎ２，ｎ１］、処理量が５０ＭＢ／ｓである処理終了要求を生成する。
【０２８２】
図３８Ｉは、データノードｎ２が生成した処理終了要求を例示する図である。データノードｎ２は、図３８Ｉが示す処理終了要求を、対応する送信先に送信する。図３８Ｊは、データノードｎ２が生成した増加フロー探索結果を例示する図である。データノードｎ２は、図３８Ｊが示す増加フロー探索結果を、対応する送信先に送信する。
【０２８３】
データノードｎ２が送信した処理終了要求がデータノードｎ２に到達したとする。するとデータノードｎ２は出ノードリストから、対応付けられたノードリストに［ｎ２，ｎ１］を含む処理ノードｎ１の情報を取り出す。取り出した情報が包含する処理量から、処理終了要求が包含する処理量５０ＭＢ／ｓを減算する。ここでは計算後の処理量が０になるので、当該情報を削除する。そして処理ノードｎ１に対応する転送可能量に５０ＭＢ／ｓ加算する。その後、データノードｎ２は処理終了要求を処理ノードｎ１に転送する。図３８Ｋは、上述の処理が実行された後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【０２８４】
データノードｎ２が送信した処理終了要求が処理ノードｎ１に到達したとする。すると処理ノードｎ１は、入ノードリストから処理終了要求が包含する転送経路を参照し、処理ノードｎ１の１つ前のノードであるデータノードｎ２を削除する。そして処理ノードｎ１は、出ノードリストのうち、データノードｎ２に対応付けられている転送可能量を５０ＭＢ／ｓ減算する。また、処理ノードｎ２は処理終了要求と対応するデータ処理を終了もしくは中断する。図３８Ｌは、上述の処理が実行された後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表すグラフである。
【０２８５】
データノードｎ２が送信した、ノードリストが［ｎ２，ｎ３］、処理上限値が５０ＭＢ／ｓである増加フロー探索結果がデータノードｎ２に到達したとする。探索結果の交換フラグが無効であるので、処理ノードｎ１は図１３ＡのＳ１３３以降の処理を実行する。すると、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストは、図３８Ｍが示すようになる。データノードｎ２は探索結果を処理ノードｎ３に送信する。
【０２８６】
データノードｎ２が送信した、ノードリストが［ｎ２，ｎ３］、処理上限値が５０ＭＢ／ｓである増加フロー探索結果が処理ノードｎ３に到達したとする。すると、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストは、図３８Ｎが示すようになる。また、処理ノードｎ３はデータノードｎ２のデータ（例えば、データｄｂ）の処理を開始する。
【０２８７】
データノードｎ２が送信した、ノードリストが［ｎ４，ｎ１］、処理上限値が５０ＭＢ／ｓである増加フロー探索結果がデータノードｎ４に到達したとする。すると、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストは、図３８Ｏが示すようになる。
【０２８８】
データノードｎ２が送信した、ノードリストが［ｎ４，ｎ１］、処理上限値が５０ＭＢ／ｓである増加フロー探索結果が処理ノードｎ１に到達したとする。すると、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストは、図３８Ｐが示すようになる。また、処理ノードｎ１はデータノードｎ４のデータ（例えば、データｄｃ）の処理を開始する。
【０２８９】
上述の操作が行われた後の入ノードリストを図３８Ｑに示す。図３９は、上述の操作が実行された後に行われる、データ送受信の一例を示す図である。
【０２９０】
（実施例３）
実施例３は、実施例１を基に、差分を示すことで説明される。
【０２９１】
図４０は、実施例３で使用される通信制御システム９０の構成を示すブロック図である。本通信制御システム９０は、スイッチｓｗで接続されたサーバ装置ｎ１乃至ｎ４で構成される。
【０２９２】
サーバ装置ｎ１乃至ｎ４は、状況に応じ処理サーバとしてもデータサーバとしても機能する。サーバ装置ｎ１乃至ｎ４は、データ格納部１４として、ディスクＤ１乃至Ｄ４をそれぞれ備える。サーバ装置ｎ１乃至ｎ３は利用可能なデータ処理部１３としてｐ１乃至ｐ３をそれぞれ備える。
【０２９３】
図４１は、各ノードが備えるデータ処理部情報格納部１１２に格納されたデータ処理部情報を例示する図である。本例では、処理ノードｎ１乃至ｎ３は共に、処理負荷は０．０２／［ＭＢ／ｓ］、残存資源量は１である。
【０２９４】
図４２は、各ノードが備えるデータ格納部情報格納部１１５に格納されたデータ格納部情報を例示する図である。本例では、データノードｎ２のデータ格納部Ｄ２がデータｄａ及びｄｂを格納する。また、データノードｎ４のデータ格納部Ｄ４がデータｄｃを格納する。
【０２９５】
図４３は、通信路情報生成部１１３が生成する通信路情報を例示する図である。ディスクＤ２の出力時の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：Ｄ２ＯＮ２が示す行を参照）。以下同様に、ディスクＤ４の出力時の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：Ｄ４ＯＮ４が示す行を参照）。サーバ装置ｎ２から出力する際の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：ＯＮ２ＳＷが示す行を参照）。サーバ装置ｎ４から出力する際の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：ＯＮ４ＳＷが示す行を参照）。スイッチｓｗからサーバ装置ｎ１へ入力する際の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：ＳＷｎ１が示す行を参照）。スイッチｓｗからサーバ装置ｎ２へ入力する際の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：ＳＷｎ２が示す行を参照）。スイッチｓｗからサーバ装置ｎ３へ入力する際の可用帯域は１００ＭＢ／ｓである（入出力経路ＩＤ：ＳＷｎ３が示す行を参照）。
【０２９６】
クライアントによってプログラムの実行が指示された時、全てのノードが備えるデータ処理部情報格納部１１２及びデータ格納部情報格納部１１５が、図４１及び図４２に示す状態であり、通信路情報生成部１１３が生成する通信路情報が図４３に示す情報であったとする。
【０２９７】
図４４−１Ａは、実施例３における通信制御システム９０でのメッセージ送受信の流れを例示するブロック図である。例えば、サーバ装置ｎ２は、ノードＤ２及びＯＮ２を管理するプロセスを実行する。ノードＤ２を管理するプロセスは、ノード情報格納部を参照して増加フロー探索要求を生成し、ＯＮ２に送信する。ノードＯＮ２を管理するプロセスは、ノード情報格納部を参照して増加フロー探索要求を更新し、ｎ２及びノードｉ２ｓｗを管理するプロセスを実行するスイッチｓｗに送信する。
【０２９８】
図４４−１Ｂは、ノードＯＮ２を管理するプロセスのノード情報格納部が格納する、ノード情報を例示する図である。このノード情報は、例えば、転送先ｉ２ｓｗには１００ＭＢ／ｓでデータの転送が可能であることを示す。ノード情報が包含するメッセージ送信先は、生成した増加フロー探索要求の送信先を示す。例えばノードｉ２ｓｗを宛先とするメッセージは、スイッチｓｗに送信される。
【０２９９】
図４４Ａ乃至図４４Ｊは、増加フローの探索が行われた場合を例示する図である。
【０３００】
図４４Ａは、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量と、出ノードリストのノードに対応付けられたデータ転送経路を示すノードリストを表したグラフである。各ノードの出ノードリストは、頂点から出る辺と辺の先の頂点の集合で表されている。例えば、データ格納部を示すノードＤ２の出ノードリストは、ＯＮ２を包含する。また、サーバ装置ｎ２の出力部を示すノードＯＮ２の出ノードリストは、ｉ２ｓｗとｎ２を包含する。他のノードについても同様である。
【０３０１】
また、図４４Ａの各辺に付与されている値は、当該転送経路の可用帯域を示す。値の無い辺については、可用帯域を無限大として扱うことを示す。
【０３０２】
本実施例では、データ格納部やサーバ装置からの出力部、サーバ装置への入力部を示すノードは、それらを備える各サーバ装置で実行されているものとする。また、スイッチの入力部と出力部を示すノードは、それらと接続されているサーバ装置で実行されているものとする。
【０３０３】
ここで、ノードＤ２が増加フロー探索要求を送信し、その探索要求が処理ノードｎ２に到達したとする。図４４Ｂは、処理ノードｎ２が受信した増加フロー探索要求を示す図である。すると処理ノードｎ２はデータ処理部情報格納部１１２を参照して、データ処理可能量を求める。そして探索要求が包含する処理上限値とデータ処理可能量を比較し、小さい値を処理ノードｎ２での処理可能量とする。本例では、処理ノードｎ２での処理可能量は、処理負荷が０．０２／［ＭＢ／ｓ］、残存資源量が１であることから、５０ＭＢ／ｓである。そこで処理ノードｎ２はデータ格納部Ｄ２に格納されたデータのひとつ（ここではｄａ）の処理を５０ＭＢ／ｓで開始する。図４４Ｃは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。図４４Ｄは、上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【０３０４】
次に、ノードＤ２が増加フロー探索要求を送信し、その探索要求が処理ノードｎ１に到達したとする。図４４Ｅは、処理ノードｎ１が受信した増加フロー探索要求を示す図である。すると処理ノードｎ１はデータ処理部情報格納部１１２を参照して、データ処理可能量を求める。そして探索要求が包含する処理上限値とデータ処理可能量を比較し、小さい値を処理ノードｎ１での処理可能量とする。本例では、処理ノードｎ１での処理可能量は、処理負荷が０．０２／［ＭＢ／ｓ］、残存資源量が１であることから、５０ＭＢ／ｓである。そこで処理ノードｎ１はデータ格納部Ｄ２に格納されたデータのひとつ（ここではｄｂ）の処理を５０ＭＢ／ｓで開始する。図４４Ｆは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。図４４Ｇは、上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【０３０５】
次に、ノードＤ４が増加フロー探索要求を送信し、その探索要求が処理ノードｎ３に到達したとする。図４４Ｈは、処理ノードｎ１が受信した増加フロー探索要求を示す図である。すると処理ノードｎ３はデータ処理部情報格納部１１２を参照して、データ処理可能量を求める。そして探索要求が包含する処理上限値とデータ処理可能量を比較し、小さい値を処理ノードｎ３での処理可能量とする。本例では、処理ノードｎ３での処理可能量は、処理負荷が０．０１／［ＭＢ／ｓ］、残存資源量が１であることから、１００ＭＢ／ｓである。そこで処理ノードｎ３はデータ格納部Ｄ４に格納されたデータのひとつ（ここではｄｃ）の処理を１００ＭＢ／ｓで開始する。図４４Ｉは、上述の操作が行われた後の、データ処理部情報格納部１１２が格納するデータ処理部情報を示す図である。図４４Ｊは、上述の操作が行われた後の、各ノードが出ノードリストに持つノードと、そのノードへの転送可能量を表すグラフである。
【０３０６】
図４５は、上述の操作が実行された後に行われる、データ送受信の一例を示す図である。
【０３０７】
（実施例４）
実施例４は、実施例３を基に、差分を示すことで説明される。
【０３０８】
本例の通信制御システム９０の構成は、実施例３における通信制御システム９０のものと同様である。すなわち、図４０は、実施例４における通信制御システム９０の構成を示すブロック図である。
【０３０９】
図４６は、各ノードが備えるデータ処理部情報格納部１１２に格納されたデータ処理部情報を示す図である。本例では、データ集合｛ｄａ｝と｛ｄｂ，ｄｃ｝が存在する。処理ノードｎ１の残存資源量は１である。また処理ノードｎ１におけるデータ集合｛ｄａ｝の処理の負荷は０．０２／［ＭＢ／ｓ］であり、データ集合｛ｄｂ，ｄｃ｝の処理の負荷は０．０１／［ＭＢ／ｓ］である。同様に、処理ノードｎ２の残存資源量は１である。また処理ノードｎ２におけるデータ集合｛ｄａ｝の処理の負荷は０．０２／［ＭＢ／ｓ］であり、データ集合｛ｄｂ，ｄｃ｝の処理の負荷は０．０１／［ＭＢ／ｓ］である。同様に、処理ノードｎ３の残存資源量は１である。また処理ノードｎ３におけるデータ集合｛ｄａ｝の処理の負荷は０．０２／［ＭＢ／ｓ］であり、データ集合｛ｄｂ，ｄｃ｝の処理の負荷は０．０１／［ＭＢ／ｓ］である。
【０３１０】
各ノードが備えるデータ格納部情報格納部１１５に格納されたデータ格納部情報と、通信路情報生成部１１３が生成する通信路情報は、実施例３と同様である。すなわち、図４２は、各ノードが備えるデータ格納部情報格納部１１５に格納されたデータ格納部情報を、図４３は、通信路情報生成部１１３が生成する通信路情報を、それぞれ示す。
【０３１１】
クライアントによってプログラムの実行が指示された時、全てのノードが備えるデータ処理部情報格納部１１２及びデータ格納部情報格納部１１５が、図４６及び図４２に示す状態であり、通信路情報生成部１１３が生成する通信路情報が図４３に示す情報であったとする。
【０３１２】
図４７Ａ乃至図４７Ｅは、経路表の初期化時の流れを例示する図である。初期の出ノードリストの状態は、図４４Ａが示すグラフのとおりであったとする。図４７Ａは、各ノードがそれぞれ経路表の初期化を終えた時点での、全ての経路表を一括して表した表である。実際は、各ノードの経路表格納部１１８は自身のノードＩＤと対応する行のみを格納する。
【０３１３】
次に、処理ノードｎ１乃至ｎ３は、自身を出ノードリストに含むノードに対して、経路表更新要求を送信する。すると、各ノードの経路表は例えば図４７Ｂが示す状態になる。
次に、ノードｏ１ｓｗ乃至ｏ３ｓｗとノードＯＮ２は、自身を出ノードリストに含むノードに対して、経路表更新要求を送信する。すると、各ノードの経路表は例えば図４７Ｃが示す状態になる。
【０３１４】
次に、ノードｉ２ｓｗとｉ４ｓｗは、自身を出ノードリストに含むノードに対して、経路表更新要求を送信する。すると、各ノードの経路表は例えば図４７Ｄが示す状態になる。ノードＯＮ２の経路表は、通知された情報よりも小さいホップ数を既に記録しているため、変更されない。
【０３１５】
次に、ノードＯＮ４は、自身を出ノードリストに含むノードに対して、経路表更新要求を送信する。すると、各ノードの経路表は例えば図４７Ｅが示す状態になる。
【０３１６】
上述の経路表の初期化が終了した状態から、処理割当要求が送信された場合の通信制御システム９０の動作を説明する。
【０３１７】
ノードＤ２がデータ集合｛ｄｂ，ｄｃ｝に対する処理割当要求を送信したとする。すると、ノードＤ２が送信した処理割当要求は、経路表に従って転送され、処理ノードｎ２に到達する。図４８Ａは、処理ノードｎ２が受信した処理割当要求を例示する図である。処理ノードｎ２は処理割当要求に従って、処理ノードＤ２に格納されているデータ集合｛ｄｂ，ｄｃ｝のデータ（ｄｂ）の処理を、単位時間当たりの処理量１００ＭＢ／ｓで開始する。すると、データ処理部情報は図４８Ｂのように更新される。
【０３１８】
次に処理ノードｎ２は経路表の更新を行う。図４８Ｃは更新後の経路表を例示する図である。処理ノードｎ２は自身を出ノードリストに含むノードｏ２ｓｗ及びＯＮ２に経路表更新要求を送信する。
【０３１９】
処理ノードｎ２が送信した経路表更新要求を受信したノードは、その時点での経路表の次ホップがｎ２であるので、出ノードリストにあるｎ２以外のノードの経路表を収集する。そして、自身の経路表を更新する。図４８Ｄは更新後の経路表を例示する図である。ノードｏ２ｓｗ及びＯＮ２は、自身を出ノードリストに含むノードに経路表更新要求を送信する。
【０３２０】
一方、ノードＤ２は経路表更新要求の受信に関係なく経路表の更新を行う。これは、処理ノードｎ２の処理が実行中であるため、ノードＤ２からノードＯＮ２への転送可能量は０となっているからである。これにより、Ｄ２が保持する経路表の行のホップ数は無限大となる。
【０３２１】
以下、同様の操作を各ノードが実行して経路表を更新する。図４８Ｅは更新後の経路表を例示する図である。
【０３２２】
次に、ノードＤ４がデータ集合｛ｄｂ，ｄｃ｝に対する処理割当要求を送信したとする。すると、ノードＤ４が送信した処理割当要求は、経路表に従って転送され、処理ノードｎ１に到達する。図４８Ｆは、処理ノードｎ１が受信した処理割当要求を例示する図である。処理ノードｎ１は処理割当要求に従って、ノードＤ４に格納されているデータ集合｛ｄｂ，ｄｃ｝のデータ（ｄｃ）の処理を、単位時間当たりの処理量１００ＭＢ／ｓで開始する。すると、データ処理部情報は図４８Ｇのように更新される。
【０３２３】
処理ノードｎ１でのデータ処理の開始に伴い、各ノードの経路表は更新される。図４８Ｈは、更新後の経路表を例示する図である。
【０３２４】
ここで、ノードＤ２及びＤ４が保持する経路表のホップ数が無限大となっているため、処理割当要求は送信されない。図４９Ａは、上述の操作が実行された後に行われる、データ送受信の一例を示す図である。
【０３２５】
ここで、ノードｎ２のデータｄｂに対する処理が終了したとする。すると、各ノードの経路表が更新される。図４８Ｉは、更新後の経路表を例示する図である。
【０３２６】
経路表が更新された後、ノードＤ２が未処理のデータを格納しているデータ集合｛ｄａ｝について、処理割当要求を送信したとする。すると、ノードＤ２が送信した処理割当要求は、経路表に従って転送され、処理ノードｎ２に到達する。図４８Ｊは、処理ノードｎ２が受信した処理割当要求を例示する図である。処理ノードｎ２は処理割当要求に従って、処理ノードＤ２に格納されているデータ集合｛ｄａ｝のデータ（ｄａ）の処理を、単位時間当たりの処理量５０ＭＢ／ｓで開始する。すると、データ処理部情報が更新される。そして、処理ノードｎ２でのデータ処理の開始に伴い、各ノードの経路表は更新される。図４８Ｋは、更新後の経路表を例示する図である。
【０３２７】
図４９Ｂは、上述の操作が実行された後に行われる、データ送受信の一例を示す図である。
【０３２８】
なお、各図に示した通信制御システム９０の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。通信制御システム９０の各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶メディア、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置には様々な変形例がある。
【０３２９】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。例えば、本発明による通信制御システムは、複数のデータサーバに格納されたデータを複数の処理サーバで並列処理を行う分散システムに適用できる。また、本発明による通信制御システムは、分散処理を行うデータベースシステムやバッチ処理システム、ストリーミング処理システムといった用途にも適用できる。
【０３３０】
なお、上述した実施形態によれば以下の発明が開示されている。
（付記１）
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数備え、
前記サーバ装置は、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１サーバ装置毎に記憶する通信先格納手段と、
当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信する、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段と、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信先決定手段を有する通信制御システム。
（付記２）
付記１に記載の通信制御システムにおいて、
前記転送手段は、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に基づき、前記識別子に対応する処理と当該処理の負荷値を特定し、前記負荷値と、当該サーバにおいて一定の時間で一定の負荷値をかけた場合の資源使用量と、前記残存資源量とに基づいて、前記判定および前記処理可能量の算出を行う通信制御システム。
（付記３）
付記１または２に記載の通信制御システムにおいて、
前記サーバ装置は、
前記処理対象データを格納する前記データ格納手段を含む任意の前記サーバ装置から、前記処理対象データを処理可能な前記データ処理手段を含む任意の前記サーバ装置までの、前記データ通信経路を示す経路表を記憶する経路表格納手段と、
当該通信制御システムの状態変化に応じて前記経路表を更新し、当該サーバ装置と接続されている全ての他の前記サーバ装置に対し、当該サーバ装置が更新した情報を送信する経路表更新手段をさらに有し、
前記通信先決定手段は、
前記経路表に基づき、最短距離で前記データを処理可能な前記データ装置までの前記データ転送経路を特定する通信制御システム。
（付記４）
付記３に記載の通信制御システムにおいて、
前記経路表更新手段は、
前記データ処理手段を有する前記サーバ装置の前記残存資源量の変化、または、前記サーバ装置間の前記転送可能量の変化に応じて、前記経路表を更新する通信制御システム。
（付記５）
付記１、３〜４のいずれか一項に記載の通信制御システムにおいて、
前記転送手段は、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に対応する処理において、単位時間当たりの前記処理可能量が大きい処理を優先して、前記処理を実行する前記サーバ装置を探索する処理割当要求を送信する通信制御システム。
（付記６）
付記１〜５のいずれか一項に記載の通信制御システムにおいて、
前記サーバ装置は、
当該サーバ装置が前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む出ノード情報と、当該サーバ装置に前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む入ノード情報とを格納するノード情報格納手段をさらに備え、
前記通信先決定手段は、
前記出ノード情報に含まれる前記第１サーバ装置の前記識別子と、前記入ノード情報に含まれる前記第２サーバ装置の前記識別子とに基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置と、前記処理対象データを処理する前記データ処理手段を含む前記サーバ装置の組み合わせを入れ替える通信制御システム。
（付記７）
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むサーバ装置を複数使用し、
前記サーバ装置が、
当該サーバ装置と、当該サーバ装置が処理対象データの送信先候補とする他の前記サーバ装置である第１サーバ装置との間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を前記第１サーバ装置毎に記憶する通信先格納手段から、前記転送可能量を含む情報を読み出し、
転送手段で、当該サーバ装置を前記送信先候補とする他の前記サーバ装置である第２サーバ装置から前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該サーバ装置が前記通信先格納手段で記憶する前記第１サーバ装置に対応する前記転送可能量のうち、値が小さい方を、前記第１サーバ装置に送信するメッセージに設定して送信し、または、当該サーバ装置が前記データ処理手段を含む場合、当該サーバ装置の資源の余力を示す残存資源量に基づき、当該サーバ装置で前記処理対象データを処理可能か否か判定し、当該サーバ装置で処理可能であった場合、当該サーバ装置が単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２サーバ装置から受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力し、
通信先決定手段で、前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置から当該サーバ装置までのデータ通信経路を決定する通信制御方法。
（付記８）
データを処理するデータ処理手段と前記データを格納するデータ格納手段のうち、少なくとも一方を含むコンピュータを、
当該コンピュータと、当該コンピュータが処理対象データの送信先候補とする他の前記コンピュータである第１コンピュータとの間において、単位時間当たりに転送可能なデータ量を示す転送可能量を含む情報を、前記第１コンピュータ毎に記憶する通信先格納手段、
当該コンピュータを前記送信先候補とする他の前記コンピュータである第２コンピュータから前記転送可能量を含むメッセージを受信し、受信した前記メッセージに含まれる前記転送可能量と、当該コンピュータが前記通信先格納手段で記憶する前記第１コンピュータに対応する前記転送可能量のうち、値が小さい方を、前記第１コンピュータに送信するメッセージに設定して送信する、または、当該コンピュータが前記データ処理手段を含む場合、当該コンピュータの資源の余力を示す残存資源量に基づき、当該コンピュータで前記処理対象データを処理可能か否か判定し、当該コンピュータで処理可能であった場合、当該コンピュータが単位時間に処理可能なデータ量を示す処理可能量を算出し、前記第２コンピュータから受信した前記メッセージに含まれる前記転送可能量と前記処理可能量のうち、値が小さい方を探索結果として出力する転送手段、
前記探索結果に基づき、前記処理対象データを格納する前記データ格納手段を含む前記コンピュータから当該コンピュータまでのデータ通信経路を決定する通信先決定手段として機能させるためのプログラム。
（付記９）
付記７に記載の通信制御方法において、
前記サーバ装置が、
前記転送手段で、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に基づき、前記識別子に対応する処理と当該処理の負荷値を特定し、前記負荷値と、当該サーバにおいて一定の時間で一定の負荷値をかけた場合の資源使用量と、前記残存資源量とに基づいて、前記判定および前記処理可能量の算出を行う通信制御方法。
（付記１０）
付記７または９に記載の通信制御方法において、
前記サーバ装置が、
経路表格納手段で、前記処理対象データを格納する前記データ格納手段を含む任意の前記サーバ装置から、前記処理対象データを処理可能な前記データ処理手段を含む任意の前記サーバ装置までの、前記データ通信経路を示す経路表を記憶し、
経路表更新手段で、当該通信制御方法の状態変化に応じて前記経路表を更新し、当該サーバ装置と接続されている全ての他の前記サーバ装置に対し、当該サーバ装置が更新した情報を送信し、
前記通信先決定手段で、
前記経路表に基づき、最短距離で前記データを処理可能な前記データ装置までの前記データ転送経路を特定する通信制御方法。
（付記１１）
付記１０に記載の通信制御方法において、
前記サーバ装置が、
前記経路表更新手段で、
前記データ処理手段を有する前記サーバ装置の前記残存資源量の変化、または、前記サーバ装置間の前記転送可能量の変化に応じて、前記経路表を更新する通信制御方法。
（付記１２）
付記７、１０〜１１のいずれか一項に記載の通信制御方法において、
前記サーバ装置が、
前記転送手段で、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定し、
前記識別子に対応する処理において、単位時間当たりの前記処理可能量が大きい処理を優先して、前記処理を実行する前記サーバ装置を探索する処理割当要求を送信する通信制御方法。
（付記１３）
付記７、９〜１２のいずれか一項に記載の通信制御方法において、
前記サーバ装置が、
当該サーバ装置が前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む出ノード情報と、当該サーバ装置に前記メッセージを送信している全ての他の前記サーバ装置の識別子を含む入ノード情報とを格納するノード情報格納手段から、前記出ノード情報および前記入ノード情報をさらに読み出し、
前記通信先決定手段で、
前記出ノード情報に含まれる前記第１サーバ装置の前記識別子と、前記入ノード情報に含まれる前記第２サーバ装置の前記識別子とに基づき、前記処理対象データを格納する前記データ格納手段を含む前記サーバ装置と、前記処理対象データを処理する前記データ処理手段を含む前記サーバ装置の組み合わせを入れ替える通信制御方法。
（付記１４）
付記８に記載のプログラムにおいて、
前記コンピュータを、
前記転送手段で、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定する手段、
前記識別子に基づき、前記識別子に対応する処理と当該処理の負荷値を特定し、前記負荷値と、当該コンピュータにおいて一定の時間で一定の負荷値をかけた場合の資源使用量と、前記残存資源量とに基づいて、前記判定および前記処理可能量の算出を行う手段としてさらに機能させるためのプログラム。
（付記１５）
付記８または１４に記載のプログラムにおいて、
前記コンピュータを、
前記処理対象データを格納する前記データ格納手段を含む任意の前記コンピュータから、前記処理対象データを処理可能な前記データ処理手段を含む任意の前記コンピュータまでの、前記データ通信経路を示す経路表を記憶する経路表格納手段、
当該プログラムの状態変化に応じて前記経路表を更新し、当該コンピュータと接続されている全ての他の前記コンピュータに対し、当該コンピュータが更新した情報を送信する経路表更新手段、
前記通信先決定手段で、
前記経路表に基づき、最短距離で前記データを処理可能な前記データ装置までの前記データ転送経路を特定する手段としてさらに機能させるためのプログラム。
（付記１６）
付記１５に記載のプログラムにおいて、
前記コンピュータを、
前記経路表更新手段で、
前記データ処理手段を有する前記コンピュータの前記残存資源量の変化、または、前記コンピュータ間の前記転送可能量の変化に応じて、前記経路表を更新する手段としてさらに機能させるためのプログラム。
（付記１７）
付記８、１５〜１６のいずれか一項に記載のプログラムにおいて、
前記コンピュータを
前記転送手段で、
前記メッセージに、前記処理対象データを使用する処理を識別するための識別子をさらに設定する手段、
前記識別子に対応する処理において、単位時間当たりの前記処理可能量が大きい処理を優先して、前記処理を実行する前記コンピュータを探索する処理割当要求を送信する手段としてさらに機能させるためのプログラム。
（付記１８）
付記８、１４〜１７のいずれか一項に記載のプログラムにおいて、
前記コンピュータを、
当該コンピュータが前記メッセージを送信している全ての他の前記コンピュータの識別子を含む出ノード情報と、当該コンピュータに前記メッセージを送信している全ての他の前記コンピュータの識別子を含む入ノード情報とを格納するノード情報格納手段、
前記通信先決定手段で、
前記出ノード情報に含まれる前記第１コンピュータの前記識別子と、前記入ノード情報に含まれる前記第２コンピュータの前記識別子とに基づき、前記処理対象データを格納する前記データ格納手段を含む前記コンピュータと、前記処理対象データを処理する前記データ処理手段を含む前記コンピュータの組み合わせを入れ替える手段としてさらに機能させるためのプログラム。
【符号の説明】
【０３３１】
１、１ａ、１ｂ、１ｃ、２０７、２０８、２０９，２１０、ｎ１、ｎ２、ｎ３、ｎ４  サーバ装置
１０  通信網
１１、１１ａ、１１ｂ、１１ｃ  通信先探索部
１２、１２ａ、１２ｂ、１２ｃ  通信先格納部
１３、１３ａ、１３ｂ、１３ｃ、ｐ１、ｐ２、ｐ３、２１４、２１５  データ処理部
１４、１４ａ、１４ｂ、１４ｃ、２０３、２０４，２０５、２０６、Ｄ１、Ｄ２、Ｄ３、Ｄ４  データ格納部
１５  プログラム格納部
１６  処理起動部
１１０  探索処理部
１１１  ノード情報格納部
１１２  データ処理部情報格納部
１１３  通信路情報生成部
１１４  通信先決定部
１１５  データ格納部情報格納部
１１６  ノード情報生成部
１１７  経路表生成部
１１８  経路表格納部
１１０１  受信部
１１０２  転送部
１１０５  起動部
１１０６  更新部
１１０７  経路表更新部
２１１、２１２、２１３、ｄａ、ｄｂ、ｄｃ  データ
２２０、２２１、２３０、２３１、２３２  データ転送経路
３、３ａ、３ｂ、３ｃ、ｓｗ１、ｓｗ２、ｓｗ、２０１、２０２  スイッチ
３１、３１ａ、３１ｂ、３１ｃ  通信先探索部
３２、３２ａ、３２ｂ、３２ｃ  データ送受信部
９０  通信制御システム
Ｄ２、Ｄ４、ＯＮ２、ｉ２ｓｗ  ノード
【図１】
2013214130.tif 000003
【図２】
2013214130.tif 000004
【図３】
2013214130.tif 000005
【図４Ａ】
2013214130.tif 000006
【図４Ｂ】
2013214130.tif 000007
【図５】
2013214130.tif 000008
【図６】
2013214130.tif 000009
【図７】
2013214130.tif 000010
【図８】
2013214130.tif 000011
【図９】
2013214130.tif 000012
【図１０】
2013214130.tif 000013
【図１１】
2013214130.tif 000014
【図１２】
2013214130.tif 000015
【図１３Ａ】
2013214130.tif 000016
【図１３Ｂ】
2013214130.tif 000017
【図１４Ａ】
2013214130.tif 000018
【図１４Ｂ】
2013214130.tif 000019
【図１４Ｃ】
2013214130.tif 000020
【図１５】
2013214130.tif 000021
【図１６】
2013214130.tif 000022
【図１７】
2013214130.tif 000023
【図１８】
2013214130.tif 000024
【図１９】
2013214130.tif 000025
【図２０】
2013214130.tif 000026
【図２１】
2013214130.tif 000027
【図２２】
2013214130.tif 000028
【図２３】
2013214130.tif 000029
【図２４】
2013214130.tif 000030
【図２５】
2013214130.tif 000031
【図２６】
2013214130.tif 000032
【図２７】
2013214130.tif 000033
【図２８】
2013214130.tif 000034
【図２９】
2013214130.tif 000035
【図３０】
2013214130.tif 000036
【図３１】
2013214130.tif 000037
【図３２−１Ａ】
2013214130.tif 000038
【図３２−１Ｂ】
2013214130.tif 000039
【図３２Ａ】
2013214130.tif 000040
【図３２Ｂ】
2013214130.tif 000041
【図３２Ｃ】
2013214130.tif 000042
【図３２Ｄ】
2013214130.tif 000043
【図３２Ｅ】
2013214130.tif 000044
【図３２Ｆ】
2013214130.tif 000045
【図３２Ｇ】
2013214130.tif 000046
【図３２Ｈ】
2013214130.tif 000047
【図３２Ｉ】
2013214130.tif 000048
【図３３】
2013214130.tif 000049
【図３４】
2013214130.tif 000050
【図３５】
2013214130.tif 000051
【図３６】
2013214130.tif 000052
【図３７】
2013214130.tif 000053
【図３８Ａ】
2013214130.tif 000054
【図３８Ｂ】
2013214130.tif 000055
【図３８Ｃ】
2013214130.tif 000056
【図３８Ｄ】
2013214130.tif 000057
【図３８Ｅ】
2013214130.tif 000058
【図３８Ｆ】
2013214130.tif 000059
【図３８Ｇ】
2013214130.tif 000060
【図３８Ｈ】
2013214130.tif 000061
【図３８Ｉ】
2013214130.tif 000062
【図３８Ｊ】
2013214130.tif 000063
【図３８Ｋ】
2013214130.tif 000064
【図３８Ｌ】
2013214130.tif 000065
【図３８Ｍ】
2013214130.tif 000066
【図３８Ｎ】
2013214130.tif 000067
【図３８Ｏ】
2013214130.tif 000068
【図３８Ｐ】
2013214130.tif 000069
【図３８Ｑ】
2013214130.tif 000070
【図３９】
2013214130.tif 000071
【図４０】
2013214130.tif 000072
【図４１】
2013214130.tif 000073
【図４２】
2013214130.tif 000074
【図４３】
2013214130.tif 000075
【図４４−１Ａ】
2013214130.tif 000076
【図４４−１Ｂ】
2013214130.tif 000077
【図４４Ａ】
2013214130.tif 000078
【図４４Ｂ】
2013214130.tif 000079
【図４４Ｃ】
2013214130.tif 000080
【図４４Ｄ】
2013214130.tif 000081
【図４４Ｅ】
2013214130.tif 000082
【図４４Ｆ】
2013214130.tif 000083
【図４４Ｇ】
2013214130.tif 000084
【図４４Ｈ】
2013214130.tif 000085
【図４４Ｉ】
2013214130.tif 000086
【図４４Ｊ】
2013214130.tif 000087
【図４５】
2013214130.tif 000088
【図４６】
2013214130.tif 000089
【図４７Ａ】
2013214130.tif 000090
【図４７Ｂ】
2013214130.tif 000091
【図４７Ｃ】
2013214130.tif 000092
【図４７Ｄ】
2013214130.tif 000093
【図４７Ｅ】
2013214130.tif 000094
【図４８Ａ】
2013214130.tif 000095
【図４８Ｂ】
2013214130.tif 000096
【図４８Ｃ】
2013214130.tif 000097
【図４８Ｄ】
2013214130.tif 000098
【図４８Ｅ】
2013214130.tif 000099
【図４８Ｆ】
2013214130.tif 000100
【図４８Ｇ】
2013214130.tif 000101
【図４８Ｈ】
2013214130.tif 000102
【図４８Ｉ】
2013214130.tif 000103
【図４８Ｊ】
2013214130.tif 000104
【図４８Ｋ】
2013214130.tif 000105
【図４９Ａ】
2013214130.tif 000106
【図４９Ｂ】
2013214130.tif 000107