(57)【特許請求の範囲】
【請求項１】
複数のノードと前記ノード間を接続するリンクとを備えるＴＤＭネットワークシステムであって、
通信元ノードと宛先ノードとの組み合わせである対地ごとに、当該対地にタイムスロットを割り当てるスケジューラを有し、
前記スケジューラは、
トラヒックを示す指標が基準値を超えたかどうかを判断する比較手段と、
対地ごとの要求トラヒック量に基づいて当該対地にタイムスロットを割り当てるタイムスロット割当手段と、
を有し、前記比較手段での判断結果に応じ、前記タイムスロット割当手段におけるタイムスロット割当の計算アルゴリズムが選択される、ＴＤＭネットワークシステム。
【請求項２】
前記タイムスロット割当手段は、トラヒック変動の差分にのみに着目してトラヒック変動があった対地についてタイムスロットの再割当を行う第１の計算アルゴリズムと、要求トラヒックに対して１対地ずつ順にタイムスロットを割り当てる第２の計算アルゴリズムと、の少なくとも２つの計算アルゴリズムを選択して実行可能であり、
前記比較手段は、前記トラヒックを示す指標としてトラヒックの変動量がしきい値を超えない場合には前記第１の計算アルゴリズムでのタイムスロット割当を前記タイムスロット割当手段に指示し、前記トラヒックの変動量がしきい値を超えたときには前記第２の計算アルゴリズムでのタイムスロット割当を前記タイムスロット割当手段に指示する、請求項１に記載のＴＤＭネットワークシステム。
【請求項３】
前記各ノードは、送信すべきデータを宛先ノードごとに保持するバッファを備え、
前記トラヒックを示す指標として、前記バッファにおけるキュー長の変動の差分を用いる、請求項１または２に記載のＴＤＭネットワークシステム。
【請求項４】
前記トラヒックを示す指標として、トラヒックの変動量、割当帯域からノードへの流入トラヒック量を減じた値、並びに、遅延及び損失を示す値、のいずれか１つを用いる、請求項１または２に記載のＴＤＭネットワークシステム。
【請求項５】
複数のノードと前記ノード間を接続するリンクとを備えるＴＤＭネットワークシステムであって、
通信元ノードと宛先ノードとの組み合わせである対地ごとに、当該対地にタイムスロットを割り当てるスケジューラを有し、
前記スケジューラは、
トラヒック変動の差分にのみに着目してトラヒック変動があった対地についてタイムスロットの再割当を行う第１の演算手段と、
要求トラヒックに対して１対地ずつ順にタイムスロットを割り当てる第２の演算手段と、
前記第１の演算手段の割当結果と前記第２の演算手段の割当結果とを所定の時間内で比較して、第１及び第２の演算手段のうち、よりトラヒック変動に応じたタイムスロット割当を実現している演算手段を選択し、選択された演算手段に応じて前記各ノードに対するタイムスロット割当を実行する第３の演算手段と、
を有する、ＴＤＭネットワークシステム。
【請求項６】
複数のノードと前記ノード間を接続するリンクとを備え、通信元ノードと宛先ノードとの組み合わせである対地ごとに、当該対地におけるトラヒック量に応じて当該対地にタイムスロットを割り当てられるＴＤＭネットワークシステムにおけるスケジューリング方法であって、
トラヒックを示す指標が基準値を超えたかどうかを判断する判断段階と、
前記判断段階での判断結果に応じて、対地ごとの要求トラヒック量に基づいて当該対地にタイムスロットを割り当てるタイムスロット割当手段におけるタイムスロット割当の計算アルゴリズムを選択する段階と、
を有する、スケジューリング方法。
【請求項７】
複数のノードと前記ノード間を接続するリンクとを備え、通信元ノードと宛先ノードとの組み合わせである対地ごとに、当該対地におけるトラヒック量に応じて当該対地にタイムスロットを割り当てられるＴＤＭネットワークシステムにおけるスケジューリング方法であって、
トラヒック変動の差分にのみに着目してトラヒック変動があった対地についてタイムスロットの再割当を行う第１の演算処理と、
要求トラヒックに対して１対地ずつ順にタイムスロットを割り当てる第２の演算処理と、
前記第１の演算処理での割当結果と前記第２の演算処理での割当結果とを所定の時間内で比較して、第１及び第２の演算処理のうち、よりトラヒック変動に応じたタイムスロット割当を実現している演算処理を選択し、選択された演算処理での割当結果に応じて前記各ノードに対するタイムスロット割当を実行する段階と、
を有するスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＤＭ（時分割多重：time division multiplexing）技術に基づくネットワークシステムに関し、特に、動的にリソース割当を行うシステムと、動的にリソースを割り当てる方法すなわちスケジューリング方法とに関する。
【背景技術】
【０００２】
ＴＤＭネットワークでは、複数のノードが伝送路を共有した上で、各ノードが伝送路をに対してデータを送信するタイミングを定め、各ノードは、自ノードに割り当てられた周期的なタイミングでデータを伝送路上に送出する。通常は、送信用のタイミングとして一定の時間長の期間を１タイムスロット（ＴＳ：timeslot）と定め、送信元ノードと宛先ノードとの組み合わせごとに送信に用いるタイムスロットを決定する。送信元ノードと宛先ノードとの組み合わせのことを一般に対地と呼ぶ。対地ごとにデータ送信用のタイムスロットを割り当てることをスケジューリングと呼んでいる。このとき、対地ごとに他の対地と重ならないようタイムスロットを割り当て、要求帯域の大きな対地に対しては、より多くのタイムスロットを割り当てるようにする。また、２以上の所定の個数のタイムスロットに相当する時間をＴＤＭフレーム長ｔと呼び、ＴＤＭフレーム長ｔごとに各対地に対するタイムスロットの割当が繰り返されるようにする。
【０００３】
図１（ａ）は、ＴＤＭネットワークの一例として、リング状伝送路からなるネットワークを示している。このネットワークでは、それぞれ光スイッチによって構成され図示Ａ〜Ｅで表される５個のノードがリング状の伝送路（例えば、１０Ｇｂｐｓのリング伝送路）上に設けられている。ここでは、伝送路は一方向に信号を伝送する光伝送路であるとする。伝送路において、隣接する２つのノードに挟まれた区間のことをリンクと呼ぶ。図１（ａ）では、各タイムスロットの長さが１ｍｓ、ＴＤＭフレーム長ｔを５ｍｓとしている。１つのＴＤＭフレームに対して５個のタイムスロットが含まれることになるから、これらのタイムスロットをＳ１〜Ｓ５とする。このとき、タイムスロット１個当たり２Ｇｂｐｓ相当のデータ伝送が可能ということになる。それぞれの対地のデータ送信に対してタイムスロットを割り当てる場合、このとき、同一対地に関し、その経由するリンクには共通のタイムスロットが割り当てられる。また、同一のリンクに関し、異なる対地のデータ送信には同じタイムスロットを使用することはできない。
【０００４】
効率的な、すなわち伝送路の帯域を無駄にしないデータ伝送を行うためには、タイムスロットを可能な限り隙間なく割り当てる必要がある。ネットワーク内の各リンクに規定されたタイムスロットの割当状況を表すテーブルをスケジュールテーブルと呼ぶ。したがって、スケジューリングは、スケジュールテーブル上に示された各タイムスロットに対して通信を割り当てていく操作であるとも言え、リソース割当の一形態である。
【０００５】
図１（ａ）に示すように、ノードＡからノードＣに向けて２Ｇｂｐｓのデータ送信が行われ、ノードＢからノードＤに向けて４Ｇｂｐｓのデータ送信が行われるものとすると、ノードＡからノードＣへのデータ送信には例えばタイムスロットＳ１が使用され、ノードＢからノードＤへのデータ送信には例えばタイムスロットＳ２が使用される。ノードＢ，Ｃ間のリンクに着目すると、タイムスロットＳ１〜Ｓ３が使用されていることになる。この場合のスケジュールテーブルの内容は、図１（ｂ）に示すものとなる。
【０００６】
ＴＤＭネットワークにおけるスケジューリング方法として、例えば、事前にデータ転送スケジュールを決定し、運用する方法がある。このとき、スケジュールの決定方法としては、Ｚｈａｎｇら（非特許文献１）や後久ら（非特許文献２）に示されるような、ヒューリスティック法がある。ヒューリスティック法では、ネットワークトポロジが与えられたときに、与えられたトラヒックは全て収容し得るものとし、所定の判断基準でソーティングや条件判定を行い、１対地ずつシーケンシャルにタイムスロットの割当を行うものである。
【０００７】
また、通信トラヒックに応じて動的に、例えば、秒オーダー以下の時間間隔で、ネットワーク内の帯域割当すなわちタイムスロットのスケジューリングを行う方法も提案されている。タイムスロットの割当の計算は、ネットワーク規模が大きくなるにつれて急激に演算量が増大するので、中川らは、演算量を削減してスケジューリングを行う方法として、階層化方式（非特許文献３）や剥ぎ取り及び貼り付け（Ｒ＆Ｒ：Rip-up & Re-allocate）方式（非特許文献４）を提案している。階層化方式は、リソース割当問題（すなわち前述のスケジューリング）を小さな単位に分割し、それぞれを独立に解くことによって、計算の高速化を図るものである。
【０００８】
図２は、階層化方式によるスケジューリングを説明する図である。図においてノード層として示されるように、リング状のネットワークに多数のノードが設けられているとして、これらのノードの１または複数をまとめることにより、図においてノードグループ層として示されるように、ノードグループを構成する。ここでは多数のノードが４個のノードグループＰ〜Ｓにまとめられている。その上でまず、ノードグループの相互間のデータ伝送に着目して、送信元ノードグループと宛先ノードグループとの組み合わせごとにタイムスロットを割り当てるかを決定して、ノードグループの対に対するスケジュールテーブルを生成する。次に、ノードグループの対に対するスケジュールテーブルに割り当てられた、送信元及び宛先ノードグループの組み合わせごとに、その組み合わせに含まれることとなる対地（すなわち送信元ノード及び宛先ノードの組み合わせ）ごとにタイムスロットを割り当てる。これによって対地ごとのタイムスロットの割当が決定して、スケジューリングが完了することになる。
【０００９】
一方、剥ぎ取り及び貼り付け方式（以下、Ｒ＆Ｒ方式と呼ぶ）によるスケジューリングは、ＴＤＭネットワークにおいて動的なリソース割当を行う際に、トラヒック変動周期などの再計算周期ごとに全てのリソース割当についての再計算を行うのではなく、再計算周期Ｔの間のトラヒック変動分のみを考慮した再計算を行うものである。変動が生じていない箇所の計算を対象外とすることで、計算量を減らして計算の高速化を図り、かつ、タイムスロット割当の最適解に高速に漸近するようにしている。この方法では、対地ごとの要求タイムスロット数の計算を行った上で、要求タイムスロット数に関して変化があった部分についてのみ、スケジュールテーブルにおけるタイムスロット割当の変更を行う。タイムスロット割当の変更は、例えば、トラヒック量が減少して所要タイムスロット数が減少した対地（パス）について、割り当てられているタイムスロット数を減少させ（これをタイムスロットの剥ぎ取り(Rip-up)処理と呼ぶ）、トラヒック量が増加した対地について、追加のタイムスロットを割り当てる（これをタイムスロットの貼り付け(Re-allocation)処理と呼ぶ）ことによって行われる。
【００１０】
図３は、スケジュールテーブルにおける変化を示すことによって、Ｒ＆Ｒ方式によるスケジューリングの概念を示している。４個のノードＡ〜Ｄを有する一方向リングネットワークにおいて、ある時点でのリンクスケジュールテーブルの内容が図３（ａ）に示すもののようであったとする。ここで、トラヒック変動があり、Ｄ→Ａ及びＤ→Ｂの各対地のトラヒック量が減少し、Ｃ→Ａ及びＣ→Ｂの各対地のトラヒックが増加したとすると、Ｒ＆Ｒ方式によるスケジューリングでは、まず、図３（ｂ）に示すように、Ｄ→Ａ及びＤ→Ｂの各対地について割当タイムスロットを剥ぎ取り、次に、図３（ｃ）に示すように、剥ぎ取った分をＣ→Ａ及びＣ→Ｂの各対地に貼り付ける。これにより複数パス間で帯域を融通し合う。このとき、所要トラヒック量に変化があった対地についてのみ計算を行うことにより、計算量を大幅に減少させて計算速度を向上させ、トラヒック変動に追従し動的に帯域（すなわちタイムスロット）を再割当可能なネットワークシステムの大規模化を実現させる。
【００１１】
図４は、Ｒ＆Ｒ方式によるスケジューリングをより模式的に示した図である。この方式では、前回と今回との間で要求トラヒック量の変動が大きい対地（パス）に注目し、大きく要求量が減少した対地で使われていた帯域を、要求量が大きく増加した対地に割り当てる。例えば、図４の（ａ）に示すように、ネットワーク上のノードＡ，Ｂのうち、ノードＡ向けのトラヒック量が多く、ノードＡ向けにより大きな帯域が割り当てられているものとする。この状態で、図４の（ｂ）に示すように、ノードＡ向けのトラヒック量がノードＢ向けのトラヒック量が増加した場合には、Ａ向けの帯域が余り、Ｂ向けの帯域が不足することになる。この方法では、余っている方のＡ向けの帯域を削って（すなわち剥ぎ取り処理）、不足している方のＢ向けの帯域に割り当てる（すなわち貼り付け処理）という操作を、変動が生じた全対地を対象として実行する。図４の（ｃ）に示すように、剥ぎ取り及び貼り付けの実行回数（対象とするパスの本数）にしたがって、剥ぎ取りあるいは貼り付けのための計算時間は増加するが、タイムスロット割当における非効率さは改善され、ネットワークにおける実際の帯域利用率を向上させることができる。したがって、少ない回数の剥ぎ取り及び貼り付け処理によって非効率さが大幅に改善されればよく、そのために、どの順番で剥ぎ取り処理や貼り付け処理を行うパスを決定し、スケジュールテーブル上のどの位置から剥ぎ取り処理や貼り付け処理を行うかのアルゴリズムが重要となる。なお図４では剥ぎ取り処理を行ってから貼り付け処理を行っているが、後述するように、剥ぎ取り処理と貼り付け処理の実行順は任意である。
【００１２】
上述したようなタイムスロットのスケジューリングが適用されるＴＤＭネットワークの例として、図５に示すように、ノード１１ごとにそれぞれホストコンピュータ１２が接続されているものがある。図示したものでは、リング状のネットワーク上に、Ａ〜Ｅで示される５個のノード１１が設けられており、隣接するノード１１間はリンク１０によって接続している。ノードＡには、ネットワーク全体でのタイムスロットのスケジューリングを行うスケジューラ２０が設けられている。
【００１３】
図６は、ノード１１の構成例を示している。このノード１１は、光ＴＤＭネットワークに用いられるノードとして一般的な構成を有しており、リンクを転送されてくるデータのタイムスロット単位での方路切替を行うスイッチ３１と、ホストコンピュータ１２との間でデータをやり取りするための入出力部（Ｉ／Ｏ）３２と、ホストコンピュータ１２側から送信されてきたデータを一時的に貯えるバッファ３３と、バッファ３３から送信データを受け取ってリンクに送り出される光信号を生成しスイッチ３１に送出する送信部（Ｔｘ）３４と、スイッチ３１から光信号を受信し受信データとしてＩ／Ｏ３２を介してホストコンピュータ１２に送る受信部（Ｒｘ）３５と、ノード１１全体を制御するコントローラ３６とを備えている。特にコントローラ３６は、スケジューラ２０から送信されてきたスケジュールテーブル（処理スケジュール）に基づいて、スイッチ３１と送信部３４を制御する。
【００１４】
スケジューラ２０は、図７に示すように、例えば、ノード１１のコントローラ３６との間でトラフィック情報やスケジュールテーブルなどやり取りするための入出力部（Ｉ／Ｏ）４１と、スケジューリングのための計算を行う演算装置４２と、必要な情報を保持するためのメモリ４３とを備えている。入出力部４１は、その接続するノード１１のコントローラ３５から、ネットワークを構成する各ノード間のトラヒック情報４４を受け取ると、送信元及び宛先の識別を行って、そのような識別（フィルタリング）を行った後のトラヒック情報４５を演算装置４２に送信する。演算装置４２は、トラヒック情報４５を受け取ると、各ノード１１間のトラヒック情報を送信元及び宛先ごとに分類したもものをメモリ４３に格納する。そして演算装置４２は、メモリ４３から読出された各ノード１１間のトラヒック情報に基づいて、帯域割当計算を行い、メモリ４３内にスケジュールテーブルを作成する。さらに演算装置４２は、作成したスケジュールテーブルをメモリ４３から読出して、帯域割当計算の結果（すなわち各ノード１１のコントローラ３６に送られるべき処理スケジュール）４６として、入出力部４１を介して各ノード１１に送信する。
【００１５】
次に、以上のようなスケジューラ２０がネットワーク内のいずれかのノード１１に接続しているとしたときの、各ノードにおける処理について説明する。
【００１６】
図６に示すノード１１において、入出力部３２は、ホストコンピュータ１２からの送信データＳｇを受け取ってフィルタリング処理を行い、フィルタリング処理後のデータＳｈをバッファ３３に格納する。バッファ３３は、データＳｈを宛先ごとに分類してバッファリングし、コントローラ３６から読出指示信号Ｓｑにしたがって、バッファリングしているデータＳｉを送信部３４に転送する。またバッファ３３は、自ノードのトラヒック情報Ｓｐとして、その使用状況をコントローラ３６に通知する。送信部３４は、コントローラ３６からの送信指示信号Ｓｒに基づいて、データＳｉを光信号Ｓｊに変換してスイッチ３１に送出する。スイッチ３１は、前段のノードからの光信号Ｓｋと送信部３４からの光信号Ｓｒとを入力として、コントローラ３６からの切替指示信号Ｓｔに基づいて方路切替を行い、次段のノードに向けて光信号Ｓｌを送出し、受信部３５に向けて光信号Ｓｍを送出する。受信部３５は光信号Ｓｍを受信して受信データＳｎとし、入出力部３２を介してホストコンピュータに受信データＳｎを送信する。
【００１７】
ところで、ネットワーク内にはスケジューラ２０は一般に１つしか設けられないので、スケジューラ２０で生成したスケジュールをネットワーク上で転送して各ノード１１に伝達する必要があり、また、各ノードにおけるトラヒック情報もネットワークを介してスケジューラ２０に伝達する必要がある。そのため、スイッチ３１は、光信号Ｓｋに含まれている、前段のノードからの制御信号Ｓｓ（トラヒック情報や他ノードから転送されてきたスケジュールテーブル情報）をドロップ(Drop)してコントローラ３６に転送し、また、コントローラ３６から他ノードあてに転送される制御信号Ｓｕを（トラヒック情報や他ノードのスケジュールテーブル情報）をアッド(Add)する機能も有する。他ノードあての制御信号Ｓｕは切替指示信号Ｓｔとともにスイッチ３１に供給される。アッドされた制御信号Ｓｕは、光信号Ｓｌに含まれて次段のノードに転送される。
【００１８】
コントローラ３６は、他ノードからの制御信号Ｓｓに含まれる自ノードのスケジュールテーブルに基づいて制御を行い、スケジュールテーブルに記述されているタイムスロットに応じてデータの送信や方路切替が行われるように、読出指示信号Ｓｑ、送信指示信号Ｓｒ及び切替指示信号Ｓｔを生成して出力する。また、コントローラ３６は、他のノードからの制御信号Ｓｓに含まれる、自ノード以外のノードのスケジュールテーブル及びトラヒック情報を透過転送して制御信号Ｓｕによって次段のノードに転送し、自ノードのトラヒック情報Ｓｐを透過転送して制御信号Ｓｕによって次段のノードに転送する。なお、自ノードにスケジューラ２０が接続している場合には、コントローラ３６は、自ノードのトラヒック情報Ｓｐと前段のノードから送られてきた他ノードのトラヒック情報とをスケジューラ２０に転送し、スケジューラ２０から全ノードのスケジュールテーブルを受け取り、受け取ったスケジュールテーブルのうちの自ノードのスケジュールテーブルに基づいて読出指示信号Ｓｑ、送信指示信号Ｓｒ及び切替指示信号Ｓｔを生成して出力し、他ノードのスケジュールテーブルを制御信号Ｓｕによって次段のノードに転送する。
【００１９】
図７に示すスケジューラ２０によってＲ＆Ｒ方式によるスケジューリングを実行する場合、スケジューラ２０は、論理的には図８に示す構成のものとして構成される。すなわちスケジューラは、上述した入出力部４１と、入出力部４１に入力したトラヒック情報を保持するトラヒック情報保持部５１と、トラヒック情報保持部５１に保持されている現在のトラヒック情報と過去のトラヒック情報とに基づいて各対地のトラヒック量の変動差分を算出するトラヒック変動差分算出部５２と、算出されたトラヒック変動差分を保持するトラヒック変動差分保持部５３と、スケジュールテーブルを保持する実スケジュールテーブル保持部５４と、実スケジュールテーブル保持部５４内のスケジュールテーブルを参照して各パスの帯域割当履歴を保持する割当履歴保持部５５と、トラヒック変動差分保持部５３に保持されたトラヒック変動差分と割当履歴保持部５５に保持された過去の割当履歴とに基づいて、トラヒックが減少したパスのタイムスロットの剥ぎ取り処理を実行して実スケジュールテーブル保持部５４内のスケジュールテーブルを更新する減少分剥ぎ取り変更部５６と、同様にトラヒック変動差分と過去の割当履歴とに基づいて、トラヒックが増加したパスのタイムスロットの貼り付け処理を実行してスケジュールテーブルを更新する増加分貼り付け変更部５７と、実スケジュールテーブル保持部５４内のスケジュールテーブルに基づいて各ノードに送られる制御信号を生成するノード制御信号生成部５８と、タイマ５９と、を備えている。ノード制御信号生成部５８で生成された制御信号は、入出力部４１を介して各ノードに送信される。タイマ５９は、各ノード１１との同期をとり、時間管理を行うためのものであるが、特に、割当履歴保持部５５やノード制御信号生成部５８に対してトリガを出力することにより、割当履歴の初期化や各ノードに対する制御信号の送出タイミングの制御などを行うこともできる。
【００２０】
図８に示すスケジューラ２０を構成する各機能ブロックのうち、トラヒック変動差分算出部５２、減少分剥ぎ取り変更部５６、増加分貼り付け変更部５７、ノード制御信号生成部５８及びタイマ５９は、図７における演算装置４２に設けられ、トラヒック情報保持部５１、トラヒック変動差分保持部５３、実スケジュールテーブル保持部５４及び割当履歴保持部５５は、図７におけるメモリ４３内に設けられる。演算装置４２に設けられるトラヒック変動差分算出部５２、減少分剥ぎ取り変更部５６、増加分貼り付け変更部５７、ノード制御信号生成部５８及びタイマ５９については、それらのいずれをもハードウェアの電子回路として構成してもよいし、あるいは、それらの一部または全部をコンピュータ上で実行されるソフトウェアによって実現してもよい。本明細書において後述する各スケジューラについても、それらをハードウェアとして構成してもよいし、そのスケジューラを構成する機能ブロックの一部または全部をコンピュータ上のソフトウェアで実現するようにしてもよい。
【００２１】
Ｒ＆Ｒ方式のスケジューリング方法では、トラヒック情報の差分をどのように決定するか、剥ぎ取り処理をどのように行うか、貼り付け処理をどのように行うかが、実装上の重要な点となる。また、剥ぎ取り処理及び貼り付け処理を行う順序によって、種々の実施方法が存在する。それらのうちの代表的なものを方法１〜方法３とする。
【００２２】
方法１では、トラヒックが減少したパスについて剥ぎ取り処理を行い、その後、トラヒックが増えたパスの貼り付け処理を行う。方法１は、トラヒック流量にしたがって帯域割当を行うものであり、剰余となる帯域については無視している。
【００２３】
方法２では、貼り付け処理を優先して行い、必要に応じて（割り当てる空き容量がない場合に）剥ぎ取り処理を行う。この方法では、余っている帯域も有効に活用することができる。
【００２４】
方法３は、上記の方法１と方法２とを組み合わせたものであり、ネットワーク内でトラヒックが減少したパスが多いか、増えたパスが多いかに応じて、方法１と方法２とを使い分ける。
【００２５】
さらに、上記の方法１〜方法３に共通した変更の例として、剥ぎ取り処理及び貼り付け処理の実行回数の制限を行うものがある。この変更例は、タイムスロット割当についての最適解に速く収束するようにして途中で計算を打ち切ることで、決められた時間内で良好な解を得ようとするものである。
【００２６】
剥ぎ取り処理や貼り付け処理は、所定のコスト関数を用いて剥ぎ取り対象となるパスとそのタイムスロット、貼り付け対象となるパスとそのタイムスロットを決定する処理である。剥ぎ取り処理や貼り付け処理のアルゴリズムには種々のバリエーションが存在し、しかも、どのようにコスト関数を設定するかによって、異なる効果が得られる。
【００２７】
例えば、剥ぎ取りを行うパスの選択順序を決定するアルゴリズムのバリエーションとしては、表１に示すようなものがある。
【００２８】
【表１】
0005937042.tif 000002
【００２９】
アルゴリズム［１］〜［９］を組み合わせて使用することも可能である。また、ソーティングを行うものについては、ソーティングの代わりにしきい値による分類を用いてもよい。しきい値による分類では、１つのしきい値を用いる場合（例としてパス長がその平均値より長いか短いかを用いる場合）には、パス長がしきい値を超える場合には例えばRandam Fitアルゴリズムを使用し、そうでなければ例えばFirst Fitアルゴリズムを用いることが考えられる。複数のしきい値を用い、しきい値で分類された各クラスごとにそれぞれ異なるアルゴリズムを用いるようにしてもよい。しきい値を用いる方法は、計算時間を短くしつつソーティングによるものと同等の効果を得ようとするものである。
【００３０】
同様に、貼り付けを行うパスの選択順序を決定するアルゴリズムのバリエーションとしては、表２に示すようなものがある。
【００３１】
【表２】
0005937042.tif 000003
【００３２】
アルゴリズム［１］〜［９］を組み合わせて使用することも可能である。また、剥ぎ取り処理の場合と同様に、ソーティングを用いる代わりにしきい値による分類を用いてもよい。
【先行技術文献】
【非特許文献】
【００３３】
【非特許文献１】X. Zhang and C. Qiao, "Pipelined transmission scheduling in all-optical TDM/WDM rings," in Proc. Int. Conf. Computer Communication and Networks, Sept. 1997, pp. 144-149
【非特許文献２】K. Gokyu, K. Baba, and M. Murata, "Path accommodation methods for unidirectional rings with optical compression TDM," IEICE Transactions on Communications, vol. E83-B, pp. 2294-2303, Oct. 2000
【非特許文献３】中川、服部、君島、片山、三澤、平松、「階層化を用いた光ＴＤＭスケジューリング方式ＨＯＴＳの提案」、信学会ソサイエティ大会、B-6-25、2012年9月
【非特許文献４】中川、服部、君島、片山、三澤、「光Ｌ２スイッチネットワークにおけるトラヒック変動差分に着目した動的帯域割当方式Ｒｉｐ−ｕｐ  ＆  Ｒｅａｌｌｏｃａｔｅの提案」、信学会総合大会、B-6-3、2013年3月
【発明の概要】
【発明が解決しようとする課題】
【００３４】
Ｒ＆Ｒ（剥ぎ取り及び貼り付け）方式によるスケジューリングによれば、全対地に対して再計算を行う場合に比べて計算時間が大幅に減少し、高速で動的なリソース割当を行うことが可能になる。しかしながらＲ＆Ｒ方式によって、トラヒック変動に応じて動的にタイムスロットの再割当（帯域再割当）及びスケジュールテーブルの書き換えを行う場合、タイムスロット割当の部分変更しか行わずに途中で計算を打ち切ることとなるため、再計算周期Ｔ内で再割当計算を行うことが可能なタイムスロット数を大きく超えるような大きなトラヒック変動、すなわちトラヒックが変動したパスの数と１パスあたりの変動量との積が大きな変動が生じたときに、割当変更が必要なタイムスロット数が増えて、要求通りにタイムスロット割当を行うことができない状態となることがある。要求通りにタイムスロットを割り当てられないとなると、同一設備量のネットワークシステムにおいて、要求通りにトラヒックを転送できなくなる。
【００３５】
本発明の目的は、大きなトラヒック変動にも対応でき、同一設備量で要求通りに転送されるトラヒック量を増加させることができるようにタイムスロット割当を行うことができるＴＤＭネットワークシステムを提供することになる。
【００３６】
本発明の別の目的は、ＴＤＭネットワークにおけるタイムスロットを割り当てることよによるスケジューリング方法であって、大きなトラヒック変動にも対応でき、同一設備量で要求通りに転送されるトラヒック量を増加させることができるスケジューリング方法を提供することにある。
【課題を解決するための手段】
【００３７】
本発明の第１のＴＤＭネットワークシステムは、複数のノードとノード間を接続するリンクとを備えるＴＤＭネットワークシステムであって、通信元ノードと宛先ノードとの組み合わせである対地ごとに、その対地にタイムスロットを割り当てるスケジューラを有し、スケジューラは、トラヒックを示す指標が基準値を超えたかどうかを判断する比較手段と、対地ごとの要求トラヒック量に基づいてその対地にタイムスロットを割り当てるタイムスロット割当手段と、を有し、比較手段での判断結果に応じ、タイムスロット割当手段におけるタイムスロット割当の計算アルゴリズムが選択される。このＴＤＭネットワークシステムにおいて、トラヒックを示す指標は、例えば、トラヒックの変動を示す指標である。
【００３８】
本発明の第２のＴＤＭネットワークシステムは、複数のノードとノード間を接続するリンクとを備えるＴＤＭネットワークシステムであって、通信元ノードと宛先ノードとの組み合わせである対地ごとに、その対地にタイムスロットを割り当てるスケジューラを有し、スケジューラは、トラヒック変動の差分にのみに着目してトラヒック変動があった対地についてタイムスロットの再割当を行う第１の演算手段と、要求トラヒックに対して１対地ずつ順にタイムスロットを割り当てる第２の演算手段と、第１の演算手段の割当結果と第２の演算手段の割当結果とを所定の時間内で比較して、第１及び第２の演算手段のうち、よりトラヒック変動に応じたタイムスロット割当を実現している演算手段を選択し、選択された演算手段に応じて各ノードに対するタイムスロット割当を実行する第３の演算手段と、を有する。
【００３９】
本発明の第１のスケジューリング方法は、複数のノードとノード間を接続するリンクとを備え、通信元ノードと宛先ノードとの組み合わせである対地ごとに、その対地におけるトラヒック量に応じてその対地にタイムスロットを割り当てられるＴＤＭネットワークシステムにおけるスケジューリング方法であって、トラヒックを示す指標が基準値を超えたかどうかを判断する判断段階と、判断段階での判断結果に応じて、対地ごとの要求トラヒック量に基づいてその対地にタイムスロットを割り当てるタイムスロット割当手段におけるタイムスロット割当の計算アルゴリズムを選択する段階と、を有する。このスケジューリング方法において、トラヒックを示す指標は、例えば、トラヒックの変動を示す指標である。
【００４０】
本発明の第２のスケジューリング方法は、複数のノードとノード間を接続するリンクとを備え、通信元ノードと宛先ノードとの組み合わせである対地ごとに、その対地におけるトラヒック量に応じてその対地にタイムスロットを割り当てられるＴＤＭネットワークシステムにおけるスケジューリング方法であって、トラヒック変動の差分にのみに着目してトラヒック変動があった対地についてタイムスロットの再割当を行う第１の演算処理と、要求トラヒックに対して１対地ずつ順にタイムスロットを割り当てる第２の演算処理と、第１の演算処理での割当結果と第２の演算処理での割当結果とを所定の時間内で比較して、第１及び第２の演算処理のうち、よりトラヒック変動に応じたタイムスロット割当を実現している演算処理を選択し、選択された演算処理での割当結果に応じて各ノードに対するタイムスロット割当を実行する段階と、を有する。
【発明の効果】
【００４１】
本発明では、複数の計算アルゴリズムによりタイムスロット割当を実行できるようにし、トラヒックの状態に応じてこれらの計算アルゴリズムを動的に選択することにより、例えばトラヒック変動量が小さいときには剥ぎ取り及び貼り付け方式を採用し、トラヒック変動量が大きいときにはヒューリスティックな方法を採用することにより、大きなトラヒック変動による影響を解消して、要求通りのトラヒック転送が可能になるという効果が得られる。
【図面の簡単な説明】
【００４２】
【図１】（ａ）はリング状伝送路からなるＴＤＭ（時分割多重）ネットワークの一例を示す図であり、（ｂ）はスケジュールテーブルの内容の一例を示す図である。
【図２】ＴＤＭネットワークにおける階層化方式によるスケジューリングを示す図である。
【図３】ＴＤＭネットワークにおけるＲ＆Ｒ（剥ぎ取り及び貼り付け）方式によるスケジューリングの概念を示す図である。
【図４】ＴＤＭネットワークにおけるＲ＆Ｒ方式によるスケジューリングの概念を示す図である。
【図５】ノードごとにホストコンピュータを備えるＴＤＭネットワークの一例を示すブロック図である。
【図６】ノードの構成例を示すブロック図である。
【図７】スケジューラの構成例を示すブロック図である。
【図８】Ｒ＆Ｒ方式によるスケジューリングを行う従来のスケジューラの構成を示すブロック図である。
【図９】割当計算の精度の悪化要因を説明する図である。
【図１０】割当計算の精度の悪化要因を説明する図である。
【図１１】本発明の実施の一形態のスケジューリング方法を説明する図である。
【図１２】実施形態によるスケジューリングを行った場合の精度の変化とＲ＆Ｒ方式によるスケジューリングのみを行った場合の精度の変化とを対比して示したグラフである。
【図１３】方法１を実行するスケジューラの構成を示すブロック図である。
【図１４】方法１の処理を説明するフローチャートである。
【図１５】方法１を実行するスケジューラの別の構成を示すブロック図である。
【図１６】図１５に示すスケジューラを有するネットワークで用いられるノードの構成を示すブロック図である。
【図１７】図１５に示すスケジューラを有するネットワークで用いられるノードの別の構成を示すブロック図である。
【図１８】図１５に示すスケジューラを有するネットワークで用いられるノードのさらに別の構成を示すブロック図である。
【図１９】方法２を実行するスケジューラの構成を示すブロック図である。
【図２０】方法３を実行するスケジューラの構成を示すブロック図である。
【図２１】図２０に示すスケジューラを有するネットワークで用いられるノードの構成を示すブロック図である。
【図２２】方法４を実行するスケジューラの構成を示すブロック図である。
【発明を実施するための形態】
【００４３】
次に、本発明の好ましい実施形態について、図面を参照して説明する。
【００４４】
以下の説明では、図１（ａ）や図５に示したような５個のノードＡ〜Ｅを有する一方向リングネットワークを考え、リンク当たりで同一タイムスロットに同時に接続可能なチャネルは１つである（すなわちファイバ多重や波長多重を行わない）ものとして、このようなＴＤＭネットワークにおけるタイムスロットの割当のスケジューリングを行う場合を考える。いずれかのノードにスケジューラが接続しており、このネットワークにおけるスケジューリング処理は全てこのスケジューラの内部で実行されるものとする。例えばこのようなＴＤＭネットワークは、単一の波長を用いる光ネットワークであって、タイムスロット長を１００μｓ、フレーム長を１０ｍｓとするものである。しかしながら、本発明は、双方向リングをはじめとした任意のトポロジーのＴＤＭネットワークに対して適用可能であり、また、波長多重を行うネットワークにも適用可能である。波長多重を行った場合には、各ファイバの各波長ごとにスケジュールテーブルが作成されることになる。
【００４５】
まず、本実施形態のスケジューリング方法について説明する前に、流入トラヒック量に見合った帯域（すなわちタイムスロット）が割り当てられているかどうかを示す指標として以下の説明において用いられている「割当計算の精度」について説明する。ここでは、一般的な指標であるブロッキング率Ｂｒを使用し、式(1)に示すように精度を定義する。ブロッキング率Ｂｒは式(2)によって与えられる。
【００４６】
【数１】
0005937042.tif 000004
【００４７】
ここでｉはパス（対地）の始点ノード、ｊはパスの終点ノードを表している。ｍｉｎ（ａ，ｂ）は、実数ａ，ｂのうちの小さい方の値をとる関数であり、ｒｅｑ（ｉ，ｊ）は、ｉ→ｊのパスに流入するトラヒック量［ｂｐｓ］であり、ａｌｌｏｃ（ｉ，ｊ）は、ｉ→ｊのパスに割り当てた帯域［ｂｐｓ］である。式(2)の分子は誤差を表している。
【００４８】
式(2)から明らかなように、精度は０以上１以下の値をとる。精度が１であるときは、遅延や損失なく流入トラヒックを転送することができる。また、一般に整数線形計画法（ＩＬＰ）などによる最適解導出を行った場合には、計算時間を無視するとすれば、精度が最大化される。
【００４９】
スケジューリングにおける割当計算の精度を悪くする要因について検討すると、１つには、トラヒック変動の粒度（トラヒック変動の代表的な周期）に比べ、スケジューリングにおける制御周期（再計算周期Ｔ）が大きいことが挙げられる。図９の（ａ）に示されるように、トラヒック変動周期と制御周期がほとんど変わらない場合には、良好な精度が維持される。制御周期は、もちろん、再計算に必要な計算時間よりも長く設定される。これに対しトラヒック変動周期に比べて制御周期が長い場合には、図９の（ｂ）に示されるように、特に各制御周期の末期において精度が劣化する。
【００５０】
割当計算の精度を悪くするもう一つの要因として、特に、Ｒ＆Ｒ（剥ぎ取り及び貼り付け）方式のスケジューリングの場合に、大きなトラヒック変動の発生が挙げられる。図１０に示すように、トラヒック変動が小さいときには、制御周期Ｔごとに定期的に剥ぎ取り及び貼り付け処理が行われ、タイムスロットの割当がトラヒックの変動に追従して行われる。各制御周期の末期では、当該制御周期中のトラヒック変動により、タイムスロット割当が最適解から乖離するものの、制御タイミングにおいて剥ぎ取り処理及び貼り付け処理によって再割当が行われることによって、最適解に収束する。Ｒ＆Ｒ方式のスケジューリングでは、制御周期Ｔ（すなわち制限時間）内でトラヒック変動が生じたパスに対して割当変更を行うが、ここで大きなトラヒック変動があると、１つの制御周期Ｔの間に再割当可能なタイムスロットの数には上限があるので、１つの制御周期Ｔでは最適解に収束しないことになる。次の制御周期Ｔでも、当該制御周期Ｔ内で発生したトラヒック変動にも対応する必要があるから、そこでも最適解に収束しないことが考えられる。結局、大きなトラヒック変動が生じた場合には、剥ぎ取り処理及び貼り付け処理による改善では、最適解に収束するまでの長時間を要するようになる。最悪の場合、解の精度が悪化し続けて最適解に収束しない可能性もある。
【００５１】
本実施形態のスケジューリング方法は、Ｒ＆Ｒ方式のスケジューリングでは大きなトラヒック変動が生じた際に最適解への収束が遅くなる、という問題点を解決するものであり、通常時にはＲ＆Ｒ方式のスケジューリングによるタイムスロットの再割当を行うものとし、このように最適解への収束が遅くなると考えられる事象が発生したときには、既存のヒューリスティックなスケジューリング方法を利用して、解の補正を行うようにする。本実施形態で利用可能な、既存のヒューリスティックなスケジューリング方法とは、トラヒックに対して１パスずつシーケンシャルにタイムスロットを割り当てるアルゴリズムを用いる方法のことであり、例えば、Zhangらによる方法（非特許文献１）や後久らによる方法（非特許文献２）がある。ヒューリスティックを用いるスケジューリング方法では、Ｒ＆Ｒ方式での１制御周期Ｔの間にはタイムスロット割当の解を得ることはできないが、得られる解は最適解あるいはそれに近い準最適解であるので、Ｒ＆Ｒ方式によって最適解に収束するまでに要する時間より早くヒューリスティックな方法を用いて最適解あるいは準最適解を得ることができるのであれば、大きなトラヒック変動が生じたときには、ヒューリスティックによる方法を用いた方が有利である。トラヒック変動が小さくなり、かつ、再割当の計算が最適解に収束したら、再び、Ｒ＆Ｒ方式によるスケジューリングに基づいてタイムスロットの再割当を実行する。
【００５２】
このような本実施形態のスケジューリング方法を実行するためには、後述するように、一つの形態として、スケジューリングに用いるアルゴリズムをＲ＆Ｒ方式によるアルゴリズムとヒューリスティックなアルゴリズムとの間で動的に変更する機構をスケジューラに設け、動的変更の条件判定を行う機構をスケジューラ（あるいはノード）に設けることになる。
【００５３】
図１１は、本実施形態のスケジューリング方法について、制御周期Ｔごとのトラヒック変動とタイムスロットの再割当との関係の一例を説明するものである。ここでは、Ｒ＆Ｒ方式によるスケジューリングによって、１つの制御周期Ｔの間に割当変更が可能なタイムスロットの数を５０００であるものとしている。
【００５４】
図１１の（ａ）は、トラヒック変動が比較的小さい場合を示している。各制御周期内で変動したタイムスロットの数が、順に、４３００、４５００、４１００、５１００、…であるとして、Ｒ＆Ｒ方式によって割当変更されるタイムスロットの数も４３００、４５００、４１００、５０００、…であり、最適解との乖離もたかだか２００タイムスロットであって、この乖離も次の制御周期において解消している。ここで「最適解との乖離」とは、最適解に比べ、タイムスロット何個分だけタイムスロットの割当がずれているかを表す指標である。例えば、１個のタイムスロットが５０Ｍｂｐｓのデータ転送量に相当すると仮定すると、３０００タイムスロットの乖離は１５０Ｇｂｐｓのずれを表し、それだけのデータ転送が行えないことを示している。
【００５５】
ここで、４番目の制御周期において、８５００タイムスロットという大きな変動が生じたとする。その場合、図１１の（ｂ）に示すように、Ｒ＆Ｒ方式での１制御周期Ｔ内で再割当可能なタイムスロット数を大きく超過するので、最適解からの乖離が最大で３５００となり、Ｒ＆Ｒ方式を使用し続けた場合には、その後も連続する制御周期において最適解からの乖離が解消せず、要求通りに転送できない状態が続くこととなる。
【００５６】
本実施形態のスケジューリング方法では、Ｒ＆Ｒ方式のスケジューリングと既存のヒューリスティックなスケジューリングとを動的に選択することで、大きなトラヒック変動（ここでは、制御周期間に変動したタイムスロット数が多いこと）があったことによる影響を解消している。上述と同様に、４番目の制御周期において、８５００タイムスロットという大きな変動が生じたとして、図１１の（ｃ）に示すように、このような大きなトラヒック変動を検出してヒューリスティック法による補正の計算を実行する。その一方で、補正の計算の結果が得られるまでの制御周期（この場合、４番目から７番目の制御周期）では、Ｒ＆Ｒ方式によるタイムスロットの再割当を実行する。ヒューリスティック法による補正の計算には、４制御周期が必要であるとすると、補正の計算の結果、８番目の制御周期において最適解が得られることになり、その時点で、最適解との乖離は０となる。最適解に収束したら、その後は、最初の状態と同様に、Ｒ＆Ｒ方式によるスケジューリングを行い、これによって、高速かつ動的に要求通りのトラヒック転送を実行することが可能になる。図１１の（ｂ）と（ｃ）を比較すると分かるように、Ｒ＆Ｒ方式のみを用いる場合には、８番目の制御周期以降も最適解との乖離が２０００、１８００、１４００、…と大きいが、本実施形態によりスケジューリングのアルゴリズムの動的な切替を行うことによって、８番目の制御周期以降は最適解との乖離が０（あるいは小さな正の値）となるので、より速やかに要求通りのトラヒック転送に復帰できることなる。本実施形態によれば、要求通りにトラヒックを転送できない状態を解消することができる。
【００５７】
図１２は、本実施形態によるスケジューリングを行った場合の精度の変化とＲ＆Ｒ方式によるスケジューリングのみを行った場合の精度の変化とを対比して示したグラフである。図１２では、ヒューリスティック法によって全てのパスについてのスケジューリングの計算を行うために、３Ｔ（３制御周期）が必要であるものとしているが、ヒューリスティック法による計算時間が制御周期Ｔの何倍になるかは、対象パス数やリンク数など、割当計算の規模によって変化する。
【００５８】
本実施形態のスケジューリング方法では、Ｒ＆Ｒ方式のスケジューリングと既存のヒューリスティックなスケジューリングとの間でのどのように動的にアルゴリズムを変更するかによって、種々の実施方法が存在する。それらのうちの代表的なものを方法１〜方法４とする。
【００５９】
方法１では、大きいトラヒック変動を検知して、動的なアルゴリズム選択を実行する。この方法を実行するためには、トラヒック変動量を把握する機能を設ける必要がある。例えば、トラヒック変動量のしきい値との比較と通知を行うことにより、スケジューラ内でトラヒック変動を検出することができる。あるいは、流入するトラヒックの変動量のしきい値との比較と通知を行うことにより、各ノードにおいてトラヒック変動を検出することができる。
【００６０】
方法２では、定期的にアルゴリズムの選択を実行する。具体的には、Ｒ＆Ｒ方式での制御周期をＴとして、既存のヒューリスティックなスケジューリング（計算時間としてｋＴを有する：ただしｋ≧２）とＲ＆Ｒ方式のスケジューリングとを同時並行的に実行しておき、ｋ番目の制御周期ごとに両者の結果を比較し、良好な結果を示す方を選択する。この方法では、比較を実行する時点を決定するためのタイマ機能と、両方の解を比較して選択を実行する機能とを設ける必要がある。方法２によれば、変更を行った際に、変更を行わない場合よりも解が悪くならないことが保証される。
【００６１】
方法３では、最適解からの乖離を検出し、例えば乖離が一定値を超えるとき（あるいは上述した精度が一定値を下回るとき）などに、精度は低いが計算時間が短くて済むスケジューリングアルゴリズムから精度は高いが計算時間が長いスケジューリングアルゴリズムへと、動的にスケジューリングアルゴリズムを変更する。この方法を実行するためには、最適解からの乖離を検出する機能を設ける必要がある。例えば、割当帯域と流入トラヒック量との比較からスケジューラ内で最適解からの乖離を検出することができる。あるいは、各ノードにおいて、割当帯域と流入トラヒック量の比較や、遅延や損失の監視を行い、これらに基づき、最適解からの乖離をノード内で検出することができる。各ノードにおいて最適解からの乖離を検出するようにした場合には、スケジューラ内に、ノードからの通知を受けてアルゴリズムを変更する機能を設ける必要がある。
【００６２】
方法４は、性能や所要計算時間が異なる３種類以上のスケジューリングアルゴリズムを使用できる場合に、上記の方法２と方法３とを組み合わせたものである。一般に、タイムスロット割当の性能と所要計算時間とはトレードオフの関係にあるから、性能は良いが計算時間が長いアルゴリズム（典型的は既存のヒューリスティックなスケジューリングアルゴリズム）を方法２でのＲ＆Ｒ方式とともに定期的に実行するアルゴリズムとし、この定期的実行に用いるアルゴリズムよりは性能は劣るが計算時間が短くて済むアルゴリズムを方法３での乖離を検出したときに用いるアルゴリズムとし、通常時には最も計算時間が短いＲ＆Ｒ方式によるアルゴリズムによってスケジューリングを行うものとする。上述したようにＲ＆Ｒ方式にも種々のバリエーションがあってそれぞれ性能や所要計算時間が異なるから、乖離を検出したときに用いるアルゴリズムとしては、例えば、ヒューリスティック法に基づくものであって比較的計算時間が短いものや、Ｒ＆Ｒ方式であって性能はよいが比較的計算時間が長いものを使用することができる。
【００６３】
以下、方法１〜方法４を実施するための構成について説明する。
【００６４】
まず、方法１について説明する。図１３は、方法１に基づいてスケジューリングを行うＴＤＭネットワークシステムにおいて用いられるスケジューラ２０の構成の一例を示している。
【００６５】
図１３に示すスケジューラ２０は、通常時にはＲ＆Ｒ方式によるスケジューリングを実行するものであって、トラヒック変動量を把握して大きなトラヒック変動があったときには既存のヒューリスティックなスケジューリングの実行に切り替わり、最適解に収束した後は再びＲ＆Ｒ方式によるスケジューリングに復帰するものである。このスケジューラ２０は、図７に示したスケジューラに対し、さらに、変動量しきい値比較部６１、補正指示通知部６２、スケジュール算出部６３及び補正用スケジュールテーブル保持部６４を追加したものである。変動量しきい値比較部６１、補正指示通知部６２及びスケジュール算出部６３は演算装置の一部として設けられるものであり、補正用スケジュールテーブル保持部６４はメモリ内に設定されるものである。
【００６６】
変動量しきい値比較部６１は、トラヒック変動算出部５２から各対地のトラヒック量の変動差分を受け取ってしきい値と比較し、しきい値を超える大きなトラヒック変動があるかどうかを検出する。補正指示通知部６２は、大きなトラヒック変動があることを変動量しきい値比較部６１が検出したときに、スケジュール算出部６３に対し、補正指示を送る。スケジュール算出部６３は、既存のヒューリスティックなスケジューリングの計算を行うために設けられている。スケジュール算出部６３は、補正指示通知部６２からの補正指示を受け取った場合に、トラヒック情報保持部５１に保持されているトラヒック情報に基づいて、既存のヒューリスティックなスケジューリングを行って、生成したスケジュールテーブルを補正用スケジュールテーブルとして、補正用スケジュールテーブル保持部６４に格納する。このスケジューラでは、Ｒ＆Ｒ方式のスケジューリングでの制御タイミングのうち、補正用スケジュールテーブルの算出が完了してから最初の制御タイミングにおいて、補正用スケジュールテーブル保持部６４に保持されている補正用スケジュールテーブルによって実スケジュールテーブル保持部５４内のスケジュールテーブルが置き換えられるとともに、補正用スケジュールテーブルがノード制御信号生成部５８に送られるようになっている。補正用スケジュールテーブルを受け取った制御タイミングでは、ノード制御信号生成部５８は、その受け取った補正用スケジュールテーブルに基づいて、各ノードに送られる制御信号を生成する。
【００６７】
結局、図１３に示すコントローラ２０は、損失を招くような大きなトラヒック変動を検出するために変動量しきい値比較部６１が設けられており、大きなトラヒック変動を検出した際にスケジュールテーブルの補正を行うために、補正指示通知部６２、スケジュール算出部６３及び補正用スケジュールテーブル６４が設けられていることになる。スケジュール算出部６３によって算出された補正用スケジュールテーブルは、Ｒ＆Ｒ方式によるスケジューリングにおける最適解からの乖離を解消したものであり、補正用スケジュールテーブルによって実スケジュールテーブル保持部５４内のスケジュールテーブルが置き換えられることによって、Ｒ＆Ｒ方式でのスケジューリングに対する大きなトラヒック変動による影響の補正が完了することになる。
【００６８】
図１４は、方法１での処理を説明するフローチャートであり、（ａ）はトラヒックの集計などを含めたスケジューリング処理の全体の流れを示し、（ｂ）はタイムスロット割当における従来のＲ＆Ｒ方式によるスケジューリングを示し、（ｃ）は方法１でのスケジューリングを示している。
【００６９】
ＴＤＭネットワークにおけるスケジューリングの大まかな処理では、図１４（ａ）に示すように、まず、各対地ごとの要求トラヒックを集計し（ステップ１０１）、集計結果に応じて必要となるタイムスロット数を算出し（ステップ１０２）、その後、各種のアルゴリズムを用いて、タイムスロットの割当（ネットワーク全体を対象としたスケジュールテーブルの作成）を実行する（ステップ１０３）。ネットワーク全体を対象としたスケジュールテーブルを各ノードに送信した場合には各ノードでの処理負荷が大きくなるから、次に、ネットワーク全体を対象としたスケジュールテーブルをノードごとのスケジュールテーブルに変換する（ステップ１０４）。この変換処理は、ノード制御信号生成部５８によって行われる。そしてこのように得られたノードごとのスケジュールテーブルが、スケジューリング結果通知として、各ノードに送信される（ステップ１０５）。
【００７０】
ステップ１０３のタイムスロット割当の処理は、Ｒ＆Ｒ方式によるスケジューリングを実行する場合には、図１４の（ｂ）に示すように、まず、トラヒック変動差分算出部５２においてトラヒック変動差分の算出を行い（ステップ１１１）、トラヒックが減少したパスに対して減少分剥ぎ取り変更部５６によって剥ぎ取り処理を行い（ステップ１１２）、トラヒックが増加したパスに対して増加分貼り付け変更部５７によって貼り付け処理を行い（ステップ１１３）、タイマ５９からの打切り指示があるかどうかを判断して（ステップ１１４）、打切り指示がなければステップ１１２からの処理を繰り返し、打切り指示があればその時点で剥ぎ取り処理及び貼り付け処理を打ち切って、実スケジュールテーブル保持部５４内のスケジュールテーブルに基づき、各ノードに対する制御信号を生成する、というものである。
【００７１】
これに対し、方法１によるスケジューリングでは、ステップ１０３のタイムスロット割当の処理として、上述と同様にトラヒック変動差分の算出（ステップ１２１）を行った上で、変動量しきい値比較部６２において、変動差分の総量がしきい値を超過したかどうかを判断する（ステップ１２２）。しきい値を超過していない場合には、ステップ１１２〜１１４と同様に、剥ぎ取り処理を実行し（ステップ１２３）、貼り付け処理を実行し（ステップ１２４）、タイマからの打切り指示の有無を判断して（ステップ１２５）、打切り指示がなければステップ１２３に戻り、打切り指示があれば、剥ぎ取り処理及び貼り付け処理を打ち切って、実スケジュールテーブル保持部５４内のスケジュールテーブルに基づき、各ノードに対する制御信号を生成する。一方、ステップ１２２においてしきい値を超過している場合には、ステップ１２６において、スケジュール算出部６３において既存のヒューリスティックなスケジューリングを行って、最適解あるいは準最適解を導出し（ステップ１２６）、その後、算出したスケジュールテーブルに基づいて各ノードに対する制御信号を生成するとともに、算出したスケジュールテーブルによって実スケジュールテーブル保持部５４内のスケジュールテーブルを置き換える。
【００７２】
なお、既存のヒューリスティックなスケジューリングの計算時間は、Ｒ＆Ｒ方式のスケジューリングにおける制御周期Ｔよりも長いため、図１４（ｃ）には明示されていないが、上述したようにＲ＆Ｒ方式によるスケジューリングを継続して実行し、既存のヒューリスティックなスケジューリング結果が算出された時点でスケジュールテーブルを置き換えるようにする。
【００７３】
図１５は、方法１によるスケジューリングを実行するスケジューラ２０の別の例を示している。ここでは、スケジューラ自体がトラヒック変動を算出するのではなく、各ノードがトラヒックの変動を算出してスケジューラに報告するものとしている。図１５に示すスケジューラは、図１３に示すものと比べ、トラヒック変動差分算出部が設けられていない。各ノードにおいて算出されたトラヒック変動は、変動差分情報信号として各ノードからこのスケジューラに通知されるようになっており、変動差分情報信号は入出力部５１からトラヒック変動差分保持部５３と変動量しきい値比較部５２とに与えらえるようになっている。変動差分情報信号は、図１３に示すスケジューラでのトラヒック変動差分算出部での算出結果と同等の情報を有する信号であり、図１５に示すスケジューラも、各ノードから変動差分情報信号を受け取ったのちは、図１３に示すスケジューラと同様に動作する。
【００７４】
図１５に示すスケジューラを備えるネットワークに設けられ、このスケジューラに対して変動差分情報信号を通知することができるノードの構成例が図１６に示されている。図１６に示すノードは、図６に示すノードに対し、トラヒックの変動を算出して変動差分情報信号を送信できるように、トラヒック情報保持部７１、トラヒック変動差分算出部７２及び変動差分情報信号生成部７３を設け、さらに、コントローラ３６内に変動差分情報信号通知部７４を設けたものである。トラヒック情報保持部７１は、そのノードの入出力部３２に入力したトラヒック情報を保持する。トラヒック変動差分算出部７２は、トラヒック情報保持部７１に保持されている過去のトラヒック情報と入出力部３２から得られる現在のトラヒック情報とに基づいてトラヒック量の変動差分を算出する。変動差分情報信号生成部７３は、トラヒック量の変動差分の算出結果に基づいて、変動差分情報信号を生成し、コントローラ３６内の変動差分情報信号通知部７４に送出する。変動差分情報信号通知部７４は、コントローラ３６からスイッチ３１に送られる、自ノードのトラヒック情報を示す制御信号に変動差分情報信号を付加する。自ノードのトラヒック情報を示す制御信号はネットワーク上のいずれかのノードに存在するスケジューラに送られるから、結局、変動差分情報信号もスケジューラに送られることになる。
【００７５】
図１６に示すノードでは、自ノードにおけるトラヒック変動の算出を行うために、入出力部３２からのトラヒック情報をトラヒック情報保持部７１に保持してトラヒック変動差分算出部７２によりトラヒック変動を算出していたが、トラヒック変動を算出するための構成はこれに限られるものではない。バッファ３３における各宛先ごとのバッファリング量（すなわちキューの長さ）の変動を算出することで、トラヒック変動を検出することも可能である。図１７は、バッファ３３におけるキュー長の変動からトラヒック変動を算出するようにしたノードを示している。
【００７６】
図１７に示すノードは、図１６のノードにおけるトラヒック情報保持部７１及びトラヒック変動差分算出部７２の代わりに、バッファ３３に接続してバッファ３３でのキュー長の情報を保持するキュー長情報保持部７５と、キュー長情報保持部７５に保持された今回と前回のキュー長情報を比較してキュー長の変動差分を算出するキュー長変動差分算出部７６を設けたものである。変動差分情報信号生成部７３は、キュー長変動差分算出部７６での算出結果に基づいて変動差分情報信号を生成して変動差分情報信号通知部７４に送出する。
【００７７】
ところで、ノードのコントローラ３６はバッファ３３の状態を監視する機能を備えているので、この監視機能からバッファのキュー長情報を取得することも可能である。したがって、キュー長情報保持部７５、キュー長変動差分算出部７６及び変動差分情報信号生成部７３をコントローラ３６の内部に設けることも可能である。図１８は、コントローラの内部にキュー長情報保持部７５、キュー長変動差分算出部７６及び変動差分情報信号生成部７３を設けたノードの構成を示している。
【００７８】
図１８に示すノードにおいてコントローラ３６には、キュー長情報保持部７５、キュー長変動差分算出部７６及び変動差分情報信号生成部７３の他に、スイッチ３１でドロップされてスケジュールテーブル情報などを含む制御信号が入力し、スケジュールテーブル情報を保持するスケジュール保持部８１と、スケジュール保持部８１に保持されるスケジュールテーブル情報に基づいて切替指示信号Ｓｔを生成してスイッチ３１での方路切替を制御する方路切替通知部８２と、スケジュール保持部８１に保持されるスケジュールテーブル情報に基づいて送信指示信号Ｓｒを生成して送信部３４からの光信号Ｓｉの送信を制御する送信指示通知部８３と、スケジュール保持部８１に保持されるスケジュールテーブル情報に基づいて読出指示信号Ｓｑを生成してバッファ３３から送信部３４へのデータ転送を制御するバッファ読出通知部８４と、バッファ３３からトラヒック情報Ｓｑ（ここではバッファ３３の各キューの使用状況など）を受け取ってバッファ３３の状態を監視するバッファ状態監視部８５と、スイッチ３１でアッドされて他ノードあてに転送される制御信号Ｓｕを生成する制御信号通知部８６と、が設けられている。キュー長情報保持部７３は、バッファ状態監視部８５からキュー長の情報を取得して保持する。上述と同様に、キュー長変動差分算出部７６は、キュー長情報保持部７５を参照し今回と前回のキュー長情報を比較してキュー長の変動差分を算出し、変動差分情報信号生成部７３は、キュー長の変動差分の算出結果に基づいて変動差分情報信号を生成する。図１８に示すノードでは、変動差分情報信号通知部は設けられておらず、変動差分情報信号は変動差分情報信号生成部７３から制御信号通知部８６に送られる。制御信号通知部８６は、変動差分情報信号が含まれるように制御信号Ｓｕを生成してスイッチ３１に送出する。
【００７９】
次に、方法２について説明する。図１９は、方法２に基づいてスケジューリングを行うＴＤＭネットワークシステムにおいて用いられるスケジューラ２０の構成の一例を示している。ネットワークシステム内に設けられるノードとしては、図６に示したものをそのまま使用することができる。
【００８０】
方法２では、既存のヒューリスティックなスケジューリングとＲ＆Ｒ方式のスケジューリングとを同時並行的に実行しておき、定期的に両者の結果を比較し、良好な結果を示す方を選択する。そこで図１９に示すスケジューラ２０は、ノードのコントローラ３６との間でトラフィック情報やスケジュールテーブルなどやり取りするための入出力部（Ｉ／Ｏ）９１と、既存のヒューリスティックなスケジューリング（図面では（手法１）と記載）の計算を実行する演算装置９２Ａと、演算装置９２Ａにおける計算に必要な情報や計算結果であるスケジュールテーブルを保持するメモリ９３Ａと、Ｒ＆Ｒ方式によるスケジューリング（図面では（手法２）と記載）の計算を実行する演算装置９２Ｂと、演算装置９２Ｂにおける計算に必要な情報や計算結果であるスケジュールテーブルを保持するメモリ９３Ｂと、比較を実行する時点を決定するタイマ９４と、タイマ９４からの指示に基づきメモリ９３Ａに保持されているスケジューリング結果（すなわちスケジュールテーブル）とメモリ９３Ｂに保持されているスケジューリング結果とを比較して、より良い方のスケジューリング結果を選択し、選択したスケジューリング結果を各ノードに送信する演算装置９５（図では、（選択）と付記されている）と、を備えている。
【００８１】
次に、方法３について説明する。図２０は、方法３に基づいてスケジューリングを行うＴＤＭネットワークシステムにおいて用いられるスケジューラ２０の構成の一例を示しており、図２１は、このときにネットワークシステム内に設けられるノード１１の構成の一例を示している。
【００８２】
図２０に示すように、方法３に用いられるスケジューラ２０は、図７に示したタイムスロットのスケジューリングに一般的に用いられるものと同様の構成を有するものであるが、演算装置４２として、複数のスケジューリングアルゴリズムによってスケジューリングの計算を行うことができ、かつ、計算に用いるアルゴリズムを動的に変更するアルゴリズム動的変更部９６を備えるものが用いられる。複数のスケジューリングアルゴリズムとしては、例えば、計算時間が短くて済むが精度がそれほど高くないＲ＆Ｒ方式のスケジューリングアルゴリズムと、計算時間は長いが精度が高い既存のヒューリスティックなスケジューリングアルゴリズムが用いられる。
【００８３】
方法３で用いられるノード１１は、図３に示したノードと同様のものであるが、最適解からの乖離を検出するために割当帯域・トラヒック監視装置９７が設けられ、さらにコントローラ３６内に最適解乖離通知部９８が設けられている点で、図３に示したものと異なっている。割当帯域・トラヒック監視装置９７は、コントローラ３６に接続しており、例えば、割当帯域と流入トラヒック量の比較や、遅延や損失の監視を行うことによって、現在のスケジューリング結果が最適解から乖離しているかどうかを判定する。割当帯域・トラヒック監視装置９７での判定結果はコントローラ３６に送られ、最適解乖離通知部９８は、最適解からの乖離を検出した場合に、そのことをスケジューラ２０に通知する。スケジューラ２０のアルゴリズム動的変更部９６は、通常時には、計算時間が短くて済むが精度がそれほど高くないアルゴリズムでスケジューリングの計算が行われるようにするが、最適解からの乖離を検出したことの通知を受け取ると、計算時間はかかるが精度が高いアルゴリズムへと、スケジューリングアルゴリズムを動的に変更する。また、最適解からの乖離が解消したことをノードから通知されたときには、アルゴリズム動的変更部９６は、通常時のアルゴリズムへとスケジューリングアルゴリズムを動的に変更する。
【００８４】
次に方法４について説明する。図２２は、方法４に基づいてスケジューリングを行うＴＤＭネットワークシステムにおいて用いられるスケジューラ２０の構成の一例を示している。ネットワークシステム内に設けられるノードとしては、方法３において説明した図２１に示したものをそのまま使用することができる。
【００８５】
図２２に示したスケジューラ２０は、方法２に用いられる図１９に示したスケジューラと同様の構成のものであるが、手法２の演算装置９２Ｂとして、複数のスケジューリングアルゴリズムによってスケジューリングの計算を行うことができ、かつ、計算に用いるアルゴリズムを動的に変更するアルゴリズム動的変更部９６を備えるものが使用される。演算装置９２Ｂの複数のスケジューリングアルゴリズムとしては、計算時間が最も短くて済むＲ＆Ｒ方式のスケジューリングアルゴリズム（アルゴリズムＡと呼ぶ）と、このアルゴリズムＡよりは計算時間がかかり精度はよいが、手法１のアルゴリズムよりは精度が低くて計算時間も短いスケジューリングアルゴリズム（アルゴリズムＢ）が用いられる。
【００８６】
図２２に示すスケジューラでは、方法２の場合と同様に、演算装置９２Ａでの既存のヒューリスティックなスケジューリングの計算と、演算装置９２Ｂでのスケジューリングとを同時並行的に実行しておき、タイマ９４からの指示によって演算装置９５が定期的に両者のスケジューリング結果を比較し、良好な結果を示す方を選択する。また演算装置９２Ｂでは、方法３の場合と同様に、通常時には、Ｒ＆Ｒ方式による計算時間が短いアルゴリズムＡによってスケジューリングの計算を行っているが、最適解からの乖離を検出したことをノードから通知されたときには、アルゴリズムＢによりスケジューリングの計算を実行する。このようにして方法２と方法３とを組み合わせた方法４によるスケジューリングが実行される。
【００８７】
上述した説明では一方向リングネットワークを考えているが、本実施形態は双方向リングにも適用可能である。双方向リングに適用する場合には、右回り用のスケジュールテーブルと左回り用のスケジュールテーブルを考えて、それぞれのスケジュールテーブルに対するタイムスロットの割当計算を上述した各方法によって実行すればよい。
【００８８】
双方向リングネットワークとする場合、パスごとにそのパスを右回りにリングを経由するものか左回りにリングを経由するものであるかを固定しておくことができる。その場合、右回りのリングについての割当計算と左回りのリングの割当計算とを独立して実行することが可能となるから、どちらか一方の向きのパスについて動的アルゴリズム変更による補正を行うことも可能である。例えば、右回りのパスを流れるトラヒックに大きな変動が生じた場合には、右回りのリングについてのみ補正を行えばよい。
【００８９】
あるいは、各パスを左回りに経由させるか右回りに経由させるかを動的に決定するようにすることもできる。その場合には、右回りでのデータ伝送と左回りでのデータ伝送を同時に考慮した割当計算を行う必要があり、動的アルゴリズム変更を行う場合には、右回りと左回りとを同時に補正することとなる。動的に経路を変更することのメリットとして、例えば、ネットワーク状態を考慮したリソース割当が可能となるため、より割当効率の向上を期待できることが挙げられる。
【００９０】
上述した本実施形態でのスケジューリング方法は、ＴＤＭネットワークシステムにおいて、いずれかのノード１１に設けられたスケジューラ２０によって実行される。スケジューラ２０は、図１３、図１５、図１８、図１９、図２０あるいは図２２に示したような機能部を有する専用ハードウェアとして構成することもできるが、マイクロプロセッサやメモリ、通信インタフェースなどを備える汎用のコンピュータを利用し、スケジューラ２０の機能を実行するコンピュータプログラムをこのコンピュータ上で実行させることによっても実現できる。コンピュータ上でプログラムを実行することによってスケジューラ２０を実現する場合、スケジュールテーブルなどは、そのコンピュータを構成するメモリ内に記憶され格納される。ノード１１に接続されるホストコンピュータ１２としては公知の構成のものを使用できる。
【符号の説明】
【００９１】
１０    リンク
１１    ノード
１２    ホストコンピュータ
３１    スイッチ
３２，４１    入出力部
３３    バッファ
３４    送信部
３５    受信部
３６    コントローラ
４２，９２Ａ，９２Ｂ，９５    演算装置
４３，９３Ａ，９３Ｂ    メモリ
５１，７１    トラヒック情報保持部
５２，７２    トラヒック変動差分算出部
５３    トラヒック変動差分保持部
５４    実スケジュールテーブル保持部
５５    割当履歴保持部
５６    減少分剥ぎ取り変更部
５７    増加分貼り付け変更部
５８    ノード制御信号生成部
５９，９４    タイマ
６１    変動量しきい値比較部
６２    補正指示通知部
６３    スケジュール算出部
６４    補正用スケジュールテーブル保持部
７３    変動差分情報生成部
７４    変動差分情報通知部
７５    キュー長情報保持部
７６    キュー長変動差分算出部
９６    アルゴリズム動的変更部
９７    割当帯域・トラヒック監視装置
９８    最適解乖離通知部
【図１】
0005937042.tif 000005
【図２】
0005937042.tif 000006
【図３】
0005937042.tif 000007
【図４】
0005937042.tif 000008
【図５】
0005937042.tif 000009
【図６】
0005937042.tif 000010
【図７】
0005937042.tif 000011
【図８】
0005937042.tif 000012
【図９】
0005937042.tif 000013
【図１０】
0005937042.tif 000014
【図１１】
0005937042.tif 000015
【図１２】
0005937042.tif 000016
【図１３】
0005937042.tif 000017
【図１４】
0005937042.tif 000018
【図１５】
0005937042.tif 000019
【図１６】
0005937042.tif 000020
【図１７】
0005937042.tif 000021
【図１８】
0005937042.tif 000022
【図１９】
0005937042.tif 000023
【図２０】
0005937042.tif 000024
【図２１】
0005937042.tif 000025
【図２２】
0005937042.tif 000026