JP7043563B2 - 車両のための拡張可能なコンピューティングアーキテクチャ - Google Patents

車両のための拡張可能なコンピューティングアーキテクチャ Download PDF

Info

Publication number
JP7043563B2
JP7043563B2 JP2020171313A JP2020171313A JP7043563B2 JP 7043563 B2 JP7043563 B2 JP 7043563B2 JP 2020171313 A JP2020171313 A JP 2020171313A JP 2020171313 A JP2020171313 A JP 2020171313A JP 7043563 B2 JP7043563 B2 JP 7043563B2
Authority
JP
Japan
Prior art keywords
computing device
instance
runtime environment
vehicle
run
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
JP2020171313A
Other languages
English (en)
Other versions
JP2021064369A (ja
JP2021064369A5 (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2021064369A publication Critical patent/JP2021064369A/ja
Publication of JP2021064369A5 publication Critical patent/JP2021064369A5/ja
Priority to JP2022041488A priority Critical patent/JP7223895B2/ja
Application granted granted Critical
Publication of JP7043563B2 publication Critical patent/JP7043563B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • B60W2050/146Display means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Transportation (AREA)
  • Stored Programmes (AREA)

Description

本出願は、2019年10月11日に出願された、「車両のための拡張可能なコンピューティングアーキテクチャ(EXTENSIBLE COMPUTING ARCHITECTURE FOR VEHICLES)」という名称を有する米国仮出願番号第62/914,153号の利益を主張し、その全内容は、その全文において記載されるように、本明細書において参照により援用される。
背景
車両の信頼性は、車両の平均寿命サイクルが10年以上の使用年数またはそれに近い点まで向上している。車両が、使用年数の間、経年劣化するにつれて、ヘッドユニットおよび電子制御ユニット(ECU: electronic control unit)などを含むコンピューティングシステムがますます時代遅れになり、テクニカルサポート、メンテナンス(および他のサポート)ならびに新しい機能のサポートの観点から寿命の終わりに入り得る。さらに、ヘッドユニットおよび他のコンピューティングシステムは、車両のダッシュボードおよび他のコンポーネントにシームレスにますます統合されつつあるので、ヘッドユニットの交換は、固有のフォームファクタ、大型かつおそらく高価なディスプレイの包含などにより困難になっている。
ヘッドユニットのアップグレードは可能であるが、ヘッドユニット(および他のコンピューティングシステム)を交換するそのようなアップグレードは、しばしば高価である。ヘッドユニット全体を交換するコストは、スクリーンおよび他の(相対的に)高価なコンポーネントの交換を必要とする場合があるからである。当該交換は、必ずしもそうではないが、(ヘッドユニットは、ディスプレイおよび他の高価なコンポーネントを単一のハウジングまたは交換可能なユニットにしばしば統合しているので)必要とされ、(そのようなヘッドユニットは、各車両にシームレスに統合され、車両の各製造およびモデルに固有であり、潜在的に、交換ヘッドユニットの利用可能性を制限し、さらに、コストを増加させる可能性があるので)困難である。したがって、車両のオペレータは、ヘッドユニットならびに他のインフォテインメントおよび他のコンポーネントを含むコンピューティングシステムといったより新しい技術へのアクセスを得るために、かなりの費用で完全に新しい車両を購入する場合がある。
概要
一般に、本開示に記載される技術のさまざまな局面は、車両のための拡張可能なコンピューティングアーキテクチャを対象とする。当該技術は、車両のヘッドユニットまたは他のコンピューティングシステムを交換するのではなく、ヘッドユニットまたは他のコンピューティングシステムが、ヘッドユニットに通信可能に接続されたサポートコンピューティングシステムにインターフェイス接続することを可能にし得、当該ヘッドユニットまたは他のコンピューティングデバイスは、サポートコンピューティングデバイスに、アプリケーションの実行(さらに、アプリケーションスペースの実行だけではなく、他のランタイム環境レベルの動作)をオフロードするか、またはそうでなければ、転送し得る。
ヘッドユニットまたは他のコンピューティングデバイスは、サポートデバイスの通信接続を検出し得、サポートコンピューティングデバイスの通信接続を検出することに応答して、ランタイム環境のパーティションを含むコンテナをサポートコンピューティングデバイスに転送し得る。次いで、サポートコンピューティングデバイスは、ランタイム環境のパーティションを実行して、ランタイム環境の動作を同期し、これにより、(カーネルスペース、すなわちランタイム環境スペースの実行を分散ランタイム環境としてサポートしつつ)アプリケーションが実行され得るユーザスペースを提供し得る。サポートコンピューティングデバイスは、ヘッドユニットによるランタイム環境の拡張可能な実行を可能にするように交換可能またはそうでなければアップグレード可能であってもよく、サポートコンピューティングデバイスは、新しい機能の適合、(例として、セキュリティおよび他の懸念に対処するためのソフトウェアパッチングなどを含む、技術サポートなどのサービス期間の終了に関する)サポートの適合、および、(たとえば、処理能力、メモリサイズなどといったハードウェアアップグレードに関する)メンテナンスの適合を促進するようにアップグレードされてもよい。
サポートコンピューティングデバイスの追加は、メインコンピューティングユニット(別の態様では、「ヘッドユニット」または他のコンピューティングデバイスを指す)に対するアップグレードを可能にし得る。当該アップグレードは、(サポートコンピューティングデバイスが、車両にシームレスに統合されず、ヘッドユニットに通信可能に接続されるのみであるため、フォームファクタ、ディスプレイのような付加的なコンポーネント、全地球測位システム(GPS)などといったシームレスな統合に関連する費用が軽減されるので)より安価である。さらに、サポートコンピューティングデバイスの追加のサポートは、メインコンピューティングデバイスを別途交換する必要なしに、メインコンピューティングデバイスに対するアップグレードを可能にし得、これにより、メインコンピューティングデバイスを交換する必要なく、メインコンピューティングデバイスのアップグレードを可能にし得る。
この点に関して、当該技術のさまざまな局面は、メインコンピューティングデバイスおよびサポートコンピューティングデバイスがランタイム環境の異なるバージョンを実行し得る場合であっても、一貫したユーザ体験を潜在的に提供するような態様で、メインコンピューティングデバイスとサポートコンピューティングデバイスとの間の同期を保証するようコンテナソフトウェアアーキテクチャを提供し得る(ここで、「コンテナ」という用語は、一般に、一般的なソフトウェアブロックまたは構成を指し得る)。したがって、当該技術は、サポートコンピューティングデバイスに対するアップグレード全体を通じて一貫したユーザ体験を潜在的に維持しながら、メインコンピューティングデバイス自体の動作を改善し得る(サポートコンピューティングデバイスによるアップグレードを促進することで、ヘッドユニット自体の寿命が延び、アップグレードコストが低減され得るからである)。
例において、当該技術の局面は、方法に関し、当該方法は、車両に統合されたメインコンピューティングデバイスが、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記メインコンピューティングデバイスが、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを含み、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される。
別の例では、当該技術の局面は、車両に統合されるメインコンピューティングデバイスに関し、当該メインコンピューティングデバイスは、ランタイム環境の第1のインスタンスおよび上記ランタイム環境の第2のインスタンスを格納するように構成されるメモリと、1つ以上のプロセッサとを含み、上記1つ以上のプロセッサは、上記ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される。
別の例では、当該技術の局面は、命令を格納する一時的でないコンピュータ読取可能記憶媒体に関し、上記命令は、実行されると、メインコンピューティングデバイスの1つ以上のプロセッサに、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行わせ、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される。
別の例では、当該技術の局面は、方法に関し、当該方法は、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、サポートコンピューティングデバイスが、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信することを含み、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記方法はさらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記サポートコンピューティングデバイスが、上記第2のコンテナを実行することを含み、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続することを行うように構成される。
別の例では、当該技術の局面は、サポートコンピューティングデバイスに関し、当該サポートコンピューティングデバイスは、1つ以上のプロセッサとを含み、上記1つ以上のプロセッサは、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信するように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行するように構成され、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成され、当該サポートコンピューティングデバイスはさらに、上記第2のコンテナを格納するように構成されるメモリを含む。
別の例では、当該技術の局面は、命令を格納する一時的でないコンピュータ読取可能記憶媒体に関し、上記命令は、実行されると、サポートコンピューティングデバイスの1つ以上のプロセッサに、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信することを行わせ、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、さらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行することを行わせ、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成され、メモリは、上記第2のコンテナを格納するように構成される。
別の例では、当該技術の局面は、コンピューティングシステムに関し、当該コンピューティングシステムは、メインコンピューティングデバイスを含み、上記メインコンピューティングデバイスは、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することとを行うように構成され、当該コンピューティングシステムはさらに、サポートコンピューティングデバイスを含み、上記サポートコンピューティングデバイスは、上記ランタイム環境の上記第2のインスタンスの実行をサポートする上記第2のコンテナを上記メインコンピューティングデバイスから受信することと、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成される。
1つ以上の例の詳細は、添付の図面および以下の説明に記載される。本開示の他の特徴、目的、および利点は、説明および図面ならびに特許請求の範囲から明らかとなるであろう。
本開示において記載される技術のさまざまな局面に従った車両のための拡張可能なコンピューティングアーキテクチャを提供するように構成される例示的なコンピューティングシステムを示すブロック図である。 本開示において記載される拡張可能なハードウェアアーキテクチャ技術のさまざまな局面を実行する際のヘッドユニットの例示的な動作を示すブロック図である。 本開示において記載される拡張可能なコンピューティングアーキテクチャ技術のさまざまな局面に従って動作するように構成されるコンピューティングシステムを含む車両の例を示す図である。 本開示において記載される拡張可能なコンピューティングアーキテクチャ技術のさまざまな局面を実行する際のコンピューティングシステムの例示的な動作を示すフローチャートである。
詳細な説明
図1は、本開示において記載される技術のさまざまな局面に従った車両のための拡張可能なコンピューティングアーキテクチャを提供するように構成される例示的なコンピューティングシステムを示すブロック図である。図1の例に示されるように、コンピューティングシステム100は、メインコンピューティングデバイス102およびサポートコンピューティングデバイス202を含む。コンピューティングシステム100は、車両に関して記載されるが、スタンドアロンコンピューティングシステム(ラップトップコンピュータ、デスクトップコンピュータおよびワークステーションなどを含む)、ゲームシステム、携帯電話(いわゆる「スマートフォン」を含む)、メディアシステム(ストリーミングメディアシステムを含む)、オーディオ/ビジュアル(A/V)受信機、テレビ(いわゆる「スマートテレビ」を含む)、スマートスピーカ、スマートウォッチ、サーモスタット(いわゆる「スマートサーモスタット」を含む)、スマートグラス、または、任意の他のコンピューティングシステムを含む異なるコンテキストにおいて利用されてもよい。
任意の場合において、メインコンピューティングデバイス102は、ヘッドユニットまたは他の車両コンピューティングシステム(電子制御ユニット(ECU)など)といった車両コンピューティングデバイスの例である。図1は、メインコンピューティングデバイス102の1つの特定の例を示すのみであり、メインコンピューティングデバイス102の多くの他の例が、他の場合において使用されてもよく、例示的なコンピューティングデバイス102に含まれるコンポーネントのサブセットを含んでもよく、または、図1に示されない付加的なコンポーネントを含んでもよい。
図1の例に示されるように、メインコンピューティングデバイス102は、存在感知ディスプレイ112と、1つ以上のプロセッサ140と、1つ以上の通信ユニット142と、1つ以上の入力コンポーネント144と、1つ以上の出力コンポーネント146と、1つ以上の記憶デバイス148とを含む。メインコンピューティングデバイス102の記憶デバイス148は、ハードウェア抽象化レイヤー(hardware abstraction layer)126(「HAL126」)と、ランタイム環境(runtime environment)128(「RTE128」)と、システムおよびシングルユーザサービス(SSUS: system and single user services)モジュール130(「SSUS130」)と、システムユーザインターフェイス(SUS: system user interface)モジュール132(「SUS132」)と、カーサービス(CS: car services)モジュール134(「CS134」)と、マルチユーザサービススペース(MUSS: multi-user service space)モジュール136(「MUSS136」)とによって部分的に形成されるソフトウェアヒエラルキを含む。
通信チャンネル150は、コンポーネント間通信のためにコンポーネント112、140、142、146および/または148の各々を(物理的に、通信可能に、および/または、動作可能に)相互接続し得、これによりコンポーネント112、140、142、146および148が互いに通信することを可能にする。いくつかの例では、通信チャンネル150は、システムバス、ネットワーク接続、1つ以上のプロセス間通信データ構造、または、データ(情報とも称される)を通信するための任意の他のコンポーネントを含み得る。メインコンピューティングデバイス102は、コンポーネント112、140、142、146および148を含むように示されているが、示されるコンポーネント以外のコンポーネントまたは示されるコンポーネントより少ないコンポーネントを含んでもよく、そのようなコンポーネントは、テレマティック制御ユニット(TCU: telematic control unit)などの他の制御ユニットに含まれてもよい。
コンピューティングデバイス100の1つ以上の通信ユニット142は、データを送信および/または受信することによって外部デバイスと通信し得る。たとえば、メインコンピューティングデバイス102は、通信ユニット142のうちの1つ以上を使用して、セルラ無線ネットワークなどの無線ネットワーク上で無線信号を送信および/または受信し得る。いくつかの例では、通信ユニット142は、全地球測位システム(GPS: Global Positioning System)ネットワークなどの衛星ネットワーク上で衛星信号を送信および/または受信し得る。通信ユニット142の例は、ネットワークインターフェイスカード(たとえば、イーサネット(登録商標)カード)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または、情報を送信および/または受信し得る任意の他のタイプのデバイスを含む。通信ユニット142の他の例は、モバイルデバイスにおいて見られる短波無線(たとえば、NFC、ブルートゥース(登録商標)(BLEを含む))、GPS、3G、4G、5G、およびWIFI(登録商標)無線、ならびに、ユニバーサルシリアルバス(USB: Universal Serial Bus)コントローラなどを含み得る。
メインコンピューティングデバイス102の1つ以上の入力コンポーネント144は、入力を受け取り得る。入力の例は、いくつか例を挙げると、触覚入力、オーディオ入力、運動入力、および光学的入力である。メインコンピューティングデバイス102の入力コンポーネント144は、一例では、マウス、キーボード、タッチパッド、音声応答システム、ビデオカメラ、ボタン、スクロールホイール、ダイヤル、制御パッド、マイクロフォン、または、人間もしくは機械からの入力を検出するための任意の他のタイプのデバイスを含む。入力コンポーネント144は、カメラを含み得る。いくつかの例では、入力コンポーネント144は、存在感知ディスプレイ112とは別個である存在感知スクリーン、タッチ感知スクリーンなどを含み得る存在感知入力コンポーネントであり得る。
メインコンピューティングデバイス102の1つ以上の出力コンポーネント146は、出力を生成し得る。出力の例は、触覚出力、オーディオ出力、およびビデオ出力である。コンピューティングデバイス100の出力コンポーネント146は、いくつかの例では、(場合によっては、存在感知ディスプレイ112とは別個の)存在感知スクリーン、サウンドカード、ビデオグラフィックスアダプタカード、スピーカ、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)、または、人間または機械への触覚出力、オーディオ出力および/または視覚出力を生成するための任意の他のタイプのデバイスを含む。
いくつかの例では、メインコンピューティングデバイス102の存在感知ディスプレイ112は、入力コンポーネント144および/または出力コンポーネント146の機能を含み得る。図1の例では、存在感知ディスプレイ112は、存在感知スクリーンまたはタッチ感知スクリーンなどの存在感知入力(PSI: presence-sensitive input)コンポーネント104(「PSIコンポーネント104」)を含み得る。いくつかの例では、存在感知入力コンポーネント104は、当該存在感知入力コンポーネントにおいて、および/または、当該存在感知入力コンポーネントの近傍において、対象を検出し得る。1つの例示的な範囲として、存在感知入力コンポーネント504は、存在感知入力コンポーネント104の2インチ以内にある指またはスタイラスなどの対象を検出し得る。存在感知入力コンポーネント104は、当該対象が検出された存在感知入力コンポーネントの位置(たとえば、(x,y)座標)を決定し得る。別の例示的な範囲において、存在感知入力コンポーネント104は、存在感知入力コンポーネント104から2インチ以下の対象を検出し得、他の範囲も可能である。存在感知入力コンポーネント104は、容量的認識技術、誘導的認識技術および/または光学的認識技術を使用して、ユーザの指によって選択される存在感知入力コンポーネント104の位置を決定し得る。
いくつかの例では、存在感知ディスプレイ112はさらに、出力コンポーネント146に関して説明したように、触覚刺激、オーディオ刺激またはビデオ刺激を使用して、ユーザに出力を提供し得る。たとえば、存在感知ディスプレイ112は、グラフィカルユーザインターフェイスを表示するディスプレイコンポーネント103を含み得る。ディスプレイコンポーネント103は、出力コンポーネント146に関して説明したような視覚出力を提供する任意のタイプの出力コンポーネントであり得る。存在感知ディスプレイ112は、メインコンピューティングデバイス102の統合されたコンポーネントとして示されているが、いくつかの例では、入力および出力を送信および/または受信するためにメインコンピューティングデバイス102の他のコンポーネントとデータパスまたは情報パスを共有する外部コンポーネントであり得る。たとえば、存在感知ディスプレイ512は、メインコンピューティングデバイス102の外部パッケージング内に位置するとともにメインコンピューティングデバイス102の外部パッケージングに物理的に接続されるメインコンピューティングデバイス102の内蔵コンポーネント(たとえば、車両のダッシュボードに搭載される車載スクリーン)であり得る。別の例では、存在感知ディスプレイ112は、メインコンピューティングデバイス102のパッケージングの外部に位置するとともにメインコンピューティングデバイス102のパッケージングとは物理的に分離されているメインコンピューティングデバイス102の外部コンポーネント(たとえば、車両の電子制御ユニットと有線および/または無線のデータパスを共有するモニタ、プロジェクタなど)であり得る。いくつかの例では、存在感知ディスプレイ112は、メインコンピューティングデバイス102のパッケージングの外側に位置するとともにメインコンピューティングデバイス102のパッケージングから物理的に分離されている場合、入力を受け取るための存在感知入力コンポーネント104と、出力を提供するためのディスプレイコンポーネント103という、2つの別個のコンポーネントによって実現され得る。
メインコンピューティングデバイス102内の1つ以上の記憶コンポーネント148は、メインコンピューティングデバイス102の動作中における処理のための情報を格納し得る(たとえば、コンピューティングデバイス102は、メインコンピューティングデバイス102での実行中にモジュール126~136によってアクセスされるデータを格納し得る)。いくつかの例では、記憶コンポーネント148は一時的なメモリであり、これは、記憶コンポーネント148の一次的な目的が長期的な記憶ではないことを意味する。メインコンピューティングデバイス102上の記憶コンポーネント148は、揮発性メモリとして情報の短期的な記憶のために構成され得、したがって、電源がオフにされた場合、格納されたコンテンツを保持し得ない。揮発性メモリの例は、ランダムアクセスメモリ(RAM: random access memory)、ダイナミックランダムアクセスメモリ(DRAM: dynamic random access memory)、スタティックランダムアクセスメモリ(SRAM: static random access memory)、および、当技術において公知である揮発性メモリの他の形態を含む。
いくつかの例では、記憶コンポーネント148はさらに、1つ以上のコンピュータ読取可能記憶媒体を含む。いくつかの例では、記憶コンポーネント148は、1つ以上の一時的でないコンピュータ読取可能記憶媒体を含む。記憶コンポーネント148は、揮発性メモリによって典型的に格納されるよりも大きな量の情報を格納するように構成され得る。記憶コンポーネント148はさらに、不揮発性メモリスペースとして長期間の情報の記憶のために構成され得、かつ、電源オン/オフサイクル後に情報を保持するように構成され得る。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フラッシュメモリ、または電気的プログラム可能メモリ(EPROM: electrically programmable memory)もしくは電気的消去可能プログラム可能メモリ(EEPROM: electrically erasable and programmable)メモリの形態を含む。記憶コンポーネント148は、モジュール126~136に関連するプログラム命令および/または情報(たとえば、データ)を格納し得る。記憶コンポーネント148は、モジュール126~136に関連するデータまたは他の情報を格納するように構成されるメモリを含み得る。
1つ以上のプロセッサ140は、メインコンピューティングデバイス102に関連する機能を実現し得、および/または、メインコンピューティングデバイス102に関連する命令を実行し得る。プロセッサ140の例は、アプリケーションプロセッサと、ディスプレイコントローラと、補助プロセッサと、1つ以上のセンサハブと、プロセッサ、処理ユニットまたは処理デバイスとして機能するように構成される任意の他のハードウェアとを含む。モジュール126~136は、メインコンピューティングデバイス102のさまざまなアクション、動作、または機能を実行するようにプロセッサ140によって動作可能であり得る(または、換言すると、実行され得る)。すなわち、モジュール126~136は、実行可能なバイトコードを形成し得る。当該実行可能なバイトコードは、実行されると、本明細書において記載される技術のさまざまな局面に従って、プロセッサ140に特定の動作を実行させる(そして、これにより、メインコンピューティングデバイス102が、実行するべき特定目的のコンピュータとなる)。たとえば、メインコンピューティングデバイス102のプロセッサ140は、モジュール126~136に起因する本明細書において記載される動作をプロセッサ140に実行させる、記憶コンポーネント148によって格納される命令を抽出および実行し得る。当該命令は、プロセッサ140によって実行されると、メインコンピューティングデバイス102に、記憶コンポーネント148内に情報を格納させ得る。
サポートコンピューティングデバイス202は、メインコンピューティングデバイス102と同様のコンポーネントを含み得る。図1の例にさらに示すように、サポートコンピューティングデバイス202は、1つ以上のプロセッサ240、1つ以上の通信ユニット242、1つ以上の入力コンポーネント244、1つ以上の出力コンポーネント246、および、1つ以上の記憶デバイス284を含み得る。コンポーネント240~284の各々は、上でより詳細に論じたように、サポートコンピューティングデバイス202が、存在感知ディスプレイ112または任意の他の視覚的、聴覚的、もしくは他の出力デバイスもしくはインターフェイスと同様の存在感知ディスプレイを含み得ないことを除き、それぞれのコンポーネント140~184と実質的に同様でなければ、同様であり得る。
サポートコンピューティングデバイス202はさらに、モジュール240~284を相互接続する通信バス250を含む。通信バス250は、上でより詳細に論じた通信バス150と実質的に同様でなければ、同様であり得る。
さらに、記憶デバイス284は、それぞれのモジュール126~136と実質的に同様でなければ、同様であり得るモジュール226~236を格納し得る。すなわち、記憶デバイス284は、HAL226、OS228、SSUS230、SUI232、CS234およびMUSS236を格納し得る。HAL226、OS228、SSUS230、SUI232、CS234およびMUSS236の各々は、以下においてより詳細に記載される技術のさまざまな局面を実行するために、それぞれのモジュール126~136の動作をオフロードするように、または、それぞれのモジュール126~136の動作と協働して作動するように、上で示されるように機能する。
上述したように、コンピューティングシステム100は、車両内に統合され得るか、またはそうでなければ、車両内に含まれ得る。車両は、自転車、三輪車、単輪車、自動車、農場機器(トラクタ、コンバインなど)、建設機器(ダンプトラック、クレーンなど)、軍用車両もしくは機器(戦車、装備など)、トラック、セミトラクタ(もしくは、換言すると、セミトレーラ)、航空機器(飛行機など)、船舶機器(ボート、運搬船など)、または、任意の他の種類の車両のうちの1つ以上を含み得る。
車両の信頼性は、車両の平均寿命サイクルが10年以上の使用年数またはそれに近い点まで向上している。車両が、使用年数の間、経年劣化するにつれて、ヘッドユニットおよび電子制御ユニット(ECU)などを含むコンピューティングシステム100のようなコンピューティングシステムがますます時代遅れになり、テクニカルサポート、メンテナンス(および他のサポート)ならびに新しい機能のサポートの観点から寿命の終わりに入り得る。さらに、メインコンピューティングデバイス102を含むヘッドユニットおよび他のコンピューティングシステムは、車両のダッシュボードおよび他のコンポーネントにシームレスに統合されつつあるので、(メインコンピューティングデバイス102が一例である)ヘッドユニットの交換は、固有のフォームファクタ、大型かつおそらく高価なディスプレイの包含などにより困難になっている。
ヘッドユニットのアップグレードは可能であるが、ヘッドユニット(および他のコンピューティングシステム)を交換するそのようなアップグレードは、しばしば高価である(ヘッドユニット全体を交換するコストは、ディスプレイおよび他の(相対的に)高価なコンポーネントの交換を必要とする場合があるからである)。当該交換は、必ずしもそうではないが、(ヘッドユニットは、ディスプレイおよび他の高価なコンポーネントを単一のハウジングまたは交換可能なユニットにしばしば統合しているので)必要とされ、(そのようなヘッドユニットは、各車両にシームレスに統合され、車両の各製造およびモデルに固有であり、潜在的に、交換ヘッドユニットの利用可能性を制限し、さらに、コストを増加させる可能性があるので)困難である。したがって、車両のオペレータは、ヘッドユニットならびに他のインフォテインメントおよび他のコンポーネントを含むコンピューティングシステムといったより新しい技術へのアクセスを得るために、かなりの費用で完全に新しい車両を購入する場合がある。
アップデートされたコンピューティングシステムを取得するための移行経路は、より新しい技術(たとえば、アップグレードされたOS、アプリケーションなどによって提供される機能に関して拡張機能を提供する新しいヘッドユニット)にアクセスすることを望むオペレータに(新しい車両またはより新しい車両を購入するための初期の出金と、ヘッドユニットを交換するためのアップグレードコストとの両方において)かなりの費用をもたらし得る。より新しい技術への移行の費用は、より新しい技術の採用に対する障壁を提示し、オペレータによるさまざまな機能の取り込みを遅らせ得る。当該さまざまな機能は、安全機能、セキュリティ機能およびデータプライバシー機能などを含み得る。
本開示において記載される技術のさまざまな局面に従うと、コンピューティングシステム100は、車両のための拡張可能なコンピューティングアーキテクチャを実現し得る。当該技術は、車両の(いわゆる「ヘッドユニット」の一例を表し得、したがって「ヘッドユニット102」と称される)メインコンピューティングユニット102または他のコンピューティングシステムを交換するのではなく、ヘッドユニット102または他のコンピューティングシステムが、ヘッドユニット102に通信可能に接続されるサポートコンピューティングシステム202にインターフェイス接続することを可能にし得、ヘッドユニット102または他のコンピューティングデバイスは、サポートコンピューティングデバイス202に、アプリケーションの実行(さらに、アプリケーションスペースの実行だけではなく、他のランタイム環境レベルの動作)をオフロードするか、またはそうでなければ、転送し得る。
ヘッドユニット102または他のコンピューティングデバイスは、サポートデバイス202の通信接続を検出し得、サポートコンピューティングデバイス202の通信接続を検出することに応答して、ランタイム環境228のパーティションを含むコンテナ238をサポートコンピューティングデバイス202に転送し得る。コンテナ238をサポートコンピューティングデバイス202に転送すると記載されているが、ヘッドユニット102は、単に、サポートコンピューティングデバイス202が検出されたという指示であって、OSの事前にインストールされたパーティションを実行するために、サポートコンピューティングデバイス202が、事前にインストールされたコンテナ(コンテナ238と同様)の実行を開始するべきであるという指示を転送してもよい。OSの事前にインストールされたパーティションは、ランタイム環境228と実質的に同様でなければ、同様であり得る。したがって、コンテナ238の転送は、実際のコンテナ自体の転送を指すか、または、ヘッドユニット102からサポートコンピューティングデバイス202への予めインストールされたコンテナの実行の転送を指すということが理解されるべきである。
任意の場合、サポートコンピューティングデバイス202は、次いで、RTE228のパーティションを実行して、RTE128および228の動作を同期し、これにより、(カーネルスペース、すなわちランタイム環境スペースの実行を分散ランタイム環境としてサポートしつつ)アプリケーションが実行され得るユーザスペースを提供し得る。サポートコンピューティングデバイス202は、ヘッドユニット102によるRTE128および228の拡張可能な実行を可能にするように交換可能またはそうでなければアップグレード可能であってもよく、サポートコンピューティングデバイス202は、新しい機能の適合、(例として、セキュリティおよび他の懸念に対処するためのソフトウェアパッチングなどを含む、技術サポートなどのサービス期間の終了に関する)サポートの適合、および、(たとえば、処理能力、メモリサイズなどといったハードウェアアップグレードに関する)メンテナンスの適合を促進するようにアップグレードされてもよい。
サポートコンピューティングデバイス202の追加は、メインコンピューティングユニット102(別の態様では、「ヘッドユニット」または他のコンピューティングデバイスを指す)に対するアップグレードを可能にし得る。当該アップグレードは、(サポートコンピューティングデバイス202が、車両にシームレスに統合されず、ヘッドユニット102に通信可能に接続されるのみであるため、フォームファクタ、ディスプレイのような付加的なコンポーネント、全地球測位システム(GPS)などといったシームレスな統合に関連する費用を軽減されるので)より安価である。さらに、サポートコンピューティングデバイス202の追加のサポートは、メインコンピューティングデバイス102を別途交換する必要なしに、メインコンピューティングデバイス102に対するアップグレードを可能にし得、これにより、メインコンピューティングデバイス102を交換する必要なく、メインコンピューティングデバイス102のアップグレードを可能にし得る。
この点に関して、当該技術のさまざまな局面は、メインコンピューティングデバイス102およびサポートコンピューティングデバイス202がランタイム環境の異なるバージョンを実行し得る場合であっても、一貫したユーザ体験を潜在的に提供するような態様で、メインコンピューティングデバイス102とサポートコンピューティングデバイス202との間の同期を保証するようコンテナソフトウェアアーキテクチャを提供し得る。したがって、当該技術は、サポートコンピューティングデバイス202に対するアップグレード全体を通じて一貫したユーザ体験を潜在的に維持しながら、メインコンピューティングデバイス102自体の動作を改善し得る(サポートコンピューティングデバイス202によるアップグレードを促進することで、ヘッドユニット102自体の寿命が延び、アップグレードコストが低減され得、サポートコンピューティングデバイス202に処理をオフロードするように機能の改善を促進することによって、処理、格納、および帯域幅が改善され得るからである)。
動作において、メインコンピューティングデバイス102は、ランタイム環境(たとえば、RTE128)の第1のインスタンスの実行を可能にする第1のコンテナ138を最初に実行し得る。上述したように、メインコンピューティングデバイス102は、上述のソフトウェアヒエラルキを含み得る。したがって、HAL126は、RTE128と車両の存在するハードウェア(説明を容易にするために図示せず)との間のシームレスなインタラクションを提供するよう、RTE128のカーネルとの間のカーネルソフトウェアシム(kernel software shim)として実行され得る。車両のハードウェアコンポーネントは、GPSシステム、自動化システム(たとえばセルフドライビングシステムおよび/または動的クルーズ制御システム)、暖房、換気および空調(HVAC)システム、(ウィンドウの動作を制御するための)ウィンドウシステム、(さまざまな内部照明の動作を制御するための)内部照明システム、(さまざまな外部照明の動作を制御するための)外部照明システム、安全システム(たとえば、自動ブレーキングシステムすなわちABS、レーンアシストシステム、アテンションベースの安全システムなどを含む)、座席加温システム、座席冷却システム、または、車両に存在する任意の他のシステムを含み得る。
したがって、RTE128は、HAL126内で実行され得、HAL128は、RTE128によって発行されるコマンドまたは他の出力信号をインターセプトし得、当該RTE固有のコマンドを、存在する車両ハードウェアによってサポートされる車両固有のコマンドに変換しつつ、車両固有のデータを、RTE128によってサポートされるRTE固有のデータに変換し得る。OS固有のコマンドおよび車両固有のデータの変換は、RTE128に対して透過的に行われ得、RTE128とは別個にHAL126を開発することが可能になり、これにより、(オリジナルエクイップメントマニファクチャラ(original equipment manufacturer)すなわちOEMハードウェアおよび/またはコンポーネントに関して製造およびモデルにわたって変動し得る)個々の車両のために調節されたシム(たとえばHAL126)により一般的なRTE128の適合を促進する。
RTE128は、システムレベルアプリケーションおよびユーザアプリケーションのための実行環境を提供するために、上述のカーネルスペースにおいて実行され得る。図1の例では、SSUS130、SUI132、およびCS134は各々、RTE128によって提供される実行環境内で実行されるシステムレベルアプリケーションを表し得る。RTE128は、SSUS130、SUI132、およびCS134の各々に、存在する車両ハードウェアへのアクセスの増加を許可するシステムレベルの特権を付与し、その一方、RTE128は、MUSS136内で実行されるアプリケーションに、SSUS130、SUI132、およびCS134の各々に付与されるシステムレベルの特権よりも限定的であるユーザ固有の特権を付与する。システムレベルの特権は、ユーザ固有の特権と比較して、車両ハードウェアコンポーネントへのアクセスの(アクセスの許可または優先に関する)増加を可能にし得る。例として、SSUS130、SUI132およびCS134は、車両のハードウェアシステムまたはコンポーネントの動作を制御するために、車両のハードウェアシステムまたはコンポーネントのうちの1つ以上にアクセスし得、その一方、MUSS136は、車両のハードウェアシステムまたはコンポーネントによって提供されるデータ(GPSシステムが出力するGPS座標、HVACシステムが出力する環境温度など)にのみアクセスし得る。
SSUS130は、シングルユーザサービス(たとえば、すべてのユーザにわたって共通であり、したがって「共通サービス(common service)」とも称され得る)およびシステムサービス(たとえば、すべてのユーザにわたってインストールされるとともにメインコンピューティングデバイス102のすべてのユーザによる使用のための1つ以上のシステムサービスを提示するファーストパーティアプリケーション)を実行するように構成されるモジュールを表し得る。SUI132は、システムレベルのユーザインターフェイスを提示するように構成されるモジュールを表し得る。当該システムレベルのユーザインターフェイスにより、車両のオペレータは、車両のさまざまな動作を制御するためにインタラクションし得、かつ、(MUSS136によって表される)アプリケーションの実行を起動、またはそうでなければ、開始するためにインタラクションし得る。CS134は、GPSシステム、HVACシステム、座席システム、ウィンドウシステム、または、本明細書の他の箇所でより網羅的に列挙される任意の他のシステムを含むさまざまなカーサービスとインターフェイス接続する(たとえば、API)ように構成されるモジュールを表し得る。
MUSS136は、特定のサードパーティアプリケーション、(個々のユーザに関連する)ユーザ固有の自動車サービス、および、他のユーザ固有のデータまたは情報を含む個々のユーザプロファイルを提供する1つ以上のモジュールを表し得る。MUSS136は、存在するRTE128によって維持されるアプリケーションスペースにおいて実行され得る。この点に関して、MUSS136は、メインコンピューティングデバイス102の能力を拡張するためにダウンロードおよび/またはインストールされ得るアプリケーションによって、拡張されたソフトウェア能力を提供するためにアプリケーションスペースにおいて実行されるモジュールを表し得る。
メインコンピューティングデバイス102はさらに、ランタイム環境(たとえば、RTE228)の第2のインスタンスの実行を可能にする第2のコンテナ238を最初に実行し得る(説明を容易にするために図1には図示せず)。RTE128およびRTE228は、車両のオペレータが車両の機能を制御するユーザインターフェイス(たとえば、SUI132および232によって提供される)を一緒に提示するように構成され得る。メインコンピューティングデバイス102は、コンテナ138を一次またはホストコンテナ138として実行し、コンテナ238を二次またはクライアントコンテナ238として実行し得る。クライアントコンテナ238は、ホストコンテナ138の実行をサポートするように動作する。したがって、クライアントコンテナ238は、ホストコンテナ138の代わりに動作してもよく、ホストコンテナ138と独立して実行されなくてもよい。ホストコンテナ138の代わりに動作すると記載されているが、クライアントコンテナ238は、ホストコンテナ138とは独立して実行されてもよい。この例において、ホストコンテナ138は、データをクライアントコンテナ238に渡すためのシムを表し得る。
メインコンピューティングデバイス102は、(上述のようにプロセッサ140を介して)コンテナ138を実行し得、これにより、RTE128(および存在するHAL126)の実行を呼び出し得る。RTE128は、入力コンポーネント144および/または通信ユニット142とのインタラクションを介して、メインコンピューティングデバイス102と通信するサポートコンピューティングデバイス202を検出し得る。すなわち、サポートコンピューティングデバイス202は、メインコンピューティングデバイス102に接続されると、電源オンされ(通信インターフェイスを介して電力供給される場合)、出力コンポーネント248および/または通信ユニット242を介してメインコンピューティングデバイス102にインターフェイス接続するための軽量オペレーティングシステム(RTE228とは異なる)または他の低レベルソフトウェア(ファームウェアなど)を実行し得る。次いで、RTE128は、メインコンピューティングデバイス102とサポートコンピューティングデバイス202との間の通信を確立するためのプロトコルまたは他のアプリケーションプログラマインターフェイス(API: application programmer interface)コールを伴い得る、サポートコンピューティングデバイス202との通信接続を検出し得る。
メインコンピューティングデバイス102とサポートコンピューティングデバイス202との間の接続は、図1の例において接続160として示されている。接続160は、無線接続、有線接続(1.0、2.0、3.0などの任意のバージョンのUSB接続のように、物理的なワイヤを介して接続が確立される)、または、有線(たとえば電力用)および無線接続の組み合わせを含み得る。
サポートコンピューティングデバイス202を検出することに応答して、RTE128は、コンテナ238をサポートコンピューティングデバイス202に転送し得る。RTE128は、出力コンポーネント146および/または通信ユニット142を介してサポートコンピューティングデバイス202にコンテナ238を転送し得る。サポートコンピューティングデバイス202は、コンテナ238を受信し、メインコンピューティングデバイス102に関して上で説明されたものと同様のソフトウェアヒエラルキを確立するようコンテナ238を実行し、これにより、HAL226、RTE228、SSUS230、SUI232、CS234、およびMUSS236の実行を促進する。
実際に、メインコンピューティングデバイス102は、セグメントまたはパーティションで全体のRTEを実行し得る。RTEの第1のパーティション(たとえば、RTE128)は、SSUS130,132、SUI132,232、CS134,234、および、MUSS136および236が実行されるシステムおよびアプリケーションスペースをサポートするよう、RTEの第2のパーティション(たとえば、RTE228)に関連して実行され得る。メインコンピューティングシステム102は、サポートコンピューティングデバイス202がメインコンピューティングデバイス102に通信可能に接続されることを検出するまで、コンテナ138および238を実行し得る。
メインコンピューティングデバイス102は、サポートコンピューティングデバイス202との通信接続を検出する前に、単一のコンテナ(たとえば、コンテナ138)の実行に関して以下に説明される態様と実質的に同様でなければ、同様の態様で、全体のRTEの両方のパーティション(たとえば、コンテナ138および238)を実行し得る。換言すると、コンテナ138および238の両方を実行すると、メインコンピューティングデバイス102は、コンテナ138とコンテナ238との間でデータを中継および同期し続け、MUSS136および236が実行されるアプリケーションスペースをサポートするようコンテナ238を実行し得る。
このように、コンテナ238をサポートコンピューティングデバイス202に転送することにより、コンテナ238の実行がサポートコンピューティングデバイス202にオフロードされ得、これにより、メインコンピューティングデバイス102は、処理サイクル、メモリ、および/または帯域幅の消費を低減することが可能になる。したがって、RTE128は、クライアントRTEとして動作するRTE228に対するホストRTEとして動作し得る。RTE128は、ユーザ入力および他のデータをRTE228にリダイレクトし得、RTE228は、当該ユーザ入力または他のデータを処理し、RTE128と協調して、任意の得られた出力を(たとえば、存在感知ディスプレイ112を介して)提示し得る。
たとえば、HAL226は、RTE228、SSUS230およびMUSS236からのコマンドまたは他のデータを中継するよう、HAL126とインターフェイス接続し得る。当該コマンドまたは他のデータは、車両ハードウェアコンポーネントに関連するさまざまな設定を制御またはそうでなければアップデートし得る。同様に、HAL126は、車両ハードウェアコンポーネントからのコマンドまたは他のデータをRTE228、SSUS230、およびMUSS236に中継し得る。さらに、RTE128およびRTE228は、RTEの単一のインスタンスを一緒に実行するために、さまざまなタイプのデータを同期するよう、システム設定、ユーザ設定、および、他のデータまたは情報を交換し得る。いくつかの例では、RTE128は、RTE228のバージョンとは異なる特定のバージョンを有し得る。RTE128は、(アップグレードされる異なる実行可能コード、または、RTE128の実行可能コードよりもプロセッサ、メモリ、および/または帯域幅集中型である異なる実行可能コードを有するにもかかわらず)RTE128とインターフェイス接続するためにRTE228によって使用されるAPIと同一であるかまたは後方互換性がある、RTE228とインターフェイス接続するための共通のAPIを提示し得る。さらに、CS234およびCS134は、メインコンピューティングデバイス102とサポートコンピューティングデバイス202との間でカーサービスのサポートを同期するために、コマンドまたは他のデータを互いの間で中継し得る。
この点において、RTE128は、車両のオペレータが車両の機能を制御するユーザインターフェイスを一緒に提示するよう、サポートコンピューティングデバイス202によって実行されるRTE228とインターフェイス接続し得る。RTE128は、RTE228が、現在のオペレータ(または、換言すると、コンピューティングシステム100のユーザ)およびコンピューティングシステム100が統合される車両の両方に関して、RTE128によって維持される状態および他の情報データと一貫した状態および他の情報データを得ることを可能にするデータ構造を同期し得るか、またはそうでなければ、維持し得る。したがって、RTE128および228は、車両のオペレータおよび車両自体とインタラクションするためのユーザインターフェイスを一緒に提示するために、1つ以上のデバイス(たとえば、メインコンピューティングデバイス102および/またはサポートコンピューティングデバイス202)にわたって実行可能であるか、またはそうでなければ、実行されるように構成される分散ランタイム環境のインスタンスを表し得る。
これにより、本技術のさまざまな局面は、メインコンピューティングデバイス102とサポートコンピューティングデバイス202とが(以下により詳細に説明するように)ランタイム環境の異なるバージョンを実行し得る場合であっても、一貫したユーザ体験を潜在的に提供するような態様で、メインコンピューティングデバイス102とサポートコンピューティングデバイス202との間の同期を保証するコンテナソフトウェアアーキテクチャを提供し得る。したがって、当該技術は、サポートコンピューティングデバイス202に対するアップグレード全体を通じて一貫したユーザ体験を潜在的に維持しながら、メインコンピューティングデバイス102自体の動作を改善し得る(サポートコンピューティングデバイス202によるアップグレードを促進することで、ヘッドユニット102自体の寿命が延び、アップグレードコストが低減され得、サポートコンピューティングデバイス202に処理をオフロードする際の機能の改善を促進することによって、処理、格納、および帯域幅が改善され得るからである)。
図2は、本開示において記載される拡張可能なハードウェアアーキテクチャ技術のさまざまな局面を実行する際のヘッドユニットの例示的な動作を示すブロック図である。図2の例に示されるように、ヘッドユニット302は、OEMコンテナ338およびカートリッジコンテナ438を実行するように構成される。ヘッドユニット302は、図1の例に示されるメインコンピューティングデバイス102の一例を表し得、OEMコンテナ338は、図1の例に示されるコンテナ138の一例を表し得、カートリッジコンテナは、図1の例に示されるコンテナ238の一例を表し得る。
したがって、OEMコンテナ338は、RTE128、SSUS130、SUI132、CS134、およびMUSS136を含み得、これらは、上述の機能を提供するように実行され得る。さらに、カートリッジコンテナ438は、RTE228、SSUS230、SUI232、CS234、およびMUSS236を含み得、これらは、上述の機能を提供するように実行され得る。ヘッドユニット300は、OEMコンテナ338およびカートリッジコンテナ438の両方をサポートするように構成されることを除き、HAL126およびHAL226と同様のHAL336の単一のインスタンスを実行し得る。
ヘッドユニット302は、オペレータが車両のハードウェアコンポーネントを制御するためにインタラクションするユーザインターフェイスを一緒に提示するよう、ランタイム環境の異なるパーティション(たとえば、RTE128およびRTE238)が実行される独立したコンテナとしてコンテナ338および438の両方を実行し得る。HAL336は、(HAL336の単一のインスタンスが存在するとして)データまたは他の情報を同期しなくてもよいが、RTE128およびRTE228は、CS134およびCS234とともに、互いの間でデータ(システム設定およびユーザ設定のような状態データを含む)を同期してもよい。すなわち、RTE128は、RTE128のみまたはRTE228のみを(たとえば、他方のRTEを実行することなく)実行するか否かにかかわらず一貫したユーザ体験を維持するよう、RTE228とRTE128との間でユーザ設定、システム設定または何らかの他の設定を同期し得る。
さらに、RTE128は、アプリケーションの実行をカートリッジコンテナ438にリダイレクトし、RTE228にリダイレクトコマンドを発行し得る。リダイレクトコマンドに応答して、RTE228は、当該アプリケーションを呼び出し、当該アプリケーションが実行されるアプリケーションスペースを維持し、当該アプリケーションを実行し得る。
上述したように、RTE128は、カートリッジ402との通信接続を検出し得る。すなわち、RTE128は、以前はヘッドユニット300の内部の仮想接続360であった、ヘッドユニット302とカートリッジ402との間の通信チャンネル160(別の態様では「接続160」と称される)の形成を検出し得る。換言すると、ヘッドユニット302内で内部的に同期する際、RTE128は、OEMコンテナ338とカートリッジコンテナ438との間に仮想接続360を確立し得る。仮想接続360は、RTE128およびRTE228の各々には、接続160と同様の外部接続として示され得る。
接続部160の形成を検出することに応答して、RTE128は、カートリッジコンテナ438をカートリッジ402に転送するために多くの異なる動作を開始し得る。まず、RTE128は、HAL226を取得するようHAL336を複製し得、HAL226をカートリッジ402に提供し得る。次いで、HAL336は、複製後、分散HALの第1のパーティションを形成するHAL126として再初期化し得る。RTE128は、HAL226をカートリッジ402に転送し得、HAL226は、分散HALの第2のパーティションを形成する。カートリッジ402は、HAL226を実行してHAL126と通信し得、(たとえば、場合によっては、コマンドおよび他のデータをHAL126に転送し、HAL126が、当該コマンドおよび他のデータを車両のハードウェアコンポーネントに中継することにより)カートリッジ402が車両のハードウェアコンポーネントとインターフェイス接続することを可能にし得る。
次に、RTE128は、カートリッジ402へのカートリッジコンテナ438の転送を開始し得、これにより、カートリッジ402によるソフトウェアヒエラルキの実行を可能にする。カートリッジ402は、RTE228を実行し、次いで、SSUS230、SUI232、CS234およびMUSS236の実行が続く。RTE228、SSUS230、SUI232、CS234およびMUSS236の実行によって、RTE128,228、SSUS130,230、SUI132,232、CS134,234およびMUSS136,236の各々の動作を同期するコマンドおよび他のデータの交換が行われ得る。したがって、RTE228、SSUS230、SUI232、CS234およびMUSS236のうちの1つ以上は、ヘッドユニット302およびカートリッジ402にわたる分散実行環境の動作を同期するためのユーザ設定、システム設定または他のデータを受信し得る。
ヘッドユニット302は、統合されたディスプレイ(たとえば、存在感知ディスプレイ112)を含み得るが、カートリッジ402は(たとえば、カートリッジ402に関連するコストを低減するために)任意の形態の統合されたディスプレイを含み得ないので、RTE228は、ヘッドユニット302の統合されたディスプレイを介してユーザインターフェイスを提示するよう、RTE128とインターフェイス接続し得る。MUSS236によって実行されるアプリケーションは、グラフィカルユーザインターフェイスまたは他のタイプのインターフェイスに関係するファンクションコールおよびカーネルレベルのファンクションコールをRTE228に渡し得、RTE228は、コマンドを一緒に処理するよう、RTE128とインターフェイス接続し得る。
RTE228は、RTE128と通信するためのAPIに適合するように、ファンクションコールを変換するか、またはそうでなければ、ファンクションコールを処理し得る。すなわち、RTE228は、RTE128とは異なるRTEのバージョンに適合し得、当該ファンクションコールは、RTE228が適合するRTEのバージョンに適合し得る。したがって、RTE228は、RTE128が適合するRTEのバージョンに適合するようにファンクションコールを変換し、これにより、RTE128が適合するRTEのバージョンとの後方互換性を維持し得る。この点に関して、RTE228は、ソフトウェアの異なるバージョン(ランタイム環境など)同士間で後方互換性を提供するシムまたは他のソフトウェア構成を表し得る。
図3は、本開示において記載される拡張可能なコンピューティングアーキテクチャ技術のさまざまな局面に従って動作するように構成されるコンピューティングシステムを含む車両の例を示す図である。図3の例に示されるように、車両500の内部は、ヘッドユニット302が、カートリッジ402に(たとえば、USB接続160を介して)通信可能に接続されるコンピューティングシステムを含み得る。カートリッジ402は、車両500のグローブボックス502内に存在し得る。カートリッジ402およびUSB接続160は、カートリッジ402およびUSB接続160がダッシュボード(USB接続160の場合)およびグローブボックスカバー(カートリッジ402の場合)の後ろに設置され、したがって車両500のオペレータから見ると見えないことを示すために破線で示されている。図示されていないが、カートリッジ402は、スマートフォン、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、ゲームシステムなどといったさらに別のコンピューティングデバイスとインターフェイス接続するための別のUSBポート(または他のインターフェイスポート)を含み得る。
カートリッジ402は、グローブボックス502内に設置されると示されているが、車両500内の、電力が利用可能でありカートリッジ402に供給されるどの位置にでも設置され得る。したがって、カートリッジ402は、センタダッシュコンソール位置504A内に設置され得、ドライバダッシュ位置504Bの下に取り付けられ得、ドライバドア位置504C、ドライバシート下位置504D、センタアームレストコンソール位置504E、パッセンジャシート下位置504F、および/または、パッセンジャドア位置504Gに設置され得、ならびに、後方トランク、前方トランク、後方パッセンジャーシートの下、後方パッセンジャードアといった、電力が利用可能である任意の他の位置(図3の例には示されていない)に設置され得る。
図4は、本開示において記載される拡張可能なコンピューティングアーキテクチャ技術のさまざまな局面を実行する際のコンピューティングシステムの例示的な動作を示すフローチャートである。上でより詳細に説明されたように、メインコンピューティングデバイス102は、最初に、RTE128の第1のインスタンスおよびRTE228の第2のインスタンスを実行するために、第1のコンテナ138および第2のコンテナ238の両方を実行し得る(600,602)。RTE128および228を実行するために、メインコンピューティングデバイス102は、(図3の例に示されるように)HAL326のような分散HALを実行し得る。分散HALは、RTE128,228が、存在する車両ハードウェアコンポーネントとインターフェイス接続することを可能にし、これにより、APIのようなインターフェイスを提供する。当該インターフェイスにより、RTE128および228は、コマンドを提供し、かつ、存在する車両ハードウェアコンポーネント(たとえば、上でより詳細に説明されたシステムのいずれか)からデータを受信するためにインターフェイス接続し得る。
RTE128および/または228は、サポートコンピューティングデバイス202の通信接続を検出し得る(604)。RTE128は、サポートコンピューティングデバイス202の通信接続を検出することに応答して(または、換言すると、サポートコンピューティングデバイス202を検出することに応答して)、第2のコンテナ238をサポートコンピューティングデバイス202に転送し得る(606)。サポートコンピューティングデバイス202は、第2のコンテナ238を受信し(608)、第2のコンテナ238を実行し得る。すなわち、サポートコンピューティングデバイス202は、メインコンピューティングデバイス102に最初に接続する軽量または最小限のオペレーティングシステム(メインコンピューティングデバイス102とインターフェイス接続するために最小限の機能を提供し得るが、ユーザもしくはオペレータのインタラクションを促進しない、またはそうでなければ、デバッグ、データ収集、トラブルシューティングなどの目的のためのコマンドラインインターフェイスのような潜在的に低レベルのユーザインターフェイスを除き、ユーザインターフェイスを提示しないブートローダまたは他の低レベルのオペレーティングシステムなど)を実行し得る。
任意の場合、サポートコンピューティングデバイス202は、第2のコンテナ238を受信し得、その際、低レベルのオペレーティングシステムは、第2のコンテナ238をマウントし、第2のコンテナ238を実行し、これによりRTE228を実行し得る(610)。RTE228を実行する際に、RTE128およびRTE228は、ユーザ設定、システム設定、および他のデータまたは情報を同期し、これにより、車両のオペレータがインタラクションし得るユーザインターフェイスを一緒に提示し得る(612,614)。RTE128は、(たとえば、存在感知ディスプレイ112を介して)アプリケーションの実行を開始する指示を受信し、その指示をサポートコンピューティングデバイス202に転送し得る(616,618)。サポートコンピューティングデバイス202は、指示520を受信し得(620)、RTE228は、指示の受信に応答して、示されるアプリケーションの実行を開始し得る(622)。RTE128およびRTE228は、ユーザインターフェイスを提示し、RTE128とRTE228との間でユーザ設定、システム設定、または他の状態データを同期し、指示に応答してアプリケーションを実行することをこの態様で継続し得る(612~622)。
このように、本開示において記載される技術のさまざまな局面は、以下の付記を可能にし得る。
付記1A.方法であって、車両に統合されたメインコンピューティングデバイスが、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記メインコンピューティングデバイスが、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを含み、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される、方法。
付記2A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第2のインスタンスと上記ランタイム環境の上記第1のインスタンスとの間でユーザ設定を同期する、付記1Aに記載の方法。
付記3A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第2のインスタンスによるアプリケーションの実行を開始する、付記1Aおよび2Aの任意の組み合わせに記載の方法。
付記4A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の第1のパーティションを含み、上記ランタイム環境の上記第2のインスタンスは、上記ランタイム環境の第2のパーティションを含み、上記ランタイム環境の上記第1のパーティションは、アプリケーションの実行を上記ランタイム環境の上記第2のパーティションにリダイレクトするように構成され、上記ランタイム環境の上記第2のパーティションは、上記アプリケーションが実行されるユーザスペースを維持するように構成される、付記1A~3Aの任意の組み合わせに記載の方法。
付記5A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でシステム設定を同期するように構成される、付記1A~4Aの任意の組み合わせに記載の方法。
付記6A.上記メインコンピューティングデバイスが、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスが上記車両のハードウェアコンポーネントにインターフェイス接続することを可能にする分散されたハードウェア抽象化レイヤーの第1のインスタンスを実行することをさらに含む、付記1A~5Aの任意の組み合わせに記載の方法。
付記7A.上記サポートコンピューティングデバイスが上記車両の上記ハードウェアコンポーネントにインターフェイス接続することを可能にする上記ハードウェア抽象化レイヤーの第2のインスタンスを上記サポートコンピューティングデバイスが実行することを可能にするよう、上記サポートコンピューティングデバイスを検出することに応答して、分散された上記ハードウェア抽象化レイヤーの上記第2のインスタンスを上記サポートコンピューティングデバイスに転送することをさらに含む、付記6Aに記載の方法。
付記8A.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスに通信可能に接続される、付記1A~7Aの任意の組み合わせに記載の方法。
付記9A.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスにワイヤレスで接続される、付記8Aに記載の方法。
付記10A.上記メインコンピューティングデバイスは、ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記8Aに記載の方法。
付記11A.上記メインコンピューティングデバイスは、ユニバーサルシステムバス(USB)規格に従って、上記ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記10Aに記載の方法。
付記12A.上記メインコンピューティングデバイスは、上記車両の上記オペレータに上記ユーザインターフェイスを提示する統合されたディスプレイを含むヘッドユニットを含む、付記1A~11Aの任意の組み合わせに記載の方法。
付記13A.上記サポートコンピューティングデバイスは、上記ユーザインターフェイスを上記車両の上記オペレータに提示する統合されたディスプレイを含まないカートリッジを含む、付記1A~12Aの任意の組み合わせに記載の方法。
付記14A.上記ランタイム環境の上記第1のインスタンスは、第1のバージョンを有する上記ランタイム環境の第1のインスタンスを含み、上記ランタイム環境の上記第2のインスタンスは、第2のバージョンを有する上記ランタイム環境の第2のインスタンスを含み、上記第1のバージョンは、上記第2のバージョンとは異なる、付記1A~13Aの任意の組み合わせに記載の方法。
付記15A.車両に統合されたメインコンピューティングデバイスであって、上記メインコンピューティングデバイスは、ランタイム環境の第1のインスタンスおよび上記ランタイム環境の第2のインスタンスを格納するように構成されるメモリと、1つ以上のプロセッサとを含み、上記1つ以上のプロセッサは、上記ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される、メインコンピューティングデバイス。
付記16A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第2のインスタンスと上記ランタイム環境の上記第1のインスタンスとの間でユーザ設定を同期する、付記15Aに記載のメインコンピューティングデバイス。
付記17A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第2のインスタンスによるアプリケーションの実行を開始する、付記15Aおよび16Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記18A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の第1のパーティションを含み、上記ランタイム環境の上記第2のインスタンスは、上記ランタイム環境の第2のパーティションを含み、上記ランタイム環境の上記第1のパーティションは、アプリケーションの実行を上記ランタイム環境の上記第2のパーティションにリダイレクトするように構成され、上記ランタイム環境の上記第2のパーティションは、上記アプリケーションが実行されるユーザスペースを維持するように構成される、付記15A~17Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記19A.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でシステム設定を同期するように構成される、付記15A~18Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記20A.上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスが上記車両のハードウェアコンポーネントにインターフェイス接続することを可能にする分散されたハードウェア抽象化レイヤーの第1のインスタンスを実行するように構成される、付記15A~19Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記21A.上記1つ以上のプロセッサはさらに、上記サポートコンピューティングデバイスが上記車両の上記ハードウェアコンポーネントにインターフェイス接続することを可能にする上記ハードウェア抽象化レイヤーの第2のインスタンスを上記サポートコンピューティングデバイスが実行することを可能にするよう、上記サポートコンピューティングデバイスを検出することに応答して、分散された上記ハードウェア抽象化レイヤーの上記第2のインスタンスを上記サポートコンピューティングデバイスに転送するように構成される、付記20Aに記載のメインコンピューティングデバイス。
付記22A.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスに通信可能に接続される、付記15A~21Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記23A.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスにワイヤレスで接続される、付記22Aに記載のメインコンピューティングデバイス。
付記24A.上記メインコンピューティングデバイスは、ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記22Aに記載のメインコンピューティングデバイス。
付記25A.上記メインコンピューティングデバイスは、ユニバーサルシステムバス(USB)規格に従って、上記ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記24Aに記載のメインコンピューティングデバイス。
付記26A.上記メインコンピューティングデバイスは、上記車両の上記オペレータに上記ユーザインターフェイスを提示する統合されたディスプレイを含むヘッドユニットを含む、付記15A~25Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記27A.上記サポートコンピューティングデバイスは、上記ユーザインターフェイスを上記車両の上記オペレータに提示する統合されたディスプレイを含まないカートリッジを含む、付記15A~26Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記28A.上記ランタイム環境の上記第1のインスタンスは、第1のバージョンを有する上記ランタイム環境の第1のインスタンスを含み、上記ランタイム環境の上記第2のインスタンスは、第2のバージョンを有する上記ランタイム環境の第2のインスタンスを含み、上記第1のバージョンは、上記第2のバージョンとは異なる、付記15A~27Aの任意の組み合わせに記載のメインコンピューティングデバイス。
付記29A.命令を格納する一時的でないコンピュータ読取可能記憶媒体であって、上記命令は、実行されると、メインコンピューティングデバイスの1つ以上のプロセッサに、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行わせ、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することと、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記サポートコンピューティングデバイスによって実行される上記ランタイム環境の上記第2のインスタンスにインターフェイス接続することとを行うように構成される、一時的でないコンピュータ読取可能記憶媒体。
付記1B.方法であって、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、サポートコンピューティングデバイスが、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信することを含み、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記方法はさらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記サポートコンピューティングデバイスが、上記第2のコンテナを実行することを含み、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成される、方法。
付記2B.上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でユーザ設定を同期するよう、上記ランタイム環境の上記第1のインスタンスからユーザ設定を受信することをさらに含む、付記1Bに記載の方法。
付記3B.上記ランタイム環境の上記第2のインスタンスによるアプリケーションの実行を開始する指示を上記ランタイム環境の上記第1のインスタンスから信することをさらに含む、付記1Bおよび2Bの任意の組み合わせに記載の方法。
付記4B.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の第1のパーティションを含み、上記ランタイム環境の上記第2のインスタンスは、上記ランタイム環境の第2のパーティションを含み、上記ランタイム環境の上記第2のパーティションは、上記ランタイム環境の上記第1のパーティションからのアプリケーションの実行を開始する指示に応答して、上記アプリケーションが実行されるユーザスペースを維持するように構成される、付記1B~3Bの任意の組み合わせに記載の方法。
付記5B.上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でシステム設定を同期する上記システム設定を受信することをさらに含む、付記1B~4Bの任意の組み合わせに記載の方法。
付記6B.上記サポートコンピューティングデバイスが、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスが上記車両のハードウェアコンポーネントにインターフェイス接続することを可能にする分散されたハードウェア抽象化レイヤーの第2のインスタンスを実行することをさらに含む、付記1B~5Bの任意の組み合わせに記載の方法。
付記7B.上記メインコンピューティングデバイスを検出することに応答して、分散された上記ハードウェア抽象化レイヤーの上記第2のインスタンスを受信することと、上記ハードウェア抽象化レイヤーの第1のインスタンスと通信し、かつ、上記サポートコンピューティングデバイスが上記車両の上記ハードウェアコンポーネントとインターフェイス接続することを可能にするよう、上記ハードウェア抽象化レイヤーの上記第2のインスタンスを実行することとをさらに含む、付記6Bに記載の方法。
付記8B.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスに通信可能に接続される、付記1B~7Bの任意の組み合わせに記載の方法。
付記9B.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスにワイヤレスで接続される、付記8Bに記載の方法。
付記10B.上記メインコンピューティングデバイスは、ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記8Bに記載の方法。
付記11B.上記メインコンピューティングデバイスは、物理的なユニバーサルシステムバス(USB)接続を介して上記サポートコンピューティングデバイスに接続される、付記10Bに記載の方法。
付記12B.上記メインコンピューティングデバイスは、上記車両の上記オペレータに上記ユーザインターフェイスを提示する統合されたディスプレイを含むヘッドユニットを含む、付記1B~11Bの任意の組み合わせに記載の方法。
付記13B.上記サポートコンピューティングデバイスは、上記ユーザインターフェイスを上記車両の上記オペレータに提示する統合されたディスプレイを含まないカートリッジを含む、付記1B~12Bの任意の組み合わせに記載の方法。
付記14B.上記ランタイム環境の上記第1のインスタンスは、第1のバージョンを有する上記ランタイム環境の第1のインスタンスを含み、上記ランタイム環境の上記第2のインスタンスは、第2のバージョンを有する上記ランタイム環境の第2のインスタンスを含み、上記第1のバージョンは、上記第2のバージョンとは異なる、付記1B~13Bの任意の組み合わせに記載の方法。
付記15B.サポートコンピューティングデバイスであって、1つ以上のプロセッサを含み、上記1つ以上のプロセッサは、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信するように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行するように構成され、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するよう構成され、上記サポートコンピューティングデバイスはさらに、上記第2のコンテナを格納するように構成されるメモリを含む、サポートコンピューティングデバイス。
付記16B.上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でユーザ設定を同期するよう、上記ランタイム環境の上記第1のインスタンスからユーザ設定を受信するように構成される、付記15Bに記載のサポートコンピューティングデバイス。
付記17B.上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第2のインスタンスによるアプリケーションの実行を開始する指示を上記ランタイム環境の上記第1のインスタンスから受信するように構成される、付記15Bおよび16Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記18B.上記ランタイム環境の上記第1のインスタンスは、上記ランタイム環境の第1のパーティションを含み、上記ランタイム環境の上記第2のインスタンスは、上記ランタイム環境の第2のパーティションを含み、上記ランタイム環境の上記第2のパーティションは、上記ランタイム環境の上記第1のパーティションからのアプリケーションの実行を開始する指示に応答して、上記アプリケーションが実行されるユーザスペースを維持するように構成される、付記15B~17Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記19B.上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第1のインスタンスと上記ランタイム環境の上記第2のインスタンスとの間でシステム設定を同期する上記システム設定を受信するように構成される、付記15B~18Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記20B.上記1つ以上のプロセッサはさらに、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスが上記車両のハードウェアコンポーネントにインターフェイス接続することを可能にする分散されたハードウェア抽象化レイヤーの第2のインスタンスを実行するように構成される、付記15B~19Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記21B.上記1つ以上のプロセッサはさらに、上記メインコンピューティングデバイスを検出することに応答して、分散された上記ハードウェア抽象化レイヤーの上記第2のインスタンスを受信することと、上記ハードウェア抽象化レイヤーの第1のインスタンスと通信し、かつ、上記サポートコンピューティングデバイスが上記車両の上記ハードウェアコンポーネントとインターフェイス接続することを可能にするよう、上記ハードウェア抽象化レイヤーの上記第2のインスタンスを実行することとを行うように構成される、付記20Bに記載のサポートコンピューティングデバイス。
付記22B.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスに通信可能に接続される、付記15B~21Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記23B.上記メインコンピューティングデバイスは、上記サポートコンピューティングデバイスにワイヤレスで接続される、付記22Bに記載のサポートコンピューティングデバイス。
付記24B.上記メインコンピューティングデバイスは、ワイヤを介して上記サポートコンピューティングデバイスに接続される、付記22Bに記載のサポートコンピューティングデバイス。
付記25B.上記メインコンピューティングデバイスは、物理的なユニバーサルシステムバス(USB)接続を介して上記サポートコンピューティングデバイスに接続される、付記24Bに記載のサポートコンピューティングデバイス。
付記26B.上記メインコンピューティングデバイスは、上記車両の上記オペレータに上記ユーザインターフェイスを提示する統合されたディスプレイを含むヘッドユニットを含む、付記15B~25Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記27B.上記サポートコンピューティングデバイスは、上記ユーザインターフェイスを上記車両の上記オペレータに提示する統合されたディスプレイを含まないカートリッジを含む、付記15B~26Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記28B.上記ランタイム環境の上記第1のインスタンスは、第1のバージョンを有する上記ランタイム環境の第1のインスタンスを含み、上記ランタイム環境の上記第2のインスタンスは、第2のバージョンを有する上記ランタイム環境の第2のインスタンスを含み、上記第1のバージョンは、上記第2のバージョンとは異なる、付記15B~27Bの任意の組み合わせに記載のサポートコンピューティングデバイス。
付記29B.命令を格納する一時的でないコンピュータ読取可能記憶媒体であって、上記命令は、実行されると、サポートコンピューティングデバイスの1つ以上のプロセッサに、ランタイム環境の第1のインスタンスが実行される第1のコンテナの実行をサポートする車両に統合されたメインコンピューティングデバイスから、上記ランタイム環境の第2のインスタンスの実行をサポートする第2のコンテナを受信することを行わせ、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、さらに、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行することを行わせ、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成され、メモリは、上記第2のコンテナを格納するように構成される、一時的でないコンピュータ読取可能記憶媒体。
付記1C.コンピューティングシステムであって、メインコンピューティングデバイスを含み、上記メインコンピューティングデバイスは、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、上記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第1のインスタンスおよび上記ランタイム環境の上記第2のインスタンスは、上記車両のオペレータが上記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、上記ランタイム環境の上記第1のインスタンスは、上記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、上記サポートコンピューティングデバイスを検出することに応答して、上記第2のコンテナを上記サポートコンピューティングデバイスに転送することとを行うように構成され、上記コンピューティングシステムはさらに、サポートコンピューティングデバイスを含み、上記サポートコンピューティングデバイスは、上記ランタイム環境の上記第2のインスタンスの実行をサポートする上記第2のコンテナを上記メインコンピューティングデバイスから受け取ることと、上記ランタイム環境の上記第2のインスタンスの実行を可能にするよう、上記第2のコンテナを実行することとを行うように構成され、上記ランタイム環境の上記第2のインスタンスは、上記車両の上記オペレータが上記車両の上記機能を制御する上記ユーザインターフェイスを一緒に提示するよう、上記メインコンピューティングデバイスによって実行される上記ランタイム環境の上記第1のインスタンスにインターフェイス接続するように構成される、コンピューティングシステム。
1つ以上の例では、記載される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現され得る。ソフトウェアで実現される場合、当該機能は、1つ以上の命令またはコードとして、コンピュータ読取可能媒体上に格納され得るか、または、コンピュータ読取可能媒体を介して送信され得、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読取可能媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ読取可能記憶媒体を含み得るか、または、たとえば通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を含み得る。これにより、コンピュータ読取可能媒体は一般に、(1)一時的でない有形のコンピュータ読取可能記憶媒体、または、(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において記載される技術の実現のための命令、コードおよび/またはデータ構造を抽出するために1つ以上のコンピュータまたは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラムプロダクトは、コンピュータ読取可能媒体を含み得る。
限定ではなく例として、そのようなコンピュータ読取可能記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、フラッシュメモリ、または、命令もしくはデータ構造の形態で所望のプログラムコードを格納するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を含み得る。さらに、任意の接続がコンピュータ読取可能媒体と適切に称される。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL: digital subscriber line)、または、赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線およびマイクロ波といったワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに一時的でない有形記憶媒体を対象とすることが理解されるべきである。ディスク(diskおよびdisc)は、使用される場合、コンパクトディスク(CD: compact disc)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD: digital versatile disc)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスク、ウルトラブルーレイなどを含む。ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザにより光学的に再生する。上記の組み合わせもコンピュータ読取可能媒体の範囲内に含まれるべきである。
命令は、1つ以上のデジタル信号プロセッサ(DSP: digital signal processor)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC: application specific integrated circuit)、フィールドプログラマブルロジックアレイ(FPGA: field programmable logic array)、または、他の同等の集積回路もしくは離散論理回路のような1つ以上のプロセッサによって実行され得る。したがって、使用される「プロセッサ」という用語は、前述の構造、または、記載される技術の実現のために好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの局面では、記載される機能は、専用のハードウェアおよび/またはソフトウェアモジュール内で提供され得る。さらに、当該技術は、1つ以上の回路または論理要素において完全に実現され得る。
本開示の技術は、ワイヤレスハンドセット、集積回路(IC: integrated circuit)、または、ICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実現され得る。本開示では、開示される技術を実行するように構成されるデバイスの機能的な局面を強調するためにさまざまなコンポーネント、モジュール、または、ユニットが記載されているが、必ずしも異なるハードウェアユニットによって実現される必要はない。むしろ、上述したように、さまざまなユニットは、ハードウェアユニットにおいて組み合わされてもよく、または、好適なソフトウェアおよび/またはファームウェアに関連して、上述したように1つ以上のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてもよい。
さまざまな例を記載した。これらの例および他の例は、添付の特許請求の範囲内である。

