JP6432611B2 - セキュリティサポートおよび耐障害サポートを提供する自動車修正システム - Google Patents

セキュリティサポートおよび耐障害サポートを提供する自動車修正システム Download PDF

Info

Publication number
JP6432611B2
JP6432611B2 JP2017000667A JP2017000667A JP6432611B2 JP 6432611 B2 JP6432611 B2 JP 6432611B2 JP 2017000667 A JP2017000667 A JP 2017000667A JP 2017000667 A JP2017000667 A JP 2017000667A JP 6432611 B2 JP6432611 B2 JP 6432611B2
Authority
JP
Japan
Prior art keywords
component
vehicle
software component
data
adaptive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017000667A
Other languages
English (en)
Other versions
JP2017138969A (ja
Inventor
華鋒 于
華鋒 于
ボーウェン ジュヨン,
ボーウェン ジュヨン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Publication of JP2017138969A publication Critical patent/JP2017138969A/ja
Application granted granted Critical
Publication of JP6432611B2 publication Critical patent/JP6432611B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/02Registering or indicating driving, working, idle, or waiting time only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本明細書は、セキュリティサポートおよび耐障害(fault tolerance)サポートを提供す
る自動車修正システム(automobile modification system)に関する。たとえば、本明細書は、自動車にセキュリティサポートおよび耐障害サポートを提供するように、1つまたは複数の自動車構成部品を修正する自動車修正システムに関する。
自動車に対する安全性、セキュリティ、および性能の要件は、時間とともに変化する。たとえば、安全基準(safety standard)は時間とともに変化する場合があり、セキュリテ
ィ基準(security standard)は時間とともに変化する場合があり、性能基準(performance standard)は時間とともに変化する場合があり、または自動車システム用の設計仕様は時
間とともに変化する場合がある。結果として、今日自動車に取り付けられる自動車部品は、後になって自動車に対する安全性、セキュリティ、および性能の要件を満たさず、したがって、それらの要件に準拠していないと考えられる可能性がある。
自動車システムは、基準(standard)または仕様(specification)における変更に適用で
きるように、自動車修正システムによって修正することができる。たとえば、自動車修正システムは、基準(たとえば、自動車システムに関係する自動車の安全基準、セキュリティ基準、もしくは性能基準)における変更、または仕様(たとえば、ソフトウェアに関連する自動車システム用の設計仕様、性能仕様、もしくは要件仕様)における変更に適合するように、自動車システムを修正することができる。自動車修正システムは、他の理由で自動車システムを変更することができる。
いくつかの実装形態では、自動車修正システムは、自動車システムに対する耐障害性(fault tolerance)が変更されるように、自動車システムを修正する。たとえば、自動車シ
ステムに対する耐障害性は、増大する場合もあり、減少する場合もある。別の例では、自動車修正システムは、自動車システムの耐障害性に関係するコンピュータコードを、このコンピュータコードが変更されるように修正する。自動車システムの耐障害性に関係するコンピュータコードの変更は、自動車システムの耐障害性に影響を及ぼす可能性がある。たとえば、自動車システムの耐障害性が増したり、減ったりする可能性がある。
自動車システムの例には、車、トラック、スポーツユーティリティビークル(SUV)など
の自動車が含まれる。自動車システムは、自動車の車載型コンピュータ、または自動車の任意の他の電子構成部品を含む場合もある。自動車システムは、自律走行車、または車両間通信を備えている自動車を含む場合がある。
次に、いくつかの実施形態により、自動車修正システムの例が記載される。
1つまたは複数のプロセッサのシステムはシステムにインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを有し、これらが動作中にシステムにアクションを実行させるおかけで、特定の動作(operation)またはアクション(action)を実行するように構成される場合がある。
1つまたは複数のコンピュータプログラムは、プロセッサによって実行されるとシステムにアクションを実行させる命令を含むおかけで、特定の動作またはアクションを実行す
るように構成することができる。プロセッサは、自動車の搭載コンピュータの構成要素、または自動車の他の何らかのプロセッサベースの構成要素であり得る。
1つの一般態様は、自動車のプロセッサおよび自動車のミドルウェア構成部品に通信可能に結合された自動車構成部品を含むシステムを含む。自動車構成部品は、新しいセキュリティ要件および新しい耐障害性要件のうちの1つまたは複数に準拠して自動車を動作させるように、自動車のミドルウェア構成部品により実行時間中に修正可能な修正可能データを記憶する非一時的メモリを含む。修正可能データは、新しいセキュリティ要件および新しい耐障害性要件のうちの1つまたは複数に関連して、自動車構成部品の性能に修正可能データの修正が影響を及ぼすように構成される。修正可能データは、設計時に決定された修正可能データ用の1組のあらかじめ決定された構成に基づいて、実行時にミドルウェア構成部品によって修正される。
実装形態は、以下の特徴のうちの1つまたは複数を含む場合がある。
プラグイン構成部品、センサ、エンジン制御ユニット、車両間通信デバイス、専用短距離通信デバイス、非一時的メモリに記憶されたソフトウェア構成要素、およびプロセッサベースのコンピューティングデバイスを含むセットから、自動車構成部品が選択され得る、システム。
ミドルウェア構成部品が、耐障害サポートおよびセキュリティサポートを自動車に提供するように構成された、1つまたは複数のソフトウェア構成部品および1つまたは複数のハードウェア構成部品のインスタンス化された組合せを含む、システム。
1つまたは複数のソフトウェア構成部品および1つまたは複数のハードウェア構成部品が、設計時に静的に構成および実装される、システム。
ミドルウェア構成部品が、自動車構成部品および自動車のうちの1つまたは複数の環境を記述するセンサデータを受信し、ミドルウェア構成部品が、(1)センサデータ、および(2)新しいセキュリティ要件および新しい耐障害性要件のうちの1つまたは複数を記述する要件データに基づいて、1組のあらかじめ決定された構成から構成を適応的に選択する、システム。
1つの一般態様は、自動車の複数の構成要素から1組の修正可能データを読み取ることであって、複数の構成要素の各々が、1組の非一時的記憶媒体に含まれるそれ自体の非一時的記憶媒体に記憶されたそれ自体の修正可能データを含み、1組の修正可能データが、セキュリティ要件および耐障害性要件のうちの1つまたは複数に準拠して自動車を動作させるように、実行時間中に修正可能である、読み取ることと、1組の修正可能データ内に存在する新しい修正可能データの存在に基づいて、複数の構成要素がプラグイン構成部品を含むと判断することと、プラグイン構成部品を分析して、プラグイン構成部品の動作がタイミング制約またはリソース制約を破るかどうかを判定することと、自動車の複数の構成要素に含まれる構成要素ごとに、1組の修正可能データに対する更新を決定することであって、更新が、タイミング制約もしくはリソース制約を破らずに、または自動車の複数の構成要素のいずれにもタイミング制約もしくはリソース制約を破らせずに、プラグイン構成部品を自動車のプロセッサに通信可能に結合されながら動作させるように構成される、決定することと、1組の非一時的記憶媒体に含まれる非一時的記憶媒体の各々を、それらが更新を記憶するように実行時に修正することと、プラグイン構成部品が自動車のプロセッサに通信可能に結合されている間、プラグイン構成部品を動作させることとを含む方法を含む。
1つの一般態様は、プロセッサを含む自動車と、適応自動車ハードウェア構成部品(adaptive automobile hardware component)と、プロセッサおよび適応自動車ハードウェア構成部品に通信可能に結合された適応自動車ミドルウェア構成部品(adaptive automobile middleware component)とを含むシステムを含む。プロセッサおよび適応自動車ミドルウェア構成部品に通信可能に結合された適応自動車ハードウェア構成部品は、第1のセキュリティアドオン、第1の耐障害性アドオン、ならびに、第1の特性プロパティおよび第1の可変パラメータを記憶する第1のデータ構造を含む、自動車のプロセッサベースのデバイスである。
第1の特性プロパティ(characteristic property)は、適応自動車ハードウェア構成部
品の動作に応答して提供される機能に関連付けられた第1のプロセスの第1のタイミングに影響を及ぼす第1のタイミング設定を含む。
第1の可変パラメータ(configurable parameter)は、以下の、適応自動車ハードウェア構成部品の動作に応答して第1のセキュリティアドオンによって提供される機能に影響を及ぼす第1のセキュリティ設定、および適応自動車ハードウェア構成部品の動作に応答して第1の耐障害性アドオンによって提供される機能に影響を及ぼす第1の耐障害性設定のうちの1つまたは複数を含む。
第1のデータ構造は、プロセッサによる適応自動車ミドルウェア構成部品の実行が、以下の、第1のプロセスの第1のタイミングを実行時間中に修正する第1の特性プロパティ、ならびに、第1のセキュリティ設定および第1の耐障害性設定のうちの1つまたは複数を実行時間中に修正する第1の可変パラメータのうちの1つまたは複数に、プロセッサがアクセスし、それらを修正することを可能にするように構成される。本態様の他の実施形態は、対応するコンピュータシステム、および、1つまたは複数のコンピュータストレージデバイスに記録され、各々が方法のアクションを実行するように構成されたコンピュータプログラムを含む。
実装形態は、以下の特徴のうちの1つまたは複数を含む場合がある。
適応自動車ミドルウェア構成部品が、プロセッサによって実行されることに応答して、自動車に対する新しい要件を記述する自動車要件データに基づいて、自動車に対する新しい要件の存在を実行時に識別することと、適応自動車ハードウェア構成部品の動作を記述する第1のセンサデータに基づいて、適応自動車ハードウェア構成部品の動作が新しい要件に準拠する第1のセンサデータを発生させるかどうかを判定することと、設計時に決定された第1の特性プロパティおよび第1の可変パラメータについてのあらかじめ決定された構成の第1のセットを記述する第1の修正データから、新しい要件に準拠する新しいセンサデータを発生させることによって示されたように、適応自動車ハードウェア構成部品を実行時間中に新しい要件に準拠して動作させるように構成された第1の選択された構成を選択することと、第1の選択された構成と一致する第1の特性プロパティおよび第1の可変パラメータについてのデータを記憶し、第1の特性プロパティおよび第1の可変パラメータのうちの少なくとも1つを修正するように第1のデータ構造を修正することとをプロセッサに行わせる命令を含む、システム。
適応自動車ソフトウェア構成部品が、プロセッサおよび適応自動車ミドルウェア構成部品に通信可能に結合される、システム。適応自動車ソフトウェア構成部品は、第2のセキュリティアドオン、第2の耐障害性アドオン、ならびに、第2の特性プロパティおよび第2の可変パラメータを記憶する第2のデータ構造を含む場合がある。第2の特性プロパティも、適応自動車ソフトウェア構成部品の動作に応答して提供される機能に関連付けられた第2のプロセスの第2のタイミングに影響を及ぼす第2のタイミング設定を含む場合が
ある。第2の可変パラメータも、以下の、適応自動車ソフトウェア構成部品の実行に応答して第2のセキュリティアドオンによって提供される機能に影響を及ぼす第2のセキュリティ設定、および適応自動車ソフトウェア構成部品の実行に応答して第2の耐障害性アドオンによって提供される機能に影響を及ぼす第2の耐障害性設定のうちの1つまたは複数を含む場合がある。第2のデータ構造は、プロセッサによる適応自動車ミドルウェア構成部品の実行が、以下の、第2のプロセスの第2のタイミングを実行時間中に修正する第2の特性プロパティ、ならびに、第2のセキュリティ設定および第2の耐障害性設定のうちの1つまたは複数を実行時間中に修正する第2の可変パラメータのうちの1つまたは複数に、プロセッサがアクセスし、それらを修正することを可能にするように構成される。
適応自動車ミドルウェア構成部品が、プロセッサによって実行されることに応答して、適応自動車ソフトウェア構成部品の実行を記述する第2のセンサデータに基づいて、適応自動車ソフトウェア構成部品の実行が新しい要件に準拠する第2のセンサデータを発生させるかどうかを判定することと、設計時に決定された第2の特性プロパティおよび第2の可変パラメータについてのあらかじめ決定された構成の第2のセットを記述する第2の修正データから、適応自動車ソフトウェア構成部品に対する新しい要件に準拠するさらなるセンサデータを発生させることによって示されたように、適応自動車ソフトウェア構成部品を実行時間中に新しい要件に準拠して実行させるように構成された第2の選択された構成を選択することと、第2の選択された構成と一致する第2の特性プロパティおよび第2の可変パラメータについてのデータを記憶し、特性プロパティおよび可変パラメータのうちの少なくとも1つを修正するように第2のデータ構造を修正することとをプロセッサに行わせるさらなる命令を含む、システム。記載される技法の実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含む場合がある。
1つの一般態様は、自動車のプロセッサによって実行される適応自動車ミドルウェア構成部品により、プロセッサに通信可能に結合された新しいプラグイン構成部品の存在を特定することであって、新しいプラグイン構成部品が、第1のセキュリティアドオン、第1の耐障害性アドオン、および第1のデータ構造を含む、特定することと、自動車の構成要素に対する安全性要件および耐障害性要件を記述する自動車要件データに基づいて、新しいプラグイン構成部品の動作に応答して提供される機能に関連付けられた第1のプロセスの第1のタイミングに影響を及ぼす第1のタイミング設定を含む第1の特性プロパティを決定することと、自動車要件データに基づいて、以下の、新しいプラグイン構成部品の動作に応答して第1のセキュリティアドオンによって提供される機能に影響を及ぼす第1のセキュリティ設定、および新しいプラグイン構成部品の動作に応答して第1の耐障害性アドオンによって提供される機能に影響を及ぼす第1の耐障害性設定のうちの1つまたは複数を含む第1の可変パラメータを決定することとを含む方法を含む。方法はまた、新しいプラグイン構成部品が第1の特性プロパティおよび第1の可変パラメータに基づいて動作するように、新しいプラグイン構成部品に含まれる第1のデータ構造を修正することを含む。方法はまた、自動車要件データ、ならびに、自動車の構成要素に対する安全性要件および耐障害性要件に関連して、第1の特性プロパティおよび第1の可変パラメータが自動車の動作にどのように影響を及ぼすかの推定に基づいて、(1)新しいプラグイン構成部品を含まない自動車の1つまたは複数の他の構成要素のための動作のタイミングに影響を及ぼす1組の第2の特性プロパティ、ならびに、(2)自動車用の他のパラメータについての1つまたは複数の第2のセキュリティ設定および1つまたは複数の第2の耐障害性設定に影響を及ぼす1組の第2の可変パラメータに対する修正を決定することであって、修正が安全性要件および耐障害性要件に準拠して他の構成要素を動作させるように構成され、プラグイン構成部品が自動車の構成要素である、決定することを含む。方法はまた、1組の第2の特性プロパティおよび1組の第2の可変パラメータに対する修正と一致するデータを記憶するように、自動車の他の構成要素に関連付けられた1組の第2のデータ構造
を更新することを含む。方法はまた、新しいプラグイン構成部品を動作させることを含む。本態様の他の実施形態は、対応するコンピュータシステム、および、1つまたは複数のコンピュータストレージデバイスに記録され、各々が方法のアクションを実行するように構成されたコンピュータプログラムを含む。
1つの一般態様は、自動車のプロセッサに通信可能に結合された自動車構成部品を含み、自動車構成部品は、新しいセキュリティ要件および新しい耐障害性要件のうちの1つまたは複数に準拠して自動車を動作させるように、自動車のミドルウェア構成部品により実行時間中に修正可能なデータを記憶する非一時的メモリを含み、データは、新しいセキュリティ要件および新しい耐障害性要件のうちの1つまたは複数に関連して、データの修正が自動車構成部品の性能に影響を及ぼすように構成され、データは、設計時に決定されたデータについての1組のあらかじめ決定された構成に基づいて、実行時にミドルウェア構成部品によって修正される。
本態様の他の実施形態は、対応するコンピュータシステム、および、1つまたは複数のコンピュータストレージデバイスに記録され、各々が方法のアクションを実行するように構成されたコンピュータプログラムを含む。
本開示は、添付図面の図において限定ではなく例として示され、添付図面では、同様の構成要素を参照するために同様の参照番号が使用される。
自動車修正システムを実装するための動作環境を示すブロック図である。
自動車修正システムを実装するための例示的なシステムを示すブロック図である。
適応自動車ハードウェア構成部品、適応自動車ミドルウェア構成部品、および適応自動車ソフトウェア構成部品についての例示的な実施形態を示すブロック図である。
適応自動車ミドルウェア構成部品の例示的な実施形態を示すブロック図である。
入力を受信し、入力に応答して出力を決定する自動車修正システムの例示的な実施形態を示すブロック図である。
入力を受信し、入力に応答して出力を決定する適応自動車ソフトウェア構成部品の例示的な実施形態を示すブロック図である。
適応自動車ハードウェア構成部品の例示的な実施形態を示すブロック図である。
適応自動車ミドルウェア構成部品の例示的な実施形態を示すブロック図である。
自動車修正システムによって実施され得る方法についての例示的なフローチャートを示すブロック図である。 自動車修正システムによって実施され得る方法についての例示的なフローチャートを示すブロック図である。 自動車修正システムによって実施され得る方法についての例示的なフローチャートを示すブロック図である。
適応自動車ミドルウェア構成部品の例示的な実施形態を示すブロック図である。 一実施形態におけるソフトウェア部品、ハードウェア部品、およびこれらの特性プロパティの例を示す図である。 一実施形態におけるマッピング処理およびスケジューリング判定の結果を示すルックアップテーブル(参照テーブル)の例であり、この例では全ての設定レベルにおけるスケジューリングが可能な場合のルックアップテーブルを示している。 一実施形態におけるルックアップテーブル(参照テーブル)の生成処理のフローチャートである。 一実施形態におけるシステム稼働時に可変パラメータを動的に決定する処理のフローチャートである。 一実施形態における、ソフトウェア部品の追加と、その際の処理の流れを示すフローチャートである。 一実施形態におけるマッピング処理およびスケジューリング判定の結果を示すルックアップテーブル(参照テーブル)の例であり、この例ではレベルNにおけるスケジューリングが不可能な場合のルックアップテーブルを示している。
<1.システム概要>
[動作環境の説明]
図1は、自動車修正システム199を実装するための例示的な動作環境100を示すブロック図である。動作環境100は、自動車123、クライアント170、プラグイン構成部品160、およびサービスサーバ153のうちの1つまたは複数を含む。動作環境100は、たとえば、交通データを提供するための交通サーバ、気象データを提供するための気象サーバ、地図データを提供するための地図サーバ、およびソーシャルネットワークサービスを提供するためのソーシャルネットワークサーバなどを含む、図1に示されていない他のサーバまたはデバイスを含んでもよい。
いくつかの実装形態では、動作環境100のこれらのエンティティは、ネットワーク105を介して通信可能に結合することができる。クライアント170は、信号線146を介してネットワーク105に通信可能に結合することができる。プラグイン構成部品160は、信号線142を介してネットワーク105に通信可能に結合することができる。自動車123は、信号線145を介してネットワーク105に通信可能に結合することができる。サービスサーバ153は、信号線144を介してネットワーク105に通信可能に結合することができる。加えて、クライアント170は、信号線141を介して自動車123に通信可能に結合することができ、プラグイン構成部品160は、信号線143を介して自動車123に通信可能に結合することができる。信号線141、142、143、144、145、146の各々は、デバイスとネットワークとの間、またはデバイスと他のデバイスとの間の有線接続またはワイヤレス接続(たとえば、ミリメートル波通信、専用短距離通信(DSRC)、ワイヤレスフィデリティ(Wi−Fi)、セルラー(たとえば、3G、4G、LTEなど)、Bluetooth(登録商標)など)を表す場合がある。
ネットワーク105は、従来のタイプの有線またはワイヤレスであり得るし、星形構成、トークンリング構成、または他の構成を含む、多数の様々な構成を有する場合がある。さらに、ネットワーク105は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(たとえば、インターネット)、または、複数のデバイスがそれ
を介して通信することができる他の相互接続データパスを含む場合がある。いくつかの実装形態では、ネットワーク105はピアツーピアネットワークであり得る。ネットワーク105はまた、様々な異なる通信プロトコルでデータを送るための電気通信ネットワークの部分に結合される場合があるか、またはそれらを含む場合がある。いくつかの実装形態では、ネットワーク105は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メールなどを介して、データを送受信するためのBluetooth(登録商標)通信ネットワークまたはセルラー通信ネットワークを含む。ネットワーク105は、動作環境100のエンティティ間のセルラー通信をサポートする機能またはハードウェアを含む場合もある。
クライアント170は、メモリおよびプロセッサを含むコンピューティングデバイス、たとえば、サーバ、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイル電話、携帯情報端末(「PDA」)、モバイル電子メールデバイス、携帯型ゲームプレーヤ、携帯型音楽プレーヤ、路側ユニット(「RSU」)、搭載ユニット(「OBU」)、1つもしくは複数のプロセッサがその中に組み込まれるか、もしくはそれに結合されるテレビジョン、またはネットワーク105にアクセスすることが可能な他の電子デバイスであり得る。ユーザは、クライアント170と対話することができる。たとえば、人間のユーザは、周辺装置(たとえば、マウス、キーボード、タッチセンサ式入力デバイス、マイクロフォン、カメラなど)を介してクライアント170に入力を与えるか、または周辺装置(たとえば、モニタ、ディスプレイ、スピーカなど)を介してクライアント170からデータもしくは情報を受信することができる。
クライアント170は、構成管理モジュール198を含む場合がある。いくつかの実施形態では、構成管理モジュール198は、自動車修正システム199が自動車123の1つまたは複数の構成部品を修正できるように構成された、コードおよびルーチンを含む場合がある。たとえば、構成管理モジュール198は、メモリに記憶され、プロセッサによって実行される場合がある。プロセッサによって実行されることに応答して、構成管理モジュール198は、たとえば、自動車123の1つまたは複数の構成部品の現在の構成を特定することと、自動車123の1つまたは複数の構成部品の現在の構成が変更されようとしているかどうかを判定することと、自動車123の構成部品のうちの1つまたは複数を再構成するために対策を講じることとを含むステップをプロセッサに実行させることができる。
いくつかの実施形態では、構成管理モジュール198は、自動車123、自動車123に含まれる処理デバイス182、自動車に含まれる自動車修正システム199、またはサービスサーバ153の構成要素であり得る。いくつかの実施形態では、クライアント170、自動車123、自動車修正システム199、およびサービスサーバ153のうちの1つまたは複数は、(1)構成管理モジュール198に含まれるコードおよびルーチンのいくつかまたはすべてを記憶および実行するメモリ、ならびに(2)メモリに記憶されたコードおよびルーチンを実行するためのプロセッサを含む場合がある。
構成管理モジュール198は、図2A、図2B、図3、図4A、図4B、図4C、図4D、図5A、図5B、および図5Cのうちの1つまたは複数を参照して、下記でより詳細に記載される。
サービスサーバ153は、メモリおよびプロセッサを含むコンピューティングデバイス、たとえば、サーバ、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイル電話、PDA、モバイル電子メールデバイス、携帯型ゲームプレーヤ、携帯型音楽プレーヤ、1つもしくは複数のプロセッサがその中に組み込まれるか
、もしくはそれに結合されるテレビジョン、またはネットワーク105にアクセスすることが可能な他の電子デバイスを含む場合がある。
サービスサーバ153は、ハードウェアサーバを含む場合がある。サービスサーバ153は、サーバソフトウェアを記憶するメモリ、およびサーバソフトウェアを実行するためのプロセッサを含む場合がある。
サービスサーバ153は、サービスモジュール196を含む場合がある。サービスモジュール196は、自動車123またはクライアント170にサービスを提供するためのコードおよびルーチンを含む場合がある。サービスは、クライアント170、または自動車123のインフォテインメントシステムもしくはナビゲーションシステムによってアクセス可能な任意のオンラインサービスを含む場合がある。サービスは、ソーシャルネットワークサービス、電子カレンダサービス、電子地図またはナビゲーションサービス、地元企業要覧サービス、コンテンツストリーミングサービスなどを含む場合がある。
自動車123は、任意の道路車両を含む場合がある。たとえば、自動車は、内燃機関、電気モータ、および水素燃料モータのうちの1つまたは複数によって駆動される、車、トラック、SUV、バス、セミトレーラトラック、または任意の車道運搬車を含む場合がある。
自動車は、以下の、処理デバイス182、自動車修正システム199、およびセンサセット190のうちの1つまたは複数を含む場合がある。処理デバイス182、自動車修正システム199、およびセンサセット190は、バス120を介して互いに通信可能に結合することができる。
いくつかの実施形態では、処理デバイス182は、自動車123に機能を提供するように特別に構成された任意のプロセッサベースのコンピューティングデバイスを含む場合がある。たとえば、処理デバイス182は、車載型コンピュータ、エンジン制御ユニット、車両インフォテインメントシステム、または車両ナビゲーションシステムなどの、専用コンピューティングデバイスを含む場合がある。いくつかの実施形態では、処理デバイス182は汎用コンピュータではない。
自動車修正システム199は、自動車123の1つまたは複数のハードウェア構成部品またはソフトウェア構成部品を再構成するためのハードウェアおよびソフトウェアを含む場合がある。自動車修正システム199は、図2A、図2B、図3、図4A、図4B、図4C、図4D、図5A、図5B、および図5Cのうちの1つまたは複数を参照して、下記でより詳細に記載される。たとえば、自動車修正システム199および構成管理モジュール198のうちの1つまたは複数は、図5A、図5B、および図5Cを参照して下記に記載される方法500のステップのうちの1つまたは複数を実行するように構成される場合がある。
センサセット190は、1つまたは複数の自動車センサを含む場合がある。たとえば、センサセット190は、以下の、カメラ、LIDARセンサ、レーザー高度計、ナビゲーションセンサ(たとえば、全地球測位システム(GPS)センサ)、赤外線検出器、動き検出器、サーモスタット、音声検出器、一酸化炭素センサ、二酸化炭素センサ、酸素センサ、空気流量センサ、エンジン冷却剤温度センサ、スロットル位置センサ、クランクシャフト位置センサ、自動車エンジンセンサ、バルブタイマ、空燃比メータ、死角メータ、カーブ感触器、欠陥検出器、ホール効果センサ、多岐管絶対圧力センサ、駐車センサ、レーダーガン、速度計、速度センサ、タイヤ圧監視センサ、トルクセンサ、トランスミッション液温度センサ、タービン速度センサ(TSS)、可変磁気抵抗センサ、車両速度センサ
(VSS)、水分センサ、ホイール速度センサ、および任意の他のタイプの自動車センサのうちの1つまたは複数を含む場合がある。
いくつかの実装形態では、構成管理モジュール198または自動車修正システム199のうちの1つまたは複数は、フィールドプログラマブルゲートアレイ(「FPGA」)または特定用途向け集積回路(「ASIC」)を含むハードウェアを使用して実装される場合がある。いくつかの他の実装形態では、構成管理モジュール198および自動車修正システム199のうちの1つまたは複数は、ハードウェアとソフトウェアの組合せを使用して実装される場合がある。構成管理モジュール198および自動車修正システム199のうちの1つまたは複数は、デバイス(たとえば、サーバもしくは他のデバイス)の組合せ、またはデバイスのうちの1つに記憶される場合がある。
プラグイン構成部品(plug-in component)160は、プラグインハードウェア構成部品
、プラグインソフトウェア構成部品、またはハードウェアとソフトウェアの組合せである構成部品を含む場合がある。たとえば、プラグイン構成部品160は、処理デバイス182(たとえば、車載型コンピュータ)などの自動車123の構成要素に通信可能に結合されたハードウェアドングル(dongle)を含む場合がある。自動車123は、プラグイン構成部品160を実装するために必要なドライバまたは他の構成部品を含んでも、含まなくてもよい。
いくつかの実施形態では、プラグイン構成部品160は、図2Aを参照して下記に記載される、適応自動車ハードウェア構成部品130および適応自動車ソフトウェア構成部品134のうちの1つまたは複数を含む場合がある。
<2.自動車修正システムの実装例>
次に図2Aを参照すると、自動車修正システム199を実装するための例示的なシステム200が示される。システム200は、自動車123、プラグイン構成部品160、およびクライアント170のうちの1つまたは複数を含む。プラグイン構成部品160およびクライアント170は図1を参照して上述されたので、これらの説明はここでは繰り返さない。
自動車123は、センサセット190、処理デバイス(processing device)182、お
よび自動車修正システム199を含む。処理デバイス182および自動車修正システムは、バス120を介して互いに通信可能に結合することができる。
処理デバイス182は、プロセッサ225、メモリ227A、通信ユニット245を含み、さらに構成管理モジュール198および自動車要件データ(automobile requirement data)205を含む場合がある。
プロセッサ225は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行する他の何らかのプロセッサアレイを含む。いくつかの実装形態では、プロセッサ225は、ディスプレイデバイスに電子表示信号を供給することができる。プロセッサ225は、データ信号を処理し、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む、様々なコンピューティングアーキテクチャを含む場合がある。プロセッサ225は、グラフィカル処理ユニットを含む場合がある。図2Aは単一のプロセッサ225を含むが、複数のプロセッサ225が含まれる場合がある。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理構成が考えられ得る。
メモリ227Aは、非一時的コンピュータ可読記憶媒体であり得る。メモリ227Aは、プロセッサ225によって実行され得る命令またはデータを記憶する。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ227Aは、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ227Aはまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ227Aは、構成管理モジュール198または自動車修正システム199により、それらの機能を実行するために必要とされるデータのいくつかまたはすべてを記憶することができる。
通信ユニット245は、図1を参照して上述された動作環境100の構成要素にデータを送信し、それらからデータを受信する。通信ユニット245はバス120に結合される。いくつかの実装形態では、通信ユニット245は、ネットワーク105または別の通信チャネルへの直接物理接続用のポートを含む。たとえば、通信ユニット245は、ネットワーク105との有線通信用のUSB、SD、CAT−5、または同様のポートを含む。いくつかの実装形態では、通信ユニット245は、IEEE802.11、IEEE802.11p、IEEE802.16、IEEE1609.1、IEEE1609.2、IEEE1609.3、IEEE1609.4、Bluetooth(登録商標)、または任意の他の適切なワイヤレス通信方法を含む1つまたは複数のワイヤレス通信方法を使用して、動作環境100の1つまたは複数の構成要素とデータを交換するためのワイヤレストランシーバを含む。
いくつかの実装形態では、通信ユニット245は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メール、または別の適切なタイプの電子通信を介して、セルラー通信ネットワーク上でデータを送受信するためのセルラー通信トランシーバを含む。いくつかの実装形態では、通信ユニット245は、有線ポートおよびワイヤレストランシーバを含む。通信ユニット245はまた、TCP/IP、HTTP、HTTPS、およびSMTPなどを含む標準ネットワークプロトコルを使用して、ファイルまたはメディアオブジェクトを配信するための、ネットワーク105への他の従来の接続を提供することができる。
構成管理モジュール198は、自動車123の1つまたは複数の構成部品の1つまたは複数のパラメータまたはプロパティを修正するように構成された、コードおよびルーチンを含む。たとえば、自動車123に対する安全性要件、自動車123に対するセキュリティ要件、または自動車123に対する性能要件の更新に伴い、構成部品はこれらの要件にもはや準拠しない場合がある。
通信ユニット245は、自動車要件データ205を受信することができる。自動車要件データ205は、自動車123または自動車123の1つもしくは複数の構成部品に対する1つまたは複数の要件を記述することができる。たとえば、自動車要件データ205は、1つもしくは複数の安全性仕様(safety specification)、1つもしくは複数のセキュリティ仕様(security specification)、または1つもしくは複数の設計仕様(design specification)を記述することができる。安全性仕様、セキュリティ仕様、または設計仕様は、それぞれ、自動車123の構成部品に対する1つもしくは複数の安全性要件、1つもしくは複数のセキュリティ要件、または1つもしくは複数の性能要件を記述することができる
自動車123の構成部品は、自動車123に含まれる任意のハードウェアおよびソフトウェアであって、以下のデータを含むハードウェアおよびソフトウェアを含む場合がある:
(1)1つもしくは複数の特性プロパティ、または
(2)1つもしくは複数の可変パラメータ。
特性プロパティおよび可変パラメータは、たとえば、図2B、図4A、図4B、図4C、および図4Dのうちの1つまたは複数を参照して下記に記載される。
通信ユニット245は、処理デバイス182のメモリ227A、または自動車修正システム199のメモリ227Bに自動車要件データ205を記憶することができる。
構成管理モジュール198は、自動車要件データ205を分析し、以下のうちの1つまたは複数を判断することができる。
(1)自動車要件データ205によって記述される1つまたは複数の要件により自動車123のどの構成部品が影響を受けるか
(2)影響を受ける構成部品の可変パラメータまたは特性プロパティを修正するべきかどうか
(3)影響を受ける構成部品の可変パラメータまたは特性プロパティをどのように修正するか
構成管理モジュール198は、影響を受ける構成部品が自動車要件データ205によって記述される要件のいくつかまたはすべてに準拠するように、影響を受ける構成部品の可変パラメータまたは特性プロパティを修正するために対策を講じることができる。
下記でさらに詳細に記載されるように、構成管理モジュール198は、影響を受ける構成部品が自動車要件データ205に準拠するように、影響を受ける構成部品の可変パラメータまたは特性プロパティをどのように修正するかについての1つまたは複数の候補を記述する修正データ140に基づいて、影響を受ける構成部品の可変パラメータまたは特性プロパティを修正することができる。たとえば、構成管理モジュール198は、修正データ140を分析し、影響を受ける構成部品が自動車要件データ205によって記述される1つまたは複数の要件に準拠するように、影響を受ける構成部品の可変パラメータまたは特性プロパティをどのように修正するかを決定することができる。
いくつかの実施形態では、通信ユニット245は、センサセット190に含まれるセンサのうちの1つまたは複数によって検出または特定される1つまたは複数の測定値を記述するセンサデータ(たとえば、図2Bの構成要素299を参照)を受信することができる。1つまたは複数の測定値は、以下の、自動車123、適応自動車ハードウェア構成部品130、および適応自動車ソフトウェア構成部品134のうちの1つまたは複数の現在の状態または環境を記述することができる。
いくつかの実施形態では、構成管理モジュール198は、自動車要件データ205およびセンサデータを分析し、以下のうちの1つまたは複数を判断することができる。
(1)自動車要件データ205によって記述される1つまたは複数の要件により自動車123のどの構成部品が影響を受けるか
(2)影響を受ける構成部品の可変パラメータまたは特性プロパティを修正するべきかどうか
(3)影響を受ける構成部品の可変パラメータまたは特性プロパティをどのように修正するか
構成管理モジュール198は、影響を受ける構成部品が自動車要件データ205によっ
て記述される要件のいくつかまたはすべてに準拠するように、影響を受ける構成部品の可変パラメータまたは特性プロパティを修正するために対策を講じることができる。
自動車修正システム199は、1つまたは複数の適応自動車ハードウェア構成部品130、1つまたは複数の適応自動車ミドルウェア構成部品132、1つまたは複数の適応自動車ソフトウェア構成部品134、修正データ140のうちの1つまたは複数を含む場合がある。自動車修正システム199は、自動車要件データ205を含む場合がある。
適応自動車ミドルウェア構成部品132、適応自動車ソフトウェア構成部品134、および自動車要件データ205は、メモリ227Bに記憶することができる。メモリ227Bは、非一時的コンピュータ可読記憶媒体であり得る。メモリ227Bは、処理デバイス182のプロセッサ225または自動車修正システム199のプロセッサによって実行され得る命令またはデータを記憶し、これは図示されていない自動車修正システム199のオプションの特徴である。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ227Bは、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ227Bはまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ227Bは、構成管理モジュール198または自動車修正システム199により、それらの機能を実行するために必要とされるデータのいくつかまたはすべてを記憶することができる。
適応自動車ハードウェア構成部品130は、1つもしくは複数の特性プロパティまたは1つもしくは複数の可変パラメータを含む、自動車123の任意のハードウェア構成部品を含む場合がある。適応自動車ハードウェア構成部品130の一例は、図2Bおよび図4Cにおいて描写される。
いくつかの実施形態では、適応自動車ハードウェア構成部品130は、従来の自動車ハードウェア構成部品ではない。たとえば、センサは自動車ハードウェア構成部品であり得るが、適応自動車ミドルウェア構成部品132によって参照可能および/または修正可能な1つもしくは複数の特性プロパティおよび/または1つもしくは複数の可変パラメータを含まない限り、適応自動車ハードウェア構成部品130ではない。
いくつかの実施形態では、適応自動車ハードウェア構成部品130は、構成管理モジュール198、適応自動車ミドルウェア構成部品132、および適応自動車ソフトウェア構成部品134のうちの1つまたは複数とともに動作するように特別に設計および製造された自動車ハードウェア構成部品である。たとえば、適応自動車ハードウェア構成部品130は、自動車センサ、搭載コンピュータ、エンジン制御ユニット(「ECU」)、車両間通信デバイス(「V2V通信デバイス」)、専用短距離通信デバイス(「DSRC通信デバイス」)、または、適応自動車ミドルウェア構成部品132によって参照可能および/または修正可能な1つまたは複数の特性プロパティおよび/または1つもしくは複数の可
変パラメータを含むように特に設計された、他の何らかの自動車ハードウェア構成要素を含む場合がある。自動車123は、複数の適応自動車ハードウェア構成部品130を含む場合がある。
適応自動車ソフトウェア構成部品134は、1つもしくは複数の特性プロパティ、1つもしくは複数の可変パラメータ、1つもしくは複数の耐障害性アドオン、または1つもし
くは複数のセキュリティアドオンを含む、自動車123の任意のソフトウェア構成部品を含む場合がある。適応自動車ソフトウェア構成部品134の一例は、図2Bおよび図4Aにおいて描写される。特性プロパティまたは可変パラメータは、図2Aを参照して下記に記載される。耐障害性アドオンまたはセキュリティアドオンは、図4Bを参照して下記に記載される。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134は、従来の自動車ソフトウェア構成部品ではない。たとえば、センサ用のソフトウェアは自動車ソフトウェア構成部品であり得るが、適応自動車ミドルウェア構成部品132によって修正可能である1つもしくは複数の特性プロパティまたは1つもしくは複数の可変パラメータを含まない限り、適応自動車ソフトウェア構成部品134ではない。ソフトウェアが適応自動車ソフトウェア構成部品134であるためには、耐障害性アドオンまたはセキュリティアドオンを含むことが必要とされる場合もある。
下記でより詳細に説明されるように、いくつかの実施形態では、適応自動車ソフトウェア構成部品134は、構成管理モジュール198、適応自動車ミドルウェア構成部品132、および適応自動車ハードウェア構成部品130のうちの1つまたは複数とともに動作するように、特別に設計および製造された自動車ソフトウェア構成部品である。たとえば、適応自動車ソフトウェア構成部品134は、自動車センサ、搭載コンピュータ、エンジン制御ユニット、または、適応自動車ミドルウェア構成部品132によって参照可能な1
つまたは複数の特性プロパティおよび修正可能な1つもしくは複数の特性プロパティもしくは可変パラメータを含むように特に設計された、他の何らかの自動車ソフトウェア構成要素に含まれる、ソフトウェアまたはファームウェアを含む場合がある。適応自動車ソフトウェア構成部品134は、1つもしくは複数の耐障害性アドオンまたは1つもしくは複数のセキュリティアドオンを含むように、特に設計される場合もある。自動車123は、複数の適応自動車ソフトウェア構成部品134を含む場合がある。
適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134に対する新しい要件を示す自動車要件データ205に基づいて、可変パラメータおよび特性プロパティが適応自動車ミドルウェア構成部品132によって修正可能なので、適応自動車ハードウェア構成部品130および適応自動車ソフトウェア構成部品134により、自動車123の設計が自動車123のための耐久性のあるセキュリティサポートおよび耐障害サポートを含むことが可能になる。
適応自動車ミドルウェア構成部品132は、以下のうちの1つまたは複数を実現するように構成された、コードおよびルーチンを含む。
(1)適応自動車ハードウェア構成部品130が自動車要件データ205によって記述される1つまたは複数の要件に準拠するように、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134の1つまたは複数の可変パラメータを修正または再構成すること
(2)適応自動車ソフトウェア構成部品134が自動車要件データ205によって記述される1つまたは複数の要件に準拠するように、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134の1つまたは複数の特性プロパティおよび/または可変パラメータを修正または再構成すること、ならびに、
(3)1つまたは複数のプラグイン構成部品160が処理デバイス182、適応自動車ハードウェア構成部品130、および適応自動車ソフトウェア構成部品134のうちの1つまたは複数と動作可能であるように、1つまたは複数のプラグイン構成部品160にサポートを提供すること
修正データ140は、自動車要件データ205によって記述される1つまたは複数の要
件に準拠しない1つまたは複数の構成部品130、134の1つもしくは複数の特性プロパティまたは1つもしくは複数の可変パラメータについての、1つまたは複数のあらかじめ決定された構成を記述することができる。たとえば、構成管理モジュール198は、1つまたは複数の構成部品130、134の現在の状態に基づいて(たとえば、センサセット190から受信されたセンサデータの分析に基づいて)、自動車要件データ205を決定することができる。センサデータは、自動車123または自動車123の構成要素のうちの1つもしくは複数についての現在の環境を記述することができる。
いくつかの実施形態では、修正データ140は、構成部品130、134のうちの1つまたは複数のための様々なレベルの耐障害性および様々なレベルのセキュリティについての1つまたは複数の構成を記述する、1つまたは複数の参照テーブルを含む場合がある。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、(たとえば、センサデータによって記述される)現在の環境、および(たとえば、自動車要件データ205によって記述される)必要なレベルのセキュリティまたは耐障害性のうちの1つまたは複数に基づいて、修正データ140から構成を適応的に選択することができる。適応自動車ミドルウェア構成部品132は、常に最高レベルのセキュリティまたは耐障害性を提供する構成を選択するわけではなく、状況に応じたセキュリティレベルまたは耐障害性レベルを選択することで、自動車123についてのコンピュータのオーバーヘッドが低減され、自動車123についての性能を高めることができる。たとえば、構成の選択は、プロセッサ225についてのコンピュータのオーバーヘッドが低減され、プロセッサ225についての性能レベルが高まるか維持されるように、最高レベルのセキュリティまたは最高レベルの耐障害性を提供するとは限らないように構成される場合がある。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、以下のステップのうちの1つまたは複数を実行すること、または実行されるようにすることによって、プラグイン構成部品160にサポートを提供することができる。
(1)プラグイン構成部品160が処理デバイス182、適応自動車ハードウェア構成部品130、適応自動車ソフトウェア構成部品(または自動車123の他の何らかのハードウェアもしくはソフトウェア)をどのように変更するかを検出すること
(2)自動車123が構成管理モジュール198を含むクライアント170または他の何らかのプロセッサベースのコンピューティングデバイスに接続されるまで、自動車123を使用不可にすること
構成管理モジュール198(または図4Dを参照して下記に記載されるプラグイン構成部品サポートモジュール461)は、リアルタイムスケジューリング分析システムを含む場合がある。構成管理モジュール198は、以下のステップのうちの1つまたは複数を実行することによって、プラグイン構成部品160のセットアップを完了することができる。
(1)プラグイン構成部品160にサポートを提供するスケジュール可能性を判断すること
(2)プラグイン構成部品160にサポートを提供するための1つまたは複数のスケジューリングパラメータを割り当てること
(3)プラグイン構成部品160のための様々な耐障害性およびセキュリティのレベルについての1つまたは複数の構成を含んでいる修正データ140に含まれる参照テーブルを再構築すること
自動車123へのプラグイン構成部品160の追加のスケジューが不可になった場合、構成管理モジュール198は、自動車123のユーザに警告を与えることができ、または自動車123は、スケジューリング問題が解決されるまで使用不可のままであり得る。
いくつかの実施形態では、構成管理モジュール198は、以下のステップのうちの1つまたは複数を実行することができる。
(1)自動車修正システム199から1つまたは複数の特性プロパティ291、295または可変パラメータ293、297を読み取ること
(2)1つまたは複数の特性プロパティ291、295または可変パラメータ293、297に基づいて、(新しいプラグイン構成部品であり得る)プラグイン構成部品160がバス120に通信可能に結合されているかどうかを判定すること
(3)新しいプラグイン構成部品160の存在を識別することに応答して、スケジュール可能性分析アルゴリズムを呼び出すこと
(4)スケジュール可能性分析アルゴリズムを実行して新しいプラグイン構成部品のスケジュール可能性を分析し、それにより新しいプラグイン構成部品160が、(たとえば、自動車要件データ205、または、いくつかの実施形態では、特性プロパティもしくは可変パラメータなどのタイミング制約もしくはリソース制約を記述する、自動車123もしくはクライアント170によって記憶される他の何らかのデータによって記述される)タイミング制約またはリソース制約に違反するどうかを判定すること
(5)タイミング制約またはリソース制約に違反しない場合、自動車修正システム199への新しいプラグイン構成部品の追加のスケジュールが可能であると判断し、新しいプラグイン構成部品160が自動車修正システム199に実装されることに成功するように、新しいプラグイン構成部品160に1つまたは複数のスケジューリングパラメータを割り当てること
(6)タイミング制約またはリソース制約に違反する場合、自動車修正システム199への新しいプラグイン構成部品160の追加のスケジュールが可能ではないと判断し、次いで、
(a)新しいプラグイン構成部品160を含む自動車修正システム199の構成要素のための様々な耐障害性およびセキュリティのレベルについての1つまたは複数の構成を含んでいる修正データ140に含まれる参照テーブルに対する1つまたは複数の更新を決定することであって、新しいプラグイン構成部品がタイミング制約またはリソース制約に違反せずに自動車修正システム199内で動作することを可能にするように更新が構成される、決定すること、
(b)更新に基づいて修正データ140に含まれる参照テーブルを再構築すること、
(c)参照テーブルによって記述される新しい構成を自動車修正システム199の各構成部品に割り当てること、ならびに、
(d)自動車修正システム199への新しいプラグイン構成部品160および再構築された参照テーブルの追加のスケジュールが可能であると判断し、新しいプラグイン構成部品160が自動車修正システム199に実装されることに成功するように、新しいプラグイン構成部品160に1つまたは複数のスケジューリングパラメータを割り当てること
たとえば、図6を参照。
いくつかの実施形態では、クライアント170は、適応自動車ミドルウェア構成部品132に含まれるポート184を介して、自動車修正システム199に通信可能に結合することができる。
いくつかの実施形態では、自動車123は、自律自動車または半自律自動車であり得る。
次に図2Bを参照すると、適応自動車ハードウェア構成部品130、適応自動車ミドルウェア構成部品132、および適応自動車ソフトウェア構成部品134についての例示的な実施形態を示すブロック図が描写される。
図2Bに描写されたように、自動車123は、適応自動車ハードウェア構成部品130
、適応自動車ミドルウェア構成部品132、および適応自動車ソフトウェア構成部品134のうちの1つまたは複数を含む。適応自動車ミドルウェア構成部品132は、クライアント170に通信可能に結合することができる。
[適応自動車ハードウェア構成部品]
適応自動車ハードウェア構成部品130は、以下のうちの1つまたは複数を含む場合がある。
(1)適応自動車ハードウェア構成部品130に関連付けられた特性プロパティ291
(2)適応自動車ハードウェア構成部品130に関連付けられた可変パラメータ293
適応自動車ハードウェア構成部品130の例には、1つもしくは複数の特性プロパティ291または1つもしくは複数の可変パラメータ293を含む、プロセッサベースのコンピューティングデバイス、バス、およびセンサが含まれ得る。
いくつかの実施形態では、特性プロパティ291は、適応自動車ハードウェア構成部品130に関連付けられた動作のタイミングについてのオプションまたは設定に関係する場合がある。たとえば、適応自動車ハードウェア構成部品130に関連付けられた特性プロパティ291は、以下の例のうちの1つまたは複数を含む場合がある。
(1)自動車123に含まれるプロセッサベースのコンピューティングデバイスまたはバスについて使用され、適応自動車ミドルウェア構成部品132によって修正可能である周波数設定(frequency setting)
(2)自動車123に含まれるプロセッサベースのコンピューティングデバイスまたはバスについて使用され、適応自動車ミドルウェア構成部品132によって修正可能である帯域幅設定(bandwidth setting)
(3)自動車123に含まれるセンサについて使用され、適応自動車ミドルウェア構成部品132によって修正可能である検知レート設定(sensing rate setting)
適応自動車ハードウェア構成部品130は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291を含む場合がある。
適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291を修正し、それによって、適応自動車ハードウェア構成部品130の動作を、自動車要件データ205によって記述される要件に従うようにするように構成された、コードおよびルーチンを含む場合がある。たとえば、適応自動車ハードウェア構成部品130は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291についての設定を含むテーブル(または他の何らかのデータ構造)を含む場合がある。適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291の修正をもたらすために、これらの設定にアクセスし、それらを修正することができる。
いくつかの実施形態では、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291の修正を可能にするテーブルまたはデータ構造へのアクセスは、何らかの暗号化方法を使用して制限される場合がある。適応自動車ミドルウェア構成部品132は、テーブルまたはデータ構造に記憶されたデータまたは設定へのアクセスおよび修正のために必要なデータまたは情報を含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、上記テーブルに対するアクセスおよび変更、すなわち、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291の修正が可能に構成された唯一のエンティティであり得る。
いくつかの実施形態では、可変パラメータ293は、適応自動車ハードウェア構成部品130のための耐障害性またはセキュリティの設定を構成するためのオプションまたは設定に関係する場合がある。たとえば、適応自動車ハードウェア構成部品130に関連付けられた可変パラメータ293は、以下の例のうちの1つまたは複数を含む場合がある。
(1)自動車123に含まれるプロセッサベースのコンピューティングデバイスまたはバスについて使用され、適応自動車ミドルウェア構成部品132によって修正可能である周期設定(period setting)
(2)自動車123に含まれるプロセッサベースのコンピューティングデバイスまたはバスについて使用され、適応自動車ミドルウェア構成部品132によって修正可能である送信レート設定(transmission rate setting)、
(3)自動車123に含まれるセンサについて使用され、適応自動車ミドルウェア構成部品132によって修正可能であるサンプリングレート設定(sampling rate setting)。
適応自動車ハードウェア構成部品130は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293を含む場合がある。
適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293を修正し、それによって、適応自動車ハードウェア構成部品130の動作を、自動車要件データ205によって記述される要件に従うようにするように構成された、コードおよびルーチンを含む場合がある。たとえば、適応自動車ハードウェア構成部品130は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293についての設定を含むテーブル(または他の何らかのデータ構造)を含む場合がある。適応自動車ミドルウェア構成部品132は、これらの設定にアクセスおよび修正して、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293を修正することができる。
いくつかの実施形態では、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293の修正を可能にするテーブルまたはデータ構造へのアクセスは、何らかの暗号化方法を使用して制限される場合がある。適応自動車ミドルウェア構成部品132は、テーブルまたはデータ構造に記憶されたデータまたは設定へのアクセスおよび修正のために必要なデータまたは情報を含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、上記テーブルに対するアクセスおよび変更、すなわち、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293の修正が可能に構成された唯一のエンティティであり得る。
[適応自動車ソフトウェア構成部品]
適応自動車ソフトウェア構成部品134は、以下のうちの1つまたは複数を含む場合がある。
(1)適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295
(2)適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297
いくつかの実施形態では、特性プロパティ295は、適応自動車ソフトウェア構成部品134に関連付けられた動作のタイミングについてのオプションまたは設定に関係する場合がある。たとえば、適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295は、以下のうちの1つまたは複数を含む場合がある。
(1)自動車123に含まれ、適応自動車ミドルウェア構成部品132によって修正可能であるように構成された、適応自動車ソフトウェア構成部品134についてのアクティブ化周期設定(activation period setting)
(2)自動車123に含まれ、適応自動車ミドルウェア構成部品132によって可能に
され、修正可能であるように構成された、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン(たとえば、図4Bの構成要素497参照)についての推定実行時間設定(estimated execution time setting)、
(3)自動車123に含まれ、適応自動車ミドルウェア構成部品132によって可能にされ、修正可能であるように構成された、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン(たとえば、図4Bの構成要素499参照)についての推定実行時間設定
(4)自動車要件データ205によって定義される自動車123の安全性要件、セキュリティ要件、または設計要件に準拠する方式で、自動車123の動作に対する適応自動車ソフトウェア構成部品134の重要度を記述する重要度データであって、適応自動車ミドルウェア構成部品132によって修正可能であるように構成された、重要度データ
なお、適応自動車ソフトウェア構成部品134の特性プロパティの上記の例示において、「設定」という用語を用いているが、これらの値を変更可能とは限らない。例えば上記の例における「推定実行時間設定」は、変更不可能な値である(ただし、推定実行時間は、ある基準の実行速度を有するプロセッサによって実行された場合の実行時間の推定値を表す)。
適応自動車ソフトウェア構成部品134は、適応自動車ソフトウェア構成部品134に関連付けられた複数の特性プロパティ295を含む場合がある。
適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295を修正し、それによって、適応自動車ソフトウェア構成部品134の動作を、自動車要件データ205によって記述される要件に従うようにするように構成された、コードおよびルーチンを含む場合がある。たとえば、適応自動車ソフトウェア構成部品134は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295についての設定を含むテーブル(または他の何らかのデータ構造)を含む場合がある。適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295の修正をもたらすために、これらの設定にアクセスし、それらを修正することができる。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295の修正を可能にするテーブルまたはデータ構造へのアクセスは、何らかの暗号化方法を使用して制限される場合がある。適応自動車ミドルウェア構成部品132は、テーブルまたはデータ構造に記憶されたデータまたは設定へのアクセスおよび修正のために必要なデータまたは情報を含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、上記テーブルに対するアクセスおよび変更、すなわち、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295の修正が可能に構成された唯一のエンティティであり得る。
適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295は、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134についてのマッピング分析またはタイミング分析のために設計時間中に使用される適応自動車ソフトウェア構成部品134の任意のプロパティを含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295のうちの1つまたは複数を使用して、プラグイン構成部品160の実現可能性を判断することができる。
マッピング分析は、例えば、ソフトウェア構成部品134をどのハードウェア構成部品130を用いて実行するかを分析することを含む。タイミング分析は、1つまたは複数の
ソフトウェア構成部品134が、実行タイミングに関する要求を満たすか否か(例えば、各ソフトウェア構成部品の実行が、実行周期以下の時間で完了するか否か)を分析することを含む。マッピング分析やタイミング分析に使用されるプロパティの例は、ソフトウェア構成部品134のアクティブ化周期および(プロセッサの実行速度に応じた)実行時間であるが、その他のプロパティも利用可能である。
いくつかの実施形態では、可変パラメータ297は、適応自動車ソフトウェア構成部品134のための耐障害性またはセキュリティの設定を構成するためのオプションまたは設定に関係する場合がある。例えば、適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297は、以下のうちの1つまたは複数を含む場合がある。
・冗長構成部品(redundant component)(たとえば、図4Bの構成要素489または4
84参照)が実行されるかどうかを示す実行設定であって、適応自動車ミドルウェア構成部品132によって修正可能に構成された、実行設定
・適応自動車ソフトウェア構成部品134に含まれ、適応自動車ミドルウェア構成部品132によって有効化および修正が可能に構成された、セキュリティコントローラ(たとえば、図4Bの構成要素403およびそれについての説明を参照)用のパラメータ(たとえば、暗号化用のキーの長さ、暗号化が可能であるかどうか、どのタイプまたはレベルの暗号化が使用されるか、など)
・適応自動車ソフトウェア構成部品134に含まれ、適応自動車ミドルウェア構成部品132によって有効化および修正が可能に構成された、耐障害性コントローラ(fault tolerance controller)(たとえば、図4Bの構成要素401およびそれについての説明を参照)用のパラメータ(たとえば、メッセージがユーザもしくは障害構成部品に提供されるか、または自動車123が使用不可にされる前に許される障害の数)
・自動車123の動作に対する適応自動車ソフトウェア構成部品134の重要度を、自動車要件データ205によって定義される自動車123の安全性要件、セキュリティ要件、または設計要件に準拠する方式で記述する重要度データ(criticality data)であって、適応自動車ミドルウェア構成部品132によって修正可能に構成された、重要度データ
適応自動車ソフトウェア構成部品134は、適応自動車ソフトウェア構成部品134に関連付けられた複数の可変パラメータ297を含む場合がある。
適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297を修正し、それによって、適応自動車ソフトウェア構成部品134の動作を、自動車要件データ205によって記述される要件に従うようにするように構成された、コードおよびルーチンを含む場合がある。たとえば、適応自動車ソフトウェア構成部品134は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297についての設定を含むテーブル(または他の何らかのデータ構造)を含む場合がある。適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297の修正をもたらすために、これらの設定にアクセスし、それらを修正することができる。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297の修正を可能にするテーブルまたはデータ構造へのアクセスは、何らかの暗号化方法を使用して制限される場合がある。適応自動車ミドルウェア構成部品132は、テーブルまたはデータ構造に記憶されたデータまたは設定へのアクセスおよび修正のために必要なデータまたは情報を含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、上記テーブルに対するアクセスおよび変更、すなわち、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297の修正が可能に構成された唯一のエンティティであり得る。
適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297は、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134についてのマッピング分析またはタイミング分析のために設計時間中に使用される適応自動車ソフトウェア構成部品134の任意のパラメータを含む場合がある。いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297のうちの1つまたは複数を使用して、プラグイン構成部品160の実現可能性を判断することができる。
適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295を修正し、それによって、適応自動車ソフトウェア構成部品134の動作を、自動車要件データ205によって記述される要件に従うようにするように構成された、コードおよびルーチンを含む場合がある。
[適応自動車ミドルウェア構成部品]
適応自動車ミドルウェア構成部品132は、修正データ140、構成管理モジュール198、自動車要件データ205、およびセンサデータ299のうちの1つまたは複数を含む場合がある。修正データ140、構成管理モジュール198、および自動車要件データ205は図1または図2Aを参照して上述されたので、これらの説明はここでは繰り返さない。
センサデータ299は、自動車123の現在の環境(current environment)、または自
動車123の構成要素のうちの1つもしくは複数(たとえば、構成要素130、291、293、134、295、297、182、120、もしくは190)の現在の環境を記述することができる。センサデータ299は、センサセット190(たとえば、図1の構成要素190参照)に含まれるセンサのうちの1つまたは複数によって検出または特定された1つまたは複数の測定値を記述することができる。センサデータ299は、自動車123の1つまたは複数の構成要素の性能を記述することができる。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、図5A、図5B、および図5Cを参照して下記に記載される方法500の1つまたは複数のステップを実行するように構成される場合がある。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、自動車要件データ205を受信することができる。適応自動車ミドルウェア構成部品132は、特性プロパティ291、295のうちの1つまたは複数を記述するデータを受信することができる。適応自動車ミドルウェア構成部品132は、可変パラメータ293、297のうちの1つまたは複数を記述するデータを受信することができる。適応自動車ミドルウェア構成部品132は、センサデータ299を受信することができる。適応自動車ミドルウェア構成部品132は、自動車要件データ205を分析して、自動車123の構成部品130、134が満たされなければならない新しい要件を有するかどうかを判定することができる。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、自動車123のどの構成部品130、134が新しい要件によって影響を受けるかを判断することができる。適応自動車ミドルウェア構成部品132は、センサデータ299を分析して、新しい要件によって影響を受ける自動車123の構成部品130、134の性能または環境を判断することができる。適応自動車ミドルウェア構成部品132は、センサデータ299および自動車要件データ205のうちの1つまたは複数に基づいて、影響を受ける構成部品130、134の現在の性能または環境によって新しい要件が満たされないと判断する場合がある。適応自動車ミドルウェア構成部品132は、修正データ140を分析して、実
装された場合、影響を受ける構成部品130、134が新しい要件に準拠して動作することを可能にするはずの、特性プロパティ291、295のうちの1つもしくは複数または可変パラメータ293、297のうちの1つもしくは複数についての新しい構成または修正を識別することができる。適応自動車ミドルウェア構成部品132は、影響を受ける構成部品130、134の1つまたは複数のテーブルまたはデータ構造にアクセスすることができる。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、影響を受ける構成部品130、134についての識別された新しい構成または修正が実装されるように、影響を受ける構成部品130、134の1つまたは複数のテーブルまたはデータ構造に記憶されたデータまたは設定を修正することができる。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、ある時間のあいだ待機した後に、センサデータ299を再検査して、実装された修正または新しい構成により、影響を受ける構成部品130、134が新しい要件に準拠して動作したことを保証することができる。
[クライアント]
クライアント170は、修正データ140および構成管理モジュール198を含む場合がある。
いくつかの実施形態では、構成管理モジュール198は、図5A、図5B、および図5Cを参照して下記に記載される方法500の1つまたは複数のステップを実行するように構成される場合がある。
いくつかの実施形態では、構成管理モジュール198は、自動車要件データ205を受信することができる。構成管理モジュール198は、特性プロパティ291、295のうちの1つまたは複数を記述するデータを受信することができる。構成管理モジュール198は、可変パラメータ293、297のうちの1つまたは複数を記述するデータを受信することができる。構成管理モジュール198は、センサデータ299を受信することができる。構成管理モジュール198は、自動車要件データ205を分析して、自動車123の構成部品130、134が満たされなければならない新しい要件を有するかどうかを判定することができる。
いくつかの実施形態では、構成管理モジュール198は、自動車123のどの構成部品130、134が新しい要件によって影響を受けるかを判断することができる。構成管理モジュール198は、センサデータ299を分析して、新しい要件によって影響を受ける自動車123の構成部品130、134の性能または環境を判断することができる。構成管理モジュール198は、センサデータ299および自動車要件データ205のうちの1つまたは複数に基づいて、影響を受ける構成部品130、134の現在の性能または環境によって新しい要件が満たされないと判断する場合がある。構成管理モジュール198は、修正データ140を分析して、実装された場合、影響を受ける構成部品130、134が新しい要件に準拠して動作することを可能にするはずの、特性プロパティ291、295のうちの1つもしくは複数または可変パラメータ293、297のうちの1つもしくは複数についての新しい構成または修正を識別することができる。構成管理モジュール198は、影響を受ける構成部品130、134の1つまたは複数のテーブルまたはデータ構造にアクセスすることができる。
いくつかの実施形態では、構成管理モジュール198は、影響を受ける構成部品130、134についての識別された新しい構成または修正が実装されるように、影響を受ける
構成部品130、134の1つまたは複数のテーブルまたはデータ構造に記憶されたデータまたは設定を修正することができる。
いくつかの実施形態では、構成管理モジュール198は、ある時間のあいだ待機した後に、センサデータ299を再検査して、実装された修正または新しい構成により、影響を受ける構成部品130、134が新しい要件に準拠して動作したことを保証することができる。
[構成管理モジュール]
次に図3を参照すると、構成管理モジュール198の例示的な実施形態300を示すブロック図が描写される。
自動車修正システム199は、複数の適応自動車ソフトウェア構成部品134A、134B...134N(本明細書では「適応自動車ソフトウェア構成部品134」)を含む。適応自動車ソフトウェア構成部品134は、関連する複数の特性プロパティ295A、295B...295N(本明細書では「特性プロパティ295」)を含む。適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295を読み込むことができる。適応自動車ソフトウェア構成部品134は、関連する複数の可変パラメータ297A、297B...297N(本明細書では「可変パラメータ297」)を含む。適応自動車ミドルウェア構成部品132は、適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297を読み込むことができる。適応自動車ミドルウェア構成部品132は、修正データ140およびセンサデータ299のうちの1つまたは複数に基づいて、特性プロパティ295または可変パラメータ297のうちの1つまたは複数に対する変更を適応的に特定することができる。
自動車修正システム199は、複数の適応自動車ハードウェア構成部品130A、130B...130N(本明細書では「適応自動車ハードウェア構成部品130」)を含む。適応自動車ハードウェア構成部品130は、関連する複数の特性プロパティ291A、291B...291N(本明細書では「特性プロパティ291」)を含む。適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130に関連付けられた特性プロパティ291を読み込むことができる。適応自動車ハードウェア構成部品130は、関連する複数の可変パラメータ293A、293B...293N(本明細書では「可変パラメータ293」)を含む。適応自動車ミドルウェア構成部品132は、適応自動車ハードウェア構成部品130に関連付けられた可変パラメータ293を読み込むことができる。適応自動車ミドルウェア構成部品132は、修正データ140およびセンサデータ299のうちの1つまたは複数に基づいて、特性プロパティ291または可変パラメータ293のうちの1つまたは複数に対する変更を適応的に特定することができる。
<3.自動車修正システムの別の例>
次に図4Aを参照すると、入力431を受信し、入力431に応答して出力433を決定する自動車修正システム199の例示的な実施形態を示すブロック図が描写される。いくつかの実施形態により、図4Aにおいて、適応自動車ソフトウェア構成部品134がより詳細に示される。
入力431は、以下の、修正データ140、自動車要件データ205、センサデータ299、構成管理モジュール198から受信されたデータ、1つまたは複数の適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291を記述するデータ、1つまたは複数の適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293を記述するデータ、1つまたは複数の適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295
を記述するデータ、1つまたは複数の適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297を記述するデータ、自動車123の構成要素に通信可能に結合されたプラグイン構成部品160を記述するデータ、自動車123の構成要素に通信可能に結合されたプラグイン構成部品160が、自動車123の構成要素の性能または環境にどのように影響を及ぼすかを記述するデータのうちの1つまたは複数を含む場合がある。
出力433は、入力431に部分的に基づいて、特性プロパティ291、295または可変パラメータ293、297のうちの1つまたは複数に対する修正または構成を記述する。
いくつかの実施形態では、自動車修正システム199は、適応自動車ハードウェア構成部品130、適応自動車ミドルウェア構成部品132、適応自動車ソフトウェア構成部品134、例示的なアプリケーション非依存サービス(application independent service)
441、アプリケーション依存サービス(application dependent service)443、およ
びプロセッサ466のうちの1つまたは複数を含む場合がある。自動車修正システム199のこれらの構成要素は、バス420を介して互いに通信可能に結合することができる。
自動車修正システム199の適応自動車ハードウェア構成部品130、適応自動車ミドルウェア構成部品132、および適応自動車ソフトウェア構成部品134は、図1、図2A、図2B、または図3を参照して上述されたので、それらの説明はここでは繰り返さない。
プロセッサ466は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行する他の何らかのプロセッサアレイを含む。いくつかの実装形態では、プロセッサ466は、ディスプレイデバイスに電子表示信号を供給することができる。プロセッサ466は、自動車修正システム199の他の構成要素と通信するためのバス420に結合される。プロセッサ466は、データ信号を処理し、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む、様々なコンピューティングアーキテクチャを含む場合がある。プロセッサ466は、グラフィカル処理ユニットを含む場合がある。図4Aは単一のプロセッサ466を含むが、複数のプロセッサ466が含まれる場合がある。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理構成が考えられ得る。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134は、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン499、特性プロパティ291、可変パラメータ293、特性プロパティ295、および可変パラメータ297のうちの1つまたは複数を含む。
適応自動車ソフトウェア構成部品134の特性プロパティ291、可変パラメータ293、特性プロパティ295、および可変パラメータ297は、図1、図2A、図2B、または図3を参照して上述されたので、それらの説明はここでは繰り返さない。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497は、フロー検査(flow checking)モジュール407、署名検査(signature checking)モジュール409、および他の耐障害性モジュール(other fault tolerance module)411のうちの1つまたは複数を含む場合がある。
フロー検査モジュール407は、適応自動車ソフトウェア構成部品134のための制御フロー検査を実現するように構成された、コードおよびルーチンを含む。フロー検査モジュール407は、適応自動車ソフトウェア構成部品134に関連付けられた制御フローを記述する制御フローデータを生成することができる。適応自動車ミドルウェア構成部品132および構成管理モジュール198のうちの1つまたは複数は、制御フローデータを使用してそれらの機能を実現することができる。たとえば、制御フローデータは1種のセンサデータ299と捉えることができる。
アプリケーション依存サービスを実行する適応自動車ソフトウェア構成部品134の場合、制御フローデータは制御フロー違反(制御フローが期待されるようにあるいは要件で定義されるように挙動しないこと)を記述することができる。次いで、耐障害性アドオン497は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に制御フローデータを供給することができる。次いで、適応自動車ミドルウェア構成部品132または構成管理モジュール198は、制御フローデータに部分的に基づいて、出力433を決定することができる。
署名検査モジュール409は、適応自動車ソフトウェア構成部品134によって実行される命令用の署名を検査するように構成されたコードを含む。自動車修正システム199は、1つまたは複数の有効な署名を記憶するメモリを含む。署名検査モジュール409が無効な署名を識別した場合、署名検査モジュール409は、「署名エラーデータ(signature error data)」と呼ばれる1種のセンサデータ299を生成することができる。署名エラーデータは、無効な署名のインスタンスを記述することができる。署名検査モジュール409は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に署名エラーデータを送信することができる。
他の耐障害性モジュール411は、適応自動車ソフトウェア構成部品134のための他の耐障害性サービスを提供するように構成された、コードおよびルーチンを含む。たとえば、他の耐障害性モジュール411は、自動車修正システム199または自動車123の1つもしくは複数の他の構成要素に応答を停止させる可能性がある、適応自動車ソフトウェア構成部品134または適応自動車ハードウェア構成部品130に関連付けられた固有の障害を監視するウォッチドッグサービス(watch dog service)を含む場合がある。ウォ
ッチドッグサービスは、「ウォッチドッグデータ」と呼ばれる1種のセンサデータ299を生成することができる。ウォッチドッグデータは、適応自動車ミドルウェア構成部品132または構成管理モジュール198によって定義される、ウォッチドッグサービスによって監視されている固有の障害のインスタンスを記述することができる。ウォッチドッグサービスは、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数にウォッチドッグデータを送信することができる。
その動作がアプリケーション非依存サービスを含む適応自動車ソフトウェア構成部品134の場合、ウォッチドッグデータは、ウォッチドッグサービスによって監視されている固有の障害のインスタンスを記述することができる。ウォッチドッグデータは、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に送信することができる。次いで、適応自動車ミドルウェア構成部品132または構成管理モジュール198は、ウォッチドッグデータに部分的に基づいて、出力433を決定することができる。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン499は、暗号化モジュール413、認証モジュール415、および他のセキュリティモジュール417のうちの1つまたは複数を含む。
暗号化モジュール413は、適応自動車ソフトウェア構成部品134の動作または適応自動車ソフトウェア構成部品134へのアクセスを暗号化するように構成されたコードおよびルーチンを含む。暗号化モジュール413は、自動車123の他の構成要素に暗号化サービスを提供することができる。
暗号化モジュール413は、暗号化を解読またはバイパスしようと試みるエンティティのインスタンスを検出することができる。これらのインスタンスは、「暗号化データ(encryption data)」と呼ばれる1種のセンサデータ299によって記録することができる。
暗号化データは、エンティティが暗号化を解読またはバイパスしようと試みたインスタンスを記述することができる。暗号化モジュール413は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に暗号化データを送信することができる。
いくつかの実施形態では、暗号化モジュール413は、セキュリティサービス439によって提供される標準暗号化アルゴリズムを実行することによって、暗号化を実現することができる。しかしながら、セキュリティイベントの検出は、内蔵のコードおよび前のコードを同時に必要とする場合があり、それは、標準暗号化アルゴリズムを使用するようにセキュリティサービス439を呼び出すことによって完了されない場合がある。したがって、いくつかの実施形態では、暗号化モジュール413は、その動作が1つまたは複数のアプリケーション非依存サービスを含む適応自動車ソフトウェア構成部品134用のセキュリティサービス439を呼び出すことができるが、内蔵の暗号化拡張機能は、その動作が1つまたは複数のアプリケーション依存サービスを含む適応自動車ソフトウェア構成部品134用のセキュリティサービス439によって利用することができる。
認証モジュール415は、適応自動車ソフトウェア構成部品134または自動車123の他の構成要素のための認証サービスを提供するように構成された、コードおよびルーチンを含む場合がある。
認証モジュール415は、認証を突破またはバイパスしようと試みるエンティティのインスタンスを検出することができる。これらのインスタンスは、「認証エラーデータ(authentication error data)」と呼ばれる1種のセンサデータ299によって記録するこ
とができる。これらのインスタンスは、ブルートフォースでパスワードを推測する試みを含む場合がある。認証エラーデータは、エンティティが認証を突破またはバイパスしようと試みたインスタンスを記述することができる。認証モジュール415は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に認証エラーデータを送信することができる。
他のセキュリティモジュール417は、適応自動車ソフトウェア構成部品134または自動車123の他の構成要素のための他のセキュリティサービスを提供するように構成された、コードおよびルーチンを含む場合がある。たとえば、他のセキュリティモジュール417は、センサデータ299を検査して、測定値が自然の規則に従っているかどうかを判定することができる。センサデータ299に含まれる測定値が自然の規則に従っていないインスタンスは、「センサエラーデータ(sensor error data)」と呼ばれる1種のセン
サデータ299によって記録することができる。センサエラーデータは、センサデータ299に含まれる測定値が自然の規則に従っているように見えないインスタンスを記述することができる。他のセキュリティモジュール417は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数にセンサエラーデータを送信することができる。
例示的なアプリケーション非依存サービス441は、耐障害性サービス437およびセ
キュリティサービス439のうちの1つまたは複数を含む。
耐障害性サービス437は、自動車123に含まれるソフトウェアの実行またはハードウェアの動作に関連する障害またはエラー(すなわち、「障害イベント」)を識別し、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に、障害イベント(および障害イベントを矯正するように構成されたオプションの推奨出力433)を記述するセンサデータ299を供給する際に、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497を支援するように構成された、コードおよびルーチンを含む場合がある。
いくつかの実施形態では、構成管理モジュール198は、実行時にその機能を実現することができ、修正データ140自体は、(たとえば、工場において、またはネットワーク105を介する自動車123への夜間ワイヤレス更新を介して)設計時に決定されている。
セキュリティサービス439は、セキュリティイベントを識別し、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数に、セキュリティイベント(およびセキュリティイベントを矯正するように構成されたオプションの推奨出力433)を記述するセンサデータ299を供給する際に、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン499を支援するように構成された、コードおよびルーチンを含む場合がある。
いくつかの実施形態では、セキュリティイベントは、自動車修正システム199のセキュリティルールに違反する任意のイベントを含む場合がある。セキュリティルールは、少なくとも部分的に、可変パラメータ293、297によって記述される場合がある。セキュリティルールは、セキュリティサービス439によってアクセス可能なメモリに含まれるセキュリティデータとして記憶される場合がある。
いくつかの実施形態では、セキュリティイベントは、自動車123に含まれるハードウェアの動作もしくはソフトウェアの実行がセキュリティルールの違反をもたらす任意のイベント、またはセキュリティサービス439によりセキュリティイベントであると決定され得る動作もしくは挙動のパターンを含む場合がある。
いくつかの実施形態では、セキュリティイベントを検出すると、自動車修正システム199は、脅威および推奨動作(たとえば、自動車123の運転を停止する)を記述する、自動車123のユーザへの警告を含む出力433を供給することができる。場合によっては、出力433は、自動車修正システム199が自動車123を安全な場所まで自動的に運転し、セキュリティイベントが矯正されるまでさらなる動作をしないように自動車123を停止することを含む場合がある。自動車修正システム199は、グラフィカルユーザインターフェース、オーディオ、または他の何らかのフィードバックをユーザに提供して、セキュリティイベントおよび出力433をユーザに知らせることができる。
アプリケーション依存サービス443は、特定の適応自動車ハードウェア構成部品130または適応自動車ソフトウェア構成部品134に固有の1つまたは複数のサービスを、自動車修正システム199に提供するように構成された、コードおよびルーチンを含む場合がある。
次に図4Bを参照すると、入力431を受信し、入力431に応答して出力433を決定する適応自動車ソフトウェア構成部品134の例示的な実施形態を示すブロック図が描写される。これらの構成要素は、バス420を介して互いに通信可能に結合することがで
きる。いくつかの実施形態により、図4Bにおいて、適応自動車ソフトウェア構成部品134がより詳細に示される。
描写された実施形態は、適応自動車ミドルウェア構成部品132、構成管理モジュール198、入力431、出力433、冗長出力435、メモリ429、修正データ140、および冗長適応自動車ソフトウェア構成部品484のうちの1つまたは複数を含む場合がある。
図4Bにおいて描写された実施形態の構成要素のうち構成管理モジュール198、入力431、出力433、および修正データ140は、図1、図2A、図2B、図3、または図4Aを参照して上述されたので、それらの説明はここでは繰り返さない。
メモリ429は、非一時的コンピュータ可読記憶媒体であり得る。メモリ429は、プロセッサ(たとえば、構成要素225または466)によって実行され得る命令またはデータを記憶する。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ429は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ429はまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ429は、適応自動車ソフトウェア構成部品134によりその機能を実現するために必要とされるデータのいくつかまたはすべてを記憶することができる。
いくつかの実施形態では、耐障害性メモリ427A、セキュリティメモリ427B、チェックポイント421、および例示的なメモリ部分436のうちの1つまたは複数は、メモリ429の副構成部品であり得る。
いくつかの実施形態では、適応自動車ソフトウェア構成部品134は、制御ユニット498、冗長制御ユニット489、チェックポイントモジュール421、および1つまたは複数のメモリ部分436のうちの1つまたは複数を含む場合がある。
いくつかの実施形態では、各適応自動車ソフトウェア構成部品134は、チェックポイント421を含む場合がある。チェックポイント421は、「状態データ(state data)」と呼ばれる1種のセンサデータ299を記憶するメモリ429の一部分を含む場合がある。状態データは、適応自動車ソフトウェア構成部品134の実行より前の、自動車123の1つまたは複数の構成要素の状態を記述することができる。たとえば、状態データは、適応自動車ソフトウェア構成部品134の実行より前の、プロセッサベースのデバイスまたはセンサの状態を記述する。チェックポイント421はまた、制御ユニット498、冗長制御ユニット489、または冗長適応自動車ソフトウェア構成部品484による処理より前に、入力431を記憶することができる。
チェックポイントモジュール421は、適応自動車ミドルウェア構成部品132、構成管理モジュール198、制御ユニット498、冗長制御ユニット489、または冗長適応自動車ソフトウェア構成部品484のうちの1つまたは複数に、状態データを送信することができる。これらの構成要素のうちの1つまたは複数は、エラー(たとえば、障害イベントまたはセキュリティイベント)を検出し、状態データによって記述される前の状態に適応自動車ソフトウェア構成部品134をロールバックさせることができる。次いで、図
4Aを参照して上述されたプロセッサ466は、適応自動車ソフトウェア構成部品134を再実行して、エラーが再発するかどうかを検査し見ることができる。
いくつかの実施形態では、例示的なメモリ部分436は、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン499、タイミングモニタ404、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293、および適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297のうちの1つまたは複数を記憶する、メモリ429の一部分を含む場合がある。
明確にするために、適応自動車ソフトウェア構成部品は、両方とも適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497およびセキュリティアドオン499を含む場合があるが、適応自動車ハードウェア構成部品130は、両方とも適応自動車ハードウェア構成部品130に関連付けられた異なるセキュリティアドオン477および耐障害性アドオン478を含む場合があることに留意されたい。適応自動車ハードウェア構成部品130に関連付けられたセキュリティアドオン477および適応自動車ハードウェア構成部品130に関連付けられた耐障害性アドオン478は、図4Cを参照して下記でより詳細に記載される。
例示的なメモリ部分436は、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497、適応自動車ソフトウェア構成部品134に関連付けられたセキュリティアドオン499、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の特性プロパティ295、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293、および適応自動車ソフトウェア構成部品134に関連付けられた1つまたは複数の可変パラメータ297を含む。これらについては、図1、図2A、図2B、図3、または図4Aを参照して上述されたので、それらの説明はここでは繰り返さない。
タイミングモニタ404は、プロセッサによって実行されることに応答して、以下のステップのうちの1つまたは複数をプロセッサ(たとえば、構成要素225および466)に実行させる、コードおよびルーチンを含む。
・チェックポイント421に記憶された状態データにアクセスすること
・エラーを監視すること
・エラーが識別された場合、状態データの直近のバージョンによって記述される前の状態に適応自動車ソフトウェア構成部品134をロールバックさせること
・適応自動車ソフトウェア構成部品134を再実行して、エラーが再発するかどうかを判定すること
いくつかの実施形態では、制御ユニット498は、耐障害性メモリ427A、セキュリティメモリ427B、耐障害性コントローラ401、セキュリティコントローラ403、および通信モジュール405のうちの1つまたは複数を含む。
通信モジュール405は、制御ユニット498と自動車修正システム199の他の構成部品との間の通信を処理するためのルーチンを含むソフトウェアであり得る。いくつかの実施形態では、通信モジュール405は、自動車修正システム199と図1を参照して上述された動作環境100の他の構成要素との間の通信を処理することができる。
いくつかの実施形態では、通信モジュール405は、図1を参照して上述された動作環境100の他の構成要素間の通信を処理するための下記に記載される機能を提供するために、プロセッサ(たとえば、プロセッサ225または466)によって実行可能な1組の命令であり得る。いくつかの実装形態では、通信モジュール405は、メモリ(たとえば、図2Aを参照して上述されたメモリ227B)に記憶することができ、プロセッサによってアクセス可能かつ実行可能であり得る。通信モジュール405は、バス420への通信結合を介して、プロセッサおよび他の構成部品との協働および通信に適合することができる。
通信モジュール405は、動作環境100の1つまたは複数の構成要素との間で、通信ユニット(たとえば、図2Aを参照して上述された構成要素245)を介して、データを送受信する。
いくつかの実施形態では、通信モジュール405は、動作環境100の1つまたは複数の構成部品からデータ(たとえば、入力431)を受信し、メモリ227A、227B、427A、427Bのうちの1つまたは複数にデータを記憶する。通信モジュール405はまた、動作環境100の1つまたは複数の構成部品からデータを取り出すことができる。
耐障害性コントローラ401は、耐障害性メモリ427Aのモジュールの動作を管理するように構成された、コードおよびルーチンを含む場合がある。耐障害性コントローラ401自体は、耐障害性アドオン497または耐障害性アドオン497の構成要素によって管理することができる。
いくつかの実施形態では、耐障害性コントローラ401は、バス420に通信可能に結合されたプロセッサベースのコンピューティングデバイスであり得る。これらの実施形態では、耐障害性コントローラ401は、耐障害性アドオン497を記憶するメモリを含む場合があり、その関連するプロセッサによる耐障害性アドオン497の実行から受信される命令に基づいて動作する。
耐障害性コントローラ401は、制御フロー検査、命令署名検査、およびウォッチドッグサービスを含む、1つまたは複数の耐障害性サービスの動作を制御することができる。
セキュリティコントローラ403は、セキュリティメモリ427Bのモジュールの動作を管理するように構成された、コードおよびルーチンを含む場合がある。セキュリティコントローラ403自体は、セキュリティアドオン499またはセキュリティアドオン499の構成要素によって管理することができる。
いくつかの実施形態では、セキュリティコントローラ403は、バス420に通信可能に結合されたプロセッサベースのコンピューティングデバイスであり得る。これらの実施形態では、セキュリティコントローラ403は、セキュリティアドオン499を記憶するメモリを含む場合があり、その関連するプロセッサによるセキュリティアドオン499の実行から受信される命令に基づいて動作する。
セキュリティコントローラ403は、暗号化サービスおよび認証サービスを含む、1つまたは複数のセキュリティサービスの動作を制御することができる。
メモリ427A、427Bは、本明細書では、個別にあるいは総称してメモリ427と呼ばれる場合がある。
耐障害性メモリ427A(たとえば、メモリ427またはメモリ427A)は、非一時的コンピュータ可読記憶媒体であり得る。メモリ427Aは、プロセッサ(たとえば、構成要素225または466)によって実行され得る命令またはデータを記憶する。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ427Aは、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ427Aはまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ427Aは、耐障害性コントローラ401、適応自動車ソフトウェア構成部品134に関連付けられた耐障害性アドオン497、構成管理モジュール198、および自動車修正システム199のうちの1つまたは複数によって必要とされるデータのいくつかまたはすべてを記憶することができる。
いくつかの実施形態では、メモリ427Aは、以下の構成要素:フロー検査モジュール407、署名検査モジュール409、および他の耐障害性モジュール411のうちの1つまたは複数を含む場合がある。メモリ427Aのこれらの構成要素は図4Aを参照して上述されたので、これらの説明はここでは繰り返さない。
セキュリティメモリ427Bは、非一時的コンピュータ可読記憶媒体であり得る。メモリ427Bは、プロセッサ(たとえば、構成要素225または466)によって実行され得る命令またはデータを記憶する。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ427Bは、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ427Bはまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ427Bは、セキュリティコントローラ403、セキュリティアドオン499、構成管理モジュール198、および自動車修正システム199のうちの1つまたは複数によって必要とされるデータのいくつかまたはすべてを記憶することができる。
いくつかの実施形態では、メモリ427Bは、以下の構成要素:暗号化モジュール413、認証モジュール415、および他のセキュリティモジュール417のうちの1つまたは複数を含む場合がある。メモリ427Bのこれらの構成要素は図4Aを参照して上述されたので、これらの説明はここでは繰り返さない。
冗長制御ユニット489は、制御ユニット498と同じまたは同様の構成要素を含む場合がある。これらの構成要素は、制御ユニット498と同じまたは同様の方式で動作することができる。冗長制御ユニット489は、有利なことに、適応自動車ソフトウェア構成部品134のためのエラー検出を提供することができる。たとえば、制御ユニット498は、入力431に少なくとも部分的に基づいて、出力433を供給することができる。冗長制御ユニット489は、入力431を処理し、入力431に少なくとも部分的に基づいて、冗長出力435を供給することができる。制御ユニット498は、制御ユニット498によって供給された出力433を分析し、それを冗長制御ユニット489によって供給
された冗長出力435と比較することができる。出力433が冗長出力435と一致しない場合、制御ユニット498は、ソフトエラーの存在を特定し、次いで修復プロセスを開始するように構成された、コードおよびルーチンを含む場合がある。
いくつかの実施形態では、修復プロセスは、ソフトエラーに関連するか、もしくは関連する可能性がある自動車123の1つまたは複数の構成要素を再起動すること、ソフトエラーの存在についての警告を自動車123のユーザに与えること、ソフトエラーを訂正するために推薦処置を自動車123のユーザに提供すること、または、自動車123の現在の状況を想定して自動車123のユーザにとって安全である方式で自動車123に動作を停止させることを含む場合がある。修復プロセスは、自動車123が制御ユニット498によって検出された障害イベントまたはセキュリティイベントを訂正することをサービスされ得るように、自動車123をクライアント170に接続することをさらに含む場合がある。
いくつかの実施形態では、修復プロセスは、障害イベントもしくはセキュリティイベントを解決し、または場合によっては、自動車123のユーザの安全を保証するように構成された、任意のステップまたはステップの組合せを含む場合がある。
冗長適応自動車ソフトウェア構成部品484は、適応自動車ソフトウェア構成部品134と同じまたは同様の構成要素を含む場合がある。これらの構成要素は、適応自動車ソフトウェア構成部品134と同じまたは同様の方式で動作することができる。冗長適応自動車ソフトウェア構成部品484は、有利なことに、適応自動車ソフトウェア構成部品134のためのエラー検出を提供することができる。たとえば、適応自動車ソフトウェア構成部品134は、入力431に少なくとも部分的に基づいて、出力433を供給することができる。冗長適応自動車ソフトウェア構成部品484は、入力431を処理し、入力431に少なくとも部分的に基づいて、冗長出力435を供給することができる。制御ユニット498は、適応自動車ソフトウェア構成部品134によって供給された出力433を分析し、それを冗長適応自動車ソフトウェア構成部品484によって供給された冗長出力435と比較することができる。出力433が冗長出力435と一致しない場合、制御ユニット498は、修復プロセスを開始するように構成された、コードおよびルーチンを含む場合がある。
適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数は、適応自動車ソフトウェア構成部品134に入力431を供給することができる。適応自動車ソフトウェア構成部品134は、入力431に部分的に基づいて、出力433を決定することができる。入力431は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数からの命令、コマンド、呼出し、または他のデータを含む場合がある。入力431は、出力433を決定するために、本明細書において記載されたように適応自動車ソフトウェア構成部品134によって処理することができる。
次に図4Cを参照すると、適応自動車ハードウェア構成部品130の例示的な実施形態を示すブロック図が描写される。
いくつかの実施形態では、適応自動車ハードウェア構成部品130はプロセッサ496、適応自動車ハードウェア構成部品130に関連付けられたセキュリティアドオン477、適応自動車ハードウェア構成部品130に関連付けられた耐障害性アドオン478、メモリ471、FPGA473、通信モジュール445、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、および適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293のうち
の1つまたは複数を含む場合がある。
適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、および適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293は、図2A、図2B、図3、図4A、または図4Bを参照して上述されたので、これらの説明はここでは繰り返さない。
適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、および適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293は、適応自動車ハードウェア構成部品130が、自動車要件データ205によって記述される自動車123に対する1つまたは複数の要件に準拠して動作するように、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数によって読み取られ、再構成される場合がある。
プロセッサ496は、適応自動車ソフトウェア構成部品134のうちの1つまたは複数を実行することができる。プロセッサ496は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、または、計算を実行する他の何らかのプロセッサアレイを含む。いくつかの実装形態では、プロセッサ496は、ディスプレイデバイスに電子表示信号を供給することができる。プロセッサ496は、自動車修正システム199の他の構成要素と通信するためのバス420に結合される。プロセッサ496は、データ信号を処理し、複合命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む、様々なコンピューティングアーキテクチャを含む場合がある。プロセッサ496は、グラフィカル処理ユニットを含む場合がある。図4Cは単一のプロセッサ496を含むが、複数のプロセッサ496が含まれる場合がある。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理構成が考えられ得る。
メモリ471は、非一時的コンピュータ可読記憶媒体であり得る。メモリ471は、プロセッサ496によって実行され得る命令またはデータを記憶する。命令またはデータは、本明細書に記載される技法を実行するためのコードを含む場合がある。メモリ471は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、または他の何らかのメモリデバイスであり得る。いくつかの実装形態では、メモリ471はまた、不揮発性メモリまたは同様の永続的なストレージデバイス、および、ハードディスクドライブ、フロッピーディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより永続的に情報を記憶するための他の何らかのマスストレージデバイスを含む媒体を含む。メモリ471は、適応自動車ハードウェア構成部品130、構成管理モジュール198、または自動車修正システム199により、それらの機能を実行するために必要とされるデータのいくつかまたはすべてを記憶することができる。
いくつかの実施形態では、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293、セキュリティアドオン477の任意のソフトウェア態様、耐障害性アドオン478の任意のソフトウェア態様、および通信モジュール445のうちの1つまたは複数は、メモリ471に記憶することができる。
通信モジュール445は、適応自動車ハードウェア構成部品130と自動車修正システム199の他の構成部品との間の通信を処理するためのルーチンを含むソフトウェアであり得る。いくつかの実施形態では、通信モジュール445は、適応自動車ハードウェア構
成部品130と図1を参照して上述された動作環境100の他の構成要素との間の通信を処理することができる。
いくつかの実施形態では、通信モジュール445は、図1を参照して上述された動作環境100の他の構成要素間の通信を処理するための下記に記載される機能を提供するために、プロセッサ496によって実行可能な1組の命令であり得る。いくつかの実装形態では、通信モジュール445は、メモリ471に記憶することができ、プロセッサ496によってアクセス可能かつ実行可能であり得る。通信モジュール445は、バス420への通信結合を介して、プロセッサ496および他の構成部品との協働および通信に適合することができる。
通信モジュール445は、動作環境100の1つまたは複数の構成要素との間で、通信ユニット(たとえば、図2Aを参照して上述された構成要素245)を介して、データを送受信する。
いくつかの実施形態では、通信モジュール445は、適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の特性プロパティ291、および適応自動車ハードウェア構成部品130に関連付けられた1つまたは複数の可変パラメータ293を、自動車修正システム199の他の構成要素に送信する。通信モジュール445はまた、動作環境100の1つまたは複数の構成部品からデータを取り出すことができる。
セキュリティアドオン477は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含む場合がある。セキュリティアドオン477は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数と通信するように構成される場合がある。セキュリティアドオン477は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数から命令を受信するように構成される場合がある。セキュリティアドオン477は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数から受信された命令を実行するように構成される場合がある。命令は、セキュリティイベントの識別または任意のエラーに対する修復プロセスに関係する場合がある。
セキュリティアドオン477は、固有のセキュリティリスクに対して適応自動車ハードウェア構成部品130のセキュリティを高めるように構成された、専用のプロセッサベースのハードウェア構成部品であり得る。セキュリティアドオン477は、セキュリティイベントを識別し、セキュリティイベントに応答することができる。たとえば、セキュリティアドオン477は、適応自動車ハードウェア構成部品130を含む、自動車修正システム199の任意の構成要素に対するサイドチャネル攻撃を識別し、妨害するように構成された、プロセッサベースのハードウェアを含む場合がある。
耐障害性アドオン478は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含む場合がある。耐障害性アドオン478は、耐障害性イベントを識別し、耐障害性イベントに応答することができる。耐障害性アドオン478は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数と通信するように構成される場合がある。耐障害性アドオン478は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数から命令を受信するように構成される場合がある。耐障害性アドオン478は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数から受信された命令を実行するように構成される場合がある。命令は、障害イベントの識別または任意のエラーに対する修復プロセスに関係する場合がある。
耐障害性アドオン478は、固有の障害リスクに対して適応自動車ハードウェア構成部品130の耐障害性を高めるように構成された、専用のプロセッサベースのハードウェア構成部品であり得る。たとえば、耐障害性アドオン478は、ウォッチドッグタイマサービスを提供するように構成された、プロセッサベースのハードウェアを含む場合がある。
いくつかの実施形態では、ウォッチドッグタイマサービスは、アプリケーション依存サービスまたはアプリケーション非依存サービスを含む動作の実行に対する耐障害性を高めることを含む場合がある。
FPGA473は、適応自動車ハードウェア構成部品130の構成部品のうちの1つまたは複数の加速された性能を実現するように構成された、ハードウェアを含む場合がある。たとえば、適応自動車ハードウェア構成部品130の1つまたは複数の構成要素は、FPGA473として構成され、ハードウェアとして実装される場合がある。
図4Dを参照すると、適応自動車ミドルウェア構成部品132の例示的な実施形態を示すブロック図が描写される。
いくつかの実施形態では、適応自動車ミドルウェア構成部品132は、以下の構成要素:プラグイン構成部品サポートモジュール461、構成管理モジュール198、修正データ140、ポート184、および通信モジュール469のうちの1つまたは複数を含む場合がある。ポート184は、クライアント170に通信可能に結合することができる。適応自動車ミドルウェア構成部品132は、通信モジュール469に通信可能に結合されたバス420を介して、自動車修正システム199の他の構成部品に通信可能に結合することができる。
適応自動車ミドルウェア構成部品132は、自動車修正システム199に耐障害サポートおよびセキュリティサポートを提供するソフトウェア構成部品とハードウェア構成部品のインスタンス化された組合せを含む場合がある。適応自動車ミドルウェア構成部品132の構成要素は、設計時に静的に構成および実装される場合があるが、自動車修正システム199の他の構成要素(たとえば、適応自動車ハードウェア構成部品130および適応自動車ソフトウェア構成部品134)は、自動車要件データ205またはセンサデータ299のうちの1つまたは複数などの入力に基づいて、実行時に適応自動車ミドルウェア構成部品132の構成管理モジュール198により、動的かつ適応的に構成される場合がある。
適応自動車ミドルウェア構成部品132の構成要素のうち、構成管理モジュール198、修正データ140、およびポート184は、図1、図2A、図2B、図3、図4A、図4B、または図4Cを参照して上述されたので、それらの説明はここでは繰り返さない。
プラグイン構成部品サポートモジュール461は、以下のステップのうちの1つまたは複数を、自動車123またはクライアント170のうちの1つまたは複数のプロセッサによって実行すること、または実行されるようにすることにより、プラグイン構成部品160のためのサポートを提供するように構成された、コードおよびルーチンを含む。
(1)プラグイン構成部品160が処理デバイス182、適応自動車ハードウェア構成部品130、適応自動車ソフトウェア構成部品(または自動車123の他の何らかのハードウェアもしくはソフトウェア)の動作または性能をどのように変更するかを判断すること
(2)自動車123がクライアント170または構成管理モジュール198を含む他の何らかのプロセッサベースのコンピューティングデバイスに結合されるまで、自動車123を使用不可にすること
図6は、いくつかの実施形態により、適応自動車ミドルウェア構成部品の一例を描写するブロック図を含む。図6は、いくつかの実施形態により、プラグイン構成部品サポートモジュール461と構成管理モジュール198との間の関係を理解することに関して参照される場合がある。
再び図4Dを参照すると、いくつかの実施形態では、プラグイン構成部品サポートモジュール461は、リアルタイムスケジューリング分析システムを含むか、またはクライアント170を介してそのようなシステムにアクセスする場合がある。リアルタイムスケジューリング分析システムは、スケジューリング分析アルゴリズムを含む場合がある。スケジューリング分析アルゴリズムは、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数と動作するように、特別に構成される場合がある。
いくつかの実施形態では、プラグイン構成部品サポートモジュール461は、以下のステップのうちの1つまたは複数を実行することにより、プラグイン構成部品160のセットアップを完了することができる。
(1)プラグイン構成部品160のためのサポートを提供するスケジュール可能性を判断すること
(2)プラグイン構成部品160のためのサポートを提供するための1つまたは複数のスケジューリングパラメータを割り当てること
(3)プラグイン構成部品160がスケジュール可能かつ自動車修正システム199と動作可能であり得るように、自動車修正システム199の様々な構成要素のための様々な耐障害性およびセキュリティのレベルについての1つまたは複数の構成を含んでいる修正データ140に含まれるデータ構造(たとえば、参照テーブル)を再構築すること
(4)自動車修正システム199の様々な構成要素にそれらの構成を適用すること
(5)プラグイン構成部品160にスケジューリングパラメータを適用すること
(6)プラグイン構成部品160を実行して、障害イベントまたはセキュリティイベントを発生させずに動作可能であることを確認すること
たとえば、図6を参照。
再び図4Dを参照すると、いくつかの実施形態では、プラグイン構成部品サポートモジュール461は、以下のステップのうちの1つまたは複数を実行することができる。
(1)自動車修正システム199から1つまたは複数の特性プロパティ291、295または可変パラメータ293、297を読み取ること
(2)1つまたは複数の特性プロパティ291、295または可変パラメータ293、297に基づいて、新しいプラグイン構成部品160がバス420に通信可能に結合されているかどうかを判定すること
(3)新しいプラグイン構成部品の存在を識別することに応答して、スケジュール可能性分析アルゴリズムを呼び出すこと
(4)スケジュール可能性分析アルゴリズムを実行して新しいプラグイン構成部品のスケジュール可能性を分析し、それにより新しいプラグイン構成部品160が、(たとえば、自動車要件データ205、または、タイミング制約もしくはリソース制約を記述する、自動車123もしくはクライアント170によって記憶される他の何らかのデータによって記述される)タイミング制約またはリソース制約に違反するかどうかを判定すること
(5)タイミング制約またはリソース制約に違反しない場合、自動車修正システム199への新しいプラグイン構成部品の追加のスケジュールが可能であると判断し、新しいプラグイン構成部品160が自動車修正システム199に実装されることに成功するように、新しいプラグイン構成部品160に1つまたは複数のスケジューリングパラメータを割り当てること
(6)タイミング制約またはリソース制約に違反する場合、自動車修正システム199への新しいプラグイン構成部品160の追加のスケジュールが可能ではないと判断し、次いで、
(a)プラグイン構成部品160を含む自動車修正システム199の構成要素のための様々な耐障害性およびセキュリティのレベルについての1つまたは複数の構成を含んでいる修正データ140に含まれる参照テーブルに対する1つまたは複数の更新を決定することであって、新しいプラグイン構成部品がタイミング制約またはリソース制約を破らずに自動車修正システム199内で操作することを可能にするように更新が構成される、決定すること、
(b)更新に基づいて修正データ140に含まれる参照テーブルを再構築すること、
(c)参照テーブルによって記述される新しい構成を自動車修正システム199の各構成部品に割り当てること、ならびに、
(d)自動車修正システム199への新しいプラグイン構成部品160および再構築された参照テーブルの追加のスケジュールが可能であると判断し、新しいプラグイン構成部品160が自動車修正システム199に実装されることに成功するように、新しいプラグイン構成部品160に1つまたは複数のスケジューリングパラメータを割り当てること
リソース制約は、セキュリティ要件および耐障害性要件のうちの1つまたは複数を含む場合がある。リソース制約は、自動車123のプロセッサ(たとえば、プロセッサ225)の能力(capabilities)を含む場合がある。たとえば、リソース制約は、プロセッサ225についてのコンピュータの最大オーバーヘッド(maximum overhead)、プロセッサ225についての最大性能レベル(maximum performance level)、または、バス、センサ、もし
くはタイミング制約を含む自動車123の任意の他の構成要素についてのタイミングを含む場合がある。
いくつかの実施形態では、構成管理モジュール198は、プラグイン構成部品サポートモジュール461の機能のいくつかまたはすべてを実現することができる。いくつかの実施形態では、構成管理モジュール198用のコードのいくつかまたはすべては、クライアント170の構成要素であり得るし、クライアント170は、構成管理モジュール198を実行して、プラグイン構成部品160のためのサポートを可能にするためのその機能を実現することができる。
通信モジュール469は、図4Cを参照して上述された通信モジュール445と同様の機能を実現するので、その説明はここでは繰り返さない。
<4.処理>
図5A〜図5Cは、自動車修正システム199によって実施され得る方法500についての例示的なフローチャートを示すブロック図である。
方法500のステップのうちの1つまたは複数は、適応自動車ミドルウェア構成部品132または構成管理モジュール198のうちの1つまたは複数によって実施される場合がある。いくつかの実施形態では、方法500のステップのいくつかは、適応自動車ミドルウェア構成部品132によって実施される場合があり、方法500の他のステップは、構成管理モジュール198によって実施される場合がある。
いくつかの実施形態では、クライアント170は、方法500のステップのいくつかを実行する第1の構成管理モジュールを含み、適応自動車ミドルウェア構成部品132は、方法500の他のステップを実行する第2の構成管理モジュールを含む。
いくつかの実施形態では、クライアント170は、自動車修正システム199のバスに
通信可能に結合されることにより、自動車修正システム199の構成要素であり得る。
いくつかの実施形態では、方法500の1つまたは複数のステップは、省略される場合がある。いくつかの実施形態では、方法500のステップは、図5A、図5B、および図5Cにおいて描写された順序とは異なる順序で実行される場合がある。
方法500は、図1、図2A、図2B、図3、図4A、図4B、図4C、または図4Dを参照して上述された構成要素のうちの1つまたは複数を参照することによって記載される場合がある。
図5Aを参照すると、方法500は、耐障害性コントローラおよびセキュリティコントローラを構成すること502を含む場合がある。
方法500は、入力および1つまたは複数のシステム状態変数を記憶すること504を含む場合がある。システム状態変数は状態データによって記述される場合がある。
方法500は、適応自動車ソフトウェア構成部品を実行すること506を含む場合がある。
方法500は、アプリケーション非依存サービスを呼び出すこと508を含む場合がある。アプリケーション非依存サービスは、耐障害性サービスまたはセキュリティサービスのうちの1つまたは複数を含む場合がある。
図5Bを参照すると、方法500は、セキュリティアドオンがセキュリティイベントを監視すること510を含む場合がある。ステップ512において、セキュリティアドオンは、セキュリティイベントが検出されたかどうかを判定することができる。たとえば、セキュリティアドオンは、攻撃が発生したかどうかを判定することができる。攻撃は、たとえば、自動車修正システムの任意の構成要素に対するサイドチャネル攻撃を含む場合がある。
ステップ512においてセキュリティイベントが検出された場合、方法500はステップ514に進むことができる。ステップ514において、方法500は、セキュリティアドオンが自動車のドライバに警告を与えることを含む場合がある。警告は、GUIなどの視覚メッセージ、ステレオを介して再生される警告などの音声メッセージ、または視覚メッセージと音声メッセージの組合せを含む場合がある。方法500は、救助(rescue)手順を開始すること516を含む場合がある。たとえば、自動車は、安全に停止し、自動車を使用不可にする対策を講じる自律走行車両であり得る。
また、方法500は、セキュリティイベントが検出された場合(ステップ510または512でYES)に、回復(recovery)手順を開始してもよい。回復試行回数が所定の上限値内である場合には、チェックポイントまでロールバックして上記の処理を再度実行する(チェックポイントをどの時点で記録するかにもよるが、例えばステップ506からの処理が再実行される)。このような回復処理を上限値の回数行っても処理が成功しない場合に、ステップ514以下の処理を実行してもよい。
ステップ512においてセキュリティイベントが検出されなかった場合、方法500はステップ518に進むことができる。
ステップ518において、方法500は、冗長性が有効であるかどうかを判定することを含む場合がある。たとえば、方法500は、冗長制御ユニットまたは冗長適応自動車ソフトウェア構成部品のうちの1つまたは複数が有効であるかどうかを判定することを含む
場合がある。
冗長性が有効でない場合、方法500はステップ524に進むことができる。
冗長性が有効である場合、方法500はステップ520に進むことができる。ステップ520において、冗長構成部品のうちの1つまたは複数を実行することができる。
ステップ522において、方法500は、セキュリティイベントが検出されたかどうかを判定することを含む場合がある。
ステップ522においてセキュリティイベントが検出されなかった場合、方法500はステップ524に進むことができる。ステップ524において、方法500は、他の構成部品にデータを出力することを含む場合がある。出力はセンサデータまたは出力を含む場合がある。
ステップ522においてセキュリティイベントが検出された場合、方法500はステップ514に進むことができる。
次に図5Cを参照すると、ステップ526において、方法は、耐障害性アドオンがエラーを監視することを含む場合がある。ステップ528において、耐障害性イベントが検出されたかどうかに関して判定が行われる。
ステップ528において耐障害性イベントが検出された場合、方法500はステップ530に進む。ステップ530において、タイミング違反が発生したかどうかに関して判定が行われる。
ステップ530においてタイミング違反が検出された場合、方法500は、図5Bを参照して上述されたステップ514に進むことができる。
ステップ530においてタイミング違反が検出されなかった場合、方法500はステップ532に進む。ステップ532において、適応自動車ソフトウェア構成部品を再実行することができる。
ステップ534において、適応自動車ソフトウェア構成部品の再実行に関連するタイミングデータまたは状態データをチェックポイントに記憶することができる。方法500は、図5Aを参照して上述されたステップ506に進むことができる。
ステップ528においてエラーが検出されなかった場合、方法500はステップ536に進むことができる。
ステップ536において、方法500は、冗長性が有効であるかどうかを判定することを含む場合がある。たとえば、方法500は、冗長制御ユニットまたは冗長適応自動車ソフトウェア構成部品のうちの1つまたは複数が有効であるかどうかを判定することを含む場合がある。
ステップ536において冗長性が有効でないという判定が行われた場合、方法500は、図5Bを参照して上述されたステップ524に進むことができる。
ステップ536において冗長性が有効であるという判定が行われた場合、方法500はステップ538に進むことができる。
ステップ538において、方法500は、冗長構成部品を実行することを含む場合がある。
ステップ540において、方法500は、セキュリティイベント(たとえば、セキュリティイベント)が検出されたかどうかを判定することを含む場合がある。
ステップ540においてセキュリティイベントが検出されなかった場合、方法500は、図5Bを参照して上述されたステップ524に進むことができる。
ステップ540においてセキュリティイベントが検出された場合、方法500は、図5Bを参照して上述されたステップ514に進むことができる。
ステップ538の実行に続いて、方法500がステップ540に進むのと同時にステップ528に進む、並列プロセスが実行される場合がある。ステップ540は、セキュリティアドオンの動作に関連するセキュリティサブルーチンを開始することができるが、ステップ528は、耐障害性アドオンに関連する耐障害性サブルーチンを開始することができる。
<5.実装例1>
次に図6を参照すると、適応自動車ミドルウェア構成部品132の例示的な実施形態を示すブロック図が描写される。下記の説明において、適応自動車ハードウェア構成部品130、適応自動車ソフトウェア構成部品134、およびプラグイン構成部品160は、総称して「構成部品130、134、160」と呼ばれる場合がある。同様に、適応自動車ハードウェア構成部品130に関連付けられた特性プロパティ291、適応自動車ハードウェア構成部品130に関連付けられた可変パラメータ293、適応自動車ソフトウェア構成部品134に関連付けられた特性プロパティ295、および適応自動車ソフトウェア構成部品134に関連付けられた可変パラメータ297は、総称して「構成要素291、293、295、297」と呼ばれる場合がある。
適応自動車ミドルウェア構成部品132は、構成部品130、134、160から構成要素291、293、295、297を読み取ることができる。
適応自動車ミドルウェア構成部品132は、自動車123または構成部品130、134、160などの自動車123の構成要素の環境を記述するセンサデータまたは状態データに基づいて、必要な保護レベルを推定することができる。
推定された必要な保護レベルに基づいて、適応自動車ミドルウェア構成部品132は、(たとえば、修正データ140に含まれる)参照テーブルを分析して、必要な保護レベルを達成する構成部品130、134、160についての構成を選択することができる。このプロセスは、構成が構成部品130、134、160の各々について選択され得るように、構成部品130、134、160の各々について繰り返すことができる。
適応自動車ミドルウェア構成部品132は、構成部品130、134、160が選択された構成に準拠して動作するように、構成部品130、134、160を更新することができる。
参照テーブルは、設計時に作成され、自動車(または適応自動車ミドルウェア構成部品132)のメモリに記憶される場合がある。参照テーブルは、自動車123の構成要素に関連するタイミング制約およびリソース制約の設計者の知識に基づいて構成される場合が
ある。参照テーブルは更新される場合がある。たとえば、夜間更新がネットワーク105を介して参照テーブルにワイヤレスにプッシュされる場合がある。
適応自動車ミドルウェア構成部品132は、新しくインストールされるか、または自動車123のプロセッサに通信可能に結合されたプラグイン構成部品160を検査することができる。たとえば、適応自動車ミドルウェア構成部品132は、構成部品130、134、160から構成要素291、293、295、297を読み取り、プラグイン構成部品160に関連付けられた新しい構成要素291、293、295、297を識別することができる。構成要素291、293、295、297は、構成部品130、134、160のメモリに記憶され、セキュリティ要件、耐障害性要件、タイミング制約、またはリソース制約のうちの1つまたは複数に準拠して自動車123を動作させるように、実行時間中に修正可能な修正可能データを含む場合がある。たとえば、構成要素291、293、295、297は、構成部品130、134、160のメモリに記憶され、セキュリティ要件、耐障害性要件、タイミング制約、またはリソース制約のうちの1つまたは複数に準拠して自動車123を動作させるように、実行時に修正可能な修正可能データであり得る。
適応自動車ミドルウェア構成部品132は、ポート184を介してクライアント170からスケジュール可能性分析を呼び出すことができる。スケジュール可能性分析は、自動車123のプロセッサに通信可能に結合されながら動作しているプラグイン構成部品160が、タイミング制約またはリソース制約を違反するかどうかを示すことができる。
タイミング制約またはリソース制約の侵害が検出されなかった場合、自動車123のプロセッサに通信可能に結合されながら動作しているプラグイン構成部品160を含むシステムは、スケジュール可能である。適応自動車ミドルウェア構成部品132は、次に1つまたは複数のスケジュール可能性パラメータをプラグイン構成部品160に割り当てることができる。
自動車のプロセッサに通信可能に結合されながらプラグイン構成部品160を動作させると、車載型コンピュータ、ECU、1つまたは複数のセンサ、バスなどの自動車の他の構成部品130、134、160の構成に影響を及ぼす場合がある。したがって、適応自動車ミドルウェア構成部品132は、これらの構成部品130、134、160についての新しい構成を選択し、それに応じて、セキュリティ要件、耐障害性要件、タイミング制約、またはリソース制約のうちの1つまたは複数を破らないように、それらを更新することができる。
<6.実装例2>
自動車修正システムを、自動運転車両に適用した例を図7〜図12を参照して説明する。なお、以下では説明の簡単化のために、耐障害性(フォールトトレランス)に関する処理のみ実行するものとして説明するが、セキュリティに関する処理を行う場合についても同様であることは容易に理解できるであろう。
図7(A)は、本実装例において実行する3つの適応自動車ソフトウェア構成部品(以下、ソフトウェア部品とも称する)SWC1〜SWC3を示す。SWC1は、センサ701からセンサデータを取得して、車両の姿勢を推定する。SWC2は、路上の物体(典型的には他車両や歩行者等)の物体追跡を行う。SWC3は、車両の位置特定を行う。
また、各ソフトウェア部品は、制御フロー検査、冗長コピー、リトライの各処理の有無あるいは回数を可変パラメータ(構成パラメータ)によって設定可能である。制御フロー検査は、上述したように、制御の流れが要件で定義されたとおりのものであるか否かを検
査する処理である。冗長コピーは、冗長構成によって同じ処理を複数行って、結果が一致しない場合にエラーが発生したと判断する処理である。リトライは、エラーが検知されたときにチェックポイントまでロールバックして、同じ処理を繰り返し実行する処理である。
図7(B)は、本実施例において利用する2つの適応自動車ハードウェア構成部品(以下、ハードウェア部品とも称する)HWC1,HWC2を示す。これらのハードウェア部品によって、SWC1〜SWC3の処理が実行される。HWC1およびHWC2はバス702を介して互いに通信可能であると共に、メモリやセンサなどとも通信可能である。
ここでは図示はしていないが、自動車修正システムは、適応自動車ミドルウェア構成部品(以下、ミドルウェアとも称する)132も含む。ミドルウェアの機能は、図2B、図4D、図6等を用いて説明したので、繰り返しの説明は省略する。
図7(C)は、各ソフトウェア部品の特性プロパティを示す図である。ここでは、特性プロパティとして、各ソフトウェア部品で実行する処理の実行時間と実行周期が例示される。実行時間は、所定(標準)の演算速度を有するプロセッサ(ハードウェア部品)を用いて処理を実行したときに要する時間を表す。実行周期は、定期的に処理を実行する時間間隔を表す。
図7(D)は、各ハードウェア部品の特性プロパティを示す図である。ここでは、特性プロパティとして、各ハードウェア部品の実行速度が、所定性能(演算速度)のプロセッサを基準として示される。この例では、HWC1は、所定性能のプロセッサと同等の演算速度を有し、HWC2は所定性能のプロセッサの1.2倍の演算速度を有する。したがって、HWC1が10msで実行する処理を、HWC2は8.33msで実行可能である。
図8は、設定レベルごとの制御フロー検査・冗長コピー・最大リトライ回数などの設定を表すルックアップテーブル(別の箇所で説明した「修正データに含まれる参照テーブル」に相当)を示す。複数の設定レベルが用意されるのは、必ずしも常に最高レベルの耐障害性やセキュリティを保護する必要がないためである。例えば、宇宙線強度が弱い地域や、セキュリティに対する攻撃が少ない地域では、システムの保護レベルを下げて、システムに対する負荷を抑制してもかまわない。
ルックアップテーブルにおける「マッピング」は、ソフトウェア部品がどのハードウェア部品によって実行されるかを表す。これは、外部から指定されるものであってもよいし、ミドルウェアがマッピング分析によって決定するものであってもよい。特性プロパティは、それぞれのソフトウェア部品に特有な値である。ここで、特性プロパティのうち実行時間の値(実際の値)はソフトウェア部品を実行するハードウェア部品の性能に応じて変化するものであり、図8のルックアップテーブルではハードウェア部品の性能を考慮した実行時間が記載されている点に留意されたい。
また、実行時間は、制御フローや冗長コピーの有無などによっても影響を受ける。ここでは、検査フロー検査をオンにすると30%のオーバーヘッドがかかるものとし、冗長コピーをオンにすると100%のオーバーヘッドがかかるものとしている。
ルックアップテーブルにおける「利用率」は、ハードウェア部品の利用率を表す。なお、利用率が100%を超える場合には、ソフトウェア部品による処理のスケジューリングができない。また、ハードウェア部品の利用率が100%以下であっても、実行周期を満たすようにスケジューリングできない場合もある。図8の例は、全てのレベルにおける全ての処理がスケジューリング可能な例を示している。
図9は、ミドルウェアによるルックアップテーブル生成処理の流れを示すフローチャートである。ここでは、ステップ901において、ミドルウェアは、設定レベルごとの可変パラメータを取得する。典型的には、ミドルウェアは、自動車要件データとして設定レベルごとの可変パラメータを取得する。自動車出荷時であれば自動車要件データは新規のデータである。出荷後であれば安全性やセキュリティに関する要件の変更に伴う可変パラメータの変更の場合もある。
ステップ902において、ミドルウェアは、各ソフトウェア部品およびハードウェア部品の特性プロパティを読み込む。ステップ903において、各ソフトウェア部品をどのハードウェア部品で実行するかを決定するマッピング処理、およびソフトウェア部品の実行周期を満たせるか否かを判定するスケジューリング判定を行う。具体的な処理には、既存のスケジューリング理論に基づく判定が利用可能である。
全ての設定レベルについて全てのソフトウェア部品による処理がスケジューリング可能であれば(ステップ904−YES)、ステップ905において、ルックアップテーブルを更新して有効化する。これ以降は、このルックアップテーブルを用いた処理が行われる。一方、いずれかの設定レベルにおいていずれかのソフトウェア部品の処理がスケジューリングできない場合(ステップ904−NO)には、ステップ906において、その旨の警告表示を行い、ルックアップテーブルの更新を行わない。この警告表示を受けたシステム設計者はあらためて設定レベルごとの可変パラメータを調整して、上記の処理を繰り返すことができる。あるいは、スケジューリング可能にするために、ハードウェア部品の交換あるいは追加を検討することもできる。また、スケジュールイングが不可能な場合に、自動車を起動できないようにしてもよい。
図10は、システム稼働時の処理を示すフローチャートである。ミドルウェアは、ステップ1001においてセンサから環境データを取得し、ステップ1002において環境データに応じた設定レベルを決定する。例えば、環境データは位置情報であり、ミドルウェアは位置ごとにあらかじめ設定レベルが定められたテーブルを記憶しており、このテーブルを参照して現在位置における設定レベルを決める。例えば、宇宙線強度が弱い地域ではソフトエラーが発生する確率が低いので耐障害性のレベルが低くし、宇宙線強度が強い地域では耐障害性のレベルを高くすることが考えられる。
ステップS1003において、ミドルウェアは、決定された設定レベルに応じたソフトウェア部品およびハードウェア部品の可変パラメータを読み込み、ステップ1004において、ソフトウェア部品及びハードウェア部品の可変パラメータをルックアップテーブルから得られた値に変更(更新)する。これにより、環境に応じた適切なレベルでのシステムの保護が可能となる。
例えば、図8におけるレベルNで動作すべきとステップS1002で決定された場合には、SWC1およびSWC3の制御フロー検査はオンにされ、冗長コピー機能はオフにされる。SWC2は、制御フロー検査がオフにされ、冗長コピー機能がオンにされる。また、全てのSWC1〜3について、最大リトライ回数は1に設定される。
次に、システム稼働後に新たなソフトウェア部品やアドオンが追加された際の処理について説明する。ここでは、図11Aに示すように、図9A,9Bに示す構成において、新たなソフトウェア部品SWC4が追加された場合を例に説明を行う。SWC4は、例えば、センサ704から得られるセンサデータに前処理を施して、物体追跡を行うSWC2に前処理後のデータを供給するものである。SWC4の特性プロパティは、(標準的なプロセッサによる)実行時間が10msであり、実行周期が100msであるものとする。
図11Bは、追加のソフトウェア部品が検出された際の処理を表すフローチャートである。ステップ1101からステップ1104の処理は、図9におけるステップ901から904の処理と基本的に同様である。相違点としては、ステップ1101において新たなソフトウェア部品であるSWC4についての可変パラメータも入力される点、およびステップ1102および1104においてSWC4もスケジューリング判定の対象となる点が挙げられる。
全ての設定レベルについて全てのソフトウェア部品による処理がスケジューリング可能であれば(ステップ1104−YES)、ステップ1105において、ルックアップテーブルを更新して有効化する。これ以降は、このルックアップテーブルを用いた処理が行われる。一方、いずれかの設定レベルにおいていずれかのソフトウェア部品の処理がスケジューリングできない場合(ステップ1104−NO)には、ステップ1106において、その旨の警告表示を行い、ルックアップテーブルの更新を行わない。この場合、自動車を起動できないようにしてもよい。
図12は、マッピング処理およびスケジュール判定の例を説明するためのルックアップテーブルである。ここでは、レベル1およびレベル2についてはスケジューリングが可能であるが、レベルNについてスケジューリングが不可能である場合が示されている。レベルNにおいては、リトライ処理を行うべきであるが、リトライを実施した場合HWC2での処理(SWC1,SWC2,SWC4)の実行周期が満たせなくなると判定されている。したがって、この場合、ミドルウェアは警告を出力し、SWC4を有効にしない。あるいは自動車そのものが起動しないようにする。
このように構成によれば、複数の設定レベルでの全ての処理のスケジューリング可能性を担保できる。また、新たなソフトウェア部品が追加された場合や、自動車に課せられる安全性やセキュリティの要件(すなわち、レベルごとの可変パラメータの設定)が変更した場合にも、スケジュール可能性を担保できる。さらに、環境に応じて設定レベルを動的に変更して、環境に応じた設定レベルで自動車システムを動作させることができる。
この例では、耐障害性(フォールトトレランス)の機能に絞って説明をしたが、セキュリティなどその他の処理についても同様に扱えることは明らかであろう。また、可変パラメータはソフトウェア部品についてのみ考慮したが、ハードウェア部品の可変パラメータが調整できる場合も同様の処理が行える。ここで説明した、ソフトウェア部品やハードウェア部品の具体的な数や処理内容は、あくまでも例示に過ぎず本発明を限定する趣旨のものではない。
また、この例では新しいソフトウェア部品が追加されたときの例を用いて説明したが、既存のソフトウェア部品が変更された場合も同様に処理を行える。例えば、暗号処理を行うソフトウェア部品において、利用する暗号アルゴリズムや鍵長が変更された場合には、それに応じて実行速度(特性プロパティ)が変化する。したがって、ミドルウェアによるスケジューリング可能性を再度判定することが望まれる。ソフトウェア部品の変更には、ソフトウェア部品に対するアドオンの追加・変更が含まれる。
また、新しいハードウェア部品が追加あるいは変更された場合には、スケジューリング可能性に影響を与えることがあり、そのような場合にも上記と同様の処理を行うことが望ましい。
以上の説明では、説明の目的で、本明細書を完全に理解するために、多数の具体的な詳細が明記されている。しかしながら、本開示はこれらの具体的な詳細なしに実践され得ることは、当業者には明らかである。場合によっては、説明を不明瞭にすることを回避するために、構造およびデバイスがブロック図の形で示される。たとえば、本実装形態は、主
にユーザインターフェースおよび特定のハードウェアを参照して、上記で記載することができる。しかしながら、本実装形態は、データおよびコマンドを受信することができる任意のタイプのコンピューティングデバイス、ならびにサービスを提供する任意の周辺デバイスに適用することができる。
本明細書における「いくつかの実装形態」または「いくつかの事例」に対する参照は、その実装形態または事例とともに記載される特定の特徴、構造、または特性が説明の少なくとも1つの実装形態に含まれ得ることを意味する。本明細書における様々な場所での「いくつかの実装形態では」というフレーズの出現は、必ずしもすべてが同じ実装形態を参照しているとは限らない。
以下に続く詳細説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズムおよびシンボル表現の観点から提示される。これらのアルゴリズム的な記述および表現は、データ処理技術分野の当業者により、他の当業者に自分の仕事の本質を最も効果的に伝達するために使用される手段である。本明細書において、かつ一般的に、アルゴリズムは、望ましい結果に導く自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするステップである。必ずしもそうであるとは限らないが、通常、これらの量は、記憶、転送、合成、比較、および他の方法で操作することが可能な電気信号または磁気信号の形態をとる。主に共通使用の理由で、これらの信号をビット、値、素子、シンボル、文字、用語、番号などとして参照することは、時には好都合であると証明されている。
しかしながら、これらおよび同様の用語のすべてが、適切な物理量に関連付けられ、これらの量に適用される便利なラベルにすぎないことは留意されるべきである。以下の説明から明白であると別段に明記されていない限り、説明全体にわたって、「処理」または「計算」または「算出」または「決定」または「表示」などを含む用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリもしくはレジスタ、または他のそのような情報を記憶、送信、もしくは表示するデバイス内の物理量と同様に表される他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを参照する。
本明細書の本実装形態はまた、本明細書において動作を実行するための装置に関係することもできる。この装置は、必要な目的のために特別に構築される場合があるか、またはコンピュータに記憶されたコンピュータプログラムによって、選択的にアクティブ化もしくは再構成される汎用コンピュータを含む場合がある。そのようなコンピュータプログラムは、限定はしないが、各々がコンピュータシステムバスに結合される、フロッピーディスク、光ディスク、CD−ROM、および磁気ディスクを含む任意のタイプのディスク、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カードもしくは光カード、不揮発性メモリを有するUSBキーを含むフラッシュメモリ、または電子命令を記憶するのに適した任意のタイプの媒体を含む、コンピュータ可読記憶媒体に記憶される場合がある。
本明細書は、いくつかの全体的にハードウェアの実装形態、いくつかの全体的にソフトウェアの実装形態、またはハードウェアとソフトウェアの両方の構成要素を含んでいるいくつかの実装形態の形態をとることができる。いくつかの好ましい実装形態では、本明細書は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、ソフトウェアに実装される。
さらに、説明は、コンピュータまたは任意の命令実行システムが使用するか、またはそ
れとともに使用されるプログラムコードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスが使用するか、またはそれとともに使用されるプログラムを、内蔵、記憶、通信、伝播、または転送することができる任意の装置であり得る。
プログラムコードを記憶または実行するのに適したデータ処理システムは、システムバスを介してメモリ素子に直接的または間接的に結合された少なくとも1つのプロセッサを含む。メモリ素子は、プログラムコードの実際の実行中に利用されるローカルメモリ、バルクストレージ、および、実行中にバルクストレージからコードが取り出されねばならない回数を低減するために、少なくともいくつかのプログラムコードの一時的ストレージを提供するキャッシュメモリを含むことができる。
(限定はしないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む)入力/出力デバイスまたはI/Oデバイスは、直接または介在するI/Oコントローラを介して、システムに結合することができる。
ネットワークアダプタは、データ処理システムが、介在する専用ネットワークまたは公共ネットワークを介して、他のデータ処理システムまたはリモートプリンタまたはストレージデバイスに結合されるようになることを可能にするために、システムに結合される場合もある。モデム、ケーブルモデム、およびイーサネット(登録商標)カードは、現在利用可能なタイプのネットワークアダプタのうちのほんの一部である。
最後に、本明細書に提示されたアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用システムは、本明細書における教示によるプログラムとともに使用される場合があるか、または必要な方法ステップを実施するためにより特化した装置を構築することが好都合であると証明する場合がある。様々なこれらのシステムに必要な構造は、下記の説明から明らかになる。加えて、本明細書は、いかなる特定のプログラミング言語も参照して記載されていない。本明細書に記載された明細書の教示を実装するために、様々なプログラミング言語を使用できることが諒解されよう。
本明細書の実装形態の上記の説明は、例示および説明の目的で提示されている。本明細書を開示されたそのままの形態に徹底または限定するものではない。上記の教示に照らして、多くの修正形態または変形形態が可能である。本開示の範囲は、この詳細説明によって限定されず、むしろ本出願の特許請求の範囲によって限定されるものである。当業者によって理解されるように、本明細書は、その趣旨または本質的な特性から逸脱することなく、他の固有の形態で具現化される場合がある。同様に、モジュール、ルーチン、特徴、属性、方法、および他の態様の特定の命名および分割は、必須または重要ではなく、本明細書またはその特徴を実装するメカニズムは、様々な名称、分割、またはフォーマットを有する場合がある。さらに、当業者には明らかなように、本開示のモジュール、ルーチン、特徴、属性、方法、および他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはその3つの任意の組合せとして実装することができる。また、その例がモジュールである本明細書の構成部品がソフトウェアとして実装される場合はいつでも、構成部品は、スタンドアロンプログラムとして、より大きいプログラムの一部として、複数の別々のプログラムとして、静的もしくは動的にリンクされたライブラリとして、カーネルのロード可能なモジュールとして、デバイスドライバとして、または、コンピュータプログラミングの当業者に現在知られているか、もしくは将来知られるすべておよび任意の他の方法で、実装することができる。加えて、本開示は、任意の固有のプログラミング言語にお
ける、または任意の固有のオペレーティングシステムもしくは動作環境のための実装に少しも限定されない。したがって、本開示は、以下の特許請求の範囲で明記される本明細書の範囲を限定するものではなく、例示するものである。
100 動作環境
105 ネットワーク
120 バス
123 自動車
130 適応自動車ハードウェア構成部品
130A 適応自動車ハードウェア構成部品
130B 適応自動車ハードウェア構成部品
130N 適応自動車ハードウェア構成部品
132 適応自動車ミドルウェア構成部品
134 適応自動車ソフトウェア構成部品
134A 適応自動車ソフトウェア構成部品
134B 適応自動車ソフトウェア構成部品
134N 適応自動車ソフトウェア構成部品
140 修正データ
153 サービスサーバ
160 プラグイン構成部品
170 クライアント
182 処理デバイス
184 ポート
190 センサセット
196 サービスモジュール
198 構成管理モジュール
199 自動車修正システム
200 システム
205 自動車要件データ
225 プロセッサ
227A メモリ
227B メモリ
245 通信ユニット
291 特性プロパティ
293 可変パラメータ
295 特性プロパティ
297 可変パラメータ
299 センサデータ
300 構成管理モジュール198の例示的な実施形態
401 耐障害性コントローラ
403 セキュリティコントローラ
404 タイミングモニタ
405 通信モジュール
407 フロー検査モジュール
409 署名検査モジュール
411 他の耐障害性モジュール
413 暗号化モジュール
415 認証モジュール
417 他のセキュリティモジュール
420 バス
421 チェックポイント
427A 耐障害性メモリ
427B セキュリティメモリ
429 メモリ
431 入力
433 出力
435 冗長出力
436 例示的なメモリ部分
437 耐障害性サービス
439 セキュリティサービス
441 アプリケーション非依存サービス
443 アプリケーション依存サービス
445 通信モジュール
461 プラグイン構成部品サポートモジュール
466 プロセッサ
469 通信モジュール
471 メモリ
473 FPGA
477 セキュリティアドオン
478 耐障害性アドオン
484 冗長適応自動車ソフトウェア構成部品
489 冗長制御ユニット
496 プロセッサ
497 耐障害性アドオン
498 制御ユニット
499 セキュリティアドオン
500 方法

Claims (5)

  1. 1つまたは複数のソフトウェア構成部品、1つまたは複数のハードウェア構成部品、およびミドルウェア構成部品を含み、前記ソフトウェア構成部品が前記ハードウェア構成部品によって実行される、自動車システムであって、
    前記ソフトウェア構成部品は、前記ソフトウェア構成部品の動作の特性を表す特性プロパティと、前記ソフトウェア構成部品がどのように動作するかを設定するための書き換え可能な可変パラメータを含み、
    前記ハードウェア構成部品は、前記ソフトウェア構成部品の動作の特性を表す特性プロパティを含み、
    前記ミドルウェア構成部品は、
    前記ソフトウェア構成部品に対する要件を表す要件データを取得し、
    前記要件データに表される要件に従って動作させたときに、前記ソフトウェア構成部品による処理がスケジューリング可能であるか否かを、前記ソフトウェア構成部品および前記ハードウェア構成部品の前記特性プロパティを用いて判定し、
    スケジューリングが可能であると判定された場合に、前記ソフトウェア構成部品の可変パラメータを前記要件データによって表される値に更新するかまたは当該値に更新可能とし、
    スケジューリング不可能であると判定された場合は、自動車を起動不可能とする、
    ことを特徴とする自動車システム。
  2. 前記要件データは、複数の設定レベルのそれぞれについて前記ソフトウェア構成部品の機能に関する要件を含み、
    前記ミドルウェア構成部品は、全ての設定レベルについて前記ソフトウェア構成部品による処理がスケジューリング可能であると判定された場合に、前記要件データによって示される各設定レベルごとの前記ソフトウェア構成部品の可変パラメータの値をルックアップテーブルとして記憶し、
    前記ミドルウェア構成部品は、周辺の環境を表す環境データに基づいて設定レベルを決定し、決定された設定レベルに応じた前記ソフトウェア構成部品の可変パラメータの値を前記ルックアップテーブルから取得して、前記ソフトウェア構成部品の可変パラメータを当該値に更新する、
    請求項に記載の自動車システム。
  3. 前記ミドルウェア構成部品は、新しいソフトウェア構成部品の追加が検知されたときに、
    前記新しいソフトウェア構成部品に関する要件を含む新しい要件データを取得し、
    前記新しい要件データに表される要件に従って動作させたときに、前記新しいソフトウェア構成部品を含むソフトウェア構成部品による処理がスケジューリング可能であるか否かを、前記新しいソフトウェア構成部品を含むソフトウェア構成部品および前記ハードウェア構成部品の前記特性プロパティを用いて判定し、
    スケジューリングが可能であると判定された場合に、前記ソフトウェア構成部品の可変パラメータを前記要件データによって表される値に更新するか、または当該値に更新可能にする、
    請求項またはに記載の自動車システム。
  4. 前記ソフトウェア構成部品の特性プロパティは、周期的処理の実行周期、および、所定の演算性能のハードウェア部品を用いて実行したときの1周期あたりの実行時間を含み、
    前記ハードウェア構成部品の特性プロパティは、演算性能を含む、
    請求項からのいずれか1項に記載の自動車システム。
  5. 前記ソフトウェア構成部品の可変パラメータは、セキュリティまたは耐障害性を担保するための機能の有効無効または冗長度を設定するものである、
    請求項からのいずれか1項に記載の自動車システム。
JP2017000667A 2016-02-02 2017-01-05 セキュリティサポートおよび耐障害サポートを提供する自動車修正システム Active JP6432611B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/013,923 US9824509B2 (en) 2016-02-02 2016-02-02 Automobile modification system providing security and fault tolerance support
US15/013,923 2016-02-02

Publications (2)

Publication Number Publication Date
JP2017138969A JP2017138969A (ja) 2017-08-10
JP6432611B2 true JP6432611B2 (ja) 2018-12-05

Family

ID=59387025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017000667A Active JP6432611B2 (ja) 2016-02-02 2017-01-05 セキュリティサポートおよび耐障害サポートを提供する自動車修正システム

Country Status (2)

Country Link
US (1) US9824509B2 (ja)
JP (1) JP6432611B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3232286B1 (en) * 2016-04-15 2018-12-26 Volvo Car Corporation Device and method for safety stoppage of an autonomous road vehicle
KR102304709B1 (ko) 2017-03-03 2021-09-23 현대자동차주식회사 V2x 통신 메시지에 대하여 적응적 보안 레벨을 적용하는 방법 및 장치
US10496469B2 (en) 2017-07-25 2019-12-03 Aurora Labs Ltd. Orchestrator reporting of probability of downtime from machine learning process
DE102017215542A1 (de) * 2017-09-05 2019-03-07 Audi Ag Verfahren zum Betrieb eines Fahrerassistenzsystems eines Kraftfahrzeugs und Kraftfahrzeug
WO2020020437A1 (en) * 2018-07-24 2020-01-30 Bayerische Motoren Werke Aktiengesellschaft Method indicating unexpected behaviour and vehicle, system, and storage medium comprising the same
JP7081472B2 (ja) * 2018-12-18 2022-06-07 トヨタ自動車株式会社 運転支援装置
US11157374B2 (en) * 2018-12-28 2021-10-26 Intel Corporation Technologies for efficient reliable compute operations for mission critical applications
US11074167B2 (en) 2019-03-25 2021-07-27 Aurora Labs Ltd. Visualization of code execution through line-of-code behavior and relation models
CN110736627A (zh) * 2019-09-30 2020-01-31 山东省科学院自动化研究所 一种自动驾驶测试车及其远程控制系统、方法
CN111521408A (zh) * 2020-04-30 2020-08-11 深圳市元征科技股份有限公司 诊断请求处理方法、装置、系统、设备及可读存储介质
CN111880779B (zh) * 2020-07-17 2023-12-26 盛视科技股份有限公司 一种系统应用源代码生成方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3132369B2 (ja) * 1995-11-02 2001-02-05 トヨタ自動車株式会社 路車間通信用車載機及び路車間通信装置
US7245995B2 (en) * 2003-02-19 2007-07-17 Robert Bosch Gmbh Fault-tolerant vehicle stability control
US7275181B2 (en) * 2003-03-26 2007-09-25 International Business Machines Corporation Autonomic embedded computing “dynamic storage subsystem morphing”
JP4259434B2 (ja) * 2004-09-06 2009-04-30 株式会社デンソー 車両盗難防止システム
US20060095230A1 (en) * 2004-11-02 2006-05-04 Jeff Grier Method and system for enhancing machine diagnostics aids using statistical feedback
JP5013668B2 (ja) * 2004-11-19 2012-08-29 株式会社デンソー 車両用制御システム
US7562211B2 (en) * 2005-10-27 2009-07-14 Microsoft Corporation Inspecting encrypted communications with end-to-end integrity
JP4605037B2 (ja) * 2006-02-01 2011-01-05 株式会社デンソー 制御装置
JP5057952B2 (ja) * 2007-12-06 2012-10-24 アルパイン株式会社 角速度補正装置及びその補正方法並びにナビゲーション装置
US9071436B2 (en) * 2007-12-21 2015-06-30 The Invention Science Fund I, Llc Security-activated robotic system
JP2010173366A (ja) * 2009-01-27 2010-08-12 Mitsubishi Electric Corp 車載ネットワーク装置
DE102012201185A1 (de) * 2012-01-27 2013-08-01 Siemens Aktiengesellschaft Verfahren zum Betreiben mindestens zweier Datenverarbeitungseinheiten mit hoher Verfügbarkeit, insbesondere in einem Fahrzeug, und Vorrichtung zum Betreiben einer Maschine
JP2015105056A (ja) * 2013-12-02 2015-06-08 株式会社デンソー 車両用制御装置

Also Published As

Publication number Publication date
US9824509B2 (en) 2017-11-21
JP2017138969A (ja) 2017-08-10
US20170221279A1 (en) 2017-08-03

Similar Documents

Publication Publication Date Title
JP6432611B2 (ja) セキュリティサポートおよび耐障害サポートを提供する自動車修正システム
US9792440B1 (en) Secure boot for vehicular systems
JP6626811B2 (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
KR101861455B1 (ko) 향상된 프라이버시를 갖는 보안 차량 데이터 관리
US9635151B2 (en) In-vehicle communication system and in-vehicle relay apparatus
US11914987B2 (en) Master update agent and distributed update agent architecture for vehicles
JP2017091541A (ja) オープンプラットフォーム車載インフォテインメントシステムのためのアプリケーション保証
CN107949847B (zh) 车辆的电子控制单元
US11922741B2 (en) Secure installation of approved parts using blockchain
US11126730B2 (en) Inspection system
US10678954B2 (en) Cybersecurity vulnerability prioritization and remediation
WO2019149051A1 (zh) 汽车诊断功能的配置方法、装置和汽车诊断设备
JP2014527677A (ja) コンピュータシステムにパッチをインストールするシステム及び方法
US20160357159A1 (en) Method for Determining a Master Time Signal, Vehicle, and System
US20170127457A1 (en) Wireless terminal and instruction processing method thereof
CN112199439A (zh) 数据存储设备和非暂态有形计算机可读存储介质
US11048610B2 (en) Fleet-wide monitoring system for vehicles
US11924726B2 (en) In-vehicle control device, information processing device, vehicle network system, method of providing application program, and recording medium with program recorded thereon
US10621334B2 (en) Electronic device and system
JP2019207593A (ja) スキャン処理装置、スキャン処理方法、コンピュータプログラムおよびスキャン処理システム
US20230336356A1 (en) Data storage device, data storage method, and non-transitory computer readable storage medium
Apvrille et al. Design and Verification of Secure Autonomous Vehicles
JP6874102B2 (ja) 不正検知電子制御ユニット、車載ネットワークシステム及び不正検知方法
CN112152986A (zh) 用于自主系统的决策架构
KR20210079091A (ko) 차량용 제어기의 업데이트 시스템 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181022

R151 Written notification of patent or utility model registration

Ref document number: 6432611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151