KR20220148785A - 차량용 확장가능 컴퓨팅 아키텍처 - Google Patents

차량용 확장가능 컴퓨팅 아키텍처 Download PDF

Info

Publication number
KR20220148785A
KR20220148785A KR1020220139457A KR20220139457A KR20220148785A KR 20220148785 A KR20220148785 A KR 20220148785A KR 1020220139457 A KR1020220139457 A KR 1020220139457A KR 20220139457 A KR20220139457 A KR 20220139457A KR 20220148785 A KR20220148785 A KR 20220148785A
Authority
KR
South Korea
Prior art keywords
instance
runtime environment
computing device
vehicle
container
Prior art date
Application number
KR1020220139457A
Other languages
English (en)
Other versions
KR102656218B1 (ko
Inventor
카스텐 이세르트
유진 고
버른드 홀제이
렌카 림스카
Original Assignee
구글 엘엘씨
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 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220148785A publication Critical patent/KR20220148785A/ko
Application granted granted Critical
Publication of KR102656218B1 publication Critical patent/KR102656218B1/ko

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)

Abstract

차량에 통합된 메인 컴퓨팅 디바이스는 본 개시에 기술된 다양한 양태의 기법을 수행할 수 있다. 메인 컴퓨팅 디바이스는 메모리 및 프로세서를 포함한다. 메모리는 런타임 환경의 제1 및 제2 인스턴스를 저장할 수 있다. 프로세서는 런타임 환경의 제1 인스턴스를 실행하게 하는 제1 컨테이너를 실행하고, 런타임 환경의 제2 인스턴스를 실행하게 하는 제2 컨테이너를 실행할 수 있다. 런타임 환경의 제1 인스턴스는 지원 컴퓨팅 디바이스를 검출하고, 상기 지원 컴퓨팅 디바이스를 검출함에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하고, 상기 런타임 환경의 제2 인스턴스와 인터페이싱하여 차량의 운영자가 차량의 기능을 제어하는 사용자 인터페이스를 함께 제시할 수 있다.

Description