Claims (20)

  1. 車両に統合されたメインコンピューティングデバイスが、ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、
    前記メインコンピューティングデバイスが、前記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを含み、前記ランタイム環境の前記第1のインスタンスおよび前記ランタイム環境の前記第2のインスタンスは、前記車両のオペレータが前記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、
    前記ランタイム環境の前記第1のインスタンスは、
    前記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、
    前記サポートコンピューティングデバイスを検出することに応答して、前記第2のコンテナを前記サポートコンピューティングデバイスに転送することと、
    前記車両の前記オペレータが前記車両の前記機能を制御する前記ユーザインターフェイスを一緒に提示するよう、前記サポートコンピューティングデバイスによって実行される前記ランタイム環境の前記第2のインスタンスにインターフェイス接続することと
    を行うように構成される、方法。
  2. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第2のインスタンスと前記ランタイム環境の前記第1のインスタンスとの間でユーザ設定を同期する、請求項1に記載の方法。
  3. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第2のインスタンスによるアプリケーションの実行を開始する、請求項1または2に記載の方法。
  4. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の第1のパーティションを含み、
    前記ランタイム環境の前記第2のインスタンスは、前記ランタイム環境の第2のパーティションを含み、
    前記ランタイム環境の前記第1のパーティションは、アプリケーションの実行を前記ランタイム環境の前記第2のパーティションにリダイレクトするように構成され、
    前記ランタイム環境の前記第2のパーティションは、前記アプリケーションが実行されるユーザスペースを維持するように構成される、請求項1から3のいずれか1項に記載の方法。
  5. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第1のインスタンスと前記ランタイム環境の前記第2のインスタンスとの間でシステム設定を同期するように構成される、請求項1から4のいずれか1項に記載の方法。
  6. 前記メインコンピューティングデバイスが、前記ランタイム環境の前記第1のインスタンスおよび前記ランタイム環境の前記第2のインスタンスが前記車両のハードウェアコンポーネントにインターフェイス接続することを可能にする分散されたハードウェア抽象化レイヤーの第1のインスタンスを実行することをさらに含む、請求項1から5のいずれか1項に記載の方法。
  7. 前記サポートコンピューティングデバイスが前記車両の前記ハードウェアコンポーネントにインターフェイス接続することを可能にする前記ハードウェア抽象化レイヤーの第2のインスタンスを前記サポートコンピューティングデバイスが実行することを可能にするよう、前記サポートコンピューティングデバイスを検出することに応答して、分散された前記ハードウェア抽象化レイヤーの前記第2のインスタンスを前記サポートコンピューティングデバイスに転送することをさらに含む、請求項6に記載の方法。
  8. 前記メインコンピューティングデバイスは、前記サポートコンピューティングデバイスに通信可能に接続される、請求項1から7のいずれか1項に記載の方法。
  9. 前記メインコンピューティングデバイスは、前記サポートコンピューティングデバイスにワイヤレスで接続される、請求項8に記載の方法。
  10. 前記メインコンピューティングデバイスは、ワイヤを介して前記サポートコンピューティングデバイスに接続される、請求項8に記載の方法。
  11. 前記メインコンピューティングデバイスは、ユニバーサルシステムバス(USB)規格に従って、前記ワイヤを介して前記サポートコンピューティングデバイスに接続される、請求項10に記載の方法。
  12. 前記メインコンピューティングデバイスは、前記車両の前記オペレータに前記ユーザインターフェイスを提示する統合されたディスプレイを含むヘッドユニットを含む、請求項1から11のいずれか1項に記載の方法。
  13. 前記サポートコンピューティングデバイスは、前記ユーザインターフェイスを前記車両の前記オペレータに提示する統合されたディスプレイを含まないカートリッジを含む、請求項1から12のいずれか1項に記載の方法。
  14. 前記ランタイム環境の前記第1のインスタンスは、第1のバージョンを有する前記ランタイム環境の第1のインスタンスを含み、
    前記ランタイム環境の前記第2のインスタンスは、第2のバージョンを有する前記ランタイム環境の第2のインスタンスを含み、
    前記第1のバージョンは、前記第2のバージョンとは異なる、請求項1から13のいずれか1項に記載の方法。
  15. 車両に統合されたメインコンピューティングデバイスであって、前記メインコンピューティングデバイスは、
    ランタイム環境の第1のインスタンスおよび前記ランタイム環境の第2のインスタンスを格納するように構成されるメモリと、
    1つ以上のプロセッサとを含み、前記1つ以上のプロセッサは、
    前記ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、
    前記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを含み、前記ランタイム環境の前記第1のインスタンスおよび前記ランタイム環境の前記第2のインスタンスは、前記車両のオペレータが前記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、
    前記ランタイム環境の前記第1のインスタンスは、
    前記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、
    前記サポートコンピューティングデバイスを検出することに応答して、前記第2のコンテナを前記サポートコンピューティングデバイスに転送することと、
    前記車両の前記オペレータが前記車両の前記機能を制御する前記ユーザインターフェイスを一緒に提示するよう、前記サポートコンピューティングデバイスによって実行される前記ランタイム環境の前記第2のインスタンスにインターフェイス接続することと
    を行うように構成される、メインコンピューティングデバイス。
  16. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第2のインスタンスと前記ランタイム環境の前記第1のインスタンスとの間でユーザ設定を同期する、請求項15に記載のメインコンピューティングデバイス。
  17. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第2のインスタンスによるアプリケーションの実行を開始する、請求項15または16に記載のメインコンピューティングデバイス。
  18. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の第1のパーティションを含み、
    前記ランタイム環境の前記第2のインスタンスは、前記ランタイム環境の第2のパーティションを含み、
    前記ランタイム環境の前記第1のパーティションは、アプリケーションの実行を前記ランタイム環境の前記第2のパーティションにリダイレクトするように構成され、
    前記ランタイム環境の前記第2のパーティションは、前記アプリケーションが実行されるユーザスペースを維持するように構成される、請求項15から17のいずれか1項に記載のメインコンピューティングデバイス。
  19. 前記ランタイム環境の前記第1のインスタンスは、前記ランタイム環境の前記第1のインスタンスと前記ランタイム環境の前記第2のインスタンスとの間でシステム設定を同期するように構成される、請求項15から18のいずれか1項に記載のメインコンピューティングデバイス。
  20. 命令をするプログラムであって、前記命令は、実行されると、メインコンピューティングデバイスの1つ以上のプロセッサに、
    ランタイム環境の第1のインスタンスの実行を可能にする第1のコンテナを実行することと、
    前記ランタイム環境の第2のインスタンスの実行を可能にする第2のコンテナを実行することとを行わせ、前記ランタイム環境の前記第1のインスタンスおよび前記ランタイム環境の前記第2のインスタンスは、前記車両のオペレータが前記車両の機能を制御するユーザインターフェイスを一緒に提示するように構成されており、
    前記ランタイム環境の前記第1のインスタンスは、
    前記メインコンピューティングデバイスと通信するサポートコンピューティングデバイスを検出することと、
    前記サポートコンピューティングデバイスを検出することに応答して、前記第2のコンテナを前記サポートコンピューティングデバイスに転送することと、
    前記車両の前記オペレータが前記車両の前記機能を制御する前記ユーザインターフェイスを一緒に提示するよう、前記サポートコンピューティングデバイスによって実行される前記ランタイム環境の前記第2のインスタンスにインターフェイス接続することと
    を行うように構成される、プログラム
