Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

#ComponentWork(green star) Software Components / Implementation details (PoC)Software Components / Implementation for Production Systems
(star) (WIP, future)
Owner
1In-vehicle
State storage
(laptop simulator)
  • Custom code + in-memory database (+ persistence) + connection to feeder
  • Either locally cached during uptime of system or
  • Stored and indexed in a database to allow access to historical data
    • Selection of database
    • Implementation of database schema

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-106

  • Custom control code (Python or C++)
  • + sqlite binding, OK for PoC

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-107



  • Custom code
Gerald investigating (KUKSA)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-108

Sebastian (KUKSA)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-109


2

In-vehicle

VSS2 translation (a.k.a. VSS feeder)
(laptop simulator)

  • Implementation of SOME/IP client?
  • or simple simulator
  • or Vehicle Driving Simulator (LG?  OpenDS? or GENIVI GitHub version?)
    • = set up simulator, make it drive around track, get list of available signals, write code to convert signals to VSS...
    • Signals are fed over DDS to AutoWare or Apollo autonomous driving stacks.
    • Sim needs a high-end graphics machine
  • Look if VSI or VSD should play a part

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-110

  • Custom code, feeding simple simulated data

then (future) run full vehicle driving simulator

Gerald investigating (KUKSA)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-111


Sebastian (KUKSA)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-112

3

In-vehicle

Data Package

  • Collecting VSS2 data into snapshots and bundles according to Value measurement formats
  • Presenting data packages to the Data server
  • Possibly closely related to the State storage schema

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-113

Protocol defined within the CCS project

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-114

Future development. No support currently to transfer a Data Package in W3C Gen2

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-115

Gunnar
4

In-vehicle

Data server
(laptop simulator)

  • Data server implementation for W3C Gen2
    • Reference implementation exists in GitHub MEAE-GOT
    • Ulf can work together with someone how to connect to an existing API of "state storage"
    • (also talk to Kuksa project - VISS+REST server)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-116

Use server directory from W3C_VehicleSignalInterfaceImpl

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-117



Ulf

Sebastian (KUKSA)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-154

5

OEM Cloud

Vehicle client

  • W3C Gen2 protocol (VISS Websocket Pub/Sub)
  • Options:
    • Investigate Sanjeev's work for reusable client
    • Curl script
    • Custom code + HTTP library (e.g. written in python) custom code + libcurl binding
    • Client directory from MEAE-GOT/W3C ?
    • No clear answer.  Depends on use-case.  What is the rate of data for example?
    • Sanjeev: It would make sense to write also client in Go.
  • This program shall also store the data into the data lake program (or directly into the database used as data lake)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-118

Written in Go, some similar code as in W3C Gen 2 reference server

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-119




Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-120

Ulf
6

OEM Cloud

VSS2 database

  • Selection of libraries and database
    • Define database schema → Start with Ulf's proposal for DB schema

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-121

  • Custom control code (Python or C++)
  • + Sqlite binding, OK for PoC, or other database such as postgresql.

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-122

In production more likely to be an object store database instead of a RDBS.

Sanjeev looking at Apache ecosystem and Hortonworks/Cloudera platform capabilities.

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-124


Kevin to ask within Geotab

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-125

7

OEM Cloud

Identity management

  • Implementation of end-user login and authentication using OpenID
    • Lots of candidates.  Responsible implementer should propose a good alternative.

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-126

Later. programming language preference could be influenced by the programmer



--
8

OEM Cloud

Access management

  • Implementation of authorization between end-user and 3rd party application or Neutral Server using OAuth2

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-127

Later. programming language preference could be influenced by the programmer



--
9

OEM Cloud

Resource Management
 = Data server API

  • Implementation of basic API management
  • Resource Mgmt is the ExVe naming.
  • Implementation of a GraphQL API using the VSS2 schema 

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-128

GraphQL → Apache Apollo?

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-129


(waiting for input from Alexander)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-130

10

Neutral Server

Data Marketplace

  • Separate instance that consumes the OEM Cloud OAuth2 and GraphQL APIs
    • We could implement a very simplistic neutral server using the published API of High Mobility, but an open implementation.
    • Security, consent and other complicates things.   Leave those details out.

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-131

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-132


Kevin
113rd Party Application
  • Example applications exist on High Mobility's GitHub
  • One instance that consumes the Neutral Server/Data Marketplace APIs
    • Use an example application from HM
    • For example an app that just shows the data (written in Node.js)
  • One instance that consumes the OEM Cloud OAuth2 and GraphQL APIs
    • Modify the application to use the OEM API directly

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-133

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyCCS-134


Kevin