차량용 확장가능 컴퓨팅 아키텍처{EXTENSIBLE COMPUTING ARCHITECTURE FOR VEHICLES}
본 출원은 2019년 10월 11일에 출원된 "차량용 확장가능 컴퓨팅 아키텍처"라는 제목의 미국 가출원 번호 62/914,153에 우선권을 주장하며, 그 전체 내용은 전체가 참조로서 본 명세서에 포함된다.
차량의 평균 수명주기가 10년 이상 서비스에 근접할 정도로 차량의 신뢰성이 증가하고 있다. 서비스 기간 동안 차량이 노후화됨에 따라 헤드 유닛, 전자 제어 장치(ECU) 등을 포함한 컴퓨팅 시스템이 점점 더 오래되어 기술 지원, 유지 보수(및 기타 지원) 및 새로운 기능 지원 측면에서 수명이 다할 수 있다. 또한 헤드 유닛 및 기타 컴퓨팅 시스템은 대시보드 및 기타 차량 컴포넌트에 매끄럽게 통합되어 고유한 폼 팩터, 대형 및 고가의 디스플레이 포함 등으로 인해 헤드 유닛 교체가 어려워지고 있다.
헤드 유닛의 업그레이드가 가능하지만, 헤드 유닛(및 기타 컴퓨팅 시스템)을 교체하는 이러한 업그레이드는 종종 비용이 많이 든다. 전체 헤드 유닛을 교체하는 비용은 필요하지는 않지만 요구되고(헤드 유닛은 종종 디스플레이 및 기타 비싼 컴포넌트를 단일 하우징 또는 교체가능한 유닛에 통합하기 때문에) 어려운(이러한 헤드 유닛은 각 차량에 매끄럽게 통합되고 각 차량의 제조사 및 모델에 특정적이어서, 잠재적으로 교체 헤드 유닛의 가용성을 제한하고 비용을 증가시킬 가능성이 있음) 화면 및 기타 (상대적으로) 비싼 부품을 교체를 요구하기 때문이다. 따라서 차량 운영자는 상당한 비용으로 헤드 유닛 및 기타 인포테인먼트 및 기타 컴포넌트를 포함한 컴퓨팅 시스템과 같은 새로운 기술에 액세스하기 위해 완전히 새로운 차량을 구입할 수 있다.
일반적으로, 본 개시에 설명된 기법의 다양한 양태는 차량용 확장가능 컴퓨팅 아키텍처에 관한 것이다. 차량의 헤드 유닛 또는 다른 컴퓨팅 시스템을 교체하는 대신, 본 기법은 헤드 유닛 또는 다른 컴퓨팅 시스템이 헤드 유닛에 통신 가능하게 결합된 지원 컴퓨팅 시스템과 인터페이싱하게 하며, 헤드 유닛 또는 다른 컴퓨팅 디바이스는 애플리케이션 실행(및 애플리케이션 공간의 실행뿐만 아니라 기타 런타임 환경 수준 동작)을 지원 컴퓨팅 디바이스로 오프로딩하거나 전송한다.
헤드 유닛 또는 다른 컴퓨팅 디바이스는 지원 디바이스의 통신 결합을 검출할 수 있고, 지원 컴퓨팅 디바이스의 통신 결합을 검출하는 것에 응답하여, 런타임 환경의 파티션을 포함하는 컨테이너를 지원 컴퓨팅 디바이스에 전송할 수 있다. 그 다음 지원 컴퓨팅 디바이스는 런타임 환경의 동작을 동기화하기 위해 런타임 환경의 파티션을 실행할 수 있으며, 이에 따라 애플리케이션이 실행될 수 있는 사용자 공간을 제공할 수 있다(커널 공간의 실행을 지원하는 동시에, 즉, 분산 런타임 환경으로서의 런타임 환경 공간). 지원 컴퓨팅 디바이스는 헤드 유닛에 의한 런타임 환경의 확장가능한 실행을 허용하도록 교체 가능하거나 그렇지 않으면 업그레이드 가능할 수 있으며, 지원 컴퓨팅 디바이스는 새로운 기능, 지원(보안 및 기타 문제를 해결하기 위한 소프트웨어 패치 등 포함하는 기술 지원과 같은 종신 서비스) 및 유지관리(예: 하드웨어 업그레이드 측면에서 프로세싱 능력, 메모리 크기 등)의 적응을 용이하게 하기 위해 업그레이드될 수 있다.
지원 컴퓨팅 디바이스를 추가하면 덜 비싸게 메인 컴퓨팅 유닛("헤드 유닛" 또는 다른 컴퓨팅 디바이스에 대한 다른 참조)을 업그레이드하게 할 수 있다(지원 컴퓨팅 디바이스가 차량에 매끄럽게 통합되지 않고, 헤드 유닛에 통신적으로 결합되어, 폼팩터, 디스플레이, GPS와 같은 추가 컴포넌트와 같은 매끄러운 통합과 연관된 비용을 절감함). 또한, 지원 컴퓨팅 디바이스 추가의 지원은 메인 컴퓨팅 디바이스를 별도로 교체할 필요없이 메인 컴퓨팅 디바이스로의 업그레이드를 가능하게 하여, 메인 컴퓨팅 디바이스를 교체하지 않고도 메인 컴퓨팅 디바이스를 업그레이드할 수 있게 한다.
이와 관련하여, 본 기법의 다양한 양태는 컨테이너 소프트웨어 아키텍처(여기서 용어는 일반적으로 일반 소프트웨어 블록 또는 구성을 지칭할 수 있음)를 제공하여 메인 컴퓨팅 디바이스 및 지원 컴퓨팅 디바이스가 상이한 버전의 런타임 환경을 실행하더라도 잠재적으로 일관된 사용자 경험을 제공하는 방식으로 메인 컴퓨팅 디바이스와 지원 컴퓨팅 디바이스 간의 동기화를 보장한다. 따라서 이 기법은 메인 컴퓨팅 디바이스 자체의 동작을 개선할 수 있으며(지원 컴퓨팅 디바이스를 통한 업그레이드를 용이하게 하면 헤드 유닛 자체의 수명을 연장하고 업그레이드 비용을 줄일 수 있으므로), 잠재적으로 지원 컴퓨팅 디바이스에 대한 업그레이드를 통해 일관된 사용자 경험을 유지한다.
예시에서, 기법의 양태는 방법에 관한 것이며, 상기 방법은: 차량에 통합된 메인 컴퓨팅 디바이스에 의해, 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하는 단계; 상기 메인 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하는 단계를 포함하며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하고; 그리고 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성된다.
다른 예에서, 기법의 양태는 차량에 통합된 메인 컴퓨팅 디바이스에 관한 것이며, 상기 메인 컴퓨팅 디바이스는: 런타임 환경의 제1 인스턴스 및 런타임 환경의 제2 인스턴스를 저장하도록 구성된 메모리; 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는: 상기 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하고; 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하게 하도록 구성되며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하고; 그리고 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성된다.
다른 예시에서, 기법의 양태는 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체에 관한 것이며, 상기 명령어는 실행시 메인 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하게 하고; 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하게 하도록 구성되며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하고; 그리고 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성된다.
다른 예시에서, 기법의 양태는 방법에 관한 것이며, 상기 방법은: 런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하는 단계, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 및 상기 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하는 단계를 포함하며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성된다.
다른 예시에서, 기법의 양태는 지원 컴퓨팅 디바이스에 관한 것이며, 상기 지원 컴퓨팅 디바이스는: 하나 이상의 프로세서, 상기 하나 이상의 프로세서는: 런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하고, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 그리고 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하도록 구성되며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되며; 및 상기 제2 컨테이너를 저장하도록 구성된 메모리를 포함한다.
다른 예시에서, 기법의 양태는 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체에 관한 것이며, 상기 명령어는 실행시 지원 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 런타임 환경의 제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은 본 개시에 설명된 기법의 다양한 양태에 따라 차량용 확장가능 컴퓨팅 아키텍처를 제공하도록 구성된 예시적 컴퓨팅 시스템을 도시하는 블록도이다.
도 2는 본 개시에 설명된 확장가능 하드웨어 아키텍처 기법의 다양한 양태를 수행하는 것에서 헤드 유닛의 예시적 동작을 도시하는 블록도이다.
도 3은 본 개시에 설명된 확장가능 컴퓨팅 아키텍처 기법의 다양한 양태에 따라 동작하도록 구성된 컴퓨팅 시스템을 포함하는 차량의 예를 도시하는 도면이다.
도 4는 본 개시에 설명된 확장가능 컴퓨팅 아키텍처 기법의 다양한 양태를 수행하는 컴퓨팅 시스템의 예시적 동작을 도시하는 흐름도이다.
도 1은 본 개시에 설명된 기법의 다양한 양태에 따라 차량용 확장가능 컴퓨팅 아키텍처를 제공하도록 구성된 예시적 컴퓨팅 시스템을 도시하는 블록도이다. 도 1의 예에서 도시된 바와 같이, 컴퓨팅 시스템(100)은 메인 컴퓨팅 디바이스(102) 및 지원 컴퓨팅 디바이스(202)를 포함한다. 차량과 관련하여 설명되었지만, 컴퓨팅 시스템(100)은 독립형 컴퓨팅 시스템(랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션 등을 포함), 게임 시스템, 셀룰러 전화(소위 "스마트폰" 포함), 미디어 시스템(스트리밍 미디어 시스템 포함), 오디오/비디오(A/V) 수신기, TV(소위 "스마트 TV" 포함), 스마트 스피커, 스마트 시계, 온도 조절기(소위 "스마트 온도조절기" 포함) , 스마트 글래스 또는 임의의 기타 컴퓨팅 시스템을 포함하는, 상이한 컨텍스트에서 활용될 수 있다.
임의의 경우에, 메인 컴퓨팅 디바이스(102)는 헤드 유닛 또는 다른 차량 컴퓨팅 시스템(예: 전자 제어 장치(ECU))과 같은 차량 컴퓨팅 디바이스의 예이다. 도 1은 메인 컴퓨팅 디바이스(102)의 단지 하나의 특정한 예시를 도시하며, 메인 컴퓨팅 디바이스(102)의 많은 다른 예시들이 다른 경우에 사용될 수 있고, 예시적 컴퓨팅 디바이스(102)에 포함된 컴포넌트의 서브셋을 포함하거나 또는 도 1에서 도시되지 않은 추가적인 컴포넌트를 포함할 수 있다.
도 1의 예에 도시된 바와 같이, 메인 컴퓨팅 디바이스(102)는 존재-감응형 디스플레이(112), 하나 이상의 프로세서(140), 하나 이상의 통신 유닛(142), 하나 이상의 입력 컴포넌트(144), 하나 이상의 출력 컴포넌트(146) 및 하나 이상의 저장 디바이스(148)를 포함한다. 메인 컴퓨팅 디바이스(102)의 저장 디바이스(148)는 부분적으로 하드웨어 추상화 레이어(126)("HAL(126)"), 런타임 환경(128)("RTE(128)"), 시스템 및 단일 사용자 서비스(SSUS) 모듈(130)("SSUS(130)"), 시스템 사용자 인터페이스(SUS) 모듈(132)("SUS(132)"), 자동차 서비스(CS) 모듈(134)("CS(134)") 및 다중 사용자 서비스 공간(MUSS) 모듈(136)("MUSS(136)")에 의해 형성된 소프트웨어 계층을 포함한다.
통신 채널(150)은 컴포넌트(112, 140, 142, 146 및/또는 148) 간의 통신(물리적, 통신적 및/또는 동작적)을 위해 컴포넌트(112, 140, 142, 146 및/또는 148) 각각을 상호 연결하여, 컴포넌트(112, 140, 142, 146 및 148)가 서로 통신하게 할 수 있다. 일부 예시에서, 통신 채널(150)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조 또는 데이터(정보로 지칭됨)를 통신하기 위한 임의의 기타 컴포넌트를 포함할 수 있다. 컴포넌트(112, 140, 142, 146 및 148)를 포함하는 것으로 도시되었지만, 메인 컴퓨팅 디바이스(102)는 다른 컴포넌트를 포함하거나 도시된 것보다 적은 컴포넌트를 포함할 수 있으며, 이러한 컴포넌트는 텔레매틱 제어 유닛(TCU)과 같은 다른 제어 유닛에 포함될 수 있다.
컴퓨팅 디바이스(100)의 하나 이상의 통신 유닛(142)은 데이터를 전송 및/또는 수신함으로써 외부 디바이스와 통신할 수 있다. 예를 들어, 메인 컴퓨팅 디바이스(102)는 셀룰러 무선 네트워크와 같은 무선 네트워크 상에서 무선 신호를 전송 및/또는 수신하기 위해 통신 유닛(142) 중 하나 이상을 사용할 수 있다. 일부 예시에서, 통신 유닛(142)은 위성 위치 확인 시스템(GPS) 네트워크와 같은 위성 네트워크 상에서 위성 신호를 전송 및/또는 수신할 수 있다. 통신 유닛(142)의 예시들은(이더넷 카드와 같은) 네트워크 인터페이스 카드, 광학적 트랜스시버, 라디오 주파수 트랜스시버, GPS 수신기 또는 정보를 송신 및/또는 수신할 수 있는 임의의 기타 유형의 디바이스를 포함한다. 통신 유닛(142)의 다른 예는 단파 라디오(예를 들어, NFC, BLUETOOTH(BLE 포함)), GPS, 3G, 4G, 5G, 및 모바일 디바이스에서 발견되는 WIFI 라디오 뿐만 아니라 USB 제어기 등을 포함할 수 있다.
메인 컴퓨팅 디바이스(102)의 하나 이상의 입력 컴포넌트(144)는 입력을 수신할 수 있다. 입력의 예는 촉각, 오디오, 키네틱 및 광학 입력이다. 메인 컴퓨팅 디바이스(102)의 입력 컴포넌트(144)는 일 예에서 마우스, 키보드, 터치패드, 음성 응답 시스템, 비디오 카메라, 버튼, 스크롤휠, 다이얼, 제어 패드, 마이크로폰 또는 사람 또는 기계로부터의 입력을 검출하기 위한 임의의 기타 유형의 디바이스를 포함한다. 입력 컴포넌트(144)는 카메라를 포함할 수 있다. 일부 예에서, 입력 컴포넌트(144)는 존재 감응형 디스플레이(112)와 별개인 존재-감응형 스크린, 터치 감지 스크린 등을 포함할 수 있는 존재-감응형 입력 컴포넌트일 수 있다.
메인 컴퓨팅 디바이스(102)의 하나 이상의 출력 컴포넌트(146)는 출력을 생성할 수 있다. 출력의 예는 촉각, 오디오 및 비디오 출력이다. 일부 예시에서, 컴퓨팅 디바이스(100)의 출력 컴포넌트들(146)은 (존재-감응형 디스플레이(112)와 별개인) 존재 감응형 화면, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, 음극선관(CRT) 모니터, 액정 디스플레이(LCD), 유기발광 다이오드(OLED), 또는 사람 또는 기계에 촉각적, 청각적 및/또는 시각적 출력을 생성하기 위한 임의의 기타 유형의 디바이스를 포함한다.
일부 예시에서, 메인 컴퓨팅 디바이스(102)의 존재-감응형 디스플레이(112)는 입력 컴포넌트(144) 및/또는 출력 컴포넌트(146)의 기능을 포함할 수 있다. 도 1의 예에서, 존재-감응형 디스플레이(112)는 존재 감응형 스크린 또는 터치 감응형 스크린과 같은 존재 감응형 입력(PSI) 컴포넌트(104)("PSI 컴포넌트 104")를 포함할 수 있다. 일부 예시에서, 존재-감응형 입력 컴포넌트(104)는 존재-감응형 입력 컴포넌트에 있는 및/또는 그 부근의 객체를 검출할 수 있다. 하나의 예시적 범위로서, 존재-감응형 입력 컴포넌트(504)는 존재-감응형 입력 컴포넌트(104)의 2인치 또는 그 이하 내에 있는 손가락 또는 스타일러스와 같은 오브젝트를 검출할 수 있다. 존재-감응형 입력 컴포넌트(104)는 객체가 검출된 존재-감응형 입력 컴포넌트의 위치(예를 들어, (x, y) 좌표)를 결정할 수 있다. 다른 예시적 범위에서, 존재-감응형 입력 컴포넌트(104)는 존재-감응형 입력 컴포넌트(104)로부터 2인치 또는 그 이하 내에 있는 오브젝트를 검출할 수 있으며, 다른 범위도 가능하다. 존재-감응형 입력 컴포넌트(104)는 용량성, 유도성 및/또는 광학 인식 기술을 사용하여 사용자의 손가락에 의해 선택된 존재 감응형 입력 컴포넌트(104)의 위치를 결정할 수 있다.
일부 예에서, 존재-감응형 디스플레이(112)는 또한 출력 컴포넌트(146)와 관련하여 기술된 바와 같이 촉각, 오디오 또는 비디오 자극을 사용하여 사용자에게 출력을 제공한다. 예를 들어, 존재-감응형 디스플레이(112)는 그래픽 사용자 인터페이스를 디스플레이하는 디스플레이 컴포넌트(103)를 포함할 수 있다. 디스플레이 컴포넌트(103)는 출력 컴포넌트(146)와 관련하여 설명된 바와 같이 시각적 출력을 제공하는 임의의 유형의 출력 컴포넌트일 수 있다. 메인 컴퓨팅 디바이스(102)의 내부 컴포넌트로서 도시되어 있지만, 존재-감응형 디스플레이(112)는 입력 및 출력을 전송 및/또는 수신하기 위해 메인 컴퓨팅 디바이스(102)와 데이터 또는 정보 경로를 공유하는 외부 컴포넌트일 수 있다. 예를 들어, 존재-감응형 디스플레이(512)는 메인 컴퓨팅 디바이스(102)의 외부 패키징(예를 들어, 차량의 대시보드에 마운트된 차량 내 화면) 내에 위치되고 물리적으로 연결된 메인 컴퓨팅 디바이스(102)의 내장 컴포넌트일 수 있다. 다른 예시에서, 존재-감응형 디스플레이(112)는 메인 컴퓨팅 디바이스(102)의 패키징(예를 들어, 차량의 전자 제어 유닛과 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터 등)의 외부에 위치되고 물리적으로 분리된 메인 컴퓨팅 디바이스(210)의 외부 컴포넌트일 수 있다. 일부 예에서, 존재-감응형 디스플레이(112)는 메인 컴퓨팅 디바이스(102)의 패키징 외부에 위치하고 물리적으로 분리된 경우, 두 개의 개별 컴포넌트: 입력을 수신하기 위한 존재-감응형 입력 컴포넌트(104) 및 출력을 제공하기 위한 디스플레이 컴포넌트(103)에 의해 구현될 수 있다.
메인 컴퓨팅 디바이스(102) 내의 하나 이상의 저장 컴포넌트(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)은 하나 이상의 컴퓨터 판독가능 저장 매체를 포함한다. 일부 예시에서, 저장 컴포넌트들(148)은 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 저장 컴포넌트들(148)은 일반적으로 휘발성 메모리에 저장되는 것보다 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 컴포넌트들(148)은 비휘발성 메모리 공간으로서 정보의 장기 저장을 위해 구성될 수 있고 전원 켜짐/꺼짐 순환 이후에도 정보를 보유한다. 비휘발성 메모리의 예시들은 자기적 하드 디스크, 광학 디스크, 플래시 메모리 또는 EPROM 또는 EEPROM의 형태를 포함한다. 저장 컴포넌트(148)는 모듈(126-136)과 연관된 프로그램 명령어 및/또는 정보(예: 데이터)를 저장할 수 있다. 저장 컴포넌트(148)는 모듈(126-136)과 연관된 데이터 및/또는 다른 정보를 저장하도록 구성된 메모리를 포함할 수 있다.
하나 이상의 프로세서(140)는 기능을 구현하고 및/또는 메인 컴퓨팅 디바이스(102)와 연관된 명령어를 실행할 수 있다. 프로세서들(140)의 예들은 어플리케이션 프로세서, 디스플레이 제어기, 보조 프로세서, 하나 이상의 센서 허브 및 프로세서, 프로세싱 유닛, 또는 프로세싱 디바이스로서 기능하도록 구성된 임의의 다른 하드웨어를 포함한다. 모듈(126-136)은 메인 컴퓨팅 디바이스(102)의 다양한 액션, 동작 또는 기능을 수행하기 위해 프로세서(140)에 의해 동작가능할(또는 실행될) 수 있다. 즉, 모듈(126-136)은 실행가능한 바이트코드를 형성할 수 있으며, 이는 실행될 때 프로세서(140)로 하여금 본 명세서에 기술된 기법에 따른 특정 동작을 수행하게 한다(그리고 이에 따라 메인 컴퓨팅 디바이스(102)가 수행할 특정 목적의 컴퓨터가 되도록 한다). 예를 들어, 메인 컴퓨팅 디바이스(102)의 프로세서(140)는 프로세서(140)로 하여금 모듈(126-136)에 기인하는 본 명세서에 기술된 동작을 수행하게 하는 저장 컴포넌트(148)에 의해 저장된 명령어를 검색하고 실행할 수 있다. 명령어는 프로세서(140)에 의해 실행될 때, 메인 컴퓨팅 디바이스(102)로 하여금 저장 컴퓨팅 디바이스(148) 내에 정보를 저장하게 한다.
지원 컴퓨팅 디바이스(202)는 메인 컴퓨팅 디바이스(102)와 유사한 컴포넌트를 포함할 수 있다. 도 1의 예에 추가로 도시된 바와 같이, 지원 컴퓨팅 디바이스(202)는 하나 이상의 프로세서(240), 하나 이상의 통신 유닛(242), 하나 이상의 입력 컴포넌트(244), 하나 이상의 출력 컴포넌트(246) 및 하나 이상의 저장 디바이스(284)를 포함할 수 있다. 컴포넌트(240-284)의 각각은 지원 컴퓨팅 디바이스(202)가 존재-감응형 디스플레이(112)와 유사한 존재-감응형 디스플레이 또는 임의의 기타 시작적, 청각적 또는 기타 출력 디바이스 또는 인터페이스를 포함하지 않을 수 있다는 점을 제외하고, 위에서 더 상세히 논의된 바와 같이, 각각의 컴포넌트(140-184)와 유사할 수 있다(실질적으로 유사하지 않은 경우).
지원 컴퓨팅 디바이스(202)는 또한 모듈(240-284)을 상호 연결하는 통신 버스(250)를 포함한다. 통신 버스(250)는 전술한 통신 버스(150)와 유사할 수 있다(실질적으로 유사하지 않는 경우).
또한, 저장 디바이스(284)는 각각의 모듈(126-136)과 유사할 수 있는 모듈(226-236)을 저장할 수 있다(실질적으로 유사하지 않는 경우). 즉, 저장 디바이스(284)는 HAL(226), OS(2280, SSUS(230), SUI(232), CS(234) 및 MUSS(236)을 저장할 수 있으며, 이들 각각은 후술될 기법의 다양한 양태를 실행하기 위해 각 모듈(126-136)의 동작을 오프로딩하거나 각 모듈(126-136)과 협력하여 실행한다.
전술한 바와 같이, 컴퓨팅 시스템(100)은 차량 내에 통합되거나 다른 방식으로 포함될 수 있다. 차량은 자전거, 세발 자전거, 외발 자전거, 자동차, 농기구(예: 트랙터, 콤바인 등), 건설 장비(덤프 트럭, 크레인 등), 군용 차량 장비(탱크, 군비 등), 트럭, 세미 트랙터(또는 세미 트레일러), 항공 장비(예: 비행기), 해상 장비(예: 보트, 캐리어, 등) 또는 기타 유형의 차량 중 하나 이상을 포함할 수 있다.
차량의 평균 수명주기가 10년 이상 서비스에 근접할 정도로 차량의 신뢰성이 증가하고 있다. 서비스 기간 동안 차량이 노후화됨에 따라 헤드 유닛, 전자 제어 장치(ECU) 등을 포함하는 컴퓨팅 시스템(10)과 같은 컴퓨팅 시스템이 점점 더 오래되어 기술 지원, 유지 보수(및 기타 지원) 및 새로운 기능 지원 측면에서 수명이 다할 수 있다. 또한, 메인 컴퓨팅 디바이스(102)를 포함하는 헤드 유닛 및 기타 컴퓨팅 시스템은 대시보드 및 기타 차량 컴포넌트에 매끄럽게 통합되어 고유한 폼 팩터, 대형 및 고가의 디스플레이 포함 등으로 인해 헤드 유닛(메인 컴퓨팅 디바이스(102)는 일 예시임) 교체가 어려워지고 있다.
헤드 유닛의 업그레이드가 가능하지만, 헤드 유닛(및 기타 컴퓨팅 시스템)을 교체하는 이러한 업그레이드는 종종 비용이 많이 든다. 전체 헤드 유닛을 교체하는 비용은 필요하지는 않지만 요구되고(헤드 유닛은 종종 디스플레이 및 기타 비싼 컴포넌트를 단일 하우징 또는 교체가능한 유닛에 통합하기 때문에) 어려운(이러한 헤드 유닛은 각 차량에 매끄럽게 통합되고 각 차량의 제조사 및 모델에 특정적이어서, 잠재적으로 교체 헤드 유닛의 가용성을 제한하고 비용을 증가시킬 가능성이 있음) 디스플레이 및 기타 (상대적으로) 비싼 부품을 교체를 요구하기 때문이다. 따라서 차량 운영자는 상당한 비용으로 헤드 유닛 및 기타 인포테인먼트 및 기타 컴포넌트를 포함한 컴퓨팅 시스템과 같은 새로운 기술에 액세스하기 위해 완전히 새로운 차량을 구입할 수 있다.
업데이트된 컴퓨팅 시스템을 확보하기 위한 마이그레이션 경로는 새로운 기술(예: 업그레이드된 OS, 애플리케이션 등에서 제공하는 기능 측면에서 확장된 기능을 제공하는 새로운 헤드 유닛)에 액세스하려는 운영자에게 상당한 비용(신형 또는 더 새로운 차량을 구입하기 위한 초기 비용 지출 및 헤드 유닛 교체를 위한 업그레이드 비용 측면에서)을 초래할 수 있다. 새로운 기술로의 마이그레이션 비용은 안전 기능, 보안 기능, 데이터 프라이버시 기능 등을 포함할 수 있는 다양한 기능을 운영자가 취하는 것을 느리게 하여, 새로운 기술을 채택하는데 장애가 될 수 있다.
본 개시에 설명된 기법의 다양한 양태에 따라, 컴퓨팅 시스템(100)은 차량용 확장가능 컴퓨팅 아키텍처를 구현할 수 있다. 메인 컴퓨팅 유닛(102)(소위 "헤드 유닛"의 일 예를 나타내며, "헤드 유닛(102)"라고도 함) 또는 차량의 다른 컴퓨팅 시스템을 대체하는 대신, 본 기법은 헤드 유닛(102) 또는 다른 컴퓨팅 시스템이 헤드 유닛(102)와 통신적으로 연결된 지원 컴퓨팅 디바이스(202)와 인터페이싱하게 할 수 있고, 상기 헤드 유닛(102) 또는 다른 컴퓨팅 디바이스는 애플리케이션의 실행(및 단지 애플리케이션 공간의 실행이 아닌 다른 런타임 환경 수준 동작)을 지원 컴퓨팅 디바이스(202)에 오프로딩하거나 다른 방식으로 전송할 수 있다.
헤드 유닛(102) 또는 다른 컴퓨팅 디바이스는 지원 디바이스(202)의 통신적 연결을 검출할 수 있고, 지원 컴퓨팅 디바이스(202)의 통신적 연결을 검출하는 것에 응답하여, 런타임 환경(228)의 파티션을 포함하는 컨테이너(238)를 지원 컴퓨팅 디바이스(202)에 전송할 수 있다. 컨테이너(238)를 지원 컴퓨팅 디바이스(202)에 전송하는 것으로 설명되었지만, 헤드 유닛(102)은 단지 지원 컴퓨팅 디바이스(202)가 검출되었고, 런타임 환경(228)과 유사할 수 있는(실질적으로 유사하지는 않은 경우) OS의 사전 설치된 파티션을 실행하기 위해 사전 설치된 컨테이너(컨테이너(238)과 유사)의 실행을 시작해야 한다는 표시를 전송할 수 있다. 이와 같이, 컨테이너(238)의 전송은 실제 컨테이너 자체의 전송 또는 헤드 유닛(102)으로부터 지원 컴퓨팅 디바이스(202)로의 사전 설치된 컨테이너의 실행의 전송을 의미하는 것으로 이해되어야 한다.
임의의 경우에, 지원 컴퓨팅 디바이스(202)는 RTE(128 및 228)의 동작을 동기화하기 위해 RTE(228)의 파티션을 실행할 수 있으며, 이에 따라 애플리케이션이 실행될 수 있는 사용자 공간을 제공할 수 있다(커널 공간의 실행을 지원하는 동시에, 즉, 분산 런타임 환경으로서의 런타임 환경 공간). 지원 컴퓨팅 디바이스(202)는 헤드 유닛(102)에 의한 RTE(128 및 228)의 확장가능한 실행을 허용하도록 교체 가능하거나 그렇지 않으면 업그레이드 가능할 수 있으며, 지원 컴퓨팅 디바이스(202)는 새로운 기능, 지원(보안 및 기타 문제를 해결하기 위한 소프트웨어 패치 등 포함하는 기술 지원과 같은 종신 서비스) 및 유지관리(예: 하드웨어 업그레이드 측면에서 프로세싱 능력, 메모리 크기 등)의 적응을 용이하게 하기 위해 업그레이드될 수 있다.
지원 컴퓨팅 디바이스(202)를 추가하면 덜 비싸게 메인 컴퓨팅 유닛(102)("헤드 유닛" 또는 다른 컴퓨팅 디바이스에 대한 다른 참조)을 업그레이드하게 할 수 있다(지원 컴퓨팅 디바이스(202)가 차량에 매끄럽게 통합되지 않고, 헤드 유닛(102)에 통신적으로 결합되어, 폼팩터, 디스플레이, GPS와 같은 추가 컴포넌트와 같은 매끄러운 통합과 연관된 비용을 절감함). 또한, 지원 컴퓨팅 디바이스(202)의 추가의 지원은 메인 컴퓨팅 디바이스(102)를 별도로 교체할 필요없이 메인 컴퓨팅 디바이스(102)에 대한 업그레이드를 가능하게 할 수 있으며, 이에 따라 메인 컴퓨팅 디바이스(102)를 교체할 필요없이 메인 컴퓨팅 디바이스(102)를 업그레이드하게 할 수 있다.
이와 관련하여, 본 기법의 다양한 양태는 컨테이너 소프트웨어 아키텍처를 제공하여 메인 컴퓨팅 디바이스(102) 및 지원 컴퓨팅 디바이스(202)가 상이한 버전의 런타임 환경을 실행하더라도 잠재적으로 일관된 사용자 경험을 제공하는 방식으로 메인 컴퓨팅 디바이스(102)와 지원 컴퓨팅 디바이스(202) 간의 동기화를 보장한다. 이와 같이, 기법은 메인 컴퓨팅 디바이스(102) 자체의 동작을 개선할 수 있고(지원 컴퓨팅 디바이스(202)에 의한 업그레이드를 용이하게 함으로써 헤드 유닛(102) 자체의 수명을 연장할 수 있고, 업그레이드 비용을 줄이고 프로세싱을 지원 컴퓨팅 디바이스(202)로 오프로딩하는 것과 같은 개선된 기능을 촉진할 수 있음), 잠재적으로 지원 컴퓨팅 디바이스(202)에 대한 업그레이드를 통해 일관된 사용자 경험을 유지한다.
동작시, 메인 컴퓨팅 디바이스(102)는 런타임 환경(예: RTE(128))의 제1 인스턴스를 실행하게 하는 제1 컨테이너(138)를 초기적으로 실행할 수 있다. 전술한 바와 같이, 메인 컴퓨팅 디바이스(102)는 전술한 소프트웨어 계층을 포함할 수 있다. 이와 같이, HAL(126)은 RTE(128)와 차량의 기본 하드웨어 사이의 원활한 상호 작용을 제공하기 위해 RTE(128)의 커널 사이의 커널 소프트웨어 심(shim)으로서 실행될 수 있다(이는 설명의 편의를 위해 도시되지 않음). 차량의 하드웨어 컴포넌트는 GPS 시스템, 자동화 시스템(예: 자율 주행 시스템 및/또는 동적 크루즈 제어 시스템), 난방, 환기 및 냉방(HVAC) 시스템, 창문 시스템(자동차의 작동을 제어하기 위한), 내부 조명 시스템(다양한 실내 조명의 작동 제어용), 외부 조명 시스템(다양한 외부 조명의 작동 제어용), 안전 시스템(예: 자동 제동 시스템 - ABS, 차선 지원 시스템, 주의 기반 안전 시스템 등), 열선 시트 시스템, 통풍 시트 시스템 또는 차량에 있는 기타 시스템을 포함할 수 있다.
이와 같이, RTE(128)은 HAL(126) 내에서 실행될 수 있으며, HAL(128)은 RTE(128)에 의해 발행된 명령 또는 기타 출력 신호를 가로채고, RTE-특정 명령을 기본 차량 하드웨어가 지원하는 차량-특정 명령으로 변환하는 동시에 차량-특정 데이터를 RTE(128)에서 지원하는 RTE-특정 데이터로 변환한다. OS-특정 명령 및 차량-특정 데이터의 변환이 RTE(128)에 투명하게 발생하여 RTE(128)로부터 HAL(126)을 별도로 개발할 수 있으므로, 개인 차량(OEM(Original Equipment Manufacturer)-하드웨어 및/또는 컴포넌트 측면에서 제조사 및 모델에 따라 다를 수 있음)에 맞게 조정된 심(예: HAL(126))이 있는 일반 RTE(128)의 채택을 용이하게 한다.
RTE(128)는 시스템 레벨 애플리케이션 및 사용자 애플리케이션을 위한 실행 환경을 제공하기 위해 상기 언급된 커널 공간에서 실행될 수 있다. 도 1의 예에서, SSUS(130), SUI(132) 및 CS(134)는 각각 RTE(128)에 의해 제공되는 실행 환경 내에서 실행되는 시스템 레벨 애플리케이션을 표현할 수 있다. RTE(128)는 기본 차량 하드웨어에 대한 증가된 액세스를 허용하는 SSUS(130), SUI(132) 및 CS(134) 시스템 레벨 권한을 각각 부여할 수 있고, RTE(128)는 SSUS(130), SUI(132) 및 CS(134) 각각에 부여된 시스템 레벨 권한보다 더 제한적인 MUSS(136) 내에서 실행되는 애플리케이션에 사용자-특정 권한을 부여할 수 있다. 시스템 레벨 권한은 사용자-특정 권한에 비해 차량 하드웨어 컴포넌트에 대한 액세스 권한(액세스 또는 우선 순위 측면에서)을 증가시킬 수 있다. 예시로서, SSUS(130), SUI(132) 및 CS(134)는 차량의 하드웨어 시스템 또는 컴포넌트 중 하나 이상에 액세스하여 하드웨어 시스템 또는 컴포넌트의 동작을 제어할 수 있고, MUSS(136)는 차량의 하드웨어 시스템 또는 컴포넌트에 의해 제공되는 데이터에만 액세스할 수 있다(예: GPS 시스템에서 출력한 GPS 좌표, HVAC 시스템에서 출력한 주변 온도 등).
SSUS(130)은 단일 사용자 서비스(예: 모든 사용자에게 공통되는 서비스, "공통 서비스"로도 지칭됨) 및 시스템 서비스(예: 모든 사용에게 설치되고, 메인 컴퓨팅 디바이스(102)의 모든 사용자에 의한 사용을 위해 하나 이상의 시스템 서비스를 제시하는 퍼스트파티 애플리케이션)를 실행하도록 구성된 모듈을 나타낼 수 있다. SUI(132)는 차량의 운영자가 차량의 다양한 동작을 제어하고 애플리케이션의 실행을 런칭하거나 개시하기 위해 인터렉션할 수 있는 시스템 레벨 사용자 인터페이스를 제시하도록 구성된 모듈을 나타낼 수 있다(MUSS(136)로 표현됨). CS(134)는 GPS 시스템, HVAC 시스템, 시트 시스템, 창문 시스템, 또는 본 문서의 다른 곳에서 보다 철저하게 나열된 다른 시스템을 포함한 다양한 자동차 서비스와 인터페이싱(예를 들어, API)하도록 구성된 모듈을 나타낼 수 있다.
MUSS(136)는 특정 서드파티 애플리케이션, 사용자-특정 자동차 서비스(개별 사용자와 연관됨) 및 기타 사용자-특정 데이터 또는 정보를 포함하는 개별 사용자 프로필을 제공하는 하나 이상의 모듈을 나타낼 수 있다. MUSS(136)는 기본 RTE(128)에 의해 유지되는 애플리케이션 공간에서 실행될 수 있다. 이와 관련하여, MUSS(136)는 메인 컴퓨팅 디바이스(102)의 기능을 확장하기 위해 다운로드 및/또는 설치될 수 있는 애플리케이션을 통해 확장된 소프트웨어 기능을 제공하기 위해 애플리케이션 공간에서 실행되는 모듈을 나타낼 수 있다.
메인 컴퓨팅 디바이스(102)는 또한 초기적으로 런타임 환경(예: RTE(228))의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너(238)를 실행할 수 있고(설명의 편의상 도 1에 도시되지 않음), RTE(128) 및 RTE(228)는 사용자 인터페이스를 공동으로 제시하도록 구성될 수 있고(예를 들어, SUI(132 및 232)에 의해 제공됨), 그에 의해 차량의 운영자가 차량의 기능을 제어한다. 메인 컴퓨팅 디바이스(102)는 컨테이너(138)를 프라이머리 또는 호스트 컨테이너(138)로서 실행하고, 컨테이너(238)를 클라이언트 컨테이너(238)의 세컨더리로서 실행할 수 있으며, 클라이언트 컨테이너(238)는 호스트 컨테이너(138)의 실행을 지원하도록 동작한다. 이와 같이, 클라이언트 컨테이너(238)는 호스트 컨테이너(138)를 대신하여 동작할 수 있고, 호스트 컨테이너(138)와 독립적으로 실행되지 않을 수 있다. 호스트 컨테이너(138)를 대신하여 동작하는 것으로 설명되었지만, 클라이언트 컨테이너(238)는 호스트 컨테이너(138)와 독립적으로 실행될 수 있으며, 호스트 컨테이너(138)는 이 예에서 데이터를 클라이언트 컨테이너(238)로 전달하기 위한 심을 나타낼 수 있다.
메인 컴퓨팅 디바이스(102)는 RTE(128)(및 기본 HAL(126))의 실행을 호출할 수 있는 컨테이너(138)를 실행할 수 있다(위에서 언급된 바와 같이 프로세서(140)를 통해). RTE(128)는 입력 컴포넌트(144) 및/또는 통신 유닛(142)과의 인터렉션을 통해, 메인 컴퓨팅 디바이스(102)와 통신하는 지원 컴퓨팅 디바이스(202)를 검출할 수 있다. 즉, 지원 컴퓨팅 디바이스(202)는 메인 컴퓨팅 디바이스(102)에 연결될 때, 전원을 켜고(통신 인터페이스를 통해 전원이 공급될 때) 라이트웨이트 운영 체제(RTE(228)와는 다른) 또는 기타 저레벨 소프트웨어(예: 펌웨어 등)을 실행하여, 그에 의해 출력 컴포넌트(248) 및/또는 통신 유닛(242)을 통해 메인 컴퓨팅 디바이스(102)와 인터페이싱한다. 그 다음 RTE(128)는 메인 컴퓨팅 디바이스(102)와 지원 컴퓨팅 디바이스(202) 사이의 통신을 설정하기 위해 프로토콜 또는 다른 API(application programmer interface) 호출을 포함할 수 있는 지원 컴퓨팅 디바이스(202)와의 통신 연결을 검출할 수 있다.
메인 컴퓨팅 디바이스(102)와 지원 컴퓨팅 디바이스(202) 사이의 연결은 도 1의 예에서 연결(160)로 도시된다. 연결(160)은 무선 연결, 유선 연결(연결은 모든 버전 - 1.0, 2.0, 3.0 등의 USB 연결과 같은 물리적 유선을 통해 설정됨) 또는 유선(예: 전원용) 및 무선의 조합을 포함할 수 있다.
지원 컴퓨팅 디바이스(202)를 검출하는 것에 응답하여, RTE(128)는 컨테이너(238)를 지원 컴퓨팅 디바이스(202)에 전송할 수 있다. RTE(128)는 출력 컴포넌트(146) 및/또는 통신 유닛(142)을 통해 컨테이너(238)를 지원 컴퓨팅 디바이스(202)에 전송할 수 있다. 지원 컴퓨팅 디바이스(202)는 컨테이너(238)를 수신하고, 메인 컴퓨팅 디바이스(102)와 관련하여 위에서 설명한 것과 유사한 소프트웨어 계층을 설정하기 위해 컨테이너(238)를 실행할 수 있으며, 이에 따라 HAL(226), RTE(228), SSUS(230), SUI(232), CS(234) 및 MUSS(236)의 실행을 용이하게 할 수 있다.
사실상, 메인 컴퓨팅 디바이스(102)는 세그먼트 또는 파티션에서 전체 RTE를 실행할 수 있으며, 여기서 RTE(예: RTE(128))의 제1 파티션은 SSUS(130, 132), SUI(132, 232), CS(134, 234) 및 MUSS(136 및 236)이 실행되는 시스템 및 애플리케이션 공간 지원하기 위해 RTE(예: RTE(228))의 제2 파티션과 함께 실행될 수 있다. 메인 컴퓨팅 시스템(102)은 지원 컴퓨팅 디바이스(202)가 메인 컴퓨팅 디바이스(102)에 통신가능하게 연결되는 것을 검출할 때까지 컨테이너(138 및 238)를 실행할 수 있다.
메인 컴퓨팅 디바이스(102)는 지원 컴퓨팅 디바이스(202)와의 통신 연결를 검출하기 전에, 단일 컨테이너(예: 컨테이너(138))의 실행과 관련하여 아래에 설명되는 것과 유사한 방식으로(실질적으로 유사하지는 않은 경우) 전체 RTE의 두 파티션(예: 컨테이너(138 및 238))을 실행할 수 있다. 즉, 컨테이너(138 및 238) 모두를 실행할 때, 메인 컴퓨팅 디바이스(102)는 컨테이너(138 및 236) 사이에서 데이터를 계속 중계하고 동기화할 수 있으며, 컨테이너(238)를 실행하여 MUSS(136 및 236)가 실행되는 애플리케이션 공간을 지원할 수 있다.
컨테이너(238)를 지원 컴퓨팅 디바이스(202)에 전송하는 것은 이러한 방식으로 컨테이너(238)의 실행을 지원 컴퓨팅 디바이스(202)로 오프로딩할 수 있으며, 이는 메인 컴퓨팅 디바이스(102)가 프로세싱 사이클, 메모리 및/또는 대역폭 소비를 감소시킬 수 있게 한다. 이와 같이, RTE(128)는 클라이언트 RTE로서 동작하는 RTE(228)에 비해 호스트 RTE로서 동작할 수 있다. RTE(128)는 사용자 입력 및 기타 데이터를 RTE(228)로 리디렉션할 수 있으며, RTE(228)는 사용자 입력 또는 기타 데이터를 프로세싱하고 RTE(128)와 조정하여 임의의 결과 출력을 제공할 수 있다(예를 들어, 존재-감응형 디스플레이(112)를 통해).
예를 들어, HAL(226)은 HAL(126)과 인터페이싱하여, 차량 하드웨어 컴포넌트와 연관된 다양한 설정을 제어하거나 업데이트할 수 있는 RTE(228), SSUS(230) 및 MUSS(236))로부터의 명령 또는 기타 데이터를 릴레이할 수 있다. 마찬가지로, HAL(126)은 차량 하드웨어 컴포넌트로부터의 명령 또는 기타 데이터를 RTE(228), SSUS(230) 및 MUSS(236)로 중계할 수 있다. 또한, RTE(128) 및 RTE(228)는 RTE의 단일 인스턴스를 공동으로 실행하기 위해 시스템 설정, 사용자 설정 및 기타 데이터 또는 정보를 교환하여 다양한 유형의 데이터를 동기화할 수 있다. 일부 예에서, RTE(128)는 RTE(228)의 버전과 다른 특정한 버전을 가질 수 있으며, 여기서 RTE(128)는 RTE(128)과 인터페이싱하기 위해 RTE(228)에 의해 사용되는 API와 동일하거나 역호환되는 RTE(228)과 인터페이스할 공통 API를 제시할 수 있다(RTE(128)의 실행 코드보다 업그레이드되거나 더 많은 프로세서, 메모리 및/또는 대역폭 집약적인 다른 실행 코드가 있음에도 불구하고). 또한, CS(234) 및 CS(134)는 메인 컴퓨팅 디바이스(102)와 지원 컴퓨팅 디바이스(202) 사이의 자동차 서비스 지원을 동기화하기 위해 서로 간에 명령 또는 다른 데이터를 중계할 수 있다.
이와 관련하여, RTE(128)는 지원 컴퓨팅 디바이스(202)에 의해 실행되는 RTE(228)와 인터페이싱하여, 차량의 운영자가 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시할 수 있다. RTE(128)는 RTE(228)이 RTE(128)에 의해 유지되는 것과 일관성 있는 상태 및 기타 정보 데이터를 획득할 수 있도록 하는 데이터 구조를 동기화하거나 유지할 수 있고, 이 데이터 구조는 현재 운영자(또는 즉, 컴퓨팅 시스템(100)의 사용자) 및 컴퓨팅 시스템(100)이 통합된 차량과 관련된다. 이와 같이, RTE(128 및 228)는 차량 운영자 및 차량 자체와 인터렉션하는 사용자 인터페이스를 공동으로 제시하기 위해, 하나 이상의 디바이스(예: 메인 컴퓨팅 디바이스(102) 및/또는 지원 컴퓨팅 디바이스(202))에 걸쳐 실행할 수 있거나 실행하도록 구성된 분산 런타임 환경의 인스턴스를 나타낼 수 있다.
이러한 방식으로, 본 기법의 다양한 양태는 컨테이너 소프트웨어 아키텍처를 제공하여 메인 컴퓨팅 디바이스(102) 및 지원 컴퓨팅 디바이스(202)가 상이한 버전의 런타임 환경을 실행하더라도 잠재적으로 일관된 사용자 경험을 제공하는 방식으로 메인 컴퓨팅 디바이스(102)와 지원 컴퓨팅 디바이스(202) 간의 동기화를 보장한다(아래에 더 자세히 기술될 바와 같이). 이와 같이, 기법은 메인 컴퓨팅 디바이스(102) 자체의 동작을 개선할 수 있고(지원 컴퓨팅 디바이스(202)에 의한 업그레이드를 용이하게 함으로써 헤드 유닛(102) 자체의 수명을 연장할 수 있고, 업그레이드 비용을 줄이고 프로세싱을 지원 컴퓨팅 디바이스(202)로 오프로딩하는 것과 같은 개선된 기능을 촉진할 수 있음), 잠재적으로 지원 컴퓨팅 디바이스(202)에 대한 업그레이드를 통해 일관된 사용자 경험을 유지한다.
도 2는 본 개시에 설명된 확장가능 하드웨어 아키텍처 기법의 다양한 양태를 수행하는 것에서 헤드 유닛의 예시적 동작을 도시하는 블록도이다. 도 2의 예에서 도시된 바와 같이, 헤드 유닛(302)은 OEM 컨테이너(338) 및 카트리지 컨테이너(438)를 실행하도록 구성된다. 헤드 유닛(302)은 도 1의 예에 도시된 메인 컴퓨팅 디바이스(102)의 일례를 나타낼 수 있고, OEM 컨테이너(338)는 도 1의 예에 도시된 컨테이너(138)의 일례를 나타낼 수 있고, 카트리지 컨테이너는 도 1의 예에 도시된 컨테이너(238)의 일례를 나타낼 수 있다.
이와 같이, OEM 컨테이너(338)는 위에서 설명된 기능을 제공하기 위해 실행될 수 있는 RTE(128), SSUS(130), SUI(132), CS(134) 및 MUSS(136)을 포함할 수 있다. 또한, 카트리지 컨테이너(438)는 위에서 설명된 기능을 제공하기 위해 실행될 수 있는 RTE(228), SSUS(230), SUI(232), CS(234) 및 MUSS(236)를 포함할 수 있다. 헤드 유닛(300)은 OEM 컨테이너(338) 및 카트리지 컨테이너(438) 모두를 지원하도록 구성된 것을 제외하고는 HAL(126) 및 HAL(226)과 유사한 HAL(336)의 단일 인스턴스를 실행할 수 있다.
헤드 유닛(302)은 운전자가 차량의 하드웨어 컴포넌트를 제어하기 위해 인터렉션하는 사용자 인터페이스를 공동으로 제시하기 위해 런타임 환경(예를 들어, RTE(128) 및 RTE 238)의 상이한 파티션이 실행되는 독립적인 컨테이너로서 컨테이너(338 및 438)를 모두 실행할 수 있다. HAL(336)은 데이터 또는 기타 정보(HAL(336)의 단일 인스턴스가 있는 경우)를 동기화할 수 없지만, CS(134) 및 CS(234)와 함께 RTE(128) 및 RTE(228)은 데이터(시스템 설정 및 사용자 설정과 같은 상태 데이터 포함)를 서로 간에 동기화할 수 있다. 즉, RTE(128)는 사용자 설정, 시스템 설정 또는 RTE(228)와 RTE(128) 사이의 일부 다른 설정을 동기화하여, RTE(128)을 실행하든 RTE(228)만 실행하든(예를 들어, 다른 RTE를 실행하지 않고) 일관된 사용자 경험을 유지할 수 있다.
또한, RTE(128)는 애플리케이션의 실행을 카트리지 컨테이너(438)로 리디렉션하여 RTE(228)로 리디렉션 명령을 발행할 수 있다. 리디렉션 명령에 응답하여, RTE(228)는 애플리케이션을 호출하여 애플리케이션이 실행되는 애플리케이션 공간을 유지하고 애플리케이션을 실행할 수 있다.
전술한 바와 같이, RTE(128)는 카트리지(402)와의 통신 연결을 검출할 수 있다. 즉, RTE(128)는 이전에 헤드 유닛(300) 내부의 가상 연결(360)이었던 헤드 유닛(302)과 카트리지(402) 사이의 통신 채널(160)("연결(160)"을 지칭하는 또 다른 방법)의 형성을 검출할 수 있다. 즉, 헤드 유닛(302) 내에서 내부적으로 동기화할 때, RTE(128)는 OEM 컨테이너(338)와 카트리지 컨테이너(438) 사이에 가상 연결(360)을 설정할 수 있으며, 여기서 가상 연결(360)은 연결(160)과 유사한 외부 연결로서 RTE(128) 및 RTE(228) 각각에 나타날 수 있다.
연결(160)의 형성을 검출하는 것에 응답하여, RTE(128)는 카트리지 컨테이너(438)를 카트리지(402)로 전송하기 위해 다수의 상이한 동작을 개시할 수 있다. 먼저, RTE(128)는 HAL(336)을 복제하여 HAL(226)을 획득할 수 있으며, RTE(128)가 카트리지(402)에 제공할 수 있다. 그 다음, HAL(336)은 복제 후에, 분산된 HAL의 제1 파티션을 형성하는 HAL(126)로 다시 초기화할 수 있다. RTE(128)는 HAL(226)을 카트리지(402)로 전송할 수 있으며, HAL(226)은 분산된 HAL의 제2 파티션을 형성한다. 카트리지(402)는 HAL(126)과 통신하기 위해 HAL(226)을 실행할 수 있고, 카트리지(402)가 차량의 하드웨어 컴포넌트와 인터페이싱하게 할 수 있다(예를 들어, 명령 및 기타 데이터를 HAL(126)에 전송함으로써, 명령 및 기타 데이터를 차량의 하드웨어 컴포넌트에 중계함).
RTE(128)는 다음에 카트리지 컨테이너(438)의 카트리지(402)로의 전송을 개시하여 카트리지(402)에 의한 소프트웨어 계층의 실행을 가능하게 할 수 있다. 카트리지(402)는 RTE(228)를 실행한 후 SSUS(230), SUI(232), CS(234) 및 MUSS(236)을 실행할 수 있다. RTE(228), SSUS(230), SUI(232), CS(234) 및 MUSS(236)을 실행하면, RTE(128, 228), SSUS(130, 230), SUI(132, 232), CS(134, 234) 및 MUSS(136, 236) 각각의 동작을 동기화하는 명령 및 기타 데이터가 교환될 수 있다. 이와 같이, RTE(228), SSUS(230), SUI(232), CS(234) 및 MUSS(236) 중 하나 이상은 사용자 설명, 시스템 설명 또는 기타 데이터를 수신하여, 헤드 유닛(302) 및 카트리지(402)에 걸쳐 분산 실행 환경의 동작을 동기화한다.
헤드 유닛(302)이 통합 디스플레이(예를 들어, 존재-감응형 디스플레이(112))를 포함할 수 있고 반면에 카트리지(402)는 임의의 형태의 통합 디스플레이도 포함하지 않을 수 있으므로(예를 들어, 카트리지(402)와 관련된 비용을 줄이기 위해), RTE(228)는 RTE(128)와 인터페이싱하여 헤드 유닛(302)의 통합 디스플레이를 통해 사용자 인터페이스를 제시한다. MUSS(236)에 의해 실행되는 애플리케이션은 그래픽 사용자 인터페이스 또는 다른 유형의 인터페이스와 관련된 기능 호출 및 커널 레벨 기능 호출을 RTE(228)에 전달할 수 있으며, RTE(128)와 인터페이싱하여 명령을 공동으로 프로세싱할 수 있다.
RTE(228)는 RTE(128)과 통신하기 위한 API를 준수하기 위해 함수 호출을 변환하거나 프로세싱할 수 있다. 즉, RTE(228)는 RTE(128)와는 다른 버전의 RTE를 준수할 수 있고, 함수 호출은 RTE(228)가 준수하는 RTE의 버전을 준수할 수 있다. 이와 같이, RTE(228)는 RTE(128)가 준수하는 RTE의 버전과의 역호환성을 유지하기 위해 RTE(128)가 준수하는 RTE의 버전을 준수하도록 함수 호출을 변환할 수 있다. 이와 관련하여, RTE(228)는 심 또는 (런타임 환경과 같은) 상이한 버전의 소프트웨어 사이의 역호환성을 제공하는 다른 소프트웨어 구성을 나타낼 수 있다.
도 3은 본 개시에 설명된 확장가능 컴퓨팅 아키텍처 기법의 다양한 양태에 따라 동작하도록 구성된 컴퓨팅 시스템을 포함하는 차량의 예를 도시하는 도면이다. 도 3의 예시에서 도시된 바와 같이, 차량(500)의 내부는 헤드 유닛(302)이 차량(500)의 글로브 박스(502)에 상주할 수 있는 카트리지(402)에 (예를 들어, USB 연결(160)을 통해) 통신적으로 연결되는 컴퓨팅 시스템을 포함할 수 있다. 카트리지(402) 및 USB 연결(160)은 점선으로 도시되어, 대시보드(USB 연결(160)용) 및 글러브 박스 커버(카트리지(402)용) 뒤에 카트리지(402) 및 USB 연결(160)이 설치되어 있으므로 차량(500)의 운영자가 볼 때 보이지 않음을 나타낸다. 도시되지는 않았지만, 카트리지(402)는 스마트폰, 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 게임 시스템 등과 같은 또 다른 컴퓨팅 디바이스와 인터페이싱하는 또 다른 USB 포트(또는 다른 인터페이스 포트)를 포함할 수 있다.
글로브 박스(502)에 설치되는 것으로 도시되었지만, 카트리지(402)는 전력이 카트리지(402)에 제공될 수 있는 차량(500)의 어느 곳에나 설치될 수 있다. 이와 같이, 카트리지(402)는 중앙 대시 콘솔 위치(504A)에 설치될 수 있으며, 운전자 대시 위치(504B) 아래에 장착될 수 있으며, 운전자 도어 위치(504C), 운전석 아래 위치(504D), 중앙 암 레스트 콘솔 위치(504E), 조수석 아래 위치(504F) 및/또는 조수석 도어 위치(504G) 뿐만 아니라 뒷 트렁크, 앞 트렁크, 뒷좌석 아래, 뒷좌석 도어 등과 같은 전력이 사용가능한 임의의 다른 위치(그러나 도 3의 예에는 도시되지 않음)에 설치될 수 있다.
도 4는 본 개시에 설명된 확장가능 컴퓨팅 아키텍처 기법의 다양한 양태를 수행하는 컴퓨팅 시스템의 예시적 동작을 도시하는 흐름도이다. 위에서 더 상세히 설명된 바와 같이, 메인 컴퓨팅 디바이스(102)는 RTE(128)의 제1 인스턴스 및 RTE(228)의 제2 인스턴스(600, 602)를 실행하기 위해 초기적으로 제1 컨테이너(138) 및 제2 컨테이너(238) 둘 모두를 실행할 수 있다. RTE(128 및 228)를 실행하기 위해, 메인 컴퓨팅 디바이스(102)는 HAL(326)과 같은 분산 HAL을 실행할 수 있다(도 3의 예에 도시된 바와 같이). 분산 HAL은 RTE(128, 228)가 기본 차량 하드웨어 컴포넌트와 인터페이싱하게 하여 API와 같은 인터페이스를 제공할 수 있으며, RTE(128, 228)는 인터페이싱하여 명령을 제공하고 기본 차량 하드웨어 컴포넌트(예: 위에 자세히 설명된 임의의 시스템)로부터 데이터를 수신한다.
RTE(128 및/또는 228)는 지원 컴퓨팅 디바이스(202)의 통신 연결을 검출할 수 있다(604). RTE(128)는 지원 컴퓨팅 디바이스(202)의 통신 연결을 검출에 응답하여(즉, 지원 컴퓨팅 디바이스(202) 검출에 응답), 제2 컨테이너(238)를 지원 컴퓨팅 디바이스(202)(606)에 전송할 수 있다. 지원 컴퓨팅 디바이스(202)는 제2 컨테이너(238)를 수신하고(608), 제2 컨테이너(238)를 실행할 수 있다. 즉, 지원 컴퓨팅 디바이스(202)는 초기에 메인 컴퓨팅 디바이스(102)에 연결하는 라이트웨이트 또는 최소 운영 체제를 실행할 수 있다(예: 부트 로더 또는 메인 컴퓨팅 디바이스(102)와 인터페이싱하기 위해 최소 기능을 제공할 수 있지만, 사용자 또는 운영자 인터렉션을 용이하게 하지 않거나 사용자 인터페이스를 제시하지 않는(디버그, 데이터 수집, 트러블슈팅 등의 목적을 위한 명령줄 인터페이스와 같은 잠재적으로 저레벨 사용자 인터페이스 제외) 기타 저레벨 운영 체제).
임의의 경우에, 지원 컴퓨팅 디바이스(202)는 제2 컨테이너(238)를 수신할 수 있으며, 그에 따라 저레벨 운영 체제는 제2 컨테이너(238)를 장착하고, 제2 컨테이너(238)를 실행하여 RTE(228)를 실행할 수 있다(610). RTE(228)를 실행할 때, RTE(128) 및 RTE(228)는 사용자 설정, 시스템 설정 및 기타 데이터 또는 정보를 동기화하여, 차량 운영자가 인터렉션할 수 있는 사용자 인터페이스를 공동으로 제시할 수 있다(612, 614). RTE(128)는 (예를 들어, 존재-감응형 디스플레이(112)를 통해) 애플리케이션의 실행을 개시하기 위한 표시를 수신하고, 그 표시를 지원 컴퓨팅 디바이스(202)에 전송할 수 있다(616, 618). 지원 컴퓨팅 디바이스(202)는 표시(520)를 수신할 수 있으며(620), 여기서 RTE(228)는 표시 수신에 응답하여, 표시된 애플리케이션의 실행을 개시할 수 있다(622). RTE(128) 및 RTE(228)는 이러한 방식으로 계속하여 사용자 인터페이스를 제시하고, 사용자 설정, 시스템 설정 또는 RTE(128 및 228) 사이의 다른 상태 데이터를 동기화하고, 표시에 응답하여 애플리케이션을 실행할 수 있다(612-622).
이러한 방식으로, 본 개시에 설명된 기법의 다양한 양태는 다음의 구절들을 가능하게 할 수 있다.
제1A절. 방법으로서, 차량에 통합된 메인 컴퓨팅 디바이스에 의해, 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하는 단계; 상기 메인 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하는 단계를 포함하며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하도록 구성되고; 및 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성되는, 방법.
제2A절. 제1A절에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제2 인스턴스와 상기 런타임 환경의 제1 인스턴스 사이의 사용자 설정을 동기화하는, 방법.
제3A절. 제1A절 및 제2A절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는, 방법.
제4A절. 제1A절 내지 제3A절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 상기 런타임 환경의 제1 파티션은 애플리케이션의 실행을 상기 런타임 환경의 제2 파티션으로 리디렉션하도록 구성되고, 그리고 상기 런타임 환경의 제2 파티션은 상기 애플리케이션이 실행되는 사용자 공간을 유지하도록 구성되는, 방법.
제5A절. 제1A절 내지 제4A절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하도록 구성되는, 방법.
제6A절. 제1A절 내지 제5A절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제1 인스턴스를 실행하는 단계를 더 포함하는, 방법.
제7A절. 제6A절에 있어서, 상기 지원 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 지원 컴퓨팅 디바이스가 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하게 하기 위해 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 상기 지원 컴퓨팅 디바이스에 전송하는 단계를 더 포함하며, 상기 하드웨어 추상화 레이어의 제2 인스턴스는 상기 지원 컴퓨팅 디바이스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는, 방법.
제8A절. 제1A절 내지 제7A절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 방법.
제9A절. 제8A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 무선으로 연결되는, 방법.
제10A절. 제8A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 유선으로 연결되는, 방법.
제11A절. 제10A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 USB 표준에 따라 유선으로 연결되는, 방법.
제12A절. 제1A절 내지 제11A절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하는 헤드 유닛을 포함하는, 방법.
제13A절. 제1A절 내지 제12A절의 임의의 조합에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 방법.
제14A절. 제1A절 내지 제13A절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 제1 버전을 갖는 상기 런타임 환경의 제1 인스턴스를 포함하고, 상기 런타임 환경의 제2 인스턴스는 제2 버전을 갖는 상기 런타임 환경의 제2 인스턴스를 포함하고, 그리고 상기 제1 버전은 상기 제2 버전과 상이한, 방법.
제15A절. 차량에 통합된 메인 컴퓨팅 디바이스로서, 런타임 환경의 제1 인스턴스 및 런타임 환경의 제2 인스턴스를 저장하도록 구성된 메모리; 하나 이상의 프로세서를 포함하며, 상기 하나 이상의 프로세서는: 상기 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하고; 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하도록 구성되며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하도록 구성되고; 및 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성되는, 메인 컴퓨팅 디바이스.
제16A절. 제15A절에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제2 인스턴스와 상기 런타임 환경의 제1 인스턴스 사이의 사용자 설정을 동기화하는, 메인 컴퓨팅 디바이스.
제17A절. 제15A절 및 제16A절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는, 메인 컴퓨팅 디바이스.
제18A절. 제15A절 내지 제17A절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 상기 런타임 환경의 제1 파티션은 애플리케이션의 실행을 상기 런타임 환경의 제2 파티션으로 리디렉션하도록 구성되고, 그리고 상기 런타임 환경의 제2 파티션은 상기 애플리케이션이 실행되는 사용자 공간을 유지하도록 구성되는, 메인 컴퓨팅 디바이스.
제19A절. 제15A절 내지 제18A절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하도록 구성되는, 메인 컴퓨팅 디바이스.
제20A절. 제15A절 내지 제19A절의 임의의 조합에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제1 인스턴스를 실행하도록 더 구성되는, 메인 컴퓨팅 디바이스.
제21A절. 제20A절에 있어서, 상기 하나 이상의 프로세서는 상기 지원 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 지원 컴퓨팅 디바이스가 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하게 하기 위해 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 상기 지원 컴퓨팅 디바이스에 전송하도록 더 구성되며, 상기 하드웨어 추상화 레이어의 제2 인스턴스는 상기 지원 컴퓨팅 디바이스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는, 메인 컴퓨팅 디바이스.
제22A절. 제15A절 내지 제21A절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 메인 컴퓨팅 디바이스.
제23A절. 제22A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 무선으로 연결되는, 메인 컴퓨팅 디바이스.
제24A절. 제22A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 유선으로 연결되는, 메인 컴퓨팅 디바이스.
제25A절. 제24A절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 USB 표준에 따라 유선으로 연결되는, 메인 컴퓨팅 디바이스.
제26A절. 제15A절 내지 제25A절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하는 헤드 유닛을 포함하는, 메인 컴퓨팅 디바이스.
제27A절. 제15A절 내지 제26A절의 임의의 조합에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 메인 컴퓨팅 디바이스.
제28A절. 제15A절 내지 제27A절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 제1 버전을 갖는 상기 런타임 환경의 제1 인스턴스를 포함하고, 상기 런타임 환경의 제2 인스턴스는 제2 버전을 갖는 상기 런타임 환경의 제2 인스턴스를 포함하고, 그리고 상기 제1 버전은 상기 제2 버전과 상이한, 메인 컴퓨팅 디바이스.
제29A절. 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 메인 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 런타임 환경의 제1 인스턴스를 실행할 수 있게 하는 제1 컨테이너를 실행하게 하고; 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하게 하도록 구성되며, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 상기 런타임 환경의 제1 인스턴스는: 상기 메인 컴퓨팅 디바이스와 통신하는 지원 컴퓨팅 디바이스를 검출하고; 상기 지원 컴퓨팅 디바이스의 검출에 응답하여, 상기 제2 컨테이너를 상기 지원 컴퓨팅 디바이스에 전송하도록 구성되고; 및 상기 차량의 운영자가 상기 차량의 기능을 제어하는 상기 사용자 인터페이스를 공동으로 제시하기 위해 상기 지원 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제2 인스턴스와의 인터페이싱하도록 구성되는, 컴퓨터 판독가능 저장 매체.
제1B절. 방법으로서, 런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하는 단계, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 및 상기 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하는 단계를 포함하며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되는, 방법.
제2B절. 제1B절에 있어서, 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 사용자 설정을 동기화하기 위해 상기 런타임 환경의 제1 인스턴스로부터 사용자 설정을 수신하는 단계를 더 포함하는, 방법.
제3B절. 제1B절 및 제2B절의 임의의 조합에 있어서, 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는 상기 런타임 환경의 제1 인스턴스로부터 표시를 수신하는 단계를 더 포함하는, 방법.
제4B절. 제1B절 내지 제3B절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 그리고 상기 런타임 환경의 제2 파티션은 상기 런타임 환경의 제1 파티션으로부터의 애플리케이션의 실행을 개시하기 위한 표시에 응답하여, 상기 애플리케이션을 실행하는 사용자 공간을 유지하도록 구성되는, 방법.
제5B절. 제1B절 내지 제4B절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하는 시스템 설정을 수신하는 단계를 더 포함하는, 방법.
제6B절. 제1B절 내지 제5B절의 임의의 조합에 있어서, 상기 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제2 인스턴스를 실행하는 단계를 더 포함하는, 방법.
제7B절. 제6B절에 있어서, 상기 메인 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 수신하는 단계; 및 상기 하드웨어 추상화 레이어의 제1 인스턴스와 통신하고, 상기 지원 컴퓨팅 디바이스로 하여금 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하기 위해 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하는 단계를 더 포함하는, 방법.
제8B절. 제1B절 내지 제7B절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 방법.
제9B절. 제8B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 무선으로 연결되는, 방법.
제10B절. 제8B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 유선으로 연결되는, 방법.
제11B절. 제10B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 물리적 USB 연결을 통해 연결되는, 방법.
제12B절. 제1B절 내지 제11B절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하는 헤드 유닛을 포함하는, 방법.
제13B절. 제1B절 내지 제12B절의 임의의 조합에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 방법.
제14B절. 제1B절 내지 제13B절의 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 제1 버전을 갖는 상기 런타임 환경의 제1 인스턴스를 포함하고, 상기 런타임 환경의 제2 인스턴스는 제2 버전을 갖는 상기 런타임 환경의 제2 인스턴스를 포함하고, 그리고 상기 제1 버전은 상기 제2 버전과 상이한, 방법.
제15B절. 지원 컴퓨팅 디바이스로서, 하나 이상의 프로세서, 상기 하나 이상의 프로세서는: 런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하고, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 그리고 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하도록 구성되며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되며; 및 상기 제2 컨테이너를 저장하도록 구성된 메모리를 포함하는, 지원 컴퓨팅 디바이스.
제16B절. 제15B절에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 사용자 설정을 동기화하기 위해 상기 런타임 환경의 제1 인스턴스로부터 사용자 설정을 수신하도록 더 구성되는, 지원 컴퓨팅 디바이스.
제17B절. 제15B절 및 제16B절의 임의의 조합에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는 상기 런타임 환경의 제1 인스턴스로부터 표시를 수신하도록 더 구성되는, 지원 컴퓨터 디바이스.
제18B절. 제15B절 내지 제17B절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 그리고 상기 런타임 환경의 제2 파티션은 상기 런타임 환경의 제1 파티션으로부터의 애플리케이션의 실행을 개시하기 위한 표시에 응답하여, 상기 애플리케이션을 실행하는 사용자 공간을 유지하도록 구성되는, 지원 컴퓨팅 디바이스.
제19B절. 제15B절 내지 제18B절 중 임의의 조합에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하는 시스템 설정을 수신하도록 더 구성되는, 지원 컴퓨팅 디바이스.
제20B절. 제15A절 내지 제19A절의 임의의 조합에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제2 인스턴스를 실행하도록 더 구성되는, 지원 컴퓨팅 디바이스.
제21B절. 제20B절에 있어서, 상기 하나 이상의 프로세서는: 상기 메인 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 수신하고; 그리고 상기 하드웨어 추상화 레이어의 제1 인스턴스와 통신하고, 상기 지원 컴퓨팅 디바이스로 하여금 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하기 위해 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하도록 더 구성되는, 지원 컴퓨팅 디바이스.
제22B절. 제15B절 내지 제21B절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 지원 컴퓨팅 디바이스.
제23B절. 제22B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 무선으로 연결되는, 지원 컴퓨팅 디바이스.
제24B절. 제22B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 유선으로 연결되는, 지원 컴퓨팅 디바이스.
제25B절. 제24B절에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 물리적 USB 연결을 통해 연결되는, 지원 컴퓨팅 디바이스.
제26B절. 제15B절 내지 제25B절의 임의의 조합에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하는 헤드 유닛을 포함하는, 지원 컴퓨팅 디바이스.
제27B절. 제15B절 내지 제26B절의 임의의 조합에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 지원 컴퓨팅 디바이스.
제28B절. 제15B절 내지 제27B절 중 임의의 조합에 있어서, 상기 런타임 환경의 제1 인스턴스는 제1 버전을 갖는 상기 런타임 환경의 제1 인스턴스를 포함하고, 상기 런타임 환경의 제2 인스턴스는 제2 버전을 갖는 상기 런타임 환경의 제2 인스턴스를 포함하고, 그리고 상기 제1 버전은 상기 제2 버전과 상이한, 지원 컴퓨팅 디바이스.
제29B절. 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 지원 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금: 런타임 환경의 제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) 비일시적인 유형적 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에서 기술된 기법들의 구현을 위해 명령어들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예시로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 기타 자기 저장 디바이스들, 플래시 메모리 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있다. 또한, 임의의 연결이 컴퓨터 판독가능 매체에 적절하게 명명될 수 있다. 예를 들면, 웹사이트, 서버 또는 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들을 사용하는 기타 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호 또는 다른 일시적인 매체를 포함하지 않으나, 대신에 비일시적인 유형적 저장 매체를 지칭한다. 본 명세서에서 사용된 바와 같이, 디스크 및 디스크들은 컴팩트 디스크(CD), 레이저 디스크, 광학 디스크, DVD, 플로피 디스크 및 블루레이 디스크, 울트라 블루레이 등을 포함하며, 디스크들은 보통 데이터를 자기적으로 재생산하면서 디스크들은 데이터를 레이저로 광학적으로 재생산한다. 또한, 상기의 조합들은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어들은 하나 이상의 디지털 신호 프로세서들(DSP), 범용 마이크로프로세서들, 주문형 집적회로들(ASIC), 필드 프로그램가능 논리 배열들(FPGA) 또는 기타 균등한 통합 또는 이산 논리 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같이, 용어 "프로세서"는 임의의 상기 구조 또는 본 명세서에 기술된 기법들의 구현에 적절한 임의의 기타 구조를 지칭할 수 있다. 추가로, 일부 양태에서, 본 명세서에 기술된 기능은 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공될 수 있다. 또한, 기법들은 하나 이상의 회로들 또는 논리 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 헤드셋, 집적 회로(IC) 또는 IC의 세트(예를 들어, 칩셋)를 포함하는 광범위한 디바이스들 또는 장치들에서 구현될 수 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에서 기술되었지만, 상이한 하드웨어 유닛들에 의한 실현을 필수적으로 요구하지 않는다. 오히려, 상기 기술된 바와 같이, 다양한 유닛들이 적절한 소프트웨어 및/또는 펌웨어와 함께 하드웨어 유닛에서 조합되거나 상기 기술된 바와 같은 하나 이상의 프로세서들을 포함하는 상호 동작적 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
다양한 실시예들이 기술되었다. 따라서, 이들 및 다른 실시예들도 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 방법으로서,
    런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하는 단계, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며; 및
    상기 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하는 단계를 포함하며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되는, 방법.
  2. 청구항 1에 있어서, 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 사용자 설정을 동기화하기 위해 상기 런타임 환경의 제1 인스턴스로부터 사용자 설정을 수신하는 단계를 더 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는 상기 런타임 환경의 제1 인스턴스로부터 표시를 수신하는 단계를 더 포함하는, 방법.
  4. 청구항 1에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 상기 런타임 환경의 제2 파티션은 상기 런타임 환경의 제1 파티션으로부터 애플리케이션의 실행을 개시하라는 표시에 응답하여, 애플리케이션이 실행되는 사용자 공간을 유지하도록 구성되는, 방법.
  5. 청구항 1에 있어서, 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하는 시스템 설정을 수신하는 단계를 더 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 지원 컴퓨팅 디바이스에 의해, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제2 인스턴스를 실행하는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 메인 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 수신하는 단계; 및 상기 하드웨어 추상화 레이어의 제1 인스턴스와 통신하고, 상기 지원 컴퓨팅 디바이스로 하여금 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하기 위해 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하는 단계를 더 포함하는, 방법.
  8. 청구항 1에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 방법.
  9. 청구항 1에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하는 헤드 유닛을 포함하는, 방법.
  10. 청구항 1에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 방법.
  11. 지원 컴퓨팅 디바이스로서, 하나 이상의 프로세서, 상기 하나 이상의 프로세서는:
    런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하고, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 그리고
    상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하도록 구성되며, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되며; 및 메모리를 포함하며, 상기 메모리는 상기 제2 컨테이너를 저장하도록 구성되는, 시스템.
  12. 청구항 11에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 사용자 설정을 동기화하기 위해 상기 런타임 환경의 제1 인스턴스로부터 사용자 설정을 수신하도록 더 구성되는, 지원 컴퓨팅 디바이스.
  13. 청구항 11에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제2 인스턴스에 의한 애플리케이션의 실행을 개시하는 상기 런타임 환경의 제1 인스턴스로부터 표시를 수신하도록 더 구성되는, 지원 컴퓨터 디바이스.
  14. 청구항 11에 있어서, 상기 런타임 환경의 제1 인스턴스는 상기 런타임 환경의 제1 파티션을 포함하고, 상기 런타임 환경의 제2 인스턴스는 상기 런타임 환경의 제2 파티션을 포함하고, 상기 런타임 환경의 제2 파티션은 상기 런타임 환경의 제1 파티션으로부터 애플리케이션의 실행을 개시하라는 표시에 응답하여, 애플리케이션이 실행되는 사용자 공간을 유지하도록 구성되는, 지원 컴퓨팅 디바이스.
  15. 청구항 11에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스와 상기 런타임 환경의 제2 인스턴스 사이의 시스템 설정을 동기화하는 시스템 설정을 수신하도록 더 구성되는, 지원 컴퓨팅 디바이스.
  16. 청구항 11에 있어서, 상기 하나 이상의 프로세서는 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스가 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하는 분산 하드웨어 추상화 레이어의 제2 인스턴스를 실행하도록 더 구성되는, 지원 컴퓨팅 디바이스.
  17. 청구항 16에 있어서, 상기 하나 이상의 프로세서는: 상기 메인 컴퓨팅 디바이스를 검출하는 것에 응답하여, 상기 분산 하드웨어 추상화 레이어의 제2 인스턴스를 수신하고; 그리고 상기 하드웨어 추상화 레이어의 제1 인스턴스와 통신하고, 상기 지원 컴퓨팅 디바이스로 하여금 상기 차량의 하드웨어 컴포넌트와 인터페이싱하게 하기 위해 상기 하드웨어 추상화 레이어의 제2 인스턴스를 실행하도록 더 구성되는, 지원 컴퓨팅 디바이스.
  18. 청구항 11에 있어서, 상기 메인 컴퓨팅 디바이스는 상기 지원 컴퓨팅 디바이스에 통신적으로 연결되는, 지원 컴퓨팅 디바이스.
  19. 청구항 11에 있어서, 상기 지원 컴퓨팅 디바이스는 상기 차량의 운영자에게 상기 사용자 인터페이스를 제시하기 위한 통합 디스플레이를 포함하지 않는 카트리지를 포함하는, 지원 컴퓨팅 디바이스.
  20. 명령어가 저장된 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어는 실행시 지원 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금:
    런타임 환경의 제1 인스턴스를 실행하는 제1 컨테이너의 실행을 지원하는 차량에 통합된 메인 컴퓨팅 디바이스로부터, 상기 런타임 환경의 제2 인스턴스의 실행을 지원하는 제2 컨테이너를 수신하게 하고, 상기 런타임 환경의 제1 인스턴스 및 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하도록 구성되며, 그리고
    상기 런타임 환경의 제2 인스턴스를 실행할 수 있게 하는 제2 컨테이너를 실행하게 하고, 상기 런타임 환경의 제2 인스턴스는 차량의 운영자가 상기 차량의 기능을 제어하는 사용자 인터페이스를 공동으로 제시하기 위해 상기 메인 컴퓨팅 디바이스에 의해 실행되는 상기 런타임 환경의 제1 인스턴스와 인터페이싱하도록 구성되며; 및 상기 제2 컨테이너를 저장하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020220139457A 2019-10-11 2022-10-26 차량용 확장가능 컴퓨팅 아키텍처 KR102656218B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962914153P 2019-10-11 2019-10-11
