LINKS:  [Tech stack meeting minutes]




The Technology Stack development is one of three main tracks of  the Common Vehicle Interface Initiative



Goal of this activity:

   Find/Develop/Define the required technology solutions (software, primarily) that can be used to implement a "full scope" (vehicle & cloud) system, while using the industry-common models for data & services (as defined by the other tracks).

   Note that cross-platform support seems to be a general request, even if Linux is the dominant platform for developing / testing the code.



Current priorities (evaluated based on group inputs)


1. "Second" VISS v2 implementation (in addition to GoLang implementation)

   Background

   Details:

2. Demonstration of VSC-based development

   Background:

3.  Define "efficient binary encoding" of VSS payloads, as a reusable implementation

      A)  For individual message updates through protocols (VISS? MQTT, etc.)
      B)  For in-memory storage of multiple data points and possibly subsequent batch (image) transfer.


Project Backlog – development project candidates

for further, potential examples, refer to the table based overview below.



The term Technology Stack is used to describe all software that is related to the transfer and use of data and services that adhere to the common model(s). 

Examples:




Technology Stack content analysis, and development state

These tables show an overview of planned, desired, and existing technologies - converters, generators, and bindings to existing technologies.

It should be continuously updated to reflect completion of technology definition (specification) or implementation

For now all known parts are mentioned.  Overlapping initiatives might be possible to combine, to work towards a single consistent full-stack design.


Converters and Code Generators

The purpose of the technology stack is to lead us (the automotive industry) towards a limited selected set of solid core technologies. 

A table of conversions like this might look like a anything-to-anything approach, but it should be clear that the goal is not to create that – only to make sure there are solutions for technologies that are strongly desired, or unavoidable legacy.  In either case, the table must reflect the current availability.


InputOutput

VSSoJSON
(VSS definition in alternative format)
Protobuf
(VSS/message definition in alternative format)
gRPCGraphQL
(Schema, Apollo format)

ARA:COM (XML)

SOME/IP
(code generation, vSomeIP stack)
CommonAPI
(enables backends vSOMEIP and others)
DDS
(code generation)
Android Vehicle-Properties
(mapping via code generation)
Franca IDL (standard)
VSS → x (tick) vspec2vsso(tick) vspec2json(tick) vspec2protobuf(tick) Ongoing support in KUKSA.VAL

1) (tick) vspec2graphql

2) BMW alternative implementation pending.

(green star) WIP TietoEvery

Ongoing discussions.

VSS formatted data to/from AUTOSAR systems?


1) Via Common API capicxx-someip → see next cell

2) To vSOMEIP stack directly. e.g. to vSomeIP API 


(question) BMW considering releasing tools mapping VSS-to-FrancaIDL (which is consumed by CommonAPI)Evaluate interest(green star) Making progress, first draft code available (C++ code for VHAL)

(warning) Proposal, needs update.  vspec2franca

VSC → xN/AN/A

N/A:  gRPC is the corresponding protocol.

Likely candidate(green star) Can be a candidate for the "W3C RPC protocol" to carry VSC services.

1) Std Franca ↔ARA:COM via FARACON (needs maintenance)

2) Possibly new implementation for VSC language?

(green star) TODO, obvious mapping.

Via Std Franca IDL →  Common API tools.

Those tools take standard Franca as input (tick)


Evaluate interestN/A

(green star) Definitely planned TODO.

because
"VSC language" will be very Franca compatible, (or will be Franca itself).  Therefore, expect interop with Std Franca IDL.

Data Serialization

Technology name:ProtobufAVROJSON (canonical format)
VSS → x (green star) Very likely(green star)  Work started (see serialization branch in vss-tools)(green star) This should be defined as similar to VISS as possible, but a separate specification would be useful.
VSC → xN/AN/AN/A

Communication protocols / bindings


Procotol / technology name:VISS v2
protocol definition
MQTT
(data)

Kafka
(event streaming platform, make it VSS-aware and show impl.)

NiFi
(dataflow platform, make it VSS-aware and show impl)


W3C-RPC*
(services)
Scope:DataDataData (events)DataServices / RPC

(tick)  Full GoLang  implementation

Other implementations? >>

(warning) A request for C++ implementation came up (due to compiler support in some embedded system). =>  See priority list above.

(green star) TODO
initial thoughts defined
and/or possible to reuse from IoTEA?

See working page

 TODO
(star) Evaluate interest
TODO
(star)Evaluate interest
Pending analysis of VSC/interface language


Frameworks and Databases and Processing


Completion of technology definition / implementation
Project NameTime-series database implementation
(e.g. INFLUX / similar)
IoT-event-analytics / VehicleEdgeKUKSA.VAL (part of IoTea)Spark

AOSCCS Reference Architecture and PoCOther?
Scope:

DataDataData (events)DataServices / RPC

TODO - define/implement how to insert VSS data into database.

(tick)  


(tick) Spark is an analytics engine, but implementing the data ingestion part and showing analytics on data that came from VSS format.(green star) Analysis starting(green star)  In large parts done, but details remaining and constantly evolving







Historical / preparation information.

Initial Brainstorm, implementation ideas

Which technologies come immediately to mind?



VSC to code generation

A lot of communication related technologies were investigated in the Generic Protocol Evaluation project during 2019.
A set of reference links are here : List of relevant technologies






AUTOSAR


Current tool chain   

(RED is not existing or not yet clearly defined).  (The rest exists already)

Notes


Going via Franca  is complicated...   →  VSS/VSC to AUTOSAR directly makes sense 

Direct approach for AUTOSAR




Vehicle Edge & IoT Event Analytics