(57)【特許請求の範囲】
【請求項１】
コンバージキャストネットワークにおいてパケット送信に対するスケジューリングを決定する方法であって、前記コンバージキャストネットワークはシンクノード及び複数のノードを含み、前記コンバージキャストネットワークにおける動作中、各ノードは、前記シンクノードに送信するパケットを生成し、前記シンクノードの受信機は、１つ以上の分岐を有する木を含む前記コンバージキャストネットワークのトポロジーを示す情報を受信し、前記木における各ノードは特定の分岐を通る前記シンクノードへの経路に対するホップカウントに関連付けられ、前記方法は、
前記コンバージキャストネットワークにおいて動作を実施する要求を受信することと、
前記シンクノードからのクエリを初期化することであって、前記クエリは、前記分岐を通して前記複数のノードに送信され、前記クエリに応答して、前記受信機は、或る期間に指示的な情報を受信し、前記情報は、前記コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対する前記シンクノードにおけるデータ送出時間を示す、生成された各ノードに対する時間データとを含む、初期化することと、
前記シンクノードにより、前記受信した情報に基づき、かつ前記複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、前記複数のノードをソートすることと、
各ノードに対する前記データ生成解放時間と各ノードに対する前記シンクノードにおける前記データ送出時間との間の差を求めることにより、前記時間データに基づいて各ノードに対するエンドツーエンド遅延を計算することと、
前記シンクノードにより、前記複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、前記複数のノードの各々に対するパケット送信をスケジューリングすることと、
前記スケジューリングされた順序を使用して前記木におけるパケット送信を実施することであって、前記スケジューリングされた順序を使用して前記動作を実施することは、前記動作を完了するために必要なタイムスロットの総数を減少させることにより、かつ前記コンバージキャストネットワークにおける前記複数のノードに対するエンドツーエンド遅延の量を低減させることにより、実質的に前記動作を最適化する、実施することと、
を含む、方法。
【請求項２】
前記ソート機能及び前記エンドツーエンド遅延は、同時に又は合わせて実施される、請求項１に記載の方法。
【請求項３】
前記ソート機能は、全負荷の量、転送される負荷の量、転送した後に残る負荷の量、ノードの優先順位又はそれらのいくつかの組合せに基づき、各ノードに優先順位を付けて、前記複数のノードの優先順位付き順序を得る、請求項１に記載の方法。
【請求項４】
前記ソート機能は、全負荷又は残りの負荷に基づき前記複数のノードに優先順位を付け、
前記全負荷は、或る期間における、各ノードによる任意の先行する送信されたパケット、各ノードによる任意の先行する転送されたパケット、又は両方を含むとともに、或る期間における、各ノードによって送信されるパケットの数、各ノードによって転送されるパケットの数、又は両方を含み、
前記残りの負荷は、前記期間の残りにおいて、各ノードが送信し、転送し、又は両方を行うパケットの数である、請求項１に記載の方法。
【請求項５】
前記ソート機能は、変形実施態様機能を含み、前記変形実施態様機能は、
前記複数のノードを、前記シンクノードの子ノードを含む第１のグループと、前記シンクノードの前記子ノードを除く他のノードを含む第２のグループとに分割することと、
所定基準に基づいて前記第１のグループ及び前記第２のグループをソートして、前記第２のグループに対して前記第１のグループが優先されるようにすることと、
を含む、請求項４に記載の方法。
【請求項６】
スケジューリング行列
【数１】
0006749505.tif 000017
を更に含み、式中、（Ｌ）は周波数チャネルの数であり、（Ｍ）はスケジュールサイズであり、（Ｎ）はノードの数であり、（＋）は送信であり、（−）は受信であり、
前記シンクノードの子ノードは、送信又は受信に関して前記複数のノードのうちの他のノードに対してより高い優先順位を有し、それにより、前記シンクノードの各子ノードは、残りの負荷によってソートされ、前記他のノードのうちの各他のノードは、全負荷によってソートされ、
前記全負荷は、或る期間における、各ノードによる任意の先行する送信されたパケット、各ノードによる任意の先行する転送されたパケット、又は両方を含むとともに、或る期間における、各ノードによって送信されるパケットの数、各ノードによって転送されるパケットの数、又は両方を含み、
前記残りの負荷は、前記期間の残りにおいて、各ノードが送信し、転送し、又は両方を行うパケットの数である、請求項１に記載の方法。
【請求項７】
前記動作は、前記複数のノードのうちの任意のノードからパケットが生成されたときに開始する、請求項１に記載の方法。
【請求項８】
前記パケット送信をスケジューリングする前に、前記複数のノードにおける各ノードに対して前記シンクノードまでのホップカウントを得ること、
を更に含む、請求項１に記載の方法。
【請求項９】
前記複数のノードにおける各ノードは、前記動作の各タイムスロットの間の以下の状態、すなわち、
前記ノードが隣接するノードからパケットを受信することができる受信状態、
前記ノードが隣接するノードにパケットを送信することができる送信状態、及び、
前記ノードが送信も受信も行わないアイドル状態、
のうちの１つであり得る、請求項１に記載の方法。
【請求項１０】
前記コンバージキャストネットワークは無線センサネットワークである、請求項１に記載の方法。
【請求項１１】
前記スケジューリング機能の前記一組の所定スケジューリング基準は、前記パケットの生成時間と、ノードのバッファステータスと、子ノードのバッファステータスと、前記ノードの親のバッファステータスとのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項１２】
前記スケジューリング機能は、
前記ノードの最も古いパケットの保持時間と前記ノードの関連する子ノードによって保持されている最も古いパケットの保持時間との間の前記時間データから、各ノードに対し生成時間差を計算することであって、前記生成時間差が所定時間閾値を上回る場合、前記ノードの関連する子ノードによって保持されている前記最も古いパケットは、前記シンクノードにより、前記子ノードから前記パケットを送信するようにスケジューリングされる、計算すること、
を含む、請求項１に記載の方法。
【請求項１３】
前記スケジューリング機能は、
関連する子ノードからパケットを受信するか、又は関連する親ノードにパケットを送信するように、関連する子ノードのバッファステータス及び関連する親ノードのバッファステータスを考慮して、体系的な閾値を計算すること、
を含み、
前記親ノードのバッファがより多くのパケットにより充填されるに従い、前記閾値は低減し、それにより、ノードは、前記シンクノードにより、その関連する子ノードからパケットを受信するようにスケジューリングされる、請求項１に記載の方法。
【請求項１４】
前記ノードのバッファはより多くのパケットにより充填され、前記閾値は増大し、それにより、前記ノードは、前記シンクノードにより、前記バッファの内部のそのパケットをその関連する親ノードに送信するようにスケジューリングされ、
前記ノード及びその関連する親ノードのバッファがより多くのパケットにより同時に充填されるに従い、前記シンクノードは、前記ノードが送信動作も受信動作も行わないようにする、請求項１３に記載の方法。
【請求項１５】
前記コンバージキャストネットワークに対する前記木は、
前記シンクノードの１ホップ近傍又は子ノードの全てにメッセージをブロードキャストすることと、
より小さいホップカウントで前記メッセージの受信コピーを転送することを通して、前記複数のノードにおける各ノードにメッセージを伝播することと、
前記木を形成するために最短ホップカウント木を得ることと、
により得られる、請求項１に記載の方法。
【請求項１６】
コンピュータによって実行されると、前記コンピュータに対して、コンバージキャストネットワークにおける動作中にパケット送信を最適化する方法を実施させる命令を記憶する、コンピュータ可読記憶媒体であって、前記コンバージキャストネットワークはシンクノード及び複数のノードを含み、前記コンバージキャストネットワークにおける動作中、各ノードは、前記シンクノードに送信するパケットを生成し、前記シンクノードの受信機は、１つ以上の分岐を有する木を含む前記コンバージキャストネットワークのトポロジーを示す情報を受信し、前記木における各ノードは特定の分岐を通る前記シンクノードへの経路に対するホップカウントに関連付けられ、前記方法は、
前記コンバージキャストネットワークにおいて動作を実施する要求を受信することと、
前記シンクノードからのクエリを初期化することであって、前記クエリは、前記分岐を通して前記複数のノードに送信され、前記クエリに応答して、前記受信機は、或る期間に指示的な情報を受信し、前記情報は、前記コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対する前記シンクノードにおけるデータ送出時間を示す、生成された各ノードに対する時間データとを含む、初期化することと、
前記シンクノードにより、前記受信した情報に基づき、かつ前記複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、前記複数のノードをソートすることと、
各ノードに対する前記データ生成解放時間と各ノードに対する前記シンクノードにおける前記データ送出時間との間の差を求めることにより、前記時間データに基づいて各ノードに対するエンドツーエンド遅延を計算することと、
前記シンクノードにより、前記複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、前記複数のノードの各々に対するパケット送信をスケジューリングすることと、
前記スケジューリングされた順序を使用して前記木におけるパケット送信を実施することであって、前記スケジューリングされた順序は、前記コンバージキャストネットワークにおける前記複数のノードに対するエンドツーエンド遅延の量を低減させるとともに、前記動作を完了するために必要なタイムスロットの総数を減少させることにより、実質的に前記動作を最適化し、１タイムスロットは時間の量を指定する、実施することと、
を含む、コンピュータ可読記憶媒体。
【請求項１７】
前記ソート機能は、全負荷又は残りの負荷に基づき前記複数のノードに優先順位を付け、
前記全負荷は、或る期間における、各ノードによる任意の先行する送信されたパケット、各ノードによる任意の先行する転送されたパケット、又は両方を含むとともに、或る期間における、各ノードによって送信されるパケットの数、各ノードによって転送されるパケットの数、又は両方を含み、
前記残りの負荷は、前記期間の残りにおいて、各ノードが送信し、転送し、又は両方を行うパケットの数である、請求項１６に記載の記憶媒体。
【請求項１８】
前記ソート機能は、変形実施態様機能を含み、前記変形実施態様機能は、
前記複数のノードを、前記シンクノードの子ノードを含む第１のグループと、前記シンクノードの前記子ノードを除く他のノードを含む第２のグループとに分割することと、
所定基準に基づいて前記第１のグループ及び前記第２のグループをソートして、前記第２のグループに対して前記第１のグループが優先されるようにすることと、
を含む、請求項１６に記載の記憶媒体。
【請求項１９】
前記スケジューリング機能は、
前記ノードの最も古いパケットの保持時間と前記ノードの関連する子ノードによって保持されている最も古いパケットの保持時間との間の前記時間データから、各ノードに対し生成時間差を計算することであって、前記生成時間差が所定時間閾値を上回る場合、前記ノードの関連する子ノードによって保持されている前記最も古いパケットは、前記シンクノードにより、前記子ノードから前記パケットを送信するようにスケジューリングされる、計算すること、
を含む、請求項１６に記載の記憶媒体。
【請求項２０】
コンバージキャストネットワークにおける動作中にパケット送信を最適化するデバイスであって、前記コンバージキャストネットワークはシンクノード及び複数のノードを含み、前記コンバージキャストネットワークにおける前記動作中、各ノードは、前記シンクノードに送信するパケットを生成し、前記シンクノードの受信機は、１つ以上の分岐を有する木を含む前記コンバージキャストネットワークのトポロジーを示す情報を受信し、前記木における各ノードは特定の分岐を通る前記シンクノードへの経路に対するホップカウントに関連付けられ、前記デバイスは、
前記コンバージキャストネットワークにおいて動作を実施する要求を受信するように構成された受信機、
を備え、
前記シンクノードのプロセッサが、
前記分岐を通して前記複数のノードにブロードキャストするクエリを初期化し、前記クエリに応答して、前記受信機は、或る期間に指示的な情報を受信し、前記情報は、前記コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対する前記シンクノードにおけるデータ送出時間を示す、生成される各ノードに対する時間データとを含み、
前記シンクノードにより、前記受信した情報に基づき、かつ前記複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、前記複数のノードをソートし、
各ノードに対する前記データ生成解放時間と各ノードに対する前記シンクノードにおける前記データ送出時間との間の差を求めることにより、前記時間データに基づいて各ノードに対するエンドツーエンド遅延を計算し、
前記シンクノードにより、前記複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、前記複数のノードの各々に対するパケット送信をスケジューリングし、
前記スケジューリングされた順序を使用して前記木におけるパケット送信を実施し、前記スケジューリングされた順序は、前記コンバージキャストネットワークにおける前記複数のノードに対するエンドツーエンド遅延の量を低減させるとともに、前記動作を完了するために必要なタイムスロットの総数を減少させることにより、実質的に前記動作を最適化する、
ように構成されている、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的には、無線マルチホップコンバージキャスト（convergecast）ネットワークにおける遅延センシティブなスケジューリングに関し、より詳細には、不均一な解放時間の環境においてスケジュールサイズ及びエンドツーエンド遅延を共同で最小限にするスケジューリング方式に関する。
【背景技術】
【０００２】
無線センサネットワーク（ＷＳＮ）は、モノのインターネット（ＩｏＴ：Internet of Things）の取組みの重要な構成要素である。ＷＳＮは、周囲のインフラ及び設備に対してシームレスな接続性及び制御能力を与える。ＷＳＮはまた、環境を測定しモニタリングすることを通して現実世界のデータへのアクセスも提供する。しかしながら、厳重な信頼性制約がある応用では、ＷＳＮが十分に採用されていない。例えば、遅延は、多くの製造及び他のセンシティブな設備では重大な問題である。こうした環境では、センサノードは、利用可能となるとすぐにモニタリングセンターのシンクノードにデータを伝送しなければならない。こうしたデータ収集は、周期的プロセスである場合もあれば非周期的プロセスである場合もある。ノードの全て又は一部からデータが利用可能となると、制御センターは適切な動作を選択することができる。
【０００３】
したがって、厳密な遅延及び信頼性要件がある応用に適応することができる特殊化したネットワークを開発する必要がある。近年、いくつかの標準規格は、干渉、遅延、並びに現行の標準規格及び将来の標準規格との統合等、ＷＳＮの信頼性を向上させるいくつかの問題に取り組むように開発されてきた。例えば、ＷｉｒｅｌｅｓｓＨａｒｔ及び８０２．１５．４ｅは、スケジューリング時間がタイムスロットと呼ばれる周期的間隔に分割される、ＴＤＭＡと、遅延及び干渉を抑制しようとする周波数ホッピング（ＦＨ）とを使用するＭＡＣ層を提供する。全てのノードが、各スロットの開始時刻及び終了時刻を知るように、同期した時間クロックを有すると想定される。
【０００４】
特許文献１は、スケジューリングの開始時に全てのノードにおいてデータが利用可能であると想定する。しかしながら、この想定は、工業応用及び他の遅延センシティブな応用では満たされない。さらに、特許文献１の従来の研究は、スケジュールサイズに焦点を置く。しかしながら、制約された不均一な解放時間においてスケジュールサイズを最小限にすることは、エンドツーエンド遅延を最小限にしない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第８，００５，００２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、無線マルチホップコンバージキャストネットワーク及び多対１ネットワークにおいて遅延センシティブなスケジューリング問題に取り組むスケジューリング方式に取り組む必要がある。
【課題を解決するための手段】
【０００７】
本開示は、包括的には、コンバージキャストネットワークとも呼ばれる無線マルチホップ多対１ネットワークにおける遅延センシティブなスケジューリングに関し、より詳細には、不均一な解放時間の環境においてスケジュールサイズ及びエンドツーエンド遅延を共同で最小限にするスケジューリング方式に関する。
【０００８】
無線マルチホップ多対１ネットワークにおける遅延センシティブなスケジューリングは、基地局又はゲートウェイとしても知られるシンクノードと、複数のデータノードとを含む。各データノードは、データを収集するか又は生成する。各データノードの少なくとも１つの態様は、シンクノードに、場合によっては他のデータノード、すなわちノードを通して最小遅延でデータを送信することである。時間データは、収集されるか又は生成され、本開示の具体的な実施形態に応じて異なるノードに対して異なる可能性がある。
【０００９】
本開示は、スケジュールサイズ及びエンドツーエンド遅延を同時に最小限にすることに取り組むことを含むいくつかの実現に基づく。特に、本発明者らは、遅延が、多くの製造及び他のセンシティブな設備において主な問題であると理解する。本発明者らは、コンバージキャストネットワークにおいて、厳密な遅延要件及び一定レベルの信頼性要件を必要とする応用に対して適応するように、問題を克服することに取り組もうと試みた。本開示によるパケット送信のためのスケジューリング方式の少なくとも１つの重要な特徴は、少数のタイムスロット、すなわち小さいスケジュールサイズで全てのデータを収集することである。しかしながら、スケジュールサイズは真の遅延を反映しない可能性がある。
【００１０】
例えば、本発明者らは、データが異なるノードで異なる時間インスタンスで利用可能である応用において、スケジュールサイズは、実際の遅延を表さないことを発見した。例えば、工業環境におけるネットワークは、シンクノードと一組の無線ノードとを含むことができ、そこでは、各ノードは、別のプロセスにアタッチすることができるプロセスにアタッチされる。各プロセスは、所与の時点でデータを解放することができ、その際、各ノードに対する解放時間は各プロセスに対して異なる可能性がある。言い換えれば、１つのプロセスが、別のプロセスがデータを解放する時間より大きい値を有する可能性がある。そこでは、本開示の実施形態により、本発明者らは、解放時間が等しくない場合に焦点を当て、それは、不均一な解放時間とも呼ぶ。
【００１１】
こうした場合、複数のプロセスに対する解放時間が異なり、解放される時間データとデータの届けられた時刻との間の差は、本開示による有意義な基準である。この量が、エンドツーエンド遅延又は相対遅延と呼ばれる。
【００１２】
本発明者らは、全てのトラフィックに対するエンドツーエンド遅延を最小限にすることが困難なタスクであることを発見した。したがって、本発明者らは、スケジュールサイズとともに最大又は平均エンドツーエンド遅延を最小限にすることが、本開示による優れた結果を論証することができることが分かった。さらに、小さいスケジュールサイズもまた、本開示による多くのシナリオにおけるスケジューリング方式の重要な特徴でもあり、工業環境におけるパロディックな手続きのための時間を提供することができる。そこでは、全てのデータを収集するためのタイムスロットの数として定義することができるスケジュールサイズを考慮する。
【００１３】
これらのタイプのネットワークにおいて、本発明者らは、実験を通して、スケジューリング方式が不均一な解放時間の環境においてスケジュールサイズ及びエンドツーエンド遅延を共同で最小限にすることを実現した。このために、共同のソート及びスケジューリングを展開することができる。本発明者らは、シンクノードが、所与の基準に基づいてノードをソートすることができ、その後、少なくとも２つの目標、すなわち、第１に最小スケジュールサイズ、第２に最小エンドツーエンド遅延を達成するように、ノードをスケジューリングすることができることが分かった。
【００１４】
スケジューリング方式を設計する際に本発明者らが実現した別の理解は、ノードの送信に優先順位を付けるときにノードの負荷が重要な基準であるということである。例えば、本開示の一実施形態によれば、シンクノードは、特定の基準に基づいてノードをソートする。特定の実施態様では、全負荷又は残りの負荷に基づいてノードをソートすることができる。別の実施態様では、ノードは、２つのグループ、すなわち、（ｉ）シンクノードの子ノード及び（ｉｉ）シンクノードの子ノードを除く他のノードに分割することができる。そして、２つのグループの各々におけるノードは、特定の基準に基づいてソートすることができ、そこでは、第２のグループに対して第１のグループが優先される。
【００１５】
シンクノードは、何らかの条件に応じて、優先順位の高いノードが送信又は受信を行うようにスケジューリングする。特定の実施態様では、ノードがそのバッファに少なくとも１つのパケットを有する場合、そのノードは送信を行うようにスケジューリングされる。ノードのバッファが空である場合、そのノードは、スケジューリングルールに応じてその子ノードのうちの１つをスケジューリングする。本開示によるこのルールの１つの実施態様では、最も古いパケットを有する子ノードｉが、より大きい負荷を有する別の子ノードｊがない限り、送信するようにスケジューリングされ、ノードｉのバッファにおける最も古いパケットからｄ個のタイムスロット以内に少なくとも１つのパケットを有する。
【００１６】
本開示による別の実施態様では、ノードｋがｂｋ個のパケットで占有される非空バッファを有する場合、そのノードは、その子ノードのうちの１つがスケジューリングルールＦ（ｂｋ）（Ｆ（ｂｋ）は、ノードｋのバッファサイズｂｋによって決まる関数である）に従ってより古いパケットを有する場合にのみ、受信を行うようにスケジューリングすることができる。
【００１７】
本開示の一実施形態による別の実施態様では、ノードｋへの又はノードｋからのリンクは、同じブロックにおいて他の競合するリンクがスケジューリングされていない場合に、現時間周波数資源でスケジューリングすることができる。他の競合するリンクがスケジューリングされている場合、ノードｋへの又はノードｋからのリンクは、利用可能な場合、異なる周波数チャネルにおいてスケジューリングされる。異なる周波数チャネルが利用可能でない場合、そのリンクのスケジューリングは先送りされる。別の実施態様では、各ノードがそれ自体及びその近傍ノードのスケジューリング順序を知るように、ノードのソートはローカルとすることができる。こうした場合、優先順位の高いノードのスケジューリングは上述したものと同様に行うことができる。言い換えれば、優先順位の高いノードは、スケジューリングルールに従って送信又は受信を行うことを判断する。
【００１８】
さらに、本開示の別の実施態様は、ノードの負荷がそのノードの有効負荷を表すことを含むことができる。有効負荷は、所与の時間窓Ｗにおいてノードを通過すると予測されるパケットの最大数とすることができる。
【００１９】
本開示の他の実施形態を異なるように構造化することができ、例えば、１つの実施形態は、大きい負荷を有するノードを優先してスケジュールサイズを縮小する小スケジュールサイズ（Small Schedule Size）を有することができる。別の実施形態は、古いパケットを有する子ノードを選択することにより、スケジュールサイズを増大させることなくエンドツーエンド遅延を低減させる、小エンドツーエンド遅延（Small End-to-End Delay）を有することができる。さらに、別の実施形態は、バッファオーバーフロー低減（Reduces Buffer Overflow）が、スケジューリングルールＦ（．）を使用することにより、スケジュールサイズとエンドツーエンド遅延との間のトレードオフを提供するように構造化することができる。そこでは、スケジューリングルールＦ（．）は、バッファ内のオーバーフローを回避するように方法を構成する。さらに、一実施形態は、分散実施（Distributed Implementation）を有して構造化することができ、そこでは、全体的な知識は不要であるため、中央コントローラーは不要である。シンクノードは、その関連する子ノードからデータパケットを受信するか又はその関連する親ノードにデータパケットを送信するときに各ノードを制御するように、中央コントローラーとして作用することができることに留意されたい。
【００２０】
本開示のいくつかの方法及びシステムの例は、コンバージキャストネットワークにおいてパケット送信に対するスケジューリングを決定することを含むことができる。そこでは、動作中、各ノードは、シンクノードに送信するパケットを生成する。シンクノードの受信機が、１つ以上の分岐を有する木を含むコンバージキャストネットワークのトポロジーを示す情報を受信することができる。さらに、木における各ノードを、特定の分岐を通るシンクノードへの経路に対するホップカウントと関連付けることができる。初期ステップは、コンバージキャストネットワークにおいて動作を実施する要求を受信することと、次いで、シンクノードからのクエリを初期化することとを含むことができる。クエリは、分岐を通して複数のノードに送信することができ、クエリに応答して、受信機は、或る期間に指示的な情報を受信する。具体的には、情報は、コンバージキャストネットワークのトポロジーと、各ノードの特性と、生成された各ノードに対する時間データとを含むことができる。そこでは、時間データは、各ノードからのデータ生成解放時間と、各ノードに対するシンクノードにおけるデータ送出時間とを示す。そして、シンクノードにより、受信した情報に基づき、かつ複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、複数のノードをソートすること。それに、各ノードに対するデータ生成解放時間と各ノードに対するシンクノードにおけるデータ送出時間との間の差を求めることにより、受信時間データに基づいて各ノードに対するエンドツーエンド遅延を計算することが続く。そして、シンクノードにより、複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、複数のノードの各々に対するパケット送信をスケジューリングすることを開始することができる。したがって、木におけるパケット送信を実施することが、スケジューリングされた順序を使用して達成することができ、それにより、コンバージキャストネットワークにおける複数のノードに対するエンドツーエンド遅延の量を低減させることとともに、動作を完了するために必要なタイムスロットの総数を減少させることにより、動作が最適化される。
【００２１】
本開示の一実施形態によれば、コンバージキャストネットワークにおいてパケット送信に対するスケジューリングを決定する方法。コンバージキャストネットワークは、シンクノード及び複数のノードを含む。そこでは、コンバージキャストネットワークにおける動作中、各ノードは、シンクノードに送信するパケットを生成し、シンクノードの受信機は、１つ以上の分岐を有する木を含むコンバージキャストネットワークのトポロジーを示す情報を受信する。それにより、木における各ノードは、特定の分岐を通るシンクノードへの経路に対するホップカウントに関連付けられる。本方法は、コンバージキャストネットワークにおいて動作を実施する要求を受信することを含む。シンクノードからのクエリを初期化すること。クエリは、分岐を通して複数のノードに送信され、クエリに応答して、受信機は、或る期間に指示的な情報を受信する。情報は、コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対するシンクノードにおけるデータ送出時間を示す、生成された各ノードに対する時間データとを含む。シンクノードにより、受信した情報に基づき、かつ複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、複数のノードをソートすること。各ノードに対するデータ生成解放時間と各ノードに対するシンクノードにおけるデータ送出時間との間の差を求めることにより、時間データに基づいて各ノードに対するエンドツーエンド遅延を計算すること。シンクノードにより、複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、複数のノードの各々に対するパケット送信をスケジューリングすること。スケジューリングされた順序を使用し、木におけるパケット送信を実施すること。そこでは、スケジューリングされた順序を使用して動作を実施することによって、動作を完了するために必要なタイムスロットの総数を減少させることにより、かつ、コンバージキャストネットワークにおける複数のノードに対するエンドツーエンド遅延の量を低減させることにより、実質的に動作が最適化される。
【００２２】
本開示の別の実施形態によれば、コンピュータによって実行されると、コンピュータに対して、コンバージキャストネットワークにおける動作中にパケット送信を最適化する方法を実施させる命令を記憶する、コンピュータ可読記憶媒体。コンバージキャストネットワークは、シンクノード及び複数のノードを含む。そこでは、コンバージキャストネットワークにおける動作中、各ノードは、シンクノードに送信するパケットを生成する。シンクノードの受信機は、１つ以上の分岐を有する木を含むコンバージキャストネットワークのトポロジーを示す情報を受信する。それにより、木における各ノードは、特定の分岐を通るシンクノードへの経路に対するホップカウントに関連付けられる。本方法は、コンバージキャストネットワークにおいて動作を実施する要求を受信することを含む。シンクノードからのクエリを初期化すること、クエリは、分岐を通して複数のノードに送信される。クエリに応答して、受信機は、或る期間に指示的な情報を受信する。情報は、コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対するシンクノードにおけるデータ送出時間を示す、生成された各ノードに対する時間データとを含む。シンクノードにより、受信した情報に基づき、かつ複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、複数のノードをソートすること。各ノードに対するデータ生成解放時間と各ノードに対するシンクノードにおけるデータ送出時間との間の差を求めることにより、時間データに基づいて各ノードに対するエンドツーエンド遅延を計算すること。シンクノードにより、複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、複数のノードの各々に対するパケット送信をスケジューリングすること。スケジューリングされた順序を使用し、木におけるパケット送信を実施すること。そこでは、スケジューリングされた順序によって、動作を完了するために必要なタイムスロットの総数を減少させることにより、かつ、コンバージキャストネットワークにおける複数のノードに対するエンドツーエンド遅延の量を低減させることにより、実質的に動作が最適化される。そこでは、１タイムスロットは時間の量を指定する。
【００２３】
本開示の別の実施形態によれば、コンバージキャストネットワークにおける動作中にパケット送信を最適化するデバイス。コンバージキャストネットワークはシンクノード及び複数のノードを含む。コンバージキャストネットワークにおける動作中、各ノードは、シンクノードに送信するパケットを生成する。シンクノードの受信機は、１つ以上の分岐を有する木を含むコンバージキャストネットワークのトポロジーを示す情報を受信する。木における各ノードは特定の分岐を通るシンクノードへの経路に対するホップカウントに関連付けられる。本デバイスは、コンバージキャストネットワークにおいて動作を実施する要求を受信するように構成された受信機を備える。シンクノードのプロセッサが、分岐を通して複数のノードにブロードキャストするクエリを初期化するように構成される。クエリに応答して、受信機は、或る期間に指示的な情報を受信する。情報は、コンバージキャストネットワークのトポロジーと、各ノードの特性と、各ノードからのデータ生成解放時間及び各ノードに対するシンクノードにおけるデータ送出時間を示す、生成された各ノードに対する時間データとを含む。シンクノードにより、受信した情報に基づき、かつ複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、複数のノードをソートする。各ノードに対するデータ生成解放時間と各ノードに対するシンクノードにおけるデータ送出時間との間の差を求めることにより、時間データに基づいて各ノードに対するエンドツーエンド遅延を計算する。シンクノードにより、複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、複数のノードの各々に対するパケット送信をスケジューリングする。スケジューリングされた順序を使用し、木におけるパケット送信を実施する、そこでは、スケジューリングされた順序によって、動作を完了するために必要なタイムスロットの総数を減少させることにより、かつ、コンバージキャストネットワークにおける複数のノードに対するエンドツーエンド遅延の量を低減させることにより、実質的に動作が最適化される。
【００２４】
本開示の更なる特徴及び利点は、以下の詳細な説明を添付図面とともに取り入れると、この詳細な説明からより容易に明らかになる。
【００２５】
本開示は、本開示の例示的な実施形態の非限定的な例として述べる複数の図面に関する以下の詳細な説明において更に説明される。これらの図面において、同様の参照符号は、図面のいくつかの図を通して同様の部分を表している。示されている図面は、必ずしも一律の縮尺というわけではなく、その代わり、一般的に、以下に開示する実施形態の原理を示すことに強調が置かれている。
【図面の簡単な説明】
【００２６】
【図１Ａ】本開示のいくつかの実施形態による、コンバージキャストネットワークにおいてパケット送信に対するスケジューリングを決定する方法ステップを示すブロック図である。
【図１Ｂ】本開示のいくつかの実施形態による、工場環境におけるコンバージキャストネットワークを示す概略図である。
【図１Ｃ】本開示のいくつかの実施形態による、図１Ｂに示す無線ノードの組からのノードの機能ブロックを示すブロック図である。
【図２Ａ】本開示の実施形態による、異なる解放時間及びローカルバッファの実例を有するノードを含むネットワークの一例を示す概略図である。
【図２Ｂ】本開示の実施形態による、図２Ａのネットワークの将来の時間インスタンスにおけるネットワーク及びバッファ状態を示す概略図である。
【図３】本開示の実施形態による、通信リンクへの時間周波数割当を示すテーブルである。
【図４Ａ】本開示の実施形態による、子ノードのスケジューリングルールを論証するためにノードのグループの一例を示す概略図である。
【図４Ｂ】本開示の実施形態による、親ノードのスケジューリング閾値の論証の機能ブロックを示すブロック図である。
【図４Ｃ】本開示の実施形態による、親ノードのスケジューリング閾値の論証の機能ブロックを示すブロック図である。
【図５】本開示の実施形態による、有効負荷計算の一例を論証するためにノードのグループの一例を示す概略図である。
【図６Ａ】本開示の実施形態による、異なる解放時間を有するノードのネットワークの一例とパケット蓄積問題の一例とを示す概略図である。
【図６Ｂ】本開示の実施形態による、異なる解放時間を有するノードのネットワークの一例とパケット蓄積問題の一例とを示す概略図である。
【図６Ｃ】本開示の実施形態による、異なる解放時間を有するノードのネットワークの一例とパケット蓄積問題の一例とを示す概略図である。
【図７】本開示の実施形態による、親ノードのバッファステータスも使用されるときの送信又は受信レジームについて説明する図である。
【図８Ａ】本開示の実施形態による、スケジューリング方式の集中化実施態様について説明する機能ブロックを示すブロック図である。
【図８Ｂ】本開示の実施形態による、スケジューリング方式の集中化実施態様について説明する機能ブロックを示すブロック図である。
【図９Ａ】本開示の実施形態による、バッファを有するノードのスケジューリングについて説明する機能ブロックを示すブロック図である。
【図９Ｂ】本開示の実施形態による、バッファを有するノードのスケジューリングについて説明する機能ブロックを示すブロック図である。
【図１０】本開示の実施形態による、代替コンピュータ又はプロセッサを使用して実施することができる、図１Ａの方法を示すブロック図である。
【発明を実施するための形態】
【００２７】
上記で明らかにされた図面は、ここに開示されている実施形態を記載しているが、この論述において言及されるように、他の実施形態も意図されている。この開示は、限定ではなく代表例として例示の実施形態を提示している。ここに開示されている実施形態の原理の範囲及び趣旨に含まれる非常に多くの他の変更及び実施形態を当業者は考案することができる。
【００２８】
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲も、適用範囲も、構成も限定することを意図していない。そうではなく、例示的な実施形態の以下の説明は１つ以上の例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に明記されているような開示された主題の趣旨及び範囲から逸脱することなく要素の機能及び配置に行うことができる様々な変更が意図されている。
【００２９】
以下の説明では、実施形態の十分な理解を提供するために、具体的な詳細が与えられる。しかしながら、当業者は、これらの具体的な詳細がなくても実施形態を実施することができることを理解することができる。例えば、開示された主題におけるシステム、プロセス、及び他の要素は、実施形態を不必要な詳細で不明瞭にしないように、ブロック図形式の構成要素として示される場合がある。それ以外の場合において、よく知られたプロセス、構造、及び技法は、実施形態を不明瞭にしないように不必要な詳細なしで示される場合がある。さらに、様々な図面における同様の参照符号及び名称は、同様の要素を示す。
【００３０】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として描かれるプロセスとして説明される場合がある。フローチャートは、動作を逐次的なプロセスとして説明することができるが、これらの動作の多くは、並列又は同時に実行することができる。加えて、これらの動作の順序は、再配列することができる。プロセスは、その動作が完了したときに終了することができるが、論述されない又は図に含まれない追加のステップを有する場合がある。さらに、特に説明される任意のプロセスにおける全ての動作が全ての実施形態において行われ得るとは限らない。プロセスは、方法、関数、手順、サブルーチン、サブプログラム等に対応することができる。プロセスが関数に対応するとき、その関数の終了は、呼び出し側関数又はメイン関数へのその機能の復帰に対応することができる。
【００３１】
さらに、開示された主題の実施形態は、少なくとも一部は手動又は自動のいずれかで実施することができる。手動実施又は自動実施は、マシン、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組み合わせを用いて実行することもできるし、少なくとも援助することができる。ソフトウェア、ファームウェア、ミドルウェア又はマイクロコードで実施されるとき、必要なタスクを実行するプログラムコード又はプログラムコードセグメントは、マシン可読媒体に記憶することができる。プロセッサ（複数の場合もある）が、それらの必要なタスクを実行することができる。
【００３２】
概略
本開示は、コンバージキャストネットワークとも呼ばれる無線マルチホップ多対１ネットワークにおける遅延センシティブなスケジューリングに関し、より詳細には、不均一な解放時間の環境においてスケジュールサイズ及びエンドツーエンド遅延を共同で最小限にするスケジューリング方式に関する。
【００３３】
無線マルチホップ多対１ネットワークにおける遅延センシティブなスケジューリングは、シンクノード、すなわち基地局又はゲートウェイと、複数のデータノードとを含む。各データノードは、データを収集するか又は生成し、それにより、各ノードが、シンクノードに、場合によっては他のノードを通して最小遅延でデータを送信するようになっている。時間データは、収集されるか又は生成され、本開示の具体的な実施形態に応じて異なるノードに対して異なる可能性がある。
【００３４】
本開示は、スケジュールサイズ及びエンドツーエンド遅延を同時に最小限にすることに取り組むことを含むいくつかの実現に基づく。特に、本発明者らは、遅延が、多くの製造及び他のセンシティブな設備において主な問題であると理解する。本発明者らは、コンバージキャストネットワークにおいて、厳密な遅延要件及び一定レベルの信頼性要件を必要とする応用に対して適応するように、問題を克服することに取り組もうと試みた。本開示によるパケット送信のためのスケジューリング方式の少なくとも１つの重要な特徴は、少数のタイムスロット、すなわち小さいスケジュールサイズで全てのデータを収集することである。
【００３５】
しかしながら、スケジュールサイズは真の遅延を反映しない可能性がある。例えば、本発明者らは、データが異なるノードで異なる時間インスタンスで利用可能である応用において、スケジュールサイズは、実際の遅延を表さないことを発見した。例えば、工業環境におけるネットワークは、シンクノードと一組の無線ノードとを含むことができ、そこでは、各ノードは、別のプロセスにアタッチすることができるプロセスにアタッチされる。各プロセスは、所与の時点でデータを解放することができ、その際、各ノードに対する解放時間は各プロセスに対して異なる可能性がある。言い換えれば、１つのプロセスが、別のプロセスがデータを解放する時間より大きい値を有する可能性がある。そこでは、本開示の実施形態により、本発明者らは、解放時間が等しくない場合に焦点を当て、それは、不均一な解放時間とも呼ぶ。
【００３６】
こうした場合、複数のプロセスに対する解放時間が異なり、解放される時間データとデータの届けられた時刻との間の差は、本開示による有意義な基準である。この量が、エンドツーエンド遅延又は相対遅延と呼ばれる。本発明者らは、全てのトラフィックに対するエンドツーエンド遅延を最小限にすることが困難なタスクであることを発見した。したがって、本発明者らは、スケジュールサイズとともに最大又は平均エンドツーエンド遅延を最小限にすることが、本開示による優れた結果を論証することができることが分かった。さらに、小さいスケジュールサイズもまた、本開示による多くのシナリオにおけるスケジューリング方式の重要な特徴でもあり、工業環境におけるパロディックな手続きのための時間を提供することができる。
【００３７】
これらのタイプのネットワークにおいて、本発明者らは、実験を通して、スケジューリング方式が不均一な解放時間の環境においてスケジュールサイズ及びエンドツーエンド遅延を共同で最小限にすることを実現した。このために、共同のソート及びスケジューリングを展開することができる。本発明者らは、シンクノードが、所与の基準に基づいてノードをソートすることができ、その後、少なくとも２つの目標、すなわち、第１に最小スケジュールサイズ、第２に最小エンドツーエンド遅延を達成するように、ノードをスケジューリングすることができることが分かった。
【００３８】
発明者らは、スケジューリング方式を設計する際に、ノードの送信に優先順位を付けるときにノードの負荷が重要な基準であるということを更に認識した。例えば、本開示の一実施形態によれば、シンクノードは、優先順位条件に応じて特定の基準に基づいてノードをソートする。１つの特定の実施態様は、ノードが全負荷又は残りの負荷に基づいてソートされることを含むことができる。別の実施態様では、ノードは、２つのグループ、すなわち、（ｉ）シンクノードの子ノード及び（ｉｉ）シンクノードの子ノードを除く他のノードに分割することができる。そして、２つのグループの各々におけるノードは、特定の基準に基づいてソートすることができ、そこでは、第２のグループに対して第１のグループが優先される。
【００３９】
シンクノードは、何らかの条件に応じて、優先順位の高いノードが送信又は受信を行うようにノードをスケジューリングする。例えば、ノードがそのバッファに少なくとも１つのパケットを有する場合、そのノードは送信を行うようにスケジューリングされる。ノードのバッファが空である場合、そのノードは、スケジューリングルールに応じてその子ノードのうちの１つをスケジューリングする。本開示によるこのルールの別の実施態様では、最も古いパケットを有する子ノードｉが、より大きい負荷を有する別の子ノードｊがない限り、送信するようにスケジューリングされ、ノードｉのバッファにおける最も古いパケットからｄ個のタイムスロット以内に少なくとも１つのパケットを有する。
【００４０】
また、別の実施態様は、ノードｋがｂｋ個のパケットで占有される非空バッファを有する場合、そのノードは、その子ノードのうちの１つがスケジューリングルールＦ（ｂｋ）（Ｆ（ｂｋ）は、ノードｋのバッファサイズｂｋによって決まる関数である）に従ってより古いパケットを有する場合にのみ、受信を行うようにスケジューリングすることができることを含むことができることが可能である。
【００４１】
また、本発明者らは、ノードｋへの又はノードｋからのリンクは、同じブロックにおいて他の競合するリンクがスケジューリングされていない場合に、現時間周波数資源でスケジューリングすることができることを含む別の実施態様を発見した。他の競合するリンクがスケジューリングされている場合、ノードｋへの又はノードｋからのリンクは、利用可能な場合、異なる周波数チャネルにおいてスケジューリングされる。異なる周波数チャネルが利用可能でない場合、そのリンクのスケジューリングは先送りされる。別の実施態様では、各ノードがそれ自体及びその近傍ノードのスケジューリング順序を知るように、ノードのソートはローカルとすることができる。こうした場合、優先順位の高いノードのスケジューリングは上述したものと同様に行うことができる。言い換えれば、優先順位の高いノードは、スケジューリングルールに従って送信又は受信を行うことを判断する。さらに、本開示の別の実施態様は、ノードの負荷がそのノードの有効負荷を表すことを含むことができる。有効負荷は、所与の時間窓Ｗにおいてノードを通過すると予測されるパケットの最大数とすることができる。
【００４２】
本開示の他の実施形態を異なるように構造化することができ、例えば、１つの実施形態は、大きい負荷を有するノードを優先してスケジュールサイズを縮小する小スケジュールサイズを有することができる。別の実施形態は、古いパケットを有する子ノードを選択することにより、スケジュールサイズを増大させることなくエンドツーエンド遅延を低減させる、小エンドツーエンド遅延を有することができる。さらに、別の実施形態は、バッファオーバーフロー低減（Reduces Buffer Overflow）が、スケジューリングルールＦ（．）を使用することにより、スケジュールサイズとエンドツーエンド遅延との間のトレードオフを提供するように構造化することができる。そこでは、スケジューリングルールＦ（．）は、バッファ内のオーバーフローを回避するように方法を構成する。さらに、一実施形態は、分散実施（Distributed Implementation）を有して構造化することができ、そこでは、全体的な知識は不要であるため、中央コントローラーは不要である。さらに、シンクノードは、その関連する子ノードからデータパケットを受信するか又はその関連する親ノードにデータパケットを送信するときに各ノードを制御するように、中央コントローラーとして作用することができる。
【００４３】
上述したように、コンバージキャストネットワークは、シンクノード及び複数のノードを含む。そこでは、コンバージキャストネットワークにおける動作中、各ノードは、シンクノードに送信するパケットを生成し、シンクノードの受信機が、１つ以上の分岐を有する木を含むコンバージキャストネットワークのトポロジーを示す情報を受信する。さらに、木における各ノードは、特定の分岐を通るシンクノードへの経路に対するホップカウントと関連付けられている。さらに、パケット送信をスケジューリングする前に、複数のノードにおける各ノードに対するシンクノードまでのホップカウントが得られる。例えば、シンクノードから、シンクノードの１ホップ近傍又は子ノードの全てにメッセージをブロードキャストすることにより、コンバージキャストネットワークに対する木を得ることができる。より小さいホップカウントでメッセージの受信コピーを転送することを通して、複数のノードにおける各ノードにメッセージを伝播すること。木を形成するために最短ホップカウント木を得ることとともに。
【００４４】
図１Ａは、本開示のいくつかの実施形態による、コンバージキャストネットワークにおいてパケット送信に対するスケジューリングを決定する方法ステップのブロック図である。方法１００の第１のステップ１０１は、シンクノードのプロセッサ１０４により、コンバージキャストネットワークにおいて動作を実行する要求を受信することを含む。パケットが、複数のノードのうちの任意のノードから生成されるときに動作が開始又は始動することに留意されたい。さらに、複数のノードにおける各ノードは、動作の各タイムスロット中に以下の状態、すなわち、ノードが隣接するノードからパケットを受信することができる受信状態、ノードが隣接するノードにパケットを送信することができる送信状態、及び、ノードが送信も受信も行わないアイドル状態のうちの１つであり得る。
【００４５】
そして、ステップ１０３は、シンクノードからのクエリを初期化することを含み、そこでは、クエリは、分岐を通しての複数のノードに送信することができる。ステップ１０５では、クエリに応答して、受信機は、或る期間に指示的な情報を受信する。具体的には、情報は、コンバージキャストネットワークのトポロジーと、各ノードの特性と、生成された各ノードに対する時間データとを含むことができる。そこでは、時間データは、各ノードからのデータ生成解放時間と、各ノードに対するシンクノードにおけるデータ送出時間とを示す。
【００４６】
ステップ１０７、シンクノードにより、受信した情報に基づき、かつ複数のノードの優先順位付き順序を得るために各ノードに優先順位を付けるソート機能を使用して、全ての複数のノードをソートすること。さらに、ソート機能は、全負荷の量、転送される負荷の量、転送の後に残る負荷の量、ノードの優先順位付け、又はそれらのうちのいくつかの組合せに基づき、各ノードに優先順位を付けて、複数のノードの優先順位付き順序を得ることができる。
【００４７】
さらに、ソート機能はまた、全負荷又は残りの負荷に基づき、複数のノードに優先順位を付けることもできる。そこでは、全負荷は、或る期間における、各ノードによって送信されるパケットの数、各ノードによって転送されるパケットの数、又は両方を含む。或る期間における、各ノードによる任意の先行する送信されたパケット、各ノードによる任意の先行する転送されたパケット、又は両方とともに。そこでは、残りの負荷は、各ノードが、上記期間の残りにおいて送信し、転送し、又は両方を行うパケットの数である。さらに、ソート機能は、変形実施態様機能を含むことが可能であり、変形実施態様機能は、複数のノードを、シンクノードの子ノードを含む第１のグループと、シンクノードの子ノードを除く他のノードを含む第２のグループとに分割することと、所定基準に基づいて第１のグループ及び第２のグループをソートして、第２のグループに対して第１のグループが優先されるようにすることとを含む。
【００４８】
ステップ１０９は、各ノードに対するデータ生成解放時間と各ノードに対するシンクノードにおけるデータ送出時間との間の差を求めることにより、受信時間データに基づき各ノードに対するエンドツーエンド遅延を計算することを含む。ソート機能及びエンドツーエンド遅延は、同時に又は共同で実施することができることに留意されたい。
【００４９】
ステップ１１１は、シンクノードにより、複数のノードに対するスケジューリングされた順序を得るように、一組の所定スケジューリング基準を有するスケジューリング機能に基づき、複数のノードの各々に対するパケット送信をスケジューリングすることである。さらに、スケジューリング機能の所定スケジューリング基準の組は、パケットの生成時間、ノードのバッファステータス、子ノードのバッファステータス及びノードの親のバッファステータスのうちの少なくとも１つを含む。
【００５０】
さらに、スケジューリング機能は、ノードの最も古いパケットの保持時間とノードの関連する子ノードによって保持されている最も古いパケットの保持時間との間の時間データから、各ノードに対して生成時間差を計算することを含むことができ、生成時間差が所定時間閾値を上回る場合、ノードの関連する子ノードによって保持されている最も古いパケットは、シンクノードにより、子ノードからそのパケットを送信するようにスケジューリングされる。
【００５１】
スケジューリング機能は、関連する子ノードからパケットを受信するか、又は関連する親ノードにパケットを送信するように、関連する子ノードのバッファステータス及び関連する親ノードのバッファステータスを考慮して、体系的な閾値を計算することを含むことができることが可能である。そこでは、親ノードのバッファがより多くのパケットにより充填されるに従い、閾値は低減し、それにより、ノードは、シンクノードにより、その関連する子ノードからパケットを受信するようにスケジューリングされる。
【００５２】
言い換えれば、ノードのバッファがより多くのパケットにより充填されるに従い、閾値は増大し、それにより、ノードは、シンクノードにより、バッファの内部のそのパケットをその関連する親ノードに送信するようにスケジューリングされる。そこでは、ノード及びその関連する親ノードのバッファがより多くのパケットにより同時に充填されるに従い、シンクノードはノードが送信動作も受信動作も行わないようにする。
【００５３】
最後に、ステップ１１３は、スケジューリングされた順序を用いて達成される木においてパケット送信を行うことである。方法１００の結果は、コンバージキャストネットワークにおける複数のノードに対してエンドツーエンド遅延の量を低減させるとともに、動作を完了するために必要なタイムスロットの総数を低減させることにより、動作を最適化する。
【００５４】
図１Ｂは、本開示のいくつかの実施形態による、工業環境におけるコンバージキャストネットワーク１０２を示す概略図である。特に、図１Ｂは、シンクノードＳ−１１０と一組の無線ノードＮ１−１２０、Ｎ２−１４０、Ｎ３−１６０、Ｎ４−１７０とを含む、工業環境におけるネットワーク１０２の一例を示す。各ノードは、プロセスにアタッチされ、例えば、Ｎ１−１２０はプロセスＰ１−１３０にアタッチされる。各プロセスは、所与の時点でデータを解放し、例えば、Ｐ１−１２０は、時間Ｔ０１−１３５でデータを解放する。解放時間は、各ノードＮ１−１２０、Ｎ２−１４０、Ｎ３−１６０、Ｎ４−１７０に対して異なる可能性があることに留意されたい。例えば、ノード１２０のＴ０１−１３５は、プロセスＰ２−１５０がノード１４０のＴ０２−１５５でデータを解放する時間より大きい値を有する可能性がある。具体的に、本発明者らは、解放時間が等しくない場合に焦点を当てる。これは、不均一な解放時間と呼ぶ。
【００５５】
図１Ｃは、本開示のいくつかの実施形態による、図１Ｂに示す無線ノードの組Ｎ１−１２０、Ｎ２−１４０、Ｎ３−１６０、Ｎ４−１７０からのノードの機能ブロックのブロック図を示す概略図である。例えば、ノードは、メモリ１２２、少なくとも１つのプロセッサ１２４、受信機／送信機１２６、他のインターフェース１２８及び少なくとも１つのマシンインターフェース／センサ１２９を備える。特に、ここでは、データを受信し又は収集する１２２に示すメモリの量をバッファと呼ぶ。
【００５６】
図２Ａは、本開示の実施形態による、異なる解放時間を有するノードのネットワークとローカルバッファの実例との一例である。特に、図２Ａは、センサネットワークの一例を示す。図１Ｂと同様に、ノードは、異なるパケット解放時間を有する。図２Ａにおいて、図１Ｂにおけるプロセス又はマシン又はセンサ等は、図１Ｂにおけるように抑制されている。解放時間は各ノードにアタッチされている。例えば、Ｎ１  ２１０は、２１２に示す解放時間Ｔ０１＝２を有する。同様に、Ｎ８  ２８０は、２８２においてＴ０８＝１の解放時間を有する。タイムスロット１  ２０１においてネットワークの状態を取り込むことにより、バッファの状態もまたノードにアタッチされる。例えば、図２Ａは、バッファ２８１を有するＮ８及びバッファ２１１を有するＮ１を示す。この例では、Ｎ８は、バッファに１つのパケットを有し、それは、時間インスタンス１においてローカルに生成されたデータである。Ｎ１は空バッファを有する。本開示による１つの実施態様では、バッファ内のパケットは、それらの解放時間によって識別される。図１Ｃに、ノードの機能ブロックの基本ブロック図を示す。ここでは、データを受信し又は収集する１２４に示すメモリの量をバッファと呼ぶ。
【００５７】
さらに、図２Ａは、経路を示し、例えば、Ｎ８は、そのデータパケットを、無線リンク２８３を通してＮ５  ２５０に送信する。無線通信は本質的にブロードキャストされるため、ノードは、同じ時間周波数資源で送信する場合、互いに干渉する可能性がある。図２Ａにおいて、ノードＮ７  ２７０の専用の親はノードＮ４  ２４０であるが、２７３での送信が異なる時間周波数ブロックで発生しない限り、Ｎ８が、２７４によって表される無線リンクを通してＮ７送信に干渉する。同様に、Ｎ５はＮ７に干渉する。したがって、Ｎ５及びＮ７は、２つの異なる周波数チャネルで同時に送信することができる。しかしながら、ノードは、所与のタイムスロットで送信又は受信のいずれかを行うことができるため、Ｎ５は、受信している場合は送信することができないことに留意されたい。さらに、単純な信号処理技法を用いると、親ノードを共有する２つのノードは、異なる周波数チャネルであっても同時に送信することができない。例えば、Ｎ７及びＮ６は、Ｎ４  ２４０に同時に送信することができない。
【００５８】
図２Ｂは、本開示の実施形態による、図２Ａにおけるネットワークの将来の時間インスタンスにおけるネットワーク及びバッファ状態の概略図である。上記制約を考慮すると、ノードＮ５及びＮ７は、それらの親Ｎ２及びＮ４にそれぞれ１つのパケットを送信する。ここで、バッファのステータスの更新について更に留意する。さらに、Ｎ８は、その親ノードが送信しているため、パケットを送信することができなかったことに留意する。さらに、Ｎ６は、その親ノードＮ４がノードＮ７からパケットを受信することでビジーであるため、パケットを送信することができなかった。
【００５９】
図３は、本開示の実施形態による、通信リンクへの時間周波数割当を示すテーブルである。特に、図３は、第１のタイムスロットに対する時間周波数資源及びスケジュールの一例を示す。さらに、図３は、３つの周波数チャネルの可用性を示す。以下、最小スケジュールサイズ及び最小エンドツーエンド遅延をいかに達成するかについて説明する。
【００６０】
小スケジュールサイズ（最小スケジュールサイズ）
本開示の様々な実施形態において、ノードの優先順位を特定するためにソートを使用する。これは、スケジュールサイズに対して主な影響を与える。ソート基準を論証するために、３つの例を挙げる。
【００６１】
全負荷に基づいてノードをソートすることは、転送する必要があるパケットの総数によりノードに優先順位を付けることを指す。図２Ａにおいて、ノードＮ２  ２２０は、６つのパケットを転送しなければならず、したがって、６つという全負荷を有し、ノードＮ１  ２１０は、全負荷として２つのパケットを有し、ノードＮ４  ２４０は３つのパケットを有し、ノードＮ７は１つのパケットを有し、ノードＮ５は２つのパケットを有する。
【００６２】
別のソート技法は、残りの負荷に基づく。例えば、図２Ｂにおいて、Ｎ７は、そのパケットを転送した後にゼロ負荷を有し、ノードＮ５  ２５０は１つを有し、ノードＮ２は５つのパケットを有する。
【００６３】
別のソート技法は、シンクノードがスケジューラーのボトルネックであるため、シンクノードの子ノードを優先する。シンクノードの子ノードを優先することにより、ノードＮ１、Ｎ２及びＮ９は最高優先度を有する。したがって、Ｎ１とＮ４との間の送信の競合の場合、Ｎ１１が最初に送信する。シンクノードの子ノードをソートすることが、特定の基準に基づいて行うことができ、シンクノードの非子ノードをソートすることが、可能性として異なる基準に基づいて行うことができることに留意されたい。これにより、スケジューラーの複雑性を調整することが可能になる。
【００６４】
さらに、他のソート基準を同様に使用することができる。
【００６５】
低エンドツーエンド遅延
スケジュールサイズを増大させることなくエンドツーエンド遅延を最小限にするために、本開示の様々な実施形態により、親ノードにおけるスケジューリングが可能になる。こうした技法では、親ノード、すなわちｋは、パケットの解放時間及びバッファのステータス等、いくつかのルール及び条件に基づいて送信し又は受信するようにそれ自体をスケジューリングするように選択することができる。このルールは、スケジューリングルールＦによって指定することができる。
【００６６】
図４Ａ、図４Ｂ及び図４Ｃは、スケジューリングルールの例である。例えば、図４Ａは、本開示の実施形態による、子ノードのスケジューリングルールを論証するためのノードＮ１１、Ｎ１２、Ｎ１３、Ｎ１５、Ｎ１７のグループの一例である。図４Ｂ及び図４Ｃは、本開示の実施形態による、親ノードのスケジューリング閾値の論証である。
【００６７】
図４Ｂにおける１つの実施態様４５０は、ノードｋ４６０及びその関連する子ノード４５０を含む。ノードｋは、ノードｋの子ノードの間で、子ノード、すなわち、子ノードｊ＊を、それが、ノードｋのローカルバッファにおける最も古いパケットと比較して特定の閾値γｋより古いパケットを有する場合にのみ、送信するように選択する（図４Ｃ、４６７）。閾値は、ノードｋのローカルバッファのステータス、（ローカルメモリ内のパケットの数）、親ノード（ｐａｒｋ）のバッファのステータス及び子ノードのバッファのステータスの関数とすることができる。
【００６８】
一例として、スケジューリングルールＦのパラメーターは、ローカルバッファｂｋの負荷のみによって決まる。
【００６９】
図４Ｂの４６１において、ノードｋは、そのローカルバッファｂｋから最も古い解放時間、ｍｉｎＴｋを計算する。経路から、ノードｋは、子ノードの集合Ｃｋを見つける（４６２）。集合Ｃｋの子ノードの数、すなわちＪに対して、ノードｋは、特定の子ノードｊ∈Ｃｋに対して最も古い解放時間Ｔｊを計算する（４６３）。Ｊ個の子ノードからのＪ個の最も古い解放時間の計算の後、ノードｋは、４６４のように、最小の最も古い解放時間とその対応する子ノードとを計算する。
【数１】
0006749505.tif 000002
ｔｃｈは、子ノードのバッファに記憶された最も古いパケット解放時間を示す。また、ｊ＊は、スケジューリングのための選択された子ノードのインデックスを示す。バッファが空であるとき、Ｔｊは∞に設定することができる。
【００７０】
提案するスケジューリングルールＦは、図４Ｃの４６５のように書くことができる。
【数２】
0006749505.tif 000003
【００７１】
式（１）において、−１は、図４Ｃの子ノードからの受信４６７を示し、＋１は、図４Ｃのローカルバッファからの送信４６６を示す。さらに、０は、スケジューリングに対してノードｋをスキップすることを示す。
【００７２】
スケジューリングルールＦは送信するように判断するが、この送信は、ｐａｒｋがパケットを受信することができ（図４Ｃの４６８）、かつ、先行してスケジューリングされたリンクとの干渉をもたらさない場合にのみ、可能とすることができる。そうでない場合、ノードｋは、その送信を先送りにする（図４Ｃの４６９）。γｋ（ｂｋ）＝∞を選択することにより、スケジューラーは、負荷がｂｋに等しい場合にローカルバッファからの送信を常にもたらす。γｋ（ｂｋ）の選択は、スケジュールサイズとエンドツーエンド遅延とのトレードオフを論証する。小さいｂｋの場合、γｋ（ｂｋ）の大きい値によりスケジュールサイズが低減し、逆によりエンドツーエンド遅延が低減する。
【００７３】
図５は、以下詳細に開示する本開示の実施形態による、有効負荷計算の一例を示す。図５は、ノードＮ１〜Ｎ６及びシンクノードＳを含む。特に、図５は、シンクノードＳの子ノードＮ２、Ｎ３、Ｎ４、Ｎ６に対してタイムスロット１での有効負荷計算の数値例を提供する。この例では、Ｎ１はそのバッファに１つのパケットを有し、次に到来するパケットはＮ２から時間９にあることが分かる。一方、Ｎ５はそのバッファに１つのパケットを有し、次の到来するパケットはＮ６から時間２にある。したがって、Ｎ１の有効負荷は１であり、Ｎ５の有効負荷は２である。これについては、後により詳細に考察する。
【００７４】
図４Ａを参照すると、図４Ａは、このルールに対する一例を論証し、そこでは、ノードＮ１２が、送信又は受信することが許可され、γ１２（ｂ１２）＝∞であると想定する。したがって、Ｎ１２は、通常、最も古いパケットを選ぶ。この例では、それは、解放時間９のパケットである。これは、ローカルバッファが、９及び１０に解放された２つのパケットを有するためである。９で解放されたパケットが他のパケットより古いため、時間９で解放されたパケットは、スケジューリングのために選ばれる。
【００７５】
例示として、
【数３】
0006749505.tif 000004
を有することができ、ｍｉｎＴＮ１２＝９である。その場合、式（１）による差は、９−１＝８である。したがって、γ１２（２）＝１０を選択する場合、ｍｉｎＴＮ１２−ｔｃｈ≦γＮ１２（ｂＮ１２）である。しかしながら、γ１２（２）＝５を選択する場合、ｍｉｎＴＮ１２−ｔｃｈ＞γＮ１２（ｂＮ１２）であり、それにより、Ｎ１２はＮ１５からパケットを受信する。
【００７６】
このスケジューリングルールから生じる可能性がある１つの問題は、パケットの反復受信、すなわち、ノードｋが多くの連続するタイムスロットにわたり、子ノードＣｋからパケットを受信するように選択する一方で、ｐａｒｋ及び（場合によりその親）が空バッファを有する場合である。ノードｋにおけるパケットのこの蓄積により、シンクへの送信機会が失われることによりスケジュールサイズが増大する可能性がある。これを論証するために、図６Ａ、図６Ｂ及び図６Ｃは一例を示す。
【００７７】
図６Ａ、図６Ｂ及び図６Ｃは、本開示の実施形態による、パケット蓄積問題の一例である。例えば、図６Ａ、図６Ｂ及び図６Ｃにおけるノードは、競合するリンクの数又は近傍の数によって決まる、以下の優先順位｛Ｎ２，Ｎ１，Ｎ３，Ｎ４｝を有するものとする。さらに、バッファサイズは全てのノードＮ１〜Ｎ４に対して大きく、そのため、現負荷に対してバッファのオーバーフローは予期されず、全てのｉ∈｛Ｎ１，Ｎ２，Ｎ３，Ｎ４｝に対してγｉ＝０と想定する。
【００７８】
上述したように、スケジュールサイズを低減させるために、シンクはビジーで維持されるべきである。しかしながら、この例における特定のソートに起因して、図６ＡのノードＮ２−６２０は、シンクに近いノード、すなわち、図６ＡのＮ１−６１０より高い優先順位を有する。したがって、ローカルバッファ及び子バッファを考慮して親ノードのスケジューリングを使用するノードは、スケジュールサイズを増大させる。図６Ｂに示すように、瞬間２において、ノードＮ２は、Ｎ１が空バッファを有するという事実にも関わらず、リンク６４０を使用する代わりにリンク６５０を使用する。図６Ｃにおいて、瞬間３においてリンク６６０を使用することができる。これにより、１タイムスロット分、スケジュールサイズが増大する。
【００７９】
図７は、本開示の実施形態による、親ノードのスケジューリングが使用されるときの送信レジーム又は受信レジームを説明する概略図である。例えば、図７は、親ノードｐａｒｋのバッファステータスを含むため、この問題を緩和することができる。特に、図７は、こうしたスケジューリングルールの望ましい挙動を示す。そこでは、これは、より一般的なルールの特別な場合であり、親のバッファ
【数４】
0006749505.tif 000005
のステータスが同様に考慮される（シンクノードがスケジュールを作成することに留意されたい）。
【００８０】
さらに図７を参照すると、ノードｋは、ローカルバッファが満杯である（７１５）か、又は親ノードのバッファが満杯である（７１０）領域において、受信も送信も行うことができない。ローカルバッファ及び親ノードのバッファが満杯である（７５０）場合、スケジューリングに対してノードｋはスキップするべきである。ｐａｒｋのバッファが多数のパケットを有する場合、パケットの送信に優先して受信が促進されるべきであり（７３０）、一方、ローカルバッファが多数のパケットを有する場合、ローカルバッファからの送信が促進されるべきである（７４０）。概して、ノードｋ及びｐａｒｋの両バッファが多数のパケットを有する場合、それは、シンクノードへの経路におけるあり得る輻輳及び遅延の増大を示し、それにより、スケジューリングのためにノードｋをスキップすることが好ましい可能性がある。
【００８１】
本開示の１つの実施態様では、上述した望ましい特性のうちの大部分を有する閾値
【数５】
0006749505.tif 000006
のあり得る関数のうちの１つは、以下の通りである。
【数６】
0006749505.tif 000007
式中
【数７】
0006749505.tif 000008
であり、式中、ｂｍａｘは最大バッファサイズであり、α及びβは設計パラメーターである。また、ｃｅｉｌ（．）は天井関数を示す。親ノードのバッファの状態は、関数
【数８】
0006749505.tif 000009
の重要なパラメーターのうちの１つであることに留意されたい。図４Ａにおいて、ｐａｒＮ１２＝Ｎ１１に対して、α＝０．５、β＝０．２５及びｂｍａｘ＝３とし、それにより、式（２）の結果を表１に示す。
【００８２】
式（２）及び式（３）に基づく
【数９】
0006749505.tif 000010
の値は以下の通りである。
【表１】
0006749505.tif 000011
【００８３】
ｂｋ及び
【数１０】
0006749505.tif 000012
の関数としての
【数１１】
0006749505.tif 000013
の値の変動と、スケジューリングルール
【数１２】
0006749505.tif 000014
とに留意されたい。
【００８４】
図４Ａ〜図４Ｃを参照すると、ｂｍａｘ＝３パケットでの例示を提供し、Ｎ１１のバッファにおけるパケットの数が増大するため、ノードＮ１２は送信することが阻止される。一方、Ｎ１２は、そのローカル負荷が大きく、
【数１３】
0006749505.tif 000015
が増大し続けるため、その親ノードがそのバッファに少数のパケットを有するとき、Ｎ１２は送信するように促進される。表に従って、γＮ１２（ｂＮ１２，ｂＮ１１）＝６が得られ、Ｎ１２はＮ１５からパケットを受信するようにスケジューリングされることが分かる。
【００８５】
最後に、式（３）における当該関数が、少数のパケットを有し、ローカルバッファに応じて指数関数的に増大するパケットネットワークに対して、より好適であることに留意されたい。より低速に増大する（例えば、線形）他の関数を同様に使用することができる。
【００８６】
有効負荷
不均一な解放時間における負荷の定義は、ノードの優先順位、したがって、ノードのスケジューリングに影響を与える。解放時間は、いくつかのノードでは比較的大きい可能性があり、それにより、こうした負荷に基づくノードの優先順位付けは判断を誤らせる可能性がある。したがって、本開示の１つの実施形態では、Ｗ＝［ｔ１，ｔ２］、ｔ１≦ｔ２である場合の所与の時間窓Ｗ内でノードを通過したパケットの最大数として定義される、有効負荷を考慮する。Ｗ＝［０，∞）と定義した場合、有効負荷は全負荷になる。また、別の窓Ｗ＝「ｔ，∞）では、有効負荷は、時間ｔにおいて残りの負荷となる。
【００８７】
概して、ｔ１及びｔ２の選択は、スケジューリングの判断及び複雑性に影響を与える。例えば、全てのノードを再ソートするために残りの負荷を使用することは、ノードの数が多い場合、複雑になる可能性がある。さらに、不均一な解放時間の環境では、ｔ２の選択は重要である。
【００８８】
図５を参照すると、１つの例は、ノードが異なる負荷を有するか又は最大解放時間に達するまで、ｔ２を漸進的に増大させるということである。図５は、シンクノードの子ノードに対するタイムスロット１における有効負荷計算の数値例を提供する。この例では、Ｎ１はそのバッファにパケットを有し、次の到来するパケットはＮ２から時間９にあることが分かる。一方、Ｎ５はそのバッファにパケットを有し、次に到来するパケットはＮ６から時間２にある。したがって、Ｎ１の有効負荷は１であり、Ｎ５の有効負荷は２である。
【００８９】
スケジューリング方式
多くの遅延センシティブな応用に対して、中央コントローラーを使用して遅延を低減させることができる。上述したように、シンクノードは、中央コントローラーとして作用することができ、それにより、その関連する子ノードからデータパケットを受信するか、又は、その関連する親ノードにデータパケットを送信するとき、各ノードを制御する。
【００９０】
以下、スケジュールサイズ及びエンドツーエンド遅延を最小限にする集中方式を提供する。しかしながら、本開示の１つ以上の実施形態に基づいて、分散方式を設計することも可能である。
【００９１】
最初に、以下の方式で使用する新たなデータセットを定義する。Ｉｋは、ノードｋを含む干渉するノードの組とする。Ｉｋは、ネットワークのトポロジーと、システムにおいて確認が実施されるか否かによって決まる。さらに、Ｓは、ネットワークのスケジューリングを表すＭ×（Ｎ＋１）行列とし、そこで、Ｎは、ネットワークにおけるセンサノードの総数であり、Ｍは、スケジュールの予測されるサイズである。Ｓ（ｔ，ｋ）は、値｛０，±１，±２，．．．，±Ｌ｝をとり、そこで、Ｌは周波数チャネルの数であり、ｓ（ｔ，ｋ）の符号は、ノードｋが、チャネルｃｈ∈｛１，．．．，Ｌ｝にわたりタイムスロットｔにおいて送信するように設定されるか又は受信するように設定されるかを表す。また、＋ｖｅは送信を示し、−ｖｅは受信を示す。そうでない場合、それはアイドルモードにある。
【００９２】
言い換えれば、上述したように、スケジューリング行列は、以下のようにネットワークのスケジューリングを表し、
【数１４】
0006749505.tif 000016
式中、（Ｌ）は周波数チャネルの数であり、（Ｍ）はスケジュールサイズであり、（Ｎ）はノードの数であり、（＋）は送信であり、（−）は受信である。さらに、シンクノードの子ノードは、送信又は受信に関して複数のノードのうちの他のノードに対してより高い優先順位を有する。それにより、シンクノードの各子ノードは、残りの負荷によってソートされ、他のノードの各他のノードは、全負荷によってソートされる。全負荷は、或る期間における、各ノードによる任意の先行する送信されたパケット、各ノードによる任意の先行する転送されたパケット、又は両方を含むとともに、或る期間における、各ノードによって送信されるパケットの数、各ノードによって転送されるパケットの数、又は両方を含む。ここで、残りの負荷は、期間の残りにおいて、各ノードが送信し、転送し、又は両方を行うパケットの数である。
【００９３】
Ｑは、上述したようなノードのソートされたリストを表すものとする。この方式では、シンクノードの子ノードがより高い優先順位を有するソートを使用する。言い換えれば、ＱをＱ＝｛Ｑ’，Ｑ’’｝として分割し、そこで、Ｑ’は、シンクノードのソートされた子ノードであり、すなわち、Ｑ’は、Ｃｓｉｎｋにおける全てのノードを含む。一方、Ｑ’’は、シンクノードの子ノードではないソートされたノードのリストであり、すなわち、Ｃｉ∀ｉ∈｛１，．．．，Ｎ｝である。
【００９４】
集中スケジューリング方式
図８Ａ及び図８Ｂは、本開示の集中化実施態様を示す。図８Ａのアルゴリズム１において、８０１におけるアルゴリズムの入力は、コンバージキャスト経路、全てのパケットに対する解放時間｛Ｔｋ０｝、干渉関係｛Ｉｋ｝、当該ソート基準を含むと想定する。方式のこの実施態様では、シンクノードの子ノードではないノードに対して全負荷を使用し、シンクノードの子ノードに対して残りの負荷を使用する。これは、後述するように有利である。
【００９５】
さらに図８Ａを参照すると、次にアルゴリズム８０２において、全ゼロＭ×（Ｎ＋１）行列としてスケジュールＳを初期化する。また、タイムスロットｔをゼロに初期化する。次に、全てのノードに対して初期ソートを実施する。この実施態様では、シンクノードの子ノードを優先する。シンクノードのソートされた非子ノードは、Ｑ’’に列挙される（８０３）。全てのパケットが受信される（８０４）まで、アルゴリズムは続行する。そして、アルゴリズムの出力はスケジュールＳである（８９０）。
【００９６】
さらに図８Ａを参照すると、各反復において、各タイムスロットにおいて、アルゴリズムは、８０５において、残りの負荷Ｑ’に基づいてシンクノードの子ノードをソートする。この実施態様を使用して、各反復において、シンクノードの子ノードのみに対して再ソートが行われ、これは、全てのノードをソートすることに比べて複雑性が小さい（Ｑ＝｛Ｑ’，Ｑ’’｝、８０６）。集合Ｑには２つの集合が格納される。この反復において、全てのビジーノード、すなわち、Ｓ（ｔ，ｉ）≠０を有するノードは、Ｑから除去される（８０７）。次に、８０８において、反復は、時間指標ｔをインクリメントすることにより初期化される。
【００９７】
図８Ａ及び図８Ｂを参照すると、集合Ｑが空でない場合（８０９）、Ｑをトラバースする。各反復において、Ｑにおいてｋは第１のノードであるように設定され（８２０）、その後、Ｑの第１の要素を取り出す（８２４）。ノードｋに対して、８２６においてアルゴリズム２を採用して、ノードｋが送信するべきか受信するべきかを判断する。アルゴリズム２の後（８５０）、８０９において、Ｑが空であるか否かを判断する。Ｑが空である場合、このタイムスロットにわたる反復は終了し、その後、全てのパケットを受信したか否かを検査しなければならず、その後、８０４又は８９０に進む。
【００９８】
図９Ａ及び図９Ｂは、ノードｋのスケジューリングを、そのバッファステータス、関連する親ノードのバッファステータス、及び関連する子ノードのバッファステータスを考慮して説明する、機能ブロックを示すブロック図である。特に、図９Ａ及び図９Ｂにおいて、アルゴリズム２の実施態様を示す。
【００９９】
図９Ａを参照すると、９１１で開始して、８２６の後、ノードｋが、現バッファサイズｂｋで受信することが許可されているか否かを判断する。これは、γｋ（ｂｋ）＜∞であるか否かを検査することによって行うことができる。次に、Ｃ’ｋが、図４Ｂの４６２におけるようにタイムスロットｔにおいてビジーでなく、ノードｋに送信することができるノードｋの子ノードの部分集合である場合、実行可能な子ノードＣ’ｋ⊂Ｃｋの集合を特定し、すなわち、更新する（９１２）。ノードｋ又はノードｊのいずれもビジーでなく、チャネルｃｈ∈｛１，．．．，Ｌ｝がある場合、ノードｊ∈Ｃｋはノードｋに送信することができ、それにより、時点ｔにおいて（ｊ，ｋ）にｃｈを割り当てることにより、ネットワークにおける他のいかなるリンクにも干渉をもたらさない。
【０１００】
同様に、９１３において、ノードｋが（ｋ，ｐａｒｋ）にわたり送信することができるか否かと、ｐａｒｋがビジーであるか否かとを検証する。これらの条件のいずれも満足されない場合、すなわち、９１３が否である場合、ノードｋはｐａｒｋに送信することができない。９１４において、閾値γｋ（ｂｋ，∞）を使用してスケジューリングルールＦ（ｂｋ，∞）を適用し、ノードｋが受信することができるか否かを判断する必要がある。
【０１０１】
図９Ｂを参照すると、特定の場合に基づき、アルゴリズムは、９１６及び９１７に示すように、利用可能なチャネルｃｈのうちの１つを使用して、スケジュールＳ及び関連するノードのバッファステータスを更新する。アルゴリズム２の手続きが８５０で終了した後、８５０及び８０９において上述したようにアルゴリズム１の残りを続ける。
【０１０２】
ノードｋは、送信を行うようにスケジューリングされる場合、送信のためにその親ノードｐａｒｋへの空チャネルを特定する（９２０）。そして、スケジューリング行列を更新し（９２２）、すなわち、ノードｋは、対で動作して、タイムスロットｔにおいてチャネルｃｈを介してノードｐａｒｋにパケットを送信し（Ｓ（ｔ，ｋ）＝ｃｈ）、ｐａｒｋは、タイムスロットにおいてチャネルｃｈを介してノードｋからパケットを受信する（Ｓ（ｔ，ｐａｒｋ）＝−ｃｈ）。９２４において、それぞれ送信及び受信に起因して、ノードｋのバッファ及びノードｐａｒｋのその関連するバッファを更新する。ノードｋは、受信を行うようにスケジューリングされる場合、受信するためにその選択された子ノードｊ＊への空チャネルを特定する（９３０）。そして、スケジューリング行列を更新し（９３２）、すなわち、ノードｋは、対で動作して、タイムスロットｔにおいてチャネルｃｈを介してノードｊ＊からパケットを受信し（Ｓ（ｔ，ｋ）＝−ｃｈ）、ｊ＊は、タイムスロットにおいてチャネルｃｈを介してノードｋにパケットを送信する（Ｓ（ｔ，ｊ＊）＝ｃｈ）。９２４において、それぞれ受信及び送信に起因して、ノードｋのバッファ及びノードｊ＊のその関連するバッファを更新する。
【０１０３】
図１０は、本開示の実施形態による、代替的なノードを使用して実施することができる、図１Ａ、図１Ｂ及び図１Ｃの方法を示すブロック図である。複数のノードの各ノードはシンクノード１０１１とともに、プロセッサ１０４０、コンピュータ可読メモリ１０１２、記憶装置１０５８、並びにディスプレイ１０５２及びキーボード１０５１を含むユーザユーザインターフェース１０４９を備えることができ、それらは、バス１０５６を通して接続される。例えば、プロセッサ１０４０及びコンピュータ可読メモリ１０１２と通信するユーザユーザインターフェース１０４９は、ユーザユーザによるユーザインターフェース１０５７の表面、キーボード表面からの入力を受信すると、データを入手し、コンピュータ可読メモリ１０１２内に記憶する。
【０１０４】
メモリ１０１２は、プロセッサによって実行可能な命令と、履歴データと、本開示の方法及びシステムによって利用することができる任意のデータとを記憶することができることが意図されている。プロセッサ１０４０は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、又は任意の数の他の構成体とすることができる。プロセッサ１０４０は、バス１０５６を通じて１つ以上の入力デバイス及び出力デバイスに接続することができる。メモリ１０１２は、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、又は他の任意の適したメモリシステムを含むことができる。
【０１０５】
図１０を更に参照すると、記憶デバイス１０５８は、プロセッサによって用いられる補助データ及び／又はソフトウェアモジュールを記憶するように構成することができる。例えば、記憶デバイス１０５８は、履歴データと、本開示に関して上述したような他の関連したデータとを記憶することができる。さらに又は代替的に、記憶デバイス１０５８は、本開示の開示したネットワークと同様の履歴ネットワークデータと同様の履歴データを記憶することができる。記憶デバイス１０５８は、ハードドライブ、光ドライブ、サムドライブ、ドライブのアレイ、又はそれらの任意の組合せを含むことができる。
【０１０６】
システムは、任意選択で、バス１０５６を通じて、システムをディスプレイデバイス（図示せず）に接続するように構成されたディスプレイインターフェース（図示せず）にリンクすることができ、ディスプレイデバイスは、とりわけ、コンピュータモニター、カメラ、テレビ、プロジェクター、又はモバイルデバイスを含むことができる。
【０１０７】
ノード１０１１は、用途に応じて、電力源１０５４を備えることができ、電力源１０５４は、任意選択でノード１０１１の外部に配置されてもよい。バス１０５６を通じて、ディスプレイデバイス１０４８に接続するように構成されたユーザ入力インターフェース１０５７をリンクすることができ、ディスプレイデバイス１０４８は、とりわけ、コンピュータモニター、カメラ、テレビ、プロジェクター、又はモバイルデバイスを含むことができる。プリンターインターフェース１０５９も、バス１０５６を通じて接続することができ、印刷デバイス１０３２に接続するように構成することができる。印刷デバイス１０３２は、とりわけ、液体インクジェットプリンター、固体インクプリンター、大規模商用プリンター、感熱式プリンター、ＵＶプリンター、又は昇華型プリンターを含むことができる。ネットワークインターフェースコントローラー（ＮＩＣ）１０３４は、バス１０５６を通じてネットワーク１０３６に接続するように構成され、とりわけ、データ又は他のデータは、ノード１０１１の外部の第三者ディスプレイデバイス、第三者画像デバイス、及び／又は第三者印刷デバイス上にレンダリングすることができる。
【０１０８】
図１０を更に参照すると、とりわけ、データ又は他のデータは、ネットワーク１０３６の通信チャネルを介して送信することができ、及び／又は、記憶及び／又は更なる処理のために記憶システム１０５８内に記憶することができる。さらに、データ又は他のデータは、受信機１０４６（又は外部受信機１０３８）から無線又は配線接続で受信することもできるし、送信機１０４７（又は外部送信機１０３９）を介して無線又は配線接続で送信することもでき、受信機１０４６及び送信機１０４７は、ともにバス１０５６を通じて接続されている。さらに、バス１０５６を介してノード１０１１にＧＰＳ１００１を接続することができる。ノード１０１１は、入力インターフェース１００８を介して外部検知デバイス１０４４及び外部入力／出力デバイス１０４１に接続することができる。ノード１０１１は、他の外部コンピュータ１０４２に接続することができる。出力インターフェース１００９は、プロセッサ１０４０からの処理データを出力するのに用いることができる。
【０１０９】
上述した本開示の実施形態は、数多くの方法のうちの任意のもので実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施することができる。請求項の要素を修飾する、特許請求の範囲における「第１」、「第２」等の序数の使用は、それ自体で、或る請求項の要素の別の請求項の要素に対する優先順位も、優位性も、順序も暗示するものでもなければ、方法の動作が実行される時間的な順序も暗示するものでもなく、請求項の要素を区別するために、単に、或る特定の名称を有する或る請求項の要素を、同じ（序数の用語の使用を除く）名称を有する別の要素と区別するラベルとして用いられているにすぎない。
【図１Ａ】
0006749505.tif 000018
【図１Ｂ】
0006749505.tif 000019
【図１Ｃ】
0006749505.tif 000020
【図２Ａ】
0006749505.tif 000021
【図２Ｂ】
0006749505.tif 000022
【図３】
0006749505.tif 000023
【図４Ａ】
0006749505.tif 000024
【図４Ｂ】
0006749505.tif 000025
【図４Ｃ】
0006749505.tif 000026
【図５】
0006749505.tif 000027
【図６Ａ】
0006749505.tif 000028
【図６Ｂ】
0006749505.tif 000029
【図６Ｃ】
0006749505.tif 000030
【図７】
0006749505.tif 000031
【図８Ａ】
0006749505.tif 000032
【図８Ｂ】
0006749505.tif 000033
【図９Ａ】
0006749505.tif 000034
【図９Ｂ】
0006749505.tif 000035
【図１０】
0006749505.tif 000036