US62/914,153 2019-10-11
KR1020200130322A KR102461918B1 (ko) 2019-10-11 2020-10-08 차량용 확장가능 컴퓨팅 아키텍처

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200130322A Division KR102461918B1 (ko) 2019-10-11 2020-10-08 차량용 확장가능 컴퓨팅 아키텍처

Publications (2)

Publication Number Publication Date
KR20220148785A true KR20220148785A (ko) 2022-11-07
KR102656218B1 KR102656218B1 (ko) 2024-04-09

Family

ID=72811754

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200130322A KR102461918B1 (ko) 2019-10-11 2020-10-08 차량용 확장가능 컴퓨팅 아키텍처
KR1020220139457A KR102656218B1 (ko) 2019-10-11 2022-10-26 차량용 확장가능 컴퓨팅 아키텍처

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200130322A KR102461918B1 (ko) 2019-10-11 2020-10-08 차량용 확장가능 컴퓨팅 아키텍처

Country Status (5)

Country Link
US (2) US11455180B2 (ko)
EP (2) EP3805922B1 (ko)
JP (2) JP7043563B2 (ko)
KR (2) KR102461918B1 (ko)
CN (2) CN112199156B (ko)

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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082627A1 (en) * 2006-09-29 2008-04-03 Allen Stewart O Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation
KR20160051399A (ko) * 2014-11-03 2016-05-11 엘지전자 주식회사 이동 통신 시스템 및 그 제어 방법
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
KR20180054746A (ko) * 2016-01-15 2018-05-24 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리

Family Cites Families (37)

* 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
US7937698B2 (en) * 2007-08-02 2011-05-03 International Business Machines Corporation Extensible mechanism for automatically migrating resource adapter components in a development environment
JP5476764B2 (ja) 2009-03-30 2014-04-23 富士通株式会社 サーバ装置、計算機システム、プログラム及び仮想計算機移動方法
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
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
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
WO2014197339A1 (en) * 2013-06-08 2014-12-11 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 コンピュータシステムと車両インターフェースシステム
JP5945637B2 (ja) 2014-04-22 2016-07-05 オリンパス株式会社 データ処理システム及びデータ処理方法
WO2016041173A1 (en) * 2014-09-18 2016-03-24 Intel Corporation Supporting multiple operating system environments in computing device without contents conversion
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
CA2996004C (en) 2015-09-14 2022-05-17 Vinli, Inc. Cloud integrated vehicle platform
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 株式会社デンソー 車両用制御装置及び電源供給回路
JP6777050B2 (ja) 2017-09-21 2020-10-28 株式会社デンソー 仮想化システム、仮想化プログラム、及び、記憶媒体
US10296269B1 (en) 2017-12-19 2019-05-21 Kyocera Document Solutions, Inc. Portable multi-function printing extension computing device
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082627A1 (en) * 2006-09-29 2008-04-03 Allen Stewart O Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation
KR20160051399A (ko) * 2014-11-03 2016-05-11 엘지전자 주식회사 이동 통신 시스템 및 그 제어 방법
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
KR20180054746A (ko) * 2016-01-15 2018-05-24 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102461918B1 (ko) 차량용 확장가능 컴퓨팅 아키텍처
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) 차량용 소프트웨어 제어 장치
JP7068455B2 (ja) 車両システムバスのための拡張可能マッピング
US20230007460A1 (en) Method and system for segmenting and transmiting data between computing devices and vehicle head units
US20230376307A1 (en) Streaming via hardware abstraction layer
US20200019415A1 (en) User terminal, user interface, computer program product, signal sequence, means of transport, and method for setting up a user interface of a means of transport
JP7344263B2 (ja) ユーザアカウントを意識したパーソナルエリアネットワークボンディング
KR20240028173A (ko) 앱 연동 클러스터 및 이의 제어 시스템 및 방법
KR102493290B1 (ko) 주 장치와 차량 헤드 유닛 간의 통신을 위한 전환 가능한 통신 전송
KR20110100926A (ko) 차량용 멀티미디어 장치 및 그 제어 방법
EP3882765A1 (en) Integration of vehicle manufacturer user management system with automotive operating system
JP7484746B2 (ja) 車両用装置、車両用システム
KR20240028172A (ko) 차량 클러스터 및 이의 제어 시스템 및 방법
CN117681654A (zh) 车辆显示方法、显示系统、电子设备及可读存储介质
WO2024044410A1 (en) Network management for vehicle operating systems

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant