Vehicle cloud connectivity

By providing continuous wireless connectivity and two-way communication through routing services, the security and efficiency issues of communication between vehicles and external systems are resolved, enabling secure and reliable cloud connectivity for vehicles.

CN122457618APending Publication Date: 2026-07-24RIVIAN HOLDINGS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
RIVIAN HOLDINGS LLC
Filing Date
2025-10-11
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

Current transportation systems primarily rely on physical connections or simple cellular phone or map services for connectivity with external systems, lacking secure, reliable, and efficient wireless communication methods.

Method used

Provides continuous wireless connectivity through routing services, enabling bidirectional communication between vehicles and cloud-based services via WebSocket connections, including authentication, data routing, and online state management, supporting pub/sub services, clustered storage, and dynamic client policy updates.

Benefits of technology

It enables a secure, reliable, cost-effective, and easy-to-maintain communication pipeline between vehicles and cloud-based services, supporting efficient data routing and flexible client access policies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122457618A_ABST
    Figure CN122457618A_ABST
Patent Text Reader

Abstract

Aspects of the subject technology provide a networked vehicle in communication with one or more remote services, such as cloud-based services (e.g., continuously). A routing service can receive vehicle data of the vehicle over a continuous wireless connection with the vehicle; and route the vehicle data to one or more cloud-based services based on information received with the vehicle data.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 717,770, filed November 7, 2024, entitled “Cloud Connectivity for Vehicles,” the disclosure of which is incorporated herein by reference in its entirety. Summary of the Invention

[0003] According to various aspects disclosed in this subject matter, a method is provided that includes receiving vehicle data of a vehicle by a routing service via a persistent wireless connection; and routing the vehicle data to one or more cloud-based services by the routing service based on information received along with the vehicle data. The persistent wireless connection may include a WebSocket connection. The method may further include authenticating the vehicle before receiving the vehicle data; and establishing the persistent wireless connection in response to authenticating the vehicle. Authenticating the vehicle may include authenticating the vehicle using a token at the routing service. Authenticating the vehicle may also include authenticating the vehicle at a proxy server.

[0004] The vehicle data may include the vehicle's status information. Routing the vehicle data to one or more cloud-based services may include routing the vehicle data to a cloud-based publish / subscribe service. Routing the vehicle data to one or more cloud-based services may include routing the vehicle data to a cloud-based cluster storage service. The vehicle data may include vehicle telemetry data, and routing the vehicle data to one or more cloud-based services may include routing the vehicle data to a synchronization service.

[0005] The information received along with the vehicle data may include route information for routing the vehicle data. This route information may include the topic for publishing the vehicle data or the topic status for publishing the vehicle data.

[0006] The method may further include receiving, at the routing service, a request from the vehicle for the online status of at least one of the one or more cloud-based services; and the routing service providing the vehicle with the online status of the at least one of the one or more cloud-based services. The method may also include receiving, at the routing service, a request from one of the one or more cloud-based services for the vehicle's online status; and the routing service providing the vehicle's online status to the one of the one or more cloud-based services.

[0007] The method may further include receiving additional information from one of the one or more cloud-based services at the routing service; and routing the additional information to the vehicle by the routing service based on additional information received along with the additional information. The method may also include routing the additional information to at least one other vehicle by the routing service based on additional information received along with the additional information. The additional additional information may include information identifying the vehicle category. The additional information may include wireless software updates. The additional information may include commands to lock the doors of the vehicle and the at least one other vehicle.

[0008] Routing vehicle data to one or more cloud-based services may include routing the vehicle data to a pod that includes a thread corresponding to the vehicle. The method may also include routing one or more communications from the pod to at least one other pod that includes a thread corresponding to at least one other vehicle.

[0009] According to other aspects disclosed in this subject matter, a routing service may be provided that is configured to receive vehicle data of a vehicle via a continuous wireless connection with the vehicle; and to route the vehicle data to one or more cloud-based services based on information received together with the vehicle data.

[0010] According to other aspects disclosed in this subject matter, a method is provided that includes generating communication route information at a vehicle indicating a communication route for vehicle data used by the vehicle; and providing the communication route information and the vehicle data to a routing service via a persistent wireless connection for delivery by the routing service to one or more cloud-based services. The persistent wireless connection may include a WebSocket connection. The method may further include providing authentication information of the vehicle from the vehicle; and establishing the persistent wireless connection with the routing service in response to authentication of the vehicle using the authentication information. Providing the authentication information may include providing the authentication information from the vehicle to the routing service. Providing the authentication information may include providing the authentication information from the vehicle to a proxy server of the routing service. The method may further include providing a subscription request from the vehicle to the routing service; and receiving data published by the vehicle from the routing service from one of the one or more cloud-based services corresponding to the subscription request. The subscription request may identify one or more of the following: a topic, a topic status, or an identifier of the one of the one or more cloud-based services. The communication route information may include at least one of the following: the vehicle's identifier, subject, or status. Background Technology

[0011] This specification relates in general to vehicles, including, for example, vehicle cloud connectivity.