JP2020171313A 2019-10-11 2020-10-09 車両のための拡張可能なコンピューティングアーキテクチャ Active JP7043563B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022041488A JP7223895B2 (ja) 2019-10-11 2022-03-16 車両のための拡張可能なコンピューティングアーキテクチャ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962914153P 2019-10-11 2019-10-11
US62/914,153 2019-10-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022041488A Division JP7223895B2 (ja) 2019-10-11 2022-03-16 車両のための拡張可能なコンピューティングアーキテクチャ

Publications (3)

Publication Number Publication Date
JP2021064369A JP2021064369A (ja) 2021-04-22
JP2021064369A5 JP2021064369A5 (ja) 2021-06-17
JP7043563B2 true JP7043563B2 (ja) 2022-03-29

Family

ID=72811754

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020171313A Active JP7043563B2 (ja) 2019-10-11 2020-10-09 車両のための拡張可能なコンピューティングアーキテクチャ
JP2022041488A Active JP7223895B2 (ja) 2019-10-11 2022-03-16 車両のための拡張可能なコンピューティングアーキテクチャ

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022041488A Active JP7223895B2 (ja) 2019-10-11 2022-03-16 車両のための拡張可能なコンピューティングアーキテクチャ

Country Status (5)

Country Link
US (2) US11455180B2 (ja)
EP (2) EP4354289A2 (ja)
JP (2) JP7043563B2 (ja)
KR (2) KR102461918B1 (ja)
CN (2) CN112199156B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102461918B1 (ko) 2019-10-11 2022-11-02 구글 엘엘씨 차량용 확장가능 컴퓨팅 아키텍처
DE102022116990A1 (de) * 2022-07-07 2024-01-18 Cariad Se Verfahren und Prozessorschaltung zum Betreiben einer Kraftfahrzeug-Bedienvorrichtung mit zwei Benutzerschnittstellen sowie Kraftfahrzeug
WO2024071476A1 (ko) * 2022-09-29 2024-04-04 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
KR102642234B1 (ko) * 2023-06-27 2024-03-04 주식회사 드림에이스 다중 연결을 지원하는 차량 인포테인먼트 시스템 및 이의 다중 연결 지원 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237788A (ja) 2009-03-30 2010-10-21 Fujitsu Ltd サーバ装置、計算機システム、プログラム及び仮想計算機移動方法
JP2019057162A (ja) 2017-09-21 2019-04-11 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
JP2019135641A (ja) 2017-12-19 2019-08-15 京セラドキュメントソリューションズ株式会社 画像形成装置で文書を処理するための拡張コンピューティング・デバイス及び方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141697A (en) 1997-06-25 2000-10-31 Unisys Corp. System and method for performing external procedure calls in heterogeneous computer systems utilizing program stacks
US8640027B2 (en) * 2000-06-13 2014-01-28 National Instruments Corporation System and method for configuring a hardware device to execute a prototype
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
WO2003067435A2 (en) * 2001-11-19 2003-08-14 Self Repairing Computers, Inc. Computer system capable of supporting a plurality of independent computing environments
US7383405B2 (en) * 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US20080082627A1 (en) * 2006-09-29 2008-04-03 Allen Stewart O Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation
US7937698B2 (en) * 2007-08-02 2011-05-03 International Business Machines Corporation Extensible mechanism for automatically migrating resource adapter components in a development environment
US8813069B2 (en) 2009-05-29 2014-08-19 Red Hat, Inc. Migration of functionalities across systems
US8484661B2 (en) * 2010-03-19 2013-07-09 At&T Mobility Ii Llc Agnostic execution cluster for an agnostic execution environment
US20120188698A1 (en) * 2011-01-21 2012-07-26 E-Lead Electronic Co., Ltd. Car audio system with changeable plug-in computer
US9619114B2 (en) 2012-06-11 2017-04-11 Automotive Data Solutions, Inc. Method and system to configure an aftermarket interface module using a graphical user interface
US8831585B2 (en) 2012-08-31 2014-09-09 Nuance Communications, Inc. Systems, methods and articles for a communications device providing communications and services involving automobile head units
US9092837B2 (en) * 2012-11-29 2015-07-28 International Business Machines Corporation Use of snapshots to reduce risk in migration to a standard virtualized environment
US9692632B2 (en) * 2012-11-29 2017-06-27 International Business Machines Corporation Migration to managed clouds
US9282166B2 (en) * 2012-11-29 2016-03-08 International Business Machines Corporation Management infrastructure analysis for cloud migration
AU2014100584B4 (en) * 2013-06-08 2015-03-05 Apple Inc. Device, method, and graphical user interface for synchronizing two or more displays
JP6523298B2 (ja) * 2014-01-06 2019-05-29 ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company コンピュータシステムと車両インターフェースシステム
WO2015163084A1 (ja) * 2014-04-22 2015-10-29 オリンパス株式会社 データ処理システム及びデータ処理方法
WO2016041173A1 (en) * 2014-09-18 2016-03-24 Intel Corporation Supporting multiple operating system environments in computing device without contents conversion
KR101677645B1 (ko) 2014-11-03 2016-11-18 엘지전자 주식회사 이동 통신 시스템 및 그 제어 방법
WO2016084049A1 (en) * 2014-11-27 2016-06-02 Haute Ecole D'ingenierie Et De Gestion Du Canton De Vaud (Heig-Vd) Embedded system enabling on-line collaborative migration of software execution environments
US20180210747A1 (en) * 2014-12-08 2018-07-26 P4tents1, LLC Computing devices
JP6413813B2 (ja) 2015-02-04 2018-10-31 富士ゼロックス株式会社 電子機器、制御装置及びプログラム
US10911574B2 (en) * 2015-03-25 2021-02-02 Amazon Technologies, Inc. Using multiple protocols in a virtual desktop infrastructure
US9813813B2 (en) 2015-08-31 2017-11-07 Harman International Industries, Incorporated Customization of a vehicle audio system
US10375174B2 (en) 2015-09-14 2019-08-06 Vinli, Inc. Cloud integrated vehicle platform
JP6644882B2 (ja) * 2016-01-15 2020-02-12 グーグル エルエルシー アプリケーションコンテナを使用するコードおよび従属データの送達の管理
US10645362B2 (en) * 2016-04-11 2020-05-05 Gopro, Inc. Systems, methods and apparatus for compressing video content
US10768920B2 (en) * 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
US10911323B2 (en) * 2017-01-24 2021-02-02 Texas Instruments Incorporated System-on-chip (SoC) assembly, configurable IP generation and IP integration utilizing distributed computer systems
US10650139B2 (en) * 2017-06-12 2020-05-12 Daniel Maurice Lerner Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
US10331425B2 (en) 2017-06-28 2019-06-25 Google Llc Automated source code adaption to inject features between platform versions
JP6677277B2 (ja) 2017-07-19 2020-04-08 株式会社デンソー 車両用制御装置及び電源供給回路
US10659526B2 (en) * 2018-01-03 2020-05-19 Verizon Patent And Licensing Inc. Edge compute systems and methods
US10761903B2 (en) * 2018-03-29 2020-09-01 Servicenow, Inc. Management instrumentation and discovery (MID) server support for executing automated flows within a cloud based system
US10949187B2 (en) * 2019-03-25 2021-03-16 International Business Machines Corporation Adjusted consolidated digital experience
KR102461918B1 (ko) 2019-10-11 2022-11-02 구글 엘엘씨 차량용 확장가능 컴퓨팅 아키텍처

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237788A (ja) 2009-03-30 2010-10-21 Fujitsu Ltd サーバ装置、計算機システム、プログラム及び仮想計算機移動方法
JP2019057162A (ja) 2017-09-21 2019-04-11 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
JP2019135641A (ja) 2017-12-19 2019-08-15 京セラドキュメントソリューションズ株式会社 画像形成装置で文書を処理するための拡張コンピューティング・デバイス及び方法

