(57)【要約】      （修正有）【課題】既存の制御システム・ソフトウェアを更新または置換するために使用されるソフトウェアの真正性を保証する。【解決手段】ビークルは、プロセッサにより実行可能な命令を格納するメモリを含む少なくとも１つのプログラム可能コンピューティング・デバイスと、ロード可能ソフトウェア部品に基づいて命令を修正または置換するするソフトウェア・ローダと、データ・インタフェースおよびロード可能ソフトウェア部品メモリと、データ・インタフェース、ロード可能ソフトウェア部品メモリおよびソフトウェア・ローダに接続されたスイッチとを含む。スイッチが第１の位置にある間に、データ・インタフェースとロード可能ソフトウェア部品メモリの間の第１のデータ経路が有効にされ、第２のデータ経路が無効にされる。スイッチが第２の位置にある間に、第２のデータ経路が有効にされ、第１のデータ経路が無効にされる。【選択図】図１
2017151956.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより実行可能な命令を格納するように構成されたメモリを備えた少なくとも１つのプログラム可能コンピューティング・デバイスと、
ロード可能ソフトウェア部品に基づいて前記命令を修正または置換するするように構成されたソフトウェア・ローダと、
データ・インタフェースと、
ロード可能ソフトウェア部品メモリと、
スイッチであって、
前記スイッチが第１の位置にある間に、前記データ・インタフェースと前記ロード可能ソフトウェア部品メモリの間の第１のデータ経路が有効にされ、前記ロード可能ソフトウェア部品メモリと前記ソフトウェア・ローダの間の第２のデータ経路が無効にされ、
前記スイッチが第２の位置にある間に、前記第２のデータ経路が有効にされ、前記第１のデータ経路が無効にされる
ように、前記データ・インタフェースと、前記ロード可能ソフトウェア部品メモリと、前記ソフトウェア・ローダとに接続されたスイッチと、
を備える、ビークル。
【請求項２】
前記ビークルは航空機であり、前記少なくとも１つのプログラム可能コンピューティング・デバイスは前記航空機のライン置換可能ユニットのコンポーネントである、請求項１に記載のビークル。
【請求項３】
前記スイッチは、手動の起動を介して前記第１の位置と前記第２の位置の間で移動するように動作可能な機械コンポーネントを備える、請求項１に記載のビークル。
【請求項４】
前記スイッチは、前記スイッチが前記第２の位置に配置されたことに応答してデータ・ロード有効信号を前記ソフトウェア・ローダに送信させるように構成される、請求項１に記載のビークル。
【請求項５】
第１のデータ経路は第１のデータ・バスに対応し、前記第２のデータ経路は第２のデータ・バスに対応する、請求項１に記載のビークル。
【請求項６】
前記スイッチが前記第１の位置にある間に、特定のロード可能ソフトウェア部品に対応するデータを前記データ・インタフェースから受信し、前記データを前記ロード可能ソフトウェア部品メモリに格納するように構成されたロード可能ソフトウェア部品メモリ・コントローラをさらに備える、請求項１に記載のビークル。
【請求項７】
前記スイッチが前記第１の位置にある間に、前記データは前記ソフトウェア・ローダにアクセス可能でない、請求項６に記載のビークル。
【請求項８】
前記ロード可能ソフトウェア部品メモリ・コントローラはさらに、前記スイッチが前記第２の位置にある間に、前記データを前記ロード可能ソフトウェア部品メモリから取り出し、前記第２のデータ経路を介して前記データを前記ソフトウェア・ローダに送信するように構成される、請求項６に記載のビークル。
【請求項９】
前記データ・インタフェースに接続された装置は前記ロード可能ソフトウェア部品メモリにアクセス可能ではなく、前記スイッチが前記第２の位置にある間に前記ロード可能ソフトウェア部品メモリ・コントローラと通信可能ではない、請求項８に記載のビークル。
【請求項１０】
前記ソフトウェア・ローダは前記データのセキュリティ・チェックを実施するように構成される、請求項８に記載のビークル。
【請求項１１】
前記ソフトウェア・ローダはさらに、前記データを使用して、前記データが前記セキュリティ・チェックを通過すると判定することを必要とする前記命令を修正または置換するように構成される、請求項１０に記載のビークル。
【請求項１２】
前記スイッチが前記第１の位置にある間に、前記データ・インタフェースに接続された装置が前記ロード可能ソフトウェア部品メモリに対する書込みアクセスを有し、前記スイッチが前記第２の位置にある間に、前記ソフトウェア・ローダが前記ロード可能ソフトウェア部品メモリに対する読取り専用アクセスを有する、請求項１に記載のビークル。
【請求項１３】
ビークルのスイッチが第１の位置にある間に、
前記ビークルの第１のデータ・インタフェースと前記ビークルのロード可能ソフトウェア部品メモリの間の第１のデータ経路を介して、ロード可能ソフトウェア部品に対応するデータを受信するステップであって、前記スイッチが前記第１の位置にある間に前記ビークルの前記ロード可能ソフトウェア部品メモリとソフトウェア・ローダの間の第２のデータ経路が無効にされる、ステップと、
前記データを前記ロード可能ソフトウェア部品メモリに格納するステップと、
前記スイッチが第２の位置にある間に、前記第２のデータ経路を介して前記データを前記ソフトウェア・ローダに送信するステップであって、前記スイッチが前記第２の位置にある間に、前記第１のデータ経路が無効にされる、ステップと、
を含む、方法。
【請求項１４】
前記データを前記ソフトウェア・ローダに送信した後、整合性チェックを前記データに実施し、前記データが前記整合性チェックを満たすとき、前記データに基づいて前記ビークルのライン置換可能ユニットのメモリに格納された命令を修正または置換するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記スイッチは、ソフトウェア・ロード動作を可能とするために手動の起動を介して前記第１の位置と前記第２の位置の間で移動される前記ビークルの機械コンポーネントを備える、請求項１３に記載の方法。
【請求項１６】
前記スイッチが前記第２の位置に配置されたことに応答してデータ・ロード有効信号を前記ソフトウェア・ローダに送信するステップをさらに含む、請求項１３に記載の方法。
【請求項１７】
前記ソフトウェア・ローダが前記ロード可能ソフトウェア部品をライン置換可能ユニットに提供した後、前記ロード可能ソフトウェア部品が前記ビークルの第２のデータ・インタフェースを介してインストールされたとの肯定応答を、コンピューティング・デバイスに送信するステップをさらに含む、請求項１３に記載の方法。
【請求項１８】
複数のデータ・パケットをコンピューティング・デバイスから前記ビークルの第２のデータ・インタフェースを介して受信するステップであって、前記第２のデータ・インタフェースは前記第１のデータ・インタフェースと異なる、ステップと、
前記複数のデータ・パケットのパケット分析を前記ビークルのネットワーク・ガード装置で実施するステップと、
前記複数のデータ・パケットの１つまたは複数のデータ・パケットを、前記１つまたは複数の前記データ・パケットが前記パケット分析を満たすことを必要とする前記ネットワーク・ガード装置からライン置換可能ユニットに送信するステップと、
をさらに含む、請求項１３に記載の方法。
【請求項１９】
前記パケット分析は、前記複数のデータ・パケットが実行可能命令を含むかどうかを判定するための前記複数のデータ・パケットのディープ・パケット検査を含む、請求項１８に記載の方法。
【請求項２０】
前記１つまたは複数のデータ・パケットの各々が期待されるフォーマットまたは期待されるペイロード・タイプのうち少なくとも１つを有するとき、前記１つまたは複数のデータ・パケットが前記パケット分析を満たす、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にソフトウェアの通信に関する。
【背景技術】
【０００２】
技術の改善が、航空機、自動車、船舶等のようなビークルに搭載されたますます多くのコンピュータ化されたシステムにつながった。特定の制御システムが、コンピューティング・システムの利用を通じた自動化により改善されている。技術が改善され続けると、かかるコンピューティング・システムに搭載されたソフトウェアが更新または置換されるかもしれない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ビークル内のかかるコンピューティング・システムの重要性のため、既存の制御システム・ソフトウェアを更新または置換するために使用されるソフトウェアの真正性を保証することが重要である。
【課題を解決するための手段】
【０００４】
特定の実装では、ビークルは、プロセッサにより実行可能な命令を格納するように構成されたメモリを含む少なくとも１つのプログラム可能コンピューティング・デバイスを備える。ビークルはまた、ロード可能ソフトウェア部品に基づいて当該命令を修正または置換するするように構成されたソフトウェア・ローダを備える。ビークルは、データ・インタフェースおよびロード可能ソフトウェア部品メモリを含む。ビークルはさらに、当該データ・インタフェース、当該ロード可能ソフトウェア部品メモリ、およびソフトウェア・ローダに接続されたスイッチを備える。当該スイッチが第１の位置にある間に、当該データ・インタフェースと当該ロード可能ソフトウェア部品メモリの間の第１のデータ経路が有効にされ、当該ロード可能ソフトウェア部品メモリと当該ソフトウェア・ローダの間の第２のデータ経路が無効にされる。当該スイッチが第２の位置にある間に、第２のデータ経路が有効にされ、第１のデータ経路が無効にされる
【０００５】
別の特定の実装では、方法は、ビークルのスイッチが第１の位置にある間に、ビークルの第１のデータ・インタフェースとビークルのロード可能ソフトウェア部品メモリの間の第１のデータ経路を介して、ロード可能ソフトウェア部品に対応するデータを受信するステップを含む。当該スイッチが第１の位置にある間に、ビークルの当該ロード可能ソフトウェア部品メモリとソフトウェア・ローダの間の第２のデータ経路が無効にされる。当該方法はまた、ビークルのスイッチが第１の位置にある間に、当該データを当該ロード可能ソフトウェア部品メモリに格納するステップを含む。当該方法はさらに、当該スイッチが第２の位置にある間に、第２のデータ経路を介して当該データを当該ソフトウェア・ローダに送信するステップを含む。当該スイッチが第２の位置にある間に、第１のデータ経路が無効にされる。
【０００６】
説明した特徴、機能、および利点を様々な実装において独立に実現してもよく、または、さらに他の実装において結合してもよく、そのさらなる詳細を、以下の説明および図面を参照して開示する。
【図面の簡単な説明】
【０００７】
【図１】ソフトウェア配送に対するシステムの第１の構成を示す図である。
【図２】ソフトウェア配送に対する当該システムの第２の構成を示す図である。
【図３】ソフトウェアと通信する方法の１例の流れ図である。
【図４】ソフトウェア配送に対するシステムを動作させる方法の１例の流れ図である。
【図５】ソフトウェア配送に対するシステムのコンポーネントを備えたビークルの例示的な実装のブロック図である。
【発明を実施するための形態】
【０００８】
本明細書で開示する実装は、ビークル上のプログラム可能コンピューティング・デバイスのソフトウェアの更新（例えば、新たなソフトウェアの追加）、フィックス（例えば、既存のソフトウェアの修正）、または置換のための改善されたソフトウェア・セキュリティを可能とする。本明細書で使用する際、ソフトウェア部品が、プログラム可能コンピューティング・デバイスにより実行可能なソフトウェアの一部または全体を指してもよい。特に、本明細書で説明する１つまたは複数のシステムは、ビークル上のスイッチ可能ソフトウェア・メモリ（例えば、スイッチに接続されたソフトウェア・メモリ）を含む。例えば、スイッチが第１の位置にある間に、ソフトウェア・メモリがインタフェースを介して外部システムにアクセス可能であってもよい。例示すると、データ（例えば、ソフトウェア部品）を、スイッチが第１の位置にある間に当該インタフェースを介して外部システムから受信し、ソフトウェア・メモリに格納することができる。ソフトウェア・メモリがビークル上のソフトウェア・ローダにアクセス可能であってもよく、スイッチが第２の位置にある間に当該インタフェースを介してアクセス可能でなくてもよい。したがって、スイッチが第２の位置にある間にソフトウェア・ローダがソフトウェア・メモリのデータにアクセスしてもよいが、ソフトウェア・メモリは当該インタフェースを介して他のデータを受信することができない。
【０００９】
ソフトウェア・ローダで受信されたソフトウェア部品が、プログラム可能コンピューティング・デバイスに提供される前にソフトウェア・ローダにより検査されてもよい。例えば、ソフトウェア・ローダをセキュリティ・チェック（例えば、整合性チェックまたはデジタル署名チェック）を用いてソフトウェア部品を検査するように構成してもよい。例示すると、ソフトウェア・ローダが、１つまたは複数のセキュリティ・チェックをソフトウェア・メモリからのデータに実施して、データ（例えば、ソフトウェア部品）の整合性、真正性、またはそれらの組合せをチェック（または試験）してもよい。データの部分が検証されると、または、データの全てがソフトウェア・ローダにより検証された後に、ソフトウェア・ローダが、ビークルに搭載されたプログラム可能コンピューティング・デバイスにインストールすべき検証されたデータを提供して、プログラム可能コンピューティング・デバイスの既存のソフトウェアを更新、フィックス、または置換してもよい。したがって、スイッチ可能ソフトウェア・メモリ（例えば、スイッチおよびソフトウェア・メモリ）は、データの全て（例えば、全体のソフトウェア部品）を格納するのに十分な容量を有するバッファのような記憶部をソフトウェア・ローダが有することを必要とせずに、ソフトウェア・ローダがセキュリティ・チェックを実施できるようにする。さらに、スイッチ可能ソフトウェア・メモリが、並列な動作に関連付けられた読取り／書込みの競合条件および危険を緩和してもよい。例示すると、スイッチ可能ソフトウェア・メモリが、セキュリティ・チェックを実施するためにソフトウェア・ローダが当該メモリから読み取るのと同時にソフトウェア部品をビークルに提供しようとする（例えば、メモリに書き込む）外部システムにアクセス可能としないことによって、並列な読書き動作を防止してもよい。したがって、スイッチ可能ソフトウェア・メモリが並列な読書き動作を可能としなくてもよく、並列な読書き動作から生じうるデータ破壊を防止する。
【００１０】
さらにまたはあるいは、ビークルが、非ソフトウェア・データ・パケットのような非ソフトウェア・データを検査しフィルタするように構成できるネットワーク・ガードを備えてもよい。ソフトウェア・データ・パケットが、ソフトウェア変動のため検査可能なフォーマットを有しなくてもよい。ソフトウェア変動は、非ソフトウェア・データ・パケットと比べてソフトウェア・データ・パケットの検査およびフィルタをより難しくするかもしれない。ネットワーク・ガードが、プログラム可能コンピューティング・デバイスのようなビークルの１つまたは複数の装置に非ソフトウェア・データが配送されるのを承認してもよい。
【００１１】
幾つかの実装では、スイッチ可能ソフトウェア・メモリが、データを外部システム（例えば、ビークル外のシステム）から第１のポートを介して受信してもよく、ネットワーク・ガードが、異なるポートを介して第２の外部システムと通信してもよい。他の実装では、ネットワーク・ガード１３４が、第１のポートを介して第２の外部システムと通信してもよい。したがって、ビークルと外部システムの間のデータ通信を、非ソフトウェア・データ・パケットを検査しフィルタするように構成できるネットワーク・ガードを介して実施することができる。したがって、ソフトウェア部品が、データ通信に使用されるポートと異なるポートを介して送信されてもよく、プログラム可能コンピューティング・デバイスにインストールされる前に検査されてもよい。
【００１２】
図１は、ビークル１０２を含むシステム１００の１例を示す。ビークル１０２が、ソフトウェアおよび／またはデータを１つまたは複数の外部システム、１つまたは複数の内部システム、またはそれらの組合せから受信してもよい。システム１００の特定の実装では、ビークル１０２が、例示的な非限定的な例として、航空機、自動車、列車、オートバイ、バス、船舶またはボート、ロケット、宇宙船、自律ビークル、または別のビークルを含むかまたはそれに対応してもよい。
【００１３】
ビークル１０２は、プログラム可能コンピューティング・デバイス１４０、ソフトウェア・ローダ１５０、スイッチ１２４、ロード可能ソフトウェア部品メモリ１２６、および第１のデータ・インタフェース１２０を備える。ビークル１０２がまた、ネットワーク・ガード１３４および第２のデータ・インタフェース１３０を備えてもよい。ビークル１０２がネットワーク・ガード１３４および第２のデータ・インタフェース１３０を含むとして示すが、他の実装ではネットワーク・ガード１３４および第２のデータ・インタフェース１３０を省略してもよい。
【００１４】
プログラム可能コンピューティング・デバイス１４０が、プロセッサ１４２およびメモリ１４４を備えてもよい。メモリ１４４が、プログラム可能コンピューティング・デバイス１４０の様々な動作を実施するようにプロセッサ１４２により実行可能な命令１４６（例えば、ソフトウェア部品）を格納してもよい。例えば、当該動作が、例示的な非限定的な例として、ビークル制御動作、ビークル監視または分析動作、通信動作、ビークル・サブシステム監視または分析動作、緊急動作、またはそれらの組合せを含んでもよい。プログラム可能コンピューティング・デバイス１４０が、ビークル１０２のライン置換可能ユニット（ＬＲＵ）またはＬＲＵのコンポーネントを含むかまたはそれに対応してもよい。当該ＬＲＵが、ビークル１０２のモジュール式の、置換可能なハードウェア・コンポーネントであってもよい。例えば、ＬＲＵが、例示的な非限定的な例として、飛行管理システム、トランスポンダ、エンジン・コンポーネント、センサ、またはそれらの組合せを含むかまたはそれに対応してもよい。
【００１５】
プログラム可能コンピューティング・デバイス１４０を、第１のバス１４８を介してソフトウェア・ローダ１５０に接続してもよく、第２のバス１３６を介してネットワーク・ガード１３４に接続してもよい。プログラム可能コンピューティング・デバイス１４０を、ソフトウェア部品のようなデータ（例えば、データ１７０）を、第１のデータ・インタフェース１２０を介して第１のシステムの第１の外部装置から受信するように構成してもよく、データ・パケット（例えば、データ・パケット１８０）を、第２のデータ・インタフェース１３０を介して第２のシステムの第２の外部装置から受信するように構成してもよい。第１の外部装置および第２の外部装置が、本明細書でさらに説明するように、同一の装置または異なる装置であってもよい。さらに、第１のシステムおよび第２のシステムが、同一のシステムまたは異なるシステムであってもよい。
【００１６】
ソフトウェア・ローダ１５０をまた、第３のバス１２８を介してスイッチ１２４に接続してもよい。ソフトウェア・ローダ１５０を、第３のバス１２８を介してデータにアクセスし当該データを検査するように構成してもよい。ソフトウェア・ローダ１５０を、プログラム可能コンピューティング・デバイス１４０のメモリ１４４にインストールすべきデータを、第１のバス１４８を介して提供するように構成してもよい。例えば、ソフトウェア・ローダ１５０が、図２を参照してさらに説明するように、第１のバス１４８を介して、ロード可能ソフトウェア部品メモリ１２６に格納されたデータ（例えば、データ１７０）に基づいて命令１４６を更新、フィックス、または置き換えてもよい。
【００１７】
スイッチ１２４を、ロード可能ソフトウェア部品メモリ１２６に第４のバス１２９を介して接続してもよく、第１のデータ・インタフェース１２０に第５のバス１２２を介して接続してもよい。スイッチ１２４が、受信ソフトウェア位置（例えば、第１の位置）およびロード・ソフトウェア位置（例えば、第２の位置）のような複数の位置の間で切替可能であってもよい。スイッチ１２４を、ロード可能ソフトウェア部品メモリ１２６をソフトウェア・ローダ１５０または第１のデータ・インタフェース１２０のうち１つに選択的に接続するように構成してもよい。例えば、スイッチ１２４が受信ソフトウェア位置にある間に、第１のデータ経路１６４は、第１のデータ・インタフェース１２０とロード可能ソフトウェア部品メモリ１２６の間で提供される（例えば、有効にされる）。したがって、第１のデータ・インタフェース１２０でまたは第１のデータ・インタフェース１２０を介して外部システムから受信されたデータ１７０を、第１のデータ経路１６４を介してロード可能ソフトウェア部品メモリ１２６に提供してもよい。第１のデータ・インタフェース１２０が、ハードウェア・インタフェース、ソフトウェア・インタフェース、またはそれらの組合せを含むかまたはそれに対応してもよい。さらに、スイッチ１２４が受信ソフトウェア位置にある間に、ロード可能ソフトウェア部品メモリ１２６からソフトウェア・ローダ１５０への第２のデータ経路１６６が無効にされる。したがって、スイッチ１２４が受信ソフトウェア位置にある間に、ソフトウェア・ローダ１５０が、ロード可能ソフトウェア部品メモリ１２６にあるデータ１７０にアクセスできないようにしてもよい。図２を参照して説明するように、ソフトウェア・ローダ１５０が、スイッチ１２４がロード・ソフトウェア位置にある間に、ロード可能ソフトウェア部品メモリ１２６にあるデータ１７０にアクセスすることを可能としてもよい。
【００１８】
スイッチ１２４が、ビークル１０２に配置されてもよく、許可された人員（例えば、保守員）にアクセス可能であり、許可されていない人員にはアクセス可能でなくてもよい。例えば、スイッチ１２４を、ビークル１０２のコックピット内に、ビークル１０２の外壁に、またはビークル１０２の保守領域内に配置してもよい。さらに、スイッチ１２４が、ビークル１０２の客室のような一般大衆または乗客にアクセス可能なビークル１０２の部分に配置されなくてもよい。幾つかの実装では、スイッチ１２４を制限区域に固定するか、または、配置してもよい。例えば、スイッチ１２４が鍵またはパスコードなしにはアクセス可能でなくてもよく、または、スイッチ１２４が配置されたビークル１０２の領域が、当該鍵または当該パスコードなしにアクセス可能でなくてもよい。
【００１９】
スイッチ１２４を（例えば、物理的にかつソフトウェアと独立に）手動で動作してもよい。位置インジケータ１６２により示されるように、受信ソフトウェア位置（例えば、第１の位置）が図１に示されている。図１に示す特定の実装では、スイッチ１２４が回転可能ダイヤル１６０を含んでもよい。回転可能ダイヤル１６０を、受信ソフトウェア位置（例えば、第１の位置）とロード・ソフトウェア位置（例えば、第２の位置）の間で、手動で操作してもよい。図１ではスイッチ１２４が回転可能ダイヤル１６０を含むとして示すが、スイッチ１２４が、トグル・スイッチまたはプッシュボタン・スイッチのような手動の２つの位置のスイッチを含むかまたはそれに対応してもよい。特定の実装では、スイッチ１２４が、手動の起動を介して第１の位置と第２の位置の間で移動するように動作可能な機械コンポーネントを備えてもよい。
【００２０】
さらに、故障（例えば、短絡または電力損失）があった場合、スイッチ１２４が不動であってもよく、複数の位置の間での切替えを防止してもよい。したがって、スイッチ１２４が修復または置換されるまで、ソフトウェア部品が、ロード可能ソフトウェア部品メモリ１２６に格納されず、プログラム可能コンピューティング・デバイスにロードされなくてもよい。幾つかの実装では、スイッチ１２４が損傷または細工された場合には、スイッチ１２４を受信ソフトウェア位置またはロード・ソフトウェア位置のようなデフォルトの位置に戻してもよい。例えば、スイッチ１２４が密閉されてもよく、スイッチ１２４の密閉がそのままであるかまたは侵害されていないかどうかをチェックするための回路を備えてもよい。密閉が壊れているかまたは侵害されている場合には、スイッチ１２４をデフォルトの位置に戻してもよい。例示すると、密閉が壊れているかまたは侵害されていると検出したことに応答して、スイッチ１２４を受信ソフトウェア位置に戻してもよい。
【００２１】
ロード可能ソフトウェア部品メモリ１２６を、データを格納するように構成してもよい。ロード可能ソフトウェア部品メモリ１２６が、揮発性メモリ、不揮発性メモリ、またはそれらの組合せを含むかまたはそれに対応してもよい。特定の実装では、ロード可能ソフトウェア部品メモリ１２６が、記憶装置を含むかまたはそれに対応してもよい。スイッチ１２４が受信ソフトウェア位置（例えば、第１の位置）にある間に、ロード可能ソフトウェア部品メモリ１２６がデータ１７０を受信してもよい。特定の実装では、ロード可能ソフトウェア部品メモリ１２６は、スイッチ１２４がロード・ソフトウェア位置（例えば、第２の位置）にある間には、データを受信することができない。幾つかの実装では、ロード可能ソフトウェア部品メモリ１２６が、ロード可能ソフトウェア部品メモリ・コントローラ１８８のようなコントローラを含んでもよい。ロード可能ソフトウェア部品メモリ・コントローラ１８８を、ロード可能ソフトウェア部品メモリ１２６を制御するように構成してもよい。例えば、ロード可能ソフトウェア部品メモリ・コントローラ１８８を、ロード可能ソフトウェア部品メモリ１２６でデータを受信し、データを格納し、データを消去し、そこからデータを送信するように構成してもよい。ロード可能ソフトウェア部品メモリ１２６を単一のメモリとして示すが、ロード可能ソフトウェア部品メモリ１２６が複数のメモリを含んでもよい。
【００２２】
第１のデータ・インタフェース１２０をビークル１０２に配置してもよい。特定の実装では、第１のデータ・インタフェース１２０をビークル１０２の安全な領域に配置してもよい。別の実装では、第１のデータ・インタフェースをビークル１０２の安全でない領域に配置してもよい。第１のデータ・インタフェース１２０（例えば、第１のポート）を、配布エンドポイント１０４に接続１１０を介して接続されるように構成してもよい。例えば、接続１１０が、有線接続、無線接続、またはそれらの組合せを含んでもよい。例示的な非限定的な例として、接続１１０が、Ｗｉ−Ｆｉ接続、ＵＳＢ接続、イーサネット（登録商標）接続、米国電気電子技術者協会（ＩＥＥＥ）１３９４接続（例えば、ファイア・ワイヤ接続）、モバイルアドホックネットワーク（ＭＡＮＥＴ）接続、光接続、またはそれらの組合せのうち１つまたは複数を含んでもよい。
【００２３】
第１のデータ・インタフェース１２０を、１つまたは複数の外部システム、１つまたは複数の内部システム、またはそれらの組合せからデータを受信し、当該データをロード可能ソフトウェア部品メモリ１２６に提供するように構成してもよい。例えば、スイッチ１２４が受信ソフトウェア位置にある間に、第１のデータ・インタフェース１２０が、データ１７０を配布エンドポイント１０４から受信してもよく、データ１７０をロード可能ソフトウェア部品メモリ１２６に提供してもよい。
【００２４】
配布エンドポイント１０４が図１のビークル１０２の外部にあるとして示すが、幾つかの実装では配布エンドポイント１０４をビークル１０２に配置してもよい。例示的な非限定的な例として、配布エンドポイント１０４が、コンピュータ、ルータ、またはゲートウェイを含むかまたはそれに対応してもよい。配布エンドポイント１０４が、１つまたは複数の外部システム（例えば、ＩＴシステム１１２）、１つまたは複数の内部システムから受信されるか、ポート（図示せず）を介して直接受信されるか、またはそれらの組合せにより受信されたデータ（例えば、データ１７０）を格納するように構成されたメモリ１０６を備えてもよい。メモリ１０６が、揮発性メモリ、不揮発性メモリ、またはそれらの組合せを含むかまたはそれに対応してもよい。メモリ１０６を単一のメモリとして示すが、メモリ１０６が複数のメモリを含んでもよい。幾つかの実装では、配布エンドポイント１０４を、デジタル署名チェックのようなセキュリティ・チェックをメモリ１０６に格納されたデータに実施するように構成してもよい。
【００２５】
当該配布エンドポイントを、接続１０８を介してＩＴシステム１１２（例えば、ＩＴシステム１１２の装置）に接続してもよい。接続１０８が、有線接続、無線接続、またはそれらの組合せであってもよい。例えば、接続１０８が、例示的な非限定的な例として、Ｗｉ−Ｆｉ接続、ＵＳＢ接続、イーサネット（登録商標）接続、ＩＥＥＥ１３９４接続（例えば、ファイア・ワイヤ接続）、ＭＡＮＥＴ接続、光接続、またはそれらの組合せであってもよい。配布エンドポイント１０４がインターネットのような広域ネットワーク（ＷＡＮ）を介してＩＴシステム１１２からデータ（例えば、データ１７０）を抽出（または受信）してもよい。別の例として、配布エンドポイント１０４が、モバイルインターネットプロトコル（ＭＩＰ）ネットワーク、ＭＡＮＥＴ、ローカル・エリア・ネットワーク（ＬＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、または航空電気通信ネットワーク（ＡＴＮ）を介して、ＩＴシステム１１２からデータを抽出（または受信）してもよい。したがって、ＩＴシステム１１２が、ビークル１０２に近くてもよく、または、ビークル１０２から離れていてもよい。
【００２６】
ネットワーク・ガード１３４を、プログラム可能コンピューティング・デバイス１４０および第２のデータ・インタフェース１３０（例えば、第２のポート）に接続してもよい。例えば、ネットワーク・ガード１３４を、第２のバス１３６を介してプログラム可能コンピューティング・デバイス１４０に接続してもよい。さらに、図１に示す例では、ネットワーク・ガード１３４は、第６のバス１３２を介して第２のデータ・インタフェース１３０に接続される。ネットワーク・ガード１３４が、プログラム可能コンピューティング・デバイス１４０のようなビークル１０２のシステムがデータ・パケット１８０のようなデータ・パケットを介して１つまたは複数の外部システムと通信できるようにしてもよい。ネットワーク・ガード１３４が、ファイアウォール１８２、ディープ・パケット検査モジュール１８４のような検査モジュール、またはそれらの組合せを含んでもよい。
【００２７】
ネットワーク・ガード１３４を、ビークル１０２の外から受信されたデータ・パケット１８０を検査するように構成してもよい。データ・パケット１８０の例が、例示的な非限定的な例として、ビークル１０２のステータスレポートに関連付けられたデータ・パケット、ビークル１０２の器具に関連付けられたデータ・パケット、またはビークル１０２との通信に関連付けられたデータ・パケット、またはそれらの組合せを含んでもよい。幾つかの実装では、ネットワーク・ガード１３４が、データ・パケット１８０を検証して、データ・パケット１８０がネットワーク・ガード１３４のメモリ（図示せず）に格納された様々な基準を満たすかどうかを判定してもよい。例示的な非限定的な例として、当該基準が、データ・パケット１８０が実行可能データを含むかどうか、データ・パケット１８０が承認された送信者またはソースに関連付けられるかどうか、またはデータ・パケット１８０が承認されたフォーマットを有するかどうかを含んでもよい。例えば、ネットワーク・ガード１３４が、データ・パケット１８０の１つまたは複数のヘッダを検査して、データ・パケット１８０が基準を満たすかどうかを判定してもよい。例示すると、ネットワーク・ガード１３４を、データ・パケット１８０の１つまたは複数のヘッダ（またはデータ・パケット１８０の一部）を検査し、データ・パケット１８０に関連付けられたソースインターネットプロトコル（ＩＰ）アドレスを特定するように構成してもよい。ネットワーク・ガード１３４が、データ・パケット１８０を承認する前に、当該ソースＩＰアドレスが（ネットワーク・ガード１３４のメモリに格納された）信頼または検証されたＩＰアドレスのリストと一致するかどうかを判定してもよい。
【００２８】
さらにまたはあるいは、ネットワーク・ガード１３４が、ディープ・パケット検査を実施し、非互換プロトコルまたはマルウェア（例えば、コンピュータウィルス）に関してデータ・パケット１８０のデータを検査してもよい。例示すると、ディープ・パケット検査モジュール１８４が、ネットワーク・ガード１３４のメモリに格納された基準を用いて、データ・パケット１８０のデータを検査し、任意の古いプロトコル、実行可能データ、マルウェア、またはそれらの組合せを特定してもよい。ネットワーク・ガード１３４が、当該格納された基準の１つまたは複数に従うデータを含まないデータ・パケットを承認してもよい。
【００２９】
ネットワーク・ガード１３４が、承認されたデータ・パケット１８６を、プログラム可能コンピューティング・デバイス１４０のようなビークル１０２のシステムに提供してもよい。例えば、ネットワーク・ガード１３４が、当該承認されたデータ・パケット１８６をプログラム可能コンピューティング・デバイス１４０に提供してもよい。したがって、ネットワーク・ガード１３４が、ビークル１０２のコンポーネント（例えば、プログラム可能コンピューティング・デバイス）に、第２のデータ・インタフェース１３０を介して１つまたは複数の外部システムから受信された当該承認されたデータ・パケット１８６を提供してもよい。ネットワーク・ガード１３４が、ファイアウォール１８２またはディープ・パケット検査モジュール１８４にあるソフトウェアをブロックする（例えば、ソフトウェア・データ・パケットを承認しない）ことによって、第２のデータ・インタフェース１３０を介してインストールするためのソフトウェアをプログラム可能コンピューティング・デバイス１４０に提供しなくてもよい。
【００３０】
第２のデータ・インタフェース１３０をビークル１０２に配置してもよい。特定の実装では、第２のデータ・インタフェース１３０を、ビークル１０２の安全な領域に配置してもよい。第２のデータ・インタフェース１３０を、データを１つまたは複数の外部システム、１つまたは複数の内部システム、またはそれらの組合せから受信して、データをネットワーク・ガード１３４に提供するように構成してもよい。例えば、第２のデータ・インタフェース１３０が、データ・パケット１８０をＩＴシステム１１２（例えば、航空交通管理システム）から受信し、データ・パケット１８０をネットワーク・ガード１３４に提供してもよい。
【００３１】
第２のデータ・インタフェース１３０を、接続１１４を介してＩＴシステム１１２に接続してもよい。接続１１４が有線接続、無線接続、またはそれらの組合せであってもよい。例えば、接続１１４が、例示的な非限定的な例として、Ｗｉ−Ｆｉ接続、ＵＳＢ接続、イーサネット（登録商標）接続、ＩＥＥＥ１３９４接続（例えば、ファイア・ワイヤ接続）、ＭＡＮＥＴ接続、光接続、またはそれらの組合せであってもよい。ＩＴシステム１１２が、第２のデータ・インタフェース１３０を介してデータ・パケット１８０をネットワーク・ガード１３４に送信することを可能としてもよい。特定の実装では、ＩＴシステム１１２は、データをビークル１０２から受信したことに応答してデータ・パケット１８０を送信する。
【００３２】
したがって、ビークル１０２を、直接（例えば、第２のデータ・インタフェース１３０への接続１１４を介して）、配布エンドポイント１０４を介して（例えば、第１のデータ・インタフェース１２０への接続１１０を介して）、またはそれらの組合せにより、ＩＴシステム１１２に接続してもよい。
【００３３】
システム１００が、第１のデータ・インタフェース１２０に接続された配布エンドポイント１０４を有し、第２のデータ・インタフェース１３０に接続されたＩＴシステム１１２を有するとして示すが、第１のデータ・インタフェース１２０および第２のデータ・インタフェース１３０を、配布エンドポイント１０４、ＩＴシステム１１２、別のシステム、またはそれらの組合せに接続してもよい。例えば、ＩＴシステム１１２を、配布エンドポイント１０４と独立に第１のデータ・インタフェース１２０に接続してもよい。幾つかの実装では、ＩＴシステム１１２（または配布エンドポイント１０４）を、データを第１のデータ・インタフェース１２０にルーティングするか、または、ソフトウェア・データまたは通信データのような或る種のデータに基づいて第２のデータ・インタフェース１３０にルーティングするように構成してもよい。特定の実装では、配布エンドポイント１０４が、ＩＴシステム１１２の一部であってもよい（か、または、ＩＴシステム１１２に含まれてもよい）。したがって、ビークル１０２が、１つまたは複数の外部システム、１つまたは複数の内部システム、またはそれらの組合せから、第１のデータ・インタフェース１２０、第２のデータ・インタフェース１３０、またはそれらの組合せを介してデータを受信してもよい。幾つかの実装では、第１のデータ・インタフェース１２０および第２のデータ・インタフェース１３０が単一のインタフェースであってもよい。例えば、ネットワーク・ガード１３４を当該単一のインタフェースに接続してもよく、ソフトウェア・データをロード可能ソフトウェア部品メモリ１２６にルーティングするように構成してもよい。別の例として、ルーティング装置（図示せず）を当該単一のインタフェースに接続してもよく、ソフトウェア・データをロード可能ソフトウェア部品メモリ１２６にルーティングし、通信データをネットワーク・ガード１３４にルーティングするように構成してもよい。
【００３４】
システム１００の動作中、スイッチ１２４が受信ソフトウェア位置に設定されてもよい。ＩＴシステム１１２が、接続１０８を介してデータ１７０を配布エンドポイント１０４に送信してもよい。配布エンドポイント１０４が、接続１１０を介してデータ１７０を第１のデータ・インタフェース１２０にルーティングまたは転送してもよい。幾つかの実装では、配布エンドポイント１０４が、データ１７０をロード可能ソフトウェア部品メモリ１２６に提供する前に、デジタル署名チェックをデータ１７０に実施してもよい。特定の実装では、配布エンドポイント１０４が、データ１７０を受信したことに応答してデータ１７０を転送またはルーティングしてもよい。他の実装では、配布エンドポイント１０４が、フラッシュ・ドライブを介してのように、ポートまたは接続を介してデータを直接受信してもよい。
【００３５】
スイッチ１２４が受信ソフトウェア位置に設定される間に、第１のデータ経路１６４が有効にされ、ロード可能ソフトウェア部品メモリ１２６が、第５のバス１２２を介して第１のデータ・インタフェース１２０から受信したデータ１７０を格納してもよい。スイッチ１２４が受信ソフトウェア位置に設定されるので、第２のデータ経路１６６が無効にされる（例えば、データがロード可能ソフトウェア部品メモリ１２６からソフトウェア・ローダ１５０に提供されないかもしれない）。
【００３６】
スイッチ１２４の位置と無関係または独立に、ＩＴシステム１１２が、データ・パケット１８０をプログラム可能コンピューティング・デバイス１４０に通信してもよい。ネットワーク・ガード１３４が、データ・パケット１８０がセキュリティ・チェックを満たすかどうかを判定してもよい。例えば、ネットワーク・ガード１３４がファイアウォール１８２を用いてデータ・パケット（複数可）１８０をフィルタしてもよく、ディープ・パケット検査モジュール１８４を用いてディープ・パケット検査をデータ・パケット１８０に実施してもよく、またはその両方であってもよい。ネットワーク・ガード１３４が、セキュリティ・チェックを通過したデータ・パケット（複数可）１８０を承認してもよく、承認されたデータ・パケット１８６をプログラム可能コンピューティング・デバイス１４０に提供してもよい。
【００３７】
幾つかの実装では、データ経路（例えば、第１のデータ経路１６４または第２のデータ経路１６６）が有効にされ、データ転送がアクティブである間に、スイッチ１２４が第１の位置から第２の位置に移動したときデータ転送が切断される。例えば、データ１７０が配布エンドポイント１０４からロード可能ソフトウェア部品メモリ１２６に転送されている間にスイッチ１２４が受信ソフトウェア位置からロード・ソフトウェア位置に移動すると、第１のデータ経路１６４が無効にされ、データ１７０の転送が終了する。データ１７０の転送が完了前に停止しうるので、ロード可能ソフトウェア部品メモリ１２６、ロード可能ソフトウェア部品メモリ・コントローラ１８８、ソフトウェア・ローダ１５０、またはそれらの組合せが、割込みがあった場合のデータ紛失または破壊を防ぐために、突然のおよび予期しない割込みに対して弾力的であってもよい。
【００３８】
幾つかの実装では、スイッチ１２４が或る位置から次の位置へ移動したときにデータ経路が停止するまでの遅延があるかもしれない。例えば、スイッチ１２４が受信ソフトウェア位置からロード・ソフトウェア位置に移動してから１０ミリ秒後に、第１のデータ経路１６４を無効にしてもよい。さらに、スイッチ１２４が或る位置から別の位置に移動したとき、遅延信号がビークル１０２の電気コンポーネントにより生成されてもよく、来たる割込みをシステム１００のコンポーネントに知らせてもよい。例えば、スイッチ１２４が、遅延信号をロード可能ソフトウェア部品メモリ１２６、配布エンドポイント１０４、またはその両方に送信して、第１のデータ経路１６４が無効にされようとしていることを示してもよい。当該遅延信号が、ロード可能ソフトウェア部品メモリ１２６、配布エンドポイント１０４、またはその両方に、データ転送を停止するのに十分な時間を提供してもよく、データ紛失または破壊を防止してもよい。
【００３９】
幾つかの実装では、１つのデータ経路のみが任意の時点で有効にされてもよい。例えば、第２のデータ経路１６６が有効にされている間に第１のデータ経路１６４が有効にされなくてもよい。第１のデータ経路１６４または第２のデータ経路１６６の何れかが有効にされるまでの或る期間だけ、第１のデータ経路１６４および第２のデータ経路１６６の両方を無効にしてもよい。特定の実装では、スイッチ１２４が、スタンバイ位置（例えば、第３の位置）を有してもよい。当該スタンバイ位置が、受信ソフトウェア位置（例えば、第１の位置）とロード・ソフトウェア位置（例えば、第２の位置）の間にあってもよい。したがって、第１の位置から第２の位置へ、または、第２の位置から第１の位置へ切り替えるとき、スイッチ１２４がスタンバイ位置に行ってもよい。スイッチ１２４が当該スタンバイ位置にある間に、第１のデータ経路１６４と第２のデータ経路１６６の両方を無効にしてもよい。
【００４０】
幾つかの実装では、スイッチ１２４をソフトウェア・ロード・パネル（図示せず）に含めてもよい。ソフトウェア・ロード・パネルがスイッチ１２４へのアクセスを防止してもよい。例えば、スイッチ１２４が、ソフトウェア・ロード・パネルを鍵またはパスコードで開けた後にアクセス可能であってもよい。ソフトウェア・ロード・パネルを、ビークル１０２の安全な区域または制限区域に配置してもよい。例えば、ソフトウェア・ロード・パネルが保守員にアクセス可能であってもよく、乗客にアクセス可能でなくてもよい。例示的な非限定的な例として、ソフトウェア・ロード・パネルをビークル１０２のフライト・デッキに配置してもよい。特定の実装では、ソフトウェア・ロード・パネルがビークル１０２の外部にあってもよい。
【００４１】
図１においてバス（例えば、第１のバス、第２のバス等）がマルチチャネル（例えば、４つのチャネル）として示されているが、各バスが、４つよりも多いかまたは少ないチャネルを有してもよい。特定の実装では、少なくとも１つのバスが単一のチャネルを有してもよい。
【００４２】
システム１００が１つのプログラム可能コンピューティング・デバイス１４０のみと１つのソフトウェア・ローダ１５０を有するとして示すが、システム１００が、複数のプログラム可能コンピューティング・デバイス、複数のソフトウェア・ローダ、またはその両方を有してもよい。例えば、システム１００が、複数のプログラム可能コンピューティング・デバイス（例えば、ＬＲＵ）を含んでもよい。各プログラム可能コンピューティング・デバイスが、その独自の専用ソフトウェア・ローダを有してもよい。別の例として、１つまたは複数のソフトウェア・ローダがあってもよく、各ソフトウェア・ローダが、１組の１つまたは複数のプログラム可能コンピューティング・デバイス（例えば、当該デバイスに対するロード・ソフトウェア）に対応してもよい。
【００４３】
幾つかの実装では、データ１７０が、複数のプログラム可能コンピューティング・デバイスのどの特定のプログラム可能コンピューティング・デバイスがそのソフトウェアを更新、フィックス、またはデータ１７０で置換するべきかを示してもよい。例えば、データ１７０が、ソフトウェア・ローダ１５０が、当該複数のプログラム可能コンピューティング・デバイスの第１のプログラム可能コンピューティング・デバイスおよび第２のプログラム可能コンピューティング・デバイスをデータ１７０で修正または更新すると示してもよい。
【００４４】
したがって、図１は、プログラム可能コンピューティング・デバイス１４０のようなビークル１０２のプログラム可能コンピューティング・デバイスにロードすべきソフトウェア部品のセキュリティ・チェックを可能とする、ロード可能ソフトウェア部品メモリ１２６のようなソフトウェア部品メモリを有するビークル１０２を示す。さらに、ビークル１０２は、データ・パケットを介して、ネットワーク・ガード１３４を介してビークル１０２外のシステムと他のデータを通信することができる。ネットワーク・ガード１３４は、特定のフォーマットを有するデータ・パケット（例えば、データ・パケット１８０）をスキャンできる一方、ソフトウェア部品のような特定のタイプのデータ・パケットのスキャンとフィルタはあまり上手でないかもしれない。例えば、ソフトウェア部品データ・パケットはスキャンするには複雑すぎるかもしれず、または、ソフトウェア部品データ・パケットの間の変動がフィルタするには大きすぎるかもしれない。別の例として、ネットワーク・ガード１３４が、ソフトウェア部品全体をバッファしてデジタル署名をチェックするのに十分なメモリを有さないかもしれない。したがって、ソフトウェア部品の検査またはチェックをソフトウェア・ローダ１５０のセキュリティ・チェックにオフロードすることによって、ネットワーク・ガード１３４を簡略化することができる。さらに、スイッチ１２４を提供することによって、ビークルセキュリティ整合性を、保守員がプログラム可能コンピューティング・デバイス１４０にロードすべきソフトウェアをスイッチ１２４の位置に基づいて意図的にアップロードしていることを保証することによって維持してもよい。さらに、ネットワーク動作を実施せずにソフトウェア・ローダ１５０をローカルメモリから読み出せるので、ソフトウェア・ローダ１５０は、ネットワーク接続を介してソフトウェアを受信するソフトウェア・ローダと比べて少ないサイズと複雑度を有しうる。
【００４５】
図２はシステム１００の別の例を含み、スイッチ１２４がロード・ソフトウェア位置に対応する第２の位置にある。例えば、データ１７０がロード可能ソフトウェア部品メモリ１２６に格納された後、スイッチ１２４が受信ソフトウェア位置からロード・ソフトウェア位置に移動してもよい。スイッチ１２４がロード・ソフトウェア位置にある間に、第１のデータ経路１６４が無効にされる。したがって、ロード可能ソフトウェア部品メモリ１２６は第１のデータ・インタフェース１２０に（またはそれを介して）アクセス可能ではない。しかし、スイッチ１２４がロード・ソフトウェア位置にある間に、第２のデータ経路１６６が有効にされる。したがって、ソフトウェア・ローダ１５０は、ロード可能ソフトウェア部品メモリ１２６からデータ１７０にアクセスし取り出すことができる。
【００４６】
さらに、スイッチ１２４がロード・ソフトウェア位置にある間に、ロード可能ソフトウェア部品メモリ１２６（例えば、ロード可能ソフトウェア部品メモリ・コントローラ１８８）が、専用データ・ロード有効信号経路のような第４のバス１２９を介してまたは異なる通信経路（図示せず）を介して、データ・ロード有効信号をソフトウェア・ローダ１５０に送信してもよい。データ・ロード有効信号は、ビークル１０２のプログラム可能コンピューティング・デバイス１４０のようなビークル１０２のシステムにソフトウェア・ローダ１５０によりロードすべきデータがロード可能ソフトウェア部品メモリ１２６で利用可能であることを、ソフトウェア・ローダ１５０に通知する。データ・ロード有効信号を受信したことに応答して、ソフトウェア・ローダ１５０が、データ１７０またはデータ１７０の一部に対してアクセス、取出し、またはその両方を行うためのロード可能ソフトウェア部品メモリ１２６にアクセスしてもよい。さらに、データ経路が、データ・ロード信号およびスイッチ１２４の位置に応答して有効にされてもよい。例えば、第２のデータ経路１６６を、データ・ロード有効信号がソフトウェア・ローダ１５０で受信されスイッチ１２４がロード・ソフトウェア位置内に存在することに応答して有効にしてもよい。他の実装では、データ・ロード有効信号が、スイッチ１２４または別のソースにより生成されてもよい。さらに、データ・ロード有効信号が、スイッチ１２４にデータ経路を有効または無効にさせてもよい。例えば、データ・ロード有効信号を受信（または生成）したことに応答して、スイッチ１２４が、第１のデータ経路１６４を無効にし、第２のデータ経路１６６を有効にし、またはその両方を行ってもよい。
【００４７】
ソフトウェア・ローダ１５０が、ロード可能ソフトウェア部品メモリ１２６内のデータ１７０またはデータ１７０の一部にセキュリティ・チェック２０２を実施してもよい。例えば、セキュリティ・チェック２０２が、データ１７０に関連付けられた、整合性チェック、デジタル署名チェック、またはそれらの組合せを含んでもよい。ソフトウェア・ローダ１５０が、データ１７０の全てをバッファして整合性チェックまたはデジタル署名チェックを実施してもよい。幾つかの実装では、当該整合性チェックが暗号整合性チェックを含んでもよい。例えば、ソフトウェア・ローダ１５０を、暗号整合性チェックを実施する前に鍵で初期化してもよい。当該鍵が公開鍵であってもよく、当該鍵をデジタル証明書に含めてもよい。他の実装では、当該鍵がプライベート鍵であってもよい。ソフトウェア・ローダ１５０が当該鍵を使用して暗号整合性チェックをデータ１７０に実施してもよい。ソフトウェア・ローダ１５０がデータ１７０にアクセスする前にデータ１７０がロード可能ソフトウェア部品メモリ１２６にロードされるので、ソフトウェア・ローダ１５０がデータ１７０にアクセスするかまたはデータ１７０を修正しようとするのと同時に配布エンドポイント１０４がデータ１７０にアクセスするかまたはデータ１７０を修正しようとする、読取り／書込み脱出条件または競合条件には問題がない。
【００４８】
セキュリティ・チェック２０２を実施し、データ１７０が承認されるかまたは当該セキュリティ・チェックを満足した後、ソフトウェア・ローダ１５０が、データ１７０またはデータ１７０の一部を使用またはインストールして、プログラム可能コンピューティング・デバイス１４０の命令１４６を更新、フィックス、または置換してもよい。データ１７０（またはその一部）が承認されないかまたは当該セキュリティ・チェックを満たさないとき、データ１７０（またはその一部）を削除、上書き、または破棄してもよい。さらに、データ１７０（またはその当該部分）が承認されず当該セキュリティ・チェックを満たさないとき、ソフトウェア・ローダ１５０がレポートを生成してもよい。当該レポートがデータ・ロード失敗またはエラーを示してもよい。ソフトウェア・ローダ１５０がネットワーク・ガード１３４を介して当該レポートを外部システムに送信してもよい。
【００４９】
データ１７０に基づいて命令１４６が更新または置換されたことに応答して、ソフトウェア・ローダ１５０またはプログラム可能コンピューティング・デバイス１４０が、肯定応答２０４をビークル１０２外部の１つまたは複数の外部システムに送信して、ソフトウェアがプログラム可能コンピューティング・デバイス１４０に正しくインストールされていることを示してもよい。図２において肯定応答２０４がＩＴシステム１１２に行くとして示すが、他の実装では、肯定応答２０４を配布エンドポイント１０４に直接送信してもよい。あるいは、肯定応答２０４がＩＴシステム１１２に送信されるとき、ＩＴシステム１１２が、ネットワーク・ガード１３４を介して肯定応答２０４または肯定応答２０４に関する情報を配布エンドポイント１０４に転送してもよい。
【００５０】
システム１００の動作中に、スイッチ１２４が、受信ソフトウェア位置からロード・ソフトウェア位置に設定されてもよい。例えば、スイッチ１２４が、航空機または保守員により手動で起動されてもよい。図１を参照して説明するように、データ１７０がロード可能ソフトウェア部品メモリ１２６内に格納され、スイッチ１２４が以前に受信ソフトウェア位置に設定されている。スイッチ１２４がロード・ソフトウェア位置に設定されるので、第２のデータ経路１６６を有効にしてもよく、ソフトウェア・ローダ１５０が、ロード可能ソフトウェア部品メモリ１２６にあるデータ１７０に第３のバス１２８を介してアクセス（例えば、読取り専用アクセス）してもよい。ソフトウェア・ローダ１５０が、セキュリティ・チェック２０２をロード可能ソフトウェア部品メモリ１２６にあるデータ１７０に実施してもよい。例えば、ソフトウェア・ローダ１５０が、データ１７０またはデータ１７０の一部をバッファし、デジタル署名チェックをバッファされたデータに実施してもよい。別の例として、ソフトウェア・ローダ１５０が、初期化プロセスの間に取得された鍵のような、格納された鍵を用いて整合性チェックをデータ１７０に実施してもよい。
【００５１】
ソフトウェア・ローダ１５０が、セキュリティ・チェック２０２を実施したことに応答してデータ１７０を承認してもよい。ソフトウェア・ローダ１５０が、プログラム可能コンピューティング・デバイス１４０の命令１４６を更新、フィックス、または置換するためのデータ１７０またはデータ１７０の一部を使用またはインストールしてもよい。幾つかの実装では、データ１７０が複数のソフトウェア部品を含んでもよい。ソフトウェア・ローダを、当該複数のソフトウェア部品のインストールすべき特定のロード可能ソフトウェア部品（例えば、データ１７０の一部）をデータ１７０に基づいて選択するように構成してもよい。
【００５２】
命令１４６がデータ１７０またはデータ１７０の一部に基づいて更新または置換されたことに応答して、ソフトウェア・ローダ１５０またはプログラム可能コンピューティング・デバイス１４０が、第２のデータ・インタフェース１３０を介して肯定応答２０４をＩＴシステム１１２に送信してもよい。
【００５３】
さらに、ＩＴシステム１１２が、接続１０８を介して第２のデータ（図示せず）を配布エンドポイント１０４に送信してもよい。配布エンドポイント１０４が、接続１１０を介して第２のデータを第１のデータ・インタフェース１２０にルーティングまたは転送することを試みてもよい。スイッチ１２４がロード・ソフトウェア位置に設定されるので、第１のデータ経路１６４が無効にされ、配布エンドポイント１０４が、第２のデータを送信できなくてもよい（例えば、書込みアクセスを有さなくてもよい）。したがって、ロード可能ソフトウェア部品メモリ１２６が第２のデータを格納できなくてもよい。特定の実装では、配布エンドポイント１０４がメモリ１０６にある第２のデータを格納してもよい。例えば、配布エンドポイント１０４を、ＩＴシステム１１２から受信された任意のデータを格納するように構成してもよい。別の例として、配布エンドポイント１０４が、ロード可能ソフトウェア部品メモリ１２６が配布エンドポイント１０４にアクセス可能でないときに、メモリ１０６にある第２のデータを格納してもよい。例示すると、スイッチ１２４がロード・ソフトウェア位置にある間に、配布エンドポイント１０４がメモリ１０６にある第２のデータを格納してもよい。
【００５４】
図３は、ソフトウェアと通信する方法３００の特定の例を示す。方法３００を、図１および２のシステム１００、図１および２のビークル１０２により実施してもよい。例えば、方法３００を、プログラム可能コンピューティング・デバイス１４０、ソフトウェア・ローダ１５０、スイッチ１２４、ロード可能ソフトウェア部品メモリ１２６、第１のデータ・インタフェース１２０、またはそれらの組合せにより実施してもよい。
【００５５】
方法３００は、３０２で、ビークルのスイッチが第１の位置にある間に、ビークルの第１のデータ・インタフェースとビークルのロード可能ソフトウェア部品メモリの間の第１のデータ経路を介して、ロード可能ソフトウェア部品に対応するデータを受信するステップを含む。例えば、図１を参照すると、ビークル１０２のスイッチ１２４が受信ソフトウェア位置にある間に、ロード可能ソフトウェア部品メモリ１２６が、第１のデータ・インタフェース１２０から第１のデータ経路１６４を介してデータ１７０を受信してもよい。幾つかの実装では、スイッチが、ソフトウェア・ロード動作を可能とするために手動の起動を介して第１の位置と第２の位置の間で移動されるビークルの機械コンポーネントを備えてもよい。
【００５６】
方法３００は、３０４で、ビークルのスイッチが第１の位置にある間に、ロード可能ソフトウェア部品メモリにあるデータを格納するステップを含む。例えば、第１の位置が、図１に示すように位置インジケータ１６２により示される受信ソフトウェア位置を含むかまたはそれに対応してもよい。
【００５７】
方法３００が、３０６で、ビークルのスイッチが第２の位置にある間に、スイッチが第２の位置に配置されたことに応答してデータ・ロード有効信号をソフトウェア・ローダに送信するステップを含んでもよい。例えば、第２の位置が、図２に示すように位置インジケータ１６２により示されるロード・ソフトウェア位置を含むかまたはそれに対応してもよい。スイッチ１２４が、スイッチ１２４がロード・ソフトウェア位置に置かれることに応答してデータ・ロード有効信号をソフトウェア・ローダ１５０に送信してもよい。
【００５８】
方法３００は、３０８で、ビークルのスイッチが第２の位置にある間に、第２のデータ経路を介してデータをソフトウェア・ローダに送信するステップを含む。スイッチが第２の位置にある間に、第１のデータ経路が無効にされる。例えば、第２のデータ経路が、図１および２の第２のデータ経路１６６を含むかまたはそれに対応してもよい。図１および２を参照して説明するように、スイッチ１２４がロード・ソフトウェア位置にある間に、第１のデータ経路１６４を無効にしてもよい。幾つかの実装では、第１のデータ経路が第１のデータ・バスに対応してもよく、第２のデータ経路が第２のデータ・バスに対応してもよい。例えば、第１のデータ経路１６４が第５のバス１２２に対応してもよく、第２のデータ経路１６６が第３のバス１２８に対応してもよい。
【００５９】
方法３００が、３１０で、整合性チェックをソフトウェア・ローダにあるデータに実施するステップを含んでもよい。例えば、図２を参照して説明するように、ソフトウェア・ローダ１５０がセキュリティ・チェック２０２をデータ１７０に実施してもよい。
【００６０】
方法３００が、３１２で、データが整合性チェックを満たすとき、当該データに基づいてビークルのライン置換可能ユニットのメモリに格納された命令を修正または置換するステップを含んでもよい。例えば、当該命令が図１および２の命令１４６を含むかまたはそれに対応してもよく、メモリが図１および２のメモリ１４４を含むかまたはそれに対応してもよい。当該ライン置換可能ユニットが、プログラム可能コンピューティング・デバイス１４０を含むかまたはそれに対応してもよい。例示すると、プログラム可能コンピューティング・デバイス１４０の命令１４６をデータ１７０で修正または置換してもよい。
【００６１】
方法３００が、３１４で、ビークルの第２のデータ・インタフェースを介して肯定応答をコンピューティング・デバイスに送信するステップを含んでもよい。当該肯定応答が、ロード可能ソフトウェア部品がインストールされたことを示してもよい。例えば、当該肯定応答が、図２のＡＣＫ２０４を含むかまたはそれに対応してもよく、図１および２の第２のデータ・インタフェース１３０のような第２のデータ・インタフェースを介して、ＩＴシステム１１２に送信されてもよい。
【００６２】
幾つかの実装では、方法３００が、複数のデータ・パケットをコンピューティング・デバイスからビークルの第２のデータ・インタフェースを介して受信するステップを含んでもよい。例えば、データ・パケットが、図１のデータ・パケット１８０を含むかまたはそれに対応してもよい。第２のデータ・インタフェースが第１のデータ・インタフェースと異なってもよい。方法３００がまた、当該複数のデータ・パケットのパケット分析をビークルのネットワーク・ガード装置で実施するステップを含んでもよい。例えば、当該ネットワーク・ガードが、図１および２のネットワーク・ガードを含むかまたはそれに対応してもよい。幾つかの実装では、当該パケット分析が、当該複数のデータ・パケットが実行可能命令を含むかどうかを判定するための当該複数のデータ・パケットのディープ・パケット検査を含んでもよい。方法３００が、当該１つまたは複数のデータ・パケットが当該パケット分析を満たすことを必要とするネットワーク・ガード装置からライン置換可能ユニットに当該複数のデータ・パケットの１つまたは複数のデータ・パケットを送信するステップを含んでもよい。幾つかの実装では、当該１つまたは複数のデータ・パケットが、当該１つまたは複数のデータ・パケットの各々が期待されるフォーマットまたは期待されるペイロード・タイプのうち少なくとも１つを有するとき、当該パケット分析を満たすことができる。例えば、当該パケット分析を満たすデータ・パケットが、図１の承認されたデータ・パケット１８６を含むかまたはそれに対応してもよい。
【００６３】
図４および５を参照すると、本開示の例が、図４の流れ図により示したビークル製造およびサービス方法４００および図５のブロック図により示したビークルシステム５００のコンテキストで説明されている。図４のビークル製造およびサービス方法４００により生産されたビークルおよび図５のビークル５０２が、例示的な非限定的な例として、航空機、自動車、列車、オートバイ、バス、船舶またはボート、ロケット、宇宙船、自律ビークル、または別のビークルを含んでもよい。
【００６４】
図４を参照すると、ソフトウェア配送に対するシステムを動作させる方法の例示的な例の流れ図が４００で示されている。事前生産中に、例示的な方法４００は、４０２で、図１のビークル１０２または図５を参照して説明したビークル５０２のようなビークルの仕様および設計を含む。ビークルの仕様および設計の間に、方法４００が、スイッチ可能ソフトウェア部品メモリ、スイッチ、またはそれらの組合せを含んでもよい。スイッチ可能ソフトウェア部品メモリおよびスイッチがそれぞれ、ロード可能ソフトウェア部品メモリ１２６およびスイッチ１２４を含んでもよいかまたはそれらに対応してもよい。４０４で、方法４００は材料調達を含む。例えば、方法４００が、ソフトウェア配送システムのための（図１および２のロード可能ソフトウェア部品メモリ１２６、図１および２のソフトウェア・ローダ１５０、図１および２のスイッチ１２４、またはそれらの組合せのような）材料を調達するステップを含んでもよい。
【００６５】
生産中に、方法４００は、４０６で、コンポーネントおよび組立部品製造および、４０８で、ビークルのシステム統合を含む。方法４００が、当該飛行管理システムのコンポーネントおよび組立部品製造（例えば、図１および２のロード可能ソフトウェア部品メモリ１２６の製造）およびソフトウェア配送に対する当該システムのシステム統合（例えば、ソフトウェア・ローダ１５０のスイッチ１２４への接続）を含んでもよい。４１０で、方法４００は、ビークルの認証および配送を含み、４１２で、ビークルを就航させることを含む。認証および配送が、ソフトウェア配送に対する当該システムを認証するステップを含んでもよい。方法４００が、ソフトウェア配送に対する当該システムを就航させるステップを含んでもよい。顧客によるサービスにおいて、ビークルが定期保守およびサービス２１６に関してスケジュールされてもよい（これらが修正、再構成、改良等を含んでもよい）。４１４で、方法４００は保守およびサービスをビークルに実施するステップを含む。方法４００が、ソフトウェア配送に対する当該システムの保守およびサービスを実施するステップを含んでもよい。例えば、ソフトウェア配送に対する当該システムの保守およびサービスが、図１および２のロード可能ソフトウェア部品メモリ１２６、図１および２のソフトウェア・ローダ１５０、図１および２のスイッチ１２４、またはそれらの組合せのうち１つまたは複数を置き換えるステップを含んでもよい。別の例として、当該システムの保守およびサービスがまた、ソフトウェアを更新、フィックス、または置換するステップを含んでもよい。
【００６６】
方法４００のプロセスの各々を、システム・インテグレータ、サード・パーティ、オペレータ（例えば、顧客）、または幾つかのそれらの組合せにより実施または実行してもよい。この説明の目的のため、システム・インテグレータが、限定ではなく、任意数のビークル製造業者および主要システム下請けを含んでもよく、サード・パーティが、例えば、限定ではなく、任意数のベンダ、下請け、および供給者を含んでもよく、オペレータが航空会社、リース会社、軍事機関、サービス組織等であってもよい。
【００６７】
図３および４の方法の第１の部分を、図３および４の方法のうち別のものの少なくとも第２の部分と組み合わせてもよい。例えば、図３の方法３００の第１の部分を、図３の方法３００、図４の方法４００のうち１つ、またはそれらの組合せの第２の部分と組み合わせてもよい。
【００６８】
図５を参照すると、ソフトウェア配送に対するシステムのコンポーネントを含むビークルの例示的な実装のブロック図を５００として示してある。例えば、ビークル５０２が、図１のビークル１０２を含むかまたはそれに対応してもよい。例示すると、ビークル５０２が、例示的な非限定的な例として航空機を含んでもよい。ビークルが、図４の方法４００の少なくとも一部により生成されていてもよい。図５に示すように、ビークル５０２（例えば、航空機）が、機体５１８、内部５２２、および制御システム５０１を含む複数のシステム５２０を備えてもよい。当該複数のシステム５２０がさらに、推進システム５２４、電気システム５２６、環境システム５２８、または油圧システム５３０の１つまたは複数を備えてもよい。当該制御システム５０１が、図１を参照して説明したシステム１００のコンポーネントを備えてもよく、ＬＲＵ５４０（例えば、飛行管理コンピュータ）、ソフトウェア・メモリ５４４、スイッチ５６０、およびソフトウェア・ローダ５５０を備えてもよい。当該ＬＲＵ５４０が、図１のプログラム可能コンピューティング・デバイス１４０を含むかまたはそれに対応してもよい。ソフトウェア・メモリ５４４が、図１のロード可能ソフトウェア部品メモリ１２６を含むかまたはそれに対応してもよい。スイッチ５６０が、図１のスイッチ１２４を含むかまたはそれに対応してもよい。ソフトウェア・ローダ５５０が、図１のソフトウェア・ローダ１５０を含むかまたはそれに対応してもよい。メモリ（図示せず）に接続されたプロセッサのような任意数の他のシステムを含めてもよい。プロセッサを、メモリに格納されたコンピュータ−実行可能命令（例えば、１つまたは複数の命令から成るプログラム）を実行するように構成してもよい。当該命令が、実行されたときにプロセッサに図３の方法の１つまたは複数の動作を実施させる命令を含むかまたはそれに対応してもよい。航空宇宙例が示されているが、本明細書で説明する実装を自動車業界のような他の業界に適用してもよい。
【００６９】
本明細書に含まれる装置および方法を、図４の方法４００の段階の任意の１つまたは複数において使用してもよい。例えば、生産プロセス４０８に対応するコンポーネントまたはサブアセンブリが、例えば限定ではなく、４１２でビークル５０２が就航中に生成されたコンポーネントまたはサブアセンブリと同様な方式で製造されてもよい。また、１つまたは複数の装置の実装、方法の実装、またはそれらの組合せを、例えば、ビークル５０２の組立を大幅に促進するかまたはビークル５０２のコストを大幅に削減することによって、生産段階（例えば、方法４００の要素４０２−４１０）中に利用してもよい。同様に、例えば限定ではなく、４１２で装置の実装、方法の実装、またはそれらの組合せの１つまたは複数を、ビークル５０２が就航中である間に利用して、４１４での保守およびサービスのために利用してもよい。
【００７０】
本明細書で説明する例は、様々な実装の構造の一般的な理解を与えようとするものである。当該例示は、本明細書で説明する構造または方法を利用する装置およびシステムの要素および特徴の全ての完全な説明としての役割を果たそうとするものではない。多数の他の実装は本開示を検討すれば当業者には明らかであろう。構造的および論理的な置換えおよび変更を本開示の範囲から逸脱せずに行えるように、他の実装を本開示から利用し導出してもよい。例えば、方法動作を当該図面で示したものと異なる順序で実施してもよく、または、１つまたは複数の方法動作を省略してもよい。したがって、本開示および当該図面は限定的ではなく例示的なものとして捉えるべきである。
【００７１】
さらに、具体的な例を本明細書で図示し説明したが、同一のまたは同様な結果を実現するように設計された任意の後続の配置で、図示した当該特定の実装を置き換えてもよいことは理解されるべきである。本開示は、様々な実装の任意のおよび全ての後続の適合または変形を包含しようとするものである。特に本明細書で説明していない上述の実装、および他の実装の組合せは当該説明を検討すれば当業者には明らかであろう。
【００７２】
本発明の要約は、それが諸請求項の範囲または意味を解釈または限定するために使用されるものではないとの理解とともに提供されている。さらに、上述の詳細な説明において、様々な特徴を、本発明を簡素化する目的のために単一の実装に一緒にグループ化するかまたは記載してもよい。上述の例は本発明を例示するものであり限定するものではない。多数の修正および変形が本発明の原理に従って可能であることも理解されるべきである。添付の請求項が反映するように、クレーム主題が、開示した例の何れかの特徴の全てより少ないように向けられていてもよい。したがって、本発明の範囲は添付の諸請求項およびその均等物により定義される。
【符号の説明】
【００７３】
１０２  ビークル
１０４  配布エンドポイント
１０６  メモリ
１１２  ＩＴシステム
１２０  第１のデータ・インタフェース（例えば、ポート）
１２６  ロード可能ソフトウェア部品メモリ
１３０  第２のデータ・インタフェース（例えば、ポート）
１３４  ネットワーク・ガード
１４０  プログラム可能コンピューティング・デバイス（例えば、ＬＲＵ）
１４２  プロセッサ
１４４  メモリ
１４６  命令
１７０  データ
１８０  データ・パケット
１８２  ファイアウォール
１８６  承認されたデータ・パケット
１８８  コントローラ
【図１】
2017151956.tif 000003
【図２】
2017151956.tif 000004
【図３】
2017151956.tif 000005
【図４】
2017151956.tif 000006
【図５】
2017151956.tif 000007
【外国語明細書】
2017151956000001.pdf