Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Include UML diagram and more analysis

...

Vehicle Edge sets up a complete software stack around IOT-event-analytics by adding services such as an MQTT broker, and other components.  Vehicle-edge uses containers to set up a network of communicating parts.

...

Details / analysis

UML model overview (provided by Bosch)

Image Added



The  docker compose file of vehicle edge shows the following dependencies (which order containers must be started)

Containers overview

Container nameImageOriginal source code
Hal-interface

Hal-interface-adapter

test-talent

pipelinebuilt from 
pipeline/Dockerfile.amd64

configmanager

kuksa-valamd64/kuksa
imported from Jenkins build server
e.g. kuksa-val-<hash>-amd64.tar.xz 

mosquitto-remote

mosquitto-local

built from mosquitto/Dockerfile.amd64


platform = ?platform/Dockerfile.amd64
vss2ioteabuilt from vss2iotea/Dockerfile.amd64

Purpose of components (containers)

  • Hal-interface - this typically collects signals from a low level vehicle-specific signal source such as CAN bus.  For each technology, a different hal interface can be provided.
  • Hal-interface-adapter – this implements the necessary translation from the specific signal interface to the standard one used in this framework (VSS).   
    • (In CCS terms these have been referred to as "vss-feeder" components, something that feeds the system with VSS formatted data, from some source, that might not be VSS formatted, i.e. a translation occurs)
  • test-talent – shows an example of a "talent" i.e. a cooperating agent in the system
  • pipeline – ... main component of IOT-event-analytics? - details TBD  TBD 
  • ConfigManager – ... setting up the system together with pipelines? - details TBDTBD  Written in Javascript (Node JS)
    (source code in iot-event-analytics)
  • Kuksa.VAL – keeps the current value store and sits between VSS2IOtea and the hardware-specific parts.  Kuksa.VAL exposes data using the VISS protocol (v1, websocket) , but also provides other protocols like MQTT.
    (git-repository) (releases)
  • Mosquitto-local and -remote are MQTT brokers (well-known and not unique to this project). Written primarily in C.
    (git repository)
  • VSS2IoTea – only an adapter between VISS and IoTea.  Written in Javascript (Node JS)

File/storage mappings

For convenience, each container maps a config file or directory to a location in the host file system, so that the configuration can be conveniently edited.
With few exceptions, each container only sees its own config location and do not share any storage:

A starting example of all configurations is provided.


Interfaces and behavior

From the fact that these components are executing in different container namespaces and do not share storage, we can derive(?) that interaction between the parts are all using network protocols.

...

TODO:  Determine the (network?) protocols.  Specifically, what functionality does each component provide and consume?
             And which component communicates with which other one?


Referring to the UML diagram above:


Most components in the framework communicate internally using MQTT taking advantage of the pub/sub capability so that every component has access to the information it needs.   To fully track the actual communication flow it would be required to see which topics are published and subscribed by each component.

VISS is an protocol that is provided to external clients by KUKSA.VAL.

Vehicle applications are (in UML overview) described as communicating with the framework using MQTT.

Questions

This needs to be installed from tar-file?     IOTEA_JS_SDK=boschio.iotea-0.2.1.tgz