AutoStream is a map data delivery platform, optimized for on-demand and over-the-air cloud-to-device and cloud-to-cloud data streaming.
In general, AutoStream only takes in and delivers data already present in the respective source. In other words, AutoStream does not add or create any new map features or attributes but prepares the data for its hosting and delivery. By structuring the data into a special tile and layering format AutoStream allows the minimizing of cellular data consumption and works with a download-only-what-is-needed principle.
Essentially, this means the application consuming the map via AutoStream is in full control as to which map data is requested and when; AutoStream does not proactively send any data.
As mentioned in the introduction, one of the core features of AutoStream is to give applications control of when, where (geographical area), and which (set of) map data to download to minimize cellular data consumption. This is achieved by AutoStream combining sets of map attributes into layers, which can be individually requested by applications. In this way, for example, the SD/ADAS map data is structured into a road network, a speed restriction, a traffic sign, a gradient, etc., layer. Similarly, the TomTom HD map is, and potentially external map data can be grouped into layers, resulting, e.g., in a custom(er) data layer. To then make those layers easily consumable in the requested geographical areas, the layers are cut into tiles.
- Versioning of AutoStream maps
Maps (in the form of tiles and layers) made available by the AutoStream platform are versioned. Each discrete version reflects a concrete state of the map data in their source, and each version represents a consistent map. The platform hosts multiple consecutive map versions per source live at the same time. This gives applications full control over when to use, or switch to, which map version – especially when it comes to using the very latest map data.
- Re-using already cached map data
AutoStream also enables applications to keep a cache of already downloaded map data. Whenever an application wants to switch to the latest available version and requests map data, AutoStream's SDKs will check whether the already cached map data is still valid (i.e., unchanged) in that version of the map. With this, applications can make sure cached map data is always up to date, and in doing so avoid redundant downloading of data.
- Variable tiling scheme
AutoStream using tiles and layers to break down continuous maps into more easily and efficiently transferable blocks of data. In typical tiling schemes, each tile has the same geographical extension. This can lead to certain tiles containing significantly more map data than others. To even out the data size of the tiles, AutoStream employs a scheme to break down data heavy tiles into smaller tiles resulting in a more fine-grained representation of the complexity of the contained map data.
- Zipped and size-optimized transfer format
As a last key feature to minimize the downloaded data of each consumer, the platform has the map data prepared to be sent in a zipped and highly size-optimized protocol buffer format which eventually our SDKs will interpret to only expose the actual map data to the application.
- Semantic API to access map data
Developers working with AutoStream do not have to understand or be concerned with the tiling or any of the underlying delivery format specifics but can directly work with the exposed map data (objects), similar to just "using a map".
The AutoStream platform (hosted in the cloud) is set to provide the latest map data taken from the given source database with minimal latency, and independent of whether map data was requested by any user. That means in turn that requests for map data from applications do not trigger any compilation or checks for updated map data in the source, but just lead to answering the requests by sending the map data currently hosted in the service.
With that, the platform consists of the following components.
Adapters AutoStream uses adapters to convert source map data to an intermediate model which is suitable for further processing, decoupling source map data model from the delivery model.
Compilers The AutoStream compilers convert the intermediate map model into layers of optimized geospatial tiles, enabling the key features and cost benefits mentioned above.
Services The platform eventually runs a set of (micro-)services and a CDN to host and serve the map data as a high-performing (highly available and scalable) cloud service. As shown in the following diagram, the most relevant services are:
- MetaData Service: serves the metadata which allows consuming applications to, e.g., extract where to find the actual tile data and verify the authenticity.
- Delta Service: offers the applications to query map areas for changes between map versions.
- Signing Service: signs the map data to allow clients to check their authenticity.
To reduce the effort of writing map-consuming applications, AutoStream offers a set of client libraries that handle the complexities of downloading the required tiles and decoding them. Those libraries offer an interface exposing the data as map objects (roads, signs, etc.), as opposed to tiles and their content, allowing the applications to work directly with the map data themselves, and not the underlying tiles and layers.
Currently we offer the following libraries
In-Vehicle-Client library (IVCL) A C++ library designed to work with limited HW resources to reside within typical vehicle platforms and respective operating systems. It comes with an interface toward a persistent cache, such that downloaded map data can be stored for re-use, and also allows applications to pre-cache data before it's actually needed. The map access API, from which the consuming application requests map data, is designed to hide the complex tiling structure, such that the application can be programmed to work with a more accessible map format.
Map-Provider library (MPL) A JAVA library designed to efficiently transfer large amounts of map data cloud-to-cloud. As with the IVCL, the Map Access API in MPL hides the internal map format and provides the data in a similar (more intuitive) structure.