(57)【特許請求の範囲】
【請求項１】
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出し、
ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が算出した前記データ量以上となる経路に前記データの転送経路の変更を行う、
処理をコンピュータが実行するデータ転送制御方法。
【請求項２】
前記第１ノードのバッファ残量と前記第２ノードのバッファ残量との合計が前記データ量未満の場合に、前記データの転送経路の変更を行う、
処理を前記コンピュータが実行する請求項１記載のデータ転送制御方法。
【請求項３】
前記第２処理を前記第２ノードから前記第３ノードに移動する時間と前記第２処理が受信するデータの通信速度とに基づいて、前記データ量を算出する、
処理を前記コンピュータが実行する請求項１または２記載のデータ転送制御方法。
【請求項４】
前記第２処理の移動が発生する前に、前記データの転送経路を設定し、
前記第２処理を前記第３ノードに移動するときに、設定した前記データ転送経路に変更する、
処理を前記コンピュータが実行する請求項１乃至３のうち何れか１項に記載のデータ転送制御方法。
【請求項５】
前記第１ノードと前記第２ノードとを接続する複数の経路の中で、前記バッファ残量の合計が前記データ量以上なる経路であり、且つ前記データの転送時間が最短の経路に前記データの転送経路を変更する、
処理を前記コンピュータが実行する請求項１乃至４のうち何れか１項に記載のデータ転送制御方法。
【請求項６】
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出し、
ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が前記データ量以上となる経路に前記データの転送経路の変更を行う、
処理をコンピュータに実行させるためのデータ転送制御プログラム。
【請求項７】
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出する算出部と、
ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が前記データ量以上となる経路に前記データの転送経路の変更を行う変更部と、
を備えるデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御方法、データ転送制御プログラムおよびデータ転送制御装置に関する。
【背景技術】
【０００２】
連携して動作する複数のアプリケーションを複数のノードに分散配置する技術が提案されている。分散配置された各アプリケーションは、システムの稼働状況に応じて、ノード間を移動する。
【０００３】
連携して動作するアプリケーション同士の間でデータの通信が行われる。アプリケーションがノード間を移動するとき、移動中のアプリケーションは、移動が完了するまで他のアプリケーションが送信したデータを受信しない。
【０００４】
例えば、移動中のアプリケーションに対して送信されたデータは、ノードのバッファに蓄積される。バッファの空き容量が不足していると、移動対象のアプリケーションに対して送信されたデータがオーバーフローする。オーバーフローしたデータは廃棄される。
【０００５】
この問題に対して、サービス連携装置が流入データ量および流出データ量に基づいて流入超過状態になるか否かを判定し、流入超過状態になる場合に一次記憶部を経由する経路に変更する技術が提案されている（例えば、特許文献１参照）。
【０００６】
また、転送データを一時的に格納する複数の第１のデータ記憶手段と、他プロセッサから転送されたデータを自プロセッサ内での処理の単位に適合するように分割して格納する複数の第２の第２のデータ記憶送手段と、を備える技術が提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１３−１０１５３０号公報
【特許文献２】特開平７−２４９０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１および特許文献２の技術は、データの送信元および送信先が固定された技術である。アプリケーションがノード間を移動するような場合、データの送信先アプリケーションの配備先ノードが持つバッファの容量は移動のたびに変化するため、上述した技術では、データのオーバーフローが生じることを回避することは難しい。
【０００９】
１つの側面として、本発明は、データの送信先が変化しても、処理を移動するときにデータのオーバーフローが生じることを抑制することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、データ転送制御方法は、第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出し、ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が算出した前記データ量以上となる経路に前記データの転送経路の変更を行う、処理をコンピュータが実行する。
【発明の効果】
【００１１】
１つの側面によれば、データの送信先が変化しても、処理を移動するときにデータのオーバーフローが生じることを抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】システムの一例を示す図である。
【図２】処理の移動およびデータの流れの一例を示す図である。
【図３】データのオーバーフローの一例を示す図である。
【図４】転送制御部、配備プランナおよび各ノードの機能ブロックの一例を示す機能ブロック図である。
【図５】システムが運用される前のフローの一例を示すシーケンスチャートである。
【図６】テーブル記憶部に記憶される各種テーブルの一例を示す図である。
【図７】第１の経路の設定の一例を示すシーケンスチャートである。
【図８】第１の経路を決定するための各種テーブルの一例を示す図である。
【図９】システムの運用開始後のフローの一例を示すシーケンスチャートである。
【図１０】バッファ残量が不足するか否かを判定するための各種テーブル一例を示す図である。
【図１１】第２の経路の設定の流れの一例を示すシーケンスチャートである。
【図１２】残量優先型決定方法で第２の経路を決定するための各種テーブルの一例を示す図である。
【図１３】両立型決定方法で第２の経路を決定するための各種テーブルの一例を示す図である。
【図１４】第２の経路の設定の一例を示すフローチャートである。
【図１５】処理の移動の一例を説明する図（その１）である。
【図１６】処理の移動の一例を説明する図（その２）である。
【図１７】処理の移動の一例を説明する図（その３）である。
【図１８】ノードの転送部の各種テーブルの一例を示す図である。
【図１９】処理移動前の転送制御部のフローの一例を示すフローチャートである。
【図２０】処理移動時の転送制御部のフローの一例を示すフローチャートである。
【図２１】バッファの蓄積および転送のフローの一例を示すフローチャートである。
【図２２】ノードの制御の一例を示すフローチャートである。
【図２３】転送制御部のハードウェア構成の一例を示す図である。
【図２４】ノードのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
＜システムの一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステムの一例を示している。図１のシステム１は、拠点２と局舎３とデータセンター４とのそれぞれにノードが設置されている。
【００１４】
ノードは、バッファを備えるコンピュータである。図１の例では、５つのノードＮ１〜Ｎ５が設置されている。以下、ノードＮ１〜Ｎ５を含むノードを総称して、ノードＮと称することがある。ノードＮには処理が配備される。
【００１５】
拠点２は、例えば企業の拠点である。拠点２のフロア１にはノードＮ１が設置され、フロア２にはノードＮ２が設置されている。局舎３は、例えば通信事業者の施設である。局舎３には、ノードＮ３とノードＮ４とが設置されている。拠点２と局舎３との間は、ネットワーク５により接続されている。
【００１６】
データセンター４は、例えばクラウドサービスを実現するサーバが設置された施設である。データセンター４には、ノードＮ５が設置されている。局舎３とデータセンター４とはネットワーク６により接続されている。
【００１７】
実施形態では、データセンター４に設置されるノードＮ５のハードウェア資源が多いものとする。局舎３に設置されるノードＮ３およびノードＮ４のハードウェア資源は、ノードＮ５より少ないものとする。拠点２に設置されるノードＮ１およびノードＮ２のハードウェア資源は、ノードＮ３およびＮ４よりも少ないものとする。
【００１８】
図１のシステム１は一例であり、システム１は図１の例には限定されない。システム１は、拠点２、局舎３およびデータセンター４以外の施設を含んでもよい。また、各施設に備えられるノードＮの数は図１の例には限定されない。また、各ノードＮのハードウェア資源は上記の例には限定されない。
【００１９】
図２は、処理の移動およびデータの流れの一例を示している。実施形態では、１つのアプリケーションの機能は複数の処理に分割されている。例えば、アプリケーションＡの機能は、処理Ａ１と処理Ａ２と処理Ａ３とに分割されている。また、アプリケーションＢの機能は、処理Ｂ１と処理Ｂ２と処理Ｂ３とに分割されている。
【００２０】
図２の例では、各処理は、複数のノードに分散して配備されている。例えば、処理Ａ１はノードＮ１に配備され、処理Ａ２はノードＮ３に配備され、処理Ａ３はノードＮ５に配備されている。また、処理Ｂ１はノードＮ１に配備され、処理Ｂ２はノードＮ３に配備されている。
【００２１】
例えば、アプリケーションＡは、カメラ７が撮影した映像を動画データとして記憶するアプリケーションであってもよい。処理Ａ１は、カメラ７が撮影した映像の映像データを処理Ａ２に送信し、処理Ａ２は受信した映像データに画像処理を行い、処理Ａ３は画像処理が行われた映像データをノードＮ５の記憶装置に記憶してもよい。この場合、処理Ａ１と処理Ａ２と処理Ａ３とが連携してアプリケーションＡの機能が実現する。
【００２２】
例えば、アプリケーションＢは、カメラ７が撮影したカメラ映像に基づいて年齢層を分析し、広告内容を決定する機能を実現するアプリケーションであってもよい。この場合、アプリケーションＢの処理Ｂ１は、カメラ７から映像を収集し、年齢を分析する処理であってもよい。
【００２３】
また、処理Ｂ２は、処理Ｂ１から送信されたデータの集計を行い、年齢層に応じて広告内容を決定する処理であってもよい。この場合、処理Ｂ１と処理Ｂ２とが連携して、アプリケーションＢの機能が実現する。図２の例では、処理間を移動されるデータの通信経路は実線で示される。
【００２４】
複数のノードに分散して配備された処理は、ノード間を移動する。例えば、ノードＮの状態や処理の状態等に応じて、処理の配備先を変更した方が、システムの全体のパフォーマンスが向上する場合がある。この場合、処理はノード間を移動する。
【００２５】
例えば、図２の例では、局舎３のノードＮ３で実行されている処理Ｂ２は、データセンター４のノードＮ５に配備された方がアプリケーションＢのパフォーマンスが向上する場合がある。この場合、処理Ｂ２は、ノードＮ３からノードＮ５に移動される。図２の例では、処理がノード間を移動する経路を破線で示している。
【００２６】
データの送信元の処理は第１処理の一例であり、データの送信先の処理は第２処理の一例である。第１ノードは、データの送信元の処理（第１処理）を実行するノードの一例である。第２ノードは、データの送信先の処理（第２処理）を実行するノードの一例である。第３ノードは、第２処理の移動先のノードの一例である。
【００２７】
例えば、図２の例の場合、処理Ｂ１は処理Ｂ２にデータを送信する。この場合、処理Ｂ１は第１処理であり、処理Ｂ２は第２処理になる。また、ノードＮ１が処理Ｂ１を実行している場合、ノードＮ１は第１ノードになる。ノードＮ３が処理Ｂ２を実行している場合、ノードＮ３は第２ノードになる。処理Ｂ２がノードＮ３からノードＮ５に移動される場合、ノードＮ５は第３ノードになる。
【００２８】
実施形態では、アプリケーションの機能が複数の処理に分割されている例について説明する。ただし、１つの処理が１つのアプリケーションであってもよい。例えば、アプリケーションＡおよびアプリケーションＢをそれぞれ１つの処理として、両者が連携して１つの機能を実現してもよい。
【００２９】
＜データのオーバーフローの一例＞
図３は、データがオーバーフローする場合の例とオーバーフローしない例とを示している。図３の例では、処理Ｂ１は、処理Ｂ２にデータを送信する。また、処理Ｂ２は、ノードＮ３からノードＮ５に移動されるものとする。処理の移動はフローの切り替えと称されることもある。
【００３０】
図３の例では、各ノードＮは、所定の情報量のデータを４個分蓄積するバッファを有するものとする。処理Ｂ２がノードＮ３からノードＮ５に移動するとき、処理Ｂ１は、処理Ｂ２が移動するか否かにかかわらず、処理Ｂ２に対して、データを送信する。
【００３１】
処理Ｂ２は、ノードＮ３からノードＮ５に移動を開始してから完了するまで、処理Ｂ１が送信したデータを受信しない。処理Ｂ１は、処理Ｂ２が配備されていたノードＮ３にデータを送信する。従って、処理Ｂ１が送信したデータは、ノードＮ３のバッファＢ３に蓄積される。
【００３２】
処理Ｂ２の移動が完了するまで、処理Ｂ１が送信したデータは、ノードＮ３のバッファＢＦ３に蓄積され続ける。バッファＢＦがバッファフルの状態になった後は、処理Ｂ１は、ノードＮ１のバッファＢＦ１にデータを出力する。従って、ノードＮ１のバッファＢＦ１にデータが蓄積され続ける。
【００３３】
処理Ｂ２の移動が完了する前に、バッファＢＦ１およびバッファＢＦ３がバッファフルになると、処理Ｂ１が処理Ｂ２に送信したデータは溢れる。溢れたデータは、廃棄される。図３の例では、処理Ｂ１が９番目に処理Ｂ２に送信したデータは、バッファＢＦ１およびバッファＢＦ３には蓄積されないため、溢れる。このため、溢れたデータは廃棄される。
【００３４】
図３のオーバーフローしない例は、データの転送経路（パスとも称される）が変更された例を示している。変更後のデータの転送経路は、ノードＮ２を経由した転送経路になっている。
【００３５】
この場合、処理Ｂ１が送信したデータは、ノードＮ２を経由して、ノードＮ３に送信される。従って、処理Ｂ１が出力したデータは、バッファＢＦ３に蓄積される。バッファＢＦ３の空き容量がなくなると、バッファＢＦ３はバッファフルになる。
【００３６】
バッファＢＦ３がバッファフルになると、処理Ｂ１が送信したデータはノードＮ２のバッファＢＦ２に蓄積される。バッファＢＦ２がバッファフルになると、処理Ｂ１が出力したデータはノードＮ１のバッファＢＦ１に蓄積される。
【００３７】
図３の例の場合、バッファＢＦ２およびバッファＢＦ３はバッファフルになっている。ただし、バッファＢＦ１はデータを蓄積する余裕がある。従って、処理Ｂ１が出力した９番目のデータは、バッファＢＦ１に蓄積されるため、該データはオーバーフローしない。このため、処理Ｂ１が出力したデータは廃棄されない。
【００３８】
＜転送制御部の一例＞
図４は、転送制御部１１、配備プランナ１２および各ノードＮの機能ブロックの一例を示している。転送制御部１１は、ノード間で処理を移動するときの転送経路の変更等の制御を行う。
【００３９】
配備プランナ１２は、各処理を各ノードＮに分散して配備する。例えば、配備プランナ１２は、アプリケーションのパフォーマンスが向上するように、適切なノードＮにアプリケーションの処理を分散して配備する。
【００４０】
配備プランナ１２は、処理を随時、適切なノードＮに移動する制御を行う。転送制御部１１および配備プランナ１２は、コンピュータにより実現されてもよい。転送制御部１１は、データ転送制御装置の一例である。
【００４１】
転送制御部１１は、データ量算出部２１とバッファ残量合計部２２と第１の経路決定部２３と第２の経路決定部２４とパス変更判定部２５とパス変更部２６とネットワーク状態記憶部２７とバッファ残量記憶部２８とテーブル記憶部２９とを備える。
【００４２】
データ量算出部２１は、送信元の処理と送信先の処理とのセット（以下、処理セットと称することもある）ごとに、送信先の処理をノード間で移動する間における送信元の処理が送信先の処理に送信するデータのデータ量を算出する。この算出したデータ量は移動中蓄積データ量と称されることもある。
【００４３】
データ量算出部２１は、処理の移動を開始してから移動が完了するまでの時間（以下、処理の移動時間と称することもある）と処理の通信速度とを積算した値を上記のデータ量としてもよい。データ量算出部２１は、算出部の一例である。
【００４４】
データ量算出部２１は、処理の移動を開始してから移動が完了するまでの間に送信元の処理が実際に送信したデータ量の値を、送信元の処理の配備先ノードから収集し、その値を上記のデータ量としてもよい。
【００４５】
バッファ残量合計部２２は、パス変更部２６が変更した転送経路の経路上の複数のノードＮのバッファ残量を取得し、取得したバッファ残量を合計する。バッファ残量合計部２２が合計の対象とするノードＮは、処理の移動元のノードＮと処理の移動先のノードＮとを含む。
【００４６】
第１の経路決定部２３は、所定の品質要件を満たすように、送信元の処理から送信先の処理にデータを移動するときの転送経路を決定する。所定の品質要件を満たす転送経路は、第１の経路の一例である。第１の経路は、品質確保型経路とも称される。
【００４７】
上記の品質要件としては、例えば、Quality of Experience(QoE)やQuality of Service(QoS)等がある。例えば、処理間でデータが転送されるときの遅延や帯域等は、品質要件を判定する基準となる。
【００４８】
実施形態では、第１の経路決定部２３は、処理間でデータが転送されるときの遅延が少ない転送経路を第１の経路に決定する。送信元の処理のノードＮと送信先の処理のノードＮとの間には１以上の転送経路がある。
【００４９】
例えば、送信元の処理のノードＮと送信先の処理のノードＮとの間に複数の転送経路がある場合、第１の経路決定部２３は、遅延が最少となる転送経路を第１の経路に決定してもよい。
【００５０】
第２の経路決定部２４は、バッファ残量合計部２２が合計したバッファ残量の合計が、データ量算出部２１が算出したデータ量以上となる転送経路を決定する。この転送経路は、第２の経路の一例である。第２の経路は、バッファ量確保型経路とも称される。
【００５１】
第２の経路決定部２４が複数の転送経路を決定した場合、所定の条件を満たす１つの転送経路を決定する。例えば、第２の経路決定部２４は、上記のデータ量以上となる複数の転送経路のうち、データの通信時間が最短の転送経路を第２の経路として決定してもよい。
【００５２】
パス変更判定部２５は、転送経路の変更を行うか否かを判定する。パス変更判定部２５が転送経路の変更を行うと判定した場合、処理セットの現在の転送経路を第２の経路決定部２４が決定した第２の経路に変更すると決定する。
【００５３】
パス変更部２６は、パス変更判定部２５が転送経路の変更を決定した場合、処理セットの転送経路を変更する。例えば、パス変更部２６は、変更する転送経路にあるノードＮに対して、転送経路の情報を送信する。パス変更部２６は、変更部の一例である。
【００５４】
ネットワーク状態記憶部２７は、ノード間のネットワーク状態をノードとノードとのセット（以下、ノードセットと称することもある）ごとに記憶する。ネットワーク状態記憶部２７は、各ノードＮからネットワーク状態の情報を取得するごとに情報の更新を行う。なお、図４以降では、ネットワークを「ＮＷ」と略して表記している。
【００５５】
ネットワーク状態は、ノードとノードとの間の接続状態を含む。各ノードＮは、自身のノードＮに接続されているノードＮの情報をネットワーク接続情報として転送制御部１１に通知する。ネットワーク状態記憶部２７は、ネットワーク接続情報を含むネットワーク状態を記憶する。
【００５６】
次に、配備プランナ１２について説明する。配備プランナ１２は、処理フロー記憶部３１とアプリ特性記憶部３２と配備制御部３３とを備える。処理フロー記憶部３１は、処理セットごとに、送信元の処理と送信先の処理とをセットで記憶する。
【００５７】
アプリ特性記憶部３２は、アプリケーションの特性を記憶する。例えば、アプリケーションの処理ごとの通信速度は、アプリケーションの特性の一例である。また、データの廃棄が許容されるか否かも、アプリケーションの特性の一例である。アプリケーションの特性は、処理の特性でもある。
【００５８】
例えば、装置の稼働状況を監視するアプリケーションの場合、装置に異常が生じたことを示すログデータは、廃棄が許容されない。また、統計処理を行うアプリケーションの処理の場合、分析対象のデータは廃棄が許容されない。
【００５９】
例えば、動画を再生するアプリケーションは、データの廃棄が許容される場合がある。動画データの一部のデータがバッファフルにより廃棄されたとしても、廃棄されたデータを再取得できる場合がある。このような場合、データの廃棄が許容される。
【００６０】
配備制御部３３は、アプリケーションの各処理を各ノードＮに配備する制御を行う。例えば、配備制御部３３は、アプリケーションのパフォーマンスが向上するように、各処理をそれぞれ適切なノードＮに配備する。配備制御部３３は、各処理を何れのノードＮに配備したかの情報を転送制御部１１に出力する。
【００６１】
次に、ノードＮについて説明する。ノードＮは、移動時間計測部４１とバッファ残量取得部４２と転送部４３とネットワーク状態計測部４４とを備える。移動時間計測部４１は、移動元ノードから移動先ノードに処理を移動するときの移動時間を計測する。
【００６２】
例えば、移動時間計測部４１は、あるノードＮが自身のノードＮに処理の送信を開始した時刻を取得し、自身のノードＮへの移動が完了した時刻を取得する。移動時間計測部４１は、取得した時刻に基づいて、処理の移動時間を計測してもよい。
【００６３】
バッファ残量取得部４２は、自身のノードＮのバッファ残量を取得する。バッファ残量は、バッファの空き容量でもある。バッファ残量取得部４２は、バッファ残量の情報を転送制御部１１に通知する。
【００６４】
転送部４３は、受信したデータの転送先のノードＮを決定する。自身のノードＮが転送経路の最後のノードである場合、転送部４３は、処理のエンドポイント（例えば、Uniform Resource Locator(URL)）等を決定する。
【００６５】
ネットワーク状態計測部４４は、自身のノードＮと隣接するノードＮとの間のネットワーク状態を計測する。計測するネットワーク状態としては、例えば、遅延や帯域、揺らぎ等がある。ネットワーク状態計測部４４は、ネットワーク状態およびネットワーク接続状態を含むネットワーク状態情報を転送制御部１１に通知する。
【００６６】
＜データ量算出の一例＞
次に、図５を参照して、送信先の処理を移動する間に送信元の処理から送信先の処理に送信されるデータのデータ量を算出するフローの一例について説明する。このデータ量は、処理の移動が開始してから完了するまでの過渡期に送信元の処理が送信先の処理に送信するデータのデータ量である。
【００６７】
データの転送経路上にある複数のノードＮのバッファ残量の合計が上記のデータ量以上であれば、バッファフルによるオーバーフローは生じない。図５の例のフローは、上記のデータ量を得るフローである。
【００６８】
図５の例のフローは、システム１が運用される前に行われる。従って、実際にシステム１が稼働する前に上記のデータ量の値が得られる。このため、システム１の運用を開始するときには、データ量の値は既知の値となる。
【００６９】
図５の例において、配備プランナ１２は、ノードＮ１に処理Ｂ１を配備し、ノードＮ３に処理Ｂ２を配備している。また、処理Ｂ１は処理Ｂ２にデータを送信する。配備プランナ１２の配備制御部３３は、処理Ｂ２をノードＮ３からノードＮ５に移動する指示を転送制御部１１に出力しているものとする。
【００７０】
配備プランナ１２の配備制御部３３は、処理フロー記憶部３１が記憶している各処理フローおよびアプリケーション特性記憶３２が記憶しているアプリ特性情報を転送制御部１１に送信する（ステップＳＣ１）。
【００７１】
配備制御部３３は、上述したように、処理Ｂ１をノードＮ１に配備し、処理Ｂ２をノードＮ３に配備する（ステップＳＣ２）。次に、配備制御部３３は、処理Ｂ２の移動元のノードＮ３および移動先のノードＮ５に処理Ｂ２を移動する移動時間を計測する指示をノードＮ３およびノードＮ５に対して送信する（ステップＳＣ３）。
【００７２】
ノードＮ３は、処理Ｂ２をノードＮ５に移動すると共に、移動を開始した開始時刻をノードＮ５に通知する。ノードＮ５の移動時間計測部４１は、処理Ｂ２の移動が完了した時刻と通知された開始時刻との差分を移動時間として計測する。処理Ｂ２の移動先のノードＮ５は、処理Ｂ２の移動時間を転送制御部１１に通知する。なお、処理の移動時間の計測は、上述した例には限定されない。
【００７３】
転送制御部１１は、アプリケーションの特性を配備プランナ１２から取得している。上述したように、アプリケーションの特性は、通信速度を含む。通信速度は、例えば、単位時間あたりの通信量である。
【００７４】
また、転送制御部１１は、処理Ｂ２の移動時間をノードＮ５から受信している。データ量算出部２１は、通信速度と移動時間とを積算する。演算結果は、上述したデータ量になる。これにより、処理Ｂ２をノードＮ３からノードＮ５に移動する間に該処理が受信するデータ量の算出が行われる（ステップＳＣ４）。
【００７５】
図６は、テーブル記憶部２９に記憶される各種テーブルの一例を示している。アプリ特性テーブルは、アプリケーションごとの特性を示している。アプリ特性テーブルは、配備プランナ１２から送信されるアプリ特性情報に基づくテーブルである。
【００７６】
アプリＩＤはアプリケーションを識別する識別子である。なお、ＩＤはIdentificationの略称である。廃棄要件は、廃棄を許容するか否かを示す。品質要件は、上述した品質要件である。通信速度は、アプリケーションごとの通信速度である。
【００７７】
処理フローテーブルは、送信元の処理と送信先の処理とを示す各処理セットをアプリケーションごとに示している。図６の例では、アプリケーションＢの各処理セットのうち、データの送信元の処理Ｂ１と送信先の処理Ｂ２とを示している。
【００７８】
アプリケーションＢは、処理Ｂ１および処理Ｂ２以外の処理を含んでいる場合がある。その場合、処理セットごとに、アプリＩＤがアプリケーションＢの送信元処理と送信元処理とが処理フローテーブルに記憶される。処理フローは、アプリ特性情報に基づいて生成される。
【００７９】
データ量テーブルは、処理セットごとに、処理の移動中に流れるデータのデータ量を示すテーブルである。例えば、移動時間計測部４１が計測した移動時間が２秒であり、アプリ特性テーブルのアプリケーションＢの通信速度は５Ｍｂｙｔｅ／ｓであるものとする。この場合、処理Ｂ１および処理Ｂ２の処理セットのデータ量は、移動時間と通信速度とを積算した１０Ｍｂｙｔｅになる。
【００８０】
上述した各テーブルは、システム１の運用前に行われる。よって、システム１の運用を開始した後には、各テーブルには、それぞれ値が記憶されている。従って、送信先の処理を移動する間に送信先の処理に送信されるデータのデータ量はシステム１の運用前にテーブル記憶部２９のテーブルに記憶される。
【００８１】
＜第１の経路の設定の一例＞
次に、第１の経路の設定の一例について説明する。上述したように、第１の経路は、送信元の処理から送信先の処理に送信されるデータの転送経路が所定の品質を満たす転送経路である。
【００８２】
実施形態では、第１の経路は、複数の転送経路のうち、最も遅延が少ない転送経路であるものとする。ただし、第１の経路は、遅延が最少の経路でなくてもよい。例えば、遅延が所定の値以下の転送経路のうち任意の転送経路が第１の経路であってもよい。
【００８３】
図７は、第１の経路の設定の一例を示すシーケンスチャートである。転送制御部１１は、各ノードＮからネットワーク状態を収集する（ステップＳＣ５）。上述したように、ネットワーク状態としては、ネットワークの接続状態と遅延や帯域、揺らぎ等の状態とがある。
【００８４】
各ノードＮのネットワーク状態計測部４４は、ネットワーク状態を計測し、計測したネットワーク状態を転送制御部１１に通知する。転送制御部１１は、各ノードＮが通知したネットワーク状態をネットワーク状態記憶部２７に記憶する。
【００８５】
配備プランナ１２の配備制御部３３は、転送制御部１１に各処理の配備の情報（以下、配備先ノード情報と称することもある）を通知する。転送制御部１１の第１の経路決定部２３は、上述した品質要件を満たす第１の経路を決定する（ステップＳＣ６）。
【００８６】
図８の各種テーブルの例を参照して、第１の経路決定部２３が第１の経路を決定する例について説明する。アプリ特性テーブルは、図６で説明したアプリ特性テーブルである。ネットワーク状態情報テーブルは、ノード間の遅延および接続状態を示している。接続状態は、直接接続または間接接続を示している。
【００８７】
直接接続は、ノード同士が直接的に接続されていることを示す。例えば、ノードＮ１とノードＮ３とは直接的に接続されている。間接接続は、他のノードＮを介して、ノード同士が接続されていることを示す。例えば、ノードＮ１とノードＮ５とは、ノードＮ３またはノードＮ４を介して接続されている。
【００８８】
処理セット経路テーブルは、処理セットごとに、経路ＩＤおよびバッファ不足フラグを示している。バッファ不足フラグについては、後述する。経路ＩＤには、経路リストの中から決定された転送経路の経路ＩＤが割り当てられる。
【００８９】
経路リストは、ノード間の経路の遅延を示している。経路リストは、ネットワーク状態情報テーブルに基づいて、生成される。図８の例では、ノードＮ１からノードＮ３までの転送経路の遅延は１０ｍｓであり、この転送経路には、１番の経路ＩＤが割り当てられている。
【００９０】
実施形態では、ノードＮ１からノードＮ３に至る転送経路は複数であるものとし、各転送経路に経路ＩＤが割り当てられる。上述したように、ノードＮ１からノードＮ３に至る転送経路としては、ノードＮ１とノードＮ３とを直接的に接続する転送経路がある。
【００９１】
また、ノードＮ１からノードＮ３に至る転送経路としては、ノードＮ１からノードＮ２を経由してノードＮ３に至る転送経路がある。この転送経路の場合、接続状態は、間接接続になる。
【００９２】
また、この場合の遅延は、ノードＮ１からノードＮ２までの遅延とノードＮ２からノードＮ３までの遅延との合計である１５ｍｓとなる。ノードＮ２を経由した転送経路にも経路ＩＤが割り当てられる。
【００９３】
処理フローテーブルは、図６で説明した処理フローテーブルにノードＮを関連付けたテーブルである。つまり、処理フローテーブルは、送信元の処理が配備されているノードＮと送信先の処理が配備されているノードＮとを示している。
【００９４】
上述したように、第１の経路決定部２３は、遅延が最少となる転送経路を第１の経路として決定する。よって、第１の経路決定部２３は、処理フローテーブルを参照して、遅延が最も少ない１番の経路ＩＤの転送経路を第１の経路に決定する（ステップＳＣ６）。
【００９５】
第１の経路決定部２３は、ノードＮ１およびノードＮ３に第１の経路を設定する指示を送信する。ノードＮ１およびノードＮ３は、両者を接続する転送経路を設定する。これにより、第１の経路が設定される。
【００９６】
＜バッファ残量不足の事前検知の一例＞
次に、図９を参照して、実際にシステム１の運用を開始した後のフローにおけるバッファ残量不足の事前検知の一例を説明する。配備プランナ１２の配備制御部３３は、アプリケーションの処理を各ノードＮに配備する。
【００９７】
実施形態では、配備制御部３３は、アプリケーションＢの処理Ｂ１をノードＮ１に配備し、処理Ｂ２をノードＮ３に配備する。各ノードＮのバッファ残量取得部４２は、自身のノードＮのバッファ残量の情報を取得する。
【００９８】
各ノードＮは、バッファ残量の情報を転送制御部１１に通知する。各ノードＮは、定期的にバッファ残量を転送制御部１１に通知してもよい。各ノードＮは、バッファ残量取得部４２が取得する自身のノードＮのバッファ残量に変化が生じたときに、バッファ残量を通知してもよい。この場合、バッファ残量に変化がなければ、バッファ残量の通知は行われない。バッファ残量の通知が行われなければ、データの通信量が低減される。
【００９９】
バッファ残量合計部２２は、第１の経路決定部２３が決定した第１の経路の転送経路上にある各ノードＮのバッファ残量を合計した合計バッファ残量を算出する。データ量算出部２１が算出したデータ量が合計バッファ残量を超過すると、処理を移動する際にオーバーフローが生じることを意味する（以降、オーバーフローを、バッファ残量の不足とも記す）。オーバーフローが生じると、溢れたデータは廃棄される。
【０１００】
転送制御部１１のパス変更判定部２５は、データ量と合計バッファ残量とに基づいて、バッファ残量が不足するか否かを判定する（ステップＳＣ７）。合計バッファ残量がデータ量未満の場合、パス変更判定部２５はバッファ残量が不足すると判定する。
【０１０１】
バッファ残量が不足するとパス変更判定部２５が判定した場合（ステップＳＣ７でＹＥＳ）、パス変更部２６はデータの転送経路を変更する（ステップＳＣ８）。バッファ残量が不足しないとパス変更判定部２５が判定した場合、データの転送経路は変更されない。
【０１０２】
図１０は、バッファ残量が不足するか否かを判定するための各種テーブルの例を示している。上述したように、処理Ｂ１と処理Ｂ２との処理セットには、１番の経路ＩＤが割り当てられている。１番の経路ＩＤは、ノードＮ１からノードＮ３までの経路である。
【０１０３】
バッファ残量テーブルは、バッファ残量記憶部２８に記憶されているノードＮごとのバッファ残量を示している。１番の経路ＩＤは、ノードＮ１からノードＮ３の転送経路である。
【０１０４】
バッファ残量合計部２２は、ノードＮ１のバッファ残量とノードＮ３のバッファ残量とを合計する。図１０の例の場合、バッファ残量の合計は８Ｍｂｙｔｅになる。バッファ残量合計部２２は、処理セットごとに、転送経路上のバッファ残量の合計を算出する。
【０１０５】
現経路の合計バッファ残量テーブルは、現在の転送経路におけるバッファ残量の合計を処理セットとごとに示している。データ量テーブルは、処理セットごとに、処理を移動している間に送信元の処理から送信先の処理に送信されるデータのデータ量を示している。
【０１０６】
パス変更判定部２５は、処理セットごとに、バッファ不足が生じると判定した場合には、処理セットごと経路テーブルの処理セットおよび経路ＩＤに対応するバッファ不足フラグを１にする。
【０１０７】
バッファ不足フラグが１の経路ＩＤの転送経路では、送信先の処理を移動している間にデータのオーバーフローが生じる。この場合、第２の経路決定部２４は、バッファ不足が生じる処理セットのバッファ不足フラグを１にする。
【０１０８】
＜第２の経路の設定の一例＞
次に、第２の経路の設定の一例について説明する。図１１は、第２の経路の設定の流れの一例を示すシーケンスチャートである。転送制御部１１のパス変更判定部２５は、配備プランナ１２から取得したアプリケーションの特性を参照して、廃棄要件が許容であるか否かを判定する（ステップＳＣ９）。
【０１０９】
廃棄要件が許容である場合（ステップＳＣ９でＹＥＳ）、オーバーフローが生じたとしても、データの廃棄が許容される。この場合、転送経路の変更は行われなくてもよい。この場合、データの転送経路は、第１の経路から変更されない。ただし、データの廃棄が許容される場合でも、転送経路の変更が行われてもよい。
【０１１０】
一方、廃棄要件が許容されない場合（ステップＳＣ９でＮＯ）、転送経路の変更が行われる。パス変更判定部２５が転送経路の変更を行うと判定した場合、パス変更判定部２５は、第２の経路決定部２４に第２の経路を決定する指示を出す（ステップＳＣ１０）。
【０１１１】
第２の経路決定部２４は、この指示に基づいて、第２の経路を決定する（ステップＳＣ１１）。第２の経路は、処理を移動している間に送信元の処理から送信先の処理に送信されるデータのデータ量が合計バッファ残量以上となる転送経路である。上述したように、処理Ｂ１が第１の経路で第２の経路にデータを転送する場合、処理Ｂ２をノードＮ３からノードＮ５に移動するときにオーバーフローが生じる。
【０１１２】
これは、上述したように、処理Ｂ２を第１の経路でノードＮ３からノードＮ５に移動する移動時間とアプリケーションＢの通信速度とを積算した値であるデータ量が１０Ｍｂｙｔｅであり、第１の経路の合計バッファ残量が８Ｍｂｙｔｅであるためである。
【０１１３】
一方、ノードＮ１からノードＮ２を経由して、ノードＮ３に至る転送経路の合計バッファ残量は、１５Ｍｂｙｔｅになる。よって、データ量が合計残バッファ量未満となるため、データのオーバーフローは生じない。
【０１１４】
従って、例えば、第２の経路決定部２４は、ノードＮ１からノードＮ２を経由してノードＮ３に至る転送経路を第２の経路に決定する。処理を移動している間に送信元の処理から送信先の処理に送信されるデータのデータ量が合計残バッファ量未満となる転送経路が複数ある場合、第２の経路決定部２４は、任意の転送経路を第２の経路に決定してよい。
【０１１５】
第２の経路決定部２４が第２の経路を決定すると、決定した第２の経路にある各ノードＮに対して、経路設定の指示を送信する（ステップＳＣ１２）。例えば、第２の経路決定部２４が上述した転送経路を第２の経路に決定した場合、第２の経路決定部２４は、ノードＮ１、ノードＮ２およびノードＮ３に対して、経路設定の指示を送信する。
【０１１６】
データ量が合計残バッファ量未満となる転送経路が複数ある場合、第２の経路決定部２４は任意の１つの転送経路を第２の経路に決定する。実施形態では、第２の経路を決定する方法は、２つある。
【０１１７】
１つ目は、バッファ残量を優先し、品質要件を考慮しない方法である。この方法を残量優先型決定方法とする。２つ目は、バッファ残量と品質要件とを両立する方法である。この方法を両立型決定方法とする。
【０１１８】
図１２は、残量優先型決定方法の一例である。上述したように、処理Ｂ１と処理Ｂ２との処理セットについて、経路ＩＤが１番の場合、バッファ不足フラグが１になっている。この場合、第２の経路決定部２４は、第２の経路を決定する。
【０１１９】
第２の経路決定部２４は、バッファ残量記憶部２８のノードごとバッファ残量テーブルを参照して、最もバッファ残量が大きいノードを経由する転送経路を選択する。図１２の例の場合、最もバッファ残量が大きいノードは、ノードＮ５である。
【０１２０】
よって、第２の経路決定部２４は、ノードＮ５を経由する転送経路を選択する。上述したように、送信先の処理Ｂ２がノードＮ３からノードＮ５に移動される間に処理Ｂ２が受信するデータのデータ量は１０Ｍｂｙｔｅである。
【０１２１】
従って、上記のデータ量は合計バッファ残量未満となり、オーバーフローが生じない。実施形態の場合、ハードウェア資源が最も多いノードは、データセンター４に設置されるノードＮ５である。
【０１２２】
このため、ノードＮ１からノードＮ５を経由して、ノードＮ３に至る転送経路をデータが転送される時間は長くなる。データの転送時間が長くなると、所定の品質要件を満たさなくなる場合がある。
【０１２３】
次に、図１３の例を参照して、両立型決定方法による第２の経路の決定について説明する。送信元の処理Ｂ１はノードＮ１に配備され、送信先の処理Ｂ２はノードＮ３に配備されている。アプリケーションＢの品質要件は、遅延少である。
【０１２４】
図１３には、ネットワーク状態記憶部２７に記憶される各ノード間のネットワーク状態情報およびバッファ残量記憶部２８に記憶されるノードごとのバッファ残量が示されている。
【０１２５】
第２の経路決定部２４は、移動先の処理Ｂ２を移動する間に処理Ｂ１が処理Ｂ２に送信するデータのデータ量が合計バッファ残量未満となり、且つ遅延が少ない転送経路を第２の経路として決定する。
【０１２６】
第２の経路決定部２４は、ノードＮ１からノードＮ３に至るまでに経由する他のノードＮの数を１つずつ増やして、その中で、上記のデータ量が合計バッファ残量以下となり、且つ遅延が最少となる転送経路を第２の経路として決定する。
【０１２７】
第２の経路決定部２４が第２の経路を決定する場合、現状の第１の経路（経由段数がゼロ）では、合計バッファ残量は上記のデータ量未満となる。そこで、第２の経路決定部２４は、経由段数を「１」に設定する。
【０１２８】
経由段数が１の場合、ノードＮ１からノードＮ３に至るまでの他のノードＮの経路候補としては、ノードＮ２、ノードＮ４およびノードＮ５を経由する３つの転送経路がある。図１３の例に示すように、３つの転送経路の合計バッファ残量は、上記のデータ量（１０Ｍｂｙｔｅ）を超過している。
【０１２９】
第２の経路決定部２４は、３つの転送経路のうち、遅延が最少となる転送経路を第２の経路として決定する。図１３の例に示すように、ノードＮ２を経由する転送経路の遅延が最も少ない。
【０１３０】
従って、第２の経路決定部２４は、ノードＮ２を経由する転送経路を第２の経路に決定する。このとき、第２の経路決定部２４は、決定した第２の経路にＩＤを割り当てる。図１３の例の場合、第２の経路決定部２４は、１００番のＩＤを第２の経路に割り当てている。
【０１３１】
第２の経路は、同じ経由段数の複数の経路候補のうち、遅延が最少となる転送経路には限定されない。例えば、第２の経路決定部２４は、複数の経路候補のうち、合計バッファ残量が上述したデータ量以上となることを条件に、遅延が所定量以下となる転送経路を第２の経路に決定してもよい。
【０１３２】
図１４は、第２の経路の設定の一例を示すフローチャートである。図１４は、両立型決定方法により第２の経路を決定するフローチャートの例を示している。第２の経路決定部２４は、移動対象である処理の送信元のノードＮと送信先のノードＮとを抽出する（ステップＳ１）。
【０１３３】
第２の経路決定部２４は、図１３で示した処理セットごとデータ量テーブルを参照して、送信元および送信先のノードＮを抽出する。例えば、第２の経路決定部２４は、移動対象である処理Ｂ２の送信元のノードＮ１および送信先のノードＮ３を抽出する。
【０１３４】
次に、第２の経路決定部２４は、経由段数を１にセットする（ステップＳ２）。第２の経路決定部２４は、経由段数に応じて、全ての経路候補を遅延が少ない順にソートする（ステップＳ３）。そして、バッファ残量合計部２２は、ソートした順番に合計バッファ残量を演算する（ステップＳ４）。
【０１３５】
第２の経路決定部２４は、ソートした順番に、現在の経由段数の経路候補の合計バッファ残量がデータ量未満であるか否かを判定する（ステップＳ５）。合計バッファ残量がデータ量未満でない場合（ステップＳ５でＮＯ）、第２の経路決定部２４は、現在の経由段数の経路候補が残っているか否かを判定する（ステップＳ６）。
【０１３６】
現在の経由段数の経路候補が残っている場合（ステップＳ６でＹＥＳ）、バッファ残量合計部２２は、ソートされた次の経路候補の合計バッファ残量を演算する（ステップＳ７）。その後、フローはステップＳ５に戻る。
【０１３７】
現在の経由段数の経路候補が残っていない場合（ステップＳ６でＮＯ）、第２の経路決定部２４は、現在の経由段数Ｎに２を加算した値が全ノード数未満であるか否かを判定する(ステップＳ８)。
【０１３８】
現在の経由段数Ｎに加算する値である２は、送信元のノードＮおよび送信先のノードＮである。経由段数Ｎは、送信元のノードＮと送信先のノードＮとの間にあるノードＮの数を示す。
【０１３９】
従って、現在の経由段数Ｎに２を加算した値が全ノード数以上の場合（ステップＳ８でＮＯ）、第２の経路決定部２４は、第２の経路がないと判定する（ステップＳ９）。一方、現在の経由段数Ｎに２を加算した値が全ノード数未満の場合（ステップＳ８でＹＥＳ）、第２の経路決定部２４は、Ｎ（Ｎは自然数）をインクリメントする（ステップＳ１０）。そして、フローは、ステップＳ３に戻る。
【０１４０】
ステップＳ５において、第２の経路決定部２４が経路候補の合計バッファ残量がデータ量未満であると判定した場合（ステップＳ５でＹＥＳ）、第２の経路決定部２４は、該経路候補を第２の経路として決定する（ステップＳ１１）。
【０１４１】
従って、第２の経路決定部２４は、経由段数を１つずつ増やしながら、複数の経路候補のうち、合計バッファ残量が、処理を移動している間に送信元の処理から送信先の処理に送信されるデータのデータ量未満である転送経路を検索する。
【０１４２】
検索の結果、複数の転送経路が該当する場合、第２の経路決定部２４は、遅延が最も少ない転送経路を第２の経路に決定する。これにより、第２の経路決定部２４は、バッファ残量が不足することを抑制し、且つ品質要件を満たす両立型の転送経路を第２の経路として決定する。
【０１４３】
実施形態では、図１３の例に示すように、経由段数が１の３つの経路候補のうち、バッファ残量が不足することなく、且つ遅延が最も少ない経路候補は、ノードＮ２を経由する転送経路である。よって、第２の経路は、ノードＮ１からノードＮ２を経由して、ノードＮ３に至る転送経路になる。
【０１４４】
＜処理の移動の一例＞
上述した流れは、処理の移動が開始される前に行われる。次に、処理の移動の一例について説明する。図１５の例に示すように、配備プランナ１２の配備制御部３３は、処理の移動を指示するための処理移動指示を転送制御部１１に送信する。第２の経路決定部２４は、上記のステップＳ２４で第２の経路がないと判定した場合、処理セットごとに設定されるバッファ不足フラグは１になる。
【０１４５】
第２の経路決定部２４は、処理セットのバッファ不足フラグが１の場合（ステップＳ１３でＹＥＳ）、処理の移動を中止する決定を行う（ステップＳＣ１４）。従って、オーバーフローが発生することを示すバッファ不足フラグが１の場合、第２の経路決定部２４が処理の移動を中止するため、データのオーバーフローが発生することが抑制される。
【０１４６】
転送制御部１１は、処理の移動を中止する移動中止指示を送信する。この通知を受信すると、配備プランナ１２の配備制御部３３は、処理の移動を中止する（ステップＳＣ１５）。ステップＳＣ１３でバッファ不足フラグが１でない場合（ステップＳＣ１３でＮＯ）、フローは「Ｘ」に進む。
【０１４７】
図１６は、図１５のフローの続きのフローの例を示すシーケンスチャートである。上記のように、フローが「Ｘ」に進むと、転送制御部１１は、配備プランナ１２に処理の移動を開始する処理移動開始指示を配備プランナ１２に送信する。なお、この場合、バッファ不足フラグが１でないため、処理の移動を行っても、オーバーフローは発生しない。
【０１４８】
そして、転送制御部１１のパス変更部２６は、第２の経路決定部２４が決定した第２の経路の各ノードＮにデータの蓄積を開始する蓄積開始指示を送信する（ステップＳＣ１６）。上述したように、第２の経路決定部２４は、ノードＮ１からノードＮ２を経由して、ノードＮ３に至る経路を第２の経路として決定している。
【０１４９】
従って、パス変更部２６は、ノードＮ１、ノードＮ２およびノードＮ３に対して、蓄積開始指示を送信する。これにより、ノードＮ１、ノードＮ２およびノードＮ３は、自身のバッファに受信したデータを蓄積する。
【０１５０】
配備プランナ１２の配備制御部３３は、処理Ｂ２をノードＮ３からノードＮ５に移動する処理移動指示をノードＮ３およびノードＮ５に送信する。この処理移動指示に基づいて、処理Ｂ２は、ノードＮ３からノードＮ５に移動する。
【０１５１】
ノードＮ１に配備されている処理Ｂ１は、処理Ｂ２の移動にかかわらず、処理Ｂ２に対して、データを送信する。ただし、処理Ｂ２が移動している間は、処理Ｂ２は処理Ｂ１が送信したデータを受信しない。処理Ｂ１が送信したデータは、第２の経路のノードＮ１、ノードＮ２およびノードＮ３の各バッファに蓄積される。
【０１５２】
図１７は、図１６のフローの続きのフローの例を示すシーケンスチャートである。図１７の例で、ノードＮ１の処理Ｂ１は、移動前の処理Ｂ２を実行していたノードＮ３にデータを送信する。ノードＮ３のバッファＢＦ３は、受信したデータを蓄積する。
【０１５３】
バッファＢＦ３がバッファフルになると、ノードＮ３はデータの受信を停止する（ステップＳＣ１７）。なお、処理Ｂ２の移動が完了するまでは、ノードＮ３はノードＮ５にデータの送信を行わない。
【０１５４】
ノードＮ３がデータの受信を停止すると、ノードＮ３は、受信を停止する受信停止通知を第２の経路のノードＮ２に送信する。ノードＮ２は、受信停止通知を受信すると、処理Ｂ１が送信したデータを自身のバッファＢＦ２に蓄積する。
【０１５５】
処理Ｂ１を実行するノードＮ１は、ノードＮ２にデータを送信する。ノードＮ２のバッファＢＦ２がバッファフルになると、ノードＮ２は受信を停止する（ステップＳＣ１８）。ノードＮ２は、データの受信を停止すると、受信停止通知をノードＮ１に送信する。
【０１５６】
ノードＮ１は、ノードＮ２から受信停止通知を受信すると、ノードＮ１のバッファＢＦ１に処理Ｂ１が出力するデータを蓄積する。第２の経路は、処理Ｂ２を移動している間にオーバーフローを生じない転送経路であるため、バッファＢＦ１がバッファフルになる前に処理Ｂ２の移動は完了する。
【０１５７】
転送制御部１１は、蓄積されたデータの転送経路を設定する。処理Ｂ２はノードＮ３からノードＮ５に移動されるため、転送制御部１１は、蓄積されたデータの転送経路をノードＮ３からノードＮ５までの経路に設定する。
【０１５８】
転送制御部１１は、第１の経路を設定する。第１の経路は、バッファ残量にかかわらず、所定の品質要件を満たす経路である。実施形態では、第１の経路は、データの送信元の処理Ｂ１から送信先の処理Ｂ２にデータが送信されるときに、遅延が最少となる経路である。
【０１５９】
送信先の処理Ｂ２はノードＮ５に移動される。従って、送信元の処理Ｂ１はノードＮ１であり、送信先の処理Ｂ２はノードＮ３からノードＮ５に変更される。ノードＮ１からノードＮ５に至る転送経路は、ノードＮ３を経由する転送経路とノードＮ４を経由する転送経路とがある。
【０１６０】
実施形態では、ノードＮ３とノードＮ４との何れの経路を経由しても、遅延は同じになる。ここでは、転送制御部１１は、ノードＮ４を経由する転送経路を第１の経路に設定する。ただし、処理Ｂ２の移動が完了するまでは、第１の経路の設定は有効にしない。
【０１６１】
処理Ｂ２の移動が完了すると、ノードＮ３およびノードＮ５は、配備プランナ１２に処理Ｂ２の移動が完了したことを示す処理移動完了通知を送信する。配備プランナ１２は、処理移動完了通知を転送制御部１１に送信する。
【０１６２】
転送制御部１１は、処理Ｂ２の移動が完了したため、第２の経路上にあるノードＮ１、ノードＮ２およびノードＮ３に対して蓄積解除指示を送信する。この通知に基づいて、ノードＮ１、ノードＮ２およびノードＮ３は、それぞれのバッファＢＦに蓄積されていたデータを処理Ｂ２の移動先のノードＮ５に転送する。
【０１６３】
ノードＮ３は、蓄積解除指示の通知を受信するまで、データの送信を停止している。このため、ノードＮ３は、自身のバッファＢＦ３に蓄積されているデータの送信を実行しようとしても、データの送信は行われない。
【０１６４】
例えば、ノードＮ３は、定期的にデータの送信の実行を試み、蓄積解除指示を受信したタイミングで、バッファＢＦ３に蓄積されているデータをノードＮ５に送信してもよい。また、転送制御部１１は、蓄積解除指示を第２の経路のノードＮ１、ノードＮ２およびノードＮ５に送信してもよい。これにより、ノードＮ１、ノードＮ２およびノードＮ５は、バッファＢＦに蓄積していたデータをノードＮ５に送信する。
【０１６５】
図１７の例では、ノードＮ３が蓄積解除指示を受信することで、ノードＮ３、ノードＮ２およびノードＮ１に蓄積されていたデータが順次ノードＮ５に送信される。これにより、移動後の処理Ｂ２は、処理Ｂ２の移動中に処理Ｂ１が送信したデータを受信する。
【０１６６】
転送制御部１１のパス変更部２６は、設定していた第１の経路を有効化する。第１の経路は、事前に設定されているため、パス変更部２６が第１の経路を有効化するだけで、データの転送経路が第１の経路に変更される。これにより、転送経路の切り替え時間が短縮される。
【０１６７】
パス変更部２６が第１の経路を有効化することで、ノードＮ５で実行される処理Ｂ２は、ノードＮ１で実行される処理Ｂ１が送信するデータを受信する。以降、処理Ｂ１から処理Ｂ２にデータの転送が行われる。
【０１６８】
配備プランナ１２は、処理の移動制御を行う。処理の移動が発生するよりも前に、転送制御部１１が第２の経路にデータの転送経路を変更することで、オーバーフローを生じることなく、処理の移動が行われる。
【０１６９】
＜転送部の各テーブルの一例＞
図１８は、各ノードＮの転送部４３の各テーブルの一例を示している。各ノードＮは、識別テーブルと転送先決定テーブルと処理振分テーブルとを有している。識別テーブルは、送信元ＩＤと転送経路ＩＤと廃棄要件ＩＤと送信状態との項目を有している。
【０１７０】
送信元ＩＤは、データの送信元を識別する識別子である。転送経路ＩＤは、転送経路を識別する識別子である。廃棄要件は、上述したように、廃棄が許容されるか否かを示す。送信状態は、ノードＮのデータの送信が中継されている状態であるか、停止されている状態であるかを示す。
【０１７１】
送信状態が中継の場合は、ノードＮは、データの送信を行う。送信状態が停止の場合は、ノードＮは、データの送信を中止する。例えば、図１８の例では、送信元ＩＤが処理Ａ１の場合、送信状態は中継となる。
【０１７２】
上述したように、廃棄要件が許容の場合、処理を移動している間にデータの廃棄が許容される。このため、送信元ＩＤが処理Ａ１の場合、オーバーフローが生じるか否かにかかわらず、送信状態は中継になる。
【０１７３】
一方、処理Ｂ１は、廃棄要件が非許容である。従って、処理を移動している間にオーバーフローが生じないようにする。このため、処理を移動している間は、送信状態は停止になる。
【０１７４】
転送先決定テーブルは、転送経路ＩＤと次ノードとの項目を有している。次ノードは、次に転送されるノードを示す。転送経路ＩＤが１番（送信元ＩＤが処理Ａ１）の場合、オーバーフローが許容されるため、次ノードは処理Ａ２を実行しているノードＮ３になる。
【０１７５】
転送経路ＩＤが１００番（送信元ＩＤが処理Ｂ１）の転送経路は、オーバーフローが許容されない転送経路である。よって、転送経路は第１の経路から第２の経路に変更される。このため、ノードＮ１からノードＮ２を経由して、ノードＮ３にデータが転送されるように、次ノードが設定される。なお、ノードＮ３の次ノードである「ｌｏｃａｌ」は、最終ノードであることを示す。
【０１７６】
処理振分テーブルは、転送先決定テーブルの次ノードが「ｌｏｃａｌ」になっているノードＮにある処理にデータを振り分ける。識別子がＡ１であれば、最終ノードＮ３にある処理Ａ２にノードＮ１から送信されたデータが振り分けられる。識別子がＢ１であれば、最終ノードＮ３にある処理Ｂ２にノードＮ１から送信されたデータが振り分けられる。
【０１７７】
＜処理移動前の転送制御部のフローの一例＞
次に、処理移動前の転送制御部１１のフローについて、図１９のフローチャートの例を参照して説明する。転送制御部１１は、配備プランナ１２からアプリ特性情報を取得する（ステップＳ１１）。
【０１７８】
転送制御部１１は、アプリ特性情報を参照して、移動する処理のアプリケーションの廃棄要件が非許容であるか否かを判定する（ステップＳ１２）。廃棄要件が非許容である場合（ステップＳ１２でＹＥＳ）、データ量算出部２１は、アプリ特性情報を参照して、処理間の通信速度を取得する（ステップＳ１３）。通信速度は、単位時間あたりのデータの通信量である。
【０１７９】
データ量算出部２１は、ノードＮの移動時間計測部４１が計測した処理の移動時間を取得する（ステップＳ１４）。データ量算出部２１は、処理セットごとに、通信速度と移動時間とを積算して、送信先の処理を他のノードに移動している間に、送信元の処理から送信先の処理に送信するデータのデータ量を算出する（ステップＳ１５）。
【０１８０】
第１の経路決定部２３は、所定の品質要件を満たすように、送信元の処理から送信先の処理にデータを移動するときの転送経路を第１の経路に決定する（ステップＳ１６）。なお、ステップＳ１２で、アプリ特性が廃棄許容である場合（ステップＳ１２でＮＯ）、ステップＳ１３〜ステップＳ１５は実行されない。
【０１８１】
以上は、システム１を運用する前のフローである。次に、システム１の運用が開始される（ステップＳ１７）。転送制御部１１は、各ノードＮからバッファ残量を取得する（ステップＳ１８）。
【０１８２】
転送制御部１１は、バッファ残量を取得したノードＮに廃棄要件が非許容の処理があるか否かを判定する（ステップＳ１９）。廃棄要件が非許容の処理がない場合（ステップＳ１９でＮＯ）、オーバーフローが許容されるため、ステップＳ２０以降の各ステップは実行されない。このため、フローは、ステップＳ１８に戻る。
【０１８３】
バッファ残量を取得したノードＮに廃棄要件が非許容の処理がある場合（ステップＳ１９でＹＥＳ）、転送制御部１１は、処理を移動している間にバッファ不足を生じるか否かを判定する（ステップＳ２０）。
【０１８４】
データの送信元の処理を実行しているノードＮのバッファ残量とデータの送信先の処理を実行しているノードＮのバッファ残量との合計が、ステップＳ１６で算出したデータ量未満の場合、転送制御部１１は、バッファ不足と判定する。
【０１８５】
処理移動時にバッファ不足が生じない場合（ステップＳ２０でＮＯ）、ステップＳ２１の各ステップは実行されない。処理移動時にバッファ不足が生じる場合（ステップＳ２０でＹＥＳ）、第２の経路決定部２４は、第２の経路を検索する（ステップＳ２１）。
【０１８６】
上述したように、第２の経路を決定する方法は、残量優先型決定方法と両立型決定方法との２つがある。何れの方法でも、第２の経路は、合計バッファ残量がステップＳ１６で算出したデータ量以上となる転送経路である。
【０１８７】
第２の経路がある場合（ステップＳ２１でＹＥＳ）、第２の経路決定部２４は第２の経路を決定する。そして、転送制御部１１は、第２の経路を設定する（ステップＳ２３）。そして、転送制御部１１は、処理を移動する前であっても、設定した第２の経路に転送経路を変更する（ステップＳ２４）。そして、フローは、ステップＳ１８に戻る。
【０１８８】
第２の経路がない場合（ステップＳ２２でＮＯ）、転送制御部１１は、処理セットのバッファ不足フラグを１にする（ステップＳ２５）。この場合、転送制御部１１は、第２の経路を設定しない。
【０１８９】
＜転送制御部の処理移動時のフローの一例＞
次に、処理移動時の転送制御部１１のフローについて、図２０のフローチャートの例を参照して説明する。転送制御部１１は、配備プランナ１２から配備先ノード情報を取得する（ステップＳ３１）。これにより、転送制御部１１は、処理の移動先を認識する。
【０１９０】
転送制御部１１は、移動対象の処理の廃棄要件が非許容であるか否かを判定する（ステップＳ３２）。移動対象の処理の廃棄要件が非許容の場合（ステップＳ３２でＹＥＳ）、転送制御部１１は、第２の経路が設定済みであるか否かを判定する（ステップＳ３３）。
【０１９１】
第２の経路が設定済みの場合（ステップＳ３３）、送信元の処理が送信先の処理に対して送信するデータを蓄積する蓄積開始指示を第２の経路にある各ノードＮに送信する（ステップＳ３４）。
【０１９２】
転送制御部１１は、移動対象の処理を実行しているノードＮから該処理の移動先のノードＮまでの転送経路を設定する（ステップＳ３５）。転送制御部１１は、データの送信元の処理のノードＮから該データの送信先の処理の移動先のノードＮまでの第１の経路を決定する（ステップＳ３６）。第１の経路は、上述したように、所定の品質要件を満たす経路である。
【０１９３】
転送制御部１１は、ステップＳ３６で決定した第１の経路を設定する（ステップＳ３７）。このため、転送制御部１１は、第１の経路にある各ノードＮの転送部４３に第１の経路を設定する指示を送信する。
【０１９４】
例えば、転送制御部１１は、各ノードＮの転送部４３の転送先決定テーブルに第１の経路を辿る設定を行うことで、第１の経路が設定される。このとき、転送制御部１１は、転送先決定テーブルの送信状態を停止に設定することで、第１の経路の各ノードＮはデータの送信を行わない。
【０１９５】
転送制御部１１は、配備プランナ１２から処理移動完了通知を受信したか否かを判定する（ステップＳ３８）。転送制御部１１が処理移動完了通知を受信しない場合（ステップＳ３８でＮＯ）、次のステップには進まない。
【０１９６】
転送制御部１１が処理移動完了通知を受信した場合（ステップＳ３８でＹＥＳ）、転送制御部１１は、処理の移動元のノードＮに対して蓄積解除指示を送信する（ステップＳ３９）。これにより、第２の経路の各ノードＮのバッファＢＦに蓄積されていたデータが、処理Ｂの移動先のノードＮに転送される。
【０１９７】
転送制御部１１は、第２の経路の各ノードＮのバッファＢＦに蓄積されていたデータが処理Ｂの移動先のノードＮに転送された後に、第１の経路を有効にする（ステップＳ４０）。このため、転送制御部１１は、第１の経路の各ノードＮの転送先決定テーブルの送信状態を中継にする。
【０１９８】
ステップＳ３３で、第２の経路が設定済みでない場合（ステップＳ３３でＮＯ）、処理の移動を行うと、オーバーフローを生じる可能性がある。このため、転送制御部１１は、配備プランナ１２に対して、処理の移動を中止する移動中止指示を送信する（ステップＳ４１）。配備プランナ１２は、この通知を受信すると、処理の移動を中止する。これにより、オーバーフローが生じることが抑制される。
【０１９９】
ステップＳ３２で、移動対象の処理の廃棄要件が許容の場合、オーバーフローが許容される。このため、転送制御部１１は、所定の品質要件を満たす第１の経路を設定し（ステップＳ４２）、第１の経路を有効にする（ステップＳ４３）。これにより、移動元の処理から第１の経路を経由して、データが送信される。
【０２００】
＜データ蓄積時のノードの制御の一例＞
次に、図２１のフローチャートを参照して、ノードＮがデータをバッファＢＦに蓄積し、蓄積したデータを転送するときの制御の一例について説明する。ノードＮは、移動する処理について、転送制御部１１からデータの蓄積を開始する蓄積開始指示を受信したか否かを判定する（ステップＳ５１）。ノードＮが蓄積開始指示を受信しなければ（ステップＳ５１でＮＯ）、次のステップには進まない。
【０２０１】
ノードＮが蓄積開始指示を受信すると（ステップＳ５１でＹＥＳ）、ノードＮは、移動する処理に送信されるデータをバッファＢＦに蓄積する（ステップＳ５２）。そして、ノードＮは、転送制御部１１からデータの蓄積を解除する蓄積解除指示を受信したか否かを判定する（ステップＳ５３）。
【０２０２】
ノードＮが蓄積解除指示を受信しなければ（ステップＳ５３でＮＯ）、次のステップには進まない。ノードＮが蓄積解除指示を受信した場合（ステップＳ５３でＹＥＳ）、ノードＮはバッファＢＦに蓄積されているデータを第２の経路に沿って転送する（ステップＳ５４）。
【０２０３】
＜ノードの制御の一例＞
次に、図２２のフローチャートを参照して、ノードＮの制御の一例について説明する。ノードＮは、データを受信する（ステップＳ７０）。ノードＮは、データの送信元の処理の廃棄要件を識別テーブルに基づいて識別し、受信したデータの処理の廃棄要件が非許容であるか否かを判定する（ステップＳ７１）。
【０２０４】
受信したデータの処理の廃棄要件が許容の場合（ステップＳ７１でＮＯ）、ノードＮは、バッファＢＦのバッファ残量があるか否かを判定する（ステップＳ７２）。つまり、ノードＮは、バッファＢＦに空き容量があるか否かを判定する。
【０２０５】
バッファＢＦに残量がない場合（ステップＳ７２でＮＯ）、オーバーフローが生じる。このため、オーバーフローしたデータは廃棄される（ステップＳ７３）。そして、制御は終了する。
【０２０６】
バッファＢＦにバッファ残量がある場合（ステップＳ７２でＹＥＳ）、受信したデータは一時的にバッファＢＦに蓄積される。ノードＮは、転送部４３の転送先決定テーブルを参照して、データを送信する次のノードを決定する（ステップＳ７４）。
【０２０７】
ノードＮは、自ノードが送信先であるか否かを判定する（ステップＳ７５）。転送部４３の転送先決定テーブルがｌｏｃａｌになっている場合は、自ノードが送信先である。それ以外は、自ノードは送信先ではない。
【０２０８】
自ノードが送信先でない場合（ステップＳ７５でＮＯ）、ノードＮは、転送部４３の転送先決定テーブルを参照して、バッファＢＦに蓄積されているデータを次のノードに転送する（ステップＳ７６）。
【０２０９】
なお、後述するように、この時点で、送信状態は停止から中継になっている。従って、バッファＢＦに蓄積されているデータは次のノードに転送される。そして、ノードＮの制御は終了する。
【０２１０】
自ノードが送信先である場合（ステップＳ７５でＹＥＳ）、ノードＮは、振分先テーブルを参照して、受信したデータの振分先の処理を決定する（ステップＳ７７）。そして、ノードＮは、受信したデータを決定した処理に振り分ける。その後、ノードＮの制御は終了する。
【０２１１】
ステップＳ７１で、受信したデータの処理の廃棄要件が非許容である場合（ステップＳ７１でＹＥＳ）、ノードＮは、バッファ残量があるか否かを判定する（ステップＳ７９）。
【０２１２】
バッファ残量がある場合（ステップＳ７９でＹＥＳ）、つまりバッファＢＦの空き容量がある場合、ノードＮは、受信したデータをバッファＢＦに蓄積する（ステップＳ８０）。ノードＮは、転送部４３の識別テーブルの送信状態が停止であるか否かを判定する（ステップＳ８１）。
【０２１３】
送信状態が停止の場合（ステップＳ８１でＹＥＳ）、次のステップに進まない。送信状態が中継の場合（ステップＳ８１でＮＯ）、フローはステップＳ７４に進む。従って、フローがステップＳ７４に進んだ時点で、識別テーブルの送信状態は中継に変化している。
【０２１４】
ステップＳ７９で、バッファ残量がない場合（ステップＳ７９でＮＯ）、廃棄要件が非許容の処理のデータが廃棄される可能性がある。このため、ノードＮは、処理の送信元のノードＮに対して、受信停止通知を送信する（ステップＳ８２）。これにより、該ノードＮでオーバーフローが生じることが抑制される。
【０２１５】
＜転送制御部のハードウェア構成の一例＞
次に、図２３の例を参照して、転送制御部１１のハードウェア構成の一例を説明する。図２３の例に示すように、バス１００に対して、ＣＰＵ１１１とＲＡＭ１１２とＲＯＭ１１３と補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とが接続されている。
【０２１６】
ＣＰＵ１１１は任意の処理回路である。ＣＰＵ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０２１７】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１８と接続可能に設けられている。
【０２１８】
可搬型記録媒体１１８としては、可搬型のメモリや光学式ディスク（例えば、Compact Disk(CD)やDigital Versatile Disk(DVD)等）を適用してもよい。この可搬型記録媒体１１８に実施形態の処理を行うプログラムが記録されていてもよい。
【０２１９】
転送制御部１１の各種記憶部以外の各部は、ＣＰＵ１１１により実現されてもよい。転送制御部１１の各種記憶部は、ＲＡＭ１１１または補助記憶装置１１４により実現されてもよい。
【０２２０】
ＲＡＭ１１２、ＲＯＭ１１３および補助記憶装置１１４は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０２２１】
＜ノードのハードウェア構成の一例＞
次に、図２４の例を参照して、ノードＮのハードウェア構成の一例を説明する。図２４の例に示すように、バス２００に対して、ＣＰＵ２１１とＲＡＭ２１２とＲＯＭ２１３と補助記憶装置２１４と媒体接続部２１５と通信インタフェース２１６とが接続されている。
【０２２２】
ＲＡＭ２１２以外の各部は、上述した転送制御部１１と同様である。ＲＡＭ２１２は、バッファＢＦのための記憶領域を有している。図２４の例では、バッファＢＦはＲＡＭ２１２の一部の領域であるが、バッファＢＦは別途の記憶装置であってもよい。
【０２２３】
＜その他＞
上述した実施形態では、データの送信先の処理を移動するときに、転送制御部１１は、送信元の処理から送信先の処理に移動している間の過渡期のデータ量を算出する。そして、データの送信元の処理を実行するノードＮとデータの送信先の処理を実行するノードＮとのバッファのバッファ残量の合計が算出したデータ量未満となる場合に、転送制御部１１は、第２の経路に転送経路を変更している。
【０２２４】
この点、上記のバッファ残量の合計および算出したデータ量にかかわらず、転送制御部１１は、第２の経路に転送経路を変更してもよい。転送制御部１１が第２の経路に転送経路を変更することで、データのオーバーフローは生じなくなる。
【０２２５】
ただし、上記のバッファ残量の合計が算出したデータ量以上となる場合、現在の転送経路でもオーバーフローを生じない。このため、バッファ残量の合計が算出したデータ量未満となる場合に、第２の経路に転送経路を変更することで、転送経路の変更する頻度が低下する。
【０２２６】
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出し、
ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が前記データ量以上となる経路に前記データの転送経路の変更を行う、
処理をコンピュータが実行するデータ転送制御方法。
（付記２）
前記第１ノードのバッファ残量と前記第２ノードのバッファ残量との合計が前記データ量未満の場合に、前記データの転送経路の変更を行う、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記３）
前記第２処理を前記第２ノードから前記第３ノードに移動する時間と前記第２処理が受信するデータの通信速度とに基づいて、前記データ量を算出する、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記４）
前記第２処理の移動が発生する前に、前記データの転送経路を設定し、
前記第２処理を前記第３ノードに移動するときに、設定した前記データ転送経路に変更する、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記５）
１以上の他のノードを経由して前記第１ノードと前記第２ノードとを接続する複数の経路の中で、前記バッファ残量の合計が前記データ量以上なる経路であり、且つ前記データの転送時間が最短の経路に前記データの転送経路を変更する、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記６）
１以上の他のノードを経由して前記第１ノードと前記第２ノードとを接続する複数の経路の中で、経由する前記他のノードの段数をインクリメントしながら、前記バッファ残量の合計が前記データ量以上となる経路の検索を行い、
前記経路の検索の結果、複数の経路が該当する場合、前記データの転送時間が最短の経路に前記データの転送経路を変更する、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記７）
前記第１ノードと前記第２ノードとの間の他のノードと、前記第１ノードと、前記第２ノードとのうち何れかからバッファ残量に変化を生じた通知を受信したときに、前記データ量の算出を行う、
処理を前記コンピュータが実行する付記５記載のデータ転送制御方法。
（付記８）
前記バッファ残量の合計が前記データ量以上となる経路がない場合、前記第２処理の移動を中止する制御を行う、
処理を前記コンピュータが実行する付記１記載のデータ転送制御方法。
（付記９）
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出し、
前記第１ノードのバッファ残量が前記データ量未満の場合、ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が前記データ量以上となる経路に前記データの転送経路を変更する、
処理をコンピュータに実行させるためのデータ転送制御プログラム。
（付記１０）
第２ノードで実行する第２処理を第３ノードへ移動する間に第１ノードで実行される第１処理が前記第２処理へ送信するデータのデータ量、を算出する算出部と、
ノード間の接続状態とノードごとのバッファ残量とに基づいて、バッファ残量の合計が前記データ量以上となる経路に前記データの転送経路の変更を行う変更部と、
を備えるデータ転送制御装置。
【符号の説明】
【０２２７】
１    システム
１１    転送制御部
１２    配備プランナ
２１    データ量算出部
２２    バッファ残量合計部
２３    第１の経路決定部
２４    第２の経路決定部
２５    パス変更判定部
２６    パス変更部
２７    ネットワーク状態記憶部
２８    バッファ残量記憶部
２９    テーブル記憶部
ＢＦ    バッファ
Ｎ      ノード
１１１    ＣＰＵ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
0006421626.tif 000002
【図２】
0006421626.tif 000003
【図３】
0006421626.tif 000004
【図４】
0006421626.tif 000005
【図５】
0006421626.tif 000006
【図６】
0006421626.tif 000007
【図７】
0006421626.tif 000008
【図８】
0006421626.tif 000009
【図９】
0006421626.tif 000010
【図１０】
0006421626.tif 000011
【図１１】
0006421626.tif 000012
【図１２】
0006421626.tif 000013
【図１３】
0006421626.tif 000014
【図１４】
0006421626.tif 000015
【図１５】
0006421626.tif 000016
【図１６】
0006421626.tif 000017
【図１７】
0006421626.tif 000018
【図１８】
0006421626.tif 000019
【図１９】
0006421626.tif 000020
【図２０】
0006421626.tif 000021
【図２１】
0006421626.tif 000022
【図２２】
0006421626.tif 000023
【図２３】
0006421626.tif 000024
【図２４】
0006421626.tif 000025