IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザ・ボーイング・カンパニーの特許一覧

特許7695790ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳
<>
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図1
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図2
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図3A
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図3B
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図3C
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図3D
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図4
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図5
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図6
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図7
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図8
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図9
  • 特許-ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-11
(45)【発行日】2025-06-19
(54)【発明の名称】ソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配用分散型台帳
(51)【国際特許分類】
   H04W 84/18 20090101AFI20250612BHJP
   H04W 8/24 20090101ALI20250612BHJP
【FI】
H04W84/18
H04W8/24
【請求項の数】 11
【外国語出願】
(21)【出願番号】P 2021001694
(22)【出願日】2021-01-07
(65)【公開番号】P2021111970
(43)【公開日】2021-08-02
【審査請求日】2023-12-27
(31)【優先権主張番号】16/737,488
(32)【優先日】2020-01-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500520743
【氏名又は名称】ザ・ボーイング・カンパニー
【氏名又は名称原語表記】The Boeing Company
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】フリーマン, ローランド エヌ.
(72)【発明者】
【氏名】レンチャー, ロバート ジェイ.
(72)【発明者】
【氏名】タッカー, ラフル シー.
【審査官】▲高▼木 裕子
(56)【参考文献】
【文献】特開2009-188930(JP,A)
【文献】特開2010-045526(JP,A)
【文献】米国特許出願公開第2019/0384587(US,A1)
【文献】米国特許出願公開第2014/0123123(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24 - 7/26
H04W 4/00 - 99/00
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
複数のノードを含む無線アドホックネットワークで動作可能なソースノード(502a、1000)であって、
コンピュータ可読プログラムコード(1006)を記憶するように構成されたメモリ(1004)と、
処理回路(1002)と
を備え、前記処理回路(1002)が、前記メモリにアクセスし、前記コンピュータ可読プログラムコードを実行して、前記ソースノードに、少なくとも
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(902)、
前記ソースノードが前記タスクを実行不可能であるとの決定を行うこと(904)、前記決定に応じて、
前記複数のノードにわたって複製、共有及び同期される分散型台帳に実装されるモジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)であって、前記分散型台帳及びこれにより前記MRの前記ローカルコピーが、前記複数のノードに利用可能なソフトウェアモジュールを備える不変のエントリを含む、モジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)
前記タスクを実行するために使用可能なソフトウェアモジュールのために前記MRの前記ローカルコピーを検索すること(908)
前記ソフトウェアモジュールのリクエストを前記ソースノードの無線範囲内で前記複数のノードにブロードキャストすることにより、前記複数のノードから前記ソフトウェアモジュールを受信すること、並びに
前記タスクを実行するために前記ソフトウェアモジュールを使用すること(910)
を行わせるように構成される、ソースノード(502a、1000)。
【請求項2】
前記MR(510a)の前記ローカルコピーを検索させる前記ソースノードが、具体的に識別される前記ソフトウェアモジュールのために前記MRの前記ローカルコピーを検索させる前記ソースノードを含む、請求項1に記載のソースノード(502a、1000)。
【請求項3】
前記MR(510a)の前記ローカルコピーを検索させる前記ソースノードが、前記ソフトウェアモジュールを具体的に識別することなく、前記タスクを実行するために使用可能な任意のソフトウェアモジュールのために前記MRの前記ローカルコピーを検索させる前記ソースノードを含む、請求項1又は2に記載のソースノード(502a、1000)。
【請求項4】
前記分散型台帳及びこれによる前記MR(510a)の前記ローカルコピーが、前記ソフトウェアモジュールを含む前記ソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含み、
前記処理回路(1002)が、前記コンピュータ可読プログラムコード(1006)を実行し、更に、前記ソースノードに、前記ソフトウェアモジュールが使用される前に、前記ソースノードには前記ソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、前記MRの前記ローカルコピーを検索させるように構成され、前記ソースノードには、前記ソースノードが許可されているときにのみ、前記ソフトウェアモジュールを使用させる、請求項1から3のいずれか一項に記載のソースノード(502a、1000)。
【請求項5】
前記処理回路(1002)が、前記コンピュータ可読プログラムコード(1006)を実行し、更に、前記ソースノードに、少なくとも
前記MR(510a)の前記ローカルコピー内の追加的な不変のエントリにおける前記ソフトウェアモジュールの使用を記録すること、及び
前記追加的な不変のエントリを、前記ソースノードの無線範囲内で前記複数のノードのエントリにブロードキャストし、前記MR(510a)の前記ローカルコピーの、前記複数のノードの他のノードにおける前記MRのコピーとの同期を開始すること
行わせるように構成される、請求項1から4のいずれか一項に記載のソースノード(502a、1000)。
【請求項6】
複数のノードを含む無線アドホックネットワークにおいてソースノード(502a、1000)によってソフトウェアを取得する方法(900)であって、前記ソースノードが、
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(902)、
前記ソースノードが前記タスクを実行不可能であるとの決定を行うこと(904)、前記決定に応じて、
前記複数のノードにわたって複製、共有及び同期される分散型台帳に実装されるモジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)であって、前記分散型台帳及びこれにより前記MRの前記ローカルコピーが、前記複数のノードに利用可能なソフトウェアモジュールを備える不変のエントリを含む、MR(510a)のローカルコピーにアクセスすること(906)、
前記タスクを実行するために使用可能なソフトウェアモジュールのために前記MRの前記ローカルコピーを検索すること(908)
前記ソフトウェアモジュールのリクエストを前記ソースノードの無線範囲内で前記複数のノードにブロードキャストすることにより、前記複数のノードから前記ソフトウェアモジュールを受信すること、並びに
前記タスクを実行するために前記ソフトウェアモジュールを使用すること(910)
を含む、方法(900)。
【請求項7】
前記MR(510a)の前記ローカルコピーを検索することが、具体的に識別される前記ソフトウェアモジュールのために前記MRの前記ローカルコピーを検索することを含む、請求項6に記載の方法(900)。
【請求項8】
前記MR(510a)の前記ローカルコピーを検索することが、前記ソフトウェアモジュールを具体的に識別することなく、前記タスクを実行するために使用可能な任意のソフトウェアモジュールのために前記MRの前記ローカルコピーを検索することを含む、請求項6又は7に記載の方法(900)。
【請求項9】
前記分散型台帳及びこれによる前記MR(510a)の前記ローカルコピーが、前記ソフトウェアモジュールを含む前記ソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含み、
前記方法は、前記ソースノード(502a、1000)が、前記ソフトウェアモジュールが使用される前に、前記ソースノードには前記ソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、前記MRの前記ローカルコピーを検索することを更に含み、前記ソースノードは、前記ソースノードが許可されているときにのみ、前記ソフトウェアモジュールを使用する、請求項6から8のいずれか一項に記載の方法(900)。
【請求項10】
前記ソースノード(502a、1000)が、
前記MR(510a)の前記ローカルコピー内の追加的な不変のエントリに前記ソフトウェアモジュールの使用を記録すること、及び
前記追加的な不変のエントリを、前記ソースノードの無線範囲内で前記複数のノードのエントリにブロードキャストし、前記MRの前記ローカルコピーの、前記複数のノードの他のノードにおける前記MRのコピーとの同期を開始すること
を更に含む、請求項6から9のいずれか一項に記載の方法(900)。
【請求項11】
請求項6から10のいずれか一項に記載の方法を実行するように構成された、コンピュータで実行可能なプログラムコード命令が記憶された非一過性のコンピュータ可読記憶媒体
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ソフトウェア分配に関し、特に、自律型機械などのソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配に関する。
【背景技術】
【0002】
最新の機械の多くは、安全に操作するために十分な訓練を受けたオペレーターを必要とする他の機械と比較して、自律性を高めて操作するように設計されている。これらの自律型機械は、無人地上車両(UGV)、無人航空機(UAV)、無人飛翔体(USV)、無人水中機(UUV)及び無人宇宙船を含む、自律型ロボット及び様々な無人移動体を含む。複数のこれらの自律型機械には、データを処理するためのソフトウェアモジュールが備えられる。このデータは、センサによって作成又は提供される。
【0003】
自律型機械には、ソフトウェアモジュールが予めローディングされていることが多く、ミッションに参加すると、ソフトウェアモジュールは、機械の操作要求及びミッションの目的に基づき、データを処理するために使用されうる。自律型機械は、データを交換し、センサによって取得されたデータについて報告するために、他の自律型機械、又は地上局などの1つ又は複数のハブと直接又は間接的に通信しうる。自律型機械は、よりスマートになり、センサのうちの1つ又は複数によって作成又は提供されたデータの特定のモダリティを処理できないと決定可能な学習システムになっている。しかし、ミッションに参加すると、自律型機械がミッションを実行したり、データの特定のモダリティを処理したりできるようにするソフトウェアモジュールの分配はより複雑になり、人の介入が必要になることが多い。
【0004】
したがって、上記の問題の少なくとも一部と、起こりうるその他の問題とを考慮した、システム及び方法を有することが望ましいだろう。
【発明の概要】
【0005】
本開示の例示的実施態様は、概して、ソフトウェア分配に関し、特に、自律型機械などのソースノードでのアドホックデータ処理のための無線アドホックネットワークでのソフトウェア分配に関する。例示的実施態様は、自律型機械のネットワークなど、無線アドホックネットワークでソフトウェアを取得する、インテリジェントなトランザクション型の分散型フェデレーション方法を提供する。方法は、データのモダリティの処理などのタスクを実行する必要性を自動的に決定することと、
無線アドホック内のノード間で通信することにより、タスクを実行するために使用可能なソフトウェアモジュールを見つけることと、ソフトウェアモジュールを取得し、それを使用して、人間の介入なくにタスクを実行することとを含みうる。
【0006】
例示的な実施態様は、方法、コンプライアンス及び使用率に対するガバナンスを更に定義しうる。不変のデータエントリの分散型台帳は、承認に関連するイベントの確認、使用率の監視、契約上の使用コンプライアンス、相関値の交換、イベントの監視/可聴性(リクエスト、ソフトウェアモジュールのワークフローへの構成、送信、インストール、使用率、インストール解除)などに提供されうる。
【0007】
例示的な実施態様により、ミッションに配備された自律型機械、ミッションの自己記述、ミッションの目標を達成するために使用可能なソフトウェアモジュールの検索、及びそれらの目標達成に基づくミッションの遂行を含む、無線アドホックネットワークが可能になりうる。いくつかの例では、これは、機会にインストールされたソフトウェアモジュールに関する情報を含む不変のエントリの分散型台帳への照会、及びインストールされたソフトウェアモジュールのバージョン管理を含みうる。動的検出は、所望の機能、正しい/許容可能な構成、現在の位置、送信モード、及びソフトウェアを送信するためのネットワーク機能を実現するためにソフトウェアモジュールに要求されるものを知るのに十分なシステムインテリジェンスを含みうる。
【0008】
したがって、本開示は、以下の例示的な実施態様を含むが、これらに限定されない。
【0009】
いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワークのソースノードによってソフトウェアを取得する方法であって、それらのノードが、タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること、ソースノードがそのタスクを実行不可能であるとの決定を行うこと、その決定に応じて、複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスすることであって、分散型台帳及びこれによるそれぞれのローカルコピーが、タスクを実行するために使用可能なソフトウェアモジュールを含むソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳のそれぞれのローカルコピーにアクセスすること、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること、ソースノードが許可されているときにのみ、タスクを実行するために使用可能なソフトウェアモジュールのためにソースノードのローカルモジュールリポジトリ(MR)を検索すること、ソースノードがローカルMR内でソフトウェアモジュールの位置を突き止められないことに応じて、ソフトウェアモジュールのリクエストを、ソースノードの無線範囲の複数のノードのリクエストにブロードキャストし、これにより複数のノードが近傍ノードとなり、複数の近傍ノードのうちの1つの近傍ノードが、ソフトウェアモジュールのために、近傍ノードのそれぞれのローカルMRを検索する、ブロードキャストすること、近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストし、近傍ノードがこれにより更なる近傍ノードとなる、再びブロードキャストすること、並びに複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信することを含み、ソースノードが更に、近傍ノードからソフトウェアモジュールを受信すること、並びにタスクを実行するためにソフトウェアモジュールを使用することを含む方法を提供する。
【0010】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、ソースノードが、分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び追加的な不変のエントリを近傍ノードにブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始することを更に含む。
【0011】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、ソースノードが、近傍ノードの分散型台帳のそれぞれのコピーにおいて、近傍ノードがソースノードからブロードキャストされたリクエストを記録することに応じて、近傍ノードからブロードキャストされた更なる追加的な不変のエントリを受信すること、及び更なる追加的な不変のエントリを分散型台帳のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを近傍ノードの分散型台帳のそれぞれのコピーと同期することを更に含む。
【0012】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、ソースノードが、ソフトウェアモジュールの受信を分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリに記録すること、及び追加的な不変のエントリを近傍ノードにブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始することを更に含む。
【0013】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、ソースノードが、分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリにソフトウェアモジュールの使用を記録すること、及び追加的な不変のエントリを近傍ノードにブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始することを更に含む。
【0014】
いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワークのソースノードによってソフトウェアを取得する方法であって、それらのノードが、ソースノードの無線範囲内において近傍ノードであり、複数の近傍ノードのうちの1つの近傍ノードが、ソースノードがローカルモジュールリポジトリ(MR)においてソフトウェアモジュールの位置を突き止められないことに応じて、タスクを実行するために使用可能なソフトウェアモジュールの、ソースノードからのリクエストを受信することであって、リクエストがソースノードから近傍ノードまでブロードキャストされ、近傍ノードがそのリクエストに応じる、ソースノードからのリクエストを受信すること、複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスすることであって、分散型台帳及びこれによるそれぞれのローカルコピーがソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳のそれぞれのローカルコピーにアクセスすること、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること、ソースノードが許可されているときにのみ、ソフトウェアモジュールのために近傍ノードのそれぞれのローカルMRを検索すること、近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストすること、複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信すること、並びにタスクを実行するためにソフトウェアモジュールを使用するソースノードにソフトウェアモジュールに返すことを含む、方法を提供する。
【0015】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、分散型台帳及びこれによるそれぞれのローカルコピーはまた、近傍ノードによって受信された以前のリクエストが記録される不変のエントリを含み、方法は、近傍ノードが、不変のエントリを検索し、リクエストがソースノードからのソフトウェアモジュールの新たなリクエストであることを検証することを含む。
【0016】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、近傍ノードが、分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び追加的な不変のエントリをソースノード及び更なる近傍ノードにブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始することを更に含む。
【0017】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、近傍ノードが、更なる近傍ノードの分散型台帳のそれぞれのコピーにおいて、更なる近傍ノードが近傍ノードから再びブロードキャストされたリクエストを記録することに応じて、近傍ノードからブロードキャストされた更なる追加的な不変のエントリを受信すること、及び更なる追加的な不変のエントリを分散型台帳のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを更なる近傍ノードの分散型台帳のそれぞれのコピーと同期することを更に含む。
【0018】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、方法は、近傍ノードが、分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリにソフトウェアモジュールの受信を記録すること、及び追加的な不変のエントリをソースノード及び更なる近傍ノードにブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始することを更に含む。
【0019】
いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワークにおいてソースノードによってソフトウェアを取得する方法であって、ソースノードが、タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること、ソースノードがタスクを実行不可能であるとの決定を行うこと、その決定に応じて、複数のノードにわたって複製、共有及び同期される分散型台帳に実装されるモジュールリポジトリ(MR)のローカルコピーにアクセスすることであって、分散型台帳及びこれによりMRのローカルコピーが、複数のノードに利用可能なソフトウェアモジュールを備える不変のエントリを含む、MRのローカルコピーにアクセスすること、タスクを実行するために使用可能なソフトウェアモジュールのためにMRのローカルコピーを検索すること、並びにタスクを実行するためにソフトウェアモジュールを使用することを含む。
【0020】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、MRのローカルコピーを検索することは、具体的に識別されるソフトウェアモジュールのためにMRのローカルコピーを検索することを含む。
【0021】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、MRのローカルコピーを検索することは、ソフトウェアモジュールを具体的に識別することなく、タスクを実行するために使用可能な任意のソフトウェアモジュールのためにMRのローカルコピーを検索することを含む。
【0022】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、分散型台帳及びこれによりMRのローカルコピーは、ソフトウェアモジュールを含む、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含み、この方法は、ソースノードが、ソフトウェアモジュールが使用される前に、ソースノードにはソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、MRのローカルコピーを検索することを更に含み、ソースノードは、ソースノードが許可されているときにのみ、ソフトウェアモジュールを使用する。
【0023】
任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法のいくつかの例示的な実施態様では、この方法は、ソースノードが、MRのローカルコピー内の追加的な不変のエントリにソフトウェアモジュールの使用を記録すること、及び追加的な不変のエントリを、ソースノードの無線範囲内で複数のノードのエントリにブロードキャストし、MRのローカルコピーの、複数のノードの他のノードにおけるMRのコピーとの同期を開始することを行うことを更に含む。
【0024】
いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワークで動作可能なソースノードであって、コンピュータ可読プログラムコードを保存するように構成されたメモリと、このメモリにアクセスし、コンピュータ可読プログラムコードを実行して、ソースノードに、少なくとも、任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法を実行させるように構成された処理回路とを含むソースノードを提供する。
【0025】
いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワークで動作可能な近傍ノードであって、それらのノードは、ソースノードの無線範囲内において、近傍ノードであり、その近傍ノードが、コンピュータ可読プログラムコードを記憶するように構成されたメモリと、このメモリにアクセスし、コンピュータ可読プログラムコードを実行して、近傍ノードに、少なくとも、任意の前述の例示的実施態様、又は任意の前述の例示的実施態様の任意の組み合わせの方法を実行させるように構成された処理回路とを含む近傍ノードを提供する。
【0026】
本開示の、上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、添付図面と共に以下の詳細な説明を読むことで自明となろう。添付の図については下記で簡潔に説明する。本明細書に記載の具体的かつ例示的な実施態様において、この開示に明記している2つ、3つ、4つ、又はそれ以上の数の特徴又は要素が、明示的に組み合わされるかどうか、又は別様に列挙されるかどうかにかかわらず、本開示は、かかる特徴又は要素の任意の組み合わせを含む。この開示は、全体論的に読まれることが意図されており、これにより、本開示の分離可能ないかなる特徴又は要素も、そのいかなる態様及び例示的な実施態様においても、本開示の文脈に明記されない限りは、組み合わされることが可能であると見なされるべきである。
【0027】
したがって、この「発明の概要」は、本開示のいくつかの態様の基本的な理解を供するように、いくつかの例示的な実施態様を要約することのみを目的として、提供されていると認識されよう。そのため、上述の例示的な実施態様は例に過ぎず、いかなる意味においても、本開示の範囲又は本質を狭めると解釈すべきではないことが認識されよう。その他の例示的な実施態様、態様、及び利点は、添付図面と併せて以下の詳細説明を参照することで自明となろう。添付の図は、記載されているいくつかの例示的な実施態様の原理を、例を用いて示している。
【0028】
上記では、本開示の例示的な実施態様を一般的な用語で説明してきた。これより添付の図を参照するが、これらの図は必ずしも正確な縮尺で描かれているわけではない。
【図面の簡単な説明】
【0029】
図1】本開示の例示的実施態様が有用でありうる無線アドホックネットワークを示す。
図2】本開示の例示的実施態様による、いくつかの無人移動体と地上局とを含む無線アドホックネットワークを示す。
図3】AからDは、本開示のいくつかの例示的な実施態様による、無人移動体(ソースノード)がソフトウェアモジュールを取得しうるプロセスを示す。
図4】本開示の例示的実施態様による無線アドホックネットワークを示す。
図5】本開示の例示的実施態様による無線アドホックネットワークを示す。
図6】例示的実施態様による、複数の無線アドホックネットワークを備えるシステムを示す。
図7】例示的な実施態様による、複数のノードを含む無線アドホックネットワークのソースノードによってソフトウェアを取得する方法における様々な工程を示すフローチャートである。
図8】例示的な実施態様による、複数のノードを含む無線アドホックネットワークのソースノードによってソフトウェアを取得する方法における様々な工程を示すフローチャートである。
図9】例示的な実施態様による、複数のノードを含む無線アドホックネットワークのソースノードによってソフトウェアを取得する方法における様々な工程を示すフローチャートである。
図10】いくつかの例示的な実施態様による装置を示す。
【発明を実施するための形態】
【0030】
添付図面を参照しつつ、本開示の一部の実施形態について、これより下記でより詳しく説明する。添付図面には、本開示の実施形態の一部が示されているのであって、すべてが示されているわけではない。実際、本開示の様々な実施態様は、多くの異なる形態で具現化されてよく、本明細書に明記されている実施態様に限定されると解釈すべきではない。むしろ、かかる例示的な実施態様は、この開示が、包括的かつ完全なものになるように、かつ当業者にこの開示の範囲を十分に伝えるように提供されている。例えば、特に明記されていない限り、又は文脈から明らかでない限り、第1、第2などへの言及は、特定の順序を意味すると解釈すべきでない。ある機能は、別の機能の上にあると説明されることがあり(特に明記されていない限り、又は文脈から明らかでない限り)、代わりに下にあることがあり、その逆もある。同様に、別の機能の左側にあると説明されている機能が、代わりに右側にあることがあり、その逆もある。本明細書で使用される場合、特に明記されていない限り、又は文脈から明らかでない限り、一組のオペランドの「or」は「包括的or」であり、これにより、すべてのオペランドが真である場合に偽である「排他的or」とは対照的に、1つ又は複数のオペランドが真である場合にのみ真になる。したがって、例えば、[A]が真の場合、又は[B]が真の場合、又は[A]と[B]の両方が真の場合に、「[A]又は[B]」は真になる。更に、冠詞「a」及び「an」は、特に明記されていない限り、又は文脈から明らかでない限り、「1つ又は複数」を意味する。全体を通して、同じ参照番号は同じ要素を指す。
【0031】
本開示の例示的な実装は、一般に、ソフトウェア分配、特に、ソースノードでのアドホックデータ処理のための無線アドホックネットワークにおけるソフトウェア分配に関連する。いくつかの例示的な実施態様は、複数のノードを含む無線アドホックネットワーク内のソースノードによってソフトウェアを取得する方法を提供する。本明細書で説明するように、「ノード」は、物理ネットワークノード、つまり、通信チャネルを介して情報を作成、送信、又は受信することができるアクティブな電子デバイスである。適切なノードの一例は、自律型機械であり、これは、人の介入に依存せず又は最小限の人の介入で、ミッションを実行するように構成された機械である。適した自律型機械の例は、無人地上車両(UGV)、無人航空機(UAV)、無人飛翔体(USV)、無人水中機(UUV)、無人宇宙船などを含む、自律型ロボット及び様々な無人移動体を含む。これらは、自律的な自動車、飛行機、列車、産業車両、遂行センターロボット(fulfillment center robot)、供給連鎖ロボット、ロボット式移動体、掃海艇などを含みうる。適したノードの他の例は、コンピュータ、コンピュータシステムなどを含む。
【0032】
図1は、本開示の例示的実施態様が有用でありうる無線アドホックネットワーク100を示す。図示するように、無線アドホックネットワークは、ミッションに配備可能な複数のUAV102a、UGV102b、USV102c、UUV102d及び無人宇宙船102eを含む様々な無人移動体102として示されるノードを含む。ミッションは、無人移動体の1つ、又は無人移動体が互いに通信する複数の無人移動体を包含しうる。この点で、無人移動体は、それぞれの通信チャネルを介して、互いに、かつ地上局104(別のノード)と通信しうる。無人移動体のネットワークとして図示されているが、無線アドホックネットワークは、無人移動体に加えて又はその代わりに、1つ又は複数の自律型ロボット又は他の自律型機械を含みうると理解すべきである。そして以下で説明するように、更により一般的には、無線アドホックネットワークは、単に複数のノードを含みうる。
【0033】
無人移動体102及び/又は地上局104を含む無線アドホックネットワーク100の1つ又は複数のノードの各々は、センサ106、ソフトウェアモジュール108、モジュールリポジトリ(MR)110及びモジュール検索サービス(MSS)112の集合体(特に無人宇宙船102eに対して示される)を含みうる。
【0034】
いくつかの例では、センサ106の集合体は、無人移動体がミッションに参加している間にデータを収集するよう構成され、ソフトウェアモジュール108は、プランニング、収集、分析、データ分配などといった、データの処理又は分析のためのものである。この点で、無人移動体102は、生データを処理し、ローカルに記憶し、可能かつ必要な場合には、更に、その生データを送信しうる。いくつかの例では、ソフトウェアモジュールはまた、メタデータを生データに追加するために使用され、そのメタデータは、生データと共に記憶及び/又は送信されうる。
【0035】
ソフトウェアモジュール108は、入力データ(生データ又は派生データ)の1つ又は複数のソース、及びデータがどのように操作され、データの1つ又は複数の出力モダリティを生成するかを決定する構成制御のゼロ以上のソースを取得するように構成されたコンピュータプログラムである。ソフトウェアモジュールは、そのホストコンピュータ又は他のソフトウェアモジュール若しくはワークフローと通信するために、1つ又は複数の周知の又は事前に定義されたインターフェースを使用する。ソフトウェアモジュールは、プラグインエンドポイントを介して(例えば、API(アプリケーションプログラミングインターフェース)を介して)、既知の通信プロトコルに従いうる。例えば、ソフトウェアモジュールは、公開されているRepresentational State Transfer(REST)APIでハイパーテキスト転送プロトコルセキュア(HTTPS)プロトコルを使用しうる。
【0036】
ソフトウェアモジュール108のうちの1つ又は複数により、ワークフローの形成及び実行が可能になりうる。ワークフローは、データを導出するためのDAG(有向非巡回グラフ)、又はワークフロー内の出力データ品質を向上させるためのフィードバック制御システムなどの実行階層に編成されたソフトウェアモジュールを含む。ワークフローは、ソフトウェアモジュールの相互リンクであり、DAG構成、又は何らかの態様においてワークフローの出力を改善する決定論的フィードバックメカニズムであるソフトウェアモジュールの出力が別のモジュールの入力又は制御として役立つ。ワークフローはまた、ソフトウェアモジュールとしての役割を果たしうる。ソフトウェアモジュール又はワークフローは、線形プログラムとして実行することも、設計、実装及び機能に基づいて並列化することもできる。
【0037】
ソフトウェアモジュール108(及びワークフロー)は、類似の性能を有していても、異なる性能を有していてもよい。ソフトウェアモジュールは、データを読み取り、必要に応じて、データを書き込むための許可を有しうる。ソフトウェアモジュールは、生データを読み取り、派生データの形式で更なるデータを生成しうる。ソフトウェアは、生データ又は派生データを操作するための許可を有していても有していなくてもよい。この点で、ソフトウェアモジュールは、派生データを読み取り更なる派生データの形式でなおも更なるデータを生成しうる。派生データは、それが派生した(ソース)データより小さくても大きくてもよい。派生データは、小さい場合、ソースデータの一部でありうる。
【0038】
その部分的な形式又は完全な形式のデータ(生データ又は派生データ)は、利用可能な通信機能、接続性、接続の承認、分配の承認、及び受信の承認に依存し、1つ又は複数の宛先として配信されうる。適切な宛先の例は、他の無人移動体102、地上局104、有人移動体、又はモバイル若しくは固定通信端末などを含む。
【0039】
適切なソフトウェアモジュール108の例は、コンピュータビジョンモジュール、コンテンツ管理モジュール、サイバーセキュリティモジュール、データ最適化モジュール、データ削減モジュール、データ量子化モジュール、データ分析モジュール、マシンツーマシン通信モジュール、機械学習(ML)モジュール、人工知能(AI)エンジン、同一の無人移動体102に搭載された又は他の無人移動体に搭載された他のソフトウェアモジュールと通信するクライアントソフトウェアモジュールを含む。
【0040】
センサ106及びソフトウェアモジュール108に加えて、無人移動体102(並びに地上局104)はまた、MR110及びMSS112を含みうる。MR及びMSSは、1つ又は複数のコンピュータで分散して実行されうる。MR及びMSSはまた、無人移動体102のコンピュータで実行されうる。
【0041】
MR110は、1つ又は複数のソフトウェアモジュール108(ソフトウェアモジュールのインストールされていないコピー)を包含するリポジトリである。周知の市販のMRの例は、Docker Hub及びAmazon Container Registryを含む。MRは、ソフトウェアモジュールを記憶デバイスに記憶し、周知のMRと同様に、ソフトウェアモジュールでのCRUD(形成、読み出し、更新及び削除)動作、ライセンシング、バージョン制御などを管理する。
【0042】
MSS112は、無人移動体102(又は地上局104)に搭載されたコンピュータで実行されるサービスである。MSSは、利用可能のソフトウェアモジュール108のリスト、及びソフトウェアモジュールが検索基準に基づき利用可能なノードを提供する。MSSは、利用可能なソフトウェアモジュールの機能、固有ノードからの検索リクエスト、様々なノードの要件、新しいコンテンツが公開され、古いコンテンツが削除されていることについて、周知の検索エンジンと同じように時間をかけて学習する。
【0043】
本開示の例示的実施態様にしたがって、無人移動体102搭載のMSS112は(また恐らく地上局104も)、動的なメッシュ状ネットワークを形成し、その動的なメッシュ状ネットワークは、典型的なドメインネームシステム(DNS)ネットワークに類似した形式に編成されうる。リクエスト及び応答は、無人移動体搭載のサーバによりホストされるAPIを介して処理されうる。接続された無人移動体にわたるMSSメッシュもまた、コンテンツ配信ネットワーク(CDN)に類似した形式に編成されうる。
【0044】
いくつかの特定の例では、無線アドホックネットワーク100は、ジオスウォームネットワークに配置された使用制限された無人移動体102を含みうる。無人移動体をまとめて、それらの通信ネットワークがスウォーム内に同期させ、無人移動体と互換性のあるソフトウェアモジュール108をロードイン及びロードアウトしうる。各無人移動体は、データを収集し、そのデータを、一次移動体として指定された無人移動体のうちの1つに送信しうる。一次移動体は、そのデータを単一のシステムに結合し、実行可能な処理のために、そのデータを地上局104などの指定された受信器にリアルタイムで提示する。
【0045】
本開示の例示的実施態様にしたがって、無人移動体102で実行されるMSS112は、それ自身のMR110内で1つ又は複数のリクエストされたソフトウェアモジュール108を検索する、又は他のMSSへのリクエストをブロードキャストし、それらそれぞれのMR内でリクエストされたソフトウェアモジュールを検索するように構成されうる。循環的なリクエストを回避するために、各リクエストには、汎用一意識別子(UUID)などの一意識別子が含まれうる。UUIDは、タイムスタンプ(例えば、協定世界時)を保持又は担持して、無人移動体識別子、セキュリティトークン、アクセス制御パラメータ及び標準のWebベースセキュリティトークンに見られるような他の識別子と許可をリクエストしうる。
【0046】
MSS112は、リクエスト元のMSSからリクエストを受信すると、同一のリクエストを近い過去にまだ受信し処理していないことを検証しうる。リクエストを検証するために、MSSは、以前のリクエストからのタイムスタンプ付きのトークンを比較しうる。この点で、MSSは、その無人移動体102がそれらのリクエスト、リクエストしている無人移動体の識別子をいつ受信したか、及びそのリクエストがいつ行われたかによって、以前のリクエストをソートしうる。MSSが近い過去に同じリクエストをすでに受信し処理している場合、MSSは、そのリクエストを単に無視してもよく、又は、リクエストが重複している若しくは潜在的に循環するリクエストであることをリクエストしているMSSに通知するために、リクエストしているMSSにエラーを追加的に返してもよい。
【0047】
いくつかの例示的実施態様では、無人移動体102及び/又は地上局104を含む、無線アドホックネットワーク100のノードは、分散型台帳(DL)114及びDLソフトウェアサーバ(DSS)116(特に無人宇宙船102eに対して示される)を更に含みうる。MR110及びMSS112に類似して、DL及びDSSは、1つ又は複数のコンピュータ上で分散して実行され、また、無人移動体、地上局などの上のコンピュータ上で実行されうる。
【0048】
DL114及びDSS116は、イベントレベルのトレーサビリティ、イベントトリガされたアクティビティを提供しソフトウェアモジュールインベントリ及び利用率を伝達するために、分散型台帳テクノロジー(DLT)モデルを実装しうる。トレーサビリティは、誰/どのノードがソフトウェアモジュール108をリクエストしたか、どのノード(又はMSS112)がリクエストをブロードキャスト又は再ブロードキャストしたか、どのノードがリクエストされたソフトウェアモジュールを有しているかなどを考慮しうる。DLTモデルは、ソフトウェアモジュールを送信、受信及びロードするための承認を提供し、これにより、通過と権限の検証及び確認が作成されうる。次いで、ソフトウェアモジュールの転送中にソフトウェアモジュールのスペースを供給し、必要な項目を調整し、転送が完了したことを確認したら、ソフトウェアモジュールのロード又はインストールを開始するように、APIがトリガされうる。DLTモデルはまた、単一のソフトウェアモジュールがリクエストされた回数を追跡しうる。これにより、リクエストされた状況に近い特定のノードにソフトウェアモジュールを予めローディングし、それをアクティブに使用していないノードから削除して、ソフトウェアモジュールの使用率を高め、検出時間を短縮し、ソフトウェアモジュールが不要な場合にリソースを利用可能にすることができる。
【0049】
DL114は、無人移動体102及び/又は地上局104を含む、無線アドホックネットワークのノードにわたって複製、共有及び同期される分散型台帳であり、その各々が分散型台帳のローカルコピーを有している。DSS116は、DL、又はより具体的には、DLのそれぞれのローカルコピーを管理するように構成されたサーバである。いくつかの例では、DSSは、DLのそのローカルコピー内の追加的な不変のエントリにデジタルデータを記録し、コンセンサスアルゴリズムを実装して、ノードにわたりデジタルデータの複製と同期を保証するように構成される。
【0050】
DL114は、ノードにわたり広がる複製、共有及び同期されたデジタルデータのコンセンサスである。いくつかの例では、DLは、ノードにわたり広がるデータベースとして実装され、それらの各々が、DLのそれぞれのローカルコピーを複製及び保存し、そのコピーを独立して更新する。DL及びこれによるそれぞれのローカルコピーは、デジタルデータの不変のエントリを含み、不変とは、DLに記憶されたデジタルデータの不可変性と定義される。
【0051】
いくつかの例では、DL114は、ブロックチェーンとして実装されうる。そのブロックチェーンは、ブロックと呼ばれる不変のエントリ(記録)の連続的な成長リストであり、暗号化を使用してリンクされ保護される。ブロックチェーン内の各ブロックは、以前のブロックの暗号化ハッシュ、タイムスタンプ、及びトランザクションデータを包含しうる。ブロックチェーンは、本質的に、ブロックチェーンに記憶されたデジタルデータの修正に耐性がある。ブロックチェーンは、無線アドホックネットワークのノードにわたってトランザクションを記録するための、非集中型、分散型、及びパブリック若しくはプライベート許可ベースのデジタル台帳として使用されうる。
【0052】
したがって、DL114は、無線アドホックネットワーク100、そのノード(例えば、無人移動体102、地上局104)、及びそのノードのセンサ106、ソフトウェアモジュール108、MR110及び/又MSS112に関連した、複数の異なる種類のデータを含む不変のエントリを含みうる。いくつかの例では、DLは、また地上局でないにせよ、無人移動体を含む、無線アドホックネットワークのノードに利用可能なソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む。追加的に又は代替的には、いくつかの例では、DLは、ノード間のトランザクションが記録される不変のエントリを含む。DLは、ソフトウェアモジュールから作成されたワークフローの構成を示す不変のエントリを含みうる。いくつかの例では、MR110は、DLとして実施されうる。これらの例において、DL及びこれによりMRは、無線アドホックネットワークのノードに利用可能なソフトウェアモジュールを有する不変のエントリを含みうる。
【0053】
いくつかの例では、無線アドホックネットワーク100のノードは、無線アドホックネットワークに対する中央ノードとして機能しうる。図1に示す無線アドホックネットワークにおいて、例えば、地上局104は、中央ノードとして機能しうる。中央ノードは、ソフトウェアモジュール108、並びにマスターMR110’、中央MSS112’、マスターDL114’及び中央DSS116’を含みうる。中央ノードは、無線アドホックネットワークのノードに類似したソフトウェア分配に関係しうる。追加的に又は代替的には、いくつかの例では、中央ノードは、初期のソフトウェア定義を可能にし、無線アドホックネットワークに対する権限あるMR及びDLとしてのマスターMR及びマスターDLを含み、無線アドホックネットワークのソフトウェア分配に最適化分析を提供する。
【0054】
いくつかの例では、無線アドホックネットワーク100のノードにより実行されるミッション開始において、無人移動体102には、中央ノード(例えば、地上局104)などから、キー情報がロードされうる。この情報は、例えば、搭載されたセンサ106及びソフトウェアモジュール108の性能のインベントリを含みうる。情報は、無線アドホックネットワーク内で利用可能なソフトウェアモジュールのインベントリ、及びオプションで、無線アドホックネットワークと同じ動作段階にある他の無線アドホックネットワークを含みうる。情報は、無人移動体がソフトウェアモジュールをリクエストし及び/又はソフトウェアモジュールを送信しうることに関する許可を含みうる。情報は、DL114に関連する暗号化アルゴリズムを含みうる。更に、例えば、無人移動体上にロードされた情報は、DLの権限を維持するために、ワイヤレスアドホックネットワーク内の他の無人移動体が同期する他の無人移動体の表示を含みうる。
【0055】
本開示の例示的実施態様を図解するために、無人移動体102のうちの第1の移動体(第1の無人移動体)が、そのセンサ106のうちの1つ又は複数によって収集されたデータ内のデータの新たなパターン及び新たなモダリティを検出するAIエンジンを有していると考える。AIエンジンは、データの新たなモダリティを処理するといったタスクを実行する必要性を識別するが、第1の無人移動体にタスクを実行するために使用可能なソフトウェアモジュール108が不足していると決定する。
【0056】
特定の例では、前方の地面を走査して地雷を探すように構成されたUGV102bを考える。UGVは、地面の障害を検査し、走査して金属を探す。鉱山がセラミック材料で作られている場合、UGVは、その上を通過する可能性がある。例示的実施態様によれば、UGVは、材料組成を決定するために、その搭載センサ106と互換性のあるソフトウェアモジュールをリクエストしうる。これにより、UGVは、セラミック組成物を検出し、追加のセラミック地雷を識別しミッション指令に基づいてそれらにマーク付けするか爆発させることができるエリアで、その組成テーブルとその将来の走査を更新することができるだろう。
【0057】
第1の無人移動体102のAIエンジンは、問題の説明を作成し、第1の無人移動体のMSS112(第1のMSS)が、その問題の説明を含むリクエストをブロードキャストし、リクエストには、第1の無人移動体とリクエストに戻る固有のトークン(DL114のローカルコピーから作成された、又はDL114のローカルコピーを使用して作成された第1のトークン)が含まれうる。第1のMSSは、事前に定義されたプロトコルを使用するか、又は自由形式のコンテンツとして(ローカルMR110の検索に失敗した後に)かのどちらかで、リクエストをブロードキャストする。第1のMSSは、ハイパーテキスト転送プロトコル(HTTP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)など周知のプロトコルを使用してリクエストをブロードキャストし、オプションで、暗号化若しくは他の周知の、又は独自のセキュリティメカニズムを使用する。この点で、第1のMSSは、リクエストをパッケージ化してブロードキャストする独自の方法を使用し、オプションで、暗号化若しくは他の周知の、又は独自のセキュリティメカニズムを使用する。
【0058】
無人移動体102の第2のもの(第2の無人移動体)は、リクエストを受信し、ノードとソフトウェアモジュール108の送信との間の通信を許可する前に、それをDLのそのローカルコピー114と比較して、承認又は否認を決定する。
【0059】
無人移動体102の第2のもののMSS112(第2のMSS)は、リクエストを受信し、リクエストを検証し、第1の無人移動体及びこれによる第1のMSSがリクエストを行い、ソフトウェアモジュール108を受信することが許可されているかどうかを確認しうる。第2のMSSは、第1の無人移動体が許可される検証をリクエストし、DSS116(第2のDSS)は、第1の無人移動体が許可されていること、即ち、第1の無人移動体がソフトウェアモジュールへのアクセス権を有していることを示す不変のエントリのために、DLのそれぞれのローカルコピー114にアクセスし検索しうる。追加的に又は代替的には、DSSは、リクエストを、DLのそれぞれのローカルコピーの追加的な不変のエントリに記録し、オプションで、暗号化又は他の周知の若しくは独自のセキュリティメカニズムを使用して、それぞれのローカルコピーをDLの他のローカルコピーと同期しうる。記録されたリクエストには、リクエストされたソフトウェアモジュール、ソースノード、リクエストを記録したノード(例えば、第2の無人移動体)、送信を有効にするために使用される関連する必要なネットワーク/プロトコルを使用した送信のステータス、ネットワーク使用などの承認といった情報を含みうる。エラーの場合、第2のMSSは、「許可が拒否された」と返されてもよく、又はセキュリティの理由で応答しないことを選択してもよい。同様に、第2のMSSは、第1のトークンを含むリクエストをすでに受信し処理したかどうかを確認し、受信し処理した場合には、第2のMSSが「複製リクエスト」エラーメッセージを返しうる。
【0060】
確認により、リクエストが固有であり、第1の無人移動体が許可されていることが明らかな場合、第2のMSS112は、リクエストに記載された問題の解決策を提供するソフトウェアモジュール108(1つ又は複数)のために、ローカルMR110を検索しうる。第2のMSSがそのようなソフトウェアモジュールの位置を突き止められない場合、第2のMSSは、リクエストを、無人移動体102のうちの他のMSSに再びブロードキャストしうる。他方で、第2のMSSがローカルMR内でソフトウェアモジュールの位置を突き止める場合、第2のMSSは、問題を解決するソフトウェアモジュールを有しているという応答を第1のMSSに送信しうる。第1のMSSは、第2のMSSからの応答を受信しうる。第1の無人移動体は、ソフトウェアモジュールをリクエストし、それに応じて、第2の無人移動体のMRからソフトウェアモジュールを受信しうる。第1の無人移動体は、モジュール(例えば、完全性とセキュリティのために)を検証し、ソフトウェアモジュールを起動して、タスクを実行する(例えば、データの新たなモダリティを処理する)ためにそれを使用しうる。エラーの場合、又は第1の無人移動体が特定の期間内に応答を受信できない場合、第1の無人移動体は、機械学習推論エンジンの決定又はソフトウェアアプリケーションにプログラムされた発見的過程に基づくなどして、リクエストを再試行又は放棄しうる。
【0061】
いくつかの例では、DL114で特定されるアクセス権は、ソフトウェアモジュールへのある一定のアクセス権を特定し、これらの例では、第1の無人移動体は、これらのある一定のアクセス権に従ってソフトウェアモジュールを使用しうる。アクセス権は、限られた時間又は限られた使用回数後などに、そのアクセス権の有効期限が切れることを特定しうる。これらの例のいくつかにおいて、第1の無人移動体は、アクセス権の満了時にソフトウェアモジュールを削除し、第1の無人移動体によるソフトウェアモジュールの削除は、DLに記録され、ノードにわたって同期されうる。
【0062】
様々な例では、DSS116は、ノード(又はより具体的にはそれらのMSS112)間のリクエスト及び/又は応答を、DL114の不変のエントリに記録し、これらは、無線アドホックネットワーク100のノードにわたって同期されうる。これは、ソフトウェアモードのリクエストの検索と実行の両方に参加しているノードの有効性を検証するなど、多くの様々な目的に役立ちうる。同様に、ノードのソフトウェアモジュール108の使用は、DLに記録され、ノードにわたって同期されうる。ノードがソフトウェアモジュールからワークフローを構成する例では、ワークフローの構成はまた、DLに記録され、ノードにわたって同期されうる。
【0063】
いくつかの例では、地上局104は、無人移動体102のうちの第2の移動体と同一又は類似の方法で、リクエストを受信し、そのリクエストを処理しうる。この地上局は、単に、無線アドホックネットワーク100の別のノードでありうる。ただし、いくつかの例では、地上局が(又は第2の無人移動体事態でさえ)、無線アドホックネットワークに対する中央ノードとして機能することがある。これらの例では、上記説明のように、中央ノードは、ソフトウェアモジュール108、並びに無線アドホックネットワークのマスターMR110’、中央MSS112’、マスターDL114’及び中央DSS116’を含みうる。
【0064】
図2は、本開示の例示的実施態様による、無人移動体102に対応しうる9つの無人移動体UV1-UV9、及び地上局104に対応しうる地上局GS1を含む無線アドホックネットワーク200を示す。1つ又は複数の無人移動体UV1-UV9の各々は、センサ206、ソフトウェアモジュール208、MR210、MSS212、DL214及びDSS216を含み、それらは、センサ106、ソフトウェアモジュール108、MR110、MSS112、DL114及びDSS116のそれぞれに対応しうる。地上局GS1はまた、少なくともそれぞれのMR、MSS、DL及びDSSを含みうる。
【0065】
この点で、UV1がミッションに参加しており、そのセンサがデータをキャプチャし、それがデータを処理するAIエンジンを有している例を考える。AIエンジンは、データの新たなモダリティを処理するといったタスクを実行する必要性を識別し、そのタスクを実行する問題を解決することができる1つ又は複数のソフトウェアモジュールMを検索する必要がある。他の無人移動体(即ち、UV4及びUV7)は、地上局GS1と同様に、ソフトウェアモジュールMを有している。
【0066】
無人移動体の間では、UV2、UV3及びUV4は、時間T1においてUV1の無線範囲にある。無人移動体UV2は、更に、UV6及びUV7の無線範囲内にあり、無人移動体UV3は、更に、UV5、UV6及びUV7の無線範囲にある。そして、無人移動体UV7は、更に、UV8及びUV9、並びに地上局GS1の無線範囲内にある。
【0067】
図3A-3Dは、本開示のいくつかの例示的な実施態様による、図2の無線アドホックネットワーク200を参照して、無人移動体UV1(ソースノード)がソフトウェアモジュールMを取得しうるプロセスを示す(センサ206、ソフトウェアモジュール208、MR210、MSS212、DL214及びDSS216を別々に図示することはない)。UV1のAIエンジンが、タスクを実行する(例えば、データの新たなモダリティを処理する)必要性を識別すると、UV1は、タスクを実行するために使用可能なソフトウェアモジュールMをリクエストする。図3Aに示すように、UV1のMSS212が、そのローカルMR210内のソフトウェアモジュールMの位置を突き止められない場合、MSSは、UV1’近傍(即ち、UV1の無線範囲内のUV2、UV3及びUV4)に、リクエストをブロードキャストする。
【0068】
無人移動体UV2、UV3及びUV4は、リクエストを受信し、DL214のそれぞれのローカルコピーを検索して、UV1がソフトウェアモジュールMへのアクセス権を有していることを検証する。無人移動体UV2、UV3及びUV4はまた、リクエストをそれらのDLのそれぞれのローカルコピー内に記録し、無線アドホックネットワーク200にわたって、それらのそれぞれのローカルコピーを他のローカルコピーと同期しうる。DLは、UV1がソフトウェアモジュールMへのアクセスが許可されていることを示す不変のエントリを有している。
【0069】
無人移動体UV4は、ソフトウェアモジュールMを有しており、リクエストへの応答を送信する。しかし、接続問題のため、ここではUV1の無線範囲外となるため、応答がUV1に届かず、結局タイムアウトとなる。無人移動体UV2及びUV3は、ソフトウェアモジュールMを有していないので、リクエストを再びブロードキャストする。特に、UV3は、リクエストをその更に近傍(即ち、UV3の更なる無線範囲内のUV5、UV6及びUV7)に再びブロードキャストする。そして、無人移動体UV2は、リクエストをその更なる近傍(即ち、UV2の更なる無線範囲のUV6及びUV7)に再びブロードキャストする。
【0070】
無人移動体UV5、UV6及びUV7は、リクエストを受信し、DL214のそれぞれのローカルコピーを検索して、UV1がソフトウェアモジュールMへのアクセス権を有していることを検証する。無人移動体UV5、UV6及びUV7はまた、リクエストをそれらのDLのそれぞれのローカルコピー内に記録し、無線アドホックネットワーク200にわたって、それらのそれぞれのローカルコピーを他のローカルコピーと同期しうる。以前のように、DLは、UV1がソフトウェアモジュール。へのアクセスが許可されていることを示す不変のエントリを有している。
【0071】
図3Bに示すように、無人移動体UV5及びUV7は、ソフトウェアモジュールMを有しておらず、NO応答(NO response)をUV3に送信する。無人移動体UV7は、ソフトウェアモジュールMを有しており、YES応答(YES response)をUV3に送信する。UV6及びUV7は、既にUV3からリクエストを受信したため、UV2により再びブロードキャストされたリクエストを無視するか、又は重複リクエストエラーをUV2に送信する。したがって、無人移動体UV2は、NO応答をUV1に送信する。リクエスト(複数可)同様に、これらの応答はまた、DL214のそれぞれのローカルコピーに記録され、無線アドホックネットワーク200にわたって同期されうる。
【0072】
図3Cに示すように、UV7からのYES応答に応じて、無人移動体UV3は、ソフトウェアモジュールMのモジュール取得リクエスト(モジュール取得(GET MODULE)request)をUV7に送信する。応答として、UV3は、UV7からソフトウェアモジュールMを受信し、ソフトウェアモジュールMを検証し、そのソフトウェアモジュールMをローカルMR210に保存して、それがこの時点でソフトウェアモジュールMを有していることを反映させるためにそのMSS212を更新する。無人移動体UV3はまた、YES(確認)応答をUV1に送信する。モジュール取得(GET MODULE)及び応答、並びにYES応答は、他のリクエスト及び応答と同様に、DL214内に記録されうる。
【0073】
図3Dに示すように、YES応答に応じて、無人移動体UV1は、ソフトウェアモジュールMのモジュール取得(GET MODULE)をUV3に送信する。無人移動体UV1は、UV3からソフトウェアモジュールMを受信し、ソフトウェアモジュールMを検証し、ローカルMR210に保存して、それがこの時点でソフトウェアモジュールMを有していることを反映させるためにMSS212を更新する。再び、モジュール取得(GET MODULE)及び応答が、DL214に記録されうる。無人移動体UV1は、既知のルールセットによってソフトウェアモジュールMを起動し、ソフトウェアモジュールMを初期化してそれに接続する。無人移動体UV1はまた、ソフトウェアモジュールMを試験しうる。UV1で障害が発生した場合は、ログに記録してソフトウェアモジュールMを終了する。それ以外の場合、UV1は、ソフトウェアモジュールMを使用する準備ができている。いくつかの例では、UV1が返され、集計と分析のためにログが更に受信されうる。同様に、いくつかの例では、UVIが、ソフトウェアモジュールMの使用をDLに記録しうる。
【0074】
簡単に図1に戻り、本開示の例示的実施態様を更に図解するために、広範囲の異なるモダリティのデータを配信するセンサ106を備えたUAV102aの別の例を考える。特に、例えば、センサは、下記の1つ又は複数を含みうる。
(1) 60Hzでビデオをキャプチャするように構成された高解像度、高精細な(4K又は8K UHD)ビデオカメラ、
(2) 30Hzでビデオをキャプチャするように構成された中解像度、高精細な(1080P HD)ステレオカメラ、
(3) 有効画像サイズが2Hz、モノクロ(白黒)でフレームあたり2000メガピクセルを超える、非常に高解像度の広域監視マルチカメラアセンブリ、
(4) 有効画像サイズが2Hz、近赤外線(NIR)でフレームあたり250メガピクセルの、非常に高解像度の広域監視又は広域モーションイメージ(WAMI)マルチカメラアセンブリ、
(5) LiDAR(Light Detection and Ranging)センサ、
(6) 絶対位置と相対位置(ピッチ、ヨー、ロール状態)の位置を突き止めるための、高精度で信頼性の高い衛星ベースのナビゲーション(例えば、GPS)及び慣性測定ユニット(IMU)デバイス、並びに/又は
(7) 各カメラの高精度のパン/チルト-ズームステータスを提供する1つ又は複数のセンサ。
【0075】
加えて、UAVは、見通し内にあるときの空対地通信、SATCOM(衛星通信)などのための、戦術的共通データリンク(TCDL)又は共通データリンク(CDL)を含みうる。
【0076】
上記例では、高解像度、高精細なビデオカメラにより、カメラが見ているものの非常に高い空間的及び時間的解像度で詳細なズームインビューが可能になり、各ピクセルで利用可能な高精度の空間(緯度経度)測位が可能になりうる。中解像度の高解像度ステレオカメラは、カメラが見ている領域の中解像度で、各ピクセルで利用可能な高精度の3D測位(緯度、経度、平均海面と対地高度の両方での標高)でリアルタイム3Dモデルを作成可能となりうる。
【0077】
非常に高い解像度の広域監視マルチカメラアセンブリ、及び非常に高い解像度の広域監視又はWAMIマルチカメラアセンブリは、地図のように見下ろして、例えば、モノクロセンサなどのように、非常に広い領域にわたって非常に高い解像度のビューを提供しうる(平面から見下ろして、45000×45000ピクセルの画像が、ピクセルあたり約25センチメートルでデータをキャプチャし、よって、約11キロメートル×11キロメートル又は120平方キロメートルを超える面積をカバーしていると考えた場合)。毎秒2フレームでキャプチャされたその解像度で、テニスをしている2人をキャプチャし、サブピクセルの歪み及び影に基づいてテニスボールの存在を登録することができる。NIR画像は、モノクロセンサの画面解像度の1/8でありうる。
【0078】
LiDARセンサは、キャプチャされた各ポイントの非常に正確な位置を提供しうるが、2つのポイント間の距離はそれほど短くない場合がある。衛星ベースのナビゲーション及びIMUデバイスを含む様々な測位センサ、並びにパンチルトズームステータスを提供するセンサは、UAV102aがどこに位置するか、どのように配向されているか、及び各センサの観点から見えるものを知るための能力を提供しうる。
【0079】
UAV102aには、データセットのそれぞれの積を計算するように構成された1つ又は複数のソフトウェアモジュール108が予めロードされうる。したがって、UAVは、モノクロで非常に大きな画像を作成及び提供し、非常に高解像度のモノクロで近赤外線又はNIRデータを補間するのに十分な搭載ストレージ及びコンピューティングリソースを有しうる。したがって、UAVは、モノクロ(白黒)とNIRの2つのバンドを有する単一の45、000×45、000ピクセルの画像を生成可能でありうる。UAVにはまた、ステレオカメラから3Dモデルを生成し、コンピュータビジョンを使用して、8Kカメラを用いて2.5Dモデルを作成し、LiDARデータから「クリーンアップ」された3Dメッシュを作成するように構成された1つ又は複数のソフトウェアモジュールが予めロードされてもよい。
【0080】
様々な例において、UAV102aは、UAVが、データセットを合体し、例えば、WAMIデータから移動するすべての対象物の軌跡を生成し、各対象物の形状及び温度を識別するために使用可能なソフトウェアモジュール108がないと決定しうる。UAVは、このWAMIの温度と位置のデータを取得し、対象物が移動中の移動体であるか移動中の人であるかを予測するために使用可能なソフトウェアモジュールがないと決定しうる。UAVには、移動している特定の対象物(例えば、移動している車、又はこれらの車若しくはこの広域内を移動している動物や人や移動体の列に対する住宅)のこのエリア内の特定の関心エリアの非常に正確な3Dモデルを生成し、次にズームインしてコンピュータビジョンを使用し、このエリアの移動体、武器、又は人のメーカー及びモデルを識別するのに使用可能なソフトウェアモジュールがないことがある。UAVには、機械学習を使用して推論するためのトレーニングデータ及び推論モデル、センサによって表示されているその領域の危険の種類がないことがある。
【0081】
これらの例及び類似の例では、UAV102aには、適切なソフトウェアモジュール108又は各タスクを実行するが必要な計算リソースを含むソフトウェアモジュールがないことがある。許可されている場合には、UAVは、ソフトウェアモジュールのためにそのローカルMR110を検索し、UAVがそのの位置を突き止められない場合には、上記UAV1と類似した方法で、ソフトウェアモジュールのリクエストをブロードキャストする。いくつかの例では、いくつかのソフトウェアモジュールは、DAG(ワークフロー)などの実行階層で編成されうる。これらの例のいくつかにおいて、DAG内のノードは、ソフトウェアモジュールであり、ソフトウェアモジュール間のデータ及び制御経路であるエッジによって接続されうる。
【0082】
上に示したように、主に無人移動体の文脈で説明されているが、本開示の例示的な実施態様は、より一般的には、複数のノードを含む無線アドホックネットワークに適用可能である。適切なノードの他の例は、デスクトップコンピュータ、サーバコンピュータ、ポータブルコンピュータ(例えば、ラップトップコンピュータ、タブレットコンピュータ)、モバイルフォン(例えば、携帯電話、スマートフォン)、ウェアラブルコンピュータ(例えば、スマートウォッチ)などのコンピュータを含む。これらのコンピュータは、独立型であっても、より大きな機械的又は電気的システム内に組み込まれてもよい。
【0083】
図4は、本開示の例示的実施態様による、複数のノード402を含む無線アドホックネットワーク400を示す。複数のノードは、データの特定のモダリティを処理するなどのタスクを実行する必要性が識別される、アプリケーションソフトウェア(例えば、ソフトウェアモジュール)408aを実行するように構成されたソースノード402aを含む。いくつかの例では、ソースノードは、センサ406aのコレクションを有し、そのセンサは、タスクを実行する必要性が識別されるアプリケーションソフトウェア408aにデータの特定のモダリティを生成又は提供するように構成される。
【0084】
ソースノード402aは、ソースノードがタスク(例えば、データの特定のモダリティを処理する)を実行不可能であるとの決定を行うように構成される。いくつかの例では、決定は、アプリケーションソフトウェア408aによって行われる。他の例では、決定は、地上局などのリモート端末からソースノードによって受信されたリクエストから行われる。
【0085】
決定に応じて、ソースノード402aは、複数のノード402にわたって複製、共有及び同期される分散型台帳DL410aのそれぞれのローカルコピーにアクセスするように構成される。DL及びこれによるそれぞれのローカルコピーは、タスクを実行するために使用可能なソフトウェアモジュールを含むソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む。ソースノードは、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、それぞれのローカルコピーの不変のエントリを検索するように構成される。
【0086】
ソースノード402aが許可されているときにのみ、ソースノードは、タスクを実行するために使用可能なソフトウェアモジュールのために、ソースノードのローカルモジュールリポジトリMR412aを検索するように構成される。ソースノードは、ソースノードがローカルMR内でソフトウェアモジュールの位置を突き止められないことに応じて、ソースノードが、ソフトウェアモジュールのリクエストを、ソースノードの無線範囲の複数のノードのリクエストにブロードキャストすることを含み、これにより、複数のノードが近傍ノード402b、402cになる。ノード402のすべてについて別々には示されていないが、いくつかの例では、ソースノード、並びに他の無線アドホックネットワークのノード400はまた、ローカルMSS、センサ及び/又はソフトウェアモジュールを含みうる。
【0087】
いくつかの例では、ソースノード402aは、具体的に識別されるソフトウェアモジュールのためにローカルMR412aを検索し、特にソフトウェアモジュールを識別するリクエストをブロードキャストするように構成される。他の例では、ソースノードは、ソフトウェアモジュールを具体的に識別することなく、タスクを実行するために使用可能な任意のソフトウェアモジュールのためにローカルMRを検索するように構成される。これらの他の例では、ソースノードは、タスク又はタスクの対象(例えば、データの特定のモダリティ)を記述し、ソフトウェアモジュールの特定の識別子を排除するリクエストをブロードキャストするように構成される。
【0088】
いくつかの例では、ソースノード402aは、DLのそれぞれのローカルコピー410aの追加的な不変のエントリ内にリクエストを記録するように構成される。これらの例のいくつかにおいて、ソースノードは、追加的な不変のエントリを近傍ノード402b、402cにブロードキャストし、オプションで、暗号化又は周知の若しくは独自のセキュリティメカニズムを使用して、DLのそれぞれのローカルコピーの、複数のノードのうちの他のノードにおけるDLのコピーとの同期を開始するように構成される。
【0089】
いくつかの更なる例では、ソースノード402aは、近傍ノードのDLのそれぞれのコピーにおいて、近傍ノードがソースノードからブロードキャストされたリクエストを記録することに応じて、近傍ノード402b、402c(オプションで、暗号化又は別のセキュリティメカニズムを使用して)からブロードキャストされる更なる追加的な不変のエントリを受信するように構成される。これらの例のいくつかにおいて、ソースノードは、更なる追加的な不変のエントリを、DLのそれぞれのローカルコピー410aに追加し、それぞれのローカルコピーを近傍ノードにおけるDLのそれぞれのコピーと同期するように構成される。
【0090】
ソースノード402aによりブロードキャストされるリクエストに応じて、複数の近傍ノードの1つの近傍ノード402bは、DLのそれぞれのローカルコピー410bにアクセスし、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、それぞれのローカルコピーの不変のエントリを検索するように構成される。ソースノードが許可されているときにのみ、近傍ノードは、ソフトウェアモジュールのために近傍ノードのそれぞれのローカルMR412bを検索するように構成される。近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、近傍ノードは、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストするように構成され、近傍ノードがこれにより更なる近傍ノード402d、402eとなる。
【0091】
近傍ノード402bは、複数の更なる近傍ノードのうちの1つの更なる近傍ノード402dから、ソフトウェアモジュールを受信するように構成される。ソースノード402aは、近傍ノード402bからソフトウェアモジュールを受信するように構成される。いくつかの例では、これは、近傍ノードがソフトウェアモジュールを有することを示す近傍ノード402bからの応答を受信するように構成されたソースノード402aを含む。これらの例では、ソースノードは、ソフトウェアモジュールに対する第2のリクエストを近傍ノードにユニキャストし、第2のリクエストに応じて、近傍ノードからソフトウェアモジュールを受信するように構成される。
【0092】
ソフトウェアモジュールの受信後、ソースノード402は、タスクを実行するためにソフトウェアモジュールを使用するように構成される。いくつかの例では、ソースノードは、オペレーティングシステムレベルのコンテナ化を実行するように構成される。これは、ソフトウェアモジュールを使用するソースノード上に分離されたコンテナを作成して起動するように構成されたソースノードを含む。分離されたコンテナは、オペレーティングシステムレベル(OSレベル)の仮想化である。これは、ノードをエミュレートする仮想マシンを作成するために(コンテナエンジンの代わりに)ハイパーバイザが使用されるハードウェア仮想化と異なり、概して、ハードウェア仮想化よりも必要なオーバーヘッドが少ない。分離されたコンテナは、その中で実行されるソフトウェアアプリケーションの観点から、実際のノードのように見える場合があるが、アプリケーションは、それに割り当てられたソースノードのリソースを可視化するだけであり、これらが利用可能なすべてであると考えられる。したがって、分離されたコンテナの作成には、ソフトウェアモジュールを分離されたコンテナにインストールするように構成されたソースノードが含まれうる。
【0093】
いくつかの例では、ソースノード402aは、DL410aのそれぞれのローカルコピー内の追加の不変エントリにソフトウェアモジュールの受信を記録するように構成される。これらの例のいくつかでは、ソースノードは、追加の不変エントリを近傍ノード402b、402cにブロードキャストして、DLのそれぞれのローカルコピーと複数のノードの他のノード(DL410bを含む)の分散型台帳のコピーとの同期を開始するように構成される。
【0094】
いくつかの例では、ソースノード402aは、ソフトウェアモジュールの使用を、DL410aのそれぞれのローカルコピーの追加的な不変のエントリ内に記録するように構成される。これらの例のいくつかにおいて、ソースノードは、追加的な不変のエントリを近傍ノード402b、402cにブロードキャストし、DLのそれぞれのローカルコピーを、複数のノードの他のノードにおけるDL(DL410bを含む)のコピーとの同期を開始するように構成される。
【0095】
他の観点から、いくつかの例では、近傍ノード402bは、データの特定のモダリティを処理するなどのタスクを実行するために使用可能なソフトウェアモジュールのリクエストをソースノード402aから受信するように構成される。これは、ソースノードがローカルモジュールリポジトリMR412aにおいてソフトウェアモジュールの位置を突き止められないことに応じており、リクエストは、ソースノードから近傍ノード402b、402cまでブロードキャストされる。いくつかの例では、リクエストは、固有の識別子を含み、近傍ノードは、固有の識別子、及び近傍ノードによって受信された以前のリクエストの記録を使用して、リクエストがソースノード402aからのソフトウェアモジュールの新たなリクエストであることを検証するよう更に構成される。いくつかの例では、DLのそれぞれのローカルコピー410bは、近傍ノードによって受信された以前のリクエストが記録される不変のエントリを含む。これらの例のいくつかにおいて、近傍ノードは、リクエストがソースノードからのソフトウェアモジュールの新たなリクエストであることを検証するために不変のエントリを検索するように構成される。
【0096】
リクエストに応じて、近傍ノード402bは、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを含むDL410bのそれぞれのローカルコピーにアクセスするように構成される。近傍ノードは、ソースノード402aにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、それぞれのローカルコピーの不変のエントリを検索するように構成される。
【0097】
ソースノードが許可されているときにのみ、近傍ノード402bは、ソフトウェアモジュールのために近傍ノードのそれぞれのローカルMR412bを検索するように構成される。近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、近傍ノード402bは、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストするように構成され、近傍ノードがこれにより更なる近傍ノード402d、402eとなる。
【0098】
いくつかの例では、近傍ノード402bは、具体的に識別されるソフトウェアモジュールのために、それぞれのMR412bを検索し、特にソフトウェアモジュールを識別するリクエストを再びブロードキャストするように構成される。他の例では、近傍ノードは、ソフトウェアモジュールを具体的に識別することなく、タスクを実行する(例えば、データの特定のモダリティを処理する)ために使用可能な任意のソフトウェアモジュールのために、それぞれのMRを検索するように構成される。これらの例では、近傍ノードは、タスク又はタスクの対象(例えば、データの特定のモダリティ)を記述し、ソフトウェアモジュールの特定の識別子を排除するリクエストを再びブロードキャストするように構成される。
【0099】
いくつかの例では、近傍ノード402bは、DLのそれぞれのローカルコピー410bの追加的な不変のエントリ内にリクエストを記録するように構成される。これらの例のいくつかにおいて、近傍ノードは、追加的な不変のエントリをソースノード402a及び更なる近傍ノード402d、402eにブロードキャストし、DLのそれぞれのローカルコピーを、複数のノードのうちの他のノードにおけるDLのコピーとの同期を開始するように構成される。
【0100】
いくつかの更なる例では、近傍ノード402bは、更なる近傍ノードにおけるDLのそれぞれのコピーにおいて、更なる近傍ノードが近傍ノードから再びブロードキャストされたリクエストを記録することに応じて、更なる近傍ノード402d、402eからブロードキャストされた更なる追加的な不変のエントリを受信するように構成される。これらの例のいくつかにおいて、近傍ノードは、更なる追加的な不変のエントリをDLのそれぞれのローカルコピー410bに追加し、それぞれのローカルコピーを、更なる近傍ノードにおけるDLのそれぞれのコピーと同期するように構成される。
【0101】
近傍ノード402bは、複数の更なる近傍ノードのうちの1つの更なる近傍ノード402dから、ソフトウェアモジュールを受信するように構成される。これは、いくつかの例では、更なる近傍ノードがソフトウェアモジュールを有していることを示す更なる近傍ノードからの応答を受信するように構成された近傍ノードを含みうる。これらの例では、近傍ノードは、ソフトウェアモジュールに対する第2のリクエストを更なる近傍ノードにユニキャストし、第2のリクエストに応じて、更なる近傍ノードからソフトウェアモジュールを受信するように構成される。
【0102】
ソフトウェアモジュールの受信後に、近傍ノード402bは、タスクを実行するためにソフトウェアモジュールを使用するソースノード402aにソフトウェアモジュールを返すように構成される。これは、いくつかの例では、近傍ノードがソフトウェアモジュールを有していることを示すソースノードに応答を送信するように構成された近傍ノードを含みうる。次いで、近傍ノードは、ソースノードからユニキャストされたソフトウェアモジュールに対する第2のリクエストを受信し、第2のリクエストに応じて、ソフトウェアモジュールをソースノードに返すように構成される。
【0103】
いくつかの例では、近傍ノード402bは、ソフトウェアモジュールの受信を、DLのそれぞれのローカルコピー410bの追加的な不変のエントリに記録するように構成される。これらの例のいくつかにおいて、近傍ノードは、追加的な不変のエントリをソースノード402a及び更なる近傍ノード402d、402eにブロードキャストし、DLのそれぞれのローカルコピーを、複数のノードのうちの他のノードにおけるDLのコピーとの同期を開始するように構成される。
【0104】
図5は、MRがDLで実施される本開示の他の例示的実施態様による、複数のノード502を含む無線アドホックネットワーク500を示す。複数のノードは、データの特定のモダリティを処理するなどのタスクを実行する必要性が識別されるアプリケーションソフトウェア508aを実行するように構成されたソースノード502aを含む。いくつかの例では、ソースノードは、センサ506aのコレクションを有し、そのセンサは、タスクを実行する必要性が識別されるアプリケーションソフトウェア508aにデータの特定のモダリティを生成又は提供するように構成される。
【0105】
ソースノード502aは、ソースノードがタスクを実行不可能であるとの決定を行うように構成される。いくつかの例では、決定は、アプリケーションソフトウェア508aによって行われる。他の例では、決定は、地上局などのリモート端末からソースノードによって受信されたリクエストから行われる。
【0106】
決定に応じて、ソースノード502aは、複数のノード402にわたって複製、共有及び同期されるDLで実施されるモジュールリポジトリMR510aのローカルコピーにアクセスするように構成される。DL及びこれによるローカルコピーは、複数のノードで利用可能なソフトウェアモジュールを備える不変のエントリを含む。ソースノードは、タスクを実行するために使用可能なソフトウェアモジュールのために、ローカルコピーの不変のエントリを検索するように構成される。いくつかの例では、ソースノードは、具体的に識別されるソフトウェアモジュールのために、MRのローカルコピーを検索するように構成される。他の例では、ソースノードは、ソフトウェアモジュールを具体的に識別することなく、タスクを実行するために使用可能な任意のソフトウェアモジュールのために、MRのローカルコピーを検索するように構成される。
【0107】
ソースノード502aは、タスクを実行するためにソフトウェアモジュールを使用するように構成される。いくつかの例では、DL及びこれによるそれぞれのMR510aのローカルコピーは、タスクを実行するために使用可能なソフトウェアモジュールを含むソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含む。これらの例のいくつかにおいて、ソースノードは、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、MRのローカルコピーを検索するように構成される。また、これらの例のいくつかにおいて、ソースノードは、ソースノードが許可されているときにのみ、ソフトウェアモジュールを使用するように構成される。
【0108】
いくつかの例では、ソースノード502aは、MRのローカルコピー510aの追加的な不変のエントリにソフトウェアモジュールの使用を記録するよう更に構成される。これらの例のいくつかにおいて、ソースノードは、追加的な不変のエントリを、ソースノード(例えば、近傍ノード402b、402c)の無線範囲内で、複数のノードのエントリにブロードキャストし、MRのローカルコピーの、複数のノードのうちの他のノードにおけるMR(MR510bを含む)のコピーとの同期を開始するように構成される。
【0109】
無人移動体102及び地上局104といった複数のノードを含む無線アドホックネットワーク100の文脈で説明したが、本開示の例示的実施態様は、各々が複数のノードを含む複数の無線アドホックネットワークに等しく適用されうる。図6は、いくつかの例示的な実施態様による、複数のノード604を各々が含みうる複数の無線アドホックネットワーク602を含むシステム600を示す。各無線アドホックネットワークは、無線アドホックネットワーク100、200、400、500について本明細書に記載されるように、構築され動作しうる。ノードは各々、それぞれのセンサ、ソフトウェアモジュール、MR、MSS、DL及びDSS(別々には図示せず)を含みうる。ノードは、それぞれの無線アドホックネットワーク内で、いくつかの例では、無線アドホックネットワークにわたって、ソフトウェアモジュールを分配しうる。いくつかの例では、ノードは、無線アドホックネットワーク間を移動しうる。
【0110】
図7は、例示的な実施態様による、複数のノード402を含む無線アドホックネットワーク400のソースノード402aによってソフトウェアを取得する方法700における様々な工程を示すフローチャートである。ブロック702及び704に示すように、方法は、ソースノードが、データの特定のモダリティを処理するといったタスクを実行する必要性が識別されるアプリケーションソフトウェア408aを実行し、ソースノードがタスクを実行不可能であるとの決定を行うことを含む。決定に応じて、方法は、ブロック706に示すように、複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスすることを含む。分散型台帳及びこれによるそれぞれのローカルコピーは、タスクを実行するために使用可能なソフトウェアモジュールを含むソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む。方法は、ブロック708に示すように、ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、それぞれのローカルコピーの不変のエントリを検索することを示す。
【0111】
ソースノードが許可されているときにのみ、方法700は、ブロック710に示すように、ソースノード402aが、ソースノードタスクを実行するために使用可能なソフトウェアモジュールのために、ローカルモジュールリポジトリMR412aを検索することを含む。方法は、ブロック712に示すように、ソースノードがローカルMR内でソフトウェアモジュールの位置を突き止められないことに応じて、ソースノードが、ソフトウェアモジュールのリクエストを、ソースノードの無線範囲の複数のノードのリクエストにブロードキャストすることを含み、これにより、複数のノードが近傍ノード402b、402cになる。
【0112】
複数の近傍ノードの1つの近傍ノード402bは、リクエストに応じて、ソフトウェアモジュールのために、近傍ノードのそれぞれのローカルMR412bを検索する。近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、近傍ノードは、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストし、近傍ノードがこれにより更なる近傍ノード402d、402eとなる。そして、近傍ノードは、複数の更なる近傍ノードのうちの1つの更なる近傍ノード402dから、ソフトウェアモジュールを受信する。方法は次いで、ブロック714及び716に示すように、ソースノードが、近傍ノードからソフトウェアモジュールを受信し、タスクを実行するためにソフトウェアモジュールを使用することを更に含む。
【0113】
図8は、無線アドホックネットワーク400のソースノード402aによって、ソフトウェアを取得する方法800の様々な工程を示すフローチャートであって、無線アドホックネットワーク400は、複数のノード402を含み、そのうちのソースノードの無線範囲内のノードが近傍ノード402b、402cである。ブロック802に示すように、方法は、複数の近傍ノードの1つの近傍ノード402bが、データの特定のモダリティを処理するなどのタスクを実行するために使用可能なソフトウェアモジュールの、ソースノードからのリクエストを受信することを含む。リクエストは、ソースノードがローカルモジュールリポジトリMR412a内のソフトウェアモジュールの位置を突き止められないことに応じて、受信され、ソースノードから近傍ノードまでブロードキャストされる。
【0114】
ブロック804に示すように、リクエストに応じて、近傍ノード402bは、複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスする。上記同様に、分散型台帳及びこれによるそれぞれのローカルコピーは、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む。ブロック806に示すように、近傍ノードは、ソースノード402aにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、それぞれのローカルコピーの不変のエントリを検索する。
【0115】
ブロック808に示すように、ソースノード402aが許可されているときにのみ、近傍ノード402bは、ソフトウェアモジュールのために、近傍ノードのそれぞれのローカルMR412bを検索する。ブロック810に示すように、近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、近傍ノードは、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストし、近傍ノードがこれにより更なる近傍ノード402d、402eとなる。そして、ブロック812及び814に示すように、近傍ノードは、複数の更なる近傍ノードのうちの1つの更なる近傍ノード402dから、ソフトウェアモジュールを受信し、ソフトウェアモジュールを、タスクを実行するためにソフトウェアモジュールを使用するソースノード402aに返す。
【0116】
図9は、更に他の例示的実施形態による、複数のノード402を含む無線アドホックネットワーク400のソースノード402aによってソフトウェアを取得する方法900における様々な工程を示すフローチャートである。ブロック902及び904に示すように、方法は、ソースノードが、タスクを実行する(例えば、データの特定のモダリティを処理する)必要性が識別されるアプリケーションソフトウェア408aを実行し、ソースノードがタスクを実行不可能であるとの決定を行うことを含む。その決定に応じて、方法は、ブロック906に示すように、複数のノードにわたって複製、共有及び同期される分散型台帳として実施されるMR412aのローカルコピーにアクセスすることを含む。分散型台帳及びこれによるMRのローカルコピーは、複数のノードで利用可能なソフトウェアモジュールを備える不変のエントリを含む。方法は、ブロック908及び910に示すように、タスクを実行するために使用可能なソフトウェアモジュールのために、MRのローカルコピーを検索することと、タスクを実行するためにソフトウェアモジュールを使用することとを含む。
【0117】
図1に戻り、上記で説明したように、無人移動体102及び/又は地上局104を含む無線アドホックネットワーク100のノードは、ソフトウェア構成、ソフトウェア近傍性、ソフトウェアアクセス/承認などを決定するために、MR110、MSS112、DL114及びDSS116を含みうる。DL及びDSSによって実装されるDLTモデルは、ソフトウェア取得、分配、構成及び/又は利用率パラメータの不変の記録を提供するシステムソフトウェア層に埋め込まれうる。これらのパラメータは、DLを介して中央オペレーションサーバに伝達されうる。中央オペレーションサーバは、中央ノード(例えば、地上局104)に実装されうる。中央オペレーションサーバは、ノード、無線アドホックネットワーク及びソフトウェアイベントアクティビティを調整しうる。追加的に又は代替的には、DLTモデルは、無線アドホックネットワークに導入され、その内部で利用されるソフトウェアモジュール108を管理及び制御するために使用されうる。
【0118】
無線アドホックネットワーク100へのDLTモデルの導入は、無線アドホックネットワーク内に登録及び分配されたソフトウェアモジュール108のロジスティック管理を簡略化及び改良しうる。DLTモデルは、無線アドホックネットワーク内での暗号化の管理及び使用を高めうるセキュリティ特徴を含む。DLTモデルはまた、いくつかのソフトウェアプロバイダによって無線アドホックネットワークに導入されるソフトウェアモジュールの管理を容易にするために、中央ノードで使用されてもよい。
【0119】
DLTモデルは、ソフトウェア構成、利用率及び恐らく他の移動体イベントの搭載記録を確立するために使用されうる。このデータは、無線アドホックネットワーク100内で決定するモジュール起点を決定するために使用されうる。いくつかの例では、DL114は、いくつかのDLと共に実装されうる。第2のDLにより、ノード間で自律的なネットワークロジスティックイベントの共有が可能となり、これにより、ロジスティクスオペレーションのオーバーヘッドが削減されうる。このデータは、近傍又は更なる近傍ノードからソースノードまで、ソフトウェアモジュール108の最適なデータ送信を決定するために使用されうる。いくつかの例では、DLTモデルは、ソフトウェアモジュールの分配機構として使用されうる。DLTモデルは、送信の観点から、送信の許可された使用と承認を決定するための決定機構として、スマート契約機能を含みうる。受信の観点から、ソースノード、発信元の決定、送信する承認は、ソフトウェアモジュールを受信して利用する承認を決定しうる。
【0120】
いくつかの例では、DL114及びDSS116によって実装されるDLTモデルは、ソフトウェアモジュール108の分配及び利用を追跡する値価交換機構(value exchange mechanism)で使用されうる。オペレーションの観点から、DLTモデルの様々なサービスは、論理的にセグメント化されうる。無線アドホックネットワーク100に関連して使用されるDLTモデルは、強化されたセキュリティ特徴でセグメント化されうる。マスターDL114’及び中央DSS116’を備える中央ノードは、許可されているノードのみに開かれたネットワークでのソフトウェアの受け入れと利用を管理するために使用されうる。DLTモデルのこれらのサービスは、ソフトウェアモジュールの有効性と使用率を決定するために分析されうる。関連するデータ分析を通して、付加価値が引き出されることがある。
【0121】
図4に関して上記で説明したように、いくつかの例では、ソースノード402aは、近傍ノード402bからソフトウェアモジュールを受信するように構成される。これは、近傍ノードがソフトウェアモジュールを有していることを示す近傍ノード402bからの応答を受信するように構成されたソースノードを含みうる。ソースノードは、次いで、ソフトウェアモジュールに対する第2のリクエストを近傍ノードにユニキャストし、第2のリクエストに応じて、近傍ノードからソフトウェアモジュールを受信しうる。
【0122】
いくつかの例では、複数のノード402(近傍ノード402b、402cか更なる近傍ノード402d、402eか)のうちのいくつかのノードは、ソフトウェアモジュールを有しうる。ソースノード402aは、ノードがソフトウェアモジュールを有していることを示すノードからの応答を受信しうる。ソースノードはその後、ソフトウェアモジュールを受信するオプションを有しうる。これらの例のうちのいくつかにおいて、ノードは、ソフトウェアモジュールをソースノードに提供するためのそれぞれのコスト及び/又は契約条件を有することがある。これらの例におけるノードは、「セラー(seller)」ノードと考えられ、ソースノードは、これらのノードの1つを最適な「取引(deal)」で選択しうる。
【0123】
ソースノード402aは、複数のノード402の選択されたセラーノードに第2のリクエストをユニキャストし、オプションで、コストをカバーし、任意の契約条件に従うことに同意する。第2のリクエストは、無線アドホックネットワーク100をセラーノードに移動させ、セラーノードは、トランザクションを検証し、無線アドホックネットワークを介して、ソフトウェアモジュールをソースノードに返信しうる。ソースノードは、ソフトウェアモジュールを検証、走査、保護、及び実行し、トランザクションを完了として登録する。
【0124】
複数のノード402のソースノード402a及び選択されたセラーノードは、複数の異なる方法で同期しうる。いくつかの例では、ソースノードは、選択されたセラーノードに、ソフトウェアモジュールの受信を確認し、トランザクションを完了するためのメッセージを送信しうる。応答して、セラーノードは、ソースノードに、ソフトウェアモジュールの永続的な使用を可能にするロック解除コード(オプション)を送信しうる。トランザクションを実行するために交換されるメッセージに関係なく、経路には、ステートフルな金融のトランザクションとは異なり、分離されたステートレスな複数のリクエストと応答が含まれうる。トランザクションは、それゆえに、周知の権限を要求し、トランザクションを追跡しうる。DL410a、410bを入力して、ソフトウェアモジュールを有するセラーノードと、ソフトウェアモジュールをリクエストするソースノードとの間のトランザクションを追跡する。
【0125】
いくつかの例では、リクエスト及び応答は、無線アドホックネットワーク400内のノード402によってDL410a、410bを使用して追跡されうる。、ソースノード402aから複数のノード402の選択されたセラーノードへの経路ごとに、DLパイプラインが配置されていることに留意されたい。しかしながら、トランザクションのステートレスな対話があまり有益でない例では、無線アドホックネットワークは、ソースノードとセラーノードとの間の最終トランザクションにわたって短期間のステートフル方式を採用しうる。
【0126】
本開示の例示的実施態様によれば、ソフトウェアモジュール108、208、408a、508a、MR110、110’、210、412a、412b、510a、MSS112、112’、212、DL114、114’、410a、410b、及びDSS116、116’、216、並びにノード402、502は、様々な手段により実施又は実行されうる。これらの手段は、独立型の(alone)、又は、コンピュータ可読記憶媒体の1つ又は複数のコンピュータプログラムの指示を受ける、ハードウェアを含みうる。いくつかの例では、1つ又は複数の装置は、ソフトウェアモジュール、MR及びMSS、並びに本明細書に図示及び説明されるノードとして機能するか、又はそれらを実施若しくは実行するように構成されうる。
【0127】
図10は、本開示のいくつかの例示的な実施態様による装置1000を示す。概括的に、本開示の例示的な実施態様の装置は、1つ又は複数の固定的な又は携帯式の電子デバイスを備えるか、含むか、又は、かかる電子デバイスで実施されうる。適切な電子デバイスの例は、デスクトップコンピュータ、サーバコンピュータ、ポータブルコンピュータ(例えば、ラップトップコンピュータ、タブレットコンピュータ)、モバイルフォン(例えば、携帯電話、スマートフォン)、ウェアラブルコンピュータ(例えば、スマートウォッチ)などのコンピュータを含む。装置は、例えば、メモリ1004(例えば、記憶デバイス)に接続され処理回路1002(例えば、プロセッサユニット)といった、いくつかの構成要素の各々のうちの1つ又は複数を含みうる。
【0128】
処理回路1002は、単体であるか、又は1つ又は複数のメモリと組み合わされた、1つ又は複数のプロセッサから構成されうる。処理回路は、概して、例えば、データ、コンピュータプログラム、及び/又は他の適切な電子情報などといった情報を処理することが可能な、コンピュータハードウェアの任意のものである。処理回路は、電子回路の集合体で構成されており、こうした電子回路の一部は、1つの集積回路又は複数の相互接続集積回路として、パッケージ化されうる(集積回路は時としてより一般的に「チップ」と称される)。処理回路は、コンピュータプログラムを実行するように構成されてよく、コンピュータプログラムは、処理回路に搭載された状態で保存されても、又は別様に、(同一もしくは別の機器の)メモリ1004に保存されてもよい。
【0129】
処理回路1002は、特定の実施態様に応じて、いくつかのプロセッサ、1つのマルチプロセッサコア、又は他の何らかの種類のプロセッサでありうる。更に、処理回路は、いくつかのヘテロジニアスプロセッサシステム(メインプロセッサが、1つ又は複数の二次プロセッサと共に単一のチップ上に存在している)を使用して、実装されうる。別の実施例としては、処理回路は、複数の同種のプロセッサを包含する、対称型マルチプロセッサシステムでありうる。更に別の例では、処理回路は、1つ又は複数のASICやFPGAなどとして具現化されうるか、さもなければそれらを含みうる。したがって、処理回路は1つ又は複数の機能を実施するためのコンピュータプログラムを実行することが可能でありうるが、様々な実施例の処理回路は、コンピュータプログラムの支援がなくとも、1つ又は複数の機能を実施することが可能でありうる。いずれの事例においても、処理回路は、本開示の例示的な実施態様により機能又は動作を実施するよう、適切にプログラムされうる。
【0130】
メモリ1004は、概括的には、一時的かつ/又は恒久的に、例えば、データ、コンピュータプログラム(コンピュータ可読プログラムコード1006など)、及び/又はその他の好適な情報といった、情報を記憶することが可能な、任意のコンピュータハードウェアである。メモリは、揮発性及び/又は不揮発性のメモリを含み、かつ固定式であっても着脱式であってもよい。適切なメモリの例は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードドライブ、フラッシュメモリ、サムドライブ、着脱式コンピュータディスケット、光ディスク、磁気テープ、又はそれらの何らかの組み合わせを含む。光ディスクは、読み出し専用コンパクトディスク(CD-ROM)、読み出し/書き込みコンパクトディスク(CD-R/W)、DVDなどを含みうる。様々な事例において、メモリはコンピュータ可読記憶媒体と称されうる。コンピュータ可読記憶媒体は、情報を記憶することが可能な非一過性デバイスであり、コンピュータ可読伝送媒体(ある場所から別の場所へと情報を運ぶことが可能な一過性の電子信号など)とは区別されうる。本明細書に記載のコンピュータ可読媒体は、概括的には、コンピュータ可読記憶媒体又はコンピュータ可読伝送媒体を表わしうる。
【0131】
処理回路1002は、情報を表示、送信、及び/又は受信するため、メモリ1004に加えて、1つ又は複数のインターフェースにも接続されうる。インターフェースは、通信インターフェース1008(例えば通信ユニット)、及び/又は1つ又は複数のユーザインターフェースを含みうる。通信インターフェースは、例えば他の装置(複数可)やネットワーク(複数可)などとの間で、情報を送信及び/又は受信するよう構成されうる。通信インターフェースは、物理的な(有線の)及び/又は無線の通信リンクにより情報を送信及び/又は受信するよう、構成されうる。適切な通信インターフェースの実施例は、ネットワークインターフェースコントローラ(NIC)、無線NIC(WNIC)などを含む。
【0132】
ユーザインターフェースは、ディスプレイ1010及び/又は1つ又は複数のユーザ入力インターフェース1012(例えば、入出力ユニット)を含みうる。ディスプレイは、ユーザに情報を提示するか、又は別様に表示するよう構成されてよく、その好適な例は、液晶ディスプレイ(LCD)、発光ダイオードディスプレイ(LED)、プラズマディスプレイパネル(PDP)などを含む。ユーザ入力インターフェースは、有線又は無線であり、かつ、例えば処理、記憶、及び/又は表示のための装置内にユーザからの情報を受信するよう構成されうる。ユーザ入力インターフェースの好適な例は、マイク、画像又はビデオのキャプチャデバイス、キーボード又はキーパッド、ジョイスティック、(タッチスクリーンとは別個の、又はタッチスクリーンに統合された)タッチ感応面、生物測定センサなどを含む。ユーザインターフェースは、周辺機器(例えばプリンタやスキャナなど)と通信するための、1つ又は複数のインターフェースを更に含みうる。
【0133】
上記で示したように、プログラムコード命令は、本明細書で説明しているシステム、サブシステム、ツール、及びこれらに対応する要素の機能を実装するために、メモリに保存され、処理回路(プログラムコード命令によりプログラムされている)によって実行されうる。認識されるであろうが、ある特定の機械を作製するために、任意の好適なプログラムコード命令が、コンピュータ可読記憶媒体からコンピュータ又はその他のプログラマブル装置にローティングされてよく、これにより、この特定の機械は、本明細書で特定されている機能を実装するための手段となる。かかるプログラムコード命令はコンピュータ可読記憶媒体に記憶されてもよく、このコンピュータ可読記憶媒体は、コンピュータ、処理回路、又はその他のプログラマブル装置に、特定の方式で機能することにより特定の機械又は特定の製造品を作り出すよう、指令を下しうる。コンピュータ可読記憶媒体に記憶された命令は、製造品を作製可能であり、この製造品が、本明細書に記載の機能を実行するための手段となる。プログラムコード命令は、コンピュータ、処理回路、又はその他のプログラマブル装置で又はコンピュータ、処理回路、又はその他のプログラマブル装置によって実施されるべき動作を実行するよう、コンピュータ、処理回路、又はその他のプログラマブル装置を設定するために、コンピュータ可読記憶媒体から読み出され、コンピュータ、処理回路、又はその他のプログラマブル装置にローディングされうる。
【0134】
プログラムコード命令の読み出し、読み込み、及び実行は、一度に1つの命令が読み出され、読み込まれ、かつ実行されるように、連続的に実施されうる。一部の例示的な実施態様では、複数の命令をまとめて読み出し、読み込み、かつ/又は実行するように、読み出し、読み込み、及び/又は実行が、並行して実施されることもある。プログラムコード命令を実行することで、コンピュータ、処理回路、又はその他のプログラマブル装置によって実行される命令が本明細書に記載の機能を実装するための工程を提供するように、コンピュータにより実装されるプロセスが生成されうる。
【0135】
処理回路による命令の実行、又はコンピュータ可読記憶媒体における命令の記憶は、具体的な機能を実施するための工程の組み合わせをサポートしている。このように、装置1000は、メモリに保存されたコンピュータ可読プログラムコード1006を実行するよう構成された処理回路1002と、処理回路に連結されたコンピュータ可読記憶媒体又はメモリ1004とを含みうる。1つ又は複数の機能及び機能の組み合わせは、特殊用途ハードウェアに基づくコンピュータシステム、及び/又は、特定の機能を実施する処理回路、或いは、特殊用途ハードウェアとプログラムコード命令との組み合わせによって実行されうることも、理解されよう。
【0136】
更に本開示は、以下の条項による実施形態を含む。
【0137】
条項1. 複数のノード(402)を含む無線アドホックネットワーク(400)で動作可能なソースノード(402a、1000)であって、
コンピュータ可読プログラムコード(1006)を記憶するように構成されたメモリ(1004)と、
処理回路(1002)と
を備え、処理回路(1002)が、メモリにアクセスし、コンピュータ可読プログラムコードを実行して、ソースノードに、少なくとも
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(702)、
ソースノードがタスクを実行不可能であるとの決定を行うこと(704)、
その決定に応じて、
複数のノードにわたって複製、共有及び同期される分散型台帳(410a)のそれぞれのローカルコピーにアクセスすること(706)であって、分散型台帳及びこれによるそれぞれのローカルコピーが、タスクを実行するために使用可能なソフトウェアモジュールを含む、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳(410a)のそれぞれのローカルコピーにアクセスすること(706)、
ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること(708)、
ソースノードが許可されているときにのみ、
タスクを実行するために使用可能なソフトウェアモジュールのためにソースノードのローカルモジュールリポジトリ(MR)(412a)を検索すること(710)、
ソースノードがローカルMR(412a)内でソフトウェアモジュールの位置を突き止められないことに応じて、ソフトウェアモジュールのリクエストを、ソースノードの無線範囲の複数のノードのリクエストにブロードキャストすること(712)であって、これにより、複数のノードが近傍ノード(402b、402c)になり、複数の近傍ノードのうちの1つの近傍ノード(402b)がソフトウェアモジュールのために近傍ノードのそれぞれのローカルMR(412b)を検索し、近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められない場合に、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストすることであって、近傍ノードがこれにより更なる近傍ノード(402d、402e)となる、再びブロードキャストし、複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信する、ブロードキャストすること(712)と
を含み、ソースノードに、
近傍ノードからソフトウェアモジュールを受信すること(714)、並びに
タスクを実行するためにソフトウェアモジュールを使用すること(716)
を更に行わせるように構成される、ソースノード(402a、1000)。
【0138】
条項2. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、少なくとも
分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を行わせるように構成される、条項1に記載のソースノード(402a、1000)。
【0139】
条項3. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、少なくとも
近傍ノードの分散型台帳のそれぞれのコピーにおいて、近傍ノードがソースノードからブロードキャストされたリクエストを記録することに応じて、近傍ノード(402b、402c)からブロードキャストされた更なる追加的な不変のエントリを受信すること、及び
更なる追加的な不変のエントリを分散型台帳(410a)のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを近傍ノードの分散型台帳のそれぞれのコピーと同期すること
を行わせる、条項2に記載のソースノード(402a、1000)。
【0140】
条項4. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、少なくとも
ソフトウェアモジュールの受信を分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリに記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を行わせるように構成される、条項1から3のいずれか一項に記載のソースノード(402a、1000)。
【0141】
条項5. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、少なくとも
分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリにソフトウェアモジュールの使用を記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を行わせるように構成される、条項1から4のいずれか一項に記載のソースノード(402a、1000)。
【0142】
条項6. 複数のノードを含む無線アドホックネットワークで動作可能な近傍ノード(402b、1000)であって、それらのノードは、ソースノード(402a)の無線範囲内において、近傍ノード(402b、402c)であり、その近傍ノードが、
コンピュータ可読プログラムコード(1006)を記憶するように構成されたメモリ(1004)と、
処理回路(1002)と
を備え、処理回路(1002)が、メモリにアクセスし、コンピュータ可読プログラムコードを実行して、近隣ノードに、少なくとも
ソースノードがローカルモジュールリポジトリ(MR)(412a)においてソフトウェアモジュールの位置を突き止められないことに応じて、タスクを実行するために使用可能なソフトウェアモジュールの、ソースノードからのリクエストを受信すること(802)であって、リクエストがソースノードから近傍ノードまでブロードキャストされ、近傍ノードがそのリクエストに応じる、ソースノードからのリクエストを受信すること(802)、
複数のノードにわたって複製、共有及び同期される分散型台帳(410b)のそれぞれのローカルコピーにアクセスすること(804)であって、分散型台帳及びこれによるそれぞれのローカルコピーがソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳(410b)のそれぞれのローカルコピーにアクセスすること(804)、
ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること(806)、
ソースノードが許可されているときにのみ、
ソフトウェアモジュールのために近傍ノードのそれぞれのローカルMR(412b)を検索すること(808)、
近傍ノードがそれぞれのローカルMR(412b)においてソフトウェアモジュールの位置を突き止められないことに応じて、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストすること(810)であって、近傍ノードがこれにより更なる近傍ノード(402d、402e)となる、再びブロードキャストすること(810)、
複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信すること(812)、並びに
タスクを実行するためにソフトウェアモジュールを使用するソースノードにソフトウェアモジュールに返すこと(814)
を行うようにさせるように構成されている、近傍ノード(402b、1000)。
【0143】
条項7. 分散型台帳及びこれによるそれぞれのローカルコピー(410b)がまた、近傍ノードによって受信された以前のリクエストが記録される不変のエントリを含み、
処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、近傍ノードに、不変のエントリを検索させ、リクエストがソースノード(402a)からのソフトウェアモジュールの新たなリクエストであることを検証させるように構成される、条項6に記載の近傍ノード(402b、1000)。
【0144】
条項8. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、近傍ノードに、少なくとも
分散型台帳(410b)のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び
追加的な不変のエントリをソースノード(402a)及び更なる近傍ノード(402d、402e)にブロードキャストし、分散型台帳(410b)のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を行わせるように構成される、条項6又は7に記載の近傍ノード(402b、1000)。
【0145】
条項9. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、近傍ノードに、少なくとも
更なる近傍ノードの分散型台帳のそれぞれのコピーにおいて、更なる近傍ノードが近隣ノードから再びブロードキャストされたリクエストを記録することに応じて、更なる近傍ノード(402d、402e)からブロードキャストされた更なる追加的な不変のエントリを受信すること、及び
更なる追加的な不変のエントリを分散型台帳(410b)のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを更なる近傍ノードの分散型台帳のそれぞれのコピーと同期すること
を行わせるように構成される、条項8に記載の近傍ノード(402b、1000)。
【0146】
条項10. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、近傍ノードに、少なくとも
ソフトウェアモジュールの受信を分散型台帳(410b)のそれぞれのローカルコピーの追加的な不変のエントリに記録すること、及び
追加的な不変のエントリをソースノード(402a)及び更なる近傍ノード(402d、402e)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を行わせるように構成される、条項6から9のいずれか一項に記載の近傍ノード(402b、1000)。
【0147】
条項11. 複数のノードを含む無線アドホックネットワークで動作可能なソースノード(502a、1000)であって、
コンピュータ可読プログラムコード(1006)を記憶するように構成されたメモリ(1004)と、
処理回路(1002)と
を備え、処理回路(1002)が、メモリにアクセスし、コンピュータ可読プログラムコードを実行して、ソースノードに、少なくとも
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(902)、
ソースノードがタスクを実行不可能であるとの決定を行うこと(904)、
その決定に応じて、
複数のノードにわたって複製、共有及び同期される分散型台帳に実装されるモジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)であって、分散型台帳及びこれによりMRのローカルコピーが、複数のノードに利用可能なソフトウェアモジュールを備える不変のエントリを含む、モジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)と、
タスクを実行するために使用可能なソフトウェアモジュールのためにMRのローカルコピーを検索すること(908)、並びに
タスクを実行するためにソフトウェアモジュールを使用すること(910)
を行わせるように構成される、ソースノード(502a、1000)。
【0148】
条項12. MR(510a)のローカルコピーを検索させるソースノードが、具体的に識別されるソフトウェアモジュールのためにMRのローカルコピーを検索させるソースノードを含む、条項11に記載のソースノード(502a、1000)。
【0149】
条項13. MR(510a)のローカルコピーを検索させるソースノードが、ソフトウェアモジュールを具体的に識別することなく、タスクを実行するために使用可能な任意のソフトウェアモジュールのためにMRのローカルコピーを検索させるソースノードを含む、請求項11又は12に記載のソースノード(502a、1000)。
【0150】
条項14. 分散型台帳及びこれによるMR(510a)のローカルコピーが、ソフトウェアモジュールを含む、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含み、
処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、ソフトウェアモジュールが使用される前に、ソースノードにはソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、MRのローカルコピーを検索させるように構成され、ソースノードには、ソースノードが許可されているときにのみ、ソフトウェアモジュールを使用させる、条項11から13のいずれか一項に記載のソースノード(502a、1000)。
【0151】
条項15. 処理回路(1002)が、コンピュータ可読プログラムコード(1006)を実行し、更に、ソースノードに、少なくとも
MR(510a)のローカルコピー内の追加的な不変のエントリにおけるソフトウェアモジュールの使用を記録すること、及び
追加的な不変のエントリを、ソースノードの無線範囲内で複数のノードのエントリにブロードキャストし、MR(510a)のローカルコピーの、複数のノードの他のノードにおけるMRのコピーとの同期を開始すること
を行うように構成される、条項11から14のいずれか一項に記載のソースノード(502a、1000)。
【0152】
条項16. 複数のノードを含む無線アドホックネットワークにおいてソースノード(402a)によってソフトウェアを取得する方法(700)であって、ソースノードが、
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(702)、
ソースノードがタスクを実行不可能であるとの決定を行うこと(704)、
その決定に応じて、
複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスすること(706)であって、分散型台帳及びこれによるそれぞれのローカルコピーが、タスクを実行するために使用可能なソフトウェアモジュールを含む、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳のそれぞれのローカルコピーにアクセスすること(706)、
ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること(708)、
ソースノードが許可されているときにのみ、
タスクを実行するために使用可能なソフトウェアモジュールのためにソースノードのローカルモジュールリポジトリ(MR)(412a)を検索すること(710)、
ソースノードがローカルMR内でソフトウェアモジュールの位置を突き止められないことに応じて、ソフトウェアモジュールのリクエストを、ソースノードの無線範囲の複数のノードのリクエストにブロードキャストすること(712)であって、これにより、複数のノードが近傍ノード(402b、402c)になり、複数の近傍ノードのうちの1つの近傍ノード(402b)がソフトウェアモジュールのために近傍ノードのそれぞれのローカルMRを検索し、近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められない場合に、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストすることであって、近傍ノードがこれにより更なる近傍ノード(402d、402e)となる、再びブロードキャストし、複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信する、ブロードキャストすること(712)と
を含み、ソースノードが、
近傍ノードからソフトウェアモジュールを受すること(714)と、
タスクを実行するためにソフトウェアモジュールを使用すること(716)と
を更に行う、方法(700)。
【0153】
条項17. ソースノード(402a)が、
分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を更に含む、条項16に記載の方法(700)。
【0154】
条項18. ソースノード(402a)が、
近傍ノードの分散型台帳のそれぞれのコピーにおいて、近傍ノードがソースノードからブロードキャストされたリクエストを記録することに応じて、近傍ノード(402b、402c)からブロードキャストされた更なる追加的な不変のエントリを受信すること、及び
更なる追加的な不変のエントリを分散型台帳(410a)のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを近傍ノードの分散型台帳のそれぞれのコピーと同期すること
を更に含む、条項17に記載の方法(700)。
【0155】
条項19. ソースノード(402a)が、
ソフトウェアモジュールの受信を分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリに記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を更に含む、条項16から18のいずれか一項に記載の方法(700)。
【0156】
条項20. ソースノード(402a)が、
分散型台帳(410a)のそれぞれのローカルコピーの追加的な不変のエントリにソフトウェアモジュールの使用を記録すること、及び
追加的な不変のエントリを近傍ノード(402b、402c)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を更に含む、条項16から19のいずれか一項に記載の方法(700)。
【0157】
条項21. 複数のノードを含む無線アドホックネットワークのソースノード(402a)によってソフトウェアを取得する方法(800)であって、それらのノードは、ソースノードの無線範囲内において近傍ノード(402b、402c)であり、複数の近傍ノードのうちの1つの近傍ノード(402b)が、
ソースノードがローカルモジュールリポジトリ(MR)(412a)においてソフトウェアモジュールの位置を突き止められないことに応じて、タスクを実行するために使用可能なソフトウェアモジュールの、ソースノードからのリクエストを受信すること(802)であって、リクエストがソースノードから近傍ノードまでブロードキャストされ、近傍ノードがそのリクエストに応じる、ソースノードからのリクエストを受信すること(802)、
複数のノードにわたって複製、共有及び同期される分散型台帳のそれぞれのローカルコピーにアクセスすること(804)であって、分散型台帳及びこれによるそれぞれのローカルコピーがソフトウェアモジュールへのアクセス権を特定する不変のエントリを含む、分散型台帳のそれぞれのローカルコピーにアクセスすること(804)、
ソースノードにソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのためにそれぞれのローカルコピーの不変のエントリを検索すること(806)、
ソースノードが許可されているときにのみ、
ソフトウェアモジュールのために近傍ノードのそれぞれのローカルMR(412b)を検索すること(808)、
近傍ノードがそれぞれのローカルMRにおいてソフトウェアモジュールの位置を突き止められないことに応じて、リクエストを、近傍ノードの無線範囲の複数のノードのリクエストに再びブロードキャストすること(810)であって、近傍ノードがこれにより更なる近傍ノード(402d、402e)となる、再びブロードキャストすること(810)、
複数の更なる近傍ノードのうちの1つの更なる近傍ノードからソフトウェアモジュールを受信すること(812)、並びに
タスクを実行するためにソフトウェアモジュールを使用するソースノードにソフトウェアモジュールに返すこと(814)
を含む、方法(800)。
【0158】
条項22. 分散型台帳及びこれによるそれぞれのローカルコピーがまた、近傍ノード(402b)によって受信された以前のリクエストが記録される不変のエントリを含み、
方法は、近傍ノードが、不変のエントリを検索し、リクエストがソースノード(402a)からのソフトウェアモジュールの新たなリクエストであることを検証することを含む、条項21に記載の方法(800)。
【0159】
条項23. 近傍ノード(402b)が、
分散型台帳(410b)のそれぞれのローカルコピーの追加的な不変のエントリにリクエストを記録すること、及び
追加的な不変のエントリをソースノード(402a)及び更なる近傍ノード(402d、402e)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を更に含む、条項21又は22に記載の方法(800)。
【0160】
条項24. 近傍ノード(402b)が、
更なる近傍ノードの分散型台帳のそれぞれのコピーにおいて、更なる近傍ノードが近隣ノードから再びブロードキャストされたリクエストを記録することに応じて、更なる近傍ノード(402d、402e)からブロードキャストされた更なる追加的な不変のエントリを受信すること、及び
更なる追加的な不変のエントリを分散型台帳(410b)のそれぞれのローカルコピーに追加し、そのそれぞれのローカルコピーを更なる近傍ノードの分散型台帳のそれぞれのコピーと同期すること
を更に含む、条項23に記載の方法(800)。
【0161】
条項25. 近傍ノード(402b)が、
ソフトウェアモジュールの受信を分散型台帳のそれぞれのローカルコピーの追加的な不変のエントリに記録すること、及び
追加的な不変のエントリをソースノード(402a)及び更なる近傍ノード(402d、402e)にブロードキャストし、分散型台帳のそれぞれのローカルコピーの、複数のノードの他のノードにおける分散型台帳のコピーとの同期を開始すること
を更に含む、条項21から24のいずれか一項に記載の方法(800)。
【0162】
条項26. 複数のノードを含む無線アドホックネットワークにおいてソースノード(502a、1000)によってソフトウェアを取得する方法(900)であって、ソースノードが、
タスクを実行する必要性が識別されるアプリケーションソフトウェアを実行すること(902)、
ソースノードがタスクを実行不可能であるとの決定を行うこと(904)、
その決定に応じて、
複数のノードにわたって複製、共有及び同期される分散型台帳に実装されるモジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)であって、分散型台帳及びこれによりMRのローカルコピーが、複数のノードに利用可能なソフトウェアモジュールを備える不変のエントリを含む、モジュールリポジトリ(MR)(510a)のローカルコピーにアクセスすること(906)、
タスクを実行するために使用可能なソフトウェアモジュールのためにMRのローカルコピーを検索すること(908)、並びに
タスクを実行するためにソフトウェアモジュールを使用すること(910)
を含む、方法(900)。
【0163】
条項27. MR(510a)のローカルコピーを検索することが、具体的に識別されるソフトウェアモジュールのためにMRのローカルコピーを検索することを含む、条項26に記載の方法(900)。
【0164】
条項28. MR(510a)のローカルコピーを検索することが、ソフトウェアモジュールを具体的に識別することなく、タスクを実行するために使用可能な任意のソフトウェアモジュールのためにMRのローカルコピーを検索することを含む、条項26又は27に記載の方法(900)。
【0165】
条項29. 分散型台帳及びこれによるMR(510a)のローカルコピーが、ソフトウェアモジュールを含む、ソフトウェアモジュールへのアクセス権を特定する不変のエントリを更に含み、
方法は、ソースノード(502a、1000)が、ソフトウェアモジュールが使用される前に、ソースノードにはソフトウェアモジュールへのアクセスが許可されていることを示す不変のエントリのために、MRのローカルコピーを検索することを更に含み、ソースノードは、ソースノードが許可されているときにのみ、ソフトウェアモジュールを使用する、条項26から28のいずれか一項に記載の方法(900)。
【0166】
条項30. ソースノード(502a、1000)が、
MR(510a)のローカルコピー内の追加的な不変のエントリにソフトウェアモジュールの使用を記録すること、及び
追加的な不変のエントリを、ソースノードの無線範囲内で複数のノードのエントリにブロードキャストし、MRのローカルコピーの、複数のノードの他のノードにおけるMRのコピーとの同期を開始すること
を含む、条項26から29のいずれか一項に記載の方法(900)。
【0167】
上述の説明及び関連する図に提示されている教示から受益する、本開示に関連する当業者には、本明細書に明記された本開示の多数の改変例及びその他の実施形態が想起されよう。したがって、本開示は開示されている具体的な実施形態に限定されるものではないこと、及び、改変例及びその他の実施形態も付随する特許請求の範囲に含まれると意図されていることを、理解されたい。更に、上述の説明及び関連する図は、要素及び/又は機能の特定の例示的な組み合わせに照らして例示的な実施形態を説明しているが、付随する特許請求の範囲から逸脱しなければ、代替的な実施形態によって、要素及び/又は機能の様々な組み合わせが提供されうることを、認識すべきである。つまり、付随する特許請求の範囲の一部に明記されうるように、例えば、明示的に上述されたものとは異なる要素及び/又は機能の組み合わせも想定される。本明細書では特定の用語が用いられているが、それらは、一般的かつ解説的な意味でのみ使用されており、限定を目的とするものではない。
図1
図2
図3A
図3B
図3C
図3D
図4
図5
図6
図7
図8
図9
図10