(57)【要約】本明細書に記載のシステム、方法、およびソフトウェアは、衛星内にアプリケーションを展開するための機能強化を提供する。一例では、衛星は、衛星上の仮想ノードとして実行可能なソフトウェアアプリケーションを受信し、そのソフトウェアアプリケーションに関連するリソーススケジュールを受信することができる。衛星は、さらに、リソーススケジュールに基づいて衛星上でソフトウェアアプリケーションを実行することができ、リソーススケジュールは、処理リソースおよびユーザセンサリソースをソフトウェアアプリケーションに割り当てる。【選択図】図１
2019537351.tif 000002
【特許請求の範囲】
【請求項１】
複数の衛星装置であって、それぞれが、通信インターフェース、および、仮想ノードとして関連する前記衛星装置上に展開されたソフトウェアペイロードを実行するように構成された仮想化実行システムを備える複数の衛星装置と、
第１の衛星装置であって、前記第１の衛星装置上の第１の仮想ノードの実行に関する状態情報を維持し、少なくとも第２の衛星装置への配信のために、前記状態情報を転送するように構成された、第１の衛星装置と、
前記状態情報を受信し、前記状態情報に従って第２の仮想ノードを実行するように構成された前記第２の衛星装置と、を備える軌道衛星クラスタ化プラットフォーム。
【請求項２】
少なくとも前記第１の衛星装置および前記第２の衛星装置は、関連する通信リンクを介して、関連する前記仮想化実行システムと通信可能に結合された１つ以上のセンサシステムを備え、
前記軌道衛星クラスタ化プラットフォームは、
前記状態情報を確立するために、前記第１の衛星装置の前記１つ以上のセンサシステムを採用するように構成された前記第１の衛星装置と、
第２の衛星装置であって、前記第２の衛星装置による前記第２の仮想ノードの実行中に前記状態情報を修正するために、前記第２の衛星装置の前記１つ以上のセンサシステムを採用するように構成された前記第２の衛星装置と、を備える、請求項１に記載の軌道衛星クラスタ化プラットフォーム。
【請求項３】
少なくとも前記第１の衛星装置および前記第２の衛星装置は、関連する通信リンクを介して、関連する前記仮想化実行システムと通信可能に結合された１つ以上の撮像システムを備え、
前記軌道衛星クラスタ化プラットフォームは、
前記第１の撮像システムによって撮像された撮像データに関連する前記状態情報を確立するために、第１の撮像システムを採用するように構成された前記第１の衛星装置と、
第２の衛星装置であって、前記第２の撮像システムによって撮像された少なくとも撮像データで、前記状態情報を修正するために、第２の撮像システムを採用するように構成された前記第２の衛星装置と、を備える、請求項１に記載の軌道衛星クラスタ化プラットフォーム。
【請求項４】
少なくとも１つの地上ベースの関心オブジェクトの位置追跡を確立するために、前記第２の撮像システムによって撮像された少なくとも前記撮像データで、前記状態情報を修正するように構成された前記第２の衛星装置を備える、請求項３に記載の軌道衛星クラスタ化プラットフォーム。
【請求項５】
少なくとも１つの地上ベースの関心オブジェクトに関するオブジェクト認識プロセスにおいて、前記第２の撮像システムによって撮像された少なくとも前記撮像データで、前記状態情報のデータ分析を少なくとも改良することにより、前記第２の撮像システムによって撮像された少なくとも前記撮像データで前記状態情報を修正するように構成された前記第２の衛星装置を備える、請求項３に記載の軌道衛星クラスタ化プラットフォーム。
【請求項６】
少なくとも前記第１の衛星装置の動作状態を監視するように構成された前記第２の衛星装置を備え、
前記第２の衛星装置は、前記第１の衛星装置の前記動作状態における障害の検出に応答して、前記第１の衛星装置により前記第１の仮想ノードとして実行されたソフトウェアペイロードの実行に関するピアリング仮想ノードを確立するように構成され、前記ピアリング仮想ノードは、前記ピアリング仮想ノードとして前記ソフトウェアペイロードの実行継続のために、前記第２の衛星装置に受信された前記状態情報の少なくとも一部を包含する、請求項１に記載の軌道衛星クラスタ化プラットフォーム。
【請求項７】
衛星通信要素を備え、前記第１の衛星装置に対する軌道バックアップとして構成された少なくとも１つのピア衛星装置に配信するための前記状態情報を転送するように構成された前記第１の衛星装置を備える、請求項１に記載の軌道衛星クラスタ化プラットフォーム。
【請求項８】
前記第１の衛星装置によって転送された前記状態情報を受信するように構成された前記第２の衛星装置を備え、前記状態情報は前記第１の衛星装置上の１つ以上の仮想ノードの実行に関するデータを含み、
前記状態情報の受信に応答して、前記第２の衛星装置上に１つ以上のさらなる仮想ノードの実行を確立するように構成された前記第２の衛星装置を備え、前記１つ以上のさらなる仮想ノードは、前記状態情報に示された前記第１の衛星装置によって実施される少なくとも１つの活動を継続する、請求項１に記載の軌道衛星クラスタ化プラットフォーム。
【請求項９】
クラスタ化された軌道衛星プラットフォームを動作させる方法であって、
各々が通信インターフェースおよび仮想実行システムを備える複数の衛星装置において、仮想ノードとして関連する前記衛星装置上に展開されたソフトウェアペイロードを実行することと、
第１の衛星装置において、前記第１の衛星装置上の第１の仮想ノードの実行に関する状態情報を維持して、少なくとも第２の衛星装置に配信するための前記状態情報を転送することと、
前記第２の衛星装置において、前記第１の衛星装置の１つによって転送される、関連する状態情報を受信して、前記状態情報に従って第２の仮想ノードを実行することと、を含む方法。
【請求項１０】
少なくとも前記第１の衛星装置および前記第２の衛星装置は、関連する通信リンクを介して、関連する前記仮想化実行システムと通信可能に結合される１つ以上のセンサシステムを備え、
方法は、
前記第１の衛星装置において、状態情報を確立するように、前記第１の衛星の前記１つ以上のセンサシステムを採用することと、
前記第２の衛星装置において、前記第２の衛星装置による前記第２の仮想ノードの実行中に状態情報を修正するように、前記第２の衛星装置の前記１つ以上のセンサシステムを採用することと、を含む、請求項９に記載の方法。
【請求項１１】
少なくとも前記第１の衛星装置および前記第２の衛星装置は、関連する通信リンクを介して、関連する前記仮想化実行システムと通信可能に結合されている１つ以上の撮像システムを備え、
前記第１の衛星装置において、第１の撮像システムによって撮像された撮像データに関する前記状態情報を確立するように、前記第１の撮像システムを採用することと、
前記第２の衛星装置において、第２の撮像システムによって撮像された少なくとも撮像データで前記状態情報を修正するように、前記第２の撮像システムを採用することと、を含む、請求項９に記載の方法。
【請求項１２】
前記第２の衛星装置において、少なくとも１つの地上ベースの関心オブジェクトの位置追跡を確立するように、前記第２の撮像システムによって撮像された少なくとも前記撮像データで、前記状態情報を修正することを含む、請求項１１に記載の方法。
【請求項１３】
前記第２の衛星装置において、少なくとも１つの地上ベースの関心オブジェクトに関するオブジェクト認識プロセスにおいて、前記第２の撮像システムによって撮像された少なくとも前記撮像データで、前記状態情報のデータ分析を少なくとも改良することにより、前記第２の撮像システムによって撮像された少なくとも前記撮像データで前記状態情報を修正することを含む、請求項１１に記載の方法。
【請求項１４】
前記第２の衛星装置において、少なくとも前記第１の衛星装置の動作状態を監視することと、
前記第２の衛星装置において、前記第１の衛星装置の前記動作状態における障害の検出に応答して、前記第１の衛星装置により前記第１の仮想ノードとして実行されたソフトウェアペイロードの実行に関するピアリング仮想ノードを確立することと、を含み、前記ピアリング仮想ノードは、前記ピアリング仮想ノードとして前記ソフトウェアペイロードの実行継続のために、前記第２の衛星に受信された前記状態情報の少なくとも一部を包含する、請求項９に記載の方法。
【請求項１５】
前記第１の衛星装置が衛星間通信要素を備え、前記方法は、前記第１の衛星装置において、前記第１の衛星装置に対する軌道バックアップとして構成された少なくとも１つのピア衛星装置に配信するための前記状態情報を転送することをさらに含む、請求項９に記載の方法。
【請求項１６】
前記第２の衛星装置において、前記第１の衛星装置によって転送された前記状態情報を受信することであって、前記状態情報は前記第１の衛星装置上の１つ以上の仮想ノードの実行に関するデータを備える、前記状態情報を受信することと、
前記第２の衛星装置において、前記状態情報の受信に応答して、前記第２の衛星装置上に１つ以上のさらなる仮想ノードの実行を確立することであって、前記１つ以上のさらなる仮想ノードが、前記状態情報に示された前記第１の衛星装置によって実施される少なくとも１つの活動を継続する請求項９に記載の方法。
【請求項１７】
１つ以上のコンピュータ可読記憶媒体と、
前記１つ以上のコンピュータ可読記憶媒体と動作可能に結合された処理システムと、
状態情報を１つ以上の第２の衛星と通信するように、前記１つ以上のコンピュータ可読記憶媒体に記憶されたプログラム命令と、を備え、前記プログラム命令が、前記処理システムによって読み取られて実行されるときに、前記処理システムに対して、少なくとも、
仮想ノードとして展開されるソフトウェアペイロードを実行させ、
第２の衛星装置から状態情報を受信させ、
前記第２の状態情報に従って、前記仮想ノードにおいて少なくとも１つの仮想ノードを実行させる、衛星装置。
【請求項１８】
前記プログラム命令は、前記処理システムに対して、前記少なくとも１つの仮想ノードの実行中に前記状態情報を修正するように、１つ以上のセンサシステムを採用させる、請求項１７に記載の衛星装置。
【請求項１９】
前記プログラム命令は、前記処理システムに対して、前記衛星装置によって撮像された少なくとも撮像データで前記状態情報を修正させる、請求項１７に記載の衛星装置。
【請求項２０】
前記プログラム命令は、前記処理システムに対して、少なくとも１つの地上ベースの関心オブジェクトの位置追跡を確立するように、前記衛星装置によって撮像された少なくとも撮像データで前記状態情報を修正させる、請求項１７に記載の衛星装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、その全体が参照することにより本明細書に組み込まれる２０１６年１０月１９日に出願された「クラスタ化された衛星プラットフォーム間のステートフルネス（状態把握性）」と題する米国特許出願第１５／２９７，４６１号の利益および優先権を主張する。
【背景技術】
【０００２】
衛星は、軍事および民間の観測業務、通信業務、ナビゲーション業務、気象業務、ならびに研究業務などの様々な宇宙ベースの業務を提供するために軌道に展開されることができる。衛星は、所望のタスクを実行するために使用される様々なセンサおよび通信機器を含むことができる。例えば、気象衛星は、地球の画像を撮像するために使用することができる１つ以上のカメラまたは撮像センサ、およびその画像を地球上の制御システムに通信するために使用することができる通信機器を含むことができる。衛星は、これらの特殊な動作を実行するように構成されることができるが、衛星は、作製して軌道に投入するには高価であり、特に多数のセンサを有する衛星全体の使用を必要としなくてもよい、または衛星において連続動作を必要としなくてもよい組織にとっては高価である。その結果、組織は、衛星の使用を避け、有望な衛星技術の使用を制限する可能性がある。
【発明の概要】
【０００３】
本明細書に開示される技術は、周回軌道衛星に対するアプリケーションを展開するための機能強化を提供する。一実施例では、衛星は、少なくとも地上通信部と衛星間通信部とを含む通信インターフェースと、衛星の物流制御要素を動作させるように構成された衛星制御システムとを備える。衛星は、さらに、関連する仮想ノードとして衛星上に展開された複数のソフトウェアペイロード（ｐａｙｌｏａｄ）を実行するように構成された仮想化実行システムを備える。
【０００４】
この発明の概要は、技術的開示において以下にさらに説明される概念の選択を単純化された形態で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴または本質的な特徴を特定することを意図するものではなく、特許請求される主題の範囲を限定するためにも使用されるべきではないことが理解されるべきである。
【図面の簡単な説明】
【０００５】
本開示の多くの態様は、以下の図面を参照してより良好に理解されることができる。これらの図面に関連していくつかの実施例が説明されるが、本開示は、本明細書に開示された実施例に限定されるものではない。それどころか、その意図は、全ての代替例、変更例、および均等物を網羅することである。
【０００６】
【図１】図１は、実施例にかかる衛星環境を示している。
【図２】図２は、実施例にかかる仮想ノード用のプラットフォームを提供することができる衛星の拡大図を示している。
【図３】図３は、実施例にかかる仮想ノード用のプラットフォームを提供することができる衛星を展開する動作を示している。
【図４】図４は、実施例にかかる衛星内に仮想アプリケーションを展開する動作を示している。
【図５】図５は、実施例にかかる衛星間で状態情報を提供することができる衛星システムを示している。
【図６】図６は、実施例にかかる衛星クラスタ内の衛星の障害を解消するタイミング図を示している。
【図７】図７は、実施例にかかる衛星上の少なくとも１つのアプリケーションノードの障害を解消するための動作を示している。
【図８】図８は、実施例にかかる衛星間で状態情報を提供する動作シナリオを示している。
【図９】図９は、実施例にかかる衛星の障害に応答して新たなピアを生成する動作シナリオを示している。
【図１０】図１０は、実施例にかかる衛星システムにおける衛星の障害を解消するタイミング図を示している。
【図１１】図１１は、実施例にかかる衛星動作を示している。
【図１２】図１２は、実施例にかかる展開ユーザインターフェースを示している。
【図１３】図１３は、実施例にかかる仮想化衛星アプリケーションプラットフォームを提供するための衛星コンピューティングシステムを示している。
【図１４】図１４は、実施例にかかる仮想衛星アプリケーションを生成するための開発コンピューティングシステムを示している。
【発明を実施するための形態】
【０００７】
本明細書に開示される様々な例は、衛星ハードウェアおよびソフトウェア技術に対する機能拡張を提供する。特に、本明細書に開示される例は、周回軌道衛星プラットフォームにソフトウェアアプリケーションを展開するためのシステムおよび方法を提供し、各ソフトウェアアプリケーションは、同じ衛星に展開される１つ以上の他のアプリケーションとリソースを共有することができる仮想ノードとして実行する。これらの仮想ノードは、いくつかの例ではフルオペレーティングシステム仮想マシンを含むことができ、さらに仮想コンテナを含むことができる。これらのコンテナは、Ｄｏｃｋｅｒコンテナ、Ｌｉｎｕｘ（登録商標）コンテナ、ｊａｉｌ、またはホストシステムからのリソースの効率的な管理を提供することができる他の同様のタイプの仮想コンテインメントノードを含むことができる。コンテナによって使用されるリソースは、ホストコンピューティングシステムからのカーネルリソースを含むことができ、ホスト上で実行される他のコンテナまたはプロセスと共有されることができるリポジトリおよび他の承認されたリソースをさらに含むことができる。しかしながら、リソースは、ホスト衛星上のコンテナ間で共有されることができるものの、コンテナは、独自の識別子空間、ファイルシステム構造、およびネットワークインターフェースを使用してオペレーティングシステムに対するプライベートアクセスを有するようにプロビジョニングされる。
【０００８】
この例では、衛星プラットフォームを提供するために、複数の衛星が展開されることができ、組織は、アプリケーションを生成し、そのアプリケーションを衛星に展開して所望の動作を実行することができる。これらの動作は、軍事および民間の観測業務、通信業務、ナビゲーション業務、気象業務、および研究業務を含むことができる。アプリケーションを開発するために、組織が開発ツールを使用してソフトウェアアプリケーションを開発することを可能にする開発プラットフォームが提供されることができる。ツールを使用して開発されると、アプリケーションは、物理衛星プラットフォームを複製した仮想または物理試験環境で実行されることができる。この試験環境は、ユーザがソフトウェアアプリケーションを１つ以上の試験衛星にアップロードし、アプリケーションを物理衛星クラスタに展開する前にアプリケーションの動作を監視することを可能にすることができる。いくつかの実施例では、アプリケーションを開発する際に、提供される開発ツールは、アプリケーションが物理衛星によって提供される様々なセンサおよびインターフェースを要求およびアクセスすることを可能にするアプリケーションプログラミングインターフェース（ＡＰＩ）またはいくつかの他のコマンド構造を含むことができる。したがって、各ソフトウェアアプリケーションは、異なる動作を実行することができるが、それらは、同様のコマンドを使用して、カメラ、アンテナなどのセンサと対話することができる。
【０００９】
開発ツールおよび試験環境を使用してアプリケーションが開発されると、そのアプリケーションは、周回軌道衛星プラットフォームの１つ以上の衛星に展開されることができる。いくつかの実施例では、１つ以上の衛星へのアップリンクとして地上制御システムを使用して、１つ以上の衛星のそれぞれにユーザソフトウェアペイロードとしてアプリケーションが提供されることができる。他の実施例では、プラットフォーム内の衛星に対して単一のアップリンクが作成されることができ、衛星は、アプリケーションをプラットフォーム内の他の所望の衛星に配信するように構成される。環境に展開されると、アプリケーションは、割り当てられた衛星上で実行されることができる。
【００１０】
いくつかの実施例では、各衛星上でのアプリケーションの実行を管理するために、スケジュールが生成されてもよく、スケジュールは、各アプリケーションの処理のスケジューリング、ならびにユーザセンサへの各アプリケーションについてのアクセスを担うことができる。例えば、衛星上の第１のアプリケーションは、第１の期間中に撮像センサへのアクセスを必要としてもよいが、第２のアプリケーションは、第２の期間中に同じセンサへのアクセスを必要としてもよい。衛星に提供されたスケジュールは、定義された期間に基づいて各アプリケーション間のアドレス指定リンクを判定してセンサに割り当てるために使用されてもよい。少なくとも一実施例では、一度に複数のアプリケーションが同じセンサに割り当てられてもよい。これは、異なる動作を提供するアプリケーションが同じデータを受信するがデータに関して異なる機能を提供することを可能にすることができる。他の実施例では、単一のアプリケーションは、受信する他のアプリケーションが同時にセンサにアクセスしないことを好むことがある。したがって、スケジュールは、定義された期間中に単一のアプリケーションのみが割り当てられ、またはセンサと通信することができることを保証することができる。
【００１１】
いくつかの実施例では、衛星プラットフォームの衛星は、それぞれ、プラットフォームについての１つ以上の他の衛星および地上制御システムと状態情報を交換することができる。この状態情報は、動作しているタスクまたはプロセスなど、各アプリケーションの現在の動作状態情報を含むことができ、さらに衛星のセンサから少なくとも部分的に生成されたデータを交換することができる。このデータは、ピアグループ（Ｐｅｅｒ  ｇｒｏｕｐ）で使用されることができ、第１の衛星は、第１のデータセットを識別し、そのデータを第２の衛星に提供することができる。そして、第２の衛星は、第２のデータを識別し、アプリケーションによって定義されるような第１および第２のデータを処理することができる。一例として、この動作は、撮像動作において使用されることができ、第１の衛星は、第１の期間にわたってオブジェクトの画像を撮像し、その画像についてのデータを第２の衛星に提供することができる。第２の衛星は、後続の画像を撮像し、第１の画像および後続の画像についてのデータを使用して、オブジェクトに関する判定を下すことができる。これは一例であるが、他の動作は、状態データのピア共有を使用して衛星センサからの測定データに関する特性を識別することができることが理解されるべきである。
【００１２】
図１は、実施例にかかる衛星環境１００を示している。衛星環境１００は、衛星１１０〜１１３と、衛星１２０〜１２３と、地球１９０と、地上制御システム１７０と、打ち上げシステム１８０とを含む。衛星１１０および１２０は、第１のピアグループ１４０に属し、衛星１１１、１１２および１２２は、第２のピアグループ１４１に属し、ピアグループは、アプリケーション状態およびその上で実行されるアプリケーションについてのデータなどの状態情報を共有するために使用されることができる。衛星１１０〜１１３および衛星１２０〜１２３は、無線通信リンク１３０〜１３２を介して通信する。地上制御システム１７０は、無線通信リンク１３５を使用して衛星１１０〜１１３および衛星１２０〜１２３と通信する。
【００１３】
本明細書に記載されるように、複数の衛星１１０〜１１３および１２０〜１２３は、複数の異なるソフトウェアアプリケーションについての周回軌道プラットフォームとして打ち上げられて展開されることができる。アプリケーションを生成するために、組織がソフトウェアアプリケーションを生成することを可能にする様々なツールおよびＡＰＩを含むことができる設計プラットフォーム１７５が提供される。いくつかの実施例では、設計プラットフォーム１７５は、衛星のそれぞれで利用可能な選択可能な機能およびインターフェース要素をユーザに提供することができる。機能および利用可能なインターフェース要素を使用して、特定の組織についての開発者または複数の開発者は、所望の動作を実行するソフトウェアアプリケーションを生成することができる。例えば、開発者は、衛星上のカメラを使用して関連オブジェクトの動きを追跡するアプリケーションを生成することができる。
【００１４】
アプリケーションが開発されると、そのアプリケーションは、アプリケーションを衛星プラットフォームに展開する前にアプリケーションを検証および試験するために使用されることができる検証プラットフォーム１７６に提供されることができる。検証プラットフォーム１７６は、物理または仮想テストベッドを含むことができ、アプリケーションは、アプリケーションの機能を判定するために１つ以上の試験衛星に展開されることができる。いくつかの実施例では、機能性を試験することに加えて、検証プラットフォームは、アプリケーションが物理プラットフォーム上で動作することを承認されていることを保証するために、アプリケーションに試験をさらに適用することができる。これらの試験は、限定されるものではないが、アプリケーションが同じ衛星上で実行されることができる他のアプリケーションに対して悪意がないことを確認すること、アプリケーションが衛星の飛行構造または動作を変更しないことを確認すること、データが他の衛星と地上制御システムとの間で適切に通信されることを確認すること、またはアプリケーションの動作を検証するための任意の他の同様の試験を含むことができる。
【００１５】
アプリケーションが検証された後、周回軌道クラスタ内でアプリケーションをスケジューリングするために編成プラットフォーム１７７が地上制御システム１７０の一部として使用されることができる。このスケジューリングは、どの衛星が生成されたアプリケーションに適用されるか、アプリケーションに割り当てられることができる処理リソース、他のアプリケーションとともに展開されるときのアプリケーションのセキュリティ要件、またはいくつかの他の同様のスケジューリング要件を識別するために使用されることができる。要件が定義されると、その要件に基づいてスケジュールが決定されることができ、スケジュールは、アプリケーションの動作のために１つ以上の衛星、ならびに衛星上の処理スケジュールを割り当てることができる。例えば、アプリケーションは、地球１９０の片側での動作のみを必要とすることができる。その結果、編成プラットフォーム１７７は、衛星が地球１９０の特定の側に地理的に位置しているときにアプリケーションの処理を可能にするスケジュールを生成することができる。
【００１６】
上記提供された例は、スケジュールを生成する１つのバージョンを含むが、アプリケーションについての動作のスケジュールを決定する際に他の情報が使用されてもよいことが理解されるべきである。例えば、アプリケーションの開発者は、衛星上の処理リソースおよびユーザセンサを割り当てる際に使用可能なコスト制約を供給することができる。他の実施例では、開発者は、センサセキュリティなどの要件、および処理要件を提供してもよく、必要な基準を提供する利用可能な衛星のリストが提供されてもよい。リストから、開発者は、その後に所望される時間および衛星を選択し、衛星プラットフォームへの展開のためにアプリケーションを承認することができる。
【００１７】
アプリケーションが衛星プラットフォームの衛星に展開されることが承認されると、地上制御システム１７０は、衛星のうちの１つ以上とのアップリンクを開始してアプリケーションを衛星に提供するとともに、衛星に関する任意のスケジューリング情報を更新することができる。所望の衛星にアップロードされると、アプリケーションは、編成プラットフォーム１７７において決定されたスケジューリングに基づいて実行を開始することができる。いくつかの実施例では、地上制御システム１７０からのアップリンクは、必要とされる衛星にアプリケーションを提供する責を単独で担うことができる。他の実施例では、地上制御システム１７０は、その後にそのアプリケーションを衛星プラットフォームの１つ以上の他の衛星に配信することができる第１のセットの衛星にアプリケーションを供給してもよい。例えば、地上制御システム１７０は、第１のアプリケーションを衛星１２０に提供してもよく、衛星１２０は、次にそのアプリケーションをピアグループ内の他の衛星に供給してもよい。特に、衛星１２０は、同じピアグループ内にある衛星１１０にアプリケーションを提供することができ、衛星１１０が地上制御システム１７０から通信を直接受信することなくアプリケーションの動作を提供することを可能にする。さらに、衛星に初期設定を提供するのと同様に、地上制御システム１７０は、衛星プラットフォームにおいて動作する各アプリケーションに更新を供給するためにさらに使用されてもよく、各衛星上の任意のスケジューリング情報をさらに更新してもよい。
【００１８】
衛星環境１００に示されているものはまた、衛星（ＳＡＴＳ）１８１を周回軌道衛星１１０〜１１３および１２０〜１２３とともに周回するように輸送するために使用されることができる打ち上げシステム１８０である。衛星１８１は、アプリケーションが衛星上で仮想ノードとして実行することを可能にするハードウェアおよびソフトウェア構成を含む。いくつかの実施例では、衛星１８１は、アプリケーションなしで打ち上げシステム１８０を使用して打ち上げられることができ、代わりに、地上制御システム１７０からアップリンクで提供されるときにアプリケーションをロードおよび実行するために使用されることができる基本オペレーティングシステムまたはハイパーバイザが提供されることができる。他の実施例では、衛星１８１は、衛星上のオペレーティングシステムまたはハイパーバイザを介して実行されることができる第１のアプリケーションのセットを用いて構成されることができる。したがって、軌道に入ると、アプリケーションは、実行を開始してアプリケーションの動作を提供することができる。これらのアプリケーションは、さらに、地上制御システム１７０からアップリンクで提供される情報に基づいて追加され、除去され、変更されることができる。
【００１９】
図２は、実施例にかかる仮想ノード用のプラットフォームを提供することができる衛星１１０の拡大図２００を示している。衛星１１０は、仮想化実行セグメント２０１、制御セグメント２０２、およびインターフェースセグメント２０３を含み、これらは様々な通信リンクを使用して結合されることができる。仮想化実行セグメント２０１は、仮想ノード２４１〜２４４用の仮想化ユーザ空間２４０、オペレーティングシステムまたはハイパーバイザ２３５、オペレーティングシステムおよび仮想ユーザ空間を記憶するための記憶システム２３２、ならびに処理システム２３０を含む仮想化実行システムを表す。制御セグメント２０２は、さらに、飛行制御システム２１１と推進ナビゲーション２１０とを含む。インターフェースセグメント２０３は、さらに、ユーザセンサ２２０および通信インターフェース２２１を含み、通信インターフェース２２１は、地上通信および衛星間通信に使用されることができる。ユーザセンサ２２０は、撮像センサ、温度センサ、光センサ、または仮想ノード２４１〜２４４と相互作用することができるいくつかの他の同様のセンサを含むことができる。
【００２０】
本明細書で説明されるように、組織は、衛星プラットフォームのうちの１つ以上の衛星上の仮想ノードとして展開されることができるアプリケーションを生成することができる。これらのアプリケーションは、地上制御システムから提供されてもよく、または衛星１１０上の通信インターフェース２２１を介して他の衛星から提供されてもよい。アプリケーションが提供されると、記憶システム２３２に記憶され且つ処理システム２３０によって実行されるオペレーティングシステム／ハイパーバイザ２３５は、アプリケーションを実行するためのプラットフォームを提供することができる。ここで、衛星１１０に提供される各アプリケーションは、仮想ノード２４１〜２４４における別個の仮想ノードとして実行され、仮想ノードは、記憶システム２３２における基本オペレーティングシステムからリソースを共有することができるフルオペレーティングシステム仮想マシンまたはコンテナを含むことができる。
【００２１】
仮想ノードの実行を管理するために、オペレーティングシステム／ハイパーバイザ２３５は、処理システム２３０の処理リソースを各ノードに、ユーザセンサ２２０を各ノードに、および衛星１１０上の他の同様のリソースを割り当てるために使用されるスケジュールを管理することができる。特に、スケジュールは、各アプリケーションが、定義された期間中に処理システム２３０から処理リソースを受け取るようにスケジューリングされ、定義された期間中にユーザセンサ２２０へのアクセスを受け取るようにスケジュールされることを保証するために使用されることができる。いくつかの実施例では、アプリケーションのうちの１つ以上は、衛星１１０上で同じ期間中に実行されることができる。これらのアプリケーションは、ユーザセンサ２２０における異なるセンサを使用してもよく、ユーザセンサ２２０におけるセンサの使用を時分割してもよく、またはそれらの動作においてユーザセンサ２２０からの同じデータを使用してもよい。センサを割り当てるために、オペレーティングシステム２３５は、各動作仮想ノードに必要なユーザセンサへの通信リンクを提供し、スケジューリングに基づいて必要なセンサへの通信リンクを割り当て解除または削除することを担うことができる。例えば、撮像装置は、第１の期間中に仮想ノード２４１によってアクセスされてもよく、仮想ノード２４１は、オペレーティングシステム２３５によって提供されたアドレス指定情報に基づいてセンサにアクセスしてもよい。期間が満了すると、オペレーティングシステム２３５は、いくつかの例では、仮想ノードのアドレス指定アクセスを削除し、センサのアクセスを第２の仮想ノードに割り当てることによって、仮想ノード２４１がセンサにアクセスするのを防ぐことができる。
【００２２】
仮想化実行セグメント２０１で提供される仮想ノード動作に加えて、衛星１１０は、さらに、制御セグメント２０２を含む。仮想化実行セグメント２０１およびインターフェースセグメント２０３に通信可能にリンクされることができる制御セグメント２０２は、衛星１１０の衛星の物流制御要素を担う。これらの動作は、衛星上の太陽電池パネルの配備を管理すること、地球もしくは太陽に関する衛星の位置を管理すること、または任意の他の同様の動作を含むことができる。少なくとも１つの例では、飛行制御システム１１１は、オペレーティングシステム２３５からの要求を監視し、衛星がオペレーティングシステム２３５からの要求を受け入れることができるかどうかを判定することができる。例えば、仮想ノード２４１は、ユーザセンサを移動させる要求を生成することができ、これも推進およびナビゲーション２１０を使用した移動を必要とする。要求に応答して、飛行制御システム２１１は、移動ができないと判定し、推進およびナビゲーション２１０を使用して衛星の移動を防止することができる。さらに、いくつかの実施例では、飛行制御システム２１１は、移動が許可されていないことを示す通知をオペレーティングシステム２３５および仮想ノード２４１に提供することができる。
【００２３】
図２の例では別個のシステムとして示されているが、いくつかの例では、飛行制御システムは、処理システム２３０および記憶システム２３２上に実装されて記憶されてもよいことが理解されるべきである。しかしながら、飛行制御システムは、別個の記憶システムに記憶され、オペレーティングシステム２３５およびその対応する仮想ノードとは異なる処理システムを使用してもよいこともまた理解されるべきである。
【００２４】
図３は、実施例にかかる仮想ノード用のプラットフォームを提供することができる衛星を展開する動作を示している。図３の動作は、図１の衛星環境１００のシステムおよびオブジェクトを参照して以下の段落において括弧内で参照される。
【００２５】
図示のように、動作は、衛星プラットフォームの１つ以上の衛星内の仮想ノードとして展開されることができるアプリケーションを開発すること（３０１）を含む。アプリケーションを開発するために、アプリケーションが衛星上のセンサを使用およびアクセスして所望のデータを取得することを可能にするツールおよびＡＰＩを含む設計プラットフォーム１７５が開発者に提供されることができる。設計プラットフォーム１７５を使用してアプリケーションが開発されると、開発者は、検証プラットフォーム１７６によって図１に表されているシミュレーションプラットフォームを使用してアプリケーションを試験し（３０２）、検証プラットフォームは、アプリケーションの動作を監視するために物理または仮想シミュレーションプラットフォームを提供することができる。さらに、検証プラットフォーム１７６は、アプリケーションが他の協調アプリケーションと干渉しないこと、または衛星自体の飛行にいかなる問題も引き起こさないことを保証するために様々な試験を提供することができる。
【００２６】
試験されると、アプリケーションは、衛星プラットフォーム内の１つ以上の衛星に展開される（３０３）。いくつかの例では、アプリケーションを衛星に展開するために、アプリケーションは、スケジュールを必要とすることができ、そのスケジュールは、アプリケーションの開発者のタスクおよび予算の要件に基づいて決定されることができる。少なくとも一実施例では、ユーザは、関心のある地理的領域、関心のある動作時間、予算の制約、またはそれらの組み合わせを含む任意の他の同様の変数を編成プラットフォーム１７７に提供することができる。変数が提供されると、ユーザは、所望のタスクを実行するために利用可能な衛星のプールおよび動作時間から選択することができる。スケジューリングされると、アプリケーションは、地上制御システム１７０を介して衛星プラットフォーム内の１つ以上の衛星に展開されることができる。衛星のそれぞれについての更新されたスケジュールとともに展開された後、アプリケーションは、同じ衛星上の１つ以上のアプリケーションとともに仮想ノードとして実行されることができる。
【００２７】
オプションの動作として、図３に示すように、アプリケーションは、さらに、第１の衛星から１つ以上の二次衛星へと展開されてもよい（３０４）。衛星にわたるこの展開は、地上制御システム１７０がアプリケーションを衛星プラットフォームにアップロードする回数を少なくすることを可能にし、代わりに、アプリケーション自体がアプリケーションをプラットフォーム内の他の衛星ノードに配信または展開することを可能にする。例えば、地上制御システム１７０は、衛星１２２にアプリケーションを展開することができる。次に、衛星１２２は、アプリケーションを衛星１１１〜１１２に展開して、アプリケーション用のピアグループ１４１を生成することができる。したがって、個々の衛星にアプリケーションを提供するために地上制御システム１７０に頼る代わりに、衛星自体が衛星プラットフォーム全体にアプリケーションを展開することができる。
【００２８】
図４は、実施例にかかる衛星内に仮想アプリケーションを展開する動作を示している。図３の動作は、図１のコンピューティング環境１００のシステムおよびオブジェクトを参照して以下の段落において括弧内で参照される。特に、図４の動作は、図１および図２の衛星１１０を参照して説明される。
【００２９】
図４に示すように、動作は、衛星１１０上の個々の仮想ノードとして実行可能な複数のアプリケーションを展開すること（４０１）を含む。これらの仮想ノードは、いくつかの例ではフルオペレーティングシステム仮想マシンを含むことができるが、いくつかの場合にはＤｏｃｋｅｒおよびＬｉｎｕｘ（登録商標）コンテナなどのコンテナも含むことができる。これらのアプリケーションは、地上制御システム１７０を使用して衛星１１０に提供されてもよく、また、衛星プラットフォーム内を周回する他の衛星を介して提供されてもよい。アプリケーションに加えて、動作は、さらに、衛星１１０上の複数のアプリケーションについてのリソーススケジュールを展開すること（４０２）を含み、リソーススケジュールは、ユーザセンサの利用可能性および各アプリケーションに対するシステムリソースの処理をスケジューリングするために使用される。このリソースのスケジューリングは、いくつかの例では時分割スケジューリングを含むことができ、２つのアプリケーションは、いずれかの場合に処理システムおよび／またはセンサにアクセスすることが防止されることができる。例えば、仮想ノード２４１として動作する第１のアプリケーションは、処理システム２３０上で第１の期間中に実行されることができるのに対して、仮想ノード２４２として動作する第２のアプリケーションは、処理システム２３１上で第２の期間中に実行されることができる。時間リソーススケジューリングに加えてまたはその代わりに、アプリケーションには、衛星１１０の物理ハードウェアをいずれかの場合に複数のアプリケーションに提供するために使用されることができるハードウェアリソーススケジューリングがさらに提供されることができる。例えば、仮想ノード２４１として動作する第１のアプリケーションは、処理システム２３０の第１の処理コアを使用して実行されることができるのに対して、仮想ノード２４２として動作する第２のアプリケーションは、処理システム２３０の第２の処理コアを使用して実行されることができる。
【００３０】
これらは、衛星１１０に提供されるリソーススケジュールを介して達成されることができる時分割およびリソース分割のいくつかの例であるが、時分割およびリソース分割の他の組み合わせがリソーススケジュールを介して提供されてもよいことが理解されるべきである。
【００３１】
アプリケーションおよびリソーススケジュールが衛星１１０に提供されると、動作は、さらに、リソーススケジュールに基づいて複数のアプリケーションを実行すること（４０３）を含む。いくつかの実施例では、スケジュールが提供されると、そのスケジュールは、各仮想ノードの割り当て特権および実行特権を決定するためにオペレーティングシステム２３５によって使用されることができる。したがって、動作システム２３５は、スケジュールに基づいて、仮想マシンを開始および停止し、各仮想マシンにセンサへのアドレス指定を提供し、他の可能なスケジューリング動作の中でも、仮想マシンへのリソースの不適切なアクセスを防ぐためのセキュリティ対策を確立することができる。
【００３２】
ここで図５を参照すると、図５は、実施例にかかる衛星間で状態情報を提供することができる衛星システム５００を示している。動作シナリオ５００は、衛星５１０〜５１２を有する衛星クラスタ５２０を含み、さらに地球５４０上の地上制御システム５３０を含む。衛星５１０〜５１２は、図１〜４にさらに記載されているように、衛星１１０〜１１３および１２０〜１２３と同様に構成されることができる。
【００３３】
本明細書に記載されるように、衛星プラットフォームが展開されることができ、複数の衛星がソフトウェアアプリケーション用の処理空間を提供することが可能である。いくつかの実施例では、衛星プラットフォームは、衛星のうちの１つの障害の場合にバックアップが利用可能であることを保証するために状態情報を使用することができ、さらに複数の衛星にわたって実行されるアプリケーションについてのデータを通信するために使用されることができる。ここで、衛星５１０〜５１２の各衛星は、ローカル状態情報を維持し、少なくとも１つの他の衛星と状態情報を通信し、地上制御システム５３０に状態情報を提供する。
【００３４】
いくつかの実施例では、衛星５１０は、アプリケーションの第１のバージョンで構成されることができる一方で、衛星５１１は、アプリケーションの第２のバージョンで構成される。衛星の動作中、衛星５１０は、第１のアプリケーションノードの実行に関連する状態情報を維持し、衛星５１１に配信するために状態情報を転送することができる。衛星５１１は、状態データを受信し、状態情報にしたがって第２のアプリケーションノードを実行することができる。この状態データは、第１のアプリケーションノードについて実行されているプロセスに関する情報、第１のアプリケーションノードについて取得されているセンサデータ、または任意の他の同様の状態情報を含むことができる。
【００３５】
この構成の結果として、いくつかの例では、衛星５１０は、処理済みおよび／または未処理の撮像データなどの第１のアプリケーションについての状態情報を維持し、その状態情報を衛星５１１に転送することができる。そして、衛星５１１は、アプリケーションの第２のバージョンを使用して状態情報を修正することができ、状態情報を修正することは、センサ５１１からの追加のセンサデータを追加すること、第１の衛星および第２の衛星からのセンサデータを処理すること、第１の衛星からのデータの部分を削除すること、またはデータの他の同様の操作を提供することを含むことができる。状態情報が修正されると、状態情報は、衛星５１２に通信されることができ、または地上制御システムに通信されることができる。衛星５１０〜５１２上に撮像センサを有するものなどのいくつかの実施例では、第１の衛星から第２の衛星への状態情報の交換は、少なくとも１つの地上ベースの関心オブジェクトを追跡するために第２の衛星によって使用されることができ、または、新たなセンサデータに基づいて、少なくとも１つの地上ベースの関心オブジェクトについての認識プロセスとして機能するように状態情報の分析を改良するために使用されることができる。上記は、本願にて定義される関心オブジェクトを識別および追跡する際に使用される複数の衛星からのデータを可能にする。
【００３６】
いくつかの例では、衛星５１０上の第１のアプリケーションノードからの状態情報を修正するためのピアとして動作する代わりに、衛星５１１は、衛星５１０上の第１のアプリケーションについてのバックアップとして動作するように構成されることができる。特に、衛星５１０は、衛星５１１に状態情報を提供することができ、状態情報は、アプリケーション５１０の現在の状態を含む。状態情報がピア衛星５１１に提供されると、衛星５１１は、衛星５１０の動作状態における障害を識別することができる。障害の識別に応答して、衛星５１１は、衛星５１０から少なくとも１つの障害のある仮想ノードを実行することができる新たなピアリングノードを識別し、衛星５１０から受信した状態情報に少なくとも部分的に基づいて新たなピアリングノードを確立する。いくつかの実施例では、新たなピアリングノードは、衛星５１１を含むことができるが、新たなピアリングノードは、衛星プラットフォーム内の他の衛星を含むことができることが理解されるべきである。
【００３７】
衛星システム５００の動作をさらに説明するために、図６が提供される。図６は、実施例にかかる衛星クラスタ内の衛星の障害を解消するタイミング図を示している。図６は、図５の衛星システム５００からの衛星５１０〜５１２を含む。
【００３８】
この例に示されるように、衛星５１０〜５１２は、状態情報を交換し、状態情報は、各ノード上で実行されているアプリケーションの現在の状態についての情報を含む。この状態情報は、どのアプリケーションが実行されているか（スケジューリング情報）、各アプリケーションについてどのタスクまたはプロセスが実行されているか、各アプリケーションからのデータ、またはいくつかの他の同様の状態情報を含むことができる。状態情報の交換中に、衛星５１１は、これらに限定されるものではないが、ハードウェア障害、ソフトウェア障害、太陽現象、またはいくつかの他の同様の障害を含む様々な要因から生じることがある障害に遭遇する。障害が発生すると、他の衛星、この例では衛星５１２は、衛星５１１が障害から回復することが不可能であることを識別し、障害前の衛星５１１の以前の状態を識別する。以前の状態の識別後、衛星５１２は、次に状態を衛星５１１に提供し、衛星５１１が以前の状態を実行することを可能にする。
【００３９】
いくつかの実施例では、衛星間で状態情報を交換するために、各衛星は、定義された間隔で状態情報を提供するように構成されることができる。これらの間隔は、衛星上で動作するアプリケーション自体によって定義されてもよく、あるいはアプリケーションについてのプラットフォームを提供するオペレーティングシステムまたはハイパーバイザによって定義されてもよい。いくつかの例では、衛星間の状態交換は、どの衛星が状態を交換する際に使用されるべきかをプロバイダが選択することができるように、オペレーティングシステムおよび／または衛星プラットフォームプロバイダによって定義されることができる。他の実施例では、アプリケーションは、どの衛星が状態情報を交換するためのクラスタとして定義されるべきかを定義するために使用されることができる。例えば、アプリケーションは、アプリケーションのバージョンを実行するために使用される他の衛星と状態情報を交換することができる。
【００４０】
少なくとも一実施例では、衛星５１１が障害から回復することができないことを識別する際に、衛星５１２は、衛星５１２からの回復状態情報なしに衛星５１１が動作可能であるかどうかを示す通知を衛星５１１から受信するように構成されることができる。直接通知または通知の欠如のいずれかによって衛星５１１が回復することができないことを示す場合、衛星５１２は、受信した最後の状態を識別し、実装のためにその状態を衛星５１１に提供することができる。この状態の提供は、衛星５１１上の全てのアプリケーションについての状態、または障害に遭遇したアプリケーションに関連する状態データの一部を含むことができる。
【００４１】
図７は、実施例にかかる衛星上の少なくとも１つのアプリケーションノードの障害を解消するための動作を示している。図７の動作は、図５の衛星システム５００のシステムおよびオブジェクトを参照して以下の段落で括弧内に参照される。特に、衛星５１１の障害について言及するが、衛星システムの衛星５１０および５１２によって同様の動作が提供されることができることが理解されるべきである。
【００４２】
図示のように、衛星５１１の動作は、衛星５１１上の仮想アプリケーションノードに関するローカル状態情報を維持すること（７０１）を含み、アプリケーションノードは、フルオペレーティングシステム仮想マシンまたは仮想コンテナを含むことができ、状態情報は、実行中のプロセスについて取得されたアプリケーションおよびデータのそれぞれについて実行されるプロセスに関する情報を含むことができる。状態情報が各仮想ノードについて収集されると、動作は、さらに、アプリケーション仮想ノードのうちの少なくとも１つについての割り込みイベントを識別すること（７０２）を提供する。この割り込みは、ソフトウェアの割り込みまたは障害、ハードウェアの割り込みまたは障害、または太陽フレアもしくはスペースデブリなどの自然の事象による割り込みを含むことができる。割り込みは、アプリケーションノードのオペレーティングシステムまたはハイパーバイザによって識別されてもよく、オペレーティングシステムもしくはハイパーバイザの再起動、アプリケーションからの異常なもしくは予測不可能な活動、オペレーティングシステムもしくはハイパーバイザに問題を報告するアプリケーション、または他の割り込み識別イベントによって識別されてもよい。
【００４３】
少なくとも１つのアプリケーションノードについての割り込みイベントを識別することに応答して、衛星５１１の動作は、さらに、少なくとも１つのアプリケーションノードについての最新の状態を識別し（７０３）、少なくとも１つのアプリケーションノードについての最新の状態に基づいてユーザ空間を構成する（７０４）。例えば、アプリケーションが衛星５１１上で実行されているとき、動作状態は、その状態が少なくとも１つのアプリケーションノードの障害から回復するために使用されることができるように、衛星上で局所的に維持されることができる。これらの状態は、衛星の別個の記憶媒体、または一次アプリケーションと同じ記憶媒体に記憶されることができ、定義された間隔で更新されることができる。衛星上で実行されているアプリケーションノードの障害を識別することに応答して、衛星に記憶されている最近の状態が識別されることができ、アプリケーションは、前の状態に復元されることができる。いくつかの例では、この状態更新は、障害の前に実行されていたプロセスを再開することを含むことができる。他の実施例では、アプリケーションノードのプロセスを再開することに加えてまたはその代わりに、データは、衛星５１１上でリフレッシュされて少なくとも１つのアプリケーションを障害前の前の状態にすることができる。
【００４４】
図８は、実施例にかかる衛星間で状態情報を提供する動作シナリオ８００を示している。動作シナリオ８００は、図５の衛星システム５００からのシステムおよび要素を含む。特に、動作シナリオ８００は、図５の衛星システム５００からの衛星５１０〜５１２、地上制御システム５３０、および地球５４０を含む。
【００４５】
動作中、衛星５１０〜５１２は、衛星間で動作データをハンドオフすることができるアプリケーションノードを用いて構成されることができる。このハンドオフは、単一の衛星がその定義された軌道を使用することができないことがあっても、アプリケーションが地理的な特徴に関する動作を継続することを可能にする。例えば、画像を撮像し、特定の地理的領域にわたって画像を処理するためのアプリケーションが開発されることができる。第１の衛星が画像を撮像して処理すると、衛星の軌道は、関心のある地理的領域から遠ざかることがある。結果として、第１の衛星上のアプリケーションは、状態情報、またはこの例では撮像データを第２の衛星に提供し、第２の衛星が関心のある地理的領域に関して動作を継続することを可能にすることができる。
【００４６】
ここで、動作シナリオ８００に示すように、衛星５１０は、ステップ１において、第１のセンサデータを識別し、ステップ２において、センサデータを衛星５１１に転送する。いくつかの例では、衛星５１０から衛星５１１に転送されるセンサデータは、生のセンサデータを含むことができ、生のセンサデータは、生の撮像ファイル、ヒートマッピング、光測定値、または衛星５１０上のセンサからのいくつかの他のセンサデータを含むことができる。衛星５１０から受信されると、衛星５１１は、ステップ３において、第２のセンサデータを識別し、ステップ４において、センサデータおよび第２のセンサデータを衛星５１２に転送することができる。
【００４７】
いくつかの実施例では、衛星５１１は、衛星５１０からの結合データならびに衛星５１１によって識別されたローカルセンサデータに対して演算を実行して修正状態データを生成するように構成されることができる。例えば、アプリケーションが撮像アプリケーションである場合、衛星５１１は、画像の特性を判定する際に、衛星５１０から得られた画像と、衛星５１１上の１つ以上の撮像センサを使用して識別されたローカル画像とを使用することができる。これらの特性は、画像内のオブジェクトの動き、画像のオブジェクト内の物理的変化、または画像からのいくつかの他の判定を含むことができる。いくつかの例では、処理されたデータはまた、衛星５１０〜５１１によって識別された生データとともに衛星５１２に転送されてもよい。
【００４８】
データが衛星５１１から受信されると、衛星５１２は、ステップ５において、第３のセンサデータを識別し、ステップ６において、受信されてローカルに識別された状態データの属性を識別することができる。撮像データの例に戻って参照すると、衛星５１２は、衛星５１０〜５１１上のセンサから得られた撮像データ、ならびにセンサ５１２から得られたローカル撮像データを使用して、画像内の属性を識別することができる。これは、衛星５１２が衛星５１２のセンサからの情報だけでは識別することができなかったかもしれない特定の地理的領域内の特性または属性を識別することを可能にする。
【００４９】
いくつかの例では、衛星間で転送される情報は、前の衛星からの識別可能な特性を含むことができる。これらの特性は、その特定の衛星におけるセンサデータの処理を介して得られた情報を含むことができる。例えば、衛星５１０は、地理的領域内の関心オブジェクトを識別し、そのオブジェクトの特性を衛星５１１に通信することができる。これらの特性は、オブジェクトの形状、オブジェクトの位置、またはオブジェクトの任意の他の同様の特性を含むことができる。衛星５１０からの情報、およびいくつかの例では衛星５１０から提供される任意の生データに基づいて、衛星５１１は、関心オブジェクトのさらなる特性を識別することができる。これらの特性は、オブジェクトの動き、オブジェクトの任意の形状もしくは色の変化、または任意の他の同様の特性を含むことができる。さらに、オブジェクトの特性を識別する衛星５１１に加えてまたはその代わりに、衛星５１１は、生データおよび識別された特性を衛星５１２に転送することができる。これは、衛星５１２が衛星５１０〜５１１によって識別された属性に少なくとも部分的に基づいて生データ内の属性を識別することを可能にする。
【００５０】
動作シナリオ８００にさらに示されるように、属性または特性が衛星によって識別されると、データは、状態情報として地上制御システム５３０に報告されることができる。この状態情報は、センサデータの識別された属性に関連する関連データのみを含むことができるが、いくつかの例では生センサデータの少なくとも一部も含むこともできる。さらに、状態データを地上制御システム５３０に報告する衛星５１２としてのみ示されているが、状態データは、衛星５１０〜５１１のいずれかから地上制御システム５３０に提供されてもよいことが理解されるべきである。
【００５１】
図９は、実施例にかかる衛星の障害に応答して新たなピアを生成する動作シナリオ９００を示している。動作シナリオ９００は、図５の衛星システム５００からのシステムおよび要素を含む。特に、動作シナリオ９００は、衛星５１０〜５１２を含み、さらに新たな衛星５１３を含む。
【００５２】
本明細書で説明されるように、衛星プラットフォーム内の衛星は、ピアクラスタにグループ化されてもよく、ピアクラスタは、各衛星上で実行されている仮想ノードに関する状態情報を交換する。この状態情報は、ノード上で実行されているアプリケーションについての画像、個々のアプリケーションについて実行されているプロセス、アプリケーションについてのセンサデータ、または任意の他の同様の情報を含むことができる。動作シナリオ５００に示されるように、衛星５１０〜５１２は、ステップ１において、その上で実行されているアプリケーションに関する状態情報を交換することができる。状態情報を交換している間に、衛星５１１または衛星５１２のうちの少なくとも１つは、衛星５１０による障害を識別することができる。この障害は、ハードウェア障害、ソフトウェア障害、または他の同様のタイプの障害の結果である可能性があり、仮想ノードのうちの少なくとも１つが動作不能になる可能性がある。衛星５１０が障害を報告するときまたは状態通知が衛星５１０から受信されないときに検出されることができる障害の識別に応答して、ステップ３において、状態情報の交換のために新たな衛星５１３がピアクラスタに追加されることができる。
【００５３】
いくつかの実施例では、新たなピアを識別する際に、新たなピアは、衛星５１１〜５１２からの状態情報を記憶するために使用されることができ、障害がある衛星５１０についてのアプリケーションを実行するために使用されることができない。他の実施例では、新たなピアを識別する際に、衛星５１３は、衛星５１１および／または５１２によって提供される状態情報にしたがって衛星５１０の１つ以上のアプリケーションを実行して衛星５１０の障害を解消するように構成されることができる。参加すると、衛星５１３は、さらに、将来の状態情報を衛星５１１および５１２と通信するように構成されることができる。
【００５４】
図１０は、実施例にかかる衛星システムにおける衛星の障害を解消するタイミング図１０００を示している。図１０は、図５の衛星システム５００からの衛星５１０〜５１２を含む。
【００５５】
図示のように、ピア衛星グループとして機能する衛星５１０〜５１２は、その上で実行されている少なくとも１つのアプリケーションに関する動作状態情報と、少なくとも１つのアプリケーションによる処理のために収集されたセンサデータ情報とを含む状態情報を交換する。状態情報の交換中に、衛星５１１は、衛星上で少なくとも１つのアプリケーションの実行を妨げるハードウェアまたはソフトウェアの障害に遭遇することがある。障害後、衛星５１０〜５１１は、衛星５１１が障害から回復することが不可能であることを識別し、障害があるアプリケーションノードの実装を開始する。
【００５６】
少なくとも一実施例では、衛星５１１の障害を識別するために、衛星５１０および５１２は、衛星５１１とヘルスチェック通信を交換することができる。衛星５１１が通信のうちの１つにおいて障害が発生したことを示すか、または定義された期間内にヘルスチェック通信を通信できない場合、衛星５１１〜５１２は、障害が発生したことを識別することができる。障害が識別されると、障害が発生したノードを実装する際に、その実装は、障害を識別した直後に行われてもよく、または障害に関してある期間が経過した後に行われてもよい。例えば、衛星５１２は、衛星５１１の障害を識別し、定義された期間後に衛星５１１が利用不可能であると判定されるまで、障害があるノードの実装を保留してもよい。期間が経過すると、衛星５１２は、障害があるアプリケーションのうちの１つ以上を仮想ノードとして実装することができる。
【００５７】
衛星５１１からの障害があるノードを実装する２つの衛星が図１０の例に示されているが、障害はあるノードを実装する際に任意の数の衛星が使用されてもよいことが理解されるべきである。例えば、衛星５１１は、衛星５１２に状態情報を提供し、衛星５１２が衛星５１１からの障害があるアプリケーションノードを実装することを可能にすることができる。
【００５８】
ここで図１１を参照すると、図１１は、実施例にかかる衛星動作を示している。図１１は、図５の衛星システム５００からの衛星５１０を含むが、衛星プラットフォームの任意の衛星で同様の動作が起こり得ることが理解されるべきである。
【００５９】
図示のように、衛星５１０は、地上制御システムからアプリケーションおよび状態情報を受信するように構成されている。このアプリケーションおよび状態情報は、仮想マシンのオペレーティングシステムもしくはハイパーバイザへの更新、ユーザソフトウェアペイロード（アプリケーションおよび更新）、およびアプリケーションのタスク、アプリケーションのスケジュール、または任意の他の同様の情報を含むことができる状態情報を含むことができる。地上との通信に加えて、衛星５１０は、さらに、衛星のユーザ空間に記憶されているアプリケーションを実行し、各アプリケーションにセンサデータを提供するように構成される。これらのアプリケーションは、地上制御システムから提供され且つ仮想ノード用のオペレーティングシステムまたはハイパーバイザによって実装されることができるスケジュールにしたがって実行され、スケジュールは、各アプリケーションにリソースを割り当てる。これらのリソースは、衛星上のセンサリソースと同様に処理リソースを含むことができる。さらに、仮想ノードの実行中、衛星５１０は、各アプリケーションの状態情報を維持するように構成されている。この状態情報は、各アプリケーションについて実行しているプロセスの状態、各アプリケーションについて収集されたデータ、または他の同様の状態情報を含むことができ、定義された間隔で収集されることができる。いくつかの実施例では、状態情報は、衛星上にローカルに記憶されて、１つ以上のアプリケーションによるハードウェアまたはソフトウェアの障害から回復することができる。いくつかの実施例では、状態情報は、１つ以上の他のピア衛星および／または地上制御システムに通信されることができ、状態情報は、障害イベント中の回復に使用されることができる。この状態情報は、衛星５１０を回復するために使用されてもよく、または他のピア衛星上の仮想ノードとしてアプリケーションを実装するために使用されてもよい。
【００６０】
上述したように、アプリケーションの実行を提供するために、オペレーティングシステムまたはハイパーバイザは、ユーザタスクを交換し且つ衛星５１０上で実行されている各仮想アプリケーションノードへのリソースの割り当てを管理するために使用されることができる。このスケジューリングは、第１のアプリケーションに第１の期間にわたってユーザセンサへのアクセスを提供すること、および第２のアプリケーションに第２の期間にわたって同じユーザセンサへのアクセスを提供することなどのリソースの時分割割り当てを含むことができ、１つ以上のコアを第１の仮想ノードに提供することおよび１つ以上の二次コアを第２の仮想ノードに提供することなどのリソースの物理的共有をさらに含むことができる。これらは、衛星上にリソースを割り当てるほんの数例であるが、衛星に提供されるスケジュールに基づいて時分割および物理的リソース分割の任意の組み合わせを使用できることが理解されるべきである。
【００６１】
衛星５１０上のアプリケーションについてのプラットフォームを提供することに加えて、１つ以上のプロセスは、ヘルス監視専用とすることができる。上述した動作と同様に、衛星は、衛星が他の衛星上の動作を監視することを可能にするピアまたはクラスタとして構成されることができる。これは、衛星５１０が他の衛星にヘルスチェック通信を提供すること、ならびに障害または問題が検出されたときに通知または警告を受信することを可能にする。いくつかの例では、第２の衛星内の障害を識別するために、衛星５１０は、その障害を示す通知を直接受信することができる。他の例では、衛星５１０は、定義された期間内に「ハートビート（ｈｅａｒｔｂｅａｔ）」または状態通知を受信することに障害（失敗）することができ、受信の欠如に基づいて、障害が他の衛星で発生したと判定することができる。
【００６２】
第２の衛星について障害が識別されると、衛星５１０は、第２の衛星からのアプリケーションをサポートするために１つ以上の新たな仮想ノードを開始することができ、第２の衛星の回復を助けるために状態情報を第２の衛星に提供することができ、第２の衛星を交換するためにピアグループに追加される第３の衛星を識別することができ、または動作のいくつかの組み合わせを提供することができる。
【００６３】
図１２は、実施例にかかる展開ユーザインターフェース１２００を示している。展開ユーザインターフェース１２００は、アプリケーション展開のための衛星クラスタを表す衛星１２１０〜１２１３および１２２０〜１２２３を含む。展開インターフェース１２００は、アプリケーションを展開するシミュレーションにおいて使用されることができるか、または展開されたアプリケーションについての状態情報を提供するために使用されることができるインターフェースを表す。
【００６４】
第１に、シミュレーションインターフェースとして、開発ユーザインターフェース１２００は、アプリケーションの機能を試験するために使用されることができ、さらにアプリケーションが任意の検証試験に合格したかどうかを判定するために使用されることができる。開発者は、アプリケーションをシミュレートされた衛星１２１０〜１２１３および１２２０〜１２２３のうちの１つ以上に展開し、一定期間にわたってアプリケーションの動作を監視することができる。アプリケーションが所望どおりに動作していると開発者が判定した場合、そのアプリケーションは、展開が承認され、物理衛星プラットフォーム内の１つ以上の衛星に展開されることができる。しかしながら、変更が必要であると開発者が判定した場合、開発者は、開発ツールに戻ってアプリケーションコードを変更することができる。いくつかの例では、開発ユーザインターフェースは、アプリケーションに人工センサデータを提供して、アプリケーションプロセスが所望どおりに機能していることを保証するために使用されることができる。この人工センサデータは、撮像データ、光測定値、熱測定値、またはアプリケーションによって必要とされるセンサに基づくいくつかの他のデータを含むことができる。
【００６５】
第２に、物理プラットフォームにおけるアプリケーションの展開を監視するために、アプリケーションの管理者または開発者に同様のインターフェースが提供されることができる。特に、衛星プラットフォーム内の衛星は、プラットフォーム用の地上制御システムに状態情報を提供するように構成されることができる。この情報は、アプリケーションの現在の動作状態（実行中のプロセス、メモリ状態、記憶状態など）を含むことができ、さらに、取得されているセンサデータに関する情報（処理済みおよび未処理の両方）を含むことができる。状態情報に基づいて、開発ユーザインターフェース１２００は、フレームワークに展開されているときのアプリケーションの状態を表示することができる。例えば、アプリケーションが衛星１２１０〜１２１３からなる衛星クラスタに展開された場合、開発ユーザインターフェース１２００は、各衛星上のアプリケーションに関する状態情報を提供することができる。しかしながら、プラットフォームの同じ衛星または他の衛星上でともに実行されている他のアプリケーションは、管理者または開発者に提供されなくてもよい。
【００６６】
図１２の例ではユーザインターフェースとして示されているが、いくつかの例では、アプリケーションの試験および監視は、展開された衛星の物理的表現を介して達成されてもよいことが理解されるべきである。この物理的表現は、アプリケーションが展開される前にアプリケーションを試験するため、またはアプリケーションが展開された後のアプリケーションの現在の状態を表すために使用されることができる１つ以上の衛星モデルを含むことができる。
【００６７】
図１３は、実施例にかかる仮想化衛星アプリケーションプラットフォームを提供するための衛星コンピューティングシステム１３００を示している。コンピューティングシステム１３００は、衛星に関して本明細書で開示されている様々な動作アーキテクチャ、プロセス、シナリオ、およびシーケンスが実装されることができる任意のコンピューティングシステムまたはシステムを表す。コンピューティングシステム１３００は、図１および図５からの衛星の例であるが、他の例が存在してもよい。コンピューティングシステム１３００は、通信インターフェース１３０１、センサ１３０２、および処理システム１３０３を備える。処理システム１３０３は、通信インターフェース１３０１およびセンサ１３０２にリンクされている。センサ１３０２は、撮像センサ、熱センサ、光センサ、またはいくつかの他の同様のタイプのセンサを含むことができる。処理システム１３０３は、処理回路１３０５と、オペレーティングソフトウェア１３０７を記憶するメモリ装置１３０６とを備える。コンピューティングシステム１３００は、明確にするために示されていない、電池、太陽電池パネル、および筐体などの他の周知の構成要素を含むことができる。
【００６８】
通信インターフェース１３０１は、ネットワークカード、ポート、無線周波数（ＲＦ）、処理回路およびソフトウェア、あるいはいくつかの他の通信装置などの通信リンクを介して通信する構成要素を備える。通信インターフェース１３０１は、無線リンクを介して通信するように構成されることができる。通信インターフェース１３０１は、時分割多重（ＴＤＭ）、インターネットプロトコル（ＩＰ）、無線プロトコル、通信シグナリング、またはそれらの組み合わせを含む−いくつかの他の通信フォーマットを使用するように構成されることができる。いくつかの実施例では、通信インターフェース１３０１は、衛星プラットフォーム内の１つ以上の他の衛星と通信し、地上制御システムと通信することができる。
【００６９】
処理回路１３０５は、マイクロプロセッサと、メモリ装置１３０６からオペレーティングソフトウェア１３０７を取得して実行する他の回路とを含む。メモリ装置１３０６は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含むことができる。メモリ装置１３０６は、単一の記憶装置として実装されてもよいが、複数の記憶装置またはサブシステムにわたって実装されてもよい。メモリ装置１３０６は、オペレーティングソフトウェア１３０７を読み取るためのコントローラなどの追加の要素を備えることができる。記憶媒体の例には、ランダムアクセスメモリ、読み取り専用メモリ、磁気ディスク、光ディスク、およびフラッシュメモリ、ならびにそれらの任意の組み合わせまたは変形形態、あるいは任意の他の種類の記憶媒体が含まれる。いくつかの実施例では、記憶媒体は、非一時的記憶媒体とすることができる。場合によっては、記憶媒体の少なくとも一部は、一時的なものとすることができる。記憶媒体が伝搬信号であることは決してないことが理解されるべきである。
【００７０】
処理回路１３０５は、通常、メモリ装置１３０６ならびに通信インターフェース１３０１およびセンサ１３０２の一部も保持することができる回路基板上に搭載される。オペレーティングソフトウェア１３０７は、コンピュータプログラム、ファームウェア、またはいくつかの他の形態の機械可読プログラム命令を含む。オペレーティングソフトウェア１３０７は、制御モジュール１３０８、オペレーティングシステムモジュール１３０９、およびノード１３１０を含むが、任意の数のソフトウェアモジュールが同じ動作を提供してもよい。オペレーティングソフトウェア１３０７は、ユーティリティ、ドライバ、ネットワークインターフェース、アプリケーション、またはいくつかの他の種類のソフトウェアをさらに含むことができる。処理回路１３０５によって実行されると、オペレーティングソフトウェア１３０７は、処理システム１３０３に、本明細書で説明されるようにコンピューティングシステム１３００を動作させるように指示する。
【００７１】
少なくとも一実施例では、ノード１３１０は、フルオペレーティングシステム仮想マシンまたはコンテナを表す衛星コンピューティングシステム１３００に展開されることができ、各ノードは、特定のアプリケーションを提供するように構成される。ノードを実行するために、オペレーティングシステムおよび／またはハイパーバイザを含むことができるオペレーティングシステムモジュール１３０９は、処理システム１３０３によって実行されることができ、オペレーティングシステムモジュール１３０９は、ノード１３１０についてのプラットフォームを提供する。いくつかの実施例では、プラットフォームを提供する際に、オペレーティングシステムモジュール１３０９は、ノード１３１０内の各ノードに処理およびセンサ１３０２を割り当てるリソーススケジュールを用いて構成されることができる。このリソースの割り当ては、第１のアプリケーションに第１の期間にわたってユーザセンサへのアクセスを提供すること、および第２のアプリケーションに第２の期間にわたって同じユーザセンサへのアクセスを提供することなどのリソースの時分割割り当てを含むことができ、１つ以上のコアを第１の仮想ノードに提供することおよび１つ以上の二次コアを第２の仮想ノードに提供することなどのリソースの物理的共有をさらに含むことができる。
【００７２】
ノード１３１０のそれぞれについてのアプリケーションを実行することに加えて、オペレーティングシステムモジュール１３０９は、さらに、状態判定および分配のためのプラットフォームを提供することができる。この状態判定は、処理システム１３０３が各アプリケーションの状態を識別し、他の衛星および地上制御システムと状態を共有することを可能にすることができる。状態は、各アプリケーションノード内のプロセスの動作状態、および／または各アプリケーションノードのデータ状態を含むことができる。状態は、衛星コンピューティングシステム１３００上で実行されている様々なアプリケーションの回復に使用されてもよく、さらに、アプリケーションについての拡張されたデータ演算を提供する際に使用されてもよい。例えば、衛星コンピューティングシステム１３００上のノードとして実行されているアプリケーションは、データを第２の衛星ノードに通信することができる。この衛星ノードは、第２の衛星上のセンサを使用して第２のデータを識別し、第１の衛星からのデータを第２のデータと組み合わせて特定の動作を提供することができる。この動作は、いくつかの例では画像解析を含むことができ、アプリケーションは、オブジェクトが動いているかどうか、オブジェクトの種類、オブジェクト内の動きの速度、または組み合わされたデータに基づくいくつかの他の同様の判定を行うことができる。
【００７３】
例示的な例として、衛星コンピューティングシステム１３００は、１つ以上の撮像センサまたはセンサ１３０２内の撮像システムを使用して、撮像センサによって収集された撮像データに関する状態情報を確立することができる。識別されると、状態情報は、第２の衛星装置に通信されてもよく、第２の衛星装置は、第２の撮像センサを用いて少なくとも第２の撮像センサによって撮像された撮像データによって状態情報を修正してもよい。この修正は、少なくとも１つの関心のある地上ベースのオブジェクトの位置追跡を含むことができ、または少なくとも１つの関心のある地上ベースのオブジェクトについての認識プロセスとして機能するために第２の撮像センサによって撮像された撮像データに基づく状態情報の精密分析を含むことができる。
【００７４】
いくつかの例では、センサデータのさらなる分析を提供するために状態情報を交換することに加えてまたはその代わりに、状態情報はまた、衛星コンピューティングシステム１３００のバックアップを提供するために使用されることもできる。特に、状態情報は、障害が検出されたときに第２の衛星装置が衛星コンピューティングシステム１３００からの１つ以上の仮想ノードを実装することを可能にする第２の衛星装置と共有されることができる。１つ以上の仮想ノードのこの実装または確立は、衛星コンピューティングシステム１３００から状態情報を受信する衛星において直接行われてもよく、または衛星コンピューティングシステム１３００から状態情報を受信する衛星によって構成可能な第３の衛星で行われてもよい。
【００７５】
前の例では他の衛星に情報を提供するように示されていたが、衛星コンピューティングシステム１３００はまた、他の衛星から状態情報を受信し、受信した状態情報にしたがって同様の動作を提供するように構成されてもよいことが理解されるべきである。これらの動作は、衛星コンピューティングシステム１３００についてのセンサに基づいて状態情報を修正すること、または二次衛星から提供される状態情報に基づいてバックアップピアリング動作を提供することを含むことができる。
【００７６】
また図１３に示すように、衛星コンピューティングシステム１３００は、衛星用の飛行制御システムとして使用される制御モジュール１３０８をさらに含む。特に、衛星コンピューティングシステム１３００上の別個の処理回路を使用して動作することができる制御モジュール１３０８は、衛星の電力管理および飛行制御を担うことができる。いくつかの例では、制御モジュール１３０８は、ノード１３１０上のアプリケーションにデータを提供するために、ノード１３１０およびオペレーティングシステム１３０８から要求を受信することができる。衛星の飛行を含まずに要求に対応できる場合、制御モジュール１３０８は、要求されたデータをオペレーティングシステムモジュール１３０９または対応するノードに提供することができる。対照的に、情報を提供することができないまたは飛行動作に対応することができないと判定された場合、制御モジュール１３０８は、データまたは飛行動作を提供することができないことがある。
【００７７】
図１４は、実施例にかかる仮想衛星アプリケーションを生成するための開発コンピューティングシステム１４００を示している。コンピューティングシステム１４００は、地上制御システムに関して本明細書で開示されている様々な動作アーキテクチャ、プロセス、シナリオ、およびシーケンスが実装されることができる任意のコンピューティングシステムまたはシステムを表す。コンピューティングシステム１４００は、図１および図５からの地上制御システムの例であるが、他の例が存在してもよい。コンピューティングシステム１４００は、通信インターフェース１４０１、ユーザインターフェース１４０２、および処理システム１４０３を備える。処理システム１４０３は、通信インターフェース１４０１およびユーザインターフェース１４０２にリンクされている。処理システム１４０３は、処理回路１４０５と、オペレーティングソフトウェア１４０７を記憶するメモリ装置１４０６とを含む。コンピューティングシステム１４００は、明確にするために示されていない、電池、電源、および筐体などの他の周知の構成要素を含むことができる。コンピューティングシステム１４００は、１つ以上のサーバコンピューティングシステム、デスクトップコンピューティングシステム、ラップトップコンピューティングシステム、タブレット、またはそれらの組み合わせを含むいくつかの他のコンピューティングシステムを表すことができる。
【００７８】
通信インターフェース１４０１は、ネットワークカード、ポート、無線周波数（ＲＦ）、処理回路およびソフトウェア、あるいはいくつかの他の通信装置などの通信リンクを介して通信する構成要素を備える。通信インターフェース１４０１は、メタリックリンク、無線リンク、または光リンクを介して通信するように構成されることができる。通信インターフェース１４０１は、時分割多重（ＴＤＭ）、インターネットプロトコル（ＩＰ）、イーサネット（登録商標）、光ネットワーキング、無線プロトコル、通信シグナリング、またはそれらの組み合わせを含む−いくつかの他の通信フォーマットを使用するように構成されることができる。いくつかの実施例では、通信インターフェース１４０１は、アプリケーション、更新、および他の設定情報を提供するために衛星プラットフォームの衛星と通信するように構成されることができ、さらに各アプリケーションのプロセスの状態に関する状態情報および各アプリケーションのデータを衛星から受信するように構成されることができる。
【００７９】
ユーザインターフェース１４０２は、ユーザと対話してユーザ入力を受信し、媒体および／または情報を提示する構成要素を備える。ユーザインターフェース１４０２は、スピーカ、マイクロフォン、ボタン、ライト、ディスプレイスクリーン、タッチスクリーン、タッチパッド、スクロールホイール、通信ポート、またはそれらの組み合わせを含む−いくつかの他のユーザ入出力装置を含むことができる。いくつかの例では、ユーザインターフェース１４０２は省略されてもよい。いくつかの実施例では、ユーザインターフェース１４０２は、開発者入力を受信して所望のアプリケーションを生成し、仮想衛星環境内でそのアプリケーションを試験するために使用されることができる。ディスプレイスクリーンはまた、物理衛星プラットフォームに展開されているアプリケーションに関する状態情報を表示するためにも使用されることができる。
【００８０】
処理回路１４０５は、マイクロプロセッサと、メモリ装置１４０６からオペレーティングソフトウェア１４０７を取得して実行する他の回路とを備える。メモリ装置１４０６は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、取り外し可能および取り外し不能の媒体を含むことができる。メモリ装置１４０６は、単一の記憶装置として実装されてもよいが、複数の記憶装置またはサブシステムにわたって実装されてもよい。メモリ装置１４０６は、オペレーティングソフトウェア１４０７を読み取るためのコントローラなどの追加の要素を備えることができる。記憶媒体の例には、ランダムアクセスメモリ、読み取り専用メモリ、磁気ディスク、光ディスク、およびフラッシュメモリ、ならびにそれらの任意の組み合わせまたは変形形態、あるいは任意の他の種類の記憶媒体が含まれる。いくつかの実施例では、記憶媒体は、非一時的記憶媒体とすることができる。場合によっては、記憶媒体の少なくとも一部は、一時的なものとすることができる。記憶媒体が伝搬信号であることは決してないことが理解されるべきである。
【００８１】
処理回路１４０５は、通常、メモリ装置１４０６ならびに通信インターフェース１４０１およびユーザインターフェース１４０２の一部も保持することができる回路基板上に搭載される。オペレーティングソフトウェア１４０７は、コンピュータプログラム、ファームウェア、またはいくつかの他の形態の機械可読プログラム命令を含む。オペレーティングソフトウェア１４０７は、設計モジュール１４０８、検証モジュール１４０９、および展開モジュール１４１０を含むが、アプリケーション内の任意の数のソフトウェアモジュールは、同じ動作を提供することができる。オペレーティングソフトウェア１４０７は、オペレーティングシステム、ユーティリティ、ドライバ、ネットワークインターフェース、アプリケーション、またはいくつかの他の種類のソフトウェアをさらに含むことができる。処理回路１４０５によって実行されると、オペレーティングソフトウェア１４０７は、処理システム１４０３に、本明細書で説明されるようにコンピューティングシステム１４００を動作させるように指示する。
【００８２】
少なくとも一実施例では、設計モジュール１４０８は、開発者が衛星上の仮想ノードとして実装可能な新たなアプリケーションを生成することを可能にするプラットフォームを開発者に提供するように処理システム１４０３に指示する。いくつかの例では、設計モジュール１４０８は、撮像、光検知、温度検知、および他の同様のセンサなどの物理センサからノードがデータを要求および受信し、データの少なくとも一部を処理することを可能にするツールおよびＡＰＩを提供することができる。設計モジュール１４０８はまた、アプリケーションを設計するために使用されてもよく、異なる衛星上に配置されたアプリケーションの異なるバージョンは、状態情報を交換してセンサデータ内の特性を識別する能力を強化してもよい。
【００８３】
アプリケーションが設計モジュール１４０を使用して生成されると、検証モジュール１４０９は、生成されたアプリケーションについての仮想または物理試験インターフェースを提供するために使用されることができる。この試験インターフェースは、１つ以上の物理衛星の表現を含むことができ、アプリケーションは、アプリケーションの動作を検証するために試験衛星に展開されることができる。この試験は、他の可能な試験動作の中でも、試験データをアプリケーションに提供すること、障害に対してアプリケーションを試験することを含むことができる。アプリケーションが所望どおりに実行される場合、そのアプリケーションは、展開のために承認されることができるが、アプリケーションが所望どおりに実行されない場合、開発者は、設計モジュールに戻ってアプリケーションを修正することができる。
【００８４】
アプリケーションを試験した後、展開モジュール１４１０は、周回軌道衛星プラットフォーム内の１つ以上の衛星にアプリケーションを展開するように処理システム１４０３に指示する。この展開は、必要な衛星のそれぞれに直接アップリンクでアプリケーションを展開することを含むことができ、またはアプリケーションをプラットフォームの他の衛星に分配する１つ以上の第１の衛星にアプリケーションを展開することを含むことができる。
【００８５】
ここで、アプリケーションを展開するとき、展開モジュール１４１０は、衛星プラットフォーム内の他のアプリケーションに関してアプリケーションのリソーススケジュールを決定するように処理システム１４０３に指示する。少なくとも一実施例では、ユーザは、コスト、アプリケーションの動作に必要な時間、アプリケーションに必要なセンサなどの特性を選択することができる。特性を提供することに応答して、タイムスロットおよび衛星は、利用可能な衛星および必要な特性を満たす時間を示す開発者に利用可能にされることができる。利用可能な衛星および時間から、開発者は、アプリケーションのスケジュールを選択することができ、アプリケーションは、アプリケーションに必要な衛星に展開されることができる。
【００８６】
含まれる説明および図は、当業者に最良の選択肢を構成して使用する方法を教示するための特定の実施例を示している。本発明の原理を教示する目的で、いくつかの従来の態様は、簡略化または省略されている。当業者は、本発明の範囲内に入るこれらの実施例からの変形形態を理解するであろう。当業者はまた、上述した特徴が様々な方法で組み合わせられて複数の実施例を形成することができることを理解するであろう。結果として、本発明は、上述した特定の実施例に限定されるものではなく、特許請求の範囲およびそれらの均等物によってのみ限定される。
【図１】
2019537351.tif 000003
【図２】
2019537351.tif 000004
【図３】
2019537351.tif 000005
【図４】
2019537351.tif 000006
【図５】
2019537351.tif 000007
【図６】
2019537351.tif 000008
【図７】
2019537351.tif 000009
【図８】
2019537351.tif 000010
【図９】
2019537351.tif 000011
【図１０】
2019537351.tif 000012
【図１１】
2019537351.tif 000013
【図１２】
2019537351.tif 000014
【図１３】
2019537351.tif 000015
【図１４】
2019537351.tif 000016
【国際調査報告】
2019537351.tif 000017