[0012] Historically, vehicles were independent machines that did not communicate with external systems. Although some vehicle operations have become computerized, connections to external systems have generally remained limited to physically connecting the vehicle to a diagnostic system at a mechanic's shop, or through a direct connection that provides the driver with cellular phone or street map services via the vehicle's speakers or displays. Attached Figure Description

[0013] Certain features of the present subject matter are set forth in the appended claims. However, for purposes of explanation, several embodiments of the present subject matter are illustrated in the following figures.

[0014] Figure 1A and Figure 1B A schematic perspective side view illustrating an example embodiment of a vehicle based on one or more specific embodiments is shown.

[0015] Figure 2 A schematic diagram illustrating a communication system including a vehicle according to one or more specific implementations is shown.

[0016] Figure 3A schematic diagram illustrating another communication system including a vehicle according to one or more specific implementations is shown.

[0017] Figure 4 It is a sequence diagram illustrating various examples of routing communications based on one or more specific implementations of vehicles.

[0018] Figure 5 It is a flowchart of exemplary operations that can be performed by communication and routing services based on one or more specific implementations.

[0019] Figure 6 It is a flowchart of exemplary operations that can be performed by a vehicle communicating with communication and routing services, based on one or more specific implementations. Detailed Implementation

[0020] The detailed description set forth below is intended to describe various configurations of the subject matter, and not to represent only the configurations in which the subject matter can be practiced. The accompanying drawings are incorporated herein and form part of the detailed description. The detailed description includes specific details in order to provide a thorough understanding of the subject matter. However, the subject matter is not limited to the specific details set forth herein and can be practiced using one or more other specific embodiments. In one or more specific embodiments, structures and components are shown in block diagram form to avoid confusion with the concepts of the subject matter.

[0021] Various aspects of this subject matter relate to the software capabilities of vehicles and systems for wireless connectivity to vehicles, extending beyond the vehicle itself. These aspects can provide networked vehicles that communicate (e.g., continuously) with one or more remote services, such as cloud-based services. Two-way communication channels allow vehicles to operate with new, existing technological features never before offered by traditional automakers. These aspects provide a secure, reliable, cost-effective, scalable, and relatively easy-to-maintain communication channel infrastructure.

[0022] Figure 1A This is a diagram illustrating an example implementation of the system described in this article. Figure 1A In the example, the system includes a device (e.g., a mobile device) implemented as a vehicle 100. The vehicle 100 may be implemented as an electric vehicle and may include one or more batteries 110 for powering the vehicle and / or one or more systems and / or components of the vehicle. As shown, the battery 110 may include one or more battery cells 120.

[0023] For example, vehicle 100 may be an electric vehicle having one or more electric motors that use electricity from battery 110 to drive the wheels 102 of the vehicle. In one or more embodiments, vehicle 100 may also or alternatively include one or more chemically powered engines, such as gasoline engines or fuel cell motors. For example, electric vehicles may be fully electric or partially electric (e.g., hybrid or plug-in hybrid).

[0024] exist Figure 1A In the example, vehicle 100 is implemented as a truck (e.g., a pickup truck) having one or more batteries 110 (e.g., a battery pack having multiple (such as hundreds or thousands) battery cells) and processing circuitry 108 (e.g., including one or more processors, memory and / or communication circuitry).

[0025] As an example, the processing circuitry 108 of the vehicle 100 may include one or more processors (e.g., a single-processor, a multi-core processor, a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or other processing circuitry), and / or any of various types of computer-readable and / or machine-readable media (e.g., permanent memory, system memory, and / or buffers, volatile memory, and / or non-volatile memory). The processing circuitry 108 may include input devices, output devices, network interfaces, and / or buses communicatively coupled to the processor, memory, communication circuitry, input devices, output devices, and / or one or more other devices or components (e.g., motion sensors, proximity sensors, etc.). The processor of the processing circuitry 108 may execute instructions stored in the memory of the processing circuitry 108, such as executing one or more machine learning models (e.g., neural networks, such as deep learning networks, transformer-based models, and / or other attention-based models, multilayer perceptrons, or other feedforward networks) and / or other hardware, firmware, and / or software processes to perform the processes disclosed in this subject matter.

[0026] In one or more embodiments, one or more processors of processing circuitry 108 may be configured to operate communication circuitry of processing circuitry 108 (e.g., WiFi circuitry, cellular communication circuitry, and / or other communication circuitry) to communicate with one or more remote systems. For example, as shown in FIG1, vehicle 100 may communicate with one or more remote services such as cloud-based service 111. In one or more embodiments, routing service 109 (e.g., communication and routing service, or messaging and routing service, sometimes simply referred to as routing service for simplicity) may be provided for connecting vehicle 100 to cloud-based service 111.

[0027] Routing service 109 may include a connectivity interface for vehicle 100. For example, in one or more implementations, routing service 109 may provide a connectivity interface for an event-driven model of data communication and routing. Routing service 109 may provide a secure, reliable, and high-performance means to connect clients (e.g., vehicles such as vehicle 100) to cloud-based service 111 and vice versa.

[0028] In one or more specific implementations (and described in further detail below), routing service 109 may perform operations including: providing connectivity to vehicle or cloud-based service 111 (e.g., authentication via mutual transport layer security (mTLS) or using an identity management system (IDMS) access token); routing incoming payloads to vehicle telemetry (e.g., a new Rust-based vehicle telemetry or synchronization) service; publishing payloads to (e.g., the vehicle's) target asset ID; publishing payloads to a topic such as "my / topic"; publishing state to a topic such as "body / closed / front_driver"; subscribing to topic state such as "body / closed / front_driver"; performing ping / pong operations from clients; checking the online status of a given client (e.g., vehicle or cloud-based service); and / or executing one or more server commands to determine the health of the websocket service. Routing service 109 can provide features including: pub / sub service, pub / sub with state retention service, pub / sub to queue service, scalable routing, secure connection for vehicles and services, dynamic client (e.g., service) access policy updates, distributed system, autoscaling, publishing to target networked clients, retrieving connection status of another client and / or monitoring tools.

[0029] Routing service 109 may be provided by the manufacturer of vehicle 100, and cloud-based service 111 may be provided by one or more third-party vendors (e.g., vendors other than the manufacturer of vehicle 100). However, this is merely illustrative, and in one or more other specific implementations, routing service 109 may provide connectivity and / or routing for one or more vehicles manufactured by one or more manufacturers other than the manufacturer of vehicle 100 and / or the vendor of routing service 109.

[0030] Figure 1A The example of vehicle 100, implemented as a pickup truck with a cargo box, is merely illustrative. For example, Figure 1BAnother specific embodiment is illustrated, in which a vehicle 100, including a battery 110 and processing circuitry 108, is implemented as a sport utility vehicle (SUV), such as an electric sport utility vehicle. Figure 1B In one example, the vehicle 100, including battery 110 and processing circuitry 108, may include a cargo storage area at least in the rear of the vehicle, enclosed within the vehicle 100 (e.g., behind a row of seats in the vehicle's cabin). In other embodiments, vehicle 100 may be implemented as another type of electric truck, electric delivery vehicle, electric motor vehicle, electric car, electric motorcycle, electric scooter, electric bus, electric passenger or commercial truck, hybrid vehicle, or other vehicle, such as maritime or air transport vehicles, aircraft, helicopters, submarines, electric bicycles, boats, robots, or drones, and / or any other mobile device having processing circuitry 108. In one or more embodiments, battery 110 and processing circuitry 108 as described herein may also be implemented, or alternatively, in another device such as a building (e.g., a residential or commercial building, or any other building) or other stationary device.

[0031] Figure 2 A schematic diagram depicts an example of a system 200 according to one or more specific implementations. Figure 2 In the example, multiple vehicles (e.g., vehicles 100A, 100B, and 100C, and / or one or more other vehicles, such as hundreds, thousands, tens of thousands, hundreds of thousands, or millions of vehicles) are communicatively coupled to various cloud-based services 111 via routing service 109. Routing service 109 may include one or more container pods 215 and may be able to route inter- and / or intra-container communication. For example, different clients (e.g., vehicles 100A, 100B, 100C, and / or cloud-based services 111) may connect to different container pods 215 of routing service 109. Routing service 109 can provide a communication structure that allows communication between clients connected to different container pods 215 (e.g., in some examples, one client is unaware of which container pod another client is connected to).

[0032] exist Figure 2In the example, the vehicle can connect to the routing service 109 via a proxy server 201 (e.g., a reverse proxy, which can be implemented using an instance of Nginx or other software). In various implementations, the proxy server 201 and the routing service 109 can be provided by separate servers, or they can be implemented on the same server or a group of servers (e.g., for cooperative localization). In one or more implementations, the routing service 109 can perform the functions of the proxy server 201, and the proxy server 201 can be omitted. In one or more implementations, the proxy server 201 can provide a WebSocket interface between the vehicle and the routing service 109.

[0033] In one or more embodiments, proxy server 201 may perform authentication operations for verifying vehicles 100A, 100B, and 100C (e.g., using Mutual Transport Layer Security (mTLS) or certificate-based authentication). In one or more other embodiments, authentication operations may be performed at routing service 109 or another service, such as using token-based authentication (e.g., an access token issued by an identity management system). When a vehicle is authenticated, routing service 109 may establish a persistent wireless connection with the authenticated vehicle (e.g., a bidirectional connection, such as a WebSocket connection).

[0034] like Figure 2 As shown, routing service 109 can route communication between one or more vehicles and any one of the various cloud-based services (such as cloud-based services 111B, 111C, 111D, 111F, and 111G). For example, cloud-based service 111B can be a cloud-based cluster service (e.g., in some implementations, it can be implemented as a Redis cluster service or an Amazon Web Services (AWS) Elasticache cluster service). The cloud-based cluster service can store status information of one or more vehicles (e.g., when one or more cloud-based services are offline, the status information can be routed to one or more cloud-based services when a cloud-based service connects to routing service 109).

[0035] Cloud-based service 111C can be a cloud-based publish / subscribe (pub / sub, pubub, or PubSub) service (e.g., in some implementations, it can be implemented as a Redis PubSub service or an Amazon Web Services (AWS) Elasticache PubSub instance). A cloud-based pub / sub service can deliver data published by a vehicle to one or more cloud-based services, and / or deliver data published by a cloud-based service to one or more vehicles within a vehicle.

[0036] Cloud-based service 111D can be a cloud-based synchronization service (e.g., a vehicle telemetry service). As shown in the figure, cloud-based service 111 (routing service 109 can route information to and / or from it) can also include one or more other cloud-based services 111E, one or more publishing API services 111F, and / or one or more control API services 111G. In one or more specific implementations, and as described in further detail below, data and / or other information provided to routing service 109 from vehicles 100A, 100B and / or 100C and / or from cloud-based services 111B, 111C, 111D, 111F and / or 111G may be provided with route information, which may be used by routing service 109 to route the received data or information to the correct destination (e.g., routed to one or more other vehicles among vehicles 100A, 100B and / or 100C or routed between these vehicles, and / or routed to cloud-based services 111B, 111C, 111D, 111F and / or 111G or routed between these cloud-based services).

[0037] Figure 3 A schematic diagram of system 200 is shown, illustrating examples of other cloud services 111E. For example... Figure 3 As shown, Figure 2Other cloud services 111E may include connector services 111H (e.g., vehicle status retrieval service), guidance services 111I (e.g., Cellification), policy maker services 111J, policy databases 111K (e.g., Amazon DynamoDB database, which may be accessible via an API gateway in some specific implementations), compute services 111M (e.g., Amazon Lambda), connector services 111N (e.g., Amazon MSK Connect), and / or one or more additional cloud-based services 111L (e.g., Domain Name System (DNS), such as Amazon Route 53 or another DNS service, Apache Kafka, Amazon Simple Queuing Service (SQS), Amazon Simple Notification Service (SNS), Amazon Simple Storage Service (S3)), Amazon Kinesis, etc.).

[0038] In one or more implementations, routing service 109 can facilitate efficient publishing and / or subscribing to cell-based services, including routing necessary data (e.g., ownership transfer) to cell-based clusters (e.g., MSK clusters). In one or more implementations, routing service 109 can provide cloud-side policy management. Cloud-side policy management can include applying and maintaining policies based on per-client access policies when connecting to routing service 109. Access can be managed based on topics and client identifiers through allow and disallow policies. For example, cloud-side applications leveraging policies reduce connection complexity and alleviate the need for services such as claim publishers. In one or more implementations, cloud-side policy management can include the dynamic addition or modification of client policies (e.g., the addition or modification of client policies can be updated via a new (e.g., REST) ​​API managed by privileged users). Cloud-side policy management can include the momentary termination of client connections to disconnect unwanted clients.

[0039] In one or more specific implementations, the routing service 109 may provide message queues (e.g., allowing clients greater flexibility in the workloads they perform). Providing message queues may include providing a simple interface to create streaming queues (e.g., Redis streaming queues) and to set up queue configuration and subscription capabilities.

[0040] In one or more specific implementations, routing service 109 may provide protocol buffer support. For example, to reduce data usage, routing service 109 may guarantee type safety and allow backward compatibility. Providing support for handling protocol buffer payloads can increase the flexibility of client data patterns.

[0041] In one or more specific implementations, routing service 109 may provide the development of client libraries (e.g., in various languages ​​such as Python and / or Go (Golang)). Providing (e.g., in popular languages) the creation of client libraries can abstract away the complexity and protocols from the client, allowing them to focus on building their applications. For example, client libraries may be able to plug into their client codebase and allow for easy, simplified access to routing service 109.

[0042] Figure 4 This is a sequence diagram illustrating various aspects of routing that can be performed by routing service 109 (e.g., including routing and / or messaging operations not included in a typical pub / sub service). For example, routing service 109 can receive a ping request (e.g., from cloud-based service 111 or from vehicle 100) for client 400 (e.g., for vehicle 100 or cloud-based service 111), and can route the ping directly to client 400. As shown, client 400 can respond with a pong. As another example, routing service 109 can receive a vehicle telemetry request and can route the information received along with the vehicle telemetry request to a vehicle telemetry service (e.g., cloud-based service 111D). As another example, routing service 109 can receive a publish request with a topic and can route the information received along with the publish request to a pub / sub service (e.g., cloud-based service 111C), which can (e.g., via routing service 109) provide the information to all networked subscribers of that topic.

[0043] As another example, routing service 109 may receive a publish request for an asset (e.g., including identifiers of one or more assets, including client 400) and may route the information received along with the publish request to a pub / sub service (e.g., cloud-based service 111C), which may then provide the information to the identified asset. As another example, routing service 109 may receive a publish request with state and may route the state information received along with the publish request to a cluster service (e.g., cloud-based service 111B). In one or more implementations, state may be published using a time-to-live (TTL), which sets the amount of time after which messages (e.g., about a topic) automatically expire. As illustrated, the cluster service may provide information (e.g., at different times, such as when a subscribed client comes online) to the pub / sub service (e.g., cloud-based service 111C), which may then provide the information to subscribers of that state (e.g., when a subscriber connects to the pub / sub service). As another example, routing service 109 can receive subscription requests for states (e.g., one or more vehicles) and can provide subscriber information to the pub / sub service. As shown, the pub / sub service can then provide the received state information published to that state to the state subscribers (e.g., and other state subscribers) (e.g., when information for that state is published to the pub / sub service via routing service 109). As shown, the pub / sub service can also provide state information to clients that have subscribed to a specific asset whose state information has been published.

[0044] Routing service 109 may (e.g., in a route request to routing service 109) use wildcards to facilitate route identification, enabling information to be routed to and / or received from one or more client groups or categories falling under the category covered by the wildcard (e.g., groups of vehicles 100 and / or cloud-based services 111). Clients may also use wildcards to subscribe to and / or publish to topics, statuses, and / or assets.

[0045] The code executed to perform the operation of routing service 109 can be compiled from human-readable code in a programming language (e.g., Rust) that implicitly releases memory after a portion of the code used to execute the code has been used. In one or more implementations, when the memory used to execute a portion of the code is shared memory utilized by multiple processes, the code executed to perform the operation of routing service 109 may also include explicit memory release operations for the shared memory.

[0046] Figure 5A flowchart illustrating an example process that can be performed by a routing service according to a specific implementation of the techniques in this subject matter is provided. For illustrative purposes, this document primarily refers to... Figures 1A to 3 The process 500 is described using the means of transportation 100 and the routing service 109. However, the process 500 is not limited to... Figures 1A to 3 The means of transport 100 and routing service 109, and one or more boxes (or operations) of process 500 may be performed by one or more other components of other suitable mobile devices, equipment, or systems. Also for illustrative purposes, some boxes of process 500 are described herein as occurring sequentially or linearly. However, multiple boxes of process 500 may occur in parallel. Furthermore, the boxes of process 500 do not need to be performed in the order shown, and / or one or more boxes of process 500 need not be performed and / or may be replaced by other operations.

[0047] like Figure 5 As illustrated, at box 502, a routing service (e.g., routing service 109) can receive vehicle data from a vehicle (e.g., vehicle 100A) via a persistent wireless connection. For example, the persistent wireless connection could include a websocket connection or other persistent connection that provides bidirectional communication, for example, via a single channel (e.g., a single Transmission Control Protocol (TCP) channel).

[0048] At box 504, the routing service may provide vehicle data to one or more cloud-based services (e.g., one or more of cloud-based services 111B, 111C, 111D, 111F, 111G, 111H, 111I, 111J, 111K, 111L, 111M, and / or 111N) based on information received along with the vehicle data (e.g., communication route information). The route information may include a subject for publishing the vehicle data. In one or more embodiments, the route information includes a status for publishing the vehicle data.

[0049] Process 500 may also include verifying the vehicle before receiving vehicle data (e.g., verifying the vehicle as associated with an account associated with routing service 109), and establishing a persistent wireless connection in response to verifying the vehicle. For example, verifying the vehicle may include verifying the vehicle at a server using a token (e.g., an access token). As another example, verifying the vehicle may include verifying the vehicle at a proxy server (e.g., using mTLS).

[0050] The vehicle data may include the vehicle's status information. As an example, status information may include operating status (e.g., start, off, asleep, driving, parked, etc.), vehicle speed, vehicle location, vehicle odometer reading, vehicle fuel level reading, door lock status, window status, software version number, vehicle location, and / or any other vehicle information. Vehicle data may include a vehicle identifier (ID). As an additional example, vehicle status information may include the vehicle's charging status (e.g., charging, not charging, connected to a charger), vehicle charging level, vehicle service-related status (e.g., one or more previous service dates, service expiration status, etc.), vehicle ownership status, vehicle driver information, etc. As an additional example, vehicle status information may include status information for one or more vehicle components, such as the locking status of one or more door locks, the open / closed status of one or more windows, tire pressure, tread depth, fluid level, sensor status, temperature, etc.

[0051] In one or more implementations, routing vehicle data to one or more cloud-based services may include routing vehicle data to multiple different cloud-based services (e.g., simultaneously or at different times). For example, a routing service may provide clients (e.g., vehicles, cloud-based services, user devices, etc.) with the ability to communicate with other clients (e.g., other vehicles, cloud-based services, user devices, etc., which may have their own authentication requirements and / or communication protocols) using a single common communication protocol (e.g., as defined by the routing service) and only using a single authentication for each client (e.g., with the routing service, rather than individually with each other client), after which a persistent connection to the routing service can be maintained. In one or more implementations, routing vehicle data to one or more cloud-based services may include routing vehicle data to a cloud-based publish / subscribe service (e.g., cloud-based service 111C). Routing vehicle data to one or more cloud-based services may include routing vehicle data to a cloud-based clustered storage service (e.g., cloud-based service 111B). In one or more embodiments, cloud-based publish / subscribe services and / or cloud-based cluster storage services may provide (e.g., publish) some or all of the vehicle data (e.g., directly or via routing service 109) to one or more other devices (e.g., devices provided to the vehicle owner, such as devices with vehicle-related applications that allow the owner to subscribe to the vehicle data). In one or more embodiments, the vehicle data includes vehicle telemetry data, and routing the vehicle data to one or more cloud-based services includes routing the vehicle data to a synchronization service (e.g., a vehicle telemetry service, such as cloud-based service 111D).

[0052] Process 500 may further include receiving, at a routing service, a request from the vehicle for the online status of at least one of the one or more cloud-based services, and the routing service providing the vehicle with the online status of at least one of the one or more cloud-based services. Process 500 may also include receiving, at a routing service, a request from one of the one or more cloud-based services for the vehicle's online status (e.g., an indication of whether the vehicle is online); and the routing service providing the vehicle's online status to one of the one or more cloud-based services. In one or more embodiments, the routing service may maintain connectivity information for one or more cloud-based services and / or at least one vehicle (e.g., each of them).

[0053] Process 500 may further include receiving additional information (e.g., wireless software updates, door lock commands, start commands, etc.) from one of one or more cloud-based services at a routing service; and routing the additional information to vehicles by the routing service based on additional information received along with the additional information (e.g., additional route information, such as one or more vehicle identifiers and / or identifiers of a class or group of vehicles). Process 500 may also include routing additional data to at least one other vehicle by the routing service based on additional information received along with the additional information. For example, the additional additional information may include information identifying a vehicle category (e.g., a group of vehicles in a geographic area, or a group of vehicles currently at a service center, dealership, or delivery station, or a group of vehicles corresponding to a commercial fleet). As an example, the additional information may include a wireless software update or a command to lock the doors of the vehicle and at least one other vehicle (e.g., using a wildcard that extends the vehicle identifier to multiple vehicles, such as a class of vehicles).

[0054] As an example, routing vehicle data to one or more cloud-based services may include routing vehicle data to a collection of containers (e.g., running in a cluster such as an Amazon Elastic Kubernetes Service (EKS) cluster) that include (e.g., start and run) threads corresponding to the vehicle. Process 500 may also include routing one or more communications from container pods to at least one other container pod that includes threads corresponding to at least one other vehicle. As discussed herein, routing service 109 may automatically scale up or down in response to increased or decreased demand on the service (e.g., increased or decreased processing and / or memory utilization). For example, the service may be scaled up (e.g., in response to increased demand) by adding more container pods to the cluster (e.g., EKS container pods pointing to the same Elasticache). In this way, the added container pods can automatically integrate and communicate with existing container pods to form a new cluster collective.

[0055] As another example, service can be scaled down in response to reduced demand for the service (e.g., decreased processing and / or memory utilization) by removing container pods (e.g., EKS container pods) from the cluster. The remaining container pods can remain unaffected by the reduction in container pods and thus continue to provide overall service (e.g., no service loss).

[0056] Figure 6 A flowchart illustrating an example process that can be performed by a vehicle according to a specific implementation of the techniques described herein is provided. For illustrative purposes, this document primarily refers to... Figures 1A to 3The process 600 is described using the means of transportation 100 and the routing service 109. However, the process 600 is not limited to... Figures 1A to 3 The means of transport 100 and routing service 109, and one or more boxes (or operations) of process 600 may be performed by one or more other components of other suitable mobile devices, equipment, or systems. Also for illustrative purposes, some boxes of process 600 are described herein as occurring sequentially or linearly. However, multiple boxes of process 600 may occur in parallel. Furthermore, the boxes of process 600 do not need to be performed in the order shown, and / or one or more boxes of process 600 need not be performed and / or may be replaced by other operations.

[0057] like Figure 6 As illustrated, at box 602, the vehicle can generate communication route information (e.g., subject, identifier of a cloud-based service, status, etc.) indicating the communication route for vehicle data used by the vehicle. For example, a persistent wireless connection may include a WebSocket connection.

[0058] At box 604, the vehicle can provide route information and vehicle data to the routing service (e.g., routing service 109) via a persistent wireless connection to the routing service for delivery by the routing service to one or more cloud-based services (e.g., one or more of cloud-based services 111B, 111C, 111D, 111F, 111G, 111H, 111I, 111J, 111K, 111L, 111M and / or 111N).

[0059] Process 600 may further include providing vehicle authentication information from the vehicle, and establishing a persistent wireless connection with a routing service in response to authentication of the vehicle using the authentication information. Providing the authentication information may include providing the authentication information from the vehicle to the routing service. Providing the authentication information may include providing the authentication information from the vehicle to a proxy server (e.g., proxy server 201) of the routing service. In one or more embodiments, process 600 may further include the vehicle providing a subscription request to the routing service, and the vehicle receiving data published from the routing service from one of one or more cloud-based services corresponding to the subscription request. For example, the subscription request may identify one or more of the following: a topic, a topic status, or an identifier of one of the one or more cloud-based services. For example, communication route information may include at least one of the following: a vehicle identifier, a topic, or a status.

[0060] Specific embodiments within the scope of this disclosure may be implemented in part or in whole using tangible computer-readable storage media (or multiple tangible computer-readable storage media of one or more types) that encode one or more instructions. The tangible computer-readable storage media may also be non-transitory in nature.

[0061] Computer-readable storage media can be any storage medium that can be read, written, or otherwise accessed by general-purpose or special-purpose computing devices, including any processing electronics and / or processing circuitry capable of executing instructions. For example, but not limited to, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, track memory, FJG, and Millipede memory.

[0062] Furthermore, computer-readable storage media can include any non-semiconductor memory, such as optical disc storage devices, magnetic disk storage devices, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more embodiments, the tangible computer-readable storage medium may be directly coupled to a computing device, while in other embodiments, the tangible computer-readable storage medium may be indirectly coupled to a computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.

[0063] Instructions can be directly executable or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or as instructions in a high-level language that can be compiled to produce executable or non-executable machine code. Furthermore, instructions can be implemented as data or may include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be recognized by those skilled in the art, details including, but not limited to, the number, structure, sequence, and organization of instructions can vary significantly without altering the underlying logic, functionality, processing, and output.

[0064] While the above discussion primarily concerns microprocessors or multi-core processors that execute software, one or more specific implementations are executed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuit itself.

[0065] Unless otherwise specified, elements mentioned in the singular are not intended to mean one and only one, but rather one or more. For example, a “one” module can refer to one or more modules. Without further constraints, elements beginning with “a,” “an,” “the,” or “the” do not exclude the presence of additional identical elements.

[0066] Titles and subtitles (if any) are used for convenience only and do not limit the invention. The use of the word "exemplary" is intended to be illustrative or representative. With regard to the scope of the use of terms such as "comprising" or "having," such terms are intended to be inclusive in a manner similar to the term "comprising," as understood when "comprising" is used as a transitional word in the claims. Relational terms such as "first" and "second" can be used to distinguish one entity or action from another without necessarily requiring or implying any actual such relationship or order between these entities or actions.

[0067] Phrases such as "aspect," "the aspect," "on the other hand," "some aspects," "one or more aspects," "one embodiment," "the embodiment," "another embodiment," "some embodiments," "one or more embodiments," "an implementation scheme," "the implementation scheme," "another implementation scheme," "some implementation schemes," "one or more implementation schemes," "a configuration," "the configuration," "another configuration," "some configurations," "one or more configurations," "the subject matter," "disclosure," "this disclosure," other variations thereof, and similar phrases are for convenience and do not imply that the disclosure associated with such phrases is necessary for the subject matter or that such disclosure applies to all configurations of the subject matter. The disclosure associated with such phrases may apply to all configurations or one or more configurations. One or more examples of the disclosure associated with such phrases may be provided. Phrases such as "aspect" or "some aspects" may refer to one or more aspects, and vice versa, and this similarly applies to other foregoing phrases.

[0068] The phrase “at least one of” following a series of items, along with the terms “and” or “or” used to separate any of these items, modifies the entire list, not each of its constituent items. The phrase “at least one of” does not require the selection of at least one item; rather, it allows for the inclusion of the meaning of: at least one of any of these items, and / or at least one of any combination of these items, and / or at least one of each of these items. As an example, each of the phrases “at least one of A, B, and C” or “at least one of A, B, or C” refers to only A, only B, or only C; any combination of A, B, and C; and / or at least one of each of A, B, and C.

[0069] It should be understood that the specific order or hierarchy of the disclosed steps, operations, or processes is an example of an exemplary method. Unless otherwise expressly stated, it should be understood that the specific order or hierarchy of steps, operations, or processes may be performed in a different order. Some steps, operations, or processes may be performed simultaneously. The appended method claims (if any) present elements of various steps, operations, or processes in a sample order and are not intended to limit them to the specific order or hierarchy presented. These may be performed sequentially, linearly, in parallel, or in a different order. It should be understood that the described instructions, operations, and systems may generally be integrated together in a single software / hardware product or packaged into multiple software / hardware products.

[0070] In one respect, the term "coupled" can refer to direct coupling. In another respect, the term "coupled" can refer to indirect coupling.

[0071] Terms such as top, bottom, front, back, side, horizontal, and vertical refer to arbitrary frames of reference, not ordinary gravitational frames of reference. Therefore, such terms can extend upward, downward, diagonally, or horizontally within a gravitational frame of reference.

[0072] This disclosure is provided to enable any person skilled in the art to practice the various aspects described herein. In some instances, well-known structures and components are shown in block diagram form to avoid confusion with the concepts of this subject matter. This disclosure provides various examples of this subject matter, and this subject matter is not limited to these examples. Various modifications to these aspects will be apparent to those skilled in the art, and the principles described herein can be applied to other aspects.

[0073] All structural and functional equivalents of the elements of the various aspects described throughout this disclosure are known or will later become apparent to a person skilled in the art, and are expressly incorporated herein by reference and intended to be covered in the claims. Furthermore, nothing disclosed herein is intended to serve the public, whether or not such disclosure is expressly stated in the claims. No claim element should be interpreted in accordance with 35 USC §112(f) unless the element is expressly stated using the phrase “component for…” or, in the case of a method claim, using the phrase “step for…”.

[0074] Those skilled in the art will understand that the various exemplary blocks, modules, elements, components, methods, and algorithms described herein can be implemented as hardware, electronic hardware, computer software, or combinations thereof. To illustrate this hardware-software interchangeability, various exemplary blocks, modules, elements, components, methods, and algorithms have been described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the system as a whole. Those skilled in the art can implement the described functionality in different ways for each specific application. Various components and blocks can be arranged differently (e.g., in different orders or divided in different ways), all without departing from the scope of the subject matter.

[0075] The title of the invention, background art, description of the drawings, abstract of the specification, and drawings are hereby incorporated in this disclosure and are provided as illustrative examples rather than as limiting descriptions. It is understood at the time of filing this document that they are not intended to limit the scope or meaning of the claims. Furthermore, in the detailed description, it will be apparent that, for the purpose of simplifying this disclosure, the description provides illustrative examples, and various features are grouped together in various specific embodiments. The methods of this disclosure should not be construed as reflecting an intention to require more features than are expressly stated in each claim. Rather, as reflected in the claims, the subject matter of the invention does not lie in all features of a single disclosed configuration or operation. The claims are hereby incorporated in the detailed description, wherein each claim is independently claimed as a separate subject matter.

[0076] The claims are not intended to be limited to the aspects described herein, but should be given the full scope consistent with the language of the claims and to cover all legal equivalents. Nevertheless, none of the claims is intended to include subject matter that fails to meet the requirements of applicable patent law, nor should it be interpreted in this way.

Claims

1. A method, the method comprising: The routing service receives vehicle data from the vehicle via a continuous wireless connection. as well as The routing service routes the vehicle data to one or more cloud-based services based on information received along with the vehicle data.

2. The method of claim 1, wherein the persistent wireless connection includes a websocket connection.

3. The method according to claim 1, further comprising: Verify the vehicle before receiving the vehicle data; as well as The persistent wireless connection is established in response to verification of the vehicle.

4. The method of claim 3, wherein verifying the means of transport includes verifying the means of transport using a token at the routing service.

5. The method of claim 3, wherein verifying the vehicle includes verifying the vehicle at a proxy server.

6. The method according to claim 1, wherein the vehicle data includes the status information of the vehicle.

7. The method of claim 1, wherein routing the vehicle data to the one or more cloud-based services includes routing the vehicle data to at least one of: a cloud-based publish / subscribe service or a cloud-based cluster storage service.

8. The method of claim 1, wherein the vehicle data includes vehicle telemetry data, and wherein routing the vehicle data to the one or more cloud-based services includes routing the vehicle data to a synchronization service.

9. The method of claim 1, wherein the information received together with the vehicle data includes route information for routing the vehicle data.

10. The method of claim 9, wherein the route information includes a topic for publishing the vehicle data or a topic status for publishing the vehicle data.

11. The method according to claim 1, further comprising: The routing service receives a request from the vehicle for the online status of at least one of the one or more cloud-based services. The routing service provides the vehicle with the online status of at least one of the one or more cloud-based services. The routing service receives a request for the online status of at least the vehicle from one of the one or more cloud-based services. as well as The routing service provides at least the online status of the vehicle to one of the one or more cloud-based services.

12. The method according to claim 1, further comprising: Receive additional information from one of the one or more cloud-based services at the routing service; as well as The additional information is routed to the vehicle by the routing service and based on additional information received along with the additional information.

13. The method according to claim 12, further comprising: The additional information is routed to at least one other mode of transport by the routing service and based on additional information received along with the additional information.

14. The method of claim 13, wherein the additional information includes information identifying the vehicle category.

15. The method of claim 13, wherein the additional information includes wireless software updates or commands to lock the doors of the vehicle and the at least one other vehicle.

16. The method of claim 1, wherein routing the vehicle data to the one or more cloud-based services includes routing the vehicle data to a container pod that includes a thread corresponding to the vehicle, and wherein the method further includes routing one or more communications from the container pod to at least one other container pod, the at least one other container pod including a thread corresponding to at least one other vehicle.

17. A routing service, the routing service being configured to: Receive vehicle data from the vehicle via a continuous wireless connection; and The vehicle data is routed to multiple cloud-based services based on information received along with the vehicle data, the multiple cloud-based services including at least a synchronization service and a cloud-based publish / subscribe service.

18. A method, the method comprising: At the vehicle, communication route information is generated that indicates the communication route for vehicle data used by the vehicle; as well as The vehicle provides the communication route information and vehicle data to the routing service via a continuous wireless connection for delivery by the routing service to one or more cloud-based services.

19. The method according to claim 18, further comprising: Provide the vehicle's verification information from the vehicle; as well as In response to the authentication of the vehicle using the authentication information, a persistent wireless connection is established with the routing service, wherein providing the authentication information includes providing the authentication information from the vehicle to the routing service or a proxy server of the routing service.

20. The method according to claim 19, further comprising: The vehicle makes a subscription request to the routing service; as well as The vehicle receives data published by the routing service from one of the one or more cloud-based services corresponding to the subscription request, wherein the subscription request identifies one or more of the following: topic, topic status, or identifier of the one of the one or more cloud-based services, and wherein the communication route information includes at least one of the following: the vehicle's identifier, topic, or status.