# | Component | Work | Software Components / Implementation details (PoC)(WIP, future)
| Software Components / Implementation (Productionfor Production Systems (WIP, future) | Owner |
---|
1 | In-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
| - Custom control code (Python or C++)
- + sqlite binding, OK for PoC
| | Gerald investigating (KUKSA) |
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
| - Custom code, feeding simple simulated data
then (future) run full vehicle driving simulator |
| Gerald investigating (KUKSA) |
3 | 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)
| Use server directory from W3C_VehicleSignalInterfaceImpl
|
| Ulf |
4 | 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)
| - Sanjeev starts: New client written in Go
Separate repository (GENIVI GitHub) Integrate with MEAE-GOT server repo makes sense. git submodule could be an option
|
| Sanjeev |
5 | OEM Cloud VSS2 data lake | - Selection of libraries and database to handle data lake
- Define database schema Can we get BMW help to define a relational database schema, and maybe also the implementation?→ Start with Ulf's proposal for DB schema
| - Custom control code (Python or C++)
- + Sqlite binding, OK for PoC, or other database such as postgresql.
| In production more likely to be an object store database instead of a RDBS. Object store matches the "data lake" concept better. | Kevin to ask in within Geotab |
6 | OEM Cloud Identity management | - Implementation of end-user login and authentication using OpenID
- Lots of candidates. Responsible implementer should propose a good alternative.
| Later. programming language preference could be influenced by the programmer
|
| -- |
7 | OEM Cloud Access management | - Implementation of authorization between end-user and 3rd party application or Neutral Server using OAuth2
| Later. programming language preference could be influenced by the programmer
|
| -- |
8 | 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
| GraphQL → Apache Apollo? |
| (waiting for input from Alexander) |
9 | 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.
|
|
| Kevin |
10 | 3rd 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
|
|
| Kevin |