(57)【要約】      （修正有）【課題】ネットワークコントローラを含むシステム及び方法を提供する。【解決手段】指向性ポイントツーポイントネットワークにおいて、ネットワークコントローラは、情報をネットワークのノードから受信する。ノードは、別のノードに対して運動している１つのノードを含み、ネットワーク内の利用可能なノード及び可能なリンクを表わすテーブルを情報に基づいて生成し、ネットワークのトポロジーをテーブルに基づいて決定し、クライアントデータ情報をクライアントデバイスから受信し、トポロジーに関するフローをクライアントデータ情報に基づいて決定する。各フローは、ネットワークを通るルーチィング経路に関する１つ以上の要件を含む。ネットワークコントローラはさらに、トポロジーに関するネットワーク構成をフローに基づいて生成し、命令をネットワークのノードに送信して、ネットワーク構成を実現してクライアントデータを送信する。【選択図】図８
2022003816.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
情報をネットワークの複数のノードから受信することであって、前記複数のノードが第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、前記受信した情報に基づいて生成することと、
所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を１つ以上のクライアントデバイスから受信することと、
前記決定したトポロジーに関する複数のフローを、前記クライアントデータ情報に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する１つ以上の要件を含む、決定することと、
前記決定したトポロジーに関するネットワーク構成を、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記生成したネットワーク構成を実現してクライアントデータを前記所定の時点で送信することと、を行うように構成されている、システム。
【請求項２】
前記複数のノードをさらに備える、請求項１に記載のシステム。
【請求項３】
前記複数のノードは、１つ以上の地上局と、１つ以上の高高度プラットフォームと、を含む、請求項１に記載のシステム。
【請求項４】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項１に記載のシステム。
【請求項５】
前記テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含む、スケジューリングされた時刻または時刻フレームを含む、請求項１に記載のシステム。
【請求項６】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記ネットワークコントローラは、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記決定したトポロジーに関する前記複数のフローを決定するように構成されている、請求項１に記載のシステム。
【請求項７】
前記ネットワーク構成は、１つ以上のルーティング経路を含み、各ルーティング経路は、前記複数のフローのうち１つのフローの前記１つ以上の要件を満たす、請求項１に記載のシステム。
【請求項８】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードに、１つ以上のトランシーバを前記１つ以上のルーティング経路に基づいて操作させる、請求項７に記載のシステム。
【請求項９】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードのうち少なくとも１つのノードに、ルーティングテーブルを前記１つ以上のルーティング経路に従って更新させる、請求項７に記載のシステム。
【請求項１０】
前記ネットワークコントローラは、一連のネットワーク構成、および前記一連のネットワーク構成に関するスケジュールを生成するようにさらに構成されている、請求項１に記載のシステム。
【請求項１１】
前記ネットワークコントローラは、
前記ネットワーク内のノードペア間の第２の複数のフローを、第２の時点に関する前記ネットワークの第２のトポロジーに基づいて決定することであって、前記ノードペアの前記ノードの各ノードが前記ネットワークの外側の前記１つ以上のクライアントデバイスと通信することができる、決定することと、
メッセージを前記１つ以上のクライアントデバイスの第１のクライアントデバイスに送信することであって、前記メッセージが、前記第２の複数のフロー、および第２のクライアントデータ情報に対する要求を含む、送信することと、
前記第２のクライアントデータ情報を含む応答を前記第１のクライアントデバイスから受信することと、
第２のネットワーク構成を、前記第２の複数のフロー、および前記第２のクライアントデータ情報に基づいて生成することと、を行うようにさらに構成されている、請求項１に記載のシステム。
【請求項１２】
前記ネットワークコントローラは、クライアントデータを送信する時刻が所定の時点であることを、前記クライアントデータ情報および前記ネットワークの前記決定したトポロジーを使用して前記所定の時点で判断するようにさらに構成されている、請求項１に記載のシステム。
【請求項１３】
方法であって、
ネットワークのネットワークコントローラにより、情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワークコントローラにより、前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを前記受信した情報に基づいて生成することと、
前記ネットワークコントローラにより、所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、クライアントデータ情報を１つ以上のクライアントデバイスから受信することと、
前記ネットワークコントローラにより、前記決定したトポロジーに関する複数のフローを前記クライアントデータ情報に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する１つ以上の要件を含む、決定することと、
前記ネットワークコントローラにより、前記決定したトポロジーに関するネットワーク構成を、前記決定した複数のフローに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、前記生成したネットワーク構成を実現してクライアントデータを前記所定の時点で送信することと、を含む、方法。
【請求項１４】
前記テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む、請求項１３に記載の方法。
【請求項１５】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記方法は、前記ネットワークコントローラにより、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記決定したトポロジーに関する前記複数のフローを決定することをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記ネットワーク構成は、１つ以上のルーティング経路を含み、各ルーティング経路は、前記複数のフローのうち１つのフローの前記１つ以上の要件を満たす、請求項１３に記載の方法。
【請求項１７】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードに、１つ以上のトランシーバを前記１つ以上のルーティング経路に基づいて操作させる、請求項１６に記載の方法。
【請求項１８】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードのうち少なくとも１つのノードに、ルーティングテーブルを前記１つ以上のルーティング経路に従って更新させる、請求項１６に記載の方法。
【請求項１９】
前記ネットワークコントローラは、一連のネットワーク構成、および前記一連のネットワーク構成に関するスケジュールを生成するようにさらに構成されている、請求項１６に記載の方法。
【請求項２０】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項１３に記載の方法。
【請求項２１】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
情報をネットワークの複数のノードから受信することであって、前記複数のノードが第２のノードに対して運動している第１のノードを含む、受信することと、
ノード、各ノードにおいて利用可能なストレージ、および前記ネットワーク内の可能なリンクを表わすテーブルを、所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークの一連のトポロジーを前記所定の期間にわたって前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を１つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する複数のフローを、少なくとも前記データ量および各ノードで前記利用可能なストレージに基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する１つ以上の要件を含む、決定することと、
前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を行うように構成されている、システム。
【請求項２２】
前記複数のノードをさらに備える、請求項２１に記載のシステム。
【請求項２３】
前記複数のノードは、１つ以上の地上局と、１つ以上の高高度プラットフォームと、を含む、請求項２１に記載のシステム。
【請求項２４】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項２１に記載のシステム。
【請求項２５】
ネットワーク構成の前記スケジュールは、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第２のノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記第１のルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項２１に記載のシステム。
【請求項２６】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記ルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項２５に記載のシステム。
【請求項２７】
前記第２のネットワーク構成は、前記第２のノードと前記ルーティング経路の前記第２の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項２６に記載のシステム。
【請求項２８】
前記第２のノードは、前記ルーティング経路の前記第２の部分の前記隣接ホップに対して運動している、請求項２７に記載のシステム。
【請求項２９】
前記ネットワークコントローラは、
前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないと判断することと、
前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないとの判断に応答して、ネットワーク構成の前記スケジュールを生成することと、を行うようにさらに構成されている、請求項２５に記載のシステム。
【請求項３０】
前記ネットワークコントローラは、前記決定した一連のトポロジーに関する複数のフローを、各ノードにおける少なくとも前記データ量および前記利用可能なストレージに基づいて、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノードを特定することにより、かつ
前記所定のノードを使用して前記クライアントデータを所定の期間にわたって前記少なくとも１つのフローに格納する前記所定のノードを含む少なくとも１つのフローを決定することにより、決定するように構成されている、請求項２１に記載のシステム。
【請求項３１】
方法であって、
ネットワークのネットワークコントローラにより、情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワークコントローラにより、前記ネットワーク内のノード、各ノードのストレージ容量、および可能なリンクを表わすテーブルを所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークコントローラにより、前記ネットワークの一連のトポロジーを前記所定の期間にわたって、前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、クライアントデータ情報を１つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記ネットワークコントローラにより、前記決定した一連のトポロジーに関する複数のフローを各ノードの少なくとも前記データ量および前記ストレージ容量に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する１つ以上の要件を含む、決定することと、
前記ネットワークコントローラにより、前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、方法。
【請求項３２】
ネットワーク構成の前記スケジュールは、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第２のノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記ルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項３１に記載の方法。
【請求項３３】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記ルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項３２に記載の方法。
【請求項３４】
前記第２のネットワーク構成は、前記第２のノードと前記ルーティング経路の前記第２の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項３３に記載の方法。
【請求項３５】
前記第２のノードは、前記ルーティング経路の前記第２の部分の前記隣接ホップに対して運動している、請求項３４に記載の方法。
【請求項３６】
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないと判断することと、
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないとの判断に応答して、ネットワーク構成の前記スケジュールを生成することと、をさらに含む、請求項３２に記載の方法。
【請求項３７】
前記決定した一連のトポロジーに関する複数のフローを、各ノードにおける少なくとも前記データ量および前記利用可能なストレージに基づいて決定することは、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノードを特定することと、
前記所定のノードを使用して前記クライアントデータを所定の期間にわたって前記少なくとも１つのフローに格納する前記所定のノードを含む少なくとも１つのフローを決定することと、を含む、請求項３１に記載の方法。
【請求項３８】
プログラムのコンピュータ可読命令の格納先である非一時的な有形のコンピュータ可読記憶媒体であって、前記命令は、ネットワークのネットワークコントローラにより実行されると、前記ネットワークコントローラに方法を実行させ、前記方法は、
情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワーク内のノード、各ノードのストレージ容量、および可能なリンクを表わすテーブルを所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークの一連のトポロジーを、前記所定の期間にわたって前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を１つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する複数のフローを、少なくとも各ノードの前記データ量および前記ストレージ容量に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する１つ以上の要件を含む、決定することと、
前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、媒体。
【請求項３９】
ネットワーク構成の前記スケジュールは、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第の２ノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記ルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項３８に記載の媒体。
【請求項４０】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記第１のルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項３９に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年４月２６日に出願された米国特許出願第１５／４９７，７３８号の継続出願、および「Ｔｅｍｐｏｒｏｓｐａｔｉａｌ  Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｒ  ＮＧＳＯ  Ｓａｔｅｌｌｉｔｅ  Ｎｅｔｗｏｒｋｓ」と題する２０１７年５月２６日に出願された米国仮特許出願第６２／５１１，３７７号の出願日の利益を主張する２０１８年４月１７日に出願された米国特許出願第１５／９５４，９２２号の継続出願であり、これらの継続出願の開示内容が参照により本明細書に全て組み込まれる。
【背景技術】
【０００２】
情報は、航空宇宙ネットワークおよび他のモバイルネットワークのような指向性ポイントツーポイントネットワークを介して送信することができる。このようなネットワークでは、リンクをノードペア間に、各ノードペアのトランシーバを互いに向けることにより形成することができる。幾つかの実現形態では、ノードは、地球に対して運動している非静止衛星軌道（ＮＧＳＯ）衛星または他の高高度プラットフォーム（ＨＡＰ）を含むことができる。
【発明の概要】
【０００３】
本開示の態様はシステムを提供する。システムは、情報をネットワークの複数のノードから受信するように構成されたネットワークコントローラを含む。複数のノードは、第２のノードに対して運動している第１のノードを含む。ネットワークコントローラはまた、ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、受信した情報に基づいて生成し、所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定し、クライアントデータ情報を１つ以上のクライアントデバイスから受信し、決定したトポロジーに関する複数のフローを、クライアントデータ情報に基づいて決定するように構成されている。複数のフローの各フローは、ネットワークを通るルーティング経路に関する１つ以上の要件を含む。ネットワークコントローラは、決定したトポロジーに関するネットワーク構成を、決定した複数のフローに基づいて生成し、命令をネットワークの複数のノードに送信して、生成したネットワーク構成を実現して、クライアントデータを所定の時点で送信するようにさらに構成されている。
【０００４】
１つの例示的な実現形態では、システムはまた、複数のノードを含む。別の実施形態では、複数のノードは、１つ以上の地上局と、１つ以上の高高度プラットフォームと、を含む。複数のノードは、追加的にまたは代替的に、自由空間光通信を実行するように構成されている。さらなる実施形態では、テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む。
【０００５】
追加的にまたは代替的に、クライアントデータ情報は、過去のクライアントデータトレンドを含み、ネットワークコントローラは、クライアントデータ情報を過去のクライアントデータトレンドに基づいて予測することにより、決定したトポロジーに関する複数のフローを決定するように構成されている。別の実現形態では、ネットワーク構成は、１つ以上のルーティング経路を含む。各ルーティング経路は、複数のフローのうち１つのフローの１つ以上の要件を満たす。この例では、ネットワークの複数のノードに送信される命令により、複数のノードに、１つ以上のトランシーバを１つ以上のルーティング経路に基づいて操作させる、また、この例では、代替的に、ネットワークの複数のノードに送信される命令により、複数のノードのうち少なくとも１つのノードに、ルーティングテーブルを１つ以上のルーティング経路に従って更新させる。
【０００６】
代替的に、ネットワークコントローラはまた、一連のネットワーク構成、および一連のネットワーク構成に関するスケジュールを生成するように構成されている。他の実施形態では、ネットワークコントローラはまた、任意に、ネットワーク内のノードペア間の第２の複数のフローを、第２の時点に関するネットワークの第２のトポロジーに基づいて決定し、ノードペアのノードの各ノードは、ネットワークの外側の１つ以上のクライアントデバイスと通信することができ、メッセージを１つ以上のクライアントデバイスの第１のクライアントデバイスに送信することができ、メッセージは、第２の複数のフロー、および第２のクライアントデータ情報に対する要求を含み、第２のクライアントデータ情報を含む応答を第１のクライアントデバイスから受信し、第２のネットワーク構成を、第２の複数のフロー、かつ第２のクライアントデータ情報に基づいて生成するように構成されている。さらなる実施形態では、ネットワークコントローラはまた、クライアントデータを送信する時刻が所定の時点であることを、クライアントデータ情報およびネットワークの決定したトポロジーを使用して所定の時点で判断するように構成されている。
【０００７】
本開示の態様は方法を提供する。方法は、ネットワークのネットワークコントローラにより、情報をネットワークの複数のノードから受信することを含む。複数のノードは、第２のノードに対して運動している第１のノードを含む。方法はまた、ネットワークコントローラにより、ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、受信した情報に基づいて生成することと、ネットワークコントローラにより、所定の時点に関するネットワークのトポロジーを、生成したテーブルに基づいて決定することと、ネットワークコントローラにより、クライアントデータ情報を１つ以上のクライアントデバイスから受信することと、ネットワークコントローラにより、決定したトポロジーに関する複数のフローをクライアントデータ情報に基づいて決定することと、を含む。複数のフローの各フローは、ネットワークを通るルーティング経路に関する１つ以上の要件を含む。さらに、方法は、ネットワークコントローラにより、決定したトポロジーに関するネットワーク構成を、決定した複数のフローに基づいて生成することと、ネットワークコントローラにより、命令をネットワークの複数のノードに送信して、生成したネットワーク構成を実現してクライアントデータを所定の時点で送信することと、を含む。
【０００８】
１つの例示的な実施形態では、テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む。別の実施形態では、クライアントデータ情報は、過去のクライアントデータトレンドを含み、方法はまた、ネットワークコントローラにより、クライアントデータ情報を過去のクライアントデータトレンドに基づいて予測することにより、決定したトポロジーに関する複数のフローを決定することを含む。
【０００９】
追加的にまたは代替的に、ネットワーク構成は、１つ以上のルーティング経路を含む。各ルーティング経路は、この例では、複数のフローのうち１つのフローの１つ以上の要件を満たす。また、この例では、任意に、ネットワークの複数のノードに送信される命令により、複数のノードに、１つ以上のトランシーバを１つ以上のルーティング経路に基づいて操作させる。代替的にまたは追加的に、ネットワークの複数のノードに送信される命令により、複数のノードのうち少なくとも１つのノードに、ルーティングテーブルを１つ以上のルーティング経路に従って更新させる。加えて、ネットワークコントローラはまた、任意に、一連のネットワーク構成、および一連のネットワーク構成に関するスケジュールを生成するように構成されている。さらなる実施形態では、複数のノードは、自由空間光通信を実行するように構成されている。
【図面の簡単な説明】
【００１０】
【図１】本開示の態様による例示的な指向性ポイントツーポイントネットワーク１００の挿絵図である。
【図２】本開示の態様による図１に示すネットワーク１００の一部２００の機能図である。
【図３】本開示の態様によるネットワークコントローラ３００の機能図である。
【図４Ａ】本開示の態様による例示的なテーブル４００Ａである。
【図４Ｂ】本開示の態様による別の例示的なテーブル４００Ｂを示している。
【図４Ｃ】本開示の態様による別の例示的なテーブル４００Ｂを示している。
【図５】本開示の態様による方法のフロー図５００である。
【図６】本開示の態様による図１に示すネットワーク１００のトポロジー６００の機能図である。
【図７】本開示の態様による図１に示すネットワーク１００の別のトポロジー７００の機能図である。
【図８】本開示の態様による図６に示すトポロジー６００内で実現することができるルーティング経路８００の機能図である。
【図９】本開示の態様による方法のフロー図９００である。
【図１０】本開示の態様による図１に示すネットワーク１００のトポロジー１０００の機能図である。
【図１１】本開示の態様による図１に示すネットワーク１００の別のトポロジー１１００の機能図である。
【図１２Ａ】本開示の態様による図１０に示すトポロジー１０００内で実現することができるルーティング経路の第１の構成部分１２００Ａの機能図である。
【図１２Ｂ】本開示の態様による図１１に示すトポロジー１１００内で実現することができるルーティング経路の第２の構成部分８００Ｂの機能図である。
【発明を実施するための形態】
【００１１】
概要
このテクノロジーは、航空宇宙通信ネットワークにおいて使用されるように構成された時空間ソフトウェア定義ネットワーキング（ＴＳ−ＳＤＮ）オペレーティングシステムに関する。特に、ＴＳ−ＳＤＮオペレーティングシステムは、非静止衛星軌道（ＮＧＳＯ）衛星または他の高高度プラットフォーム（ＨＡＰ）をノードとして含む航空宇宙通信ネットワークにおいて使用され得る。ＴＳ−ＳＤＮオペレーティングシステムは、ネットワーク層およびスイッチング機能を制御、監視、および再構成するサービスおよびアプリケーションをスケジューリングおよび実現することができる。
【００１２】
動作中、ＴＳ−ＳＤＮコントローラは、例えば自由空間光通信（ＦＳＯＣ）用に構成されたＮＧＳＯ衛星のような利用可能なノード、および航空宇宙ネットワークを介して利用可能なルートまたはフローのリストを定期的に更新することができる。リストは、利用可能なノードおよび利用可能なフローのスケジュールを含むことができる。ノードおよびフローの利用可能性は、移動しているノードの軌道の予測に少なくとも基づいている可能性がある。所定の領域から全ての他の利用可能な領域への航空宇宙ネットワークを介した利用可能なフローは、所定の領域内のソフトウェア定義ネットワーク（ＳＤＮ）対応ルータにより広告され得る。ＴＳ−ＳＤＮコントローラは、ＦＳＯＣ端末のタスキングを自動的にスケジューリングすることができ、当該スケジュールをＦＳＯＣ端末に送信して、航空宇宙ネットワークに対する変更をスケジュールに従って同期させることができる。
【００１３】
例示的なシステム
図１は、例示的な指向性ポイントツーポイントネットワーク１００のブロック図である。ネットワーク１００は、様々な地上デバイスおよび空中デバイスに搭載されるノードからなる指向性ポイントツーポイントコンピュータネットワークであり、ノードのうち幾つかのノードは、ネットワーク１００内の他のノードに対する位置を経時的に変えることができる。例えば、ネットワーク１００は、２つの地上データセンター１０５ａおよび１０５ｂ（データセンター１０５と総称される）の各データセンターに関連するノード、２つの地上局１０７ａおよび１０７ｂ（地上局１０７と総称される）の各地上局に関連するノード、および４つの空中高高度プラットフォーム（ＨＡＰ）１１０ａ〜１１０ｄ（ＨＡＰ１１０と総称される）の各空中高高度プラットフォームに関連するノードを含む。図示のように、ＨＡＰ１１０ａは飛行船であり、ＨＡＰ１１０ｂは飛行機であり、ＨＡＰ１１０ｃは気球であり、ＨＡＰ１１０ｄは衛星である。幾つかの実施形態では、ネットワーク１００内のノードは、ＦＳＯＣを実行するように装備されて、ネットワーク１００をＦＳＯＣネットワークとすることができる。追加的にまたは代替的に、ネットワーク１００内のノードは、自由空間を伝搬することができる無線周波数信号または他の通信信号を介して通信するように装備され得る。ノードペア間に図示される矢印は、ノードの間の可能な通信リンク１２０、１２２、１３０〜１３７を表わしている。図１に示すネットワーク１００は例示に過ぎず、幾つかの実現形態では、ネットワーク１００は追加ノードまたは異なるノードを含むことができる。例えば、幾つかの実現形態では、ネットワーク１００は、気球、飛行船、飛行機、無人航空機（ＵＡＶ）、衛星、または任意の他の形態の高高度プラットフォームとすることができる追加ＨＡＰを含むことができる。
【００１４】
幾つかの実現形態では、ネットワーク１００は、携帯電話、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルデバイス、またはタブレットコンピュータのようなクライアントデバイス用のアクセスネットワークとして機能することができる。ネットワーク１００は、インターネットのような、より大規模なネットワークに接続することもでき、クライアントデバイスから、より大規模なコンピュータネットワーク上に格納される、またはより大規模なコンピュータネットワークを介して供給されるリソースへのアクセスが可能となるように構成することができる。幾つかの実現形態では、ＨＡＰ１１０は、ｅＮｏｄｅＢ基地局のようなセルラーネットワークもしくは他のモバイルネットワーク、またはＷｉＭＡＸもしくはＵＭＴＳアクセスポイントのような他の無線アクセスポイントに関連する無線トランシーバを含むことができる。一体となって、ＨＡＰ１１０は、無線アクセスネットワークの全て、または一部を形成することができる。ＨＡＰ１１０は、データセンター１０５に、例えばバックボーンネットワークリンクまたはサードパーティにより運用される中継ネットワークを介して接続することができる。データセンター１０５は、ネットワーク１００の構成要素を監視または制御するリモートユーザおよびシステムによりアクセスされるアプリケーションをホストするサーバを含むことができる。ＨＡＰ１１０は、無線アクセスをユーザに対して可能とし、ユーザ要求をデータセンター１０５にルーティングすることができ、応答をユーザにバックボーンネットワークリンクを介して返すことができる。
【００１５】
図２に示すように、地上局１０７およびＨＡＰ１１０のような各ノードは、リンク１３０〜１３７のような１つ以上のリンクを所定のＨＡＰ１１０と別ノードとの間にネットワーク内で作成するように構成された１つ以上のトランシーバを含むことができる。ＨＡＰ１１０ａを参照すると、ネットワーク１００の地上局１０７およびＨＡＰ１１０のようなノードの各ノードは、１つ以上のプロセッサ２１０、メモリ２１２、および１つ以上のトランシーバ２２０を含むことができる。明瞭性および簡潔性を期して、地上局１０７ａおよびＨＡＰ１１０ａ、１１０ｄのみが図２に図示されている。しかしながら、ネットワーク内の他の地上局およびＨＡＰは、地上局１０７またはＨＡＰＳ１１０ａ、１１０ｄと同じまたは同様の構成を有することができる。
【００１６】
１つ以上のプロセッサ２１０は、市販のＣＰＵのような任意の従来のプロセッサとすることができる。代替的に、１つ以上のプロセッサは、特定用途向け集積回路（ＡＳＩＣ）のような専用デバイスとするか、またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような他のハードウェアベースのプロセッサとすることができる。図２は、１つ以上のプロセッサ２１０およびメモリ２１２を同じブロック内にあるものとして機能的に示しているが、１つ以上のプロセッサ２１０およびメモリ２１２は、実際には、同じ物理的ハウジング内に格納されてもよく、または格納されていなくてもよいプロセッサおよびメモリを備えることができることを理解できるであろう。したがって、プロセッサまたはコンピュータに対する言及は、並列に動作してもよく、または動作しなくてもよいプロセッサまたはコンピュータもしくはメモリの集合体に対する言及を含むと理解されるであろう。
【００１７】
メモリ２１２は、１つ以上のプロセッサ２１０によりアクセス可能な情報を格納し、情報は、１つ以上のプロセッサ２１０により実行され得るデータ２１４および命令２１６を含む。メモリは、プロセッサによりアクセス可能な情報を格納することができる任意のタイプとすることができ、ハードドライブ、メモリカード、ＲＯＭ、ＲＡＭ、ＤＶＤ、または他の光ディスクのようなコンピュータ可読媒体、および他の書き込み可能メモリおよびリードオンリメモリを含むことができる。システムおよび方法は、前出の異なる組み合わせを含むことができ、これにより、データ２１４および命令２１６の異なる部分が異なるタイプの媒体に格納される。ＨＡＰ１１０ａのメモリ２１２のような各ノードのメモリでは、各ノードで受信される信号をどのようにしてルーティングまたは送信すべきかを示すルーティングテーブルを格納することができる。例えば、メモリ２１２に格納されているルーティングテーブルは、地上局１０７ａから受信される信号をＨＡＰ１１０ｄにルーティングすべきであることを示すことができる。
【００１８】
データ２１４は、１つ以上のプロセッサ２１０により命令２１６に従って取り出すことができる、格納することができる、または修正することができる。例えば、システムおよび方法は、特定のデータ構造により決して限定されることはないが、データ２１４は、コンピュータレジスタ、リレーショナルデータベースに、複数の異なるフィールドおよびレコード、ＸＭＬ文書またはフラットファイルを有するテーブルとして格納することができる。データ２１４はまた、これらには限定されないが、バイナリ値またはユニコードのような任意のコンピュータ可読形式でフォーマット化されるようにしてもよい。単なる例として、画像データは、圧縮される、または圧縮されない形式、ロスレス（例えば、ＢＭＰ）またはロッシー（例えば、ＪＰＥＧ）、およびビットマップまたはベクターベース（例えば、ＳＶＧ）の形式に従って格納されるピクセルグリッドから構成されたビットマップとして格納することができるのみならず、グラフィックスを描画するコンピュータ命令として格納することができる。データ２１４は、数字、説明文、専用コード、同じメモリまたは異なるメモリの他の領域（他のネットワークロケーションを含む）に格納されているデータへの参照、または関連データを計算する関数により使用される情報への参照のような関連情報を特定するために十分な任意の情報を含むことができる。
【００１９】
命令２１６は、１つ以上のプロセッサ２１０により直接実行される（マシンコードのような）または間接的に実行される（スクリプトのような）任意の命令セットとすることができる。例えば、命令２１６は、コンピュータ可読媒体上のコンピュータコードとして格納することができる。この点に関して、「ｉｎｓｔｒｕｃｔｉｏｎｓ（命令）」および「ｐｒｏｇｒａｍｓ（プログラム）」という用語は、本明細書では同じ意味に使用することができる。命令２１６は、１つ以上のプロセッサ２１０により直接処理されるオブジェクトコード形式で格納することができる、または要求に応じて解釈されるか、または前もってコンパイルされる独立ソースコードモジュールのスクリプトまたは集合を含む任意の他のコンピュータ言語で格納することができる。命令２１６の関数、方法、およびルーチンは、以下により詳細に説明される。
【００２０】
１つ以上のトランシーバ２２０は、所望の方向に向けるように制御または操作することができるアクチュエータに取り付けることができる。ＨＡＰ１１０ａに関連するノード、およびＨＡＰ１１０ｄに関連するノードのような２つのノードの間のリンクを形成するために、それぞれのノードのトランシーバを制御して互いの方向に向けるようにして、データをノードの間で送受信することができるようにする。幾つかの実現形態では、各トランシーバにより送信される信号の電力は、それぞれのノードの１つ以上のプロセッサにより制御して、ネットワーク１００内のリンク１３０〜１３７の形成を容易にすることもできる（例えば、図１参照）。例えば、比較的大きな距離だけ離れたノードは、より高い電力で動作して、２つのノードを分離する距離を経て発生する信号対雑音比の低下を補償するように構成することができる。互いにより近くなるような間隔のノードを制御して、比較的低い電力で動作して電力を節約することができる。
【００２１】
幾つかの実現形態では、ネットワーク１００は、図３に図示されるネットワークコントローラ３００のようなＳＤＮコントローラにより制御されるＳＤＮとすることができる。ネットワークコントローラ３００は、ネットワークノードのうち１つのネットワークノードに配置するか、または例えば、データセンター１０５のうちの１つのデータセンター内にあるような別のプラットフォームに配置することができる。ネットワーク１００のノードは、１つ以上のトランシーバ２２０のような操作可能なトランシーバを使用して互いに通信するように構成することができる。ＨＡＰ１１０が互いに対して、およびデータセンター１０５および地上局１０７に対して経時的に移動すると、図１のブロック図に示されるリンクの幾つかのリンクは、実現不可能になる可能性がある。例えば、地上局１０７ａとＨＡＰ１１０ａとの間のリンク１３０は、ＨＡＰ１１０ａの経路によりＨＡＰ１１０ａが、ＨＡＰ１１０ａが地上局１０７ａの範囲外にある位置に至るようになる、または地球がＨＡＰ１１０ａと地上局１０７ａとの間に位置付けられる位置に至るようになる場合に実現できない可能性がある。したがって、ＨＡＰ１１０の継続的な移動により、ネットワーク１００のトポロジーは、接続性を維持し、決定されたネットワークフローを満たすために、定期的（すなわち、周期的）または不定期的な再構成を必要とする可能性がある。
【００２２】
図３は、ネットワークコントローラ３００のブロック図３００である。ネットワークコントローラ３００は、制御メッセージをネットワーク１００に送信してネットワーク１００のトポロジーを構成し、ルーティング情報をネットワーク１００のノード１０７、１１０に渡し、ネットワーク１００のトポロジーの変更をスケジューリングしてクライアントデータを送信するように構成することができる。図３に示すように、ネットワークコントローラ３００は、１つ以上のプロセッサ３１０、メモリ３２０、および通信システム３４０を含むことができる。１つ以上のプロセッサ３１０は、上に説明した１つ以上のプロセッサ２１０と同様とすることができる。
【００２３】
メモリ３２０は、１つ以上のプロセッサ３１０によりアクセス可能な情報を格納することができ、プロセッサ３１０により実行することができるデータ３２２および命令３２４を含む。メモリ３２０、データ３２２、および命令３２４は、上に説明したメモリ２１２、データ２１４、および命令２１６と同様に構成することができる。データ３２２は、図４Ａ、図４Ｂ、および図４Ｃのテーブル４００Ａおよび４００Ｂのような、所定の時刻または時刻フレームにおけるネットワーク１００内の利用可能なノードおよび可能なリンクの全てを表わすテーブルを含むことができる。テーブルは、ネットワーク１００内のあらゆるノードおよびリンクに関する列と、時刻または時刻フレームに関する行と、を有することができる。幾つかの場合では、列および行が逆になる可能性がある。テーブルは、各ノードおよび各リンクに関して、ノードまたはリンクが利用可能なスケジューリングされた時刻または時刻フレームを格納することもできる。代替的に、グラフまたは他の形式の情報体系を使用することができる。命令３２４は、トポロジーおよびルーティングマネージャモジュール３２６、トポロジー決定モジュール３２８、フロー決定モジュール３３０、ソルバーモジュール３３２、飛行制御モジュール３３４、およびスケジューリングモジュール３３６を含むことができる。
【００２４】
図３に戻ると、通信システム３４０は、ネットワーク１００のノード１０７、１１０と通信するだけでなく、１つ以上のクライアントデバイス３５０と通信するように構成することができる。幾つかの実施形態では、通信システム３４０は、ノード１０７、１１０の各ノードのＣＤＰＩエージェントと通信するように構成されたデータプレーン間インターフェース（ＣＤＰＩ）ドライバに対するコントロールを含む。加えて、ネットワークコントローラ３００の通信システム３４０は、１つ以上のＳＤＮアプリケーションに関連する各クライアントデバイス３５０のＮＢＩドライバと通信するように構成された１つ以上のノースバウンドインターフェース（ＮＢＩ）エージェントを含むことができる。通信システム３４０は、任意にまたは代替的に、信号を無線周波数、光周波数、光ファイバ、ケーブル、または他の通信手段を介して、ネットワーク１００内のノード１０７、１１０および１つ以上のクライアントデバイス３５０に対して送信および受信するように構成することができる。
【００２５】
各クライアントデバイス３５０は、１つ以上のプロセッサ２１０および３１０、メモリ２１２および３２０、データ２１４および３２２、命令２１６および３２４に関して上に説明したものと同様の１つ以上のプロセッサ３６０、メモリ３７０、データ３７２、および命令３７４を有するパーソナルコンピューティングデバイスまたはサーバとすることができる。パーソナルコンピューティングデバイスは、中央処理装置（ＣＰＵ）、データおよび命令を格納するメモリ（例えば、ＲＡＭおよび内蔵ハードドライブ）、電子ディスプレイ（例えば、スクリーン、小型ＬＣＤタッチスクリーン、プロジェクタ、テレビ、または情報を表示するように動作可能な任意の他の電気デバイスを有するモニタ）、ユーザ入力（例えば、マウス、キーボード、タッチスクリーン、またはマイクロホン）、カメラ、スピーカ、ネットワークインターフェースデバイス、およびこれらの要素を互いに接続するために使用される構成要素の全てのような、パーソナルコンピュータに接続して通常使用される構成要素の全てを有するパーソナルコンピュータを含むことができる。パーソナルコンピューティングデバイスは、ＰＤＡ、携帯電話などのようなモバイルデバイスを含むこともできる。実際、クライアントデバイス３５０は、命令を処理することができ、データを人間に対して、および汎用コンピュータ、ローカルストレージ機能を持たないネットワークコンピュータ、およびテレビ用のセットトップボックスを含む他のコンピュータに対して送信することができる任意のデバイスを含むことができる。幾つかの実施形態では、クライアントデバイスは、１つ以上のＳＤＮアプリケーションに関連付けることができ、１つ以上のＮＢＩドライバを有することができる。
【００２６】
図３の命令３２４のモジュールを参照すると、トポロジーおよびルーティングマネージャモジュール３２６は、１つ以上のプロセッサ３１０に、ネットワークコントローラ３００とネットワーク１００との間をインターフェース接続させることができる。トポロジーおよびルーティングマネージャモジュール３２６を使用して、１つ以上のプロセッサ３１０は、情報をネットワーク１００内のノードの各ノードから受信することができる。例えば、幾つかの実現形態では、トポロジーおよびルーティングマネージャモジュール３２６は、１つ以上のプロセッサ３１０に、各ノードの現在のロケーション、各ノードについて予測される経路、各ノードに関連する現在のリンク、および各ノードにより格納されるルーティング情報に対応する情報をネットワーク１００内の各ノード１０７、１１０から受信させることができる。各ノードから受信される情報は、気象状況、乱気流、放射線、またはノードの間のＦＳＯＣに影響を与える可能性のある他の状況に関する他のレポートを含むこともできる。また、各ノードは、１つ以上のプロセッサ３１０に、ノードの間の予期せぬ障害物、ノードにおける乱気流、または１つ以上のトランシーバの障害により発生する可能性のある、いかなるリンク障害にも対応する情報を送信することができる。
【００２７】
トポロジーおよびルーティングマネージャモジュール３２６はまた、１つ以上のプロセッサ３１０に、予測されるリンクメトリックおよび状況を受信させることができる。例えば、予測されるリンクメトリックは、ノード１０７、１１０から受信される情報に基づいて現在または将来形成される可能性のある仮想リンクに関するネットワーク性能メトリックの予測値を含むことができる。ネットワーク性能メトリックは、帯域幅容量、遅延時間、またはリンク寿命期間を含むことができ、ネットワーク１００内のノード１０７、１１０の予測される相対運動または軌道に基づかせることができる。リンク寿命期間は、リンクがネットワーク１００内で実現可能になっている期間を表わすことができる。ノード位置、予測されるノードロケーション、または予測されるリンクにおける天気予報は、１つ以上のプロセッサ３１０により、ノード１０７、１１０から、または任意に、リモートシステムから受信することもできる。
【００２８】
トポロジーおよびルーティングマネージャモジュール３２６を使用して、１つ以上のプロセッサ３１０は、ネットワーク１００から受信される情報をメモリ３２０に格納することができる。例えば、図４Ａ、図４Ｂ、および図４Ｃに図示されるテーブル４００Ａおよび４００Ｂは、ネットワーク１００内の利用可能なノードおよび可能なリンクの全てを表わし、テーブル内の特定のノードまたはリンクに関連する情報で更新することができる、または注釈を付けることができる。テーブル４００Ａまたは４００Ｂの注釈は、ネットワーク１００内の各ノードの利用可能性、各ノードの現在のロケーションおよび将来のロケーション、現在および将来予測される気象状況を示すだけでなく、ネットワーク内のノードの各ノードにおける利用可能なストレージの現在量、およびノードの各ノードにおける利用可能なストレージの将来（推定）量を示すことができる。加えて、テーブルの注釈は、特定のリンクの現在および将来の利用可能性を示すだけでなく、このようなリンクに関する現在および将来予測される帯域幅を示すことができる。リンク障害および予測される状況を注記することもでき、テーブル４００Ａまたは４００Ｂに格納することもできる。
【００２９】
トポロジー決定モジュール３２８は、１つ以上のプロセッサ３１０に、ネットワーク１００の現在または将来のトポロジーを決定させることができる。ネットワーク１００の現在のトポロジーの決定は、１つ以上のプロセッサにより、トポロジーおよびルーティングマネージャモジュール３２６を使用して受信および格納される情報に基づいて行うことができる。例えば、トポロジー決定モジュール３２８は、１つ以上のプロセッサ３１０に、各ノード１０７、１１０の現在のロケーション、各ノードペア間に形成されるリンク１３０〜１３７、およびネットワーク１００内に起こり得る全てのリンク障害に関する情報を収集させることができる。１つ以上のプロセッサ３１０は、この情報を、トポロジーおよびルーティングマネージャモジュール３２６を使用して受信することができる、またはこの情報をメモリ３２０から取り出すことができる。
【００３０】
追加情報は、トポロジー決定モジュール３２８を使用する１つ以上のプロセッサ３１０が使用して、ネットワーク１００の現在のトポロジーを決定することもできる。１つ以上のプロセッサ３１０がトポロジーおよびルーティングマネージャモジュール３２６を使用して受信する予測リンクメトリックを使用して、帯域幅、サービス品質、および現在のトポロジーで利用可能なリンクの他の特性を決定することもできる。幾つかの実現形態では、トポロジー決定モジュール３２８を使用して、１つ以上のプロセッサ３１０は、特定の時刻における、または現在時刻または現在時刻近傍の特定の時刻フレームにおけるＨＡＰ１１０のような空中ネットワークノードの飛行経路に対応する情報を、飛行制御モジュール３３４を使用して受信することもでき、現在のトポロジーの決定は、受信した飛行情報にも基づいて行うことができる。
【００３１】
ネットワーク１００の将来のトポロジーを決定するために、１つ以上のプロセッサ３１０は、将来時刻に関するロケーション情報、予測リンク状況、飛行情報、および／または天気予報を、トポロジー決定モジュール３２８を使用して収集することができる。１つ以上のプロセッサ３１０は、テーブル４００Ａまたは４００Ｂまたはメモリ３２０内の他の場所に格納されている、将来時刻における利用可能なノードおよびリンク、ロケーション情報、予測リンク状況、飛行情報、ならびに／または天気予報に関する情報にアクセスすることができる。将来時刻に関する情報は、１つ以上のプロセッサ３１０により使用されて、ノードが何処にあると予測されるかを、ならびにノードおよびリンクの利用可能性が将来時刻でどの程度であるかを判断することができる。
【００３２】
トポロジー決定モジュール３２８は、１つ以上のプロセッサ３１０に、現在または将来のトポロジーまたは他のトポロジー情報をメモリ３２０に、例えばネットワーク１００内の利用可能なノードおよび可能なリンク、ならびに各ノードまたはリンクに関連するスケジューリングされた時刻または時刻フレームの全てを表わすテーブル４００Ａまたは４００Ｂを更新することにより格納させることができる。
【００３３】
フロー決定モジュール３３０は、１つ以上のプロセッサ３１０に、ネットワーク１００内で所定の時刻または時刻フレームにおいて決定されるフローの全てを決定させることができる。所定のフローは、ネットワーク１００を通るルーティング経路に関する１つ以上の要件とすることができる。例えば、各フローは、開始局、終了ステーション、時刻フレーム、最小帯域幅、または伝送に関する他の要件を含むことができる。１つ以上のプロセッサ３１０はフローを、トポロジー決定モジュール３２８を使用して決定されるトポロジー情報および／または１つ以上のクライアントデバイス３５０のクライアントデータの特性に関する情報に基づいて決定することができる。クライアントデータ情報は、以下に説明されるスケジューリングモジュール３３６を使用する１つ以上のプロセッサ３１０により、１つ以上のクライアントデバイス３５０またはリモートシステムから受信することができる。クライアントデータ情報は、クライアントデータの送信元および宛先、送信されるクライアントデータの量、および／またはクライアントデータの送信タイミングを含むことができる。
【００３４】
フローの最小帯域幅は、利用可能なシステムリソースおよびリンク機能が与えられる場合に、１つ以上のプロセッサ３１０により事前に設定するか、または事前に決定することができる、または代替的にクライアントデータに含まれる要件に基づいて決定することができる。より大きな帯域幅は、より大量のデータを転送するフローに対応して設定することができる。１つ以上のプロセッサ３１０は、フローを開始局と宛先局との間に、所定量のクライアントデータを要求される時刻に送信することができるネットワークを介して決定することができる。幾つかの実施形態では、１つ以上のプロセッサ３１０は、決定した各フローに関するサービスクラスまたはサービス品質のような、決定したフローに関連する他の情報を決定することもできる。他の情報は、クライアントデバイスから受信される要件に基づかせることができる。
【００３５】
幾つかの実現形態では、フロー決定モジュール３３０は、１つ以上のプロセッサ３１０に、クライアントデータを１つ以上のクライアントデバイス３５０から収集させて、ネットワーク１００内の各ノードペア間に必要な合計帯域量を決定させることができる。収集したクライアントデータは、例えばメモリ３２０に格納することができる。さらに、クライアントデータは、詳細レベルで収集することができる。例えば、各ノードペアに関するネットワークデータは、サービスクラス、サービス品質、または任意の他の関連するネットワークトラフィック識別子ごとに収集することができる。フローは、関連する任意のネットワークトラフィック識別子にさらに基づいて決定することができる。
【００３６】
他の場合では、過去のクライアントデータトレンドを使用して、将来時点でのクライアントデータ量、送信元、および宛先を予測することができる。フロー決定モジュール３３０は、１つ以上のプロセッサ３１０に、クライアントデバイスに直接接続可能な全てのノードの間の複数の利用可能なフローを将来時点で決定させることができる。地上局１０７のような直接接続可能なノードは、ネットワーク１００を使用することなく、クライアントデバイスと通信することができる。各ノードペア間で予測されるクライアントデータ量を使用して、各ノードペア間の帯域幅要件を決定することができる。
【００３７】
代替的に、クライアントデータ情報がない場合、１つ以上のプロセッサ３１０は、クライアントデバイスに現在時刻または将来時刻で直接接続可能な全てのノードの間の複数の利用可能なフローを決定することができる。複数の利用可能なフローの決定は、現在または将来のトポロジーに基づかせることができる。加えて、決定は、最小限のシステム要件に基づかせることができる。
【００３８】
フロー決定モジュール３３０は、１つ以上のプロセッサ３１０に、決定したフローをメモリ３２０に格納させることができる。幾つかの例では、１つ以上のプロセッサ３１０は、テーブルにフローで注釈を付けることができる。
【００３９】
ソルバーモジュール３３２は、１つ以上のプロセッサ３１０に、ネットワーク構成を、メモリに格納されているテーブルに基づいて生成させることができる。ネットワーク構成は、決定した全てのネットワークフローを満たすことができる実現可能なネットワークトポロジーを表わすことができ、実現可能なネットワークトポロジーに使用されることになるノードおよびリンクのリスト、ならびにノードおよびリンクが使用されることになる場合のスケジュールを含むことができる。ネットワーク構成のスケジュールは、決定した全てのネットワークフローを満たすことができる実現可能な一連のネットワークトポロジーを表わすことができる。実現可能な一連のネットワークトポロジーは、ノードおよびリンクのリストを含むことができ、ノードおよびリンクが、ネットワーク構成のスケジュール内の各ネットワーク構成に使用されることになる場合のスケジュールを含むことができる。幾つかの例では、実現可能な一連のネットワークトポロジーは、トポロジーになっている間にデータを利用可能なストレージを有するノードに格納することができるネットワークトポロジーと、ノードが別のノードとの新規接続またはリンクを形成し、データを新規に確立されたリンクを介して送信する隣のネットワークトポロジーと、を含む。
【００４０】
ネットワーク構成（複数可）は、１つ以上のプロセッサ３１０により、テーブル内の所定の時点に関するトポロジー、およびトポロジーのネットワーク性能メトリックに基づいて所定の時点で生成することができる。例えば、リンク帯域幅、リンク遅延時間、フロー帯域幅、フロー優先度、リンクスイッチング時間（すなわち、新規トポロジーをネットワーク１００内で実現するために必要な時間）、リンク期間および／またはトポロジー期間のような様々なネットワーク性能メトリックは、トポロジーの重み付き制約として特定の時点でモデル化することができる。幾つかの実施形態では、１つ以上のネットワーク性能メトリックは、メモリに格納されているテーブルに含めなくてもよいが、別のモジュール、別のノード、またはリモートシステムから受信してもよい。
【００４１】
１つ以上のプロセッサ３１０は、ネットワーク構成により表わされるトポロジー上の決定したフローのルーティング経路について計算することもできる。所定のルーティング経路は、決定したフロー要件を満たす所定のフローを実現する一方向とすることができ、ネットワーク内の特定のノードおよびリンク、または一連のノードの間のホップのリストを含むことができる。幾つかの例では、所定のルーティング経路は、ネットワークを介して送信されるデータの量に関して決定したフロー要件を満たす利用可能なストレージを有するノードを含むことができる。所定のルーティング経路を辿るデータは、次のホップに移動する前に、ノードに所定の期間にわたって格納することができる。
【００４２】
加えて、ネットワークの以前の状態および以前のネットワークトポロジーに対応する情報を使用して、ネットワーク構成、またはネットワーク構成のスケジュールを決定することもできる。例えば、１つ以上のプロセッサ３１０は、ネットワーク構成を、ネットワークがネットワーク構成を実現するために必要な以前のネットワークトポロジーからの変更の数、およびネットワークが複数の変更を行うために必要な時間量に少なくとも部分的に基づいて生成することができる。代替的に、１つ以上のプロセッサ３１０は、ネットワーク構成のスケジュールを、ネットワーク構成のスケジュールにおけるネットワーク構成のネットワークトポロジーの間の変更の数、およびテーブル４００Ａまたは４００Ｂのようなルーティングテーブルの情報を利用する変更の間の時間量に少なくとも部分的に基づいて生成することができる。例えば、変更は、トランシーバを操作して新規方向に向けるようにすること、またはノードのメモリに格納されているルーティングテーブルを変更することを含むことができる。トランシーバの操作には、ノードのメモリに格納されているルーティングテーブルを変更する以上の時間がかかる可能性がある。生成したネットワーク構成（複数可）は、変更の数が閾値数を下回る必要がある、および／または時間量が、閾値時間量を下回る必要がある。
【００４３】
ネットワーク構成のスケジュール内の後続のネットワーク構成の幾つかのペアの場合、より早い時期のネットワーク構成と、より遅い時期のネットワーク構成との違いは、単一ノードにおけるルーティング変更のようなトランシーバの方向の変更を伴わない場合がある単一の変更とすることができる。
【００４４】
１つ以上のプロセッサ３１０がネットワーク構成およびルーティング経路を、ソルバーモジュール３３２を使用して生成した後、１つ以上のプロセッサ３１０は、ネットワーク１００のノードをトポロジーおよびルーティングマネージャモジュール３２６に従って制御して、生成したネットワーク構成（複数可）により表わされるトポロジーを、実行命令をノードに送信してノードに、生成したネットワーク構成（複数可）に含まれるリンクを形成させることにより（例えば、これらのノードのそれぞれのトランシーバを操作することにより、これらのノードのそれぞれの送信電力レベルを調整することにより、これらのノードの送信周波数帯および受信周波数帯を設定することなどにより）実現することができ、各ノードのメモリに格納されているルーティングテーブルを、決定したフローについて計算したルーティング経路に従って更新することができる。幾つかの転送テーブルは、変更のスケジュールで、ネットワーク構成のスケジュールに基づいて更新することができ、次のホップの前にデータをノードに格納するように指示することもできる。幾つかの実施形態では、上にある程度説明したように、一連のネットワーク構成は、ソルバーモジュール３３２を使用して生成することができる。一連のネットワーク構成のスケジュールは、１つ以上のプロセッサにより、ソルバーモジュール３３２を使用して決定することもでき、当該スケジュールは、ネットワーク１００のノードに、トポロジーおよびルーティングマネージャモジュール３２６を使用することにより送信することができる。一連のネットワーク構成の後続のネットワーク構成の幾つかのペアの場合、より早い時期のネットワーク構成と、より遅い時期のネットワーク構成の違いは、単一ノードにおけるルーティング変更のような、トランシーバの方向の変更を伴わない場合がある単一の変更とすることができる。各ノードのルーティングテーブルは、変更のスケジュールで、一連のネットワーク構成のスケジュールに基づいて更新することもできる。
【００４５】
飛行制御モジュール３３４は、１つ以上のプロセッサ３１０に、ＨＡＰ１１０のような空中ノードに対する飛行命令を空中ノードの飛行経路に関して生成させることができる。例えば、１つ以上のプロセッサ３１０は、ネットワーク構成を、決定したネットワークフローの全てを満たすことができるネットワークトポロジーを表すソルバーモジュール３３２を使用して決定することができない可能性がある。１つ以上のプロセッサは、ソルバーモジュール３３２を使用するこの障害の理由が、ネットワーク１００内の空中ネットワークノードのうち１つ以上の空中ネットワークノードが、遥かに遠い距離を他のネットワークノードから移動してリンクを形成することができないからであると判断することができる。それに応答して、飛行制御モジュール３３４を使用して、１つ以上のプロセッサ３１０は、ネットワーク１００の空中ノードに対する飛行命令を生成および送信して、空中ノードに、これらの空中ノードの飛行経路を変更させて、追加リンクを形成することができるようにする。例えば、飛行命令は空中ノードを、互いに接近させることができる、または空中ノードに、障害物を回避させることができる。ノードが、１つ以上のプロセッサにより飛行制御モジュール３３４を使用して生成される飛行命令に従って再配置された後、更新後のテーブルは、トポロジーおよびルーティングマネージャモジュール３２６、またはトポロジー決定モジュール３２８を使用して、ネットワークノードの新規ロケーションに基づいて作成することができる。次に、更新後のテーブルは、１つ以上のプロセッサ３１０により、ソルバーモジュール３３２を使用して処理されてネットワーク構成を決定することができる。
【００４６】
スケジューリングモジュール３３６は、ネットワークコントローラ３００の１つ以上のプロセッサ３１０に、１つ以上のクライアントデバイス３５０とインターフェース接続させることができる。スケジューリングモジュール３３６を使用して、１つ以上のプロセッサ３１０は、クライアントデバイス３５０からネットワーク１００を介して送信される、例えばクライアントデータの送信元および宛先のようなクライアントデータ情報を受信することができる。クライアントデバイス３５０から受信される他の情報は、送信されるクライアントデータの量および送信タイミングのような、クライアント要求に関連するデータを含むことができる。情報は、メモリ３２０に格納することができる、および／またはフロー決定モジュール３３０に従って使用して、ネットワーク１００を介して決定されるフローを決定することができる。
【００４７】
決定したフローがフロー決定モジュール３３０を使用して決定され、ネットワーク構成またはネットワーク構成のスケジュールが上に説明したソルバーモジュール３３２を使用して生成された後、１つ以上のプロセッサは、クライアントデータを、ネットワーク１００を介して送信するルーティング命令を、テーブルおよび生成したネットワーク構成またはスケジュールに基づいて生成することができる。これらのルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、およびクライアントデータの送信タイミングを含むことができる。幾つかの実施形態では、ルーティング命令は、前のノードからのデータを一時的に格納して次のノードに送信するというノードに対するストレージ命令を含むことができる。ルーティング命令は、クライアントデータを送信するクライアントデバイス３５０と直接接続可能なネットワークのノードに格納することができるスケジュールを含むことができる。次に、１つ以上のプロセッサ３１０は、ルーティング命令をクライアントデバイス３５０と直接接続可能なノードに送信して、ノードに、クライアントデータの送信を、決定したフローを経てスケジュールに従って受信させて開始させることができる。
【００４８】
フローがクライアントデータ情報なしで決定される幾つかの実施形態では、スケジューリングモジュール３３６は、１つ以上のプロセッサ３１０に、ネットワークを介したフローの利用可能性を、フロー決定モジュール３３０を使用して決定される決定フロー、およびソルバーモジュール３３０を使用して生成されるネットワーク構成（複数可）に基づいて示すことに関するメッセージを１つ以上のクライアントデバイス３５０の１つのクライアントデバイスに送信させることができる。メッセージは、フローが利用可能になっている時刻もしくは時刻フレーム、および／または各フローに関連するデータの送信の価格を含むこともできる。スケジュールモジュール３３６を使用して、１つ以上のプロセッサ３１０は、クライアントデータを送信する決定したフローのうち１つの決定したフローを使用する要求を含む応答を１つ以上のクライアントデバイス３５０のうち１つのクライアントデバイスから受信することができる。次に、１つ以上のプロセッサ３１０は、ルーティング命令を１つ以上のノードに送信して、決定したフローを経たクライアントデータの送信を開始させることができる。
【００４９】
例示的な方法
図５では、ネットワークコントローラ３００の１つ以上のプロセッサ３１０により実行することができる、上に説明した態様のうち幾つかの態様によるフロー図５００が示されている。図５は、ブロックを特定の順序で示しているが、順序は変えてもよく、複数の操作を同時に実行してもよい。また、操作を追加または省略してもよい。
【００５０】
ブロック５０２では、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、情報をネットワーク１００内のノードの各ノードからトポロジーおよびルーティングマネージャモジュール３２６を使用して受信することができる。情報は、現在時刻もしくは将来時刻におけるノード、気象、またはリンクの現在の状況もしくは予測される状況に関連する可能性がある。例示的なシナリオでは、ロケーションＡは、現在時刻におけるＨＡＰ１１０ａの現在のロケーションとして受信することができ、現在時刻におけるＨＡＰ１１０ｃの現在のロケーションとして受信することができる。ＨＡＰ１１０ａおよび１１０ｃからの気象状況レポートは、現在の気象状況が、ロケーションＡおよびＣにおいて晴天であることを示すことができる。ＨＡＰ１１０ａは、ＨＡＰ１１０ｃがリンク１３３に対する要求に応答していないという通知を１つ以上のプロセッサ３１０に送信することもできる。加えて、ＨＡＰ１１０ａは、ロケーションＡからロケーションＢに、現在時刻から１時間のうちに移動すると予測され得る。現在時刻から１時間のうちのロケーションＢの天気予報は、雷雨を含むことができる。
【００５１】
ブロック５０４では、図４Ａに示すテーブル４００Ａのような、ネットワーク１００内の利用可能なノードおよび可能なリンクを表わすテーブルは、ネットワークのノードから受信される情報に基づいて、トポロジーおよびルーティングマネージャモジュール３２６を使用して生成または更新することができる。上記のように、テーブルはメモリ３２０に格納することができる。例示的なシナリオでは、ＨＡＰ１１０ａの場合、テーブルを生成または更新して、ＨＡＰ１１０ａが、気象が現在晴天であるロケーションＡで利用可能であり、ＨＡＰ１１０ａが、気象が当該時点で雷雨を含むことになるロケーションＢに１時間のうちに位置すると予測されることを示すことができる。ＨＡＰ１１０ｃの場合、テーブルを生成または更新して、ＨＡＰ１１０ｃが現在ロケーションＣに位置していることを示すことができる。リンク１３３がＨＡＰ１１０ａと１１０ｃとの間にある場合、テーブルを生成または更新して、リンク１３３に障害が発生していることを示すことができる。
【００５２】
ブロック５０６では、１つ以上のプロセッサ３１０は、ネットワークの現在および／または将来のトポロジーをテーブルに基づいて、トポロジー決定モジュール３２８を使用して決定することができる。例示的なシナリオの場合、現在のトポロジーを決定するために、１つ以上のプロセッサ３１０は、メモリ３２０内のテーブルにアクセスし、各ノードおよびリンクに関連するテーブルおよびスケジューリングされた時刻から、どのノードおよびリンクが現在時刻で利用可能であるかを判断することができる。ＨＡＰ１１０ａおよび１１０ｃに関する受信した情報に従って、図６に示すように、現在のトポロジー６００を決定することができる。現在のトポロジーは、ノード１０７、１１０を含むように決定することができる。具体的には、ＨＡＰ１１０ａは、ロケーションＡの現在のトポロジーに含めることができ、ＨＡＰ１１０ｃは、ロケーションＣの現在のトポロジーに含めることができる。なぜならこれらのＨＡＰが、現在時刻に関するテーブル内のそれぞれのＨＡＰに関連するロケーションにあるためである。現在のトポロジー６００の矢印で示されているように、リンク１３０〜１３２および１３４〜１３７は現在のトポロジーに含まれ、現在時刻に関する障害として示されるＨＡＰ１１０ａと１１０ｃの間のリンク１３３は、含まれない（矢印のない一点鎖線として図６に示される）。別の例では、ＨＡＰ１１０ｃがロケーションＣにある当該ＨＡＰ１１０ｃのロケーションを１つ以上のプロセッサ３１０に報告しなかったが、飛行経路または軌道を、飛行制御モジュール３３４を使用して以前に報告していた場合、１つ以上のプロセッサ３１０は、ＨＡＰ１１０ｃがロケーションＣにあることを、飛行経路または軌道に基づいて判断することができ、ＨＡＰ１００ｃを現在のトポロジーに含めることができる。現在のトポロー内の各可能なリンク１３０〜１３２および１３４〜１３７に、受信した情報に基づいて決定される帯域幅のようなリンクメトリックでラベル付けすることもできる。現在のトポロジー６００の図では、実線は、リンク１３０、１３１、１３４、１３７が、３Ｍｂｐｓ以上のような高帯域幅に対応できることを示し、破線は、リンク１３２、１３５、１３６が３Ｍｂｐｓ未満のような低帯域幅に対応できることを示している。
【００５３】
さらに、例示的なシナリオでは、現在時刻後１時間の将来時刻の場合、図７に示すように、将来のトポロジー７００を決定することができる。１つ以上のプロセッサ３１０は、将来時刻のＨＡＰ１１０ａのロケーションがロケーションＢになることを、テーブル内の将来時刻に関するロケーション情報に基づいて判断することができる。加えて、上に説明したように、テーブルは、天気予報が雷雨をロケーションＢに含むという通知を含んでいるので、将来のトポロジーは、ＨＡＰ１１０ａをロケーションＢに含めるように決定することができるが、当該ＨＡＰ１１０ａは、少なくともＦＳＯＣには利用できないことを示すことができる。図７に示すように、ＨＡＰ１１０ａの一点鎖線の輪郭は、ＨＡＰ１１０ａが将来時刻の将来のトポロジーにおいて利用できないことを示し、また一点鎖線のリンク１３０〜１３３を示して、ＨＡＰ１００ａとのこれらのリンクもまた、利用できないことを示している。
【００５４】
図５に戻と、ブロック５０８では、ネットワーク１００を介して送信されるクライアントデータに関連する情報は、１つ以上のプロセッサ３１０により、スケジューリングモジュール３３６を使用して受信することができる。クライアントデータ情報は、ネットワークコントローラ３００と通信するクライアントデバイスから受信することができる。クライアントデータ情報は、クライアントデータのデータ量、送信元ロケーション、および宛先ロケーション、および要求される送信時刻を含むことができる。例えば、例示的なシナリオでは、受信した情報は、クライアントデータの量が１０Ｇｂであり、クライアントデータの送信元ロケーションが地上局１０７ａであり、宛先ロケーションが地上局１０７ｂであり、要求される送信時刻が現在時刻であることを示すことができる。幾つかの場合では、情報はまた、帯域幅、サービスクラス、サービス品質などのような送信要件を含む。幾つかの実施形態では、クライアントデータに関連する情報は、ネットワークコントローラ３００の１つ以上のプロセッサ３１０により、またはリモートシステムにより予測され得る。
【００５５】
ブロック５１０では、１つ以上のプロセッサ３１０は、現在時刻または将来時刻の１つ以上のフローを、現在または将来のトポロジーおよびクライアントデータ情報を使用して、フロー決定モジュール３３０を使用して決定することができる。現在時刻の送信を要求するクライアントデータの場合、１つ以上のフローは、現在時刻に対応して決定することができる。現在のトポロジーは、メモリ３２０に格納されているテーブルから取り出すことができる。例示的なシナリオにおける１つ以上のプロセッサ３１０は、送信元ロケーションが地上局１０７ａと接続可能であり、宛先ロケーションが地上局１０７ｂに接続可能であり、両方の地上局１０７ａおよび１０７ｂが現在のトポロジーに従って利用可能であるので、クライアントデータのフローが地上局１０７ａと地上局１０７ｂとの間にあり得ると判断することができる。加えて、帯域幅は、１０Ｇｂのクライアントデータに関する最小限の３Ｇｂｐｓであると判断することができる。これとは異なり、５Ｇｂの他のクライアントデータの場合、最小帯域幅要件は１Ｇｂｐｓとすることができる。代替的に、最小帯域幅要件はクライアントデバイスにより設定することができる。１０Ｇｂのクライアントデータのフローの時刻フレームは、５秒であると決定して、クライアントデータが確実に、３Ｇｂｐｓの最小レートの送信時間を有することができるようにする。
【００５６】
幾つかの実現形態では、１つ以上のプロセッサ３１０は、クライアントデータを１つ以上のクライアントデバイスから収集してネットワークを介して送信することができる。例えば、前述の１０Ｇｂのクライアントデータは、別の１０Ｇｂのクライアントデータと一緒に同じ、または異なるクライアントデバイスから収集して、これもまた、地上局１０７ａから地上局１０７ｂに送信することができる。２０Ｇｂのクライアントデータの合計量に基づいて、１つ以上のプロセッサ３１０は、地上局１０７ａと１０７ｂとの間のフローが４Ｇｂｐｓの最小帯域幅を必要としている可能性があると判断することができる。
【００５７】
ブロック５１２では、１つ以上のプロセッサ３１０は、現在時刻または将来時刻のネットワーク構成を、決定したフローおよび現在または将来のトポロジーに基づいて、ソルバーモジュール３３２を使用して生成することができる。ネットワーク構成は、１つ以上のルーティング経路および時刻フレームを含んで実現することができる。例えば、例示的なシナリオの場合、現在のネットワーク構成は、現在時刻に対応して、地上局１０７ａと１０７ｂの間のフロー、および現在のトポロジーに基づいて決定することができる。現在のネットワーク構成は、図８に示すルーティング経路８００を含むことができる。ルーティング経路８００（ブロック矢印で示される）は、地上局１０７ａからＨＡＰ１１０ａ、１１０ｄ、１１０ｃを通って地上局１０７ｂに、リンク１３０、１３１、１３４、および１３７を使用して至ることができる。現在のトポロジーはリンク１３３を含まないので、ルーティング経路は、ＨＡＰ１１０ａと１１０ｃとの間のこのリンク１３３を含まない。加えて、ルーティング経路は、ＨＡＰ１１０ａと１１０ｂとの間のリンク１３２、またはＨＡＰ１１０ｄと１１０ｂとの間のリンク１３５を含まなくてもよい。なぜならこれらのリンクはフローの要件を満たさない。この場合、ＨＡＰ１１０ａと１１０ｂとの間のリンク１３２、およびＨＡＰ１１０ｄと１１０ｂとの間のリンク１３５は、現在のトポロジー内のリンク１３２および１３５のリンクメトリックに従って、少なくとも３Ｇｂｐｓの帯域幅をサポートすることはできないものとして示されている。１つ以上のプロセッサ３１０は、現在のネットワーク構成を実現する時刻フレームが、少なくとも現在時刻から現在時刻後５秒が経過する時刻であることを、地上局１０７ａと１０７ｂとの間のフローについて決定された時刻フレームに基づいてさらに決定することができる。
【００５８】
図５にさらに示すように、ブロック５１４では、１つ以上のプロセッサ３１０は、実行命令をネットワーク１００のノード１０７、１１０に送信して、生成したネットワーク構成の実現およびクライアントデータの送信を、トポロジーおよびルーティングマネージャモジュール３２６および／またはソルバーモジュール３３２を使用して行わせることができる。例示的なシナリオでは、現在のネットワーク構成の場合、ノード１０７、１１０に対する実行命令は、ルーティング経路８００を実現する命令を含むことができる。したがって、実行命令は、地上局１０７ａのトランシーバをＨＡＰ１１０ａの方に向けてリンク１３０を形成する地上局１０７ａに対する命令、ＨＡＰ１１０ａのトランシーバを地上局１０７ａの方に向けてリンク１３０を形成し、ＨＡＰ１１０ｄの方に向けてリンク１３１を形成するＨＡＰ１１０ａに対する命令、ＨＡＰ１１０ｄのトランシーバをＨＡＰ１１０ａの方に向けてリンク１３１を形成し、ＨＡＰ１１０ｃの方に向けてリンク１３４を形成するＨＡＰ１１０ｄに対する命令、ＨＡＰ１１０ｃのトランシーバをＨＡＰ１１０ｄの方に向けてリンク１３４を形成し、地上局１０７ｂの方に向けてリンク１３７を形成するＨＡＰ１１０ｃに対する命令、および地上局１０７ｂのトランシーバをＨＡＰ１１０ｃの方に向けてリンク１３７を形成する地上局１０７ｂに対する命令を含むことができる。幾つかの場合では、リンクのうち１つ以上のリンクが既に形成されている可能性があり、この場合、トランシーバの方向に対する変更は必要ではない。加えて、開始局である地上局１０７ａに対する実行命令は、ルーティング経路８００を介して送信されるクライアントデータの受信および送信のためのルーティング命令を含むことができる。ルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、送信タイミング、および／または送信レートを含むことができる。ルーティング命令が地上局１０７ａで受信されると、地上局１０７ａに、クライアントデータを現在時刻で現在のネットワーク構成を介してルーティング経路８００に沿って送信させることができる。
【００５９】
将来時点に対応して生成されるネットワーク構成の場合、実行命令は、スケジューリングされた変更をネットワーク１００に格納することを含み、例えばトランシーバを操作して新規ルーティング経路を各ノードで実現することを含むことができ、実現は、クライアントデータを将来時刻で送信する前に行うことができる。したがって、実行命令は、ルーティングテーブルを各ノードにおいて、新規ルーティング経路および時刻または時刻フレームで更新して、新規ルーティング経路を将来のネットワーク構成に従って実現することを含むことができる。時刻または時刻フレームになると、ネットワーク１００のノード１０７、１１０に、将来のネットワーク構成を実行命令に従って自動的に実現させることができる。
【００６０】
代替的に、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、クライアントデータ情報を１つ以上のクライアントデバイス３５０に対して、ネットワーク１００内の複数の利用可能なフローに基づいてスケジューリングモジュール３３６を使用して要求することができる。そのようにするために、１つ以上のプロセッサ３１０は、フロー決定モジュール３３０を使用して、地上局１０７ａ、１０７ｂのようなクライアントデバイスと直接接続可能なノードの間の複数の利用可能なフローを、現在または将来のトポロジーに基づいて決定することができる。代替的に、複数の利用可能なフローは、クライアントデータ情報を受信することなく決定することができ、各フローに関する性能メトリックを含むことができる。クライアントデバイスと直接接続可能なノードの間の複数の可能なフローを決定した後、１つ以上のプロセッサ３１０は、スケジューリングモジュール３３６を使用してメッセージを、１つ以上のクライアントデバイス３５０の第１のクライアントデバイスに通信システム３４０を介して送信することができる。メッセージは、第１のクライアントデバイスに直接接続可能なノードと他のクライアントデバイスに直接接続可能な全ての他のノードとの間の複数の利用可能なフローに由来する利用可能なフローのリストを含むことができる。加えて、メッセージは、ネットワーク１００を介して送信されるクライアントデータ情報に対する要求を含むことができる。上に説明したように、クライアントデータ情報を含む応答を第１のクライアントデバイスから受信することができ、次に、このクライアントデータ情報を、１つ以上のプロセッサ３１０が使用してネットワーク構成を、ソルバーモジュール３３２を使用して生成および実現することができる。
【００６１】
別の代替実施形態では、ブロック５０８で受信されるクライアントデータ情報は、要求される送信時刻を含まなくてもよい、または要求される送信時刻は、要求される時刻におけるネットワークのトポロジーに基づいて実現可能ではなくてもよい。次に、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、クライアントデータの送信に関してスケジューリングされた時刻を、スケジューリングモジュール３３６を使用して決定することができる。スケジューリングされた時刻は、所定の時刻または時刻フレームにおけるネットワーク１００内の利用可能なノードおよび可能なリンクの全てを表わすテーブルに基づいて決定することができる。例えば、クライアントデータ情報は、５Ｇｂのクライアントデータを、現在時刻後１時間の将来時刻に送信するという要求を含むことができる。クライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づいて、開始局は地上局１０７ａであると決定することができ、宛先局は地上局１０７ｂであると決定することができる。しかしながら、図７に示す将来のトポロジー７００に基づいて、ＨＡＰ１１０ａは将来時刻で利用できないので、リンク１３０もまた、将来時刻で利用できない。メモリ３２０に格納されているテーブルを使用して、１つ以上のプロセッサ３１０は次に、リンク１３０が利用可能になるか、または地上局１０７ａとＨＡＰ１１０ｂ〜１１０ｄのような別のＨＡＰとの間のリンクが利用可能になる最も早期の時点である第２の将来時刻を特定することができる。次に、５Ｇｂのクライアントデータの送信は、第２の将来時刻になるとスケジューリングすることができる。第２の将来時刻に関する将来の第２のネットワーク構成は、ルーティング経路を地上局１０７ａと１０７ｂとの間に含めるように生成することができる。代替的に、将来の第２のネットワーク構成は、将来の第２のネットワーク構成がルーティング経路なしで生成された場合に、ルーティング経路を地上局１０７ａと１０７ｂとの間に含めるように更新することができる。
【００６２】
図９では、ネットワークコントローラ３００の１つ以上のプロセッサ３１０により実行することができるフロー図９００が、上に説明した態様のうち幾つかの態様に従って示されている。図９は、ブロックを特定の順序で示しているが、順序は変えてもよく、複数の操作を同時に実行してもよい。また、操作は、追加または省略してもよい。
【００６３】
ブロック９０２では、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、情報をネットワーク１００内のノードの各ノードから、トポロジーおよびルーティングマネージャモジュール３２６を使用して受信することができる。情報は、現在時刻もしくは将来時刻におけるノード、気象、またはリンクの現在の状況もしくは予測される状況に関連する可能性がある。例示的なシナリオでは、ロケーションＡは、現在時刻におけるＨＡＰ１１０ａの現在のロケーションとして受信することができ、ロケーションＣは、現在時刻におけるＨＡＰ１１０ｃの現在のロケーションとして受信することができ、ロケーションＤは、ＨＡＰ１１０ｄの現在のロケーションとして受信することができる。ＨＡＰ１１０ａおよび１１０ｃからの気象状況レポートは、現在の気象状況が、ロケーションＡおよびＣで晴天であることを示すことができる。ＨＡＰ１１０ｄは、１０Ｇｂの利用可能なストレージが、現在時刻でＨＡＰ１１０ｄにあるという通知を送信することもできる。ＨＡＰ１１０ａおよび１１０ｄはそれぞれ、ＨＡＰ１１０ｃがリンク１３３に対する要求に応答していないという通知を１つ以上のプロセッサ３１０に送信することができる。加えて、ＨＡＰ１１０ａは、ロケーションＡからロケーションＢに、現在時刻から１時間のうちに移動すると予測することができ、ＨＡＰ１１０ｄは、ロケーションＤからロケーションＥに、現在時刻から１時間のうちに移動すると予測することができる。現在時刻から１時間のうちのロケーションＢの天気予報は、雷雨を含むことができる。
【００６４】
ブロック９０４では、図４Ｂおよび図４Ｃに示すテーブル４００Ｂのような、ネットワーク１００内の利用可能なノードおよび可能なリンクを表わすテーブルは、ネットワークのノードから受信される情報に基づいて、トポロジーおよびルーティングマネージャモジュール３２６を使用して生成または更新することができる。上記のように、テーブルはメモリ３２０に格納することができる。例示的なシナリオでは、ＨＡＰ１１０ａの場合、テーブルを生成または更新して、ＨＡＰ１１０ａが、気象が現在晴天であるロケーションＡで利用可能であり、ＨＡＰ１１０ａが、気象が当該時点で雷雨を含むことになるロケーションＢに１時間のうちに位置すると予測されることを示すことができる。ＨＡＰ１１０ｃの場合、テーブル４００Ｂを生成または更新して、ＨＡＰ１１０ｃが現在ロケーションＣに位置していることを示すことができる。ＨＡＰ１１０ｄの場合、テーブル４００Ｂを生成または更新して、ＨＡＰ１１０ｄが現在ロケーションＤに位置していて１０Ｇｂの利用可能なストレージを有していることを示すことができ、ＨＡＰ１１０ｄが１時間のうちにロケーションＥに位置するようになると予測することができる。ＨＡＰ１１０ａと１１０ｃとの間のリンク１３３の場合、テーブルを生成または更新して、リンク１３３に障害があることを示すことができる。ＨＡＰ１１０ｂと１１０ｃとの間のリンク１３４の場合、テーブルを生成または更新して、リンク１３４に障害があることを示すことができる。
【００６５】
ブロック９０６では、１つ以上のプロセッサ３１０は、ネットワークの現在および／または将来のトポロジーを、テーブルに基づいてトポロジー決定モジュール３２８を使用して決定することができる。例示的なシナリオの場合、現在のトポロジーを決定するために、１つ以上のプロセッサ３１０は、メモリ３２０内のテーブルにアクセスすることができ、テーブル、および各ノードおよびリンクに関連するスケジューリングされた時刻から、どのノードおよびリンクが、現在時刻で利用可能になっているかを決定することができる。ＨＡＰ１１０ａ〜１１０ｄに関して受信した情報に従って、現在のトポロジー１０００を図１０に示すように決定することができる。現在のトポロジーは、ノード１０７、１１０を含むように決定することができる。具体的には、ＨＡＰ１１０ａは、ロケーションＡの現在のトポロジーに含めることができ、ＨＡＰ１１０ｃは、ロケーションＣの現在のトポロジーに含めることができ、ＨＡＰ１１０ｄは、ロケーションＤの現在のトポロジーに含めることができる。なぜならこれらのＨＡＰは、現在時刻に関するテーブル内のそれぞれのＨＡＰに関連するロケーションにあるためである。現在のトポロジー１０００内の矢印で示されているように、リンク１３０〜１３２および１３５〜１３７は、現在のトポロジーに含まれ、現在時刻に対応して障害が発生しているとして示されるＨＡＰ１１０ａと１１０ｃとの間のリンク１３３、およびＨＡＰ１１０ｄと１１０ｃとの間のリンク１３４は含まれない（図１０に矢印のない一点鎖線として示されている）。別の例では、ＨＡＰ１１０ｃが、ロケーションＣにある当該ＨＡＰ１１０ｃのロケーションを１つ以上のプロセッサ３１０に報告しなかったが、以前に、飛行経路または軌道を、飛行制御モジュール３３４を使用して報告していた場合、１つ以上のプロセッサ３１０は、ＨＡＰ１１０ｃが現在、ロケーションＣにあることを、飛行経路または軌道に基づいて判断することができ、ＨＡＰ１００ｃを現在のトポロジーに含めることができる。現在のトポロジー内の各可能なリンク１３０〜１３２および１３５〜１３７には、受信した情報に基づいて決定される帯域幅のようなリンクメトリックでラベル付けすることができる。現在のトポロジー１０００の図では、実線は、リンク１３０、１３１、１３４、１３７が３Ｍｂｐｓ以上のような、より高い帯域幅に対応できることを示し、破線は、リンク１３２、１３５、１３６が３Ｍｂｐｓ未満のような、より低い帯域幅に対応できることを示している。
【００６６】
さらに、例示的なシナリオでは、図１１に示すように、現在時刻後１時間の将来時刻の場合、将来のトポロジー１１００を決定することができる。１つ以上のプロセッサ３１０は、ロケーションＢにあることになる将来時刻におけるＨＡＰ１１０ａのロケーション、およびロケーションＤにあることになる将来時刻におけるＨＡＰ１１０ｄのロケーションは、テーブル内の将来時刻に関するロケーション情報に基づいて決定することができる。加えて、上に説明したように、テーブルは、天気予報が雷雨をロケーションＢに含んでいるという通知を含んでいるので、将来のトポロジーは、ＨＡＰ１１０ａをロケーションＢに含むと決定することができるが、ＨＡＰ１１０ａは少なくともＦＳＯＣには利用できないことを示すことができる。図１１に示すように、ＨＡＰ１１０ａの一点鎖線の輪郭は、ＨＡＰ１１０ａが将来時刻の将来のトポロジーにおいては利用できないことを示し、また、リンク１３０〜１３３を一点鎖線で示して、ＨＡＰ１００ａとのこれらのリンクも利用できないことを示している。図１１にさらに示されるように、ＨＡＰ１１０ｄと１１０ｃとの間のリンク１３４は、将来時刻で、ＨＡＰ１１０ｄがロケーションＤにあることに少なくとも部分的に基づいて確立することができる。
【００６７】
図９に戻ると、ブロック９０８では、ネットワーク１００を介して送信されるクライアントデータに関連する情報は、１つ以上のプロセッサ３１０により、スケジューリングモジュール３３６を使用して受信することができる。クライアントデータ情報は、ネットワークコントローラ３００と通信するクライアントデバイスから受信することができる。クライアントデータ情報は、データ量、クライアントデータの送信元ロケーション、および宛先ロケーション、および要求される送信時刻を含むことができる。例えば、例示的なシナリオでは、受信した情報は、クライアントデータ量が１０Ｇｂであり、クライアントデータの送信元ロケーションが地上局１０７ａであり、宛先ロケーションが地上局１０７ｂであり、要求される送信時刻が現在時刻であることを示すことができる。幾つかの場合では、情報はまた、帯域幅、サービスクラス、サービス品質などのような送信要件を含む。幾つかの実施形態では、クライアントデータに関連する情報は、ネットワークコントローラ３００の１つ以上のプロセッサ３１０により、またはリモートシステムにより予測することができる。
【００６８】
ブロック９１０では、１つ以上のプロセッサ３１０は、現在時刻または将来時刻に関する１つ以上のフローを、現在または将来のトポロジーおよびクライアントデータ情報を使用して、フロー決定モジュール３３０を使用して決定することができる。送信を現在時刻で要求するクライアントデータの場合、１つ以上のフローを現在時刻に対応して決定することができる。現在のトポロジーは、メモリ３２０に格納されているテーブルから取り出すことができる。例示的なシナリオにおける１つ以上のプロセッサ３１０は、送信元ロケーションが地上局１０７ａと接続可能であり、宛先ロケーションが地上局１０７ｂに接続可能であり、地上局１０７ａおよび１０７ｂの両方が現在のトポロジーに従って利用可能であるので、クライアントデータのフローが、地上局１０７ａと地上局１０７ｂとの間にあると判断することができる。加えて、帯域幅は、１０Ｇｂのクライアントデータに関する最小限の３Ｇｂｐｓであると決定することができる。これとは異なり、５Ｇｂの他のクライアントデータの場合、最小帯域幅要件は１Ｇｂｐｓとすることができる。代替的に、最小帯域幅要件は、クライアントデバイスにより設定されるようにしてもよい。１０Ｇｂのクライアントデータのフローの時刻フレームは、５秒であると決定されて、クライアントデータが確実に、３Ｇｂｐｓの最小レートの送信時間を有することができるようにする。
【００６９】
幾つかの実現形態では、１つ以上のプロセッサ３１０は、クライアントデータを１つ以上のクライアントデバイスから収集してネットワークを介して送信することができる。例えば、前述の１０Ｇｂのクライアントデータは、別の１０Ｇｂのクライアントデータと一緒に同じ、または異なるクライアントデバイスから収集されて、地上局１０７ａから地上局１０７ｂに送信されるようにしてもよい。２０Ｇｂのクライアントデータの合計量に基づいて、１つ以上のプロセッサ３１０は、地上局１０７ａと１０７ｂとの間のフローが４Ｇｂｐｓの最小帯域幅を必要とする可能性があると判断することができる。
【００７０】
ブロック９１２では、１つ以上のプロセッサ３１０は、現在時刻に関する現在のネットワーク構成、および将来時刻に関する将来のネットワーク構成を含むネットワーク構成のスケジュールを、決定したフローおよび現在および将来のトポロジーに基づいて、ソルバーモジュール３３２を使用して生成することができる。ネットワーク構成のスケジュールは、現在のネットワーク構成および将来のネットワーク構成にまたがるルーティング経路を含むように決定することができる。このタイプのルーティング経路は、ノードペア間の経路が単一のトポロジー内に存在しない場合に決定することができる。例えば、図１０に示すように、３Ｇｂｐｓを超える速度を必要とするデータの地上局１０７ａと１０７ｂとの間の直接ルーティング経路は、トポロジー１０００が与えられる場合、現在時刻では不可能である。リンク１３３および１３４は利用できず、リンク１３２、１３５、および１３６は、３Ｇｂｐｓを超える速度をサポートすることができない。また、図１１では、３Ｇｂｐｓを超える速度を必要とするデータの地上局１０７ａと１０７ｂとの間の直接ルーティング経路は、トポロジー１１００が与えられる場合、現在時刻では不可能である。リンク１３０〜１３３はＦＳＯＣには利用できない。
【００７１】
この例示的なシナリオでは、１つ以上のプロセッサ３１０は、ネットワーク構成のスケジュールのルーティング経路を、データが現在のネットワーク構成を使用してノードに送信されて格納され、データが将来のネットワーク構成を使用してノードから送信される当該ノードを含むように決定することができる。例えば、現在のネットワーク構成および将来のネットワーク構成は、地上局１０７ａと１０７ｂとの間のフロー、現在のトポロジー１０００、将来のトポロジー１１００、およびノード１１０ｄで利用可能なストレージに基づいて決定することができる。現在のネットワーク構成は、図１２Ａに示すルーティング経路の第１の部分または第１の構成部分１２００Ａを含むことができ、将来のネットワーク構成は、図１２Ｂに示すルーティング経路の第２の構成部分１２００Ｂを含むことができる。ルーティング経路の第１の構成部分１２００Ａ（ブロック矢印で示される）は、リンク１３０および１３１を使用する、地上局１０７ａからＨＡＰ１１０ａを通ってＨＡＰ１１０ｄに至る２つのルーティング部分を含むことができる。ルーティング経路の第１の構成部分１２００Ａは、利用可能な十分なストレージ１０ＧｂがあるＨＡＰ１１０ｄで終了して、クライアントデバイスから受信される所定量のクライアントデータ、１０Ｇｂのクライアントデータを格納する。将来時刻では、ＨＡＰ１１０ｄはロケーションＤに到達し、リンク１３４を再確立することができ、宛先地上局１０７ｂへのデータ転送を完了させることができる。ルーティング経路の第２の構成部分１２００Ｂ（ブロック矢印で示される）は、リンク１３４および１３７を使用して、ＨＡＰ１１０ｄからＨＡＰ１１０ｃを通って地上局１０７ｂに至ることができる。
【００７２】
図９にさらに示されるように、ブロック９１４では、１つ以上のプロセッサ３１０は、実行命令をネットワーク１００のノード１０７、１１０に送信して、生成したネットワーク構成を実現してクライアントデータを、トポロジーおよびルーティングマネージャモジュール３２６および／またはソルバーモジュール３３２を使用して送信することができる。例示的なシナリオでは、現在のネットワーク構成の場合、ノード１０７、１１０に対する実行命令は、第１の構成部分１２００Ａのルーティング経路部分を実現する命令を含むことができる。したがって、実行命令は、地上局１０７ａのトランシーバをＨＡＰ１１０ａの方に向けてリンク１３０を形成する地上局１０７ａに対する命令、ＨＡＰ１１０ａのトランシーバを地上局１０７ａの方に向けてリンク１３０を形成し、ＨＡＰ１１０ｄの方に向けてリンク１３１を形成するＨＡＰ１１０ａに対する命令、およびＨＡＰ１１０ｄのトランシーバをＨＡＰ１１０ａの方に向けてリンク１３１を形成するＨＡＰ１１０ｄに対する命令を含むことができる。幾つかの実施形態では、実行命令は、ネットワークを将来のネットワーク構成に備えて整えることもできる。この場合、実行命令は、トランシーバをＨＡＰ１１０ｃが将来時刻で位置することになる場所の方に向けるＨＡＰ１１０ｄに対する命令、ＨＡＰ１１０ｃのトランシーバをＨＡＰ１１０ｄが将来時刻で位置することになる場所、および地上局１０７ｂの方に向けてリンク１３７を形成するＨＡＰ１１０ｃに対する命令、および地上局１０７ｂのトランシーバをＨＡＰ１１０ｃの方に向けてリンク１３７を形成する地上局１０７ｂに対する命令を含むことができる。幾つかの場合では、リンクのうち１つ以上のリンクが既に形成されている可能性があり、この場合、トランシーバの方向に対する変更は必要がない。加えて、地上局１０７ａ、開始局に対する実行命令は、クライアントデータを受信および送信してルーティング経路１２００Ａ〜１２００Ｂを介して送信するルーティング命令を含むことができる。ルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、送信タイミング、および／または送信レートを含むことができる。ルーティング命令が地上局１０７ａで受信されると、地上局１０７ａに、クライアントデータを現在時刻で、現在のネットワーク構成を介してルーティング経路１２００Ａ〜１２００Ｂに沿って送信させることができる。
【００７３】
将来時点に対応して生成されるネットワーク構成の場合、実行命令は、スケジューリングされた変更をネットワーク１００に格納すること、例えばトランシーバを操作して、クライアントデータを将来時刻で送信する前に生じる可能性がある新規ルーティング経路を各ノードで実現することを含むことができる。したがって、実行命令は、各ノードの転送テーブルを、新規ルーティング経路および時刻または時刻フレームで更新して新規ルーティング経路を将来のネットワーク構成に従って実現することを含むことができる。時刻または時刻フレームになると、ネットワーク１００のノード１０７、１１０に、将来のネットワーク構成を実行命令に従って自動的に実現させることができる。
【００７４】
代替的に、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、クライアントデータ情報を１つ以上のクライアントデバイス３５０に対して、ネットワーク１００内の複数の利用可能なフローに基づいてスケジューリングモジュール３３６を使用して要求するようにしてもよい。そのようにするために、１つ以上のプロセッサ３１０は、フロー決定モジュール３３０を使用して、地上局１０７ａ、１０７ｂのようなクライアントデバイスと直接接続可能なノードの間の複数の利用可能なフローを現在または将来のトポロジーに基づいて決定することができる。代替的に、複数の利用可能なフローは、クライアントデータ情報を受信することなく決定してもよく、性能メトリックを各フローに対応して含んでいてもよい。クライアントデバイスと直接接続可能なノードの間の複数の可能なフローを決定した後、１つ以上のプロセッサ３１０は、スケジューリングモジュール３３６を使用してメッセージを、１つ以上のクライアントデバイス３５０の第１のクライアントデバイスに通信システム３４０を介して送信することができる。メッセージは、第１のクライアントデバイスに直接接続可能なノードと他のクライアントデバイスに直接接続可能な他の全てのノードとの間の複数の利用可能なフローに由来する利用可能なフローのリストを含むことができる。加えて、メッセージは、ネットワーク１００を介して送信するクライアントデータ情報に対する要求を含むことができる。クライアントデータ情報を含む応答は、第１のクライアントデバイスから受信することができ、当該応答を、１つ以上のプロセッサ３１０が使用してネットワーク構成を、上に説明したソルバーモジュール３３２を使用して生成および実現することができる。
【００７５】
別の代替実施形態では、ブロック９０８で受信されるクライアントデータ情報は、要求される送信時刻を含まなくてもよい、または要求される送信時刻は、要求される時刻におけるネットワークのトポロジーに基づいて実現可能ではなくてもよい。次に、ネットワークコントローラ３００の１つ以上のプロセッサ３１０は、クライアントデータに関してスケジューリングされた送信時刻を、スケジューリングモジュール３３６を使用して決定することができる。スケジューリングされた時刻は、所定の時刻または時刻フレームにおけるネットワーク１００内の利用可能なノードおよび可能なリンクの全てを表わすテーブルに基づいて決定することができる。例えば、クライアントデータ情報は、現在時刻後１時間の将来時刻における５Ｇｂのクライアントデータを送信する要求を含むことができる。クライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づいて、開始局は地上局１０７ａであると決定することができ、宛先局は地上局１０７ｂであると決定することができる。しかしながら、図１１に示す将来のトポロジー１１００に基づいて、ＨＡＰ１１０ａは将来時刻に利用できないので、リンク１３０も将来時刻に利用できない。メモリ３２０に格納されているテーブルを使用して、１つ以上のプロセッサ３１０は次に、リンク１３０が利用可能になる、または最も早い時間、または地上局１０７ａとＨＡＰ１１０ｂ〜１１０ｄのような別のＨＡＰとの間のリンクが利用可能になる最も早期の時刻である第２の将来時刻を特定することができる。次に、５Ｇｂのクライアントデータの送信は、第２の将来時刻になるようにスケジューリングすることができる。第２の将来時刻に関する第２の将来のネットワーク構成は、地上局１０７ａと１０７ｂとの間のルーティング経路を含むように生成することができる。代替的に、第２の将来のネットワーク構成がルーティング経路なしで生成された場合、第２の将来のネットワーク構成は、地上局１０７ａと１０７ｂとの間のルーティング経路を含むように更新することができる。
【００７６】
上に説明した特徴は、ユーザがデータを世界の異なる構成地域に送信する高信頼度の方法を実現することができる。説明した特徴を使用して作成される通信ネットワークは、ユーザに、フェードおよび機能停止に対してより堅牢なネットワークカバレッジを提供することができる。このため、通信ネットワークのエンドユーザは、通信ネットワークが、より信頼性の高いデータ伝送を実現することができるので、ネットワークを使用する可能性が高くなる。加えて、ノードのモビリティにより、エンドユーザは世界中のデータセンターおよび他の関心地点へのアクセス性を高めることができる。
【００７７】
特に明記しない限り、前述の代替例は、相互に排他的ではないが、独自の利点を達成するために様々な組み合わせで実現することができる。上に説明した特徴のこれらの他の変形および組み合わせは、特許請求の範囲により定義される主題から逸脱することなく利用することができるので、実施形態の前述の説明は、特許請求の範囲により定義される主題の限定としてではなく、例示として捉えられるべきである。加えて、本明細書において説明される例の提供、ならびに「ｓｕｃｈ  ａｓ（のような）」、「ｉｎｃｌｕｄｉｎｇ（含む）」などのような語句で表現される条項は、特許請求の範囲の主題を特定の例に限定するものとして解釈されるべきではない。そうではなく、例は、多くの可能な実施形態のうちの１つのみを例示することを意図されている。さらに、異なる図面の同じ参照番号は、同じ、または同様の要素を特定することができる。
【図１】
2022003816.tif 000003
【図２】
2022003816.tif 000004
【図３】
2022003816.tif 000005
【図４Ａ】
2022003816.tif 000006
【図４Ｂ】
2022003816.tif 000007
【図４Ｃ】
2022003816.tif 000008
【図５】
2022003816.tif 000009
【図６】
2022003816.tif 000010
【図７】
2022003816.tif 000011
【図８】
2022003816.tif 000012
【図９】
2022003816.tif 000013
【図１０】
2022003816.tif 000014
【図１１】
2022003816.tif 000015
【図１２Ａ】
2022003816.tif 000016
【図１２Ｂ】
2022003816.tif 000017
【手続補正書】
【提出日】令和3年10月11日(2021.10.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
所定の期間にわたって利用可能な前記ネットワークの一連のトポロジーを、前記受信された情報に基づいて決定することと、
クライアントデータ情報を１つ以上のリモートデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する１つ以上のネットワーク構成を、少なくとも前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって送信することと、を行うように構成されている、システム。
【請求項２】
前記１つ以上のネットワーク構成は、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第２のノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記第１のルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項１に記載のシステム。
【請求項３】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記ルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項２に記載のシステム。
【請求項４】
前記第２のネットワーク構成は、前記第２のノードと前記ルーティング経路の前記第２の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項３に記載のシステム。
【請求項５】
前記第２のノードは、前記ルーティング経路の前記第２の部分の前記隣接ホップに対して運動している、請求項４に記載のシステム。
【請求項６】
前記ネットワークコントローラは、
前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないと判断することと、
前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないとの判断に応答して、前記１つ以上のネットワーク構成を生成することと、を行うようにさらに構成されている、請求項２に記載のシステム。
【請求項７】
前記複数のノードをさらに備える、請求項１に記載のシステム。
【請求項８】
前記複数のノードは、１つ以上の地上局と、１つ以上の高高度プラットフォームと、を含む、請求項１に記載のシステム。
【請求項９】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項１に記載のシステム。
【請求項１０】
前記ネットワークコントローラは、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノード、および
前記所定のノードを含む、前記１つ以上のネットワーク構成を通るルーティング経路であって、第２の期間に前記クライアントデータを格納するために前記所定のノードが使用される、ルーティング経路に基づいて、
前記決定した一連のトポロジーに関する前記１つ以上のネットワーク構成を、少なくとも前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成するように構成されている、請求項１に記載のシステム。
【請求項１１】
方法であって、
ネットワークのネットワークコントローラにより、前記ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワークコントローラにより、所定の期間にわたって利用可能な前記ネットワークの一連のトポロジーを、前記受信された情報に基づいて決定することと、
前記ネットワークコントローラにより、クライアントデータ情報を１つ以上のリモートデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記ネットワークコントローラにより、前記決定した一連のトポロジーに関する１つ以上のネットワーク構成を、少なくとも前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、方法。
【請求項１２】
前記１つ以上のネットワーク構成は、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第２のノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記ルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項１１に記載の方法。
【請求項１３】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記ルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項１２に記載の方法。
【請求項１４】
前記第２のネットワーク構成は、前記第２のノードと前記ルーティング経路の前記第２の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項１３に記載の方法。
【請求項１５】
前記第２のノードは、前記ルーティング経路の前記第２の部分の前記隣接ホップに対して運動している、請求項１４に記載の方法。
【請求項１６】
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないと判断することと、
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第１のノードと前記第３のノードとの間に経路がないとの判断に応答して、前記１つ以上のネットワーク構成を生成することと、をさらに含む、請求項１２に記載の方法。
【請求項１７】
前記決定した一連のトポロジーに関する１つ以上のネットワーク構成を、少なくとも前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することは、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノードを特定することと、
前記所定のノードを含む、前記１つ以上のネットワーク構成を通るルーティング経路を決定することであって、第２の期間に前記クライアントデータを格納するために前記所定のノードが使用される、決定することと、を含む、請求項１１に記載の方法。
【請求項１８】
プログラムのコンピュータ可読命令の格納先である非一時的な有形のコンピュータ可読記憶媒体であって、前記命令は、ネットワークのネットワークコントローラにより実行されると、前記ネットワークコントローラに方法を実行させ、前記方法は、
前記ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
所定の期間にわたって利用可能な前記ネットワークの一連のトポロジーを、前記受信された情報に基づいて決定することと、
クライアントデータ情報を１つ以上のリモートデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する１つ以上のネットワーク構成を、少なくとも前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、媒体。
【請求項１９】
前記１つ以上のネットワーク構成は、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第の２ノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記ルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項１８に記載の媒体。
【請求項２０】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記第１のルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項１９に記載の媒体。
【請求項２１】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
所定の期間における前記ネットワークを通る複数の利用可能なフローを、前記受信された情報に基づいて決定することと、
前記所定の期間に１つ以上のリモートデバイスに対してクライアントデータ情報を要求することと、
前記要求に応じてクライアントデータ情報を受信することであって、前記受信されたクライアントデータ情報がデータ量を含む、受信することと、
前記所定の期間における前記ネットワークに関する１つ以上のネットワーク構成を、前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって前記１つ以上のリモートデバイスから送信することと、を行うように構成されている、システム。
【請求項２２】
前記複数の利用可能なフローの各フローは、前記１つ以上のリモートデバイスに接続可能である、請求項２１に記載のシステム。
【請求項２３】
前記ネットワークコントローラは、前記複数の利用可能なフローの各フローに関する性能メトリックを決定し、前記決定された性能メトリックにさらに基づいて、前記１つ以上のネットワーク構成を生成するようにさらに構成されている、請求項２１に記載のシステム。
【請求項２４】
前記ネットワークコントローラは、前記複数の利用可能なフローに基づいて利用可能なフローのリストを含むメッセージを送信することで、前記クライアントデータ情報を要求するように構成されている、請求項２１に記載のシステム。
【請求項２５】
前記ネットワークコントローラは、前記所定の期間に前記クライアントデータを送信するためのスケジューリングされた時刻を決定するようにさらに構成され、
前記命令は、前記クライアントデータを送信するための前記スケジューリングされた時刻を含む、請求項２１に記載のシステム。
【請求項２６】
前記スケジューリングされた時刻は、前記受信されたクライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づく、請求項２５に記載のシステム。
【請求項２７】
前記１つ以上のネットワーク構成は、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第の２ノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記第１のルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項２１に記載のシステム。
【請求項２８】
前記第２のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第１のルーティング経路の前記第２の部分は前記第２のノードにあり、前記第２のノードは、前記クライアントデータを前記ルーティング経路の前記第２の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項２７に記載のシステム。
【請求項２９】
前記第２のネットワーク構成は、前記第２のノードと前記ルーティング経路の前記第２の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項２８に記載のシステム。
【請求項３０】
前記第２のノードは、前記ルーティング経路の前記第２の部分の前記隣接ホップに対して運動している、請求項２９に記載のシステム。
【請求項３１】
方法であって、
ネットワークのネットワークコントローラにより、前記ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
前記ネットワークコントローラにより、所定の期間における前記ネットワークを通る複数の利用可能なフローを、前記受信された情報に基づいて決定することと、
前記ネットワークコントローラにより、前記所定の期間に１つ以上のリモートデバイスに対してクライアントデータ情報を要求することと、
前記ネットワークコントローラにおいて、前記要求に応じてクライアントデータ情報を受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記ネットワークコントローラにより、前記所定の期間における前記ネットワークに関する１つ以上のネットワーク構成を、前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって前記１つ以上のリモートデバイスから送信することと、を含む、方法。
【請求項３２】
前記複数の利用可能なフローの各フローは、前記１つ以上のリモートデバイスに接続可能である、請求項３１に記載の方法。
【請求項３３】
前記ネットワークコントローラにより、前記複数の利用可能なフローの各フローに関する性能メトリックを決定することをさらに含み、
前記１つ以上のネットワーク構成を生成することは、前記決定された性能メトリックにさらに基づく、請求項３１に記載の方法。
【請求項３４】
前記クライアントデータ情報を要求することは、前記複数の利用可能なフローに基づいて利用可能なフローのリストを含むメッセージを送信することを含む、請求項３１に記載の方法。
【請求項３５】
前記所定の期間に前記クライアントデータを送信するためのスケジューリングされた時刻を決定することをさらに含み、
前記命令は、前記クライアントデータを送信するための前記スケジューリングされた時刻を含む、請求項３１に記載の方法。
【請求項３６】
前記スケジューリングされた時刻は、前記受信されたクライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づく、請求項３５に記載の方法。
【請求項３７】
前記１つ以上のネットワーク構成は、第１のネットワーク構成と、前記第１のネットワーク構成に従うようにスケジューリングされる第２のネットワーク構成と、第１の部分を第１のノードと第の２ノードとの間に有し、かつ第２の部分を前記第２のノードと第３のノードとの間に有する第１のルーティング経路と、を含み、前記第１のルーティング経路の前記第１の部分が、前記第１のネットワーク構成の構成部分であり、前記ルーティング経路の前記第２の部分が、前記第２のネットワーク構成の構成部分である、請求項３１に記載の方法。
【請求項３８】
プログラムのコンピュータ可読命令の格納先である非一時的な有形のコンピュータ可読記憶媒体であって、前記命令は、ネットワークのネットワークコントローラにより実行されると、前記ネットワークコントローラに方法を実行させ、前記方法は、
前記ネットワークの複数のノードに関する情報を受信することであって、前記受信された情報が各ノードにおいて利用可能なストレージを含み、前記複数のノードが、第２のノードに対して運動している第１のノードを含む、受信することと、
所定の期間における前記ネットワークを通る複数の利用可能なフローを、前記受信された情報に基づいて決定することと、
前記所定の期間に１つ以上のリモートデバイスに対してクライアントデータ情報を要求することと、
前記要求に応じてクライアントデータ情報を受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記所定の期間における前記ネットワークに関する１つ以上のネットワーク構成を、前記データ量および各ノードにおける前記利用可能なストレージに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記１つ以上のネットワーク構成を実現してクライアントデータを前記所定の期間にわたって前記１つ以上のリモートデバイスから送信することと、を含む、媒体。
【請求項３９】
前記クライアントデータ情報を要求することは、前記複数の利用可能なフローに基づいて利用可能なフローのリストを含むメッセージを送信することを含む、請求項３８に記載の媒体。
【請求項４０】
前記方法は、前記所定の期間に前記クライアントデータを送信するためのスケジューリングされた時刻を決定することをさらに含み、
前記命令は、前記クライアントデータを送信するための前記スケジューリングされた時刻を含む、請求項３８に記載の媒体。
【外国語明細書】
2022003816000001.pdf