Also Published As

Publication number Publication date
CN112199156B (zh) 2024-01-12
JP7223895B2 (ja) 2023-02-16
KR102656218B1 (ko) 2024-04-09
EP4354289A2 (en) 2024-04-17
US11455180B2 (en) 2022-09-27
EP3805922A1 (en) 2021-04-14
US11880701B2 (en) 2024-01-23
KR20220148785A (ko) 2022-11-07
US20220391236A1 (en) 2022-12-08
CN112199156A (zh) 2021-01-08
JP2022093330A (ja) 2022-06-23
JP2021064369A (ja) 2021-04-22
KR20210043469A (ko) 2021-04-21
KR102461918B1 (ko) 2022-11-02
EP3805922B1 (en) 2024-04-03
CN117909024A (zh) 2024-04-19
US20210109770A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
JP7043563B2 (ja) 車両のための拡張可能なコンピューティングアーキテクチャ
US9324234B2 (en) Vehicle comprising multi-operating system
EP3205056B1 (en) Method and apparatus for controlling devices in a personal environment using a portable computing device
KR102262926B1 (ko) 차량용 소프트웨어 제어 장치
WO2015103376A1 (en) Vehicle with multiple user interface operating domains
KR20180024209A (ko) 유에스비 액세서리의 유에스비 통신 제어 방법
US20150234575A1 (en) System and method for controlling smart device mirroring of head unit for vehicle
KR20200042798A (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
US20230007460A1 (en) Method and system for segmenting and transmiting data between computing devices and vehicle head units
EP4369186A1 (en) Control method and apparatus, device, and storage medium
US20190225082A1 (en) System Having an Infotainment System
US20230376307A1 (en) Streaming via hardware abstraction layer
JP7344263B2 (ja) ユーザアカウントを意識したパーソナルエリアネットワークボンディング
US11403155B2 (en) Integration of vehicle manufacturer user management system with automotive operating system
KR102367725B1 (ko) 차량 시스템
KR20230133097A (ko) 웨이랜드 프로토콜의 공용화를 위한 소프트웨어 아키텍쳐를 구현하기 위한 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210331

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220216

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: 20220222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220316

R150 Certificate of patent or registration of utility model

Ref document number: 7043563

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150