Subscription system for vehicle data streams
A vehicle data streaming service manages a catalog of attributes to streamline data delivery from diverse sources to destinations, optimizing data transmission and ensuring secure access, thus addressing inefficiencies and enhancing interoperability.
Patent Information
- Application Number
- JP2024572688
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-06-10
- Filing Date
- 2023-06-09
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2043-06-09
AI Technical Summary
Connecting and coordinating the delivery of data streams from multiple vehicle sensors to multiple destinations presents significant challenges due to the diversity and heterogeneity of vehicle data, leading to inefficiencies and unnecessary network load.
A vehicle data streaming service that manages a curated catalog of vehicle attributes, allowing data stream sources to register and associate their data streams with these attributes, and enables destinations to subscribe to relevant data, while transforming and routing data to conform to standardized formats and access requirements.
This service improves data sharing by reducing unnecessary data transmission and filtering, enhancing efficiency and interoperability, and ensuring secure access to sensitive vehicle data.
Smart Images

Figure 0007812013000001 
Figure 0007812013000002 
Figure 0007812013000003
Abstract
Description
[Background technology]
[0001] Modern vehicles, such as cars, trucks, and motorcycles, are often manufactured with electronic sensors and include computer systems programmed with control algorithms that take input from such electronic sensors and determine various control actions for the vehicle (or systems implemented therein). These modern vehicles are equipped with an increasingly diverse range of sensors that generate different types and amounts of data, often exceeding those generated in previous vehicles. Such data generated from the various sensors can be stored or transmitted for use by various users, such as downstream applications or data analysis. However, connecting and coordinating the delivery of data streams from multiple data sources, such as vehicle sensors, to multiple destinations presents significant challenges. [Brief explanation of the drawings]
[0002] [Figure 1] Illustrates a vehicle data streaming service that provides a curated catalog of vehicle attributes, enables vehicle data stream sources to register data streams associated with vehicle attributes that are or should be included in the catalog, and, in response to successful registration, associates the data streams with the vehicle attributes in the catalog. The vehicle data streaming service also enables vehicle data stream destinations to subscribe to the vehicle attributes included in the catalog. The vehicle data streaming service further receives streamed vehicle data from data stream sources and transmits streamed vehicle data that conforms to registration requirements to the data stream destinations. Additionally, according to some embodiments, the vehicle data streaming service manages the vehicle attribute catalog and manages registration / subscription of one or more sources / destinations (and associated mappings). [Figure 2]FIG. 1 illustrates a more detailed view of the vehicle data streaming service and the registration flow of a vehicle data stream provider to vehicle attributes of a data stream source, according to some embodiments, including the flow of vehicle data from the vehicle and the formatting of the vehicle data to conform to the streaming service vehicle schema. [Figure 3] FIG. 1 illustrates a more detailed view of a vehicle data streaming service and a subscription flow of a data stream to a data stream destination, according to some embodiments, including receiving streamed vehicle data associated with vehicle attributes and providing the streamed data of the subscribed attributes to the data stream destination. [Figure 4A] FIG. 10 illustrates a more detailed view of a vehicle data streaming service evaluating subscription requests from data stream requestors for data to be delivered to destinations having a vehicle schema that differs from the schema used by the vehicle data streaming service, according to some embodiments. [Figure 4B] FIG. 1 illustrates a more detailed view of a vehicle data streaming service and a data schema reconciliation engine that reconciles differing vehicle schemas between those used by a data stream destination and those used by the vehicle data streaming service, according to some embodiments. [Figure 4C] FIG. 10 illustrates a more detailed view of a vehicle data streaming service showing a reconciled vehicle schema between a data stream destination and a vehicle data streaming service, according to some embodiments, where streamed vehicle data is delivered to the data stream destination using a matching schema that matches the destination schema. [Figure 5] 1 illustrates a more detailed view of a vehicle data streaming service showing management, including vehicle attribute catalog management, according to some embodiments; [Figure 6A]1 illustrates a more detailed view of a data streaming service and a mapping between a first data stream source and a single data stream destination, according to some embodiments. [Figure 6B] 1 illustrates a more detailed view of a data streaming service and a mapping between a second data stream source and a single data stream destination, according to some embodiments, where the single destination is subscribed to vehicle attributes with multiple (alternative) sources. [Figure 6C] 1 illustrates a more detailed view of a data streaming service and removing a first data stream source and maintaining a mapping between a second data stream source and a single data stream destination, according to some embodiments. [Figure 7] 1 illustrates a more detailed view of a data streaming service and a mapping between a single data stream source and multiple data stream destinations in different jurisdictions, according to some embodiments. [Figure 8] 1 illustrates a flowchart of operations performed by a vehicle data streaming service to provide a catalog of vehicle attributes, register data stream sources with the vehicle attributes, and provide streamed vehicle data based on subscriptions to selected vehicle attributes in the catalog, according to some embodiments. [Figure 9] 1 illustrates a flowchart of operations for registering a vehicle data stream source and associating the vehicle data stream source with a given vehicle attribute, according to some embodiments, where approval for registration is determined based on the streamed vehicle data source conforming to a vehicle schema for the given vehicle attribute. [Figure 10] 10 illustrates a flowchart of operations performed by a vehicle data streaming service to approve a subscription request based on determining whether access credentials are sufficient for selected vehicle attributes, according to some embodiments. [Figure 11]1 illustrates a block diagram illustrating an example computer system that may implement some or all of the techniques described herein, according to some embodiments.
[0003] Although embodiments are described herein by way of example in certain embodiments and illustrative drawings, those skilled in the art will recognize that the embodiments are not limited to the described embodiments or drawings. It should be understood that the drawings and their detailed description are not intended to limit the embodiments to the particular forms disclosed, but rather, the intent is to cover all modifications, equivalents, and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or claims. As used throughout this application, the word "may" is used in its permissive sense (i.e., meaning having the potential to), rather than its required sense (i.e., meaning must). Similarly, the words "include," "including," and "includes" mean including, but not limited to. DETAILED DESCRIPTION OF THE INVENTION
[0004] The systems and methods described herein include techniques for implementing a vehicle data streaming service for managing vehicle data provided by multiple vehicle data stream sources and received at multiple data stream destinations.
[0005] One trend in the automotive industry is an increasing focus on the concept of connected vehicles equipped with electronic sensors utilized for a variety of applications, from improving vehicle fuel efficiency to increasing automation using artificial intelligence (AI). Vehicles are generating exponentially more data with each new generation of vehicle and are beginning to differentiate from each other not only mechanically but also increasingly through software. As vehicles become more advanced and rely on more sensors that generate large amounts of data, the opportunities to use such sensor data to improve vehicle performance also increase. For example, for a given set of data streams generated from a vehicle, there may be multiple specialized data stream providers, each managing a respective portion of the vehicle sensor data. Furthermore, there may be multiple data stream destinations, each interested in receiving a portion of the vehicle data. For example, some destinations may only be interested in receiving selected portions of the vehicle data generated by the vehicle, such as one or more selected vehicle streams related to analyses performed using the streamed vehicle data. Transmitting all available data from a vehicle not only creates unnecessary network load involved in transferring large amounts of data, but also potentially creates inefficiencies by requiring the destination to filter vehicle data that is irrelevant. Thus, a vehicle data streaming service that connects vehicle data stream sources to specific vehicle attributes and allows vehicle data stream consumers to opt to receive only vehicle data for selected vehicle attributes improves data sharing by reducing the transmission and filtering of unnecessary vehicle data. The vehicle data streaming service also provides a mechanism for advertising available vehicle attributes to potential vehicle data consumers and for seamlessly connecting vehicle data stream sources and vehicle data stream destinations in a simple manner.For example, the vehicle data streaming service may manage the mappings and connections such that a subscriber to a vehicle data stream for a selected attribute may simply provide a destination address to which the subscribed streaming vehicle data for the selected attribute is to be delivered, and the vehicle data streaming service may route the streaming vehicle data from the vehicle data source to the destination and / or perform any necessary transformations to the streaming vehicle data such that the streaming vehicle data conforms to the vehicle data streaming service's schema and is delivered to the destination in a standardized format.
[0006] For example, in addition to the fact that there may be multiple data stream sources and multiple destinations, an administrator of an individual destination may not be aware of all of the data stream sources to which it is possible to subscribe. Also, even if an administrator of a given data stream destination is aware of a data stream source and is interested in receiving streaming data from it, the process of creating a data stream, including whether the data stream destination has valid access credentials, may still require coordination between the data stream destination administrator and the data stream source administrator. Additionally, vehicle data from various data stream sources may be further structured into different vehicle schemas and may need to be modified to be usable by the data stream destination, which may present challenges with standardization and interoperability of vehicle data. Accordingly, in some embodiments, a vehicle data streaming service may be used to facilitate the transfer of vehicle data between data stream sources and data stream destinations to address these challenges.
[0007] For example, in some embodiments, a vehicle data streaming service may facilitate the movement of vehicle data from various sources by providing a curated catalog of vehicle attributes and by allowing vehicle data stream sources to register and associate their data streams with the vehicle attributes in the catalog. The vehicle data streaming service may allow vehicle data stream destinations to subscribe to vehicle attributes in the vehicle catalog. For example, the vehicle data streaming service may obtain streamed vehicle data from vehicle data stream sources and transmit the received streamed data to vehicle data stream destinations. The vehicle data streaming service may further provide governance of the registration / subscription process and impose data schema and access requirements. Additionally, the vehicle data streaming service may manage the vehicle attribute catalog and assist in the discovery of relevant vehicle attributes.
[0008] 1 illustrates a vehicle data streaming service that provides a curated catalog of vehicle attributes, enables registration of data streams with the data streaming service, and, in response to successful registration, associates the data streams with vehicle attributes in the catalog. The vehicle data streaming service also enables vehicle data stream destinations to subscribe to vehicle attributes in the catalog. The vehicle data streaming service further receives streamed vehicle data from data stream sources and transmits streamed vehicle data that conforms to registration requirements to the data stream destinations. Additionally, according to some embodiments, the vehicle data streaming service manages the vehicle attribute catalog and manages registrations / subscriptions of one or more sources / destinations.
[0009] 1, the vehicle data streaming service 104 includes a vehicle attribute catalog 106 and a data stream source-destination mapping 152. The vehicle data streaming service 104 may allow one or more users to manage 150 the vehicle streaming service through an interface, where one or more users may be able to configure the vehicle data streaming service 104. The vehicle data streaming service 104 may allow one or more users to manage the vehicle attribute catalog 106, change one or more governance policies of the vehicle data streaming service 104, etc. In some embodiments, the vehicle data streaming service 104 may allow one or more users to create, update, or delete vehicle attributes and one or more pieces of associated metadata. Managing the vehicle streaming service is further described in FIG. 5.
[0010] As an example, in some embodiments, the vehicle data streaming service 104 may receive a request 152 to register the data stream source from the data stream source 102. In some embodiments, the request 152 to register the data stream source may further include requesting that the vehicle data stream source be recognized by the vehicle data streaming service 104 as a vehicle data stream source, and additionally providing information necessary to establish a streaming relationship, where the vehicle data streaming service 104 may be an endpoint of a data pipeline from the vehicle data stream source (the vehicle data streaming service further provides the streamed vehicle data provided to the endpoint to vehicle data consumers). In some embodiments, the request 152 to register the data stream source may include one or more access credentials required to be recognized as a legitimate data stream source by the vehicle data streaming service 104. In some embodiments, the vehicle data streaming service 104 may send registration requirements to the data stream source to complete the registration. The registration requirements may include identity information for the source infrastructure, configurations necessary to conform to the data source's message schema, vehicle attributes to associate with the source, and / or mappings necessary to configure the vehicle data schema. The data stream source may further submit necessary registration information 110 in accordance with registration requirements 108 to complete the registration of the data stream source and effectuate the association of the data stream source with one or more vehicle attributes in vehicle attribute catalog 106. Various registration interactions may occur through a registration interface 112 of vehicle data streaming service 104. In some embodiments, the registration request may require approval by vehicle data streaming service 104. In some embodiments, the registration request may require approval obtained as part of interactions involving management 150 of the vehicle streaming service.If the registration request is approved, a streamed vehicle data stream 130 that complies with the registration requirements may be sent to the vehicle data streaming service 104. The registration workflow and the interaction between the data stream source 102 and the vehicle data streaming service 104 is further described in FIG.
[0011] In some embodiments, one or more data stream destinations 146 may browse 140 the vehicle attribute catalog to discover attributes available in the vehicle attribute catalog that correspond to data of interest to be received at the data stream destination. The data stream destination 146 may send a subscription request 144 to receive data associated with the discovered vehicle attributes of interest. The subscription request 144 and the request to browse 140 the catalog may be implemented through a subscription interface 142 of the vehicle data streaming service 104. As further discussed in FIG. 3 , in some embodiments, the data stream destination and the entity issuing the request to subscribe to the data stream at the data stream destination may be the same entity or different entities. Upon a successful subscription request, the data stream source-destination mapping 152 may create a mapping between the streamed vehicle data 130 and the data stream destination 146 that complies with registration requirements. The vehicle data streaming service 104 may send the streamed vehicle data stream 132 corresponding to the subscription request to the data stream destination 146. In some embodiments, the streamed vehicle data 132 corresponding to the subscription request may be modified to conform to the schema of the data stream destination 146. The subscription workflow and the interaction between the data stream source 102 and the vehicle data streaming service 104 are further described in FIGS. 3 and 4A-4C. Additionally, the data stream destination 146 may be any number of downstream services / applications. In some embodiments, the data stream destination 146 may be a vehicle shadow that enables interaction with a user from a virtual representation of a connected vehicle. In some embodiments, the data stream destination 146 may be a data analytics service, a data lake that provides a repository of vehicle data, and / or other data storage services.
[0012] 1 depicts only one data stream source 102, any number of data sources may send vehicle information to the vehicle data streaming service 104. The vehicle data streaming service 104, in various embodiments, may be a device or system for managing the distribution, storage, retrieval, and / or processing of large-scale vehicle data streams. The vehicle data streaming service 104 may be designed to handle hundreds or even thousands of simultaneous data sources and destinations. The term “data stream,” as used herein, refers to a sequence of vehicle data records that may be generated by one or more data sources (e.g., vehicle sensors) or producers (e.g., vehicles, vehicle service centers) and that may be accessed by one or more vehicle data consumers at one or more destinations.
[0013] It should be noted that the preceding description of the vehicle data streaming service 104 is a logical illustration and, therefore, should not be construed as limited to any particular implementation of network addresses, system interfaces, or various other features. In some embodiments, various other registration flow steps may be used to associate vehicle data streams from the data stream sources 102 with vehicle attributes in the vehicle attribute catalog 106. In various embodiments, different combinations or implementations may be implemented.
[0014] This specification continues with various examples of vehicle data streaming services, including different components / modules or arrangements of components / modules that may be employed as part of implementing a vehicle data streaming service. Then, several different methods and techniques are discussed, some of which are illustrated in the accompanying flow charts, for implementing various methods of vehicle data stream source registration, vehicle data stream destination subscription, and management of the vehicle data streaming service (including the vehicle attribute catalog). Finally, a description of an exemplary computing system in which the various components, modules, systems, devices, and / or nodes may be implemented is provided. Various examples are provided throughout this specification.
[0015] 2 illustrates a more detailed view of the vehicle data streaming service and the registration of data stream sources with vehicle data stream providers, where the data stream sources register with vehicle attributes that are or should be included in the vehicle data streaming service's catalog. For example, the vehicle data streaming service may manage the flow of vehicle data from vehicles and further manage the format of the vehicle data so that the vehicle data is modified to conform to the streaming service vehicle schema, according to some embodiments.
[0016] 2 , vehicle 250 and vehicle service center 260 may transmit vehicle information 202 to data stream source 102. In some embodiments, vehicle 250 may generate one or more pieces of vehicle information 202 for transmission to data stream source 102. Vehicle 250 may transmit vehicle information 202 including data such as video frames, images, radar amplitude, temperature data, engine speed, and any other information about vehicle 250 generated from one or more sensors. In some embodiments, vehicle information 202 may include Global Positioning System (GPS) information determined using cellular, radio passive, satellite, and other types of GPS systems and may be used to determine the jurisdiction of vehicle 250. In some embodiments, the geographic location of vehicle 250 may be determined in various manners.
[0017] In some embodiments, vehicle information 202 may include aspects that may be considered personally identifiable information (“PII”). PII may include any information that may be linked or linkable to a particular individual and may be further categorized by “PII levels,” or the extent to which vehicle information 202 may be used to personally identify an individual. To protect individual privacy, vehicle data streaming services may provide greater protection for vehicle data that includes aspects that may be PII. For example, more advanced access credentials may be required to access or subscribe to vehicle attributes that include such vehicle data streams.
[0018] In some embodiments, the vehicle data may be provided by a vehicle service center 252. Additionally, in some embodiments, the vehicle service center 252 may provide information such as vehicle data related to repairs and / or vehicle registration. The vehicle 250 or the vehicle service center 252 may transmit the vehicle information 202 using various publish-subscribe or other network protocols for transferring messages. For example, the vehicle 250 may transmit the vehicle information 202 using the MQ (e.g., Message Queue) Telemetry Transport (“MQTT”) protocol. Although FIG. 2 depicts only the vehicle 250 and the vehicle service center 252 as generating the vehicle information 202, any number of vehicle data producers (e.g., vehicles, vehicle service centers, etc.) may transmit the vehicle information 202 to the data stream source 102.
[0019] In some embodiments, the data stream source 102 may be part of a vehicle data stream provider 200 that manages one or more vehicle data streams. The vehicle data stream provider 200 may further include a data enrichment pipeline 210 that processes the vehicle information 202 to generate additional vehicle data of interest and / or to enrich the vehicle information 202. For example, the data enrichment pipeline may include one or more compute services that provide instances, containers, and / or functions according to various configurations for data processing operations specified by the vehicle data stream provider 200. A virtual compute instance of the data enrichment pipeline 210 may include, for example, one or more servers and / or virtualized computing resources. A container may provide a virtual operating system or other operating environment for executing or implementing applications for processing the vehicle information 202. In some embodiments, a transient computing function may be implemented to preprocess the vehicle information 202 when one or more vehicle data processing operations are performed, which may be automatically scaled up or down to provide an appropriate number of computing resources to perform a given set of preprocessing tasks. The compute instances, containers, and / or functions may run or implement a variety of different services, such as application server instances, general-purpose or special-purpose operating systems, services supporting various interpreted or compiled programming languages (e.g., Ruby, Perl, Python, C, C++, etc.), or high-performance computing services suitable for performing data processing of vehicle information 202.
[0020] Additionally, in various embodiments, the compute instance configuration of the data enrichment pipeline 210 may also include general-purpose or specific-purpose compute instances, containers, and / or functions, such as the computational load of a compute-intensive application. In some embodiments, the compute instances may be used for machine learning applications, such as applications that train and generate machine learning regression models to process and derive additional vehicle information 202. The size of the compute instances, containers, and / or functions, such as the specific number of virtual CPU cores, memory, cache, storage, and any other performance characteristics, may vary based on the particular application. The data enrichment pipeline 210 may send the processed vehicle information 206 to the data stream source 102.
[0021] As illustrated in FIG. 1 , the data stream source 102 may make a request 152 to the vehicle data streaming service 104 to register the data stream source. In some embodiments, the request 152 to register the data stream source may further include a request for the data stream of the data stream source 102 to be recognized by the vehicle data streaming service 104. In some embodiments, the data stream source 102 may provide information necessary to establish a streaming infrastructure relationship, and the vehicle data streaming service 104 may provide an endpoint for the data pipeline from the data stream source 102. For example, the request 152 to register the data stream source may include information needed by the vehicle data streaming service 104 to access the streaming data generated by the data stream source 102, such as the name of a category used to organize messages containing vehicle information 202. Furthermore, the request 152 to register the data stream source may further include access credentials. In some embodiments, authorization of the registration request may include HTTP authentication using a username and password sent with the API call, key authentication using a unique key disclosed to an authorized user, use of the OAuth authorization framework, etc. In some embodiments, the access credentials included in the request may include a username, username password, role, or other identity lookup. Unauthorized requests with inappropriate access credentials may be rejected, and the requesting data stream source 102 may be notified of the denial of permission. In some embodiments, the request 152 to register the data stream source may not be sent from the data stream source 102, but from a third entity, such as the vehicle data stream provider 200.
[0022] As illustrated in FIG. 1 , the vehicle data streaming service 104 may send registration requirements 108 to the data stream source 102. The requirements may include a source infrastructure identity, such as the name or network address of the data stream source 102, that is (or should be) recognized by the vehicle data streaming service 104. The registration requirements may further include a required schema for messages sent to the vehicle data streaming service 104. In some embodiments, the vehicle information 202 may include a heterogeneous set of data structures and thus may require a registration request to provide information for configuring each schema or data structure of the data stream to conform to a message schema that can be accepted by the vehicle data streaming service 104. In some embodiments, the registration requirements 108 may require that the names of vehicle attributes of the data stream source be associated with the provided data stream. The registration requirements 108 may further include any necessary transformations to be applied to the vehicle information 202 with the source vehicle schema 220 to make the vehicle information 202 conform to the streaming service vehicle schema 234. In some embodiments, the transformations to be applied to the vehicle information 202 sent to the vehicle data streaming service 104 may be performed by the vehicle schema engine 256 of the vehicle data streaming service 104. In some embodiments, at least a portion of the transformations applied to the data streamed from the source vehicle schema 220 to the streaming service vehicle schema 234 may be performed based on information included in the requested registration information provided by the data stream source 102. In some embodiments, the data stream source 102 may determine which vehicle attributes from the vehicle attribute catalog 106 to associate with that vehicle data stream based on the vehicle attribute metadata 232. The vehicle attribute metadata 232 may include descriptions of the vehicle attributes included in the vehicle attribute catalog 106, such as categorization of the attributes, a hierarchical structure of the attributes, etc. In some embodiments, the request 152 to register a data stream source may also be a request to add a new vehicle attribute to the vehicle attribute catalog 106.Various registration interactions may occur through the registration interface 112 of the vehicle data streaming service 104. Additionally, requests may be made using various communication protocols, including various HTTPS requests, RESTful requests, and other API requests.
[0023] The data stream source 102 may send the necessary registration information 110 in accordance with the registration requirements 108 to complete the registration request. In some embodiments, the registration request may require approval by the vehicle data streaming service 104. Once registration is complete, the data stream source-destination mapping 152 may map the data stream source 102 to the associated vehicle attributes in accordance with the registration request. The data stream source may send streamed vehicle data 130 that complies with the registration requirements to the vehicle data streaming service 104 and / or enable the vehicle data streaming service 104 to retrieve streamed vehicle data 130 that complies with the registration requirements.
[0024] FIG. 3 illustrates a more detailed view of a vehicle data streaming service and a data stream destination subscription flow, according to some embodiments, including receiving streamed vehicle data associated with vehicle attributes and providing the streamed data for the subscribed attributes to the data stream destination.
[0025] In some embodiments, the data stream requester 302 may browse the vehicle attribute catalog 140 to discover relevant vehicle attributes and vehicle data that may be received at the data stream destination 146, as discussed in FIG. 1 . In some embodiments, the data stream requester 302 may browse the vehicle attribute metadata 232 to determine which of the vehicle attributes to subscribe to. As discussed in FIG. 2 , the vehicle attribute metadata 232 may include vehicle attribute descriptions, attribute categorizations, attribute hierarchies, and / or other information that enables the data stream destination 146 to discover vehicle data relevant to its application. In some embodiments, the vehicle attribute catalog 106 may further provide category navigation through vehicle attributes arranged in a hierarchical structure or in a unique taxonomy to facilitate discovery of relevant vehicle attributes. In some embodiments, the vehicle attribute catalog may provide a full-text search index to further facilitate discovery of vehicle attributes.
[0026] The data stream requester 302 may send a subscription request 144 to the vehicle data streaming service 104 to receive streamed vehicle data associated with vehicle attributes selected from the vehicle attribute catalog 106. In some embodiments, the subscription request 144 may provide a destination identity (such as the name or network address of the data stream destination), desired vehicle attributes, and / or access credentials. In some embodiments, the access credentials may be destination access credentials 320 associated with the data stream requester and / or access credentials associated with the data stream destination 146. In some embodiments, similar to the access credentials described in the registration request of FIG. 2, the destination access credentials 320 may include credentials required for HTTP authentication using a username and password sent with an API call, key authentication using a unique key disclosed to an authorized user, use of the OAuth authorization framework, or other types of authentication. In some embodiments, the access credentials in the subscription request may result in a lookup of a username, username password, role, or other identity. Unauthorized requests with improper access credentials may be rejected, and the requesting data stream source 102 may be notified of the denial of permission. In some embodiments, the subscription request 144 may be denied based on whether the destination access credentials 320 are sufficient to subscribe to vehicle attributes with a particular access level. In some embodiments, vehicle attributes in the vehicle attribute catalog 106 may be associated with particular access levels that require different levels of access credentials (e.g., to protect PII). In some embodiments, the vehicle attribute metadata 232 may further include an access level associated with each vehicle attribute. Additionally, in some embodiments, the destination access credentials 320 may be associated with a jurisdiction in which the data stream destination 146 is located.For example, the vehicle data streaming service 104 may require a subscription request 144 made from a data stream destination 146 with destination access credentials 320 to have a higher level of access compared to another stream destination from a different jurisdiction. Different subscription request access credential requirements based on different jurisdictions are further described in FIG. 7.
[0027] 3 depicts the subscription request made by data stream requester 302, other entities may send subscription request 144 to establish a subscription to data stream destination 146. In some embodiments, the access credentials required for subscription request 144 to be approved may be the access credentials of the requesting entity or the access credentials provided in the request message. Furthermore, while FIG. 3 depicts data stream requester 302 and data stream destination 146 as separate entities, in some embodiments, data stream destination 146 may be the requesting entity, as discussed in FIG. 1.
[0028] In response to a valid subscription request, the vehicle data streaming service 104 creates a mapping between a data stream source and a data stream destination 146 based on selected vehicle attributes. The vehicle data streaming service 104 transmits streamed vehicle data 132 corresponding to the subscription request. In some embodiments, the data stream destination 146 may include a vehicle shadow 332, a data lake 334, a database 336, or any other suitable destination. In some embodiments, the streamed vehicle data 132 may conform to the schema of the data stream destination 146, or the data stream destination 146 may not require the streamed data to conform to a particular schema. However, in some embodiments, the data stream destination 146 may require the vehicle data to conform to a schema that is different from the streaming service vehicle schema 234. Figures 4A-4C illustrate reconciliation between differing vehicle schemas between the vehicle data streaming service 104 and the data stream destination 146.
[0029] FIG. 4A illustrates a more detailed view of a vehicle data streaming service that implements a subscription based on a subscription request from a requestor to a destination that has a different vehicle schema than the vehicle data streaming service, according to some embodiments.
[0030] In some embodiments, the data stream destination 146 may have a destination vehicle schema 422 that describes vehicle properties and relationships between vehicle properties according to an ontology used at the data stream destination. For example, the data stream destination 146 may consist of a vehicle shadow 424 or other vehicle virtual representation service that provides visibility into the status of connected vehicles and reflects changes to the virtual vehicle shadow on the physical vehicle. Such a vehicle shadow may be associated with a separate destination vehicle schema 422 that is different from the streaming service vehicle schema 234 of the vehicle data streaming service 104. A data stream destination 146 with a destination vehicle schema 422 may require that streamed vehicle data be transformed to conform to the destination vehicle schema 422.
[0031] 3 , the data stream requester 302 may request to view the vehicle attribute catalog 106. In some embodiments, the vehicle attribute metadata 232 in the vehicle attribute catalog 106 may inform the data stream requester 302 that the streaming service vehicle schema for the vehicle attribute determined by the vehicle schema engine 106 differs from the destination vehicle schema 422. In some embodiments, the data stream requester 302 may send a subscription request 144 via the subscription interface 142 indicating the necessary transformations that the vehicle schema engine 106 should apply to the streamed data to conform to the destination vehicle schema 422.
[0032] FIG. 4B illustrates a more detailed view of a vehicle data streaming service and a data schema reconciliation engine that reconciles differing vehicle schemas between a data stream destination and the vehicle data streaming service, according to some embodiments.
[0033] 4A , based on the subscription request 144, the data schema reconciliation engine 426 may generate a matching schema 434. In some embodiments, the data schema reconciliation engine 426 may generate the matching schema 434 to be identical to the streaming service vehicle schema 234. In some embodiments, the data schema reconciliation engine 426 may generate the matching schema 434 to be identical to the destination vehicle schema 422 or to conform to a third vehicle schema that differs from either of the two schemas. The data schema reconciliation engine 426 may send the matching schema to the vehicle data streaming service 104 and the data stream destination 146. In some embodiments, the data schema reconciliation engine 426 may modify the streaming service vehicle schema 234 and modify the destination vehicle schema 422 to conform to the matching schema 434. In some embodiments, where the matching schema is identical to the streaming service vehicle schema 234, only the destination vehicle schema 422 may be changed. In another embodiment, if the matching schema 434 is identical to the destination vehicle schema 422, only the streaming service vehicle schema 234 may be changed.
[0034] 4B depicts the data schema reconciliation engine 426 located outside the vehicle data streaming service 104. In some embodiments, the data schema reconciliation engine 426 may be part of the vehicle data streaming service 104. Furthermore, in some embodiments, the data schema reconciliation engine 426 may only communicate the matching schema 434 and may not be involved in transforming either the streaming service vehicle schema 234 or the destination vehicle schema 422.
[0035] FIG. 4C illustrates a more detailed view of a vehicle data streaming service having a reconciled vehicle schema between a data stream destination and the vehicle data streaming service, transmitting streamed vehicle data with a matching schema, according to some embodiments.
[0036] In FIG. 4C , streamed vehicle data 426 having a matching schema is sent from the vehicle data streaming service 104 to the data stream destination 146. In some embodiments, as described in FIG. 4B , a data schema reconciliation engine may have transformed the streaming service vehicle schema 234 and / or the destination vehicle schema 422 to have a matching schema. In some embodiments, the vehicle schema engine 106 may transform the streamed vehicle data to have a matching schema, while in other embodiments, a data schema reconciliation engine (either internal or external to the vehicle data streaming service 104) may transform the streaming service vehicle schema 234 associated with vehicle data of a particular vehicle attribute. As described in FIG. 3 , the streaming service vehicle schema 234 and the destination vehicle schema 422 may not require any transformation and may already have matching schemas. In some embodiments, a matching schema may not be a requirement for the data stream destination.
[0037] FIG. 5 illustrates a more detailed view of the vehicle data streaming service and vehicle data streaming service management, including vehicle attribute catalog management, according to some embodiments.
[0038] In some embodiments, the vehicle attribute catalog interface 504 may be used to communicate the vehicle attribute catalog 106 of the vehicle data streaming service 104. As discussed in FIGS. 1 and 2 , the vehicle data streaming service 104 may enable one or more users to manage the vehicle data streaming service, including the vehicle attribute catalog 106. The metadata may include vehicle attribute descriptions, attribute categorizations, attribute hierarchical structures, and other information that enables data stream destinations and other entities to find vehicle attributes relevant to their applications. The vehicle data streaming service 104 may enable management of the vehicle attribute catalog 106 via the vehicle attribute catalog interface 502. For example, one or more authorized users may retrieve 510 the vehicle catalog, add / delete 512 vehicle attributes, update 514 vehicle attribute metadata, and update 516 vehicle attribute classifications. In some embodiments, changes to the vehicle attribute classifications may further cause the vehicle schema engine 256 to modify the streaming service vehicle schema 234 in accordance with the changes to the vehicle attribute classifications. In some embodiments, one or more vehicle attributes in the vehicle catalog may be retrieved through category navigation provided by the vehicle data streaming service 104. In some embodiments, the vehicle attributes may be arranged in a hierarchical structure or in a specific taxonomy to facilitate discovery of related vehicle attributes and / or to facilitate navigation of the vehicle attributes. Additionally, in some embodiments, the vehicle attribute catalog may provide a full-text search index to further facilitate discovery of vehicle attributes.
[0039] In embodiments, vehicle data streaming service access control 520 may allow one or more users to manage 522 access control for attributes. Vehicle data streaming service access control 520 may allow one or more users to change the type of access credentials required for registration and / or subscription requests. For example, one or more users may manage 522 access control for vehicle attributes for requests for HTTP authentication using a username and password sent with an API call, for key authentication using a unique key disclosed to an authorized user, or for use with the OAuth authorization framework. In some embodiments, the access credentials required for a request may be specified by managing 522 access control for attributes. For example, vehicle data streaming service access control 520 may determine the usernames, username passwords, roles, or other identities that may be authorized to register a stream source / destination. Furthermore, in some embodiments, the response that the vehicle data stream source 104 will take to an unauthorized request with inappropriate access credentials may be managed through vehicle data streaming service access control 520. For example, the vehicle data stream source 104 may be configured to respond to an unauthorized request with a denial of permission. In some embodiments, different access credential requirements may be determined for particular vehicle attributes. For example, vehicle attributes with higher access levels may be identified and configured to require higher access privileges. Note that in some embodiments, different access privileges may be associated with different users regardless of how the user's identity is determined based on the access credentials. For example, different users who access the vehicle data streaming service using the same method of providing access credentials, e.g., using the various access credential mechanisms described above, may be assigned different access privileges.
[0040] In some embodiments, streamed data 526 from a data stream source having schema Y may be received by the vehicle data streaming service 104. The vehicle data streaming service 104 may transmit this received data as part of streamed data from a data stream source having schema Y 528 that conforms to the streaming service schema after the vehicle schema engine 256 converts the streamed data from schema Y to the streaming service vehicle schema 234. In some embodiments, the received streaming data 526 is sent 530 to a destination that has access to the vehicle data streaming service 104 in accordance with access control based on the vehicle data streaming service access control 520.
[0041] In some embodiments, vehicle data streaming service access control 520 may further be used to complete registration of a given data stream source. For example, a registration request from a data stream source, such as data stream source 102 of FIG. 2, may require vehicle data streaming service access control 520 to receive approval 524 of the registration request in order to complete the registration of the data stream source. In some embodiments, approval 524 of registration may be sent based on a determination that the registration request conforms to a schema of selected vehicle attributes from the registration request. In some embodiments, approval 524 of registration may be sent based on a determination that the data stream source to be registered is an authoritative source of the selected vehicle attributes. In some embodiments, vehicle data streaming service access control 520 may issue approval of the registration request and may not require receipt of any approval 524. In some embodiments, approval may be based both on the proposed data source being an authoritative source of the given attributes and on the data source providing a data stream that conforms to the schema of the data streaming service.
[0042] FIG. 6A illustrates a more detailed view of a data streaming service and a mapping between a first data stream source and a single data stream destination, according to some embodiments.
[0043] 2, data stream source A 602 may send the necessary registration information 610 for attribute X from source A to be registered for vehicle attribute X, and following approval of the registration, may send streamed vehicle data 630 for attribute X from source A to the vehicle data streaming service 104. Further, as described in the subscription process shown in FIG. 3, data stream destination C 606 may send a subscription request 644 for attribute X. In some embodiments, based on a successful subscription request 644, the vehicle data streaming service 104 may generate a vehicle attribute X mapping 670 and send streamed vehicle data 662 for attribute X to data stream destination C 606.
[0044] FIG. 6B illustrates a more detailed view of a data streaming service and a mapping between a second data stream source and a single data stream destination, according to some embodiments, where the single data stream destination subscribes to vehicle attributes with multiple sources.
[0045] 2 and 6A, data stream source B 604 may send the necessary registration information 612 for attribute X from source B to be registered for vehicle attribute X, and following approval of the registration, may send streamed vehicle data 632 for attribute X from source B to the vehicle data streaming service 104. Based on the successful subscription request from FIG. 6A, the vehicle data streaming service 104 may update vehicle attribute X mapping 670 among all data stream sources associated with vehicle attribute X and send streamed vehicle data 662 for attribute X to data stream destination C 606. The vehicle data streaming service 104 may send the data received from data stream source A 602 and vehicle data stream source B 604 (streamed vehicle data 630 for attribute X from source A and streamed vehicle data 632 for attribute X from source B) to data stream destination C 606, respectively.
[0046] FIG. 6C illustrates a more detailed view of a data streaming service and the removal of a first data stream source and the maintenance of a mapping between a second data stream source and a single data stream destination, according to some embodiments.
[0047] In some embodiments, the vehicle data streaming service 104 may enable one or more users to disassociate 660 data stream source A from attribute X. Upon successful disassociation, the vehicle data streaming service 104 may no longer receive vehicle information streamed from data stream source A. However, streamed vehicle data 632 for attribute X from source B may continue to be received by the vehicle data streaming service 104. Furthermore, the vehicle attribute X mapping 670 may be updated by the vehicle data streaming service 104 following the disassociation of data stream source A 602, such that only streamed vehicle data 632 for attribute X from source B (or other stream source with a valid registration for attribute X) will be part of the streamed vehicle data for attribute X 662 streamed to data stream destination C 606. In some embodiments, the vehicle data streaming service 104 may send one or more notifications of the changes made to the vehicle attribute X mapping 670 to data stream destination C 606. In some embodiments, data stream destination C 606 may receive notification that data stream source A has been disassociated from attribute X. In some embodiments, data stream destination C 606 may receive a notification that data stream source B has been associated with attribute X. Any information regarding the change in vehicle attribute mapping may be sent in a notification to data stream destination C 606, including the identity of one or more users who issued the registration or disassociation request.
[0048] 6A-6C show only two data stream sources (data stream source A 602 and data stream source B 604), any number of data stream sources may be associated with a vehicle attribute. Furthermore, a data stream source may be associated with multiple vehicle attributes and is not limited to a connection between one vehicle attribute and one data stream source.
[0049] FIG. 7 illustrates a more detailed view of a data streaming service and mapping between a single data stream source and multiple data stream destinations in different jurisdictions, according to some embodiments.
[0050] 2 and 6A-6C, data stream source A 602 may send the necessary registration information 610 for attribute X from source A to be associated with vehicle attribute X. Upon successful registration, data stream source A 602 may send streamed vehicle data 630 for attribute X from source A to the vehicle data streaming service 104. In some embodiments, various data stream destinations may send subscription requests to be associated with vehicle attribute X. In FIG. 7, data stream destination D 710, data stream destination E 712, and data stream destination F 714, associated with jurisdiction K 703, jurisdiction L 706, and jurisdiction M 708, respectively, may send subscription requests to the vehicle data streaming service 104. Data stream destination D 710, data stream destination E 712, and data stream destination F 714 may each send subscription requests 744, 746, and 748 for attribute X along with their respective access credentials to the vehicle data streaming service 104.
[0051] In some embodiments, the vehicle data streaming service 104 may approve subscription requests for attribute X from data stream destination D 710 and data stream destination E 712 based on the re-subscription requests having valid access credentials. In some embodiments, the vehicle data streaming service 104 may deny subscription request 748 for attribute X based on data stream destination F 714 being associated with jurisdiction M 708. As discussed in FIG. 3 , the denial may rely on identifying the access credentials of the vehicle subscription request 748 and denying the subscription request based on whether the destination access credentials are sufficient to subscribe to vehicle attributes with a particular PII level. In some embodiments, data stream destination E 712 and data stream destination F 714 may have similar levels of access credentials and / or authority, but the subscription request 746 for data stream destination E 712 may be approved and the subscription request 748 for data stream destination F 714 may be denied based on different jurisdictions. In some embodiments, the vehicle data streaming service 104 may send a notification to data stream destination F 714 that the subscription request for attribute X has been denied 756.
[0052] In some embodiments, vehicle attribute X mapping 670 may be generated based on the registration request and the subscription request, and vehicle data streaming service 104 may send streamed vehicle data 630 for attribute X from source A to data stream destination D 710 as part of streamed vehicle data for attribute X 752 and to data stream destination E 712 as part of streamed vehicle data for attribute X 754. While FIG. 7 shows only three data stream destinations, any number of data stream destinations may be associated with a vehicle attribute. Furthermore, a data stream source may be associated with multiple vehicle attributes and is not limited to a connection between one vehicle attribute and one data stream source.
[0053] FIG. 8 illustrates a flowchart of operations performed by a vehicle data streaming service to provide a catalog of vehicle attributes, register data stream sources with the vehicle attributes, and provide streamed vehicle data based on subscriptions to selected vehicle attributes in the catalog, according to some embodiments.
[0054] At block 810, the vehicle data streaming service generates a catalog of vehicle attributes for the vehicle, the catalog including metadata that provides information about the vehicle attributes. As discussed in Figure 2, the metadata may include descriptions of the vehicle attributes, categorizations of the attributes, a hierarchical structure of the attributes, and other information that enables a data stream destination (e.g., a requesting entity associated with the data stream destination) to find vehicle data relevant to its application.
[0055] The vehicle data streaming service receives a subscription request for selected vehicle attributes from the catalog at block 820. As discussed in Figure 3, in some embodiments, the subscription request may require valid access credentials of the requesting entity or valid access credentials provided by the request message to be approved.
[0056] At block 830, the vehicle data streaming service performs one or more configuration operations to enable the vehicle data stream destination to receive streaming data from one or more registered vehicle data streams associated with the selected vehicle attributes.
[0057] At block 840, the vehicle data streaming service provides, for each vehicle attribute of the vehicle attributes, streamed vehicle data from the registered vehicle data streams corresponding to the respective vehicle attribute to one or more subscribed vehicle data stream destinations. In some embodiments, there may be multiple subscribed vehicle data stream destinations receiving the streamed vehicle data based on multiple destination subscriptions to the same vehicle attribute, as discussed in FIG. 7 .
[0058] FIG. 9 illustrates a flowchart of operations for registering a vehicle data stream source and associating a vehicle attribute based on the streamed vehicle data source's conformance to a vehicle schema for a given vehicle attribute, according to some embodiments.
[0059] A request to register a data stream source is received by the vehicle data streaming system at block 910. In some embodiments, the request to register the data stream source may also include a request to be recognized by the vehicle data streaming service as an acceptable data stream source, as discussed in FIG.
[0060] At block 920, registration requirements are provided by the vehicle data streaming system. For example, in some embodiments, the registration requirements may include source infrastructure identity information and configuration information that can be used to conform to the message schema of the vehicle data streaming system. In some embodiments, the registration requirements may be as further discussed in FIG. 2.
[0061] Registration information required for the registration request is received at block 930. In some embodiments, the registration information for the registration request may provide additional information beyond the registration requirements, as described at block 920.
[0062] At block 940, a determination is made whether the vehicle data in the data stream to be registered conforms to a schema for a given vehicle attribute that is or should be included in the catalog. In some embodiments, the determination may be performed by the data stream source after the data stream source receives registration information that includes the vehicle schema required for the data stream to conform.
[0063] If the vehicle data to be registered does not conform to the schema for the given vehicle attribute, a determination of one or more transformations to apply to the vehicle data of the data stream source to be registered so that it conforms to the schema for the given vehicle attribute is made in block 950. As discussed in Figure 3, the determination may be performed by the data stream source as part of providing the required registration information, and the transformations may be provided as part of the required registration information for the registration request.
[0064] A data stream source is registered with a given vehicle attribute at block 960. In some embodiments, a data stream may be registered with more than one vehicle attribute, as further discussed in Figures 6A-6C.
[0065] In block 970, the vehicle data streaming service generates a mapping between the vehicle data of the data stream to be registered and the given vehicle attribute. As discussed in Figures 6A-6C, there may be more than one vehicle data stream source associated with the selected vehicle attribute.
[0066] FIG. 10 illustrates a flowchart of operations performed by a vehicle data streaming service to approve a subscription request based on determining whether the access credentials are sufficient for selected vehicle attributes, according to some embodiments.
[0067] The vehicle data streaming service identifies access credentials for the subscription request in block 1010. As discussed in Figure 3, the access credentials may be information that satisfies HTTP authentication, such as a username and password sent with an API call, or information that satisfies key authentication, such as a unique key disclosed to an authorized user.
[0068] In block 1020, the vehicle data streaming service identifies access credentials for the data stream destination. In some embodiments, the access credentials may be destination access credentials associated with the data stream destination instead of (or in addition to) the access credentials of the request itself.
[0069] At block 1030, the vehicle data streaming service determines whether the access credentials are sufficient to access the selected vehicle attribute from the catalog. In some embodiments, as discussed in Figure 7, the access credentials may be evaluated based at least in part on the level of personally identifiable information of the selected vehicle attribute. Additionally, as further discussed in Figure 7, the access requirements may differ based on the jurisdiction associated with the data stream destination.
[0070] At block 1040, the vehicle data streaming service approves the subscription request based on a determination that the access credentials are sufficient to access the selected vehicle attributes.
[0071] Exemplary Computer System Figure 11 illustrates an exemplary computer system 1100 that can be used to implement aspects of the vehicle data streaming service described above with reference to Figures 1-10. In different embodiments, computer system 1100 can be any of a variety of types of device, including, but not limited to, a personal computer system, a handheld computer, a workstation, a network computer, a mobile device, a consumer device, an application server, a storage device, a peripheral device such as a switch, modem, router, or generally any type of computing or electronic device.
[0072] Various embodiments of the program instructions for providing a curated catalog of vehicle attributes, enabling vehicle data stream sources to register with the vehicle data streaming system, and enabling vehicle data stream destinations to subscribe to vehicle attributes in the vehicle catalog, may be executed on one or more computer systems 1100, which may interact with various other devices as described herein. Note that, according to various embodiments, any component, action, or function described above with respect to FIGS. 1-10 may be implemented on one or more computers configured as computer system 1100 of FIG. 11. In the illustrated embodiment, computer system 1100 includes one or more processors 1110 coupled to system memory 1120 via an input / output (I / O) interface 1130. Computer system 1100 further includes a network interface 1140 coupled to I / O interface 1130, and one or more input / output devices 1150, such as a cursor control device 1160, a keyboard 1170, and a display 1180. It is contemplated that in some cases, embodiments may be implemented using a single instance of computer system 1100, while in other embodiments, multiple such computer systems, or multiple nodes comprising computer system 1100, may be configured to host different portions or instances of program instructions, as described above for various embodiments. For example, in one embodiment, some elements of the program instructions may be implemented via one or more nodes of computer system 1100 that are separate from those nodes that implement other elements.
[0073] In some embodiments, computer system 1100 may be implemented as a system on a chip (SoC). For example, in some embodiments, processor 1110, memory 1120, I / O interface 1130 (e.g., fabric), etc. may be implemented in a single SoC that includes multiple components integrated on a single chip. For example, an SoC may include multiple CPU cores, a multi-core GPU, a multi-core neural engine, a cache, one or more memories, etc. integrated on a single chip. In some embodiments, an SoC implementation may implement a reduced instruction set computing (RISC) architecture, or any other suitable architecture.
[0074] The system memory 1120 may be configured to store compressed or decompressed program instructions 1122 and / or sensor data accessible by the processor 1110. In various embodiments, the system memory 1120 may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory. In the illustrated embodiment, the program instructions 1122 may be configured to implement any of the functions described above. In some embodiments, the program instructions and / or data may be received, sent, or stored on different types of computer-accessible media or similar media separate from the system memory 1120 or computer system 1100.
[0075] In one embodiment, I / O interface 1130 may be configured to coordinate I / O traffic between processor 1110, system memory 1120, and any peripheral devices within the device, including other peripheral devices such as network interface 1140 or input / output devices 1150. In some embodiments, I / O interface 1130 may perform any necessary protocol, timing, or other data conversions to convert data signals from one component (e.g., system memory 1120) into a format suitable for use by another component (e.g., processor 1110). In some embodiments, I / O interface 1130 may include support for devices attached through various types of peripheral buses, such as, for example, variants of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard. In some embodiments, the functionality of I / O interface 1130 may be split between two or more separate components, such as, for example, a northbridge and a southbridge. Also, in some embodiments, some or all of the functionality of I / O interface 1130, such as the interface to system memory 1120, may be incorporated directly within processor 1110.
[0076] Network interface 1140 may be configured to allow data to be exchanged between computer system 1100 and other devices (e.g., carrier or agent devices) attached to network 1185 or between nodes of computer system 1100. Network 1185, in various embodiments, may include one or more networks, including, but not limited to, a local area network (LAN) (e.g., an Ethernet or enterprise network), a wide area network (WAN) (e.g., the Internet), a wireless data network, some other electronic data network, or some combination thereof. In various embodiments, network interface 1140 may support communication over a wired or wireless general data network, such as, for example, any suitable type of Ethernet network, a telecommunications / telephone network, such as an analog voice network or a digital fiber communications network, a storage area network, such as a Fibre Channel SAN, or any other suitable type of network and / or protocol.
[0077] Input / output devices 1150, in some embodiments, may include one or more display terminals, keyboards, keypads, touchpads, scanning devices, voice or optical recognition devices, or any other devices suitable for inputting or accessing data by one or more computer systems 1100. Multiple input / output devices 1150 may be present within computer system 1100 or may be distributed among various nodes of computer system 1100. In some embodiments, similar input / output devices may be separate from computer system 1100 and may interact with one or more nodes of computer system 1100 via wired or wireless connections, such as via network interface 1140.
[0078] 11, memory 1120 may include program instructions 1122 that may be processor-executable to implement any of the elements or actions described above. In one embodiment, the program instructions may implement the methods described above. In other embodiments, different elements and data may be included.
[0079] Computer system 1100 may also be connected to other devices not illustrated, or alternatively, may operate as a stand-alone system. Additionally, functionality provided by the illustrated components may, in some embodiments, be combined into fewer components or distributed among additional components. Similarly, in some embodiments, some functionality of the illustrated components may not be provided and / or other additional functionality may be available.
[0080] Those skilled in the art will also understand that while various items are illustrated as being stored in memory or storage during use, these items, or portions thereof, may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments, some or all of the software components may execute in memory on another device and communicate with the illustrated computer system via computer-to-computer communications. Some or all of the system components or data structures may also be stored (e.g., as instructions or structured data) on a computer-accessible medium or portable item readable by an appropriate drive, various examples of which are described above. In some embodiments, instructions stored on a computer-accessible medium separate from computer system 1100 may be transmitted to computer system 1100 via a transmission medium or a signal, such as an electrical, electromagnetic, or digital signal, conveyed over a communications medium, such as a network and / or a wireless link. Various embodiments may further include receiving, sending, or storing instructions and / or data implemented in accordance with the foregoing description on a computer-accessible medium. Generally speaking, a computer-accessible medium may include non-transitory computer-readable storage or memory media, such as magnetic media or optical media, e.g., disks or DVD / CD-ROMs, volatile or non-volatile media, RAM (SDRAM, DDR, RDRAM, SRAM, etc.), ROM, etc. In some embodiments, a computer-accessible medium may include a transmission medium or signal, such as an electrical, electromagnetic, or digital signal, conveyed over a communication medium, such as a network and / or a wireless link.
[0081] The methods described herein may, in different embodiments, be implemented in software, hardware, or a combination thereof. In addition, the order of method blocks may be changed, and various elements may be added, rearranged, combined, omitted, modified, etc. Various modifications and variations may be made, as would be apparent to one of ordinary skill in the art having the benefit of this disclosure. The various embodiments described herein are meant to be illustrative and not limiting. Many variations, modifications, additions, and improvements are possible. Accordingly, multiple instances may be provided for components described herein as a single instance. Boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are contemplated and may be within the scope of the appended claims. Finally, structures and functions presented as separate components within illustrative configurations may be implemented as combined structures or components. These and other variations, modifications, additions, and improvements may be within the scope of the embodiments defined by the appended claims.
[0082] Embodiments of the present disclosure can be described in light of the following provisions. Clause 1. A system comprising: one or more computing devices configured to implement a vehicle data streaming service, the vehicle data streaming service comprising: generating a catalog of vehicle attributes for the vehicle, wherein entries in the catalog include metadata providing information about the vehicle attributes, and wherein the data streaming service is configured to provide, for each vehicle attribute of the vehicle attributes, streamed vehicle data from a registered vehicle data stream corresponding to the respective vehicle attribute; receiving a subscription request for a vehicle attribute, the vehicle attribute being selected from a catalog; and performing one or more configuration operations to enable the vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attributes based on approval of the subscription request. Article 2. Vehicle Data Streaming Service receiving a registration request indicating a vehicle data stream to be registered; determining whether vehicle data of the data stream to be registered conforms to a schema for a given vehicle attribute that is or is to be included in the catalog, and in response to determining that the vehicle data does not check against the schema, determining one or more transformations to apply to the vehicle data of the data stream source to be registered so that it conforms to the schema for the given vehicle attribute; 10. The system of claim 1, further configured to: upon approval of the registration request based at least in part on a determination that the vehicle conforms to the schema or a determination of one or more transformations to apply to the vehicle data, generate a mapping between vehicle data in the data stream to be registered and given vehicle attributes. Clause 3. The system of clause 2, wherein approval of the registration request is further based on a determination that the data stream source to be registered is a trusted source of the given vehicle attribute. Clause 4. The system of any of clauses 1-3, further comprising a provider network, the provider network configured to provide a plurality of services to clients of the provider network, at least one of the services being a vehicle data streaming service implemented using the vehicle data streaming service. Article 5. at least another one of the plurality of services offered by the provider network is configured to perform pre-processing operations on the streamed vehicle data included in one or more of the registered vehicle data streams; or The vehicle data stream destination is: data analysis services, Data Lake, or The system of clause 4, wherein the system is an additional one of a plurality of services offered by a provider network, including other data storage services. Clause 6. A method comprising: generating a catalog of vehicle attributes for the vehicle, wherein entries in the catalog include metadata providing information about the vehicle attributes, and wherein the data streaming service is configured to provide, for each vehicle attribute of the vehicle attributes, streamed vehicle data from a registered vehicle data stream corresponding to the respective vehicle attribute; receiving a subscription request for a vehicle attribute, the vehicle attribute being selected from a catalog; and performing one or more configuration operations to enable the vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attribute based on approval of the subscription request. Article 7. receiving a registration request indicating a vehicle data stream to be registered; determining that vehicle data of the data stream to be registered conforms to a schema for a given vehicle attribute that is or is to be included in the catalog, and in response to determining that the vehicle data does not check against the schema, determining one or more transformations to apply to the vehicle data of the data stream source to be registered so that it conforms to the schema for the given vehicle attribute; 9. The method of claim 6, further comprising: upon approval of the registration request based at least in part on a determination that the vehicle conforms to the schema or a determination of one or more transformations to apply to the vehicle data, generating a mapping between vehicle data in the data stream to be registered and given vehicle attributes. Article 8. receiving a registration request indicating a vehicle data stream to be registered; determining that a data stream source of the to-be-registered data stream is a trusted source of a given vehicle attribute to be associated with the to-be-registered vehicle data stream; The method of claim 6, further comprising: generating, upon approval of the registration request, a mapping between vehicle data of the data stream to be registered and the given vehicle attribute based at least in part on determining that the data stream source associated with the data stream to be registered is a trusted source of the given vehicle attribute. Article 9. 9. The method of any of clauses 6-8, further comprising using a data streaming service to update metadata about the vehicle attribute, wherein updating comprises modifying an arrangement of classifications for the vehicle attribute to a different configuration or updating a schema for a given vehicle attribute included in the catalog. Article 10. receiving a new registration request indicating a new vehicle data stream to be registered; determining that new vehicle data of the new data stream to be registered conforms to a schema for the given vehicle attribute, and in response to determining that the new vehicle data does not check against the schema, determining one or more further transformations to apply to the vehicle data of the new data stream source to be registered so that it conforms to the schema for the given vehicle attribute; generating additional mappings between new vehicle data of the new data stream to be registered and given vehicle attributes; 10. The method of any of clauses 7 to 9, further comprising: performing one or more further configuration operations to enable the vehicle data stream destination to receive additional streaming data from the new vehicle data stream based on a previous approval of the subscription request. Article 11. receiving a registration removal request indicating a vehicle data stream for which registration should be removed; deleting a mapping between new vehicle data in the registered data stream and a given vehicle attribute based on the deregistration request; 11. The method of any of clauses 7-10, further comprising: performing a remove configuration operation to disable the vehicle data stream destination from receiving streaming data from the vehicle data stream. Article 12. receiving a new subscription request for vehicle attributes; 12. The method of any of clauses 6 to 11, further comprising: based on approval of the new subscription request, performing one or more configuration operations to enable the new vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attributes. Article 13. Acceptance of subscription: Identifying access credentials for the subscription request; determining whether the access credentials are sufficient to access the selected vehicle attribute from the catalog based at least in part on the level of personally identifiable information of the selected vehicle attribute; and approving the subscription request based on a determination that the access credentials are sufficient to access the selected vehicle attributes. Article 14. Acceptance of subscription: Identifying access credentials for a vehicle data stream destination; determining whether the access credentials are sufficient to access the selected vehicle attribute from the catalog based at least in part on the level of personally identifiable information of the selected vehicle attribute; and approving the subscription request based on a determination that the access credentials are sufficient to access the selected vehicle attributes. Clause 15. The method of clause 14, wherein the level of access credentials required to access selected vehicle attributes varies based on the jurisdiction of the vehicle data stream destination. Article 16. receiving a new subscription request for a plurality of selected vehicle attributes selected from the catalog; Identifying access credentials based on the new subscription request; determining whether the access credentials are sufficient to access each vehicle attribute of a plurality of selected vehicle attributes from the catalog; approving the subscription request based on a determination that the access credentials are sufficient to access at least one of the plurality of selected vehicle attributes; 16. The method of any of clauses 6 to 15, further comprising: based on approval of the new subscription request, performing one or more configuration operations to enable the new vehicle data stream destination to receive streaming data of one or more selected vehicle attributes that the access credentials are sufficient to access. Clause 17. The vehicle data stream destination is a vehicle virtual representation service, and the method comprises: Tracking the state of vehicles connected to the provider network based on the streaming data received via the vehicle virtual representation service; 17. The method of any of clauses 6 to 16, further comprising: propagating changes made to the vehicle's state from the received streaming data to the vehicle via the vehicle virtual representation service. Clause 18. One or more constituent actions: generating a matching schema based on a first schema of given vehicle attributes and a second schema of destinations; configuring a vehicle data stream destination to accept a matching schema; and applying a matching schema to the streaming data. Article 19. 8. The method of clause 7, further comprising using a data streaming service to send to a vehicle data stream destination one or more notifications of changes to a mapping between vehicle data in the data stream and given vehicle attributes. Clause 20. One or more non-transitory computer-readable storage media storing program instructions that, when executed on or across one or more processors, cause the one or more processors to: generating a catalog of vehicle attributes for the vehicle, wherein entries in the catalog include metadata providing information about the vehicle attributes, and wherein the data streaming service is configured to provide, for each vehicle attribute of the vehicle attributes, streamed vehicle data from a registered vehicle data stream corresponding to the respective vehicle attribute; receiving a subscription request for a vehicle attribute, the vehicle attribute being selected from a catalog; and performing one or more configuration operations to enable a vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attributes based on approval of the subscription request.
Claims
1. 1. A system comprising: one or more computing devices configured to implement a vehicle data streaming service, the vehicle data streaming service comprising: generating a catalog of vehicle attributes for a vehicle, wherein entries in the catalog include metadata providing information about the vehicle attributes, and wherein the vehicle data streaming service is configured to provide, for each vehicle attribute of the vehicle attributes, streamed vehicle data from a registered vehicle data stream corresponding to the each vehicle attribute; receiving a subscription request for a vehicle attribute, the vehicle attribute being selected from the catalog; and performing one or more configuration operations to enable a vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attributes based on approval of the subscription request; A configuration operation of the one or more configuration operations is: generating a matching schema by a data schema reconciliation engine; one or more of modifying, by the data schema reconciliation engine, a streaming service vehicle schema to conform to the matching schema; and transmitting, by the data schema reconciliation engine, the matching schema to the vehicle data stream destination; Including, the system.
2. The vehicle data streaming service, receiving a registration request indicating a vehicle data stream to be registered; determining whether vehicle data of the vehicle data stream to be registered conforms to a schema for a given vehicle attribute that is or is to be included in the catalog, and in response to determining that the vehicle data does not conform to the schema, determining one or more transformations to apply to the vehicle data of the data stream source to be registered so that the vehicle data conforms to the schema for the given vehicle attribute; 2. The system of claim 1, further configured to: upon approval of the registration request based at least in part on the determination that the vehicle data conforms to the schema or the determination of the one or more transformations to apply to the vehicle data, generate a mapping between the vehicle data in the vehicle data stream to be registered and the given vehicle attributes.
3. The system of claim 2 , wherein the approval of the registration request is further based on a determination that the to-be-registered data stream source is a trusted source of the given vehicle attribute.
4. 4. The system of claim 1, further comprising a provider network configured to offer a plurality of services to clients of the provider network, at least one of the services being a vehicle data streaming service implemented using the vehicle data streaming service.
5. at least another one of the plurality of services offered by the provider network is configured to perform pre-processing operations on streamed vehicle data included in one or more of the registered vehicle data streams; or the vehicle data stream destination: data analysis services, Data Lake, or The system of claim 4 , wherein the additional one of the plurality of services offered by the provider network includes other data storage services.
6. 1. A method, comprising: one or more computing devices implementing a data streaming service: generating a catalog of vehicle attributes for a vehicle, wherein entries in the catalog include metadata providing information about the vehicle attributes, and wherein the data streaming service is configured to provide, for each vehicle attribute of the vehicle attributes, streamed vehicle data from a registered vehicle data stream corresponding to the each vehicle attribute; receiving a subscription request for a vehicle attribute, the vehicle attribute being selected from the catalog; performing one or more configuration operations to enable a vehicle data stream destination to receive streaming data from one or more of the registered vehicle data streams associated with the selected vehicle attributes based on approval of the subscription request; A configuration operation of the one or more configuration operations is: generating a matching schema by a data schema reconciliation engine; one or more of modifying, by the data schema reconciliation engine, a streaming service vehicle schema to conform to the matching schema; and transmitting, by the data schema reconciliation engine, the matching schema to the vehicle data stream destination; A method comprising:
7. The one or more computing devices: receiving a registration request indicating a vehicle data stream to be registered; determining that vehicle data of the vehicle data stream to be registered conforms to a schema for a given vehicle attribute that is or is to be included in the catalog, and in response to determining that the vehicle data does not conform to the schema, determining one or more transformations to apply to the vehicle data of the data stream source to be registered so that the vehicle data conforms to the schema for the given vehicle attribute; 7. The method of claim 6, further comprising: upon approval of the registration request based at least in part on the determination that the vehicle data conforms to the schema or the determination of the one or more transformations to apply to the vehicle data, generating a mapping between the vehicle data in the vehicle data stream to be registered and the given vehicle attributes.
8. The method of claim 7, further comprising the one or more computing devices using the data streaming service to send to the vehicle data stream destination one or more notifications of changes to the mapping between the vehicle data in the vehicle data stream and the given vehicle attributes.
9. The one or more computing devices: receiving a new registration request indicating a new vehicle data stream to be registered; determining that new vehicle data of a new vehicle data stream to be registered conforms to the schema for the given vehicle attribute, and in response to determining that the new vehicle data does not conform to the schema, determining one or more further transformations to apply to the vehicle data of the new data stream source to be registered so that the new vehicle data conforms to the schema for the given vehicle attribute; generating additional mappings between the new vehicle data of the new vehicle data stream to be registered and the given vehicle attributes; 8. The method of claim 7, further comprising: performing one or more further configuration operations to enable the vehicle data stream destination to receive additional streaming data from the new vehicle data stream based on a previous approval of the subscription request.
10. The one or more computing devices: receiving a registration deletion request indicating the vehicle data stream for which registration should be deleted; deleting the mapping between the new vehicle data in the registered vehicle data stream and the given vehicle attribute based on the deregistration request; The method of claim 7 , further comprising: performing a remove configuration operation to disable the vehicle data stream destination from receiving streaming data from the vehicle data stream.
11. The one or more computing devices: receiving a registration request indicating a vehicle data stream to be registered; determining that a data stream source of the vehicle data stream to be registered is an authoritative source of a given vehicle attribute to be associated with the vehicle data stream to be registered; 11. The method of claim 6, further comprising: generating, upon approval of the registration request, a mapping between vehicle data of the vehicle data stream to be registered and the given vehicle attribute based at least in part on determining that the data stream source associated with the vehicle data stream to be registered is an authoritative source of the given vehicle attribute.
12. A method according to any one of claims 6 to 10, further comprising the one or more computing devices using the data streaming service to update the metadata about the vehicle attributes, the updating comprising modifying the classification arrangement of the vehicle attributes to a different configuration or updating the schema of a given vehicle attribute included in the catalog.
13. The one or more computing devices: receiving a new subscription request for the vehicle attributes; 11. The method of claim 6, further comprising: based on approval of the new subscription request, performing one or more configuration operations to enable a new vehicle data stream destination to receive the streaming data from the one or more of the registered vehicle data streams associated with the selected vehicle attributes.
14. The one or more computing devices: receiving a new subscription request for a plurality of selected vehicle attributes selected from the catalog; identifying access credentials based on the new subscription request; determining whether the access credentials are sufficient to access each vehicle attribute of the plurality of selected vehicle attributes from the catalog; approving the subscription request based on the determination that the access credentials are sufficient to access at least one of the plurality of selected vehicle attributes; 11. The method of claim 6, further comprising: based on approval of the new subscription request, performing one or more configuration operations to enable a new vehicle data stream destination to receive streaming data of one or more of the selected vehicle attributes that the access credentials are sufficient to access.
15. the vehicle data stream destination is a vehicle virtual representation service, and the method comprises, by the one or more computing devices: tracking a state of a vehicle connected to a provider network based on the received streaming data via the vehicle virtual representation service; The method of any one of claims 6 to 10, further comprising: propagating changes made to the state of the vehicle from the received streaming data to the vehicle via the vehicle virtual representation service.
Citation Information
Patent Citations
Vehicle data system utilizing publish / subscribe gateways
US20160050269A1
Systems and methods for processing vehicle sensor data
US20180261020A1
Method for data collection
US20200082710A1