(57)【要約】【課題】仮想ハードウェアを使用してハードウェア装置をエミュレートすることが提供される。【解決手段】本開示による様々な実施態様によるプロセスが、ハードウェア装置をエミュレートするように構成された仮想化システムの仮想装置を使用してハードウェア装置をエミュレートするステップを含む。このプロセスは、仮想装置を含む仮想化システムのインスタンスを物理システム内にインストールすることも含む。このプロセスは、仮想装置を使用して物理システムのハードウェア装置をエミュレートすることをさらに含む。さらに、このプロセスは、仮想装置を使用して物理システムの機器と通信することを含む。【選択図】図1
2019185749.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のハードウェア装置（109）を、前記1つまたは複数のハードウェア装置をエミュレートするように構成された仮想化システム（111）の仮想装置（211）を使用してエミュレートするステップ（405）と、
前記仮想装置を含む前記仮想化システム（111A、111B、111C）の1つまたは複数のインスタンスを物理システム（105）内にインストールするステップ（413）と、
前記仮想装置のうちの1つまたは複数を使用して前記物理システムの前記ハードウェア装置のうちの前記1つまたは複数をエミュレートするステップ（421）と、
前記仮想装置のうちの前記1つまたは複数を使用して前記物理システムの機器（113）と通信するステップ（423）と、
を含む方法。
【請求項２】
前記物理システムが航空機プラットフォームを備え、
前記ハードウェア装置がライン交換可能ユニットを備え、
前記機器が前記航空機プラットフォームの入力／出力装置を備える、
請求項1に記載の方法。
【請求項３】
前記ハードウェア装置のうちの前記1つまたは複数をエミュレートする前記ステップが、前記ハードウェア装置のうちの前記1つまたは複数を第2の物理システム（125）内でエミュレートするステップを含み、インストールする前記ステップが、前記仮想化システムのコピーを前記第2の物理システムから前記物理システムに転送するステップを含む、
請求項2に記載の方法。
【請求項４】
前記仮想化システムの前記1つまたは複数のインスタンスが前記仮想化システムの少なくとも2つのインスタンスを含み、インストールする前記ステップが、前記仮想化システムの前記少なくとも2つのインスタンスを互いに遠く離れている前記物理システム内の箇所（112）にインストールするステップを含む、
請求項1に記載の方法。
【請求項５】
インストールする前記ステップが、前記仮想化システムを、前記ハードウェア装置を含むコンピュータネットワーク（121）に通信可能に接続するステップを含む、請求項1に記載の方法。
【請求項６】
インストールする前記ステップが、前記物理システムから前記ハードウェア装置のうちの前記1つまたは複数を除去するステップを含む、請求項1に記載の方法。
【請求項７】
前記機器と通信する前記ステップが、前記ハードウェア装置のうちの前記1つまたは複数の前記機器を冗長に制御するステップ（421）を含む、請求項1に記載の方法。
【請求項８】
通信する前記ステップが、前記複数の仮想装置を前記ハードウェア装置のうちの前記1つまたは複数と組み合わせて操作するステップ（425）を含む、請求項1に記載の方法。
【請求項９】
前記機器と通信する前記ステップが、前記ハードウェア装置のうちの前記1つまたは複数と前記仮想装置のうちの前記1つまたは複数とを使用して機能照合検査を行うステップ（429）を含む、請求項1に記載の方法。
【請求項１０】
前記物理機器と通信する前記ステップが、前記ハードウェア装置のうちの前記1つまたは複数と前記仮想装置のうちの前記1つまたは複数とを使用して投票エラーを決定するステップ（433）を含む、請求項1に記載の方法。
【請求項１１】
仮想化システム（111A、111B、111C）の複数のインスタンスであって、前記仮想化システムがプロセッサ（339）およびプログラム命令（351）を格納するコンピュータ可読記憶装置（315）を備え、前記プログラム命令（351）は、前記プロセッサによって実行されたときに、前記仮想化システムに、複数の仮想装置を使用して複数の専用計算ユニット（109）をエミュレートするステップ（421）を含む動作を実行させる、複数のインスタンスと、
前記仮想化システムの前記複数のインスタンスを通信可能に接続するコンピュータネットワーク（121）と、
前記コンピュータネットワークを使用して前記複数の専用計算ユニットと通信するように構成された機器（113）と、
を備えるシステム。
【請求項１２】
前記システムが、前記コンピュータネットワークに通信可能に接続される前記複数の専用計算ユニットをさらに備える、請求項11に記載のシステム。
【請求項１３】
前記システムが航空機プラットフォームを備え、
前記複数の専用計算ユニットがライン交換可能ユニットを備え、
前記機器が前記航空機プラットフォームの入力／出力装置を備える、
請求項12に記載のシステム。
【請求項１４】
前記仮想化システムの前記複数のインスタンスが汎用計算システムを備える、請求項11に記載のシステム。
【請求項１５】
前記仮想化システムの前記複数のインスタンスが、
前記システム内の互いに遠く離れている箇所（112）にインストールされ、
前記複数の専用計算ユニットの前記機器を冗長に制御するように構成され、
前記複数の仮想装置を使用して前記複数の専用計算ユニットと組み合わせて動作する（425）ように構成され、
前記複数の仮想装置を使用して1つまたは複数の専用計算ユニットの機能照合検査を行う（429）ように構成され、かつ
前記複数の仮想装置を使用して投票エラーを決定する（433）ように構成される、
のうちの少なくとも1つである、請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運用環境用の仮想化されたアビオニクスシステムに関する。
【背景技術】
【０００２】
最新の航空機は、動作および機能を制御するための計算装置を使用している。航空機に使用される特定の計算装置は、「ライン交換可能ユニット（line replaceable unit）」（LRU）と呼ばれることがある。航空機は、例えば、ミッションコンピュータ、飛行管理ユニット、自動操縦ユニット、通信ユニット、航法ユニット（navigation unit）、衝突回避ユニット、などを含む多くの異なるタイプのLRUを搬送することがある。LRUは航空機運航中に重要な機能を果たすことができるので、航空機は、かなりの重量を加えかつ航空機上の貴重な空間を消費する多数の冗長LRUを含むことがある。さらに、保有航空機は、同じタイプのLRUの異なるバージョンを使用することができる。しかしながら、様々なLRUのタイプおよびバージョンを開発し、試験し、かつ維持するには、かなりのライフサイクルコスト（例えば、エンジニアリング、製造、試験、統合、資格取得、整備、および保管）を伴う。例えば、航空機システム内のまたは様々なLRU相互間の非互換性または他のアーチファクトは、LRUの構成および統合が完結するまで発見されないことがある。さらに、航空機上に設置されるLRUはそれぞれ、（例えば、重量を加えかつ範囲を減少させることにより）運用コストを増大させる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、仮想ハードウェア（virtual hardware）を使用してハードウェア装置をエミュレートすること（emulating）を対象とする。本開示による様々な実施態様によるプロセスが、ハードウェア装置をエミュレートするように構成された仮想化システムの仮想装置を使用することを含む。このプロセスは、仮想装置を含む仮想化システムのインスタンスを物理システム内にインストールすることも含む。このプロセスは、仮想装置を使用して物理システムのハードウェア装置をエミュレートすることをさらに含む。さらに、このプロセスは、仮想装置を使用して物理システムの機器と通信することを含む。
【０００４】
さらに、本開示による様々な実施態様によるシステムが、プロセッサとプログラム命令を格納するコンピュータ可読記憶装置とを有する仮想化システムのインスタンスを含む。プログラム命令は、プロセッサによって実行されたときに、仮想化システムに、仮想装置を使用して専用計算ユニットをエミュレートすることを含む動作を実行させる。このシステムは、仮想化システムのインスタンスを通信可能に接続するコンピュータネットワークも含む。このシステムは、コンピュータネットワークを使用して専用計算ユニットと通信する機器をさらに含む。
【０００５】
さらに、本開示による様々な実施態様による航空機プラットフォームは、アビオニクスネットワークと、アビオニクスネットワークによって通信可能に接続されるライン交換可能アビオニクスユニットと、アビオニクスネットワークを使用して複数のライン交換可能ユニットと通信するように構成された航空機機器と、仮想化システムのインスタンスと、を含む。仮想化システムは、プロセッサおよびプログラム命令を保存するコンピュータ可読記憶装置を含む。プログラム命令は、プロセッサによって実行されたときに、仮想化システムに、複数の仮想装置を使用して複数のライン交換可能アビオニクスユニットをエミュレートすることを含む動作を実行させる。仮想化システムのインスタンスは、航空機プラットフォーム内に互いに遠隔配置される。仮想装置は、複数のライン交換可能ユニットを冗長に操作する。
【０００６】
添付の図面は、本明細書に組み込まれかつ本明細書の一部を構成するものであり、本教示を例示するとともに、本明細書と共に本開示の原理を説明する働きをする。
【図面の簡単な説明】
【０００７】
【図１】本開示の諸態様による、システムおよびプロセスを実施するための環境の一例を示すシステムブロック図である。
【図２】本開示の諸態様による物理ハードウェアシステムの一例を示すシステムブロック図である。
【図３】本開示の諸態様による仮想化システムの一例を示すシステムブロック図である。
【図４】本開示の諸態様による、システム、方法、およびコンピュータプログラムによって実行されるプロセスの一例を示す機能流れ図である。
【発明を実施するための形態】
【０００８】
本明細書で開示されるシステム、プロセス、およびコンピュータプログラムは、仮想ハードウェアを使用して専用ハードウェア装置の高忠実度エミュレーションを行うことを対象とする。本開示によるシステム、プロセス、およびコンピュータプログラムプロダクトの諸実施態様は、運用システムの専用ハードウェア装置を仮想化されたハードウェアで置き換えるまたは補うことにより既存のコンピュータハードウェア技術が改善される。本開示による仮想化システムは、いくつかの異なるハードウェア装置および同ハードウェア装置の物理インタフェースをエミュレートすることができる。例えば、単一仮想化システムが、航空機プラットフォーム（例えばLRU）および同航空機プラットフォームの関連接続性装置（例えば、配電盤およびネットワーク構成要素）のアビオニクススイート（avionics suite）全体をエミュレートすることができる。また、仮想化システムはアビオニクススイートよりも実質的に小型かつ／または軽量であり得るので、ハードウェア装置を置き換えるまたは補うことで、本開示による仮想化システムは、複数層の冗長性を提供するとともに、かかる冗長性を提供するために普通ならハードウェア装置によって使用されるはずの空間および重量を最小限に抑えることができる。
【０００９】
さらに、本開示による諸実施態様は、以前に本明細書で特定された現行ハードウェアシステム（例えば、アビオニクスシステム）の問題を解決する。例えば、本開示による仮想化システムは、製品開発ライフサイクルにおける非常に早い段階で仮想ハードウェアを利用可能にすることにより開発コストを節減することができ、それによって要件開発、ソフトウェア開発、および試験のより早期の性能を可能にすることができる。物理ハードウェア装置に比べて仮想ハードウェアの早期の可用性により、製品の要件および設計における問題のより早期の発見も可能になる。さらに、本開示による仮想化システムは、仮想化システムによってエミュレートされる各ハードウェア装置（例えばLRU）に対してではなく、仮想化システムのハードウェアに対してかかるコストを1度だけ負担することにより、資格取得コストを低減することができる。さらに、本開示による仮想化システムはコストを大幅に節減することができる、というのは、仮想化システムは、複数の異なる専用ハードウェア装置の代わりに、低コストの一般的なかつ／または在庫品のハードウェア上に実装され得るからである。さらに、現行の仮想化システムは試験目的で装置エミュレーションを支援することができるが、このような現行仮想化システムは、ソフトウェアが実際のハードウェア装置上でどのように実行するのかを正確には表さない。したがって、本明細書で提示される実施態様と一致する実施態様は、低水準のシステム機能性を正確に提示することでそうした問題に対処することができる。
【００１０】
図1は、本開示の諸態様によるシステムおよびプロセスを実施するための環境100の一例を示すシステムブロック図を示す。環境100は物理システム105を備えることができ、物理システム105は、ハードウェア装置109（例えば、アビオニクス装置または計算装置）と1つまたは複数の仮想化システム111と機器113とを含むことができ、これらはすべて、ネットワーク121内で通信リンク119によって接続され得る。いくつかの実施態様では、物理システム105は運用システム（例えば、ビークルまたはプラント）とすることができる。いくつかの実施態様では、物理システム105は、試験および評価システム（例えば、ビークルシミュレータまたは統合テストベンチ）とすることができる。
【００１１】
図1に示されているように、物理システム105は、ハードウェア装置109をエミュレートする仮想化システム111A、111Bおよび111Cの複数のインスタンスを有する航空機プラットフォームとすることができる。いくつかの実施態様では、仮想化システム111のインスタンスの一部または全部がハードウェア装置109を冗長にすることができ、物理システムは、ハードウェア装置109のうちの1つまたは複数が故障した場合に仮想化システム111にフェイルオーバする（failover）ことができる。例えば、仮想化システム111のインスタンスは、ハードウェア装置109にフェイルオーバを提供することができる。いくつかの実施態様では、仮想化システム111のインスタンスの一部または全部が、ハードウェア装置109と並列に機能することができる。例えば、ハードウェア装置109および仮想化システム111のインスタンスは、物理システム105の頑健性を高めるために投票動作を実行することができる。
【００１２】
ハードウェア装置109は、1つまたは複数のコンピュータ実装ハードウェア装置とすることができる。諸実施態様では、ハードウェア装置109は、ハードウェア装置109にインストールされたコンピュータプログラム命令を実行することができる専用計算ユニット（例えば、アプリケーション専用計算装置）とすることができる。例えば、ハードウェア装置109は、1つまたは複数のアビオニクス装置（例えば、アビオニクススイートのLRU）を含むことができる。
【００１３】
仮想化システム111は、ハードウェア装置109をエミュレートするハードウェアおよびソフトウェアからなる計算システムとすることができる。諸実施態様では、仮想化システム111はそれぞれ、複数のハードウェア装置をエミュレートする1つまたは複数の仮想ハードウェア装置のホストとなる1つまたは複数の汎用コンピュータ、ならびにかかるハードウェア装置のインタフェースおよび接続性とすることができる。例えば、仮想化システム111は、ハードウェア装置109のハードウェアおよびソフトウェアインタフェース（例えば、周辺機器、データリンク、割り込み挙動、およびタイミング要件）のエミュレーションを含むことができる。さらに、諸実施態様では、仮想化システム111は、異なるハードウェア装置109によって実行されるアプリケーションソフトウェアの正確なコピーまたは実質的に正確なコピー（例えば画像）を実行することができる。例えば、仮想化システム111は、ハードウェア仮想化を実行するオープンソースソフトウェアであるQUICK EMULATOR（「QEMU」）を使用することができる。
【００１４】
機器113は、ハードウェア装置109および仮想化システム111と通信しかつ／またはハードウェア装置109および仮想化システム111によって制御される1つまたは複数の装置またはシステムとすることができる。諸実施態様では、機器113の1つまたは複数の装置は、通信リンク119を介してハードウェア装置109および仮想化システム111と通信するネットワークインタフェースを含む。機器113は、航空機飛行制御装置（例えば、操縦桿、ペダル、およびスロットル）、入力／出力システム（例えば、スイッチおよびボタン）、センサ（例えば、位置センサおよびピトー管）、アクチュエータ（例えば、サーボモーター）、ディスプレイ（例えば、コックピットディスプレイ）、照明などの様々な入力／出力装置を含むことができる。例えば、機器113は、ハードウェア装置109および仮想化システム113内の物理および／または仮想飛行制御LRUにステアリング入力を与える航空機操縦桿およびスロットルを含むことができる。さらに、例えば、機器は、ハードウェア装置109および仮想化システム113内の航法LRUから航法情報を送信および受信する航法およびディスプレイユニットを含むことができる。
【００１５】
通信リンク119は、ハードウェア装置109、仮想化システム111、および機器113を含む、物理システム105のネットワーク121内で互いに接続された様々な装置とコンピュータとの間で通信するために使用される媒体とすることができる。例に示されているように、ネットワーク121は、ハードウェア装置109、仮想化システム111、および機器113を通信可能に接続する。例えば、ネットワーク121は、アビオニクスLRUを通信可能に連接するアビオニクスネットワークとすることができる。通信リンク119は、有線および／または無線通信リンクとすることができる。
【００１６】
いくつかの実施態様では、環境100は、通信リンク127を介してハードウェア装置109および仮想化システム111に通信可能に連接される第2の物理システム125を含む。物理システム125および通信リンク127は、前述の物理システム105および通信リンク119と同じまたは同様のものとすることができる。いくつかの実施態様では、物理システム105は航空機とすることができ、物理システム125は、仮想化システム111およびハードウェア装置109と通信する地上試験プラットフォームとすることができる。例えば、物理システム125は、ライブラリまたは記憶システムにソフトウェア航空機部品を保管することができる。また、物理システムは、通信リンク127を使用して（例えば、Aircraft Communications、Addressing and Reporting System（ACARS）や他の航空交通ネットワーク（ATN）などの商用データリンクを使用して）物理システム105に接続される別の航空機プラットフォーム、航空交通管制（ATC）システム、または整備システムとすることができる。
【００１７】
いくつかの実施態様では、物理システム125は、上述したように、仮想化システム111A、111B、および111Cのインスタンスと同じまたは同様の方法でハードウェア装置109のうちの1つまたは複数をエミュレートする仮想化システム111Dのインスタンスを実行する汎用計算システムを備えるエンジニアリングシステム、開発システム、および／または試験システムを備える。したがって、いくつかの実施態様によれば、開発者（例えば、ソフトウェアコーダ）が、物理システム125内の仮想化システム111を仮想化システム111Dとして生成および／または修正することができる。仮想化システム111Dの修正済みインスタンスは、物理システム125内で試験または変更され得る。さらに、仮想化システム111Dの修正済みインスタンスは、物理システム105と組み合わせて試験され得る。例えば、仮想化システム111Dは、他のインスタンス（例えば、111A、111B、および111C）が航空機上にインストールされる前に仮想化システム111Dの機能性を確認および／または検証するために、航空機の物理装置109および機器113と共にインストール済みシステム試験に使用することができる。仮想化システム111Dの修正済みインスタンスが確認された後、仮想化システム111A、111Bおよび111Cのインスタンスを置き換えるためにコピーが物理システム125から物理システム105に継ぎ目なく移植され得る。
【００１８】
上述したように、仮想化システム111は、仮想化システム111の単一インスタンスを使用していくつかのハードウェア装置109をエミュレートすることにより既存の技術が改善される。したがって、仮想化システム111は、ハードウェア装置109よりも実質的に小型かつ軽量であり得る。さらに、仮想化システム111は、各仮想化システム111が物理システム105を互いに遠く離れた箇所に物理的に分散され得るので、既存技術が改善される。例えば、図1に示されている例では、仮想化システム111は、航空機プラットフォームの前部、中間部、および後部に分散され得る。いくつかの実施態様では、追加の仮想化システム111が航空機の周囲に配置され得る。したがって、仮想化システム111の分散されたインスタンスは、物理システム105の重量を実質的に増大させずに、航空機に局部損傷を与えた場合にハードウェア装置に対してかつ互いに複数のフェイルオーバを、提供することができる。さらに、仮想化システム111のインスタンスを分散させることにより、本開示の諸実施態様は、通信リンク119および127を横切る情報の帯域幅および待ち時間を減少させることができる。例えば、LIDAR LRUからリアルタイム、フルモーション、3次元カラー画像を処理する仮想化システム111Aの特定のインスタンスがLIDAR LRUに隣接して配置され、通信待ち時間を短縮しかつハードウェア装置109にかかる処理負荷を低減するためにかかるLRUの出力を処理する責任を委譲され得る。
【００１９】
図2は、本開示の諸態様による物理ハードウェアシステム105の一例を示すシステムブロック図を示す。物理ハードウェアシステム105は、前述したものと同じまたは同様のものとすることができる。物理ハードウェアシステム105は、ハードウェア装置109A、109Bおよび109Cと、1つまたは複数の仮想化システム111A、111B、111Cと、機器113と、通信リンク119と、ネットワーク121と、を含み、これらもまた、前述したものと同じまたは同様のものとすることができる。
【００２０】
仮想化システム111A、111Bおよび111Cは、1つまたは複数の仮想装置211A、211Bおよび211Cとネットワークインタフェース215とを含むことができる。仮想装置211は、仮想化システム111内でハードウェア装置109A、109Bおよび109Cのエミュレーションとすることができる。仮想装置211は、2017年3月31日に出願された米国特許出願第15／476，025号明細書に記載され、米国特許出願公開第2018／0285134号明細書として後で公開されるものと同じまたは同様の方法で生成することができる。仮想装置211のプログラムコードは、ハードウェア装置109（例えば、アビオニクスLRU）用のアプリケーションコードとすることができる。例えば、ハードウェア装置109A、109B、および109Cはそれぞれ、ミッションコンピュータLRU、飛行管理LRU、および航法LRUとすることができる。1つまたは複数の仮想化システム111の仮想装置211A、211B、および211Cはそれぞれ、仮想ミッションコンピュータLRU、仮想飛行管理LRU、および仮想航法LRUとすることができる。プログラムコードは、ソースコード（例えば、オペレーティングシステム）、インタフェースコード（例えば、タイミングおよびフォーマッティング）、ならびに／あるいはハードウェアコンポーネントの割り込みロジックおよびハードウェア装置109に含まれる通信リンクも含むことができる。
【００２１】
いくつかの実施態様では、仮想装置211は、ハードウェア装置109に対してかつ互いに対して垂直および／または水平冗長を提供することができる。したがって、諸実施態様では、仮想装置211は、ハードウェア装置109のいずれかが故障した場合にフェイルオーバを提供することができる。例えば、対応するハードウェア装置109Aが所定の期間にわたって通信していないことを仮想装置211Aが決定する場合、または対応するハードウェア装置109Aが故障事象を示したことを仮想装置211Aが決定する場合、仮想装置211Aは、ハードウェア装置109Aの代わりに仮想装置211A自体をネットワーク121内に使うことができる。さらに、いくつかの実施態様では、仮想装置211は、ハードウェア装置109と組み合わせて動作することができる。例えば、仮想化装置111A、111Bおよび111C内の仮想装置211Aはそれぞれ、ハードウェア装置109に対してならびに互いに対して機能照合検査を行うことができる。さらに、仮想化システム111A、111Bおよび111C内の仮想装置211Aはそれぞれ、様々な装置109および211の間に起こる投票エラーを決定するように機能することができる。
【００２２】
図3は、仮想化システム111の一例を示すシステムブロック図を示し、この仮想化システム111は上述したものと同じまたは同様のものとすることができる。仮想化システム111は、本明細書で開示されるプロセスおよび機能を実行するハードウェアおよびソフトウェアを含む。仮想化システム111は、仮想化システム111にインストールされたコンピュータプログラム命令を実行することができる汎用ハードウェアおよび／または専用ハードウェアを組み合わせたものを含む任意のタイプの計算システムを備えることができる。仮想化システム111は、ハウジング301、計算装置303、および記憶装置315を含むことができる。ハウジング301は、計算装置303、入力／出力（I／O）装置313、および記憶装置315を実質的にまたは完全に収容することができる。諸実施態様では、ハウジング301は耐久性を高めた筐体とすることができる。例えば、ハウジング301は、振動、湿気、および電磁干渉に対して耐久性を高めたアビオニクス筐体とすることができる。
【００２３】
記憶装置315は、情報およびプログラム命令を格納するコンピュータ可読不揮発性ハードウェア記憶装置を備えることができる。例えば、記憶装置315は、1つまたは複数のフラッシュドライブおよび／またはハードディスクドライブとすることができる。本開示の諸態様によれば、記憶装置315は、仮想装置317A、317Bおよび317C（例えば、仮想装置211A、211Bおよび211C）のプログラムコード（「PC」）を格納することができる。プログラムコードは、物理ハードウェア装置（例えば、物理システム105のハードウェア装置109A、109Bおよび109C）のアプリケーションソフトウェアとすることができる。諸実施態様では、仮想装置317A、317Bおよび317Cのプログラムコードは、対応する物理ハードウェア装置のプログラムコードを、上述した2017年3月31日に出願された米国特許出願第15／476，025号明細書に記載されているものと同じまたは同様の方法で実質的にミラーリングする。
【００２４】
諸実施態様では、計算装置303は、1つまたは複数のプロセッサ339（例えば、マイクロプロセッサ、マイクロチップ、またはアプリケーション専用集積回路）と、1つまたは複数のメモリ装置341（例えば、RAM、読出し専用メモリ（ROM））と、1つまたは複数のI／Oインタフェース343と、1つまたは複数のネットワークインタフェース装置215と、を含む。メモリ装置341は、プログラム命令の実行中に用いられるローカルメモリ（例えば、ランダムアクセスメモリおよびキャッシュメモリ）を含むことができる。さらに、計算装置303は、計算装置303がI／O装置313および記憶装置315と通信する手段である少なくとも1つの通信路344（例えば、データバス）を含む。プロセッサ339は、メモリ装置341および／または記憶装置315に格納され得るコンピュータプログラム命令（例えば、オペレーティングシステムおよび／またはアプリケーションプログラム）を実行する。
【００２５】
プロセッサ339は、仮想化アプリケーション351（例えば、QEMU）のコンピュータプログラム命令も実行することができる。仮想化アプリケーション351は、前述したものと同じまたは同様のものとすることができる。例えば、仮想化アプリケーション351は、ハイパーバイザまたは仮想マシンモニタソフトウェアを含むことができる。本開示の諸態様によれば、仮想化アプリケーション351は、仮想装置（例えば、仮想装置211A、211Bおよび211C）を設けるために仮想装置プログラムコード317A、317B、317Cを処理することができる。
【００２６】
計算装置303は、本明細に記載されているプロセスを実行することができる種々の可能な等価計算装置を表すことに留意されたい。開示済み実施形態では、プログラム命令およびハードウェアは、標準的なプログラミング技法およびエンジニアリング技法を用いて汎用計算装置で生成することができる。
【００２７】
図4の流れ図は、本開示による様々な実施態様によるシステム、方法、およびコンピュータプログラムプロダクトの可能な実施態様の機能性および動作の一例を示す。図4の流れ図の各ブロックは、プログラム命令のモジュール、セグメント、または一部を表すことができ、プログラム命令は、例示した機能または動作を実施するための1つまたは複数のコンピュータ実行可能命令を含む。いくつかの代替実施態様では、流れ図の特定のブロックに例示されている機能および／または動作は、図4に示されている順序を外れて行うことができる。例えば、連続して示されている2つのブロックは実質的に同時に実行され得る、あるいはこれらの2つのブロックは、関係する機能性に応じて逆の順序で実行され得ることがある。流れ図の各ブロックおよびブロック内のブロックを組み合わせたものは、特定の機能または動きを実行する専用ハードウェアベースのシステム、あるいは専用ハードウェアおよびコンピュータ命令を組み合わせたものによって実施され得ることにも留意されたい。
【００２８】
図4は、本開示の一実施形態に従って実行される動作を含む例示的なプロセス400の流れ図を示す。諸実施態様では、プロセス400は、仮想化システムを使用して専用ハードウェア装置を仮想装置としてエミュレートするとともに、航空機プラットフォームなどの物理システム内に仮想化システムの複数のインスタンスをインストールするために使用することができる。より具体的には、405で、物理ハードウェアシステム（例えば、物理システム105）のハードウェア装置（例えば、ハードウェア装置109）は、仮想化システム（例えば、仮想化システム111）の仮想装置（例えば、仮想装置211）を使用してエミュレートすることができる。例えば、ハードウェア装置は、航空機プラットフォームのアビオニクスLRUとすることができる。仮想装置は、仮想化システム内で実施されるハードウェア装置のプログラムコードを含むことができる。エミュレートすることは、物理ハードウェアシステムおよび／または仮想装置のアドレス空間に合うように仮想化システムのアドレス空間を（例えば、メモリマップを使用して）構成することを含むことができる。エミュレートすることは、メモリマップを使用してメモリ箇所を記録することにより仮想化システムおよび／または仮想装置の間で情報を交換することも含むことができる。例えば、物理ハードウェアシステムおよびハードウェア装置のメモリレジスタのメモリアドレスおよび範囲は、仮想化システムで記録され、仮想化システムおよび仮想装置について見出される各メモリレジスタの機能性を実施するために使用され得る。そうすることにより、仮想化システムおよび仮想装置は、物理ハードウェアシステムのハードウェア装置と同じ方法で情報を読み書きすることにより仮想化システムのメモリ構成を介してコンピュータネットワーク（例えば、コンピュータネットワーク121）と通信することができる。
【００２９】
409で、仮想化システムは、405で仮想化システムを使用してハードウェア装置の動作をエミュレートすることによってエミュレートされた仮想装置を修正し試験するために使用することができる。本明細書で前述した例によれば、仮想化システムは、エンジニアリング、開発および／または試験システムを使用して修正および／または試験することができ、このシステムは、ハードウェア装置（例えば、ハードウェア装置109）のうちの1つまたは複数あるいはかかる装置のシステムをエミュレートする汎用計算システム（例えば、物理システム125）とすることができる。さらに、前述の通り、仮想化システムは、仮想化システム（例えば、物理システム105）のターゲットシステムと組み合わせて試験することができる。例えば、仮想化システムは、仮想化システムの機能性を確認および／または検証するために、航空機のインストール済みシステム試験に使用することができる。
【００３０】
413で、仮想化システムの1つまたは複数のインスタンスが、物理ハードウェアシステム（例えば、物理システム105）内にインストールされ得る。仮想化システムのいくつかのインスタンス（例えば、仮想化のインスタンス111A、111Bおよび111C）は、409で試験された仮想化システム（例えば、インスタンス111D）のコピーとすることができ、ターゲットシステム（例えば、物理システム105）上にインストールされ、ターゲットシステムのネットワーク（例えば、ネットワーク121）内に通信可能に接続され得る。例えば、仮想化システムのインスタンスはアビオニクスLRUをエミュレートすることができ、運用航空機プラットフォームのアビオニクスネットワークに組み込むことができる。諸実施態様では、仮想化システムの様々なインスタンスは、互いに対して遠隔箇所（例えば、箇所112）にインストールされ得る。そうすることで、航空機の一領域への局部損傷が仮想化システムのすべてのインスタンスに損傷を与えるのを回避するように仮想化システムのインスタンスを配置することができる。例えば、航空機では、第1のインスタンスが航空機胴体の前部に配置されてもよく、第2のインスタンスが中央胴体に配置されてもよく、第3のインスタンスが胴体の後部に配置されてもよい。追加のインスタンスが、航空機の他の箇所に配置されてもよい。いくつかの実施態様では、417で、仮想化システムの1つまたは複数のインスタンスをインストールすることは、ハードウェア装置を完全に置き換えるとともに、仮想化システムだけを使用して物理ハードウェアシステムを制御するように、運用システムからハードウェア装置の一部または全部を除去することを含む。
【００３１】
421で、413でインストールされた仮想装置は、本明細書で前述したように、物理ハードウェアシステム内のハードウェア装置をエミュレートするために使用することができる。諸実施態様では、423で、413でインストールされた1つまたは複数の仮想化システムは、ネットワークを使用して物理システムの機器と通信することができる。例えば、機器は、制御システム（例えば、操縦桿、ペダル、およびスロットル）、入力／出力システム（例えば、スイッチおよびボタン）、センサ（例えば、位置センサおよびピトー管）、アクチュエータ（例えば、サーボモーター）、ディスプレイ（例えば、コックピットディスプレイ）、照明など、航空機プラットフォームの入力／出力装置とすることができる。いくつかの実施態様では、425で、ハードウェア装置をエミュレートすることは、1つまたは複数の仮想装置を1つまたは複数のハードウェア装置と並列に操作することを含むことができる。いくつかの実施態様では、429で、ハードウェア装置をエミュレートすることは、ハードウェア装置および／または仮想装置を使用して機能照合検査をすることを含むことができる。また、いくつかの実施態様では、433で、ハードウェア装置をエミュレートすることは、ハードウェア装置および／または仮想装置を使用して投票エラーを決定することを含むことができる。
【００３２】
437で、仮想装置は、ハードウェア装置のうちの1つまたは複数ならびに／あるいは仮想化システムのうちの1つまたは複数が故障していることを決定することができる。例えば、仮想航法LRUは、対応するハードウェア航法LRUが、例えば損傷、誤動作、または電力損失に起因し得る、通信を中断していることを検出することができる。441で、仮想装置は、437で故障していると決定されたハードウェア装置または仮想化システムにフェイルオーバとして機能することができる。例えば、航空機のアビオニクスベイに損傷が発生すると、アビオニクススイート（例えば、ハードウェア装置109）および第1の仮想化システム（例えば、仮想化システム111A）の故障を引き起こし得る。413で航空機にインストールされた第2の仮想化システム（例えば、仮想化システム111B）および／または第3の仮想化システム（例えば、仮想化システム111C）は、第1の仮想化システムの故障を検出し、その検出に基づいて航空機の機器（例えば、機器113）を制御し始めることができる。いくつかの実施態様では、第1の仮想化システム、第2の仮想化システム、および第3の仮想化システムは、所定のフェイルオーバ優先権を有することができる。例えば、第2の仮想化システムが第1の仮想化システムに対するフェイルオーバとして構成され、第3の仮想化システムが第2の仮想化システムに対するフェイルオーバとして構成されるようにする。他の実施態様では、第1の仮想化システム、第2の仮想化システム、および第3の仮想化システムは、仮想化システムのうちのいずれか1つが故障した場合、残りの仮想化システムが故障した仮想化システムと無関係に動作し続けるように、並列に動作する。
【００３３】
さらに、本開示は次項による例を含む。
【００３４】
項1．1つまたは複数のハードウェア装置（109）を、1つまたは複数のハードウェア装置をエミュレートするように構成された仮想化システム（111）の仮想装置（211）を使用してエミュレートするステップ（405）と、仮想装置を含む仮想化システム（111A、111B、111C）の1つまたは複数のインスタンスを物理システム（105）内にインストールするステップ（413）と、仮想装置のうちの1つまたは複数を使用して仮想化システムのハードウェア装置のうちの1つまたは複数をエミュレートするステップ（421）と、仮想装置のうちの1つまたは複数を使用して物理システムの機器（113）と通信するステップ（423）と、を含む方法。
【００３５】
項2．物理システムが航空機プラットフォームを備え、ハードウェア装置がライン交換可能ユニットを備え、機器が航空機プラットフォームの入力／出力装置を備える、項1に記載の方法。
【００３６】
項3．ハードウェア装置のうちの1つまたは複数をエミュレートするステップが、ハードウェア装置のうちの1つまたは複数を第2の物理システム（125）内でエミュレートするステップを含み、インストールするステップが、仮想化システムのコピーを第2の物理システムから物理システムに転送するステップを含む、項2に記載の方法。
【００３７】
項4．仮想化システムの1つまたは複数のインスタンスが仮想化システムの少なくとも2つのインスタンスを含み、インストールするステップが、仮想化システムの少なくとも2つのインスタンスを互いに遠く離れている物理システム内の箇所（112）にインストールするステップを含む、項1に記載の方法。
【００３８】
項5．インストールするステップが、仮想化システムを、ハードウェア装置を含むコンピュータネットワーク（121）に通信可能に接続するステップを含む、項1に記載の方法。
【００３９】
項6．インストールするステップが、物理システムからハードウェア装置のうちの1つまたは複数を除去するステップを含む、項1に記載の方法。
【００４０】
項7．機器と通信するステップが、ハードウェア装置のうちの1つまたは複数の機器を冗長に制御するステップ（421）を含む、項1に記載の方法。
【００４１】
項8．通信するステップが、複数の仮想装置をハードウェア装置のうちの1つまたは複数と組み合わせて操作するステップ（425）を含む、項1に記載の方法。
【００４２】
項9．機器と通信するステップが、ハードウェア装置のうちの1つまたは複数と仮想装置のうちの1つまたは複数とを使用して機能照合検査を行うステップ（429）を含む、項1に記載の方法。
【００４３】
項10．物理機器と通信するステップが、ハードウェア装置のうちの1つまたは複数と仮想装置のうちの1つまたは複数とを使用して投票エラーを決定するステップ（433）を含む、項1に記載の方法。
【００４４】
項11．仮想化システム（111A、111B、111C）の複数のインスタンスであって、仮想化システムがプロセッサ（339）およびプログラム命令（351）を格納するコンピュータ可読記憶装置（315）を備え、プログラム命令（351）は、プロセッサによって実行されたときに、仮想化システムに、複数の仮想装置を使用して複数の専用計算ユニット（109）をエミュレートするステップ（421）を含む動作を実行させる、複数のインスタンスと、仮想化システムの複数のインスタンスを通信可能に接続するコンピュータネットワーク（121）と、コンピュータネットワークを使用して複数の専用計算ユニットと通信するように構成された機器（113）と、を備えるシステム。
【００４５】
項12．コンピュータネットワークに通信可能に接続される複数の専用計算ユニットをさらに備える、項11に記載のシステム。
【００４６】
項13．システムが航空機プラットフォームを備え、複数の専用計算ユニットがライン交換可能ユニットを備え、機器が航空機プラットフォームの入力／出力装置を備える、項12に記載のシステム。
【００４７】
項14．仮想化システムの複数のインスタンスが汎用計算システムを備える、項11に記載のシステム。
【００４８】
項15．仮想化システムの複数のインスタンスが、システム内に互いに遠く離れている箇所（112）にインストールされる、項11に記載のシステム。
【００４９】
項16．仮想化システムの複数のインスタンスが、複数の専用計算ユニットの機器を冗長に制御するように構成される、項11に記載のシステム。
【００５０】
項17．仮想化システムの複数のインスタンスが、複数の仮想装置を使用して複数の専用計算ユニットと組み合わせて動作する（425）ように構成される、項11に記載のシステム。
【００５１】
項18．仮想化システムの複数のインスタンスが、複数の仮想装置を使用して1つまたは複数の専用計算ユニットの機能照合検査を行う（429）ように構成される、項11に記載のシステム。
【００５２】
項19．仮想化システムの複数のインスタンスが、複数の仮想装置を使用して投票エラーを決定する（433）ように構成される、項11に記載のシステム。
【００５３】
項20．アビオニクスネットワーク（121）と、アビオニクスネットワークによって通信可能に接続される複数のライン交換可能アビオニクスユニット（109）と、アビオニクスネットワークを使用して複数のライン交換可能ユニットと通信するように構成された航空機機器（113）と、仮想化システム（111A、111B、111C）の複数のインスタンスであって、仮想化システムがプロセッサ（339）およびプログラム命令（351）を格納するコンピュータ可読記憶装置（315）を備え、プログラム命令（351）は、プロセッサによって実行されたときに、仮想化システムに、複数の仮想装置を使用して複数のライン交換可能アビオニクスユニットをエミュレートすることを含む動作を実行させる、複数のインスタンスと、を備える航空機プラットフォームであって、仮想化システムの複数のインスタンスが航空機プラットフォーム内に互いに遠隔配置され（112）、複数の仮想装置が、複数のライン交換可能ユニットを冗長に操作するように構成される、航空機プラットフォーム。
【００５４】
本開示は、様々な態様の例示として意図されている、本出願に記載されている特定の実施形態に関して限定されるものではない。当業者には明らかなように、多くの修正および変更が本開示の主旨および範囲から逸脱することなくなされ得る。本開示の範囲内にある機能的に同等の方法および装置は、本明細書に列挙されたものに加えて、前述の説明から当業者には明らかであろう。このような修正および変更は、添付の特許請求の範囲内にあることを意図している。本開示は、かかる特許請求の範囲が権利を付与されている均等物の全範囲と共に、添付の特許請求の範囲の条件によってのみ限定されるものである。本明細書で用いられる用語は、特定の実施形態のみを説明するためのものであり、限定するものではないことも理解されるべきである。
【００５５】
実質的にすべての複数形および／または単数形の用語を本明細書で用いることに関して、当業者は、文脈および／または用途に適合するように複数形から単数形にかつ／または単数形から複数形に翻訳することができる。明瞭にするために、様々な単数形／複数形の順列が本明細書に明確に記述され得る。
【００５６】
当業者なら、一般に、本明細書において、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本体部）において用いられる用語は、一般に、「オープンな（open）」用語として意図されていることを理解するであろう（例えば、用語「含む（including）」は「含むがそれに限定されない」と解釈されるべきであり、用語「有する（having）」は「少なくとも有する」と解釈されるべきであり、用語「含む（includes）」は「含むがそれに限定されない」と解釈されるべきである、など）。当業者なら、導入された請求項記載の特定の数が意図される場合、そのような意図はその請求項に明確に記載されることになり、そのような記載がない場合、そのような意図は存在しないことをさらに理解するであろう。例えば、理解を助けるものとして、下記の添付の特許請求の範囲は、請求項記載を導入するために導入句「少なくとも1つの（at least one）」および「1つまたは複数の（one or more）」の使用を含むことがある。しかしながら、かかる句の使用は、同じ請求項が導入句「1つまたは複数の」または「少なくとも1つ」と「a」や「an」などの不定冠詞（「a」および／または「an」は「少なくとも1つの」または「1つまたは複数の」とを意味すると解釈されるべきである）を含む場合でも、請求項の導入部の不定冠詞「a」または「an」の記載が、かかる導入済み請求項記載を含む特定の請求項をかかる記載を1つだけを含む実施形態に限定することを意味すると解釈されるべきではなく、請求項記載を導入するために用いられる定冠詞の使用にも同じことが当てはまる。加えて、導入された請求項記載の特定の数が明確に記載される場合でも、当業者は、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう（例えば、他に修飾語のない、単なる「2つの記載事項」の記載は、少なくとも2つの記載事項、または2つ以上の記載事項を意味する）。さらに、「A、B、およびCのうちの少なくとも1つ、など」に類似した表記が使用されるような場合、一般に、かかる構成は、当業者がかかる表記を理解するであろうという意味に意図されている（例えば、「A、B、およびCのうちの少なくとも1つを有するシステム」は、Aだけ、Bだけ、Cだけ、AおよびBをともに、AおよびCをともに、BおよびCをともに、および／またはA、B、およびCをともに、などを有するシステムを含むが、そのシステムに限定されるものではない）。さらに、「A、B、またはCのうちの少なくとも1つ、など」に類似した表記が使用されるような場合、一般に、かかる構成は、当業者がかかる表記を理解するであろうという意味に意図されている（例えば、「A、B、またはCのうちの少なくとも1つを有するシステム」は、Aだけ、Bだけ、Cだけ、AおよびBをともに、AおよびCをともに、BおよびCをともに、および／またはA、B、およびCをともに、などを有するシステムを含むが、そのシステムに限定されるものではない）。当業者なら、2つ以上の代替用語を表す実質的に任意の離接語および／または句は、本明細書、特許請求の範囲、または図面にあろうとなかろうと、用語の1つ、用語のどちらか、または両方の用語を含む可能性を考慮するように理解されるべきであることをさらに理解するであろう。例えば、句「AまたはB」は、「A」または「B」あるいは「A」および「B」である可能性を含むと理解されるであろう。加えて、本開示の形態または態様がマーカッシュ群に関して記述されている場合、当業者なら、本開示が、それによりマーカッシュ群の任意の個々の部材または部材の部分群に関しても記述されていることを認識するであろう。
【００５７】
本明細書において様々な態様および実施形態が開示されているが、他の態様および実施形態が当業者には明らかであろう。本明細書で開示される様々な態様および実施形態は、例示の目的のためであり、限定するものではなく、真の範囲および主旨は下記の特許請求の範囲で示される。
【符号の説明】
【００５８】
100  環境
105  物理システム、物理ハードウェアシステム
109、109A〜C  ハードウェア装置
111  仮想化システム
111A  仮想化システム、インスタンス、仮想化装置
111B  仮想化システム、仮想化装置
111C  仮想化システム
111D  仮想化システム、インスタンス
112  箇所
113  機器
113  仮想化システム
119  通信リンク
121  コンピュータネットワーク
125  第2の物理システム
211、211A〜C  仮想装置
215  ネットワークインタフェース、ネットワークインタフェース装置
301  ハウジング
303  計算装置
315  コンピュータ可読記憶装置
317A〜C  仮想装置プログラムコード、仮想装置
339  プロセッサ
341  メモリ装置
343  I／Oインタフェース
344  通信路
351  仮想化アプリケーション
400  例示的プロセス
【図１】
2019185749.tif 000003
【図２】
2019185749.tif 000004
【図３】
2019185749.tif 000005
【図４】
2019185749.tif 000006
【外国語明細書】
2019185749000001.pdf