Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Not 100% up to date yet but progress.

EA Block Diagram foe the External Data Server Proof-of-Concept

Image RemovedImage Added


1

Work Breakdown Structure for the External Data Server Proof-Of-Concept

OwnerComment
2

VSS feeder componentcomponent (tick)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-37

Checked with demo that has vss-feeder as submodule.
VSS feeder seems to provide data with the right* format.
*(Note: SQLite database schema was not (yet) aligned with CCS project schema).

Stefan Wysocki

See vss-feeder repository


3
  • todo create a layer concept for the Franca to VSS leaf mapping (model transformation)
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-39
  • (green star) We are not immediately dependent on it now.
  • VSS to Franca transformation is a Work-in-progress PR currently:
     vss-tools/pull/6 repository


4
  • todo design and implement franca service (SomeIP) 
  • (green star) We are not immediately dependent on it now.
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-40
  • (error) Awaiting item 3, and more implementation.


5todo implement feeder as PoC

superfluous line, removed



6
  • todo check Check signal to service translation in Adaptive AutosarAUTOSAR
  • (green star) We are not immediately dependent on it now.
  • in-progress in CCS project:
    Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyCCS-88
  • (error) For future milestones


7
  • todo create PoC Someip Create PoC SOME/IP simulation component to playback agreed use cases
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-42

    • note: we could consider using an Adaptive Autosar node like what we did for the FARACON demo
    • note: VSS data base could be merged into the VSS feeder
    • (error) For future milestones


8
  • Select and implement feeder input API → how feeder writes data into the "shared database"
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-43
  • Either it is writing directly into the database (tick) (shared with the VSS data server component) or writing into an API (error)provided by the VSS data server. server 
  • DECISION:  vss-feeder writes into SQLite file, and the other components read from the file.  I.e. the database "API" is SQL.


9

VSS data server component

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-44

(error) TODO: (Gunnar) Put vss-feeder,

(warning) Pending some input from Alexander on permissions

See JIRA for some updates




10
  • Implement the connection between the access protocol (GraphQL) and the fetching/writing of data into the database.
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-45
    done duplicate of
    Jira
    serverJIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-48
  • PR sent with reduced schema that matches only the OpenDS signals. 
    Long term solution should be. 
  • PR proposal vss-graphql/pull/7 repository
  • New plan uses separate Demo repo instead → action Gunnar Andersson


11
  • APP implement request/response serialization (look at Application Layer)
    • Gunnar: this is probably defined by the communication protocol (defined by GraphQL)
  • (tick) Done.  (It uses apollo plugin for Android and therefore works only with Apollo).  Thereby it serializes automatically with the right JSON formats.


12

Define GraphQL schema - what does it look like?

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-47

(warning) See above, working to use the proposal from PR 7 in the new demo repo setup.

Alex.See vss-graphql repository
13
  • todo resolve Resolve requested data for the APP from the VSS data structure
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-48
  • ==> This means:  Implement the resolvers function in GraphQL
    Depends on choosing the database implementation first.
  • ==> Adjust resolver to fetch the data from SQLite.
  • (tick)  The basic one without permission enforcement is done.
    (warning) Pending permissions-enforcement.


14
  • todo change/write data values for requested data leaves
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-49

    • ==> Same as implementation of 14, but for writing.
    • This means:  Implement Mutation functions in GraphQL
  • (error) Not implemented any writing support yet.


15
  • todo handle Handle the subscription for APPs
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-50
  • => Implement Subscriptions (according to GraphQL)
  • (error) Not implemented any subscription support yet.


16
  • APP implement authentication to access the data server (eg JWT), e.g. json Web token
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-51

  • todo implement the permissions handling in the data server
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-52

  • (warning) See above, awaiting implementation


17

Define the "signal groups" that make up each permission and give each permission a name.

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-53

  • Example permission group created by Alexander (in .md file), similar to the layers discussion.  Alexander found it easiest to do Signal→Group mapping
    (this fits the VSS layer principle exactly.) but also to have the opposite view (Group→ Signals) generated by tooling (for human readability)
  • vss.permission.xxx (as proposed in VSS layers) was a nice convention, but let's confirm that we are aligned with Google standards on permission names.
  • (warning)Awaiting proposal PR


18
  • todo finalize permissions layer concept (independent work item)
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-38

    • description TBD
    • definition of done TBD
  • (warning)Awaiting proposal PR


19

Framework Layer / Authentication Service

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-54

(error) To be done.  Will be stored in android-vss-authentication-service repository

Stefan Wysocki
(TietoEVRY)

Will update the description and DoD for this component
20
  • todo request APP permissions from package manager
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-55

    • description TBD
    • definition of done TBD
  • (error) TODO

Stefan Wysocki
(TietoEVRY)


21
  • todo generate access token for the APP including the APP permissions
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-56
  • (error) TODO

Stefan Wysocki
(TietoEVRY)

Implementation of the module deployed on the platform. Buildable by Android buildystem (Android.bp)
22

Application Layer

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-57

  1. Implement EV charging status App in Android, with a graphical UI
  2. Implement Position/speed/make/model/ any other info, as received from driving simulator (could be simple UI, maybe text).

^^ Decision to implement number 2 first.

Alexander: There are helpers to access GraphQL from an Android project.  You add a plugin to your gradle project to include it.  Some classes will be generated based on the GraphQL schema we specify.  https://github.com/apollographql/apollo-android

Stefan: The app skeleton is in the aasig_dev_platform (Only on Stefan's fork still?)

→ Currently in aasig_dev_platform/tree/develop/vendor/genivi/modules repository

Will be put in Will be stored in android-vss-authentication-service repository



23

TODO:  Define what signals we can get from simulator, and try the simulator (Tieto)

Jira
serverJIRA
serverId121ddff2-c571-320f-9e4d-d5b9371533bd
keyAASIG-58

(tick) Done, see above for details

Tieto?
24
  • Implement the APP permissions based on permissions defined/proposed in VSS layers
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-59
     
    • description TBD
    • definition of done TBD
  • (error) 


25
  • Implement authentication as required by the concept including access token request, etc.
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-60
    (warning) See above
  • (error)

Stefan Wysocki
(TietoEVRY)

Will be provided as a part of "Authentication Service" to showcase the exposed API
26
  • APP implement request/response serialization for the client
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-61
  • Gunnar: this is probably defined by the communication protocol (defined by GraphQL)


27
  • todo agree on PoC use cases for the implementation
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-41


28
  • implement the selected use cases
  • Jira
    serverJIRA
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-62


...

  1. Testing
    1. Stephen Lawrence I can contribute to the effort to integrate the PoC into the Genivi LAVA Automated testing if the group decides to use it.
    2. Jira
      serverJIRA
      serverId121ddff2-c571-320f-9e4d-d5b9371533bd
      keyAASIG-67
  2. Integration
    1. Stephen Lawrence : I would be happy to provide best effort support for integration on R-Car h/w where needed.


Interfaces

VSSDatabase :  Decision to first use SQLite as the intermediate storage. 
(Note. Reuse potential with CCS project)

  • SQLite is also a kind of inter-process communication between VSSFeeder and Apollo GraphQL server.
  • VSSFeeder needs to be adjusted to fill data into SQLite (
    Jira
    serverJIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-37
    ) and Apollo needs to be adjusted to get data from SQLite.  (That is 
    Jira
    serverJIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId121ddff2-c571-320f-9e4d-d5b9371533bd
    keyAASIG-48
    )