(57)【要約】【課題】複数の車両アプリケーションによるリソース競合に対処する。【解決手段】複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータによって実行される方法であって、第一の車両アプリケーションが前記車載コンピュータにインストールされる際に、前記第一の車両アプリケーションに付帯している、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルを取得し記憶する導入ステップと、前記第一の車両アプリケーションに付帯している前記競合テーブルと、前記車載コンピュータに既にインストールされている第二の車両アプリケーションに付帯している前記競合テーブルと、に基づいて、前記車両リソースに対する競合が発生するか否かを判定する判定ステップと、を含む。【選択図】図１
2019164791.tif 000002
【特許請求の範囲】
【請求項１】
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータによって実行される方法であって、
第一の車両アプリケーションが前記車載コンピュータにインストールされる際に、前記第一の車両アプリケーションに付帯している、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルを取得し記憶する導入ステップと、
前記第一の車両アプリケーションに付帯している前記競合テーブルと、前記車載コンピュータに既にインストールされている第二の車両アプリケーションに付帯している競合テーブルと、に基づいて、前記車両リソースに対する競合が発生するか否かを判定する判定ステップと、
を含む、方法。
【請求項２】
前記競合テーブルは、
前記車両アプリケーションが前記車両リソースを使用する必要条件を表す第一のデータと、
前記第一のデータが示す条件下において、前記車両アプリケーションが使用する前記車両リソースを識別する第二のデータと、を含む、
請求項１に記載の方法。
【請求項３】
前記判定ステップにおいて、
前記車両が前記第一のデータによって示された特定の条件下にある場合に前記競合が発生すると判定した場合に、前記第一および第二の車両アプリケーションの実行を禁止し、
いずれの条件下においても前記競合が発生しないと判定した場合に、前記第一および第二の車両アプリケーションの実行を許可する、
請求項２に記載の方法。
【請求項４】
前記判定ステップにおいて、前記車両が前記第一のデータによって示された特定の条件下にある場合に前記競合が発生すると判定した場合に、当該条件下において、前記第一および第二の車両アプリケーションによる前記車両リソースの利用を制限する、
請求項２に記載の方法。
【請求項５】
前記導入ステップでは、前記第一の車両アプリケーションに前記競合テーブルが付帯しているか否かを判定し、前記第一の車両アプリケーションに前記競合テーブルが付帯している場合に前記第一の車両アプリケーションのインストールを許可し、前記第一の車両アプリケーションに前記競合テーブルが付帯していない場合に前記第一の車両アプリケーションのインストールを拒否する、
請求項１から４のいずれかに記載の方法。
【請求項６】
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータによって実行される方法であって、
前記車載コンピュータへのインストールが要求された第一の車両アプリケーションに、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルが付帯しているか否かを判定するステップと、
前記第一の車両アプリケーションに前記競合テーブルが付帯している場合に前記第一の車両アプリケーションのインストールを許可し、前記第一の車両アプリケーションに前記競合テーブルが付帯していない場合に前記第一の車両アプリケーションのインストールを拒否するステップと、
を含む、方法。
【請求項７】
前記競合テーブルは、
前記車両アプリケーションが前記車両リソースを使用する必要条件を表す第一のデータと、
前記第一のデータが示す条件下において、前記車両アプリケーションが使用する前記車両リソースを識別する第二のデータと、を含む、
請求項６に記載の方法。
【請求項８】
車載コンピュータにインストール可能であり、車両が有する複数の車両リソースを利用する車両アプリケーションに付帯する付帯データのデータ構造であって、
前記車両アプリケーションが前記車両リソースを使用する必要条件を表す第一のデータと、
前記第一のデータが示す条件下において、前記車両アプリケーションが使用する前記車両リソースを識別する第二のデータと、
を含み、
前記第二のデータは、前記車載コンピュータによって、前記第一のデータが示す条件下において、複数の前記車両アプリケーションが同時に同一の車両リソースを使用しうるか否かを判定する処理に用いられる、
データ構造。
【請求項９】
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータを含む車両システムであって、
第一の車両アプリケーションが前記車載コンピュータにインストールされる際に、前記第一の車両アプリケーションに付帯している、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルを取得し記憶する導入手段と、
前記第一の車両アプリケーションに付帯している前記競合テーブルと、前記車載コンピュータに既にインストールされている第二の車両アプリケーションに付帯している競合テーブルと、に基づいて、前記車両リソースに対する競合が発生するか否かを判定する判定手段と、
を有する、車両システム。
【請求項１０】
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータを含む車両システムであって、
前記車載コンピュータへのインストールが要求された第一の車両アプリケーションに、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルが付帯しているか否かを判定する手段と、
前記第一の車両アプリケーションに前記競合テーブルが付帯している場合に前記第一の車両アプリケーションのインストールを許可し、前記第一の車両アプリケーションに前記競合テーブルが付帯していない場合に前記第一の車両アプリケーションのインストールを拒否する手段と、
を有する、車両システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、「CONFLICT DETERMINATION AND MITIGATION FOR VEHICULAR APPLICATIONS」と題し、２０１８年３月１９日に出願された米国特許出願第１５／９２５，２０２号の優先権を主張する。これらの特許出願は、その全体が参照によって本願明細書に援用される。
【０００２】
本明細書は、車両アプリケーションによって発生する競合の判定および緩和の提供に関する。
【背景技術】
【０００３】
車両制御システムは、ますます普及してきている。車両制御システムの一例に、先進運転支援システム（ＡＤＡＳシステム）がある。
【０００４】
ＡＤＡＳシステムは、これらのＡＤＡＳシステムを含む車両に１つ以上の自律特性を提供する。たとえば、ＡＤＡＳシステムは、車両が走行している車線に対する車両の位置を監視してもよく、車両がその車線の外にずれ始めた場合、車両が車線内に留まるように車両を再位置決めするか、または運転者がこの状況を是正するための措置を講じる必要があることに気付くように車両の運転者に通知を提供することによって、是正措置を取る。
【０００５】
いくつかの車両は、自律走行車両と見なされるのに十分な数および質の自律特性を含む。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１６−６６０３２８号公報
【発明の概要】
【０００７】
車両用プラグアンドプレイエコシステムは、自動車製造業者にとって望ましい。たとえば、車両製造業者は彼らの車両に、ソフトウェア開発者が彼らの車両向けのソフトウェアアプリケーション（すなわち、「車両アプリケーション」）を記述し、そして異なる仕様およびモデルの車両でもこれらの車両アプリケーションを同じように、または実質的に同じように動作させることを可能にする基礎構造を有することを望む。現時点で既存の解決策を使用してもこれは不可能である。たとえば、ＡＤＡＳシステム用のソフトウェア（本明細書では、車両アプリケーションの一例である「ＡＤＡＳソフトウェア」）は、車両Ｘおよび車両Ｙが同じ製造業者であったとしても、車両Ｘおよび車両Ｙが異なるメーカーおよびモデルを有する場合には、「車両Ｘ」においては「車両Ｙ」とは異なる動作をする。車両用プラグアンドプレイエコシステムは、たとえば、ＡＤＡＳソフトウェアがインストールされた車両のメーカーおよびモデルに関係なくＡＤＡＳソフトウェアが類似の方法で動作できるようにすることによって、この問題を解決する。
車両用プラグアンドプレイエコシステムとは、このように、車種やメーカーの違いを吸収し、同一のソフトウェアによる同一のふるまいを可能にするためのシステムである。当該システムにより、サードパーティーが、車両を制御するための様々なソフトウェアを提供することが可能になる。
【０００８】
車両用プラグアンドプレイエコシステムを提供することに対する１つの障害は、車両に、多くの異なるタイプの車両アプリケーションがインストールされうるという点である。
たとえば、１台の車両が多数のＡＤＡＳシステムを含む場合がある。複数の車両アプリケーションが、同時に同じ車両アクチュエータまたは車両リソースを使用しようとすると、競合が発生する。このような競合は、致命的な事故を引き起こす可能性がある。
現在、車両にインストールされた車両アプリケーションは車両製造業者によって厳しく管理されており、車両アプリケーション開発者ら自身が各々開発している車両アプリケーションについて互いに連絡を取る必要があるので、このような競合は回避されている。これらの連絡は、車両製造業者の車両にインストールされた車両アプリケーションが、競合が回避されるように記述されるという状況を作り出している。しかしながら、将来的には、この種の開発者間の連絡が行われないプラグアンドプレイエコシステムに移行することが望ましい。
【０００９】
プラグアンドプレイソフトウェアエコシステムでは、車両アプリケーション開発は車両製造業者によって厳しく管理されることは不可能であり、車両アプリケーション開発者らは互いに連絡することはなくなる。現在利用可能な解決策に基づいて、車両にインストールされた車両アプリケーションの間の競合を制御する方法はないので、これにより問題を引き起こす。本明細書に記載される競合システムは、実行中に、車両アプリケーション開発者または車両製造業者による直接的な監督がなくても車両アプリケーションがインストール可能な、車両のプラグアンドプレイエコシステムのコンポーネントとして、この問題を解決する。
【００１０】
競合は、車両に搭載された車両コンピュータシステムにおいて発生しうる。いくつかの実施形態では、車両は自律走行車両である。米国運輸省道路交通安全局（ＮＨＴＳＡ）は、たとえばレベル０、レベル１、レベル２、レベル３、レベル４、およびレベル５など、自律走行車両の異なる「レベル」を定義している。ある車両が他の車両よりも上位のレベルを有する場合（たとえば、レベル２または１よりもレベル３の方が上位レベルである）、上位レベルを有する車両は、下位レベルを有する車両よりも大きな組み合わせおよび数の自律特性を提供する。自律走行車両の異なるレベルについて、以下に簡単に説明する。
【００１１】
レベル０：車両にインストールされたＡＤＡＳシステムのセットは車両制御を有していないが、車両の運転者に警告を発することができる。
【００１２】
レベル１：運転者はいかなる時も車両の制御を取る準備ができていなければならない。車両にインストールされたＡＤＡＳシステムのセットは、以下のうちの１つ以上のような自律特性を提供することができる：アダプティブクルーズコントロール（ＡＣＣ）；および自動操舵を用いる駐車支援および車線維持支援（ＬＫＡ）タイプＩＩ、ただしいずれの組み合わせでもよい。
【００１３】
レベル２：運転者は、道路環境における物体および事象を検出して、車両にインストールされたＡＤＡＳシステムのセットが適切に応答しなかった場合に（運転者の主観的判断に基づいて）、応答しなければならない。車両にインストールされたＡＤＡＳシステムのセットは、加速、制動、および操舵を実行する。車両にインストールされたＡＤＡＳシステムのセットは、運転者によって引き継がれるとただちに停止することができる。
【００１４】
レベル３：既知の限られた環境（高速道路など）の中で、運転者は運転タスクから安全に注意をそらすことができるが、必要なときには依然として車両を制御する準備ができていなければならない。
【００１５】
レベル４：車両にインストールされたＡＤＡＳシステムのセットは、悪天候などのわずかな環境を除く全ての環境において、車両を制御することができる。運転者は、そうするのが安全なときにのみ、（車両にインストールされたＡＤＡＳシステムのセットで構成さ
れた）自動システムを有効化することができる。自動システムが有効化されると、車両が安全に承認基準に準拠して動作するために、運転者の注意が払われる必要はない。
【００１６】
レベル５：目的地の設定およびシステムの起動以外に、人間の介入は必要とされない。自動システムは、運転することが合法な場所であればどこにでも運転でき、独自の判断を下すことができる（車両が位置する司法管轄区域によって異なる）。
【００１７】
いくつかの実施形態では、車両は高度自律走行車両（ＨＡＶ）である。ＨＡＶは、上述の、または２０１６年９月に公開された「Ｆｅｄｅｒａｌ  Ａｕｔｏｍａｔｅｄ  Ｖｅｈｉｃｌｅｓ  Ｐｏｌｉｃｙ：  Ａｃｃｅｌｅｒａｔｉｎｇ  ｔｈｅ  Ｎｅｘｔ  Ｒｅｖｏｌｕｔｉｏｎ  ｉｎ  Ｒｏａｄｗａｙ  Ｓａｆｅｔｙ」と題される政策文書の９ページでＮＨＴＳＡが定義した、レベル３以上で動作するＡＤＡＳシステムのセットを含む車両（たとえば、ＤＳＲＣ有効化車両）である。
【００１８】
１つ以上のコンピュータのシステムは、動作中にシステムに作用を行わせるシステムにインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせを有することで、特定の動作または作用を行うように構成されることが可能である。１つ以上のコンピュータプログラムは、データ処理装置によって実行されたときに装置に作用を行わせる命令を含むことで、特定の動作または作用を行うように構成されることが可能である。
【００１９】
１つの一般的な態様は、
車載コンピュータによって車両アプリケーションが使用可能なときの車両コンテキストと、車両コンテキストが適用される第１セットの時間の間の車両アプリケーションの第１リソース使用状態と、車両コンテキストが適用されない第２セットの時間の間の車両アプリケーションの第２リソース使用状態と、を記述するデジタルデータを含む車両アプリケーションを記憶する非一時的メモリを含むシステムを含む。
この態様の別の実施形態は、各々が方法の作用を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。
【００２０】
１つの一般的な態様は、
車載コンピュータに車両アプリケーションをインストールする要求を受信するステップと、車両アプリケーションがデジタルデータを含まないという判断に応えて要求を拒否するステップであって、デジタルデータが、車載コンピュータによって車両アプリケーションが使用可能なときの車両コンテキストと、車両コンテキストが適用される第１セットの時間の間の車両アプリケーションの第１リソース使用状態と、車両コンテキストが適用されない第２セットの時間の間の車両アプリケーションの第２リソース使用状態と、を記述するステップと、を含む方法を含む。
この態様の別の実施形態は、各々が方法の作用を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。
【００２１】
１つの一般的な態様は、
車載コンピュータに車両アプリケーションをインストールする要求を受け付けるステップと、車両アプリケーションから第１競合テーブルを取得するステップと、車載コンピュータにインストールされた他の車両アプリケーションのための１つ以上の第２競合テーブルを含むテーブルセットと第１競合テーブルをマージするステップと、車両アプリケーションを実行させることで、車両アプリケーションと他の車両アプリケーションのうちの少なくとも１つとの間に競合を引き起こすか否かを識別するためにテーブルセットを分析す
るステップと、競合が識別されないことに基づいて車両アプリケーションを実行させると決定するステップと、を含む方法を含む。
この態様の別の実施形態は、各々が方法の作用を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。
【００２２】
実施例は、以下の特性のうちの１つ以上を含みうる。
第１競合テーブルが、車載コンピュータによって車両アプリケーションが使用可能なときの車両コンテキスト、車両コンテキストが適用される第１セットの時間の間の車両アプリケーションの第１リソース使用状態、および車両コンテキストが適用されない第２セットの時間の間の車両アプリケーションの第２リソース使用状態を記述するデジタルデータを含む、方法。
車両が自律走行車両である方法。
車両が高度自律走行車両である方法。
車両アプリケーションが先進運転支援システムである方法。
車載コンピュータが電子制御ユニットである方法。
記載される技術の実施例は、ハードウェア、方法またはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含みうる。
【００２３】
１つの一般的な態様は、車載コンピュータによって実行された場合に、
車載コンピュータに車両アプリケーションをインストールする要求を受け付けるステップと、車両アプリケーションから第１競合テーブルを取得するステップと、車載コンピュータにインストールされた他の車両アプリケーションのための１つ以上の第２競合テーブルを含むテーブルセットと第１競合テーブルをマージするステップと、車両アプリケーションを実行させることで、車両アプリケーションと他の車両アプリケーションのうちの少なくとも１つとの間に競合を引き起こすか否かを識別するためにテーブルセットを分析するステップと、競合が識別されないことに基づいて車両アプリケーションを実行させると決定するステップと、を含むステップを車載コンピュータに実行させるようになっているコンピュータコードを記憶する車両の非一時的メモリを含むコンピュータプログラム製品を含む。
この態様の別の実施形態は、各々が方法の作用を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。
【００２４】
実施例は、以下の特性のうちの１つ以上を含みうる。
第１競合テーブルが、車載コンピュータによって車両アプリケーションが使用可能なときの車両コンテキスト、車両コンテキストが適用される第１セットの時間の間の車両アプリケーションの第１リソース使用状態、および車両コンテキストが適用されない第２セットの時間の間の車両アプリケーションの第２リソース使用状態を記述するデジタルデータを含む、コンピュータプログラム製品。
車両が自律走行車両であるコンピュータプログラム製品。
車両が高度自律走行車両であるコンピュータプログラム製品。
車両アプリケーションが先進運転支援システムであるコンピュータプログラム製品。
車載コンピュータが電子制御ユニットであるコンピュータプログラム製品。
記載される技術の実施例は、ハードウェア、方法またはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含みうる。
【００２５】
１つの一般的な態様は、プロセッサによって実行された場合に、
車載コンピュータに車両アプリケーションをインストールする要求を受け付けるステップと、車両アプリケーションから第１競合テーブルを取得するステップと、車載コンピュ
ータにインストールされた他の車両アプリケーションのための１つ以上の第２競合テーブルを含むテーブルセットと第１競合テーブルをマージするステップと、車両アプリケーションを実行させることで、車両アプリケーションと他の車両アプリケーションのうちの少なくとも１つとの間に競合を引き起こすか否かを識別するためにテーブルセットを分析するステップと、競合が識別されないことに基づいて車両アプリケーションを実行させると決定するステップと、を含むステップをプロセッサに実行させるようになっているコンピュータ実行可能コードを記憶する非一時的メモリと通信可能に結合されたプロセッサを含む車両のシステムを含む。
この態様の別の実施形態は、各々が方法の作用を実行するように構成された、対応するコンピュータシステム、装置、および１つ以上のコンピュータ記憶装置に記録されたコンピュータプログラムを含む。
【００２６】
実施例は、以下の特性のうちの１つ以上を含みうる。
第１競合テーブルが、車載コンピュータによって車両アプリケーションが使用可能なときの車両コンテキスト、車両コンテキストが適用される第１セットの時間の間の車両アプリケーションの第１リソース使用状態、および車両コンテキストが適用されない第２セットの時間の間の車両アプリケーションの第２リソース使用状態を記述するデジタルデータを含む、システム。
車両が自律走行車両であるシステム。
車両が高度自律走行車両であるシステム。
車両アプリケーションが先進運転支援システムであるシステム。
車載コンピュータが電子制御ユニットであるシステム。
記載される技術の実施例は、ハードウェア、方法またはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含みうる。
【００２７】
本発明の一態様にかかる方法は、
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータによって実行される方法であって、第一の車両アプリケーションが前記車載コンピュータにインストールされる際に、前記第一の車両アプリケーションに付帯している、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルを取得し記憶する導入ステップと、前記第一の車両アプリケーションに付帯している前記競合テーブルと、前記車載コンピュータに既にインストールされている第二の車両アプリケーションに付帯している競合テーブルと、に基づいて、前記車両リソースに対する競合が発生するか否かを判定する判定ステップと、を含む。
【００２８】
また、本発明の別態様にかかる方法は、
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータによって実行される方法であって、前記車載コンピュータへのインストールが要求された第一の車両アプリケーションに、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルが付帯しているか否かを判定するステップと、前記第一の車両アプリケーションに前記競合テーブルが付帯している場合に前記第一の車両アプリケーションのインストールを許可し、前記第一の車両アプリケーションに前記競合テーブルが付帯していない場合に前記第一の車両アプリケーションのインストールを拒否するステップと、を含む。
【００２９】
また、本発明にかかるデータ構造は、
車載コンピュータにインストール可能であり、車両が有する複数の車両リソースを利用する車両アプリケーションに付帯する付帯データのデータ構造であって、前記車両アプリケーションが前記車両リソースを使用する必要条件を表す第一のデータと、前記第一のデータが示す条件下において、前記車両アプリケーションが使用する前記車両リソースを識
別する第二のデータと、を含み、前記第二のデータは、前記車載コンピュータによって、前記第一のデータが示す条件下において、複数の前記車両アプリケーションが同時に同一の車両リソースを使用しうるか否かを判定する処理に用いられることを特徴とする。
【００３０】
また、本発明の一態様にかかる車両システムは、
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータを含む車両システムであって、第一の車両アプリケーションが前記車載コンピュータにインストールされる際に、前記第一の車両アプリケーションに付帯している、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルを取得し記憶する導入手段と、前記第一の車両アプリケーションに付帯している前記競合テーブルと、前記車載コンピュータに既にインストールされている第二の車両アプリケーションに付帯している競合テーブルと、に基づいて、前記車両リソースに対する競合が発生するか否かを判定する判定手段と、を有する。
【００３１】
また、本発明の別態様にかかる車両システムは、
複数の車両リソースを有する車両に搭載され、車両アプリケーションを実行可能な車載コンピュータを含む車両システムであって、前記車載コンピュータへのインストールが要求された第一の車両アプリケーションに、前記第一の車両アプリケーションが利用する前記車両リソースに関する情報を含む競合テーブルが付帯しているか否かを判定する手段と、前記第一の車両アプリケーションに前記競合テーブルが付帯している場合に前記第一の車両アプリケーションのインストールを許可し、前記第一の車両アプリケーションに前記競合テーブルが付帯していない場合に前記第一の車両アプリケーションのインストールを拒否する手段と、を有する。
【００３２】
本開示は、添付図面の図において、限定ではなく例示によって示されており、これらの図面では、類似の要素を指すために類似の参照番号が使用されている。
【図面の簡単な説明】
【００３３】
【図１】一実施形態による、競合システムおよび競合テーブルを含む第１車両アプリケーションのための動作環境を示すブロック図である。
【図２】一実施形態による競合システムを含む例示的なコンピュータシステムを示すブロック図である。
【図３】一実施形態による競合テーブルの例を示すブロック図である。
【図４】一実施形態による競合テーブルの例を示すブロック図である。
【図５】一実施形態による競合テーブルの例を示すブロック図である。
【図６】一実施形態による競合テーブルの例を示すブロック図である。
【図７】一実施形態によるリソースセットの例を示すブロック図である。
【図８】一実施形態によるコンテキストセットの例を示すブロック図である。
【図９】一実施形態によるテーブルセットの例を示すブロック図である。
【図１０】一実施形態によるテーブルセットの例を示すブロック図である。
【図１１】一実施形態によるテーブルセットの例を示すブロック図である。
【図１２】一実施形態による、テーブルセットに基づいて２つ以上の車両アプリケーションの間の競合を判断するための例示的な方法を示すブロック図である。
【図１３】一実施形態による、車両アプリケーションを実行すべきか否かを判断するためのプロセスフローの一例を示すブロック図である。
【発明を実施するための形態】
【００３４】
本明細書で説明されるのは、プラグアンドプレイエコシステムを有する車両の車両アプリケーション間の競合を有益に排除する、競合システムおよび競合プロトコルの実施形態である。
【００３５】
いくつかの実施形態では、「競合プロトコル」とは、どの車両アプリケーション（たとえば、ＡＤＡＳシステム）が車両にインストールされるか、または、別途プラグアンドプレイエコシステムにおいて利用可能となることを許可されるかを記述する、規則のセットである。たとえば、競合プロトコルは、全ての車両アプリケーションがそれらの基礎となるコンピュータコードに競合テーブルを含むことを要求する。競合プロトコルは、競合システムが、車両アプリケーションが競合テーブルを含むか否かを評価できるように、各車両アプリケーションが基礎となるコンピュータコードの中の１つ以上の箇所に競合テーブルを含むことを指定する。
すなわち、本明細書で提唱する競合テーブルを含んでいる車両アプリケーションは、競合プロトコルに準拠していると言える。
【００３６】
いくつかの実施形態では、競合プロトコルは、競合テーブルに対する一連の要件を指定する。たとえば、各車両アプリケーション向けの競合テーブルは、異なるコンテキスト（たとえば、１つ以上の車両速度）の間の競合テーブルを含む特定の車両アプリケーションのリソース使用状態、ならびに全てのコンテキスト（たとえば、ソフトウェアが実行しているときはいつでも）での車両アプリケーションのリソース使用状態を記述することが要求される。リソースの例は、いくつかの実施形態による図７に示されている。競合テーブルの例は、いくつかの実施形態による図３から図６に示されている。
本明細書では、コンテキストないし車両コンテキストとは、車両の状態を指す。
【００３７】
競合システムは、車載コンピュータにインストールされたコードおよびルーチンを含む。いくつかの実施形態では、競合システムのコードおよびルーチンは、車載コンピュータによって実行された場合に、車載コンピュータに以下のステップのうちの１つ以上を実行させるようになっている。
（ステップ１）車両アプリケーションが競合テーブルを含むか否かを判断する（すなわち、車両アプリケーションが競合プロトコルに準拠しているか否かを判断する）ために、車両アプリケーションがインストールされる前にこれらを分析する。
（ステップ２）競合テーブルを含まない任意の車両アプリケーションのインストールを防止する。
（ステップ３）車両アプリケーションが車両にインストールされた際に、各車両アプリケーションの競合テーブルを統合する。
（ステップ４）実行時に、キューに入れられた車両アプリケーションと１つ以上のアクティブな車両アプリケーションとの間に競合があるか否かを判断するために、１つ以上のアクティブな車両アプリケーションおよび動作がアクティブになるためにキューに入れられた車両アプリケーションの競合テーブル（たとえば、車載コンピュータは車両アプリケーションを実行しようとするので）を分析する。ステップ４において競合がない場合には、競合システムはステップ５を実行する。ステップ４において競合がある場合には、競合システムはステップ６を実行する。
ステップ５において、競合システムは、キューに入れられた車両アプリケーションが実行または起動できるようにする。
ステップ６において、競合システムは、キューに入れられた車両アプリケーションを実行することによって発生したはずの競合が回避されるように、キューに入れられた車両アプリケーションが実行するのを防止するように車両のソフトウェアプラットフォームのハードウェアコントローラの動作を制御することによって、競合を緩和する。
これらのステップを実行することで、競合システムは、プラグアンドプレイエコシステムが、リソース競合が発生する前に車両アプリケーションの間のリソース競合を識別してこれらの競合が発生しないように競合を緩和するための対策を講じることができるようにすることによって、車両の性能を有益に向上させる。競合システムはまた、このような競合が車両またはその乗客にとって致命的な問題を引き起こさないことを、有益に保証する
。
【００３８】
図１を参照すると、いくつかの実施形態による、競合システム１９９および競合テーブル１９８を含む第１車両アプリケーション１８１のための動作環境１００を示すブロック図が示されている。図示されるように、動作環境１００は、以下の要素、すなわち第１車両アプリケーション１８１、および車両１２３を含む。
【００３９】
いくつかの実施形態では、動作環境１００は、第２車両アプリケーション１８２を含む。競合システム１９９は、プロセッサ１２５によって実行された場合に、競合プロトコルを実施するようになっているコードおよびルーチンを含む。競合プロトコルは、競合システム１９９に記憶され、どの車両アプリケーションが車両１２３にインストールされているか（たとえば、車両１２３の電子制御ユニット１２２にインストールされているか）を管理する、規則のセットである。競合プロトコルは、車両１２３にインストールされたいずれか特定の車両アプリケーションが、コンピュータコードの一部として、そのコンピュータコードが競合テーブルを含む特定の車両アプリケーションに固有の競合テーブル（競合テーブル１９８など）を含まなければならないことを、要求する。
【００４０】
図１に示されるように、第１車両アプリケーション１８１は、そのコンピュータコードが競合テーブル１９８を含む。すなわち、競合プロトコルに準拠している。したがって、第１車両アプリケーション１８１は、車両１２３のメモリ１２７に記憶されているものとして図１に示されている。第２車両アプリケーション１８２は競合テーブルを記憶していないので、第２車両アプリケーション１８２は競合プロトコルに準拠していない。したがって、競合システム１９９は第２車両アプリケーション１８２を車両１２３にインストールさせないので、第２車両アプリケーション１８２はメモリ１２７にインストールされていない。この例示的な方法では、たとえば、競合テーブルがなければ、車両アプリケーションを実行することで、これらの車両アプリケーションが同時に実行されたときに車両にインストールされた他の車両アプリケーションとの競合が生じるか否かを知りえないので、競合システム１９９は、競合プロトコルに準拠していない車両アプリケーションが車両１２３にインストールされていないプラグアンドプレイエコシステムを有効化することによって車両１２３の性能を向上させる。この説明の残りの部分では、第１車両アプリケーション１８１は「車両アプリケーション１８１」と称される。
【００４１】
車両１２３は、車道ベースの乗り物である。たとえば、車両１２３は、自動車、トラック、スポーツ用多目的車両、バス、セミトラック、ドローン、またはその他の車道ベースの乗り物のうちの１つである。
【００４２】
いくつかの実施形態では、車両１２３は自律走行車両である。たとえば、車両１２３は、レベル１自律走行車両、レベル２自律走行車両、レベル３自律走行車両、レベル４自律走行車両、レベル５自律走行車両のうちの１つである。いくつかの実施形態では、車両１２３はＨＡＶである。ＨＡＶは、そのＡＤＡＳシステムのセットがレベル３以上で動作するのに十分な自律機能を提供する、自律走行車両である。いくつかの実施形態による、車両１２３用の車載コンピュータの一例が、図２に示されている。
【００４３】
図１に示されるように、車両１２３は、電子制御ユニット（ＥＣＵ１２２）を含む。ＥＣＵ１２２は車載コンピュータシステムである。いくつかの実施形態では、図２に示されるコンピュータシステム２００は、ＥＣＵ１２２の一例である。
【００４４】
図１に示されるように、車両１２３は、プロセッサ１２５、通信ユニット１４５、リソースセット１７０、ハードウェアコントローラ１８９、メモリ１２７を含む。
【００４５】
プロセッサ１２５は、計算を実行し、ＥＣＵ１２２（または図２に示されるコンピュータシステム２００）の機能を提供するのに必要な電子信号を供給する、算術論理装置、マイクロプロセッサ、汎用コントローラ、またはその他何らかのプロセッサアレイを含む。プロセッサ１２５は、データ信号を処理し、復号命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組み合わせを実現するアーキテクチャを含む様々な計算アーキテクチャを含みうる。ＥＣＵ１２２（またはコンピュータシステム２００）は、１つ以上のプロセッサ１２５を含みうる。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成もまた可能である。いくつかの実施形態では、１つ以上のプロセッサ１２５は、ＥＣＵ１２２（またはコンピュータシステム２００）の車載コンピュータまたは電子制御ユニットの一要素である。
【００４６】
通信ユニット１４５は、電子メッセージを送受信するようになっている電子通信インターフェースである。いくつかの実施形態では、通信ユニット１４５は、ＥＣＵ１２２との直接的な物理接続のためのポートを含む。たとえば、通信ユニット１４５は、ＥＣＵ１２２との有線通信のための、ユニバーサルシリアルバス（ＵＳＢ）、セキュアデジタル（ＳＤ）、ＣＡＴ−５、または類似のポートを含む。
【００４７】
いくつかの実施形態では、通信ユニット１４５は、以下のうちの１つ以上を含む、１つ以上の無線通信方法を使用して、ＥＣＵ１２２およびその他の通信可能装置とデータを交換するための無線トランシーバを含む。ＩＥＥＥ８０２．１１；ＩＥＥＥ８０２．１６，ＢＬＵＥＴＯＯＴＨ（登録商標）；ＥＮ  ＩＳＯ１４９０６：２００４自動料金収受−アプリケーションインターフェースＥＮ１１２５３：２００４専用狭域通信−５．８ＧＨｚのマイクロ波を用いる物理層（レビュー）；ＥＮ１２７９５：２００２専用狭域通信（ＤＳＲＣ）−ＤＳＲＣデータリンク層：媒体アクセスおよび論理リンク制御（レビュー）；ＥＮ１２８３４：２００２専用狭域通信−アプリケーション層（レビュー）；ＥＮ１３３７２：２００４専用狭域通信（ＤＳＲＣ）−ＲＴＴＴアプリケーション用ＤＳＲＣプロファイル（レビュー）；２０１４年８月２８日出願の「Ｆｕｌｌ−Ｄｕｐｌｅｘ  Ｃｏｏｒｄｉｎａｔｉｏｎ  Ｓｙｓｔｅｍ」と題された米国特許出願第１４／４７１，３８７号明細書に記載される通信方法；およびその他の適切な無線通信方法。
【００４８】
いくつかの実施形態では、通信ユニット１４５は、米国特許出願第１４／４７１，３８７号明細書に記載されるような全二重連携システムを含む。
【００４９】
いくつかの実施形態では、通信ユニット１４５は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール、または他の適切なタイプの電子通信を含むセルラー通信ネットワークを通じてデータを送受信するための、セルラー通信トランシーバを含む。いくつかの実施形態では、通信ユニット１４５は、有線ポートおよび無線トランシーバを含む。通信ユニット１４５はまた、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、およびＳＭＴＰ、ミリ波、ＤＳＲＣを含む標準的なネットワークプロトコルを使用するファイルまたはメディアオブジェクトの配信のために、１つ以上の無線ネットワーク（たとえば、車内無線ネットワーク）への他の従来の接続を提供する。
【００５０】
いくつかの実施形態では、通信ユニット１４５は、図１２を参照して以下に記載される要求のうちの１つ以上を受信する。いくつかの実施形態では、１つ以上の車両アプリケーションが、通信ユニット１４５を介して車両１２３にインストールされる。たとえば、車両アプリケーション１８１を記述するデジタルデータが通信ユニット１４５を介して受信され、車両アプリケーション１８１が競合プロトコルに準拠していれば、競合システム１９９によってメモリ１２７にインストールされる。
【００５１】
信号線１４０は、車両アプリケーション１８１が競合テーブル１９８を含み、したがって競合プロトコルに準拠していると競合システム１９９が判断した場合に、車両アプリケーション１８１をインストールするために、通信ユニット１４５によって使用される。
【００５２】
信号線１４１は、第２車両アプリケーション１８２が競合プロトコルに準拠しておらず、したがって車両１２３にインストールされえないと判断するのに十分なデジタルデータを競合システム１９９に提供するために、通信ユニット１４５によって使用される。
【００５３】
リソースセット１７０は、車両機能を提供する１つ以上のリソースのセットである。リソースは、車両１２３のコンポーネントに有用性を提供する車両用装置である。たとえば、リソースは、車両アプリケーション１８１に有用性を提供する車両装置である。リソースセット１７０に含まれる１つ以上のリソースの例は、図７に示されている。リソースセット１７０に含まれる１つ以上のリソースは、信号線１４３を介してハードウェアコントローラ１８９と通信可能に結合されている。
【００５４】
ハードウェアコントローラ１８９は、どの車両アプリケーション（たとえば、メモリ１２７に記憶される車両アプリケーション１８１や他の車両アプリケーション）がリソースセット１７０に含まれるリソースにアクセスできるかを制御するようになっている、コントローラである。
【００５５】
いくつかの実施形態では、ハードウェアコントローラ１８９は、ハードウェアコントローラ１８９の許可を除いて車両１２３のいずれの車両アプリケーションによってもアクセス可能なリソースセット１７０のリソースがないように、車両アプリケーションとリソースセット１７０に含まれる１つ以上のリソースとの間にアーキテクチャ的に位置している。たとえば、車両アプリケーション１８１は、リソースセット１７０に含まれるセンサからのセンサデータを必要とするＡＤＡＳシステムであると仮定する。この例では、ＡＤＡＳシステムは、リソースセット１７０のこの特定のセンサにアクセスするためにハードウェアコントローラ１８９からの許可を受信しなければ、センサを作動させることもセンサデータを受信することもできない。
【００５６】
いくつかの実施形態では、競合システム１９９は、リソースの同時使用、または車両１２３もしくは特定のリソースの仕様を超える特定のリソースの使用によって競合が発生しないように、テーブルセット１９７に基づいて、ハードウェアコントローラ１８９の動作を制御する。
【００５７】
メモリ１２７は、ＥＣＵ１２２（またはコンピュータシステム２００）などの車両１２３の車載コンピュータによってアクセスおよび実行されうる命令またはデータを記憶する、非一時的記憶媒体である。命令またはデータは、本明細書に記載される技術を実行するためのコードを含む。メモリ１２７は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置、スタティックランダムアクセスメモリ（ＳＲＡＭ）装置、フラッシュメモリ、またはその他何らかのメモリ装置である。いくつかの実施形態では、メモリ１２７はまた、より恒久的に情報を記憶するための、ハードディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ  ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置、またはその他何らかの大容量記憶装置を含む不揮発性メモリまたは類似の永久記憶装置および媒体を含む。メモリ１２７の一部は、バッファまたは仮想ランダムアクセスメモリ（仮想ＲＡＭ）として使用するために確保される。
【００５８】
図示されるように、メモリ１２７は、競合システム１９９、テーブルセット１９７、キュー１８８、（各々が固有の競合テーブル１９８を含むので）競合プロトコルに準拠して
いる１つ以上の車両アプリケーション１８１を記憶する。
【００５９】
図１では１つの車両アプリケーション１８１のみがメモリ１２７に記憶されるものとして示されているが、実際にはメモリ１２７は、各々が互いに異なる機能を提供する複数の車両アプリケーション１８１を記憶しうる。たとえば、メモリ１２７は、各々が互いに異なる機能を提供する、複数の異なるＡＤＡＳシステムを記憶しうる。
【００６０】
競合テーブル１９８は、異なるコンテキスト（たとえば、１つ以上の車両速度）の間の競合テーブル１９８を含む特定の車両アプリケーション１８１のリソース使用状態、ならびに全てのコンテキスト（たとえば、ソフトウェアが実行しているときはいつでも）での車両アプリケーション１８１のリソース使用状態を記述するデータ構造である。競合テーブルの例は、いくつかの実施形態による図３から図６に示されている。
【００６１】
いくつかの実施形態では、競合テーブル１９８は、車両アプリケーション１８１が車両１２３の車載コンピュータ（たとえば、ＥＣＵ１２２）によって使用可能なときの車両コンテキスト（たとえば、車両１２３の速度）、車両コンテキストが適用されるとき（たとえば、車両１２３が時速２０マイル超の速度で走行しているとき）の第１セットの時間の間の車両アプリケーション１８１の第１リソース使用状態、車両コンテキストが適用されないとき（たとえば、車両の速度が時速２０マイルを超えない時はいつも）の第２セットの時間の間の車両アプリケーション１８１の第２リソース使用状態、を記述するデータ構造である。
換言すると、競合テーブル１９８は、車両コンテキストごとに、どの車両アプリケーションがどの車両リソースにアクセスしうるかを記述したテーブルである。すなわち、車両リソースを使用する必要条件と、当該条件下において使用される車両リソースを関連付けたテーブルである。
競合テーブルは、アプリケーションごとに定義されたものであってもよいし、複数のアプリケーションが有する競合テーブルを統合したものであってもよい。
【００６２】
車両アプリケーション１８１は、プロセッサ１２５によって実行された場合に、プロセッサ１２５に車両機能を車両１２３に提供させるようになっている、コードおよびルーチンを含む。たとえば、車両アプリケーション１８１は、特定のＡＤＡＳ機能を車両１２３に提供するＡＤＡＳシステムである。
【００６３】
車両アプリケーション１８１の例は、以下のＡＤＡＳシステム、すなわち、アダプティブクルーズコントロール（ＡＣＣ）システム、アダプティブハイビームシステム、アダプティブライトコントロールシステム、自動駐車システム、自動車用ナイトビジョンシステム、死角モニタ、衝突回避システム、横風安定化システム、運転者眠気検出システム、運転者監視システム、緊急時運転者支援システム、前方衝突警告システム、交差点支援システム、インテリジェント速度適応システム、車線逸脱警告システム、歩行者保護システム、道路標識認識システム、右左折支援、および逆走警告システムのうちの１つ以上である。これらの例示的なＡＤＡＳシステムの各々は、本明細書においてそれぞれ「ＡＤＡＳ特性」または「ＡＤＡＳ機能」と称されうる、自身の特性および機能を提供する。これらの例示的なＡＤＡＳシステム１８０によって提供される特性および機能はまた、本明細書においてそれぞれ「自律特性」または「自律機能」とも称される。
【００６４】
いくつかの実施形態では、車両アプリケーションによって提供される自律特性および自律機能は、レベル１自律走行車両、レベル２自律走行車両、レベル３自律走行車両、レベル４自律走行車両、およびレベル５自律走行車両のうちの１つ以上として車両１２３を分類するのに十分である。いくつかの実施形態では、車両１２３はＨＡＶである。ＨＡＶは、その車両アプリケーションが、全体として見ると、レベル３以上で動作するのに十分な
自律機能を提供する、自律走行車両である。いくつかの実施形態による、車両１２３用の車載コンピュータの一例が、図２に示されている。いくつかの実施形態では、図２は車両１２３のＥＣＵ１２２を示す。
【００６５】
ＡＤＡＳシステムはまた、その車両１２３を自律走行車両または半自律走行車両にする、車両に含まれる任意のソフトウェアまたはハードウェアも含みうる。
【００６６】
いくつかの実施形態では、車両アプリケーション１８１は、その機能を提供するために、リソースセットに含まれるリソースのうちの１つ以上を使用する。
【００６７】
テーブルセット１９７は、２つ以上の車両アプリケーション１８１のための２つ以上の競合テーブル１９８の組み合わせを記述するデジタルデータである。テーブルセット１９７の例は、いくつかの実施形態による図９から図１１に示されている。
【００６８】
キュー１８８は、（１）実行されるのを待っている車両アプリケーション１８１のリスト、および、（２）現在アクティブな（たとえば、現在実行されている）車両アプリケーション１８１のリスト、を記憶する非一時的メモリの一部である。
【００６９】
競合システム１９９は、ＥＣＵ１２２にインストールされたコードおよびルーチンを含む。いくつかの実施形態では、競合システム１９９のコードおよびルーチンは、プロセッサ１２５によって実行された場合に、プロセッサ１２５に以下のステップのうちの１つ以上を実行させるようになっている。
（ステップ１）競合テーブル１９８を含むか否かを判断する（すなわち、車両アプリケーション１８１および１８２が競合プロトコルに準拠しているか否かを判断する）ために車両アプリケーション１８１および１８２が車両１２３にインストールされる前にこれらを分析する。
（ステップ２）競合テーブル１９８を含まない任意の車両アプリケーションのインストールを防止する（たとえば、第２車両アプリケーション１８２は競合テーブル１９８を含まない）。
（ステップ３）車両アプリケーション１８１が車両１２３にインストールされた際に、各車両アプリケーション１８１の競合テーブル１９８を統合する。
（ステップ４）実行時に、キューに入れられた車両アプリケーションと１つ以上のアクティブな車両アプリケーションとの間に競合があるか否かを判断するために、１つ以上のアクティブな車両アプリケーションおよび動作がアクティブになるためにキューに入れられた車両アプリケーションの競合テーブル１９８（たとえば、プロセッサ１２５は車両アプリケーションを実行しようとするので）を分析する。
ステップ４において競合がない場合には、競合システム１９９はステップ５を実行する。
ステップ４において競合がある場合には、競合システム１９９はステップ６を実行する。
ステップ５において、競合システム１９９は、キューに入れられた車両アプリケーションが実行または起動できるようにする。
ステップ６において、競合システム１９９は、キューに入れられた車両アプリケーションを実行することによって発生したはずの競合が回避されるように、キューに入れられた車両アプリケーションが実行するのを防止するように車両１２３のハードウェアコントローラ１８９の動作を制御することによって、競合を緩和する。
これらのステップを実行することで、競合システム１９９は、プラグアンドプレイエコシステムが、リソース競合が発生する前に車両アプリケーション１８１の間のリソース競合を識別してこれらの競合が発生しないように競合を緩和するための対策を講じることができるようにすることによって、車両１２３の性能を有益に向上させる。競合システム１
９９はまた、このような競合が車両１２３にとって致命的な問題を引き起こさないことを、有益に保証する。
【００７０】
いくつかの実施形態では、競合システム１９９は、図１２に示される方法１２００の１つ以上のステップを実行する。
【００７１】
いくつかの実施形態では、競合システム１９９は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（「ＡＳＩＣ」）を含むハードウェアを使用して実現される。いくつかの他の実施形態では、競合システム１９９は、ハードウェアおよびソフトウェアの組み合わせを使用して実現される。競合システム１９９は、装置の組み合わせ（たとえば、１つ以上のＥＣＵ１２２）、または装置のうちの１つに記憶されうる。競合システム１９９の追加の要素は、いくつかの実施形態による図２に示されている。
【００７２】
ここで図２を参照すると、いくつかの実施形態による競合システムを含む例示的なコンピュータシステム２００を示すブロック図が示されている。
【００７３】
いくつかの実施形態では、コンピュータシステム２００は、図１２を参照して以下に記載される方法１２００の１つ以上のステップを実行するようにプログラムされた、専用コンピュータシステムである。
【００７４】
いくつかの実施形態では、コンピュータシステム２００は、車両１２３の車載コンピュータである。たとえば、コンピュータシステム２００はＥＣＵ１２２である。
【００７５】
いくつかの実施形態では、コンピュータシステム２００は、車両１２３の車載ユニット、ＥＣＵ、ヘッドユニット、またはその他何らかのプロセッサベースの計算装置である。
【００７６】
コンピュータシステム２００は、いくつかの例によれば、以下の要素、すなわち、競合システム１９９、プロセッサ１２５、メモリ１２７、通信ユニット１４５、およびハードウェアコントローラ１８９のうちの１つ以上を含む。コンピュータシステム２００のこれらのコンポーネントは、バス２２０によって通信可能に結合されている。
【００７７】
図示される実施形態では、プロセッサ１２５は信号線２３８を介してバス２２０と通信可能に結合されている。メモリ１２７は、信号線２４４を介してバス２２０と通信可能に結合されている。通信ユニット１４５は、信号線２４６を介してバス２２０と通信可能に結合されている。ハードウェアコントローラ１８９は、信号線２３９を介してバス２２０と通信可能に結合されている。
【００７８】
図１を参照して上記で記載されたコンピュータシステム２００のこれらの要素、およびその説明は、ここでは繰り返されない。すなわち、競合システム１９９、プロセッサ１２５、メモリ１２７、通信ユニット１４５、およびハードウェアコントローラ１８９である。
【００７９】
いくつかの実施形態では、メモリ１２７は、本明細書に記載されるデータ、情報、またはメッセージのいずれかを記憶する。メモリ１２７は、その機能を提供するためにコンピュータシステム２００にとって必要な任意のデータを記憶しうる。
【００８０】
図２に示される実施形態では、競合システム１９９は、通信モジュール２０２および判断モジュール２０４を含む。
【００８１】
通信モジュール２０２は、競合システム１９９とコンピュータシステム２００の他のコンポーネントとの間の通信を取り扱うためのルーチンを含むソフトウェアである。いくつかの実施形態では、通信モジュール２０２は、競合システム１９９とコンピュータシステム２００の他のコンポーネントとの間の通信を取り扱うための以下に記載される機能を提供するためにプロセッサ１２５によって実行可能な命令セットである。
【００８２】
通信モジュール２０２は、通信ユニット１４５を介して、動作環境１００の１つ以上の要素との間でデータを送受信する（たとえば、図１参照）。たとえば、通信モジュール２０２は、通信ユニット１４５を介して、メモリ１２７に記憶されるデータ、または本明細書に記載されるメッセージ（たとえば、要求）のいずれかを送受信する。通信モジュール２０２は、通信ユニット１４５を介して本明細書に記載されるデータまたはメッセージのいずれかを送受信する。
【００８３】
いくつかの実施形態では、通信モジュール２０２は、車両アプリケーション１８１および１８２が競合テーブルを含むか否かを記述するデジタルデータを含む１つ以上のメッセージを、通信ユニット１４５から受信する。
【００８４】
いくつかの実施形態では、通信モジュール２０２は、競合システム１９９のコンポーネント間の通信を取り扱いうる。
【００８５】
いくつかの実施形態では、通信モジュール２０２は、コンピュータシステム２００のメモリ１２７に記憶されることが可能であり、プロセッサ１２５によってアクセスおよび実行可能である。通信モジュール２０２は、信号線２２２を介してプロセッサ１２５およびコンピュータシステム２００の他のコンポーネントとの協働および通信に適合する。
【００８６】
判断モジュール２０４は、図１２に示される方法１２００の１つ以上のステップを実行するためのルーチンを含むソフトウェアでありうる。いくつかの実施形態では、判断モジュール２０４は、以下のステップのうちの１つ以上を実行するためのルーチンを含むソフトウェアである。
（ステップ１）競合テーブル１９８を含むか否かを判断する（すなわち、車両アプリケーション１８１および１８２が競合プロトコルに準拠しているか否かを判断する）ために車両アプリケーション１８１および１８２が車両１２３にインストールされる前にこれらを分析する。
（ステップ２）競合テーブル１９８を含まない任意の車両アプリケーションのインストールを防止する（たとえば、第２車両アプリケーション１８２は競合テーブル１９８を含まない）。
（ステップ３）車両アプリケーション１８１が車両１２３にインストールされた際に各車両アプリケーション１８１の競合テーブル１９８を統合する。
（ステップ４）実行時に、キューに入れられた車両アプリケーションと１つ以上のアクティブな車両アプリケーションとの間に競合があるか否かを判断するために、１つ以上のアクティブな車両アプリケーションおよび動作がアクティブになるためにキューに入れられた車両アプリケーションの競合テーブル１９８（たとえば、プロセッサ１２５は車両アプリケーションを実行しようとするので）を分析する。
ステップ４において競合がない場合には、競合システム１９９はステップ５を実行する。
ステップ４において競合がある場合には、競合システム１９９はステップ６を実行する。
ステップ５において、競合システム１９９は、キューに入れられた車両アプリケーションが実行または起動できるようにする。
ステップ６において、競合システム１９９は、キューに入れられた車両アプリケーショ
ンを実行することによって発生したはずの競合が回避されるように、キューに入れられた車両アプリケーションが実行するのを防止するように車両１２３のハードウェアコントローラ１８９の動作を制御することによって、競合を緩和する。
【００８７】
いくつかの実施形態では、判断モジュール２０４は、コンピュータシステム２００のメモリ１２７に記憶されることが可能であり、プロセッサ１２５によってアクセスおよび実行可能である。判断モジュール２０４は、信号線２２４を介してプロセッサ１２５およびコンピュータシステム２００の他のコンポーネントとの協働および通信に適合する。
【００８８】
図３から図６は、いくつかの実施形態による例示的な競合テーブル３９９，４９９，５９９，６９９を示すブロック図である。これらの競合テーブル３９９，４９９，５９９，６９９は、例示によって提供され、限定を意図するものではない。図３から図６に示される概念は、互いを基礎として構築され、図３から図６のこれらの競合テーブル３９９，４９９，５９９，６９９の組み合わせから形成されるいくつかの実施形態によるテーブルセットの例を実証するために、図９から図１１において再び言及される。
【００８９】
ここで図３を参照すると、いくつかの実施形態による第１の例示的車両アプリケーション３００に対応する例示的な競合テーブル３９９を示すブロック図が示されている。いくつかの実施形態では、第１の例示的車両アプリケーション３００は、車線維持（ＬＫＡ）システムの第１の例である。
【００９０】
図３に示される競合テーブル３９９の右側の列は、「コンテキスト列」と称される。図４から図６は、異なる車両アプリケーション４００，５００，６００の異なる競合テーブル４９９，５９９，６９９を示す。その各々は、図３に示される第１の例示的車両アプリケーション３００のものとはわずかに異なるコンテキスト列を有する。これは、異なる例示的車両アプリケーション３００，４００，５００，６００のリソース使用状態が、異なる車両コンテキストでは異なる関連の仕方をするからである。たとえば、ある車両アプリケーションのリソース使用状態は車両の速度に基づいてのみ関連し、その一方で異なる車両アプリケーションのリソース使用状態は、車両の速度および車両のウインカーの１つが使用中か否かに基づいて関連する。また、リソース使用状態が車両の速度によって影響を受ける車両アプリケーションのうち、第１車両アプリケーションは、そのリソース使用状態が第１の速度閾値（たとえば、時速２０マイル以上）によって関連付けられ、その一方で異なる車両アプリケーションは、そのリソース使用状態が第２の速度閾値（たとえば、時速１５マイル未満）によって関連付けられる。
【００９１】
図３では、１つの車両コンテキストのみ、すなわち車両の速度および速度が時速２０マイルを超えるか否かが、第１の例示的車両アプリケーションの動作に関係する。
【００９２】
図示される実施形態では、競合テーブル３９９は、車両コンテキスト３０１を記述するセルを含む。ここで、車両コンテキスト３０１は、「車両の速度が時速２０マイルを超えるか否か」である。
【００９３】
図示される実施形態では、競合テーブル３９９は、車両が時速２０マイル超の速度で走行しているときに関連する第１リソース使用状態３０２のセットを記述する列を含む。具体的には、車両が時速２０マイル超の速度で走行しているとき、第１の例示的車両アプリケーション３００は、以下のリソース要件を有する。
・エンジンの使用（たとえば、エンジンの制御）が第１の例示的車両アプリケーション３００によって必要とされない
・ステアリングハードウェアの使用が必要とされる
・車両の電子ディスプレイへの独占的なアクセスが必要とされない（たとえば、情報娯楽
システムなどの他の車両アプリケーションがディスプレイにアクセスすることが許容されるので、アクセスは「切り替え可能」である）
・通信ユニット１４５の送信機へのアクセスが必要とされない
・通信ユニット１４５の受信機へのアクセスが必要とされない
・３０ミリ秒サイクルあたり１０ミリ秒の頻度で車両のプロセッサへのアクセスが必要とされる
・１メガバイトのＲＡＭへのアクセスが必要とされる。
【００９４】
競合テーブル３９９は、車両が時速２０マイル以下の速度で走行しているときに常に適用される第２リソース使用状態３０３のセットを列挙する列を含む。具体的には、車両が時速２０マイル以下の速度で走行しているとき、第１の例示的車両アプリケーション３００は、以下のリソース要件を有する。
・エンジンの使用（たとえば、エンジンの制御）が第１の例示的車両アプリケーション３００によって必要とされない
・ステアリングハードウェアの使用が必要とされない
・車両の電子ディスプレイの使用が必要とされない
・通信ユニット１４５の送信機へのアクセスが必要とされない
・通信ユニット１４５の受信機へのアクセスが必要とされない
・３０ミリ秒サイクルあたり０．１ミリ秒の頻度で車両のプロセッサへのアクセスが必要とされる
・１０キロバイトのＲＡＭへのアクセスが必要とされる。
【００９５】
図３から図６および図９から図１１は、異なる車両アプリケーション向けのコンテキストテーブルを示す。これらのコンテキストテーブルの各々は、左側に様々なリソースを列挙する列を含む。これらのコンテキストテーブルの各々のリソースのリストに含まれるのは、ディスプレイである。ディスプレイは、図３から図６および図９から図１１に示されるコンテキストテーブルの各々に、自身の行を含む。この「ディスプレイ」行の用語および記号について、ここで説明する。「○」は、車両アプリケーションがその機能を提供するためにディスプレイの使用を必要とすることを意味する。「×」は、車両アプリケーションがその機能を提供するためにディスプレイの使用を必要としないことを意味する。「切り替え可能」は、車両アプリケーションがその機能を提供するためにディスプレイを使用するが、他の車両アプリケーション（たとえば、情報娯楽システム）もまたディスプレイを使用できることを意味する。「独占的」は、車両アプリケーションがその機能を提供するためにディスプレイの独占的な使用を必要とすることを意味する。
【００９６】
記号「○」および「×」は、ディスプレイのみならず、他のリソース（本明細書では「ハードウェア」と称されることもある）についての意味も有する。たとえば、「○」は、車両アプリケーションがその機能を提供するためにリソース／ハードウェアを必要とすることを意味し、「×」は、車両アプリケーションがその機能を提供するためにリソース／ハードウェアを必要としないことを意味する。
【００９７】
ここで図４を参照すると、いくつかの実施形態による第２の例示的車両アプリケーション４００に対応する例示的な競合テーブル４９９を示すブロック図が示されている。いくつかの実施形態では、第２の例示的車両アプリケーション４００はＬＫＡシステムの第２の例であり、その一方で図３の第１の例示的車両アプリケーション３００はＬＫＡシステムの第１の例である。
【００９８】
図４は、複数の車両コンテキストが第２の例示的車両アプリケーション４００の動作に関連することを示すことによって、図３の概念を基礎としている。
（１）車両の速度が時速２０マイルを超えているか否か
（２）車両のウインカーがオンかオフか。
たとえば、第２の例示的車両アプリケーション４００はＬＫＡシステムの第２の例であり、ウインカーがオンである場合には、車両の運転者は２つの車線を分けるラインを横切ろうとしており、これはＬＫＡシステムの動作に関連する。
【００９９】
図示される実施形態では、競合テーブル４９９は、車両コンテキスト４０１、すなわち車両の速度が時速２０マイルを超えているか否かおよび車両のウインカーがオンかオフかを記述するセルを含む。
【０１００】
図示される実施形態では、競合テーブル４９９は、車両が時速２０マイル超の速度で走行しておりウインカーがオフであるときに関連する、第１リソース使用状態４０２のセットを記述する列を含む。
具体的には、車両が時速２０マイル超の速度で走行しておりウインカーがオフであるとき、第２の例示的車両アプリケーション４００は、以下のリソース要件を有する。
・エンジンの使用（たとえば、エンジンの制御）が第２の例示的車両アプリケーション４００によって必要とされない
・ステアリングハードウェアの使用が必要とされる
・車両の電子ディスプレイへの独占的なアクセスが必要とされない（たとえば、他の車両アプリケーションがディスプレイにアクセスすることが許容されるので、アクセスは「切り替え可能」である）
・通信ユニット１４５の送信機へのアクセスが必要とされない
・通信ユニット１４５の受信機へのアクセスが必要とされない
・３０ミリ秒サイクルあたり１０ミリ秒の頻度で車両のプロセッサへのアクセスが必要とされる
・１メガバイトのＲＡＭへのアクセスが必要とされる。
【０１０１】
競合テーブル４９９は、以下のうちのいずれかが真であるときに常に適用される第２リソース使用状態４０３のセットを列挙する列を含む。
・車両が時速２０マイル以下で走行している
・車両のウインカーがオンである
具体的には、これらのうちのいずれかが真であるとき、第２の例示的車両アプリケーション４００は、以下のリソース要件を有する。
・エンジンの使用（たとえば、エンジンの制御）が第２の例示的車両アプリケーション４００によって必要とされない
・ステアリングハードウェアの使用が必要とされない
・車両の電子ディスプレイの使用が必要とされない
・通信ユニット１４５の送信機へのアクセスが必要とされない
・通信ユニット１４５の受信機へのアクセスが必要とされない
・３０ミリ秒サイクルあたり０．１ミリ秒の頻度で車両のプロセッサへのアクセスが必要とされる
・１０キロバイトのＲＡＭへのアクセスが必要とされる。
【０１０２】
ここで図５を参照すると、いくつかの実施形態による第３の例示的車両アプリケーション５００に対応する例示的な競合テーブル５９９を示すブロック図が示されている。いくつかの実施形態では、第３の例示的車両アプリケーション５００は駐車支援システムである。
【０１０３】
図示される実施形態では、競合テーブル５９９は、車両コンテキスト５０１、すなわち車両の速度が時速１５マイル未満であるか否かを記述するセルを含む。競合テーブル５９９は、車両が時速１５マイル未満の速度で走行しているときに関連する第１リソース使用
状態５０２のセットを記述する列を含む。競合テーブル５９９はまた、車両が時速１５マイル以上の速度で走行しているときに常に適用される第２リソース使用状態５０３のセットを列挙する列を含む。車両が時速１５マイル以上で走行しているとき、第３の例示的車両アプリケーション５００は、図５に示される中でもとりわけ、車両の電子ディスプレイへの独占的なアクセスを必要とする（たとえば、車両の運転手は、車両を駐車しているときに、車両の経路上の物体、ならびに第３の例示的車両アプリケーション５００によって提供される視覚的通知を見る必要があるので、安全の理由のため）。
【０１０４】
ここで図６を参照すると、いくつかの実施形態による第４の例示的車両アプリケーション６００に対応する例示的な競合テーブル６９９を示すブロック図が示されている。いくつかの実施形態では、第４の例示的車両アプリケーション６００は車線変更システムである。
【０１０５】
図示される実施形態では、競合テーブル６９９は、車両コンテキスト６０１、すなわち車両の速度が時速２０マイルを超えているか否かおよび車両のウインカーがオンかオフかを記述するセルを含む。
【０１０６】
図示される実施形態では、競合テーブル６９９は、車両が時速２０マイル超の速度で走行しておりウインカーがオンであるときに関連する、第１リソース使用状態６０２のセットを記述する列を含む。競合テーブル６９９はまた、以下のうちのいずれかが真であるときに常に適用される第２リソース使用状態６０３のセットを列挙する列を含む。
・車両が時速２０マイル以下で走行している
・車両のウインカーがオフである
【０１０７】
ここで図７を参照すると、いくつかの実施形態による例示的なリソース７００のセットを示すブロック図が示されている。いくつかの実施形態では、リソース７００のうちの１つ以上がリソースセット１７０に含まれている。
【０１０８】
ここで図８を参照すると、いくつかの実施形態による例示的なコンテキスト８００のセットを示すブロック図が示されている。いくつかの実施形態では、コンテキスト８００のうちの１つ以上は、競合テーブル１９８のコンテキスト列によって考慮されるコンテキストでありうる。
【０１０９】
図９を参照すると、第１の例示的車両アプリケーション３００向けの競合テーブル３９９および第３の例示的車両アプリケーション５００向けの競合テーブル５９９を含む、例示的なテーブルセット９００を示すブロック図が示されている。テーブルセット９００は、競合が発生しないので、第１の例示的車両アプリケーション３００および第３の例示的車両アプリケーション５００が同時に実行できることを示している。
【０１１０】
図１０を参照すると、第１の例示的車両アプリケーション３００向けの競合テーブル３９９および第４の例示的車両アプリケーション６００向けの競合テーブル６９９を含む、例示的なテーブルセット１０００を示すブロック図が示されている。テーブルセット１０００は、競合が発生するので、第１の例示的車両アプリケーション３００および第４の例示的車両アプリケーション６００が同時に実行すべきではないことを示している。具体的には、（１）車両が時速２０マイル超の速度で走行しているとき、および、（２）ウインカーがオンであるときに、第１の例示的車両アプリケーション３００および第４の例示的車両アプリケーション６００の両方が、ステアリングハードウェアへのアクセス、またはこれの制御を必要とする。これは、第１の例示的車両アプリケーション３００と第４の例示的車両アプリケーション６００との間の競合の一例である。
【０１１１】
図１１を参照すると、第２の例示的車両アプリケーション４００向けの競合テーブル４９９および第４の例示的車両アプリケーション６００向けの競合テーブル６９９を含む、例示的なテーブルセット１１００を示すブロック図が示されている。テーブルセット１１００は、競合が発生しないので、第２の例示的車両アプリケーション４００および第４の例示的車両アプリケーション６００が同時に実行しうることを示している。
【０１１２】
ここで図１２を参照すると、いくつかの実施形態による、テーブルセットに基づいて２つ以上の車両アプリケーションの間の競合を判断するための例示的な方法１２００の例示的なフロー図が示されている。
【０１１３】
ステップ１２０１において、車両アプリケーションをインストールする要求を受信する。
【０１１４】
ステップ１２０２において、競合プロトコルに準拠する競合テーブルが車両アプリケーション内に存在するか否かについて判断がなされる。競合テーブルが存在しない場合には、要求はステップ１２０４において拒否される。競合テーブルが存在する場合には、方法１２００はステップ１２０３に進む。
【０１１５】
ステップ１２０３において、車両アプリケーションのインストール要求が受け付けられる。
【０１１６】
ステップ１２０５において、車両アプリケーション向けの競合テーブルが取得され、非一時的メモリに記憶される。
【０１１７】
ステップ１２０７において、競合テーブルは、少なくとも１つのテーブルセットを形成するために、１つ以上の他の競合テーブルとマージされる。
【０１１８】
ステップ１２０９において、車両アプリケーションを実行する要求が受信される。車両アプリケーションは、キューに入れられたアプリケーションである。
【０１１９】
ステップ１２１１において、車両アプリケーションと、既にアクティブになっている１つ以上の他の車両アプリケーションとの間に競合が存在するか否かについて判断がなされる。競合が存在しない場合には、車両アプリケーションはステップ１２１３において実行され、その機能を提供するために必要とするリソースへのアクセスが許可される。競合が存在する場合には、方法１２００をステップ１２１２に進めることによって競合が緩和される。
【０１２０】
ステップ１２１２において、車両アプリケーションは実行されないか、または車両アプリケーションは実行するが、その機能を提供するために必要とするリソースへのアクセスは許可されない。
【０１２１】
ここで図１３を参照すると、いくつかの実施形態による第１の例示的車両アプリケーション３００を実行すべきか否かを判断するためのプロセスフロー１３００の一例を示すブロック図が示されている。第１の例示的車両アプリケーションは、まだ実行していないがその実行が要求されている車両アプリケーションを含む、キューに入れられたアプリケーションセット１３０１に追加される。競合システム１９９は、競合テーブル３９９，４９９，５９９，６９９を含むテーブルセットを生成し、このテーブルセットに基づいて、第１の例示的車両アプリケーションが実行したアプリケーションセット１３０２に追加されることになる第１の例示的車両アプリケーション３００を実行させるか否かを判断する。
【０１２２】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも実施できることは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。たとえば、一実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、本実施形態は、データおよびコマンドを受信する任意のタイプのコンピュータシステム、および、サービスを提供する任意の周辺機器について適用できる。
【０１２３】
本明細書における「一実施形態」または「ある実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が、少なくとも一つの実施形態に含まれることを意味する。「一実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１２４】
以上の詳細な説明の一部は、コンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１２５】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１２６】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光学式カード、ＵＳＢキーを含む不揮発性フラッシュメモリ、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【０１２７】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１２８】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピ
ュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１２９】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１３０】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１３１】
データ処理システムが、介在するプライベートネットワークおよび／またはパブリックネットワークを介して、他のデータ処理システム、ストレージデバイス、リモートプリンタなどに結合されるようになることを可能にするために、ネットワークアダプタもシステムに結合されうる。ワイヤレス（たとえば、Ｗｉ−Ｆｉ（登録商標））トランシーバ、イーサネット（登録商標）アダプタ、およびモデムは、ネットワークアダプタのほんの数例に過ぎない。
【０１３２】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以上の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１３３】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。
さらに、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できる。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１３４】
１００  動作環境
１２２  ＥＣＵ
１２３  車両
１２５  プロセッサ
１２７  メモリ
１４５  通信ユニット
１７０  リソースセット
１８０  ＡＤＡＳシステム
１８１  第１車両アプリケーション
１８２  第２車両アプリケーション
１８８  キュー
１８９  ハードウェアコントローラ
１９７  テーブルセット
１９８  競合テーブル
１９９  競合システム
【図１】
2019164791.tif 000003
【図２】
2019164791.tif 000004
【図３】
2019164791.tif 000005
【図４】
2019164791.tif 000006
【図５】
2019164791.tif 000007
【図６】
2019164791.tif 000008
【図７】
2019164791.tif 000009
【図８】
2019164791.tif 000010
【図９】
2019164791.tif 000011
【図１０】
2019164791.tif 000012
【図１１】
2019164791.tif 000013
【図１２】
2019164791.tif 000014
【図１３】
2019164791.tif 000015