KR20240065256A - 차량 데이터 액세스 - Google Patents

차량 데이터 액세스 Download PDF

Info

Publication number
KR20240065256A
KR20240065256A KR1020247009928A KR20247009928A KR20240065256A KR 20240065256 A KR20240065256 A KR 20240065256A KR 1020247009928 A KR1020247009928 A KR 1020247009928A KR 20247009928 A KR20247009928 A KR 20247009928A KR 20240065256 A KR20240065256 A KR 20240065256A
Authority
KR
South Korea
Prior art keywords
vehicle
data
network
vehicle data
streaming data
Prior art date
Application number
KR1020247009928A
Other languages
English (en)
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 KR20240065256A publication Critical patent/KR20240065256A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Small-Scale Networks (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

본 개시의 하나 이상의 측면은 차량과 관련된 데이터 통신의 구성 및 관리에 관한 것이다. 예시적인 예로서, 본 출원의 측면은 사용자에 의해 요청된 차량 데이터를 식별하고, 이를 사용자에게 제공하기 위해 식별된 차량 데이터에 액세스하는 것에 대응한다. 예시적으로, 차량 데이터 요청은 요청에서 정의된 대로 차량 데이터에 대한 요청을 특정할 수 있으며, 반환될 수 있는 데이터의 크기, 형식 또는 타입을 정의하는 임의의 사전 정의된 통신 카테고리로 한정되지 않는다. 차량 데이터는 복수의 차량에 의해 생성되거나 수집된 데이터를 포함할 수 있으며, 이에 한정되지는 않지만, 센서 및 프로세싱 컴포넌트들에 의해 이전에 수집되거나 생성된 정보의 로그들, 현재 차량 데이터, 또는 차량에 의해 수집된 제3자 데이터 등을 포함할 수 있다.

Description

차량 데이터 액세스
본 출원은 2021년 9월 15일에 출원된 차량 데이터 액세스(VEHICLE DATA ACCESS)라는 제목의 미국 임시 출원 63/244,657에 대한 우선권을 주장한다. 미국 임시 출원 63/244,657은 그 전체가 본 명세서에 참조로 포함된다.
일반적으로 설명되는 컴퓨팅 장치들(computing devices) 및 통신 네트워크들(communication networks)은 데이터 및/또는 정보를 교환하기 위해 이용될 수 있다. 흔한 애플리케이션(application)에서, 컴퓨팅 장치는 통신 네트워크를 통해 다른 컴퓨팅 장치로부터 콘텐츠를 요청할 수 있다. 예를 들면, 개인 컴퓨팅 장치에서의 사용자는 네트워크(예를 들면, 인터넷)를 통해 서버 컴퓨팅 장치로부터 컨텐츠 페이지(예를 들면, 네트워크 페이지, 웹 페이지 등)를 요청하기 위해 브라우저 애플리케이션(browser application)을 이용할 수 있다. 이러한 실시예들에서, 사용자 컴퓨팅 장치는 클라이언트 컴퓨팅 장치로 지칭될 수 있고, 서버 컴퓨팅 장치는 컨텐츠 제공자로 지칭될 수 있다. 다른 실시예에서, 사용자 컴퓨팅 장치는 정보를 수집 또는 생성할 수 있고, 수집된 정보를 추가 처리 및 분석하기 위해 서버 컴퓨팅 장치에 제공할 수 있다.
일반적으로 설명하면, 전기 자동차, 연소 엔진 차량, 하이브리드 차량 등과 같은 다양한 차량은 동작을 용이하게 하기 위해 사용자 특정 정보 또는 구성 정보로 구성될 수 있다. 특정 시나리오에서, 사용자는 근본적으로(substantially) 실시간 기반(real-time basis)으로 차량 성능 특성을 모니터링하거나 계산하기 위해, 동작 파라미터들(operation parameters), 센서 값들(sensor values) 또는 차량과 관련된 다른 정보와 같은 차량 데이터(vehicle data)에 액세스하기를 원할 수 있다. 전형적으로, 차량 데이터 액세스는 네트워크 대역폭(network bandwidth), 또는 차량 데이터에 액세스함에 있어 미리 정의된 규칙들에 의해 미리 정의된 양방향 데이터 통신 프로토콜과 같은 네트워크 성능(network performance)에 의해 한정될 수 있다.
본 개시는 특정 실시예들의 도면들을 참조하여 설명되며, 이는 본 개시를 예시하기 위한 것이지만, 본 개시를 한정하는 것은 아니다. 본 명세서에 통합되고 본 명세서의 일부를 구성하는 첨부된 도면들은 본 명세서에 개시된 개념들을 예시하기 위한 것이며 원래 축척으로 그려지지 않을 수 있다.
도 1은 본 출원의 하나 이상의 측면에 따라 차량 데이터 통신 액세스(vehicle data communication access)를 제공하기 위한 예시적인 환경의 블록도를 나타낸다.
도 2는 본 출원의 하나 이상의 측면에 따라 차량에 대응하는 환경을 예시한다.
도 3a는 본 출원의 측면들에 따라 차량 데이터 액세스 서비스(vehicle data access service)를 구현하기 위한 예시적인 아키텍처(architecture)를 나타낸다.
도 3b는 본 출원의 측면들에 따라 차량 데이터 프로세싱 컴포넌트(vehicle data processing component)를 구현하기 위한 예시적인 아키텍처를 나타낸다.
도 4는 도 1의 예시적인 환경의 블록도이다.
도 5는 하나 이상의 실시예에 따른 차량 데이터에 액세스하기 위한 차량 데이터 요청 생성 루틴(vehicle data request generation routine)을 설명하는 흐름도(flow chart)이다.
도 6은 하나 이상의 실시예에 따른 차량 데이터 요청을 처리하기 위한 차량 데이터 요청 처리 루틴(vehicle data request process routine)을 설명하는 흐름도이다.
일반적으로 설명되는 본 개시의 하나 이상의 측면은 차량들에 의해 제공되는 데이터의 구성 및 관리에 관한 것이다. 예시적인 예로서, 본 출원의 측면들은 동적으로 정의된 차량 데이터를 제공하는 데이터 통신들의 관리에 대응한다. 예시적으로, 차량 데이터는 차량 동작 정보(vehicle operational information), 차량 파라미터들, 센서 구성 정보(sensor configuration information), 센서 값들, 환경 정보 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
예시적인 실시예들에 따르면, 본 개시의 하나 이상의 측면은 서비스 기술자(service technician) 또는 다른 제3자(other third party)와 같은 인증되고 허가된 사용자(authenticated and authorized user)에게 제공되는 차량 데이터 통신들의 접근성과 관련된다. 예시적으로, 네트워크 서비스 제공자(network service provider)는 각각의 차량 데이터에 액세스하는 차량 소유자/사용자와 제3자 사이의 상호작용을 용이하게 한다. 네트워크 서비스 제공자는 차량 데이터에 액세스하기 위한 초기 허가(initial authorization)를 용이하게 하고, 인증되고 허가된 사용자들에게 차량 데이터에 대한 액세스를 제공하며, 차량 데이터 액세스 권한들의 철회(revocation)를 관리할 수 있다.
일부 실시예에서, 컴포넌트들(components)에 의해 제공되는 차량 데이터는 컨트롤러, 로직 유닛, 프로세서 등이 센서 정보를 처리하고, 하나 이상의 카메라 센서로부터 입력을 이용할 수 있고 페시아(fascia)에 물체/장애물의 축적을 촉진하는 환경 조건의 식별에 대응하는 출력을 제공(예를 들어, 로우 카메라 이미지 데이터의 처리 및 원시 카메라 이미지 정보의 처리에 대응하는 출력의 생성) 할 수 있는 비전 시스템(vision system)과 같은 추가 정보를 생성한 처리된 데이터(processed data)를 포함할 수 있다. 카메라 센서는 히터 소자(heater element)와 관련된 센서 컴포넌트(sensor component)일 수 있다. 다른 실시예들에서, 카메라 센서는 비-카메라(non-camera) 센서 컴포넌트들 또는 다수의 카메라 센서들을 가지는 차량들과 같이 센서 컴포넌트들과 분리될 수 있다. 또 다른 예에서, 제어 컴포넌트(control component)는 포지셔닝 시스템들(positioning systems), 캘린더링 시스템들(calendaring systems), 또는 시간 기반 시스템들(time-based systems)로부터 획득되거나 그렇지 않으면 연관된 추가 정보(additional information)를 이용할 수 있다. 또 다른 예에서, 이력 정보(historical information)는 제어 컴포넌트에 대한 별도의 정보 소스(separate information source)로서 통합될 수 있거나, 검출된 차량 속도(detected vehicle speed), 외부 온도 측정, 및 윈드실드 와이퍼(windshield wiper)의 동작 상태, 비전 시스템(예를 들어, 카메라 입력), 위치 시스템들(예를 들어, GPS 시스템), 시간 정보, 레이더 컴포넌트들(radar components)의 동작 상태 등과 같은 정보 소스들의 집합(set of information sources)의 적어도 일부분을 처리하는 데 이용될 수 있다. 일부 실시예들에서, 컴포넌트들에 의해 제공되는 정보는 고해상도 또는 저해상도 또는 고해상도와 저해상도 이미지의 조합 및/또는 비디오 스트리밍 데이터를 포함할 수 있다.
일반적으로 설명하면, 차량 정보에 대한 데이터 액세스에 대한 종래의 접근 방식들은 일반적으로 단순 원격 진단 데이터 또는 다운샘플링된 센서 정보(downsampled sensor information)와 같이 감소된 품질(reduced quality)/저대역폭(low bandwidth) 전송들에 따라 연속적으로 차량 데이터가 제공될 수 있는 애플리케이션들에만 한정되었다. 다른 애플리케이션들에서, 원격 서비스는 데이터 액세스를 위한 미리 결정된 형식 및 프로토콜에 기초하여 차량 데이터에 액세스하도록 한정될 수 있다. 예를 들어, 차량은 미리 정의된, 구조화된 메시지들 또는 메시지 유형들의 집합에 따라 데이터를 수집하고 제공하도록 구성될 수 있다. 다른 예에서, 차량 데이터는 사용자에 의해 요청된 데이터의 일부에 액세스하기 위해 추가로 처리될 필요가 있을 수 있다. 이 예에서, 이 데이터 처리는 사용자에 의해 차량 데이터를 액세스하는 데 지연 시간(latency)을 유발할 수 있다. 또한, 다른 예에서, 차량 데이터는 한정된 네트워크 대역폭으로 인해 사용자에 의해 액세스되도록 다운샘플링될 필요가 있을 수 있다. 이러한 접근 방식들은 수집된 데이터의 유형들을 한정하거나 그렇지 않으면 요청에 응답하는 차량에 의해 제공될 수 있는 데이터의 품질을 한정하는 데에 결함이 있다.
상술한 비효율성들의 적어도 일부를 해결하기 위해, 네트워크 서비스 제공자는 동적으로 요청된 차량 정보의 전송을 용이하게 하기 위해 선택된 차량과 원격 서비스 사이의 데이터 통신들의 전송을 용이하게 할 수 있다. 차량은 네트워크 서비스 제공자와 양방향 통신들을 설정할 수 있는 네트워크 통신 기능을 포함할 수 있다. 차량 내의 게이트웨이 컴포넌트(gateway component)는 네트워크 서비스 제공자들로부터 데이터 통신 요청들(data communication requests)을 수신하기 위한 처리 기능을 포함한다. 예시적으로, 데이터 통신 요청은 요청에서 정의된 바와 같이 차량 데이터에 대한 요청을 특정할 수 있고, 반환될 수 있는 데이터의 크기(size), 형식(format) 또는 유형(type)을 정의하는 임의의 미리 정의된 통신 카테고리들로 한정되지 않는다. 따라서, 본 발명의 측면들은 차량과 네트워크 서비스 제공자 사이의 반응형(responsive), 전체 해상도(full resolution) 데이터 전송들을 용이하게 하기 위한 게이트웨이에 대한 기능과 관련된다. 네트워크 서비스 제공자는 가용한 대역폭 및 네트워크 품질 파라미터들에 기초하여 차량에 대한 통신 주파수를 더 모니터링하고 업데이트할 수 있다. 예를 들어, 네트워크 서비스 제공자는 통신 네트워크 조건들이 성능 임계치들을 충족하지 않거나 초과하지 않는 경우 고대역폭 데이터에 대한 데이터 요청들을 측정(meter)할 수 있다.
다양한 측면들이 예시적인 실시예들 및 특징들의 조합에 따라 설명될 것이지만, 관련 기술 분야에서 통상의 지식을 가진 자는 그 예들 및 특징들의 조합이 본질적으로 예시적인 것이고 한정적으로 해석되어서는 안 된다는 것을 이해할 것이다. 보다 구체적으로, 본 출원의 측면들은 다양한 유형들의 차량 데이터 또는 차량 프로세스들(vehicle processes)에 적용될 수 있다. 그러나, 관련 기술 분야에서 통상의 지식을 가진 자는, 본 출원의 측면들이 임의의 특정 유형의 차량 데이터, 데이터 통신들 또는 제3자들, 사용자(예를 들어, 운전자), 네트워크 시스템 관리자, 및 네트워크 서비스 제공자 사이의 예시적인 상호작용에 대한 적용으로 반드시 한정되지 않는다는 것을 이해할 수 있을 것이다. 또한, 차량 데이터의 교환을 용이하게 하고 효율적인 방식으로 데이터 전송들의 선택된 맞춤화(selected customization)를 제공하기 위해, 본 출원의 하나 이상의 측면은 차량 정보가 예시적인 통신 프로토콜들에 따라 전송되는 예시적인 데이터 구조/조직에 더 대응한다. 이러한 상호 작용이 한정적으로 해석되어서는 안 된다.
도 1은 본 출원의 하나 이상의 측면에 따라 차량 데이터 통신 액세스를 제공하기 위한 예시적인 환경(100)의 블록도를 도시한다. 환경(100)은 네트워크, 차량들의 집합(110)을 연결하는 네트워크, 네트워크 서비스 제공자(120) 및 하나 이상의 컴퓨팅 장치(130)를 포함할 수 있다. 컴포넌트들은 별개의 독립형(stand-alone) 외부 컴퓨팅 장치들일 수 있는 하나 이상의 외부 컴퓨팅 장치에 의해 구현되거나 실행되는 소프트웨어 모듈들(software modules)에 대응할 수 있다. 따라서, 네트워크 서비스 제공자(120)의 컴포넌트들은 서비스의 논리적 표현(logical representation)으로서 고려되어야 하며, 하나 이상의 외부 컴퓨팅 장치에 대한 임의의 특정한 구현을 요구하지 않는다.
도 1에 도시된 바와 같이, 컴퓨팅 장치(130)는 데스크탑(desktop), 노트북(laptop), 개인용 컴퓨터(personal computer), 태블릿 컴퓨터(tablet computer), 웨어러블 컴퓨터(wearable computer), 서버(server), PDA(Personal Digital Assistant), 하이브리드 PDA/휴대폰, 휴대폰, 스마트폰, 셋톱 박스(set-top box), 음성 명령 장치(voice command device), 디지털 미디어 플레이어 등과 같은 임의의 컴퓨팅 장치일 수 있다. 컴퓨팅 장치(130)는 사용자가 본 명세서에 설명된 바와 같이 대화식 사용자 인터페이스들(interactive user interfaces)에 액세스하고, 이미지들, 분석들, 집계된 데이터 및/또는 본 명세서에서 설명된 바와 같은 것들을 볼 수 있게 하는 애플리케이션(예컨대, 브라우저, 독립형 애플리케이션 등)을 실행할 수 있다. 예시적인 실시예로서, 컴퓨팅 장치(130)는 차량 데이터의 적어도 일부에 대한 액세스를 필요로 하는 사용자에 의해 이용되는 컴퓨팅 장치에 대응한다. 예를 들어, 사용자는 관리자, 개발자, 서비스 기술자, 차량 운전자 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 설명되는 바와 같이, 사용자는 컴퓨팅 장치(130)를 이용하여, 본 명세서에서 설명된 바와 같은 차량 데이터의 일부에 대한 액세스를 요청할 수 있다. 일부 실시예들에서, 컴퓨팅 장치(130)는 차량(110)의 기능으로서 차량(110)에 구현될 수 있다. 예를 들어, 차량(110)은 차량의 프로세서들 및 메모리와 같은 차량의 리소스들을 이용함으로써 컴퓨팅 장치(130)에 구현된 기능들을 수행할 수 있다.
도 1에 도시된 바와 같이, 네트워크(150)는 차량들(110), 컴퓨팅 장치들(130) 및 네트워크 서비스 제공자(120)를 연결한다. 네트워크(150)는 임의의 수의 장치를 연결할 수 있다. 일부 실시예들에서, 네트워크 서비스 제공자(120)는 네트워크를 통해 컴퓨팅 장치들에 네트워크 기반 서비스들(network-based services)을 제공한다. 네트워크 서비스 제공자는 네트워크 기반 서비스들을 구현하며, 네트워크 서비스 제공자는 가상화(virtualized) 또는 베어메탈(bare-metal)일 수 있는 네트워크 액세스 가능한 컴퓨팅 리소스들(network-accessible computing resources)(예: 계산(compute), 저장(storage) 또는 네트워킹 리소스, 애플리케이션 또는 서비스)의 대규모 공유 풀(large, shared pool)을 지칭한다. 네트워크 서비스 제공자는 사용자 명령들에 따라 프로그래밍 방식으로 공급되고(provisioned) 해제될(released) 수 있는 구성 가능한(configurable) 컴퓨팅 리소스들의 공유 풀에 대한 온디맨드(on-demand) 네트워크 액세스를 제공할 수 있다. 이러한 컴퓨팅 리소스들은 가변 부하(variable load)에 맞게 동적으로 공급되고 재구성될 수 있다. 따라서 "클라우드 컴퓨팅" 또는 "네트워크 기반 컴퓨팅"의 개념은 네트워크를 통해 서비스로 제공되는 애플리케이션들 및 이러한 서비스들을 제공하는 네트워크 서비스 제공자의 하드웨어 및 소프트웨어 모두로 간주될 수 있다.
네트워크(160)는 예를 들어, 하나 이상의 직접 통신 채널들(direct communication channels), 근거리 네트워크(local area network), 광역 네트워크(wide area network), 개인 영역 네트워크 및/또는 인터넷과 같은 유선 및/또는 무선 네트워크들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 차량(110)과 컴퓨팅 장치(130) 사이의 통신은 블루투스, BLE(Bluetooth Low Energy), 및/또는 NFC(Near Field Communications)와 같은 근거리 통신 프로토콜을 통해 수행될 수 있다. 차량(110)과 네트워크 서비스 제공자(120) 사이의 통신은, 인터넷을 통해 네트워크 서비스 제공자(120)와 보안 통신하는 근거리 네트워크와 같은 하나 이상의 보안 네트워크(secured networks)와 같은 네트워크(150)를 통해 이루어질 수 있다. 그러나, 네트워크(150, 160)는 동일한 통신 프로토콜들, 서비스들, 하드웨어 등의 일부 또는 전부를 포함할 수 있다. 따라서, 본 명세서에서의 논의가 네트워크(160)를 통한 차량(110)과 컴퓨팅 장치(130) 사이의 통신 및 네트워크(150)를 통한 차량(110)과 네트워크 서비스 제공자(120) 사이의 통신을 설명할 수 있지만, 장치들 간의 통신들은 이러한 방식으로 한정되지 않는다. 본 명세서에서 논의되는 다양한 통신 프로토콜들은 단지 예시들일 뿐이며, 본 출원은 이에 한정되지 않는다. 일부 실시예들에서, 차량들(110)과 네트워크 서비스 제공자(120)는 네트워크(150)를 통해 양방향으로 통신할 수 있다. 일부 실시예들에서, 차량들(110) 및 컴퓨팅 장치(130)는 네트워크(160)를 통해 양방향으로 통신할 수 있다. 일부 실시예들에서, 컴퓨팅 장치(130)와 네트워크 서비스 제공자(120)는 네트워크(150)를 통해 양방향으로 통신할 수 있다.
예시적으로, 차량들(110)의 집합은 차량(110) 내의 전기적 컴포넌트들(electrical components)로부터 생성된 데이터를 저장하기 위한 데이터 저장부로 구성된 하나 이상의 차량에 대응한다. 예를 들어, 데이터는 차량에 설치된 센서들로부터 생성된 로그 데이터, 엔진 오일 데이터, 냉각수 온도(coolant temperature), 주행 거리(milage), 산소, 다양한 센서의 노킹 정보(knocking information) 등 차량 동작과 관련된 임의의 처리된 데이터를 포함할 수 있다. 데이터는 또한 진단 데이터(diagnosed data), 자동 주행(automated driving)(예를 들어, 자율 주행(self-driving)) 관련 데이터를 포함할 수 있다. 일실시예에서, 데이터는 외부 장치로부터 수신될 수 있다. 예시로서, 차량(110)은 차량에 통합되거나 부품을 형성하는 것으로 간주될 수 있는 컴퓨팅 장치들을 포함할 수 있다. 다른 실시예들에서, 사용자들은 또한 차량과 연관된 것으로 간주될 수 있는 모바일 장치들과 같은 추가 컴퓨팅 장치들을 가질 수 있으며, 여기에는 차량에 테더링되거나 차량에 근접한 모바일 장치들을 포함한다. 본 출원의 목적상, 컴퓨팅 장치는 일반적으로 이러한 실시예들 중 하나 또는 그 변형들 중 하나로 해석될 것이다.
예시적으로, 네트워크 서비스 제공자(120)는 본 출원의 측면들에 적용된 바와 같이 기술자를 인증하는 것에 반응하는 기능을 제공할 수 있는 차량 데이터 액세스 서비스(112)를 포함할 수 있다. 네트워크 서비스 제공자(120)는 본 출원의 측면들과 관련된 차량 진단 결과들을 저장하기 위한 하나 이상의 데이터 저장부를 포함할 수 있다. 도 1의 차량 데이터 액세스 서비스(112) 및 데이터 저장소(114)는 본질적으로 논리적이며, 네트워크 서비스 제공자(120)에서 다양한 방식들로 구현될 수 있다.
도 2는 차량(110)이 네트워크(150) 연결을 통해 네트워크 서비스 제공자(120)와 통신하는 환경을 예시한다. 차량(110)은 복수의 통신 매체들 및 통신 프로토콜들 중 하나를 통해 상호작용을 용이하게 하는 하드웨어 및 소프트웨어를 포함하는 통신 기능을 포함할 수 있다. 보다 구체적으로, 차량(110)은 동작 파라미터들, 센서 값들, 또는 차량과 관련된 다른 정보와 같은 차량 데이터를 획득, 생성 및 유지하기 위한 복수의 센서들(202), 컴포넌트들(204) 및 차량 데이터 저장소(206)를 포함할 수 있다. 예를 들어, 데이터는 차량에 설치된 센서들로부터 생성된 로그 데이터, 엔진 오일 데이터, 냉각수 온도, 주행 거리, 산소, 다양한 센서들의 노킹 정보 등과 같은 차량 동작과 관련된 임의의 처리된 데이터를 포함할 수 있다. 데이터는 또한 진단 데이터, 자동 주행(예를 들어, 자율 주행) 관련 데이터를 포함할 수 있다. 일부 실시예에서, 컴포넌트(204)에 의해 제공되는 차량 데이터는 컨트롤러, 로직 유닛, 프로세서 등이 센서 정보를 처리하고, 하나 이상의 카메라 센서로부터 입력을 이용할 수 있고 페시아에 물체/장애물의 축적을 촉진하는 환경 조건의 식별에 대응하는 출력을 제공(예를 들어, 로우 카메라 이미지 데이터의 처리 및 원시 카메라 이미지 정보의 처리에 대응하는 출력의 생성) 할 수 있는 비전 시스템과 같은 추가 정보를 생성한 처리된 데이터를 포함할 수 있다. 센서들(202)은 차량 동작 상태, 환경 상태 또는 기타 정보를 결정하기 위한 비전 시스템들과 연관된 카메라 센서들일 수 있다. 다른 실시예들에서, 카메라 센서들은 비-카메라 센서 컴포넌트들 또는 다수의 카메라 센서들을 갖는 차량들과 같이 센서들(202)과 분리될 수 있다. 또 다른 예에서, 컴포넌트들(204)은 포지셔닝 시스템들, 캘린더링 시스템들, 또는 시간 기반 시스템들로부터 획득되거나 그렇지 않으면 연관된 추가 정보를 이용할 수 있는 제어 컴포넌트(control component)를 포함할 수 있다. 또 다른 예에서, 이력 정보는 제어 컴포넌트에 대한 별도의 정보 소스로서 통합될 수 있거나, 검출된 차량 속도, 외부 온도 측정, 및 윈드실드 와이퍼의 동작 상태, 비전 시스템(예를 들어, 카메라 입력), 위치 시스템들(예를 들어, GPS 시스템), 시간 정보, 레이더 컴포넌트들의 동작 상태 등과 같은 정보 소스들의 집합의 적어도 일부분을 처리하는 데 이용될 수 있다.
일 측면에서, 센서들(202)은 물체들의 검출, 검출된 물체들의 속성들(예를 들어, 위치, 속도, 가속도), 환경 조건들(예를 들어, 눈, 비, 얼음, 안개, 연기 등)의 존재 등과 같은 입력들을 차량(110)에 제공하는 비전 시스템들을 포함할 수 있다. 일부 실시예들에서, 차량들(110)은 다른 종래의 검출 시스템의 도움 없이 또는 그 대신에 정의된 차량 동작 기능을 위해 이러한 비전 시스템들에 의존할 수 있다.
또 다른 측면에서, 센서들(202)은 차량에 대한 포지셔닝 정보를 결정함에 있어서 다양한 수준의 정확도를 허용하는 외부 소스들로부터 참조 정보(reference information)를 획득할 수 있는 하나 이상의 포지셔닝 시스템을 포함할 수 있다. 예를 들어, 포지셔닝 시스템들은 GPS 소스들, WLAN(Wireless Local Area Networks) 액세스 포인트 정보 소스들(access point information sources), 블루투스 정보 소스들, RFID(radio-frequency identification) 소스들 등으로부터 정보를 처리하기 위한 다양한 하드웨어 및 소프트웨어 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 포지셔닝 시스템들은 다수의 소스들로부터 정보의 조합들을 얻을 수 있다. 예시적으로, 포지셔닝 시스템들은 다양한 입력 소스들로부터 정보를 획득하고 차량에 대한 포지셔닝 정보, 특히 현재 위치에서의 고도(elevation)를 결정할 수 있다. 다른 실시예들에서, 포지셔닝 시스템들은 또한 이동 방향, 속도, 가속도 등과 같은 이동 관련 동작 파라미터들(travel-related operational parameters)을 결정할 수 있다. 포지셔닝 시스템은 자율 주행 애플리케이션들, 향상된 주행 또는 사용자 보조 네비게이션 등을 포함하는 여러 목적들을 위해 차량의 일부로서 구성될 수 있다. 예시적으로, 포지셔닝 시스템들은 다양한 차량 파라미터들 또는 처리 정보의 식별을 용이하게 하는 프로세싱 컴포넌트들 및 데이터를 포함할 수 있다.
또 다른 측면에서, 센서들(202)은 네비게이션 관련 정보를 식별하기 위한 하나 이상의 네비게이션 시스템을 포함할 수 있다. 예시적으로, 네비게이션 시스템들은 포지셔닝 시스템들로부터 포지셔닝 정보를 획득하고, 고도, 도로 등급 등과 같은 식별된 위치에 대한 특성들 또는 정보를 식별할 수 있다. 네비게이션 시스템들은 또한 다차선 도로에서 차량 사용자에게 제공되거나 예상되는 방향에 기초하여 제안되거나 의도된 차선 위치들을 식별할 수 있다. 위치 시스템들과 유사하게, 내비게이션 시스템은 자율 주행 애플리케이션들, 향상된 주행 또는 사용자 보조 네비게이션 등을 포함하는 여러 목적들을 위해 차량의 일부로서 구성될 수 있다. 네비게이션 시스템들은 포지셔닝 시스템들과 결합되거나 통합될 수 있다. 예시적으로, 포지셔닝 시스템들은 다양한 차량 파라미터들 또는 처리 정보의 식별을 용이하게 하는 프로세싱 컴포넌트들 및 데이터를 포함할 수 있다.
로컬 리소스들은 차량 또는 차량에 의해 액세스 가능한 컴퓨팅 장치(예를 들어, 모바일 컴퓨팅 장치) 상에 호스팅될 수도 있는 하나 이상의 프로세싱 컴포넌트(220)를 더 포함할 수 있다. 프로세싱 컴포넌트(들)(220)는 예시적으로 다양한 로컬 센서들로부터 입력들에 액세스하고, 입력된 데이터를 처리하고, 처리된 데이터를 저장할 수 있다. 본 출원의 목적들을 위해, 프로세싱 컴포넌트(들)(220)는 예시적인 측면들과 관련된 하나 이상의 기능과 관련하여 설명될 것이다. 예를 들어, 차량(110) 내의 프로세싱 컴포넌트(들)(220)는 인가된 기술자들로부터의 요청에 대응하는 데이터 집합을 수집하고 전송할 것이다.
환경은 하나 이상의 동작 상태에 따라 사용하기 위한 다양한 동작 파라미터들에 관한 정보를 제공하기 위해 동작 가능한 다양한 추가 센서 컴포넌트들 또는 센싱 시스템들을 더 포함할 수 있다. 환경은 통신 출력을 통한 데이터의 전송, 메모리 내 데이터의 생성, 다른 프로세싱 컴포넌트들로의 출력들의 전송 등과 같이 출력들을 처리하기 위한 하나 이상의 제어 컴포넌트를 더 포함할 수 있다.
일부 실시예들에서, 프로세싱 컴포넌트(220)는 게이트웨이(208) 및 마이크로컨트롤러 유닛(MCU)(210)을 포함할 수 있다. 일부 실시예들에서, 게이트웨이(208)는 센서들(202), 컴포넌트들(204), 및 차량 데이터 저장소(206)로부터 및/또는 이들로 데이터를 수신 및/또는 전송하도록 구성될 수 있다. 이러한 실시예들에서, 게이트웨이(208)는 차량 통신 버스(vehicle communication bus)를 통해 센서들(202), 컴포넌트들(204), 및 차량 데이터 저장소(206)에 연결된다. 일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는 이더넷(ethernet)을 통해 연결된다. 일부 실시예들에서, MCU(210)는 네트워크(150)를 통해 차량(110)과 네트워크 서비스 제공자(120)를 연결하도록 구성될 수 있다. 일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는, 개별적으로 또는 조합되어, 차량(110)과 네트워크 서비스 제공자(120) 사이의 보안 흐름(security flow)을 제공할 수 있다. 일부 실시예들에서, MCU(210)는 네트워크 서비스 제공자(120)로부터 하나 이상의 명령을 수신하고, 게이트웨이(208)에서 사용될 수 있도록 명령들을 변환할 수 있으며, 이에 따라 MCU(210)는 네트워크 서비스 제공자(120)로부터 명령 또는 요청을 수신한 이후에, 네트워크 서비스 제공자로부터 수신된 명령 또는 요청에 기초하여 차량 데이터의 일부를 처리하도록 게이트웨이에 대한 명령을 생성할 수 있다. 예를 들어, 네트워크 서비스 제공자(120)는 특정 이벤트와 관련된 비디오 또는 이미지 스트리밍 데이터를 요청할 수 있다. 이 예에서, MCU(210)는 요청을 수신하고 네트워크 서비스 제공자(120)로부터의 요청에 대응하는 차량 데이터를 검색하기 위해 게이트웨이(208)에 사용될 다른 명령을 생성할 수 있다.
일부 실시예들에서, 보안 연결을 설정하기 위해, 랜덤 보안 키(ramdom security key)가 네트워크 서비스 제공자(120)로부터 제공되는데, 여기서 랜덤 보안 키는 단 한 번의 연결 시도에 대해서만 유효하고 설정된 기간 내에 만료된다. 이 예에서, MCU(210)는 랜덤 보안 키를 판독하고 게이트웨이(208)로 코드를 전송할 수 있다. 일부 실시예들에서, 게이트웨이(208)는 UDP(User Datagram Protocol)와 같은 인터넷 프로토콜을 이용하여 차량 데이터를 네트워크 서비스 제공자(120)에게 전송할 수 있다. 따라서, 차량 데이터는 실시간(real-time) 또는 거의 실시간으로 네트워크 서비스 제공자(120)에게 전송될 수 있다.
일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는 MCU(210)가 네트워크 서비스 제공자(120)로 스트리밍되는 특정 메시지 집합을 요청할 수 있게 하는 UDP-기반 애플리케이션 프로그래밍 인터페이스(API)를 정의한다. 이 메시지 집합은 차량에 특정적일 수 있고, 어떤 메시지가 스트리밍될 필요가 있는지 게이트웨이(208)에 알려주는 (버스 ID, 메시지 ID) 식별자들(identifiers) 쌍을 포함한다. 그 후, 게이트웨이(208)는 이더넷을 통해 이러한 메시지를 일정한 간격으로(예를 들어, 10밀리초마다) MCU(210)로 전달한다. 일부 실시예들에서, 이 API는 또한 메시지들을 편집하는 것을 허용하는데, 이는 스트림을 재시작(restart) 할 필요 없이 스트리밍 메시지들을 요청하거나 제거할 수 있게 한다.
네트워크(150)는 본 명세서에 설명된 바와 같이 선택된 개별 차량들과의 상호작용을 용이하게 할 수 있는 차량 데이터 액세스 서비스(112)를 호스팅하도록 동작할 수 있는 하나 이상의 컴퓨팅 장치(130)에 예시적으로 대응한다. 네트워크 서비스 제공자(120)는 본 명세서에 설명된 바와 같이 수신된 차량 데이터 또는 차량들과의 인터페이스를 위한 구성 정보를 유지하기 위한 하나 이상의 데이터 저장소(114)를 더 포함할 수 있다. 네트워크 서비스 제공자(120)는 단순화된 논리적 형태로 표현될 수 있으며, 네트워크 기반 서비스와 연관된 기능을 제공하기 위해 구현될 수 있는 모든 물리적 소프트웨어 및 하드웨어 컴포넌트들을 반영하지는 않는다.
이제 도 3a를 참조하면, 네트워크 서비스 제공자(120) 상에 차량 데이터 액세스 서비스(112)를 구현하기 위한 예시적인 아키텍처가 설명될 것이다. 차량 데이터 액세스 서비스(112)는 차량과 양방향으로 통신함으로써 차량 데이터를 처리 및 저장하고 차량 데이터에 대한 액세스를 요청하는 것과 관련된 기능을 제공할 수 있는 컴포넌트들/시스템들의 일부일 수 있다.
도 3a의 아키텍처는 본질적으로 예시적인 것이며, 프로세싱 컴포넌트에 대한 임의의 특정 하드웨어 또는 소프트웨어 구성을 요구하는 것으로 해석되어서는 안 된다. 도 3a에 도시된 차량 데이터 액세스 서비스(112)의 일반적인 아키텍처는 본 개시의 측면들을 구현하는 데 사용될 수 있는 컴퓨터 하드웨어 및 소프트웨어 컴포넌트들의 배열(arrangement)을 포함한다. 도시된 바와 같이, 프로세싱 컴포넌트는 프로세싱 유닛(302), 네트워크 인터페이스(308), 컴퓨터 판독 가능한 매체(computer readable medium)(306), 및 입/출력 장치 인터페이스(304)를 포함하며, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다. 프로세싱 컴포넌트의 컴포넌트들은 하나 이상의 회로 및 소프트웨어 모델을 포함할 수 있는 물리적 하드웨어 컴포넌트들일 수 있다.
네트워크 인터페이스(308)는 도 1의 네트워크들(150, 160)과 같은 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결을 제공할 수 있다. 따라서, 프로세싱 유닛(302)은 네트워크를 통해 다른 컴퓨팅 시스템들 또는 서비스들로부터 정보 및 명령어들(instructions)을 수신할 수 있다. 프로세싱 유닛(302)은 또한 메모리(310)와 통신할 수 있고, 입/출력 장치 인터페이스를 통해 출력 정보를 더 제공할 수 있다. 일부 실시예들에서, 차량 데이터 액세스 서비스(112)는 도 3a에 도시된 것보다 더 많은(또는 더 적은) 컴포넌트들을 포함할 수 있다.
메모리(310)는 하나 이상의 실시예를 구현하기 위해 프로세싱 유닛(302)이 실행하는 컴퓨터 프로그램 명령어들을 포함할 수 있다. 메모리(310)는 일반적으로 RAM, ROM 또는 다른 영구적(persistent) 또는 비일시적(non-transitory) 메모리를 포함한다. 메모리(310)는 차량 데이터 액세스 서비스(112)의 일반적인 관리 및 동작에 있어서 프로세싱 유닛(302)에 의한 사용을 위한 컴퓨터 프로그램 명령어들을 제공하는 운영 시스템(operating system)(312)를 저장할 수 있다. 메모리(310)는 본 개시의 측면들을 구현하기 위한 컴퓨터 프로그램 명령어들 및 다른 정보를 더 포함할 수 있다. 예를 들어, 일 실시예에서, 메모리(310)는 데이터 요청 컴포넌트(data request component)(314)를 포함한다. 데이터 요청 컴포넌트는 일반적으로 스트리밍 데이터 요청 컴포넌트(streaming data request component)라고도 지칭될 수 있다. 일부 실시예들에서, 데이터 요청 컴포넌트(314)는 선택된 차량으로부터 요청될 요청된 차량 정보를 식별할 수 있다. 요청된 차량 정보는 스트리밍 데이터 요청일 수 있다. 예시적으로, 사용자는, 모바일 클라이언트 또는 다른 컴퓨팅 장치를 통해, 차량으로부터 데이터를 요청하는 데 이용하기 위한 프로파일 및 구조화된 데이터를 구성한다. 예시적으로, 사용자는 차량 데이터의 전송에 이용되는 정보 및 특정 파라미터들/규칙들을 요청하기 위한 프로파일을 생성할 수 있는 권한을 제공할 수 있다. 이는 네트워크 서비스 제공자에서 관리되는 차량의 지정된 시간 구간(specified duration), 차량 데이터 선택을 위한 규칙들의 사양(specification), 요청들의 처리 등에 관한 파라미터들을 포함할 수 있다. 파라미터들의 일부는 또한 특정 차량과의 공유 요청 시에도 특정될 수 있다. 본 출원의 측면들은 동적으로 차량 데이터를 요청하는 것에 대응하며, 임의의 특별히 미리 정의되거나 표준화된 정보 집합(예를 들어, 고정 메시지들)에 한정되지 않는다. 사용자는 일부 실시예들에 따라 선택을 위해 미리 정의된 템플릿들을 이용할 수 있지만, 미리 정의된 템플릿들(templates)을 추가로 편집, 보완 또는 변경할 수 있다.
메모리(310)는 네트워크 요청 컴포넌트(316)를 더 포함할 수 있다. 네트워크 요청 컴포넌트(316)는 네트워크 대역폭, 또는 차량 데이터에 액세스함에 있어 미리 정의된 규칙들에 의해 미리 정의된 양방향 데이터 통신 프로토콜과 같은 네트워크 성능 정보를 수집할 수 있다. 일부 실시예들에서, 네트워크 요청 컴포넌트(316)는 차량과의 통신을 시작하는 시점(timing of initiating a communication)을 식별할 수 있다. 통신을 시작하는 시점은 차량으로부터 차량 데이터에 대한 요청들이 있는 시점일 수 있다. 일부 실시예들에서, 네트워크 요청 컴포넌트(316)는 차량 데이터에 대한 요청들을 시작하는 시점, 어떤 차량 데이터가 요청되는지 등을 결정하기 위해 네트워크 성능 정보를 모니터링할 수 있다. 예를 들어, 네트워크 요청 컴포넌트(316)는 언제 차량 데이터 요청들이 시작되는지 결정하기 위해 수집된 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 네트워크 요청 컴포넌트(316)는 더 높은 우선 순위 정보를 선택하는 것과 같이 품질이 낮은(상대적) 네트워크 조건들의 시간 동안 서로 다른 요청된 정보 중에서 선택하거나 필터링하기 위해 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 네트워크 요청 컴포넌트(316)는 네트워크 조건들이 품질에서 더 높은 변동성을 경험하거나 악화되는 조건들(deteriorating conditions)을 경험하는 것으로 특징지어질 수 있는 시나리오들에서 데이터 전송을 위한 간격(spacing) 또는 다른 시점(timing)을 구현할 수 있다. 예시적으로, 네트워크 성능 정보는 가용한 대역폭(available bandwidth), 지연 시간 측정치들(latency measurements), 전송 오류율들(transmission error rates) 등을 포함할 수 있지만, 이에 한정되지 않는다.
메모리(310)는 차량 프로세싱 컴포넌트(vehicle processing component)(318)를 더 포함할 수 있다. 일부 실시예들에서, 차량 프로세싱 컴포넌트(318)는 UDP 기반 차량 데이터 요청을 예시적으로 전송할 수 있다. 예시적으로, UDP 기반 전송들은 오류 확인 및 복구 서비스들이 필요하지 않은 비연결 인터넷 프로토콜(connectionless Internet protocol)에 대응한다. 예시적인 실시예에 따르면, UDP에 기초한 전송은 다른 프로토콜들에 비해 "더 빠른" 것으로 특징지어질 수 있는데, 그 이유는 UDP가 연결 시작(opening a connection), 접속 유지(maintaining a connection), 또는 요청 종료(terminating request)와 관련된 추가적인 지연 시간들을 요구하지 않기 때문이다. 이에 비해 TCP(Transmission Control Protocol)는 오류들을 확인하고 데이터가 보내진 순서대로 전달되도록 보장하는 시스템들이 내장된 연결 지향 프로토콜(connection-oriented protocol)에 해당한다. UDP 기반 메시징은 일반적으로 누락된 데이터 패킷들의 재전송이나 데이터 순차 전달을 위한 기능을 포함하지 않는다. 본 출원의 측면들이 UDP 기반 통신들에 대한 선호와 관련되지만, 대안적인 실시예들에서, 차량 프로세싱 컴포넌트(318)는 TCP 기반 메시지들을 포함하는 다른 통신 프로토콜들을 이용할 수 있다. 어떤 실시예들에서, 차량 프로세싱 컴포넌트(318)는 차량으로부터 차량 정보 또는 데이터를 수신한 이후에 사후 프로세싱(post processing)을 수행할 수 있다. 예를 들어, 차량 프로세싱 컴포넌트(318)는 요청된 차량 동작 파라미터들, 상태 등을 결정하기 위해서와 같이, 반응형 데이터를 수신할 수 있고 수신된 UDP 패킷들을 분석한다. 일부 실시예들에서, 차량 프로세싱 컴포넌트(318)는 네트워크 조건들을 업데이트하기 위해 전송된 패킷들의 속성들을 이용할 수 있다.
메모리(310)는 데이터 암호화 컴포넌트(data encryption component)(320)를 더 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 장치(130)는 마스터 데이터 키(master data key) 없이 암호화된 키들 및 암호화된 데이터를 차량 데이터 액세스 서비스(112)에 전송할 수 있다. 이러한 실시예들에서, 데이터 암호화 컴포넌트(320)는 공유에 이용하기 위해 암호화된 정보를 유지한다. 일부 실시예들에서, 보안 연결을 설정하기 위해, 랜덤 보안 키(random security key)가 컴퓨팅 장치(130)를 통해 사용자로부터 데이터 암호화 컴포넌트(320)로 제공되며, 랜덤 보안 키는 단 한 번의 연결 시도에 대해서만 유효하고 설정된 기간 내에 만료된다. 이러한 실시예들에서, 차량 데이터 액세스 서비스(112)는 랜덤 보안 키를 판독할 수 있다.
이제 도 3b를 참조하여, 차량(110)에서 프로세싱 컴포넌트를 구현하기 위한 예시적인 아키텍처를 설명한다. 프로세싱 컴포넌트(220)는 차량 데이터를 처리 및 저장하고, 사용자의 승인된 정보를 수신함으로써 사용자에게 저장된 데이터에 대한 액세스를 제공하는 것과 관련된 기능을 제공할 수 있는 컴포넌트들/시스템들의 일부일 수 있다. 사용자는 관리자, 개발자, 서비스 기술자, 차량 운전자 등을 포함할 수 있으나 이에 한정되지 않는다.
도 3b의 아키텍처는 본질적으로 예시적인 것이며, 프로세싱 컴포넌트에 대한 임의의 특정 하드웨어 또는 소프트웨어 구성을 요구하는 것으로 해석되어서는 안 된다. 도 3b에 도시된 차량의 프로세싱 컴포넌트(220)의 일반적인 아키텍처는 본 개시의 측면들을 구현하는 데 사용될 수 있는 컴퓨터 하드웨어 및 소프트웨어 컴포넌트들의 배열을 포함한다. 도시된 바와 같이, 프로세싱 컴포넌트는 프로세싱 유닛(332), 네트워크 인터페이스(338), 컴퓨터 판독한 가능 매체(336) 및 입/출력 장치 인터페이스(334)를 포함하며, 이들 모두는 통신 버스를 통해 서로 통신할 수 있다. 프로세싱 컴포넌트의 컴포넌트들은 하나 이상의 회로 및 소프트웨어 모델을 포함할 수 있는 물리적 하드웨어 컴포넌트들일 수 있다.
네트워크 인터페이스(338)는 도 1의 네트워크들(150, 160)과 같은 하나 이상의 네트워크 또는 컴퓨팅 시스템에 대한 연결을 제공할 수 있다. 따라서, 프로세싱 유닛(332)은 네트워크를 통해 다른 컴퓨팅 시스템들 또는 서비스들로부터 정보 및 명령어들을 수신할 수 있다. 프로세싱 유닛(332)은 또한 마이크로컨트롤러 유닛(MCU)(210)과 통신하고 입/출력 장치 인터페이스(334)를 통해 출력 정보를 더 제공할 수 있다. 일부 실시예들에서, 메모리는 MCU(210)의 하나 이상의 기능을 수행하도록 구현될 수 있다. 일부 실시예들에서, 프로세싱 컴포넌트(220)는 도 3b에 도시된 것보다 더 많은(또는 더 적은) 컴포넌트들을 포함할 수 있다.
MCU(210)는 하나 이상의 실시예를 구현하기 위해 프로세싱 컴포넌트(220)가 실행하는 컴퓨터 프로그램 명령어들을 포함할 수 있다. MCU(210)는 일반적으로 RAM, ROM 또는 다른 영구적 또는 비일시적 메모리를 포함한다. MCU(210)는 프로세싱 컴포넌트(220)의 일반적인 관리 및 동작에 있어서 프로세싱 유닛(332)에 의한 사용을 위한 컴퓨터 프로그램 명령어들을 제공하는 운영 시스템(342)를 저장할 수 있다. MCU(210)는 본 개시의 측면들을 구현하기 위한 컴퓨터 프로그램 명령어들 및 다른 정보를 더 포함할 수 있다. 예를 들어, 일 실시예에서, MCU(210)는 데이터 요청 처리 컴포넌트(344)를 포함한다. 일부 실시예들에서, 데이터 요청 처리 컴포넌트(344)는 데이터 요청을 수신할 수 있고, 요청된 데이터를 식별하기 위해 데이터 요청을 처리한다. 예시적으로, 데이터 요청은 미리 정의되거나 미리 구성된 형식에 대한 한정 없이 요청된 데이터의 유형, 형식 및 크기를 특정할 수 있다. 따라서, 일 실시예에서, 데이터 요청 처리 컴포넌트(344)는 수신된 데이터 요청들을 파싱(parse)하고, 요청된 데이터를 식별하고, 명령들을 내릴(issue) 수 있는 프로세싱 컴포넌트들을 포함할 수 있다. 일부 실시예들에서, 데이터 요청 처리 컴포넌트(344)는 요청된 정보를 수집 및 처리할 수 있다. 예시적으로, 차량 정보의 프로세싱은 필터링(filtering), 정규화(normalization), 평균화(averaging) 또는 다른 데이터 프로세싱을 포함할 수 있다. 예를 들어, 데이터 요청은 프로세싱을 위한 차량 데이터의 선택을 용이하게 하는 필터링 기준(filtering criteria) 또는 다른 프로세싱 구성 정보를 포함할 수 있다. 다른 실시예들에서, 데이터 요청 처리 컴포넌트(344)는 지연 시간의 감소, 패킷 전송들의 증가 등을 제공하기 위해 UDP 기반 전송들을 전송할 수 있다.
MCU(210)는 데이터 암호화 처리 컴포넌트(data encryption process component)(346)를 더 포함할 수 있다. 일부 실시예들에서, 보안 연결을 설정하기 위해, 랜덤 보안 키가 네트워크 서비스 제공자(120)로부터 제공되는데, 여기서 랜덤 보안 키는 단 한 번의 연결 시도에 대해서만 유효하고 설정된 기간 내에 만료된다. 이 예에서 데이터 암호화 처리 컴포넌트(346)는 랜덤 보안 키를 판독하고 코드를 처리할 수 있다. 일부 실시예들에서, 데이터 암호화 처리 컴포넌트(346)는 UDP와 같은 인터넷 프로토콜을 이용하여 데이터를 전송하도록 코드를 승인하고 차량 데이터를 처리할 수 있다. 따라서, 차량 데이터는 실시간 또는 거의 실시간으로 네트워크 서비스 제공자(120)로 전송될 수 있다.
이제 도 4를 참조하여, 네트워크 서비스 제공자(120)와 개별 차량(110) 사이의 예시적인 상호작용을 설명할 수 있다. 비록 단 하나의 상호작용만이 예시되어 있지만, 본 출원은 단 하나의 상호작용으로 한정되지 않는다. 오히려, 예시된 상호작용의 개별적인 반복들은 네트워크 서비스 제공자(120)에서 구현된 바와 같이, 선택된 차량들의 구성, 다른 차량 데이터 요청들, 차량 데이터 액세스 서비스(112) 등에 의해 수행되고 있는 모니터링(monitoring) 또는 진단 어플리케이션들(diagnostic applications)에 기초하여 차량 정보의 다른 교환들(different exchanges)을 초래할 수 있다.
(1)에서, 차량 데이터 액세스 서비스(112)는 선택된 차량으로부터 요청될 요청된 차량 정보를 식별할 수 있다. 요청된 차량 정보는 스트리밍 데이터 요청일 수 있다. 예시적으로, 사용자는, 모바일 클라이언트 또는 다른 컴퓨팅 장치를 통해, 차량으로부터 데이터를 요청하는데 이용하기 위한 프로파일 및 구조화된 데이터를 구성한다. 예시적으로, 사용자는 차량 데이터의 전송에 이용되는 정보 및 특정 파라미터들/규칙들을 요청하기 위한 프로파일을 생성할 수 있는 권한을 제공할 수 있다. 이는 네트워크 서비스 제공자에서 관리되는 차량의 지정된 또는 기본 시간 구간, 차량 데이터 선택을 위한 규칙들의 사양, 요청들의 처리에 관한 파라미터들 등을 포함할 수 있다. 파라미터들의 일부는 또한 특정 차량과의 공유 요청 시에도 특정될 수 있다. 앞서 언급된 바와 같이, 본 출원의 측면들은 동적으로 차량 데이터를 요청하는 것에 대응하며, 임의의 특별히 미리 정의되거나 표준화된 정보 집합(예를 들어, 고정 메시지들)에 한정되지 않는다. 사용자는 일부 실시예들에 따라 선택을 위해 미리 정의된 템플릿들을 이용할 수 있지만, 미리 정의된 템플릿들을 추가로 편집, 보완 또는 변경할 수 있다.
(2)에서, 차량 데이터 액세스 서비스(112)는 네트워크 대역폭, 또는 차량 데이터에 액세스함에 있어 미리 정의된 규칙들에 의해 미리 정의된 양방향 데이터 통신 프로토콜과 같은 네트워크 성능 정보를 수집할 수 있다.
(3)에서, 차량 데이터 액세스 서비스(112)는 차량과의 통신을 시작하는 시점을 식별할 수 있다. 통신을 시작하는 시점은 차량으로부터 차량 데이터에 대한 요청들이 있는 시점일 수 있다. 일부 실시예들에서, 차량 데이터 액세스 서비스(112)는 차량 데이터에 대한 요청들을 시작하는 시점, 어떤 차량 데이터가 요청되는지 등을 결정하기 위해 네트워크 성능 정보를 모니터링할 수 있다. 예를 들어, 차량 데이터 액세스 서비스(112)는 언제 차량 데이터 요청들이 시작되는지 결정하기 위해 수집된 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 차량 데이터 액세스 서비스(112)는 더 높은 우선 순위 정보를 선택하는 것과 같이 품질이 낮은(상대적) 네트워크 조건들의 시간 동안 서로 다른 요청된 정보 중에서 선택하거나 필터링하기 위해 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 차량 데이터 액세스 서비스(112)는 네트워크 조건들이 품질에서 더 높은 변동성을 경험하거나 악화되는 조건들(deteriorating conditions)을 경험하는 것으로 특징지어질 수 있는 시나리오들에서 데이터 전송을 위한 간격 또는 다른 시점을 구현할 수 있다. 예시적으로, 네트워크 성능 정보는 가용한 대역폭, 지연 시간 측정치들, 전송 오류율들 등을 포함할 수 있지만, 이에 한정되지 않는다.
(4)에서, 차량 데이터 액세스 서비스(112)는 UDP 기반 차량 데이터 요청을 예시적으로 전송할 수 있다. 예시적으로, UDP 기반 전송들은 오류 확인 및 복구 서비스들이 필요하지 않은 비연결 인터넷 프로토콜에 대응한다. 예시적인 실시예에 따르면, UDP에 기초한 전송은 다른 프로토콜들에 비해 "더 빠른" 것으로 특징지어질 수 있는데, 그 이유는 UDP가 연결 시작, 접속 유지, 또는 요청 종료와 관련된 추가적인 지연 시간들을 요구하지 않기 때문이다. 이에 비해 TCP는 오류들을 확인하고 데이터가 보내진 순서대로 전달되도록 보장하는 시스템들이 내장된 연결 지향 프로토콜에 해당한다. UDP 기반 메시징은 일반적으로 누락된 데이터 패킷들의 재전송이나 데이터의 순차 전달을 위한 기능을 포함하지 않는다. 본 출원의 측면들이 UDP 기반 통신들에 대한 선호와 관련되지만, 대안적인 실시예들에서, 차량 데이터 액세스 서비스(112)는 TCP 기반 메시지들을 포함하는 다른 통신 프로토콜들을 이용할 수 있다.
(5)에서, 차량은 데이터 요청을 수신할 수 있고, 요청된 데이터를 식별하기 위해 데이터 요청을 처리한다. 예시적으로, 데이터 요청은 미리 정의되거나 미리 구성된 형식에 대한 한정 없이 요청된 데이터의 유형, 형식 및 크기를 특정할 수 있다. 따라서, 일 실시예에서, 게이트웨이는 수신된 데이터 요청들을 파싱하고, 요청된 데이터를 식별하고, 명령들을 내릴 수 있는 프로세싱 컴포넌트들을 포함할 수 있다. (6)에서, 차량은 요청된 정보를 수집할 수 있고 처리한다. 예시적으로, 차량 정보의 프로세싱은 필터링, 정규화, 평균화 또는 다른 데이터 프로세싱을 포함할 수 있다. 예를 들어, 데이터 요청은 프로세싱을 위한 차량 데이터의 선택을 용이하게 하는 필터링 기준 또는 다른 프로세싱 구성 정보를 포함할 수 있다. 다른 실시예들에서, 차량은 로우 데이터(raw data) 또는 처리되지 않은 데이터(unprocessed data)를 차량 데이터 액세스 서비스(112)로 직접 전송하도록 구성될 수 있다.
(7)에서, 차량은 반응형 차량 데이터(responsive vehicle data)의 스트림을 제공할 수 있다. 예시적으로, 차량은 지연 시간의 감소, 패킷 전송들의 증가 등을 제공하기 위해 UDP 기반 전송들을 전송한다. (8)에서, 차량 데이터 액세스 서비스(112)는 요청된 차량 동작 파라미터들, 상태 등을 결정하기 위해서와 같이, 반응형 데이터를 수신할 수 있고 수신된 UDP 패킷들을 분석한다. 추가적으로, (9)에서, 차량 데이터 액세스 서비스(112)는 네트워크 조건들을 업데이트하기 위해 전송된 패킷들의 속성들을 이용할 수 있다. 업데이트된 네트워크 조건들에 기초하여 추가적인 요청된 정보를 위해 프로세스는 반복될 것이다.
일부 실시예들에서, 컴퓨팅 장치(130)는 구조화된 프로파일 데이터를 개별적으로 암호화하기 위해 복수의 데이터 구조 키들을 생성할 수 있다. 보다 구체적으로, 프로파일 정보는 프로파일 정보의 각 개별 클래스를 암호화할 수 있는 복수의 클래스 암호화 키들(class encryption keys)과 함께 제공될 수 있다. 각 개별 하위 클래스(sub-class)는 각 하위 클래스 또는 라벨(label)을 개별적으로 암호화하기 위해 클래스 내에서 서로 다르거나 동일한 키와 연관될 수 있다. 마지막으로, 마스터 데이터 키는 암호화된 클래스 데이터의 전체 선택(full selection)을 암호화하는 데 사용될 것이다. 암호화 롤업(roll up)의 일부로 라벨 키들(label keys)은 클래스 키(class key)에 의해 암호화된다. 그런 다음 클래스 키들은 마스터 데이터 키에 의해 암호화된다. 따라서, (3) 및 (4)에서, 데이터 구조 전체가 암호화되고, 데이터 구조의 일부를 암호화하는 데 이용되는 키들도 암호화된다.
(5)에서, 컴퓨팅 장치(130)는 마스터 데이터 키 없이 암호화된 키들 및 암호화된 데이터를 차량 데이터 액세스 서비스(112)에 전송할 수 있다. (6)에서, 차량 데이터 액세스 서비스(112)는 공유에 이용하기 위해 암호화된 정보를 유지한다. 그러나, 마스터 데이터 키가 차량 데이터 액세스 서비스(112)에 제공되지 않기 때문에, 차량 데이터 액세스 서비스(112)가 암호화된 구조화된 데이터(encrypted structured data)를 복호화(decrypt) 하기 위하여 암호화된 데이터 키들에 액세스하는 것은 불가능하다. 일부 실시예들에서, 보안 연결을 설정하기 위해, 랜덤 보안 키가 컴퓨팅 장치(130)를 통해 사용자로부터 차량 데이터 액세스 서비스(112)로 제공되며, 랜덤 보안 키는 단 한 번의 연결 시도에 대해서만 유효하고 설정된 기간 내에 만료된다. 이러한 실시예들에서, 차량 데이터 액세스 서비스(112)는 랜덤 보안 키를 판독할 수 있다.
이제 도 5로 넘어가서, 차량 데이터 요청 생성을 수행하기 위한 루틴(500)에 대해 설명한다. 루틴(500)은 차량 데이터 액세스 서비스(112)에 의해 예시적으로 구현된다.
블록(502)에서, 차량 데이터 액세스 서비스(112)는 선택된 차량으로부터 요청될 요청된 차량 정보를 식별할 수 있다. 요청된 차량 정보는 스트리밍 데이터 요청일 수 있다. 예시적으로, 사용자는, 모바일 클라이언트 또는 다른 컴퓨팅 장치를 통해, 차량으로부터 데이터를 요청하는 데 이용하기 위한 프로파일 및 구조화된 데이터를 구성한다. 예시적으로, 사용자는 차량 데이터의 전송에 이용되는 정보 및 특정 파라미터들/규칙들을 요청하기 위한 프로파일을 생성할 수 있는 권한을 제공할 수 있다. 이는 네트워크 서비스 제공자에서 관리되는 차량의 지정된 또는 기본 시간 구간, 차량 데이터 선택을 위한 규칙들의 사양, 요청들의 처리에 관한 파라미터들 등을 포함할 수 있다. 파라미터들의 일부는 또한 특정 차량과 공유 요청 시에도 특정될 수 있다. 앞서 언급된 바와 같이, 본 출원의 측면들은 동적으로 차량 데이터를 요청하는 것에 대응하며, 임의의 특별히 미리 정의되거나 표준화된 정보 집합(예를 들어, 고정 메시지들)에 한정되지 않는다. 사용자는 일부 실시예들에 따라 선택을 위해 미리 정의된 템플릿들을 이용할 수 있지만, 미리 정의된 템플릿들을 추가로 편집, 보완 또는 변경할 수 있다.
블록(504)에서, 차량 데이터 액세스 서비스(112)는 네트워크 대역폭, 또는 차량 데이터에 액세스함에 있어 미리 정의된 규칙들에 의해 미리 정의된 양방향 데이터 통신 프로토콜과 같은 네트워크 성능 정보를 수집할 수 있다.
블록(506)에서, 차량 데이터 액세스 서비스(112)는 차량과의 통신을 시작하는 시점을 식별할 수 있다. 통신을 시작하는 시점은 차량으로부터 차량 데이터에 대한 요청들이 있는 시점일 수 있다. 일부 실시예들에서, 차량 데이터 액세스 서비스(112)는 차량 데이터에 대한 요청들을 시작하는 시점, 어떤 차량 데이터가 요청되는지 등을 결정하기 위해 네트워크 성능 정보를 모니터링할 수 있다. 예를 들어, 차량 데이터 액세스 서비스(112)는 언제 차량 데이터 요청들이 시작되는지 결정하기 위해 수집된 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 차량 데이터 액세스 서비스(112)는 더 높은 우선 순위 정보를 선택하는 것과 같이 품질이 낮은(상대적) 네트워크 조건들의 시간 동안 서로 다른 요청된 정보 중에서 선택하거나 필터링하기 위해 네트워크 성능 정보를 이용할 수 있다. 다른 예에서, 차량 데이터 액세스 서비스(112)는 네트워크 조건들이 품질에서 더 높은 변동성을 경험하거나 악화되는 조건들을 경험하는 것으로 특징지어질 수 있는 시나리오들에서 데이터 전송을 위한 간격 또는 다른 시점을 구현할 수 있다. 예시적으로, 네트워크 성능 정보는 가용한 대역폭, 지연 시간 측정치들, 전송 오류율들 등을 포함할 수 있지만, 이에 한정되지 않는다.
블록(508)에서, 차량 데이터 액세스 서비스(112)는 UDP 기반 차량 데이터 요청을 예시적으로 전송할 수 있다. 예시적으로, UDP 기반 전송들은 오류 확인 및 복구 서비스들이 필요하지 않은 비연결 인터넷 프로토콜에 대응한다. 예시적인 실시예에 따르면, UDP에 기초한 전송은 다른 프로토콜들에 비해 "더 빠른" 것으로 특징지어질 수 있는데, 그 이유는 UDP가 연결 시작, 접속 유지, 또는 요청 종료와 관련된 추가적인 지연 시간들을 요구하지 않기 때문이다. 이에 비해TCP는 오류들을 확인하고 데이터가 보내진 순서대로 전달되도록 보장하는 시스템들이 내장된 연결 지향 프로토콜에 해당한다. UDP 기반 메시징은 일반적으로 누락된 데이터 패킷들의 재전송이나 데이터 순차 전달을 위한 기능을 포함하지 않는다. 본 출원의 측면들이 UDP 기반 통신들에 대한 선호와 관련되지만, 대안적인 실시예들에서, 차량 데이터 액세스 서비스(112)는 TCP 기반 메시지들을 포함하는 다른 통신 프로토콜들을 이용할 수 있다.
블록(510)에서, 차량 데이터 액세스 서비스(112)는 요청된 차량 동작 파라미터들, 상태 등을 결정하기 위해서와 같이, 반응형 데이터를 수신할 수 있고 수신된 UDP 패킷들을 분석한다.
블록(512)에서, 차량 데이터 액세스 서비스(112)는 네트워크 조건들을 업데이트하기 위해 전송된 패킷들의 속성들을 이용할 수 있다. 업데이트된 네트워크 조건들에 기초하여 추가적인 요청된 정보를 위해 프로세스는 반복될 것이다. 예를 들어, 네트워크 조건들을 업데이트한 이후에, 프로세스는 블록(502)에서 반복될 수 있다.
또한, 컴퓨팅 장치(130)는 구조화된 프로파일 데이터를 개별적으로 암호화하기 위해 복수의 데이터 구조 키들을 생성할 수 있다. 보다 구체적으로, 프로파일 정보는 프로파일 정보의 각 개별 클래스를 암호화할 수 있는 복수의 클래스 암호화 키들과 함께 제공될 수 있다. 각 개별 하위 클래스는 각 하위 클래스 또는 라벨을 개별적으로 암호화하기 위해 클래스 내에서 서로 다르거나 동일한 키와 연관될 수 있다. 마지막으로, 마스터 데이터 키는 암호화된 클래스 데이터의 전체 선택을 암호화하는 데 사용될 것이다. 암호화 롤업의 일부로 라벨 키들은 클래스 키에 의해 암호화된다. 그런 다음 클래스 키들은 마스터 데이터 키에 의해 암호화된다. 따라서, 블록(506 및 508)에서, 데이터 구조 전체가 암호화되고, 데이터 구조의 일부를 암호화하는 데 이용되는 키들도 암호화된다.
블록(510)에서, 컴퓨팅 장치(130)는 마스터 데이터 키 없이 암호화된 키들 및 암호화된 데이터를 차량 데이터 액세스 서비스(112)에 전송할 수 있다. 블록(512)에서, 차량 데이터 액세스 서비스(112)는 공유에 이용하기 위해 암호화된 정보를 유지한다. 그러나, 마스터 데이터 키가 차량 데이터 액세스 서비스(112)에 제공되지 않기 때문에, 차량 데이터 액세스 서비스(112)가 암호화된 구조화된 데이터를 복호화 하기 위하여 암호화된 데이터 키들에 액세스하는 것은 불가능하다. 일부 실시예들에서, 보안 연결을 설정하기 위해, 랜덤 보안 키가 컴퓨팅 장치(130)를 통해 사용자로부터 차량 데이터 액세스 서비스(112)로 제공되며, 랜덤 보안 키는 단 한 번의 연결 시도에 대해서만 유효하고 설정된 기간 내에 만료된다. 이러한 실시예들에서, 차량 데이터 액세스 서비스(112)는 랜덤 보안 키를 판독할 수 있다.
이제 도 6으로 넘어가서, 차량 데이터 요청 처리를 수행하기 위한 루틴(600)에 대해 설명한다. 루틴(600)은 차량 데이터 액세스 서비스(112)에 의해 예시적으로 구현된다.
블록(602)에서, 차량은 데이터 처리 요청을 획득할 수 있다. 블록(604)에서, 차량은 요청된 데이터를 식별하기 위해 데이터 요청을 처리할 수 있다. 예시적으로, 데이터 요청은 미리 정의되거나 미리 구성된 형식에 대한 한정 없이 요청된 데이터의 유형, 형식 및 크기를 특정할 수 있다. 따라서, 일 실시예에서, 게이트웨이는 수신된 데이터 요청들을 파싱하고, 요청된 데이터를 식별하고, 명령들을 낼 수 있는 프로세싱 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 차량은 게이트웨이(208) 및 마이크로컨트롤러 유닛(MCU)(210)을 포함할 수 있다. 일부 실시예들에서, 게이트웨이(208)는 센서들(202), 컴포넌트들(204), 및 차량 데이터 저장소(206)로부터 및/또는 이들로 데이터를 수신 및/또는 전송하도록 구성될 수 있다. 이러한 실시예들에서, 게이트웨이(208)는 차량 통신 버스를 통해 센서들(202), 컴포넌트들(204), 및 차량 데이터 저장소(206)에 연결된다. 일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는 이더넷을 통해 연결된다. 일부 실시예들에서, MCU(210)는 네트워크(150)를 통해 차량(110)과 네트워크 서비스 제공자(120)를 연결하도록 구성될 수 있다. 일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는, 개별적으로 또는 조합되어, 차량(110)과 네트워크 서비스 제공자(120) 사이의 보안 흐름을 제공할 수 있다. 일부 실시예들에서, MCU(210)는 네트워크 서비스 제공자(120)로부터 하나 이상의 명령을 수신하고, 게이트웨이(208)에서 사용될 수 있도록 명령들을 변환할 수 있으며, 이에 따라 MCU(210)는 네트워크 서비스 제공자(120)로부터 명령 또는 요청을 수신한 이후에, 네트워크 서비스 제공자로부터 수신된 명령 또는 요청에 기초하여 차량 데이터의 일부를 처리하도록 게이트웨이에 대한 명령을 생성할 수 있다. 예를 들어, 네트워크 서비스 제공자(120)는 특정 이벤트와 관련된 비디오 스트리밍 데이터를 요청할 수 있다. 이 예에서, MCU(210)는 요청을 수신하고 네트워크 서비스 제공자(120)로부터의 요청에 대응하는 차량 데이터를 검색하기 위해 게이트웨이(208)에 사용될 다른 명령을 생성할 수 있다.
일부 실시예들에서, 게이트웨이(208) 및 MCU(210)는 MCU(210)가 네트워크 기반 서비스(120)로 스트리밍되는 특정 메시지 집합을 요청할 수 있게 하는 UDP-기반 애플리케이션 프로그래밍 인터페이스(API)를 정의한다. 이 메시지 집합은 차량에 특정적일 수 있고, 어떤 메시지가 스트리밍될 필요가 있는지 게이트웨이(208)에 알려주는 (버스 ID, 메시지 ID) 식별자들 쌍을 포함한다. 그 후, 게이트웨이(208)는 이더넷을 통해 이러한 메시지를 일정한 간격으로(예를 들어, 10밀리초마다) MCU(210)로 전달한다. 일부 실시예들에서, 이 API는 또한 메시지들을 편집하는 것을 허용하는데, 이는 스트림을 재시작 할 필요 없이 스트리밍 메시지들을 요청하거나 제거할 수 있게 한다.
블록(606)에서, 차량은 요청된 정보를 수집할 수 있고 처리한다. 예시적으로, 차량 정보의 프로세싱은 필터링, 정규화, 평균화 또는 다른 데이터 프로세싱을 포함할 수 있다. 예를 들어, 데이터 요청은 프로세싱을 위한 차량 데이터의 선택을 용이하게 하는 필터링 기준 또는 다른 프로세싱 구성 정보를 포함할 수 있다. 다른 실시예들에서, 차량은 로우 데이터 또는 처리되지 않은 데이터를 차량 데이터 액세스 서비스(112)로 직접 전송하도록 구성될 수 있다.
블록(608)에서, 차량은 식별된 차량 데이터를, 반응형 차량 데이터의 스트림으로서 전송할 수 있다. 예시적으로, 차량은 지연 시간의 감소, 패킷 전송들의 증가 등을 제공하기 위해 UDP 기반 전송들을 전송한다. 라우팅(600)은 블록(610)에서 종료될 수 있다.
전술한 개시는 본 개시를 개시된 정확한 형태들 또는 특정 사용 분야들로 한정하기 위한 것이 아니다. 따라서, 본 명세서에서 명백하게 설명되거나 함축되어 있든 상관없이, 본 개시 내용에 비추어 본 개시에 대한 다양한 대체 실시예들 및/또는 수정들이 가능할 것으로 고려된다. 이와 같이 본 개시의 실시예들을 설명하면서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 개시의 범위를 벗어나지 않는 범위 내에서 형태 및 세부사항에 변경이 이루어질 수 있음을 인식할 수 있을 것이다. 따라서, 본 개시는 특허청구범위에 의해서만 한정된다.
전술한 명세서에서, 본 개시는 특정 실시예들을 참조하여 설명되었다. 그러나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 알 수 있듯이, 본 명세서에 개시된 다양한 실시예들은 본 개시의 기술 사상 및 기술 범위를 벗어나지 않는 범위 내에서 다양한 다른 방식들로 수정되거나 달리 구현될 수 있다. 따라서, 본 설명은 예시적인 것으로 간주되어야 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 개시된 에어 벤트 어셈블리(air vent assembly)의 다양한 실시예들을 제작하고 사용하는 방법을 가르치기 위한 것이다. 본 명세서에 도시되고 설명되는 개시의 형태들은 대표적인 실시예들로 간주되어야 한다는 것을 이해해야 한다. 동등한 요소들, 재료들, 프로세스들 또는 단계들은 본 명세서에서 대표적으로 예시되고 설명되는 것으로 대체될 수 있다. 더욱이, 본 개시의 특정 특징들은 다른 특징들의 사용과 독립적으로 이용될 수 있으며, 이 모든 것은 본 개시의 이러한 설명의 장점을 가진 후 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명백할 것이다. 본 개시를 설명하고 주장하기 위해 사용되는 "포함하는", "포함하다", "통합하는", "구성하는", "가지다", "있다"와 같은 표현은 비배타적인 방식(non-exclusive manner)으로 해석되도록 의도되며, 즉 명백하게 설명되지 않은 항목들(items), 컴포넌트들(components) 또는 요소들(element)도 존재할 수 있도록 허용한다. 단수에 대한 언급도 복수와 관련된 것으로 해석되어야 한다.
또한, 본 명세서에 개시된 다양한 실시예들은 예시적이고 설명적인 의미로 간주되어야 하며, 본 개시를 한정하는 것으로 해석되어서는 안 된다. 모든 결합자 참조들(joinder references) (예를 들어, 첨부, 부착, 결합, 연결 등)은 본 개시에 대한 독자의 이해를 돕기 위해서만 사용되며, 특히 본 명세서에 개시된 시스템들 및/또는 방법들의 위치(position), 방향(orientation) 또는 사용(use)에 관한 한정을 생성하지 않을 수 있다. 따라서 결합 참조들이 있는 경우 광범위하게 해석되어야 한다. 더욱이, 이러한 결합 참조들은 반드시 두 요소들이 서로 직접적으로 연결되어 있다고 유추할 것은 아니다.
추가적으로, "제1", "제2", "제3", "일차", "이차", "주(main)" 또는 임의의 다른 통상적 및/또는 수치적 용어와 같은 모든 수치적 용어들은 본 개시의 다양한 요소들, 실시예들, 변형들 및/또는 수정들에 대한 독자의 이해를 돕기 위한 식별자들로서만 간주되어야 하며, 특히 다른 요소, 실시예, 변형 및/또는 수정에 대한 또는 그 위에 대한 임의의 요소, 실시예, 변형 및/또는 수정의 순서, 또는 선호와 관련하여 어떠한 한정도 생성하지 않을 수 있다.
도면들(drawings)/도면들(figures)에 도시된 하나 이상의 요소는 더 분리되거나 통합된 방식으로 구현될 수도 있고, 특정 애플리케이션에 따라 유용한 경우와 같이 특정 경우들에서 제거되거나 작동하지 않는 것으로 렌더링될 수 있음이 또한 이해될 것이다.

Claims (21)

  1. 하나 이상의 차량으로 차량 데이터의 스트리밍을 관리하기 위한 네트워크 서비스 제공자에 있어서,
    상기 네트워크 서비스 제공자는,
    차량 데이터 액세스 서비스와 연관된 하나 이상의 컴퓨팅 프로세서 및 메모리를 포함하고,
    상기 차량 데이터 액세스 서비스는,
    스트리밍 데이터 요청을 획득하고 - 상기 스트리밍 데이터 요청은 요청된 차량 정보를 포함함 -;
    상기 획득된 스트리밍 데이터 요청으로부터 스트리밍 데이터 파라미터들 및 상기 하나 이상의 차량으로부터의 상기 요청된 차량 정보를 식별하고;
    상기 차량과의 통신을 시작하는 시점을 결정하기 위해 네트워크 성능 정보를 수집하고;
    상기 식별된 요청된 차량 정보와 연관된 차량과의 상기 통신을 시작하는 시점을 결정하는 것에 응답하여, 상기 차량과의 무선 통신 경로(wireless communication path)를 설정하고, 상기 무선 통신 경로는 UDP를 이용하여 설정되고,
    상기 무선 통신 경로를 설정하는 단계는,
    상기 스트리밍 데이터 파라미터들에 기초하여 UDP 기반 스트리밍 데이터 요청을 전송하는 단계 - 상기 UDP 기반 스트리밍 데이터 요청은 반응형 차량 데이터의 스트림임 -; 및
    상기 차량으로부터, 상기 반응형 차량 데이터의 스트림을 수신하는 단계를 포함하고; 및
    상기 반응형 차량 데이터의 스트림을 수신하는 것에 응답하여, 상기 반응형 차량 데이터의 스트림을 분석하는 것인,
    네트워크 서비스 제공자.
  2. 제1항에 있어서,
    상기 스트리밍 데이터 파라미터들은,
    상기 네트워크 서비스 제공자에서 관리되는 차량의 지정된 시간 구간, 차량 데이터 선택을 위한 규칙들의 사양, 상기 스트리밍 데이터 요청의 처리에 관한 파라미터들을 포함하는,
    시스템.
  3. 제1항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 스트리밍 데이터 파라미터들의 하나 이상의 템플릿을 포함하도록 구성되는,
    시스템.
  4. 제1항에 있어서,
    상기 네트워크 성능 정보는,
    가용한 네트워크 대역폭, 지연 시간 측정치들, 및 전송 오류율들을 포함하는,
    시스템.
  5. 제1항에 있어서,
    상기 UDP 기반 전송은,
    인터넷 프로토콜에 기초하고,
    상기 UDP 기반 전송은, 오류 확인 서비스 및 복구 서비스를 필요로 하지 않는,
    시스템.
  6. 제1항에 있어서,
    상기 반응형 차량 데이터의 스트림을 분석하는 것은,
    요청된 차량 동작 파라미터들 및 상태를 결정하는 것을 포함하는,
    시스템.
  7. 제1항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 UDP 기반 전송으로부터 생성된 네트워크 속성들에 기초하여 네트워크 조건을 업데이트하도록 더 구성되는,
    시스템.
  8. 제1항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    통신 네트워크 조건들이 네트워크 성능 임계치들을 충족하지 않거나 초과하지 않는 경우 고대역폭 데이터에 대한 상기 스트리밍 데이터 요청을 측정하는,
    시스템.
  9. 하나 이상의 차량으로 차량 데이터의 스트리밍을 관리하기 위한 네트워크 서비스 제공자에 있어서,
    상기 네트워크 서비스 제공자는,
    차량 데이터 액세스 서비스와 연관된 하나 이상의 컴퓨팅 프로세서 및 메모리를 포함하고,
    상기 차량 데이터 액세스 서비스는,
    스트리밍 데이터 요청을 획득하기 위해 응답하고, 상기 획득된 스트리밍 데이터 요청으로부터 스트리밍 데이터 파라미터들 및 상기 하나 이상의 차량으로부터의 요청된 차량 정보를 식별하고;
    차량과의 무선 통신 경로를 설정하기 위해 상기 식별된 요청된 차량 정보와 연관된 차량과의 통신을 시작하는 시점을 결정하고 - 상기 무선 통신 경로는 UDP를 이용하여 설정됨 -;
    상기 스트리밍 데이터 요청에 대응하는 반응형 차량 데이터의 스트림을 수신하고,
    상기 반응형 차량 데이터의 상기 스트림을 저장하는,
    네트워크 서비스 제공자.
  10. 제9항에 있어서,
    상기 스트리밍 데이터 요청은,
    요청된 차량 정보를 포함하는,
    시스템.
  11. 제9항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 차량과의 통신을 시작하는 시점을 결정하기 위해 네트워크 성능 정보를 수집하는 것에 기초하여 상기 통신을 시작하는 시점을 결정하는,
    시스템.
  12. 제9항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 스트리밍 데이터 파라미터들에 기초하여 UDP 기반 스트리밍 데이터 요청을 전송하는 단계 - 상기 UDP 기반 스트리밍 데이터 요청은 반응형 차량 데이터의 스트림 -; 및
    상기 차량으로부터 상기 반응형 차량 데이터의 스트림을 수신하는 단계
    에 의해 상기 무선 통신 경로를 설정하는,
    시스템.
  13. 제9항에 있어서,
    상기 스트리밍 데이터 파라미터들은,
    상기 네트워크 서비스 제공자에서 관리되는 차량의 지정된 시간 구간, 차량 데이터 선택을 위한 규칙들의 사양, 상기 스트리밍 데이터 요청의 처리에 관한 파라미터들을 포함하는,
    시스템.
  14. 제9항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 스트리밍 데이터 파라미터들의 하나 이상의 템플릿을 포함하도록 구성되는,
    시스템.
  15. 제11항에 있어서,
    상기 네트워크 성능 정보는,
    가용한 네트워크 대역폭, 지연 시간 측정치들, 및 전송 오류율들을 포함하는,
    시스템.
  16. 제9항에 있어서,
    상기 UDP 기반 전송은,
    인터넷 프로토콜에 기초하고,
    상기 UDP 기반 전송은, 오류 확인 서비스 및 복구 서비스를 필요로 하지 않는,
    시스템.
  17. 제9항에 있어서,
    상기 반응형 데이터의 스트림을 분석하는 것은,
    요청된 차량 동작 파라미터들 및 상태를 결정하는 것을 포함하는,
    시스템.
  18. 제9항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    상기 UDP 기반 전송으로부터 생성된 네트워크 속성들에 기초하여 네트워크 조건을 업데이트하도록 더 구성되는,
    시스템.
  19. 제9항에 있어서,
    상기 차량 데이터 액세스 서비스는,
    통신 네트워크 조건들이 네트워크 성능 임계치들을 충족하지 않거나 초과하지 않는 경우 고대역폭 데이터에 대한 상기 스트리밍 데이터 요청을 측정하는,
    시스템.
  20. 하나 이상의 차량으로 차량 데이터의 스트리밍을 관리하기 위한 방법에 있어서,
    상기 방법은,
    스트리밍 데이터 요청을 획득하는 단계 - 상기 스트리밍 데이터 요청은 요청된 차량 정보를 포함함 -;
    상기 획득된 스트리밍 데이터 요청으로부터 스트리밍 데이터 파라미터들 및 상기 하나 이상의 차량으로부터의 상기 요청된 차량 정보를 식별하는 단계;
    상기 차량과의 통신을 시작하는 시점을 결정하기 위해 네트워크 성능 정보를 수집하는 단계;
    상기 통신을 시작하는 시점을 결정하는 것에 응답하여, 상기 차량과의 무선 통신 경로를 설정하는 단계 - 상기 무선 통신 경로는 UDP를 이용하여 설정됨 -
    상기 무선 통신 경로를 설정하는 단계는,
    상기 스트리밍 데이터 파라미터들에 기초하여 UDP 기반 스트리밍 데이터 요청을 전송하는 단계 - 상기 UDP 기반 스트리밍 데이터 요청은 반응형 차량 데이터의 스트림임 -; 및
    상기 차량으로부터 상기 반응형 차량 데이터의 스트림을 수신하는 단계를 포함하고; 및
    상기 반응형 차량 데이터의 스트림을 수신하는 것에 응답하여, 상기 반응형 차량 데이터의 스트림을 분석하는 단계
    를 포함하는,
    방법.
  21. 제20항에 있어서,
    상기 스트리밍 데이터 파라미터들은,
    상기 네트워크 서비스 제공자에서 관리되는 차량의 지정된 시간 구간, 차량 데이터 선택을 위한 규칙들의 사양, 상기 스트리밍 데이터 요청의 처리에 관한 파라미터들을 포함하는,
    방법.
KR1020247009928A 2021-09-15 2022-09-13 차량 데이터 액세스 KR20240065256A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163244657P 2021-09-15 2021-09-15
US63/244,657 2021-09-15
PCT/US2022/043380 WO2023043745A1 (en) 2021-09-15 2022-09-13 Vehicle data access

Publications (1)

Publication Number Publication Date
KR20240065256A true KR20240065256A (ko) 2024-05-14

Family

ID=83995705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009928A KR20240065256A (ko) 2021-09-15 2022-09-13 차량 데이터 액세스

Country Status (2)

Country Link
KR (1) KR20240065256A (ko)
WO (1) WO2023043745A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7903550B2 (en) * 2007-07-27 2011-03-08 Silicon Image, Inc. Bandwidth reservation for data flows in interconnection networks
EP4235603A3 (en) * 2013-01-09 2024-01-24 Paxgrid Telemetric Systems Inc. Vehicle communications via wireless access vehicular environment
US11316928B2 (en) * 2019-06-30 2022-04-26 GM Cruise Holdings, LLC Adaptive real-time streaming for autonomous vehicles

Also Published As

Publication number Publication date
WO2023043745A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US10315520B2 (en) Apparatuses and methods of an in-vehicle gateway system for monitoring and controling in-vehicle subsystems
US11443383B2 (en) System and method for processing vehicle requests
CA2958417C (en) Vehicle data system utilizing publish/subscribe gateways
Sinha et al. Building an E Ective IoT Ecosystem for Your Business
US20150207859A1 (en) Vehicle-specific computation management system for cloud computing
Amento et al. FocusStack: Orchestrating edge clouds using location-based focus of attention
US11251971B2 (en) Vehicle integration platform (VIP) security
CN106603565A (zh) 一种数据传输、显示的方法及设备
US11528325B2 (en) Prioritizing data using rules for transmission over network
EP3580925A1 (en) Systems and methods for shared mixed reality experiences using digital, physical, temporal or spatial discovery services
EP3949253A1 (en) Vehicle integration platform, vip, security integration
CN113867324A (zh) 车辆诊断方法、车载装置、终端及存储介质
KR102151867B1 (ko) 통신 시스템
US11271971B1 (en) Device for facilitating managing cyber security health of a connected and autonomous vehicle (CAV)
US20230412395A1 (en) Systems and Methods for Vehicle Message Signing
KR101395830B1 (ko) 프록시를 경유한 접속 세션정보 확인시스템과 이를 기반으로 한 세션정보 확인방법
KR20240065256A (ko) 차량 데이터 액세스
CN118140256A (zh) 车辆数据访问
CN112398796A (zh) 一种信息处理方法、装置、设备及计算机可读存储介质
CN115589472A (zh) 用于深度估计的异构车载摄像机立体对系统和方法
KR20180067431A (ko) 블랙박스 영상 제공 방법 및 이를 수행하는 장치들
US11140001B2 (en) Method for providing data packets from a CAN bus, control device and system having a CAN bus
Milković et al. A real-world implementation of IoT automobiles
WO2020065776A1 (ja) 情報処理装置、制御方法、及びプログラム
US20220132283A1 (en) Identification and coordination of opportunities for vehicle to vehicle wireless content sharing