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 Added

Implementation details are collected here  ← @alexander.domin start here.

...

titleFilling instructions

Please add your name in the "Owner" column for the task(s) you would like to take over and add comments in the last colum if any.

For the task(s) you selected, please add a short description and a definition of done

...


VSS feeder component

todo finalize permissions layer concept (independent work item)
  • description TBD
  • definition of done TBDtodo implement the selected use cases
    1

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

    • The TODOs listed below were added to the EA block-diagram, look at ExternalDataServerPoC-WBS.pptx
    • After addition of a description of work and definition of done to each TODO, these TODOs will be entered into Jira.
    OwnerComment2

    OwnerComment
    2

    VSS feeder component (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
      serverId
    5
    • todo implement feeder as PoC
    • 121ddff2-c571-320f-9e4d-d5b9371533bd
      keyAASIG-40
    • (error) Awaiting item 3, and more implementation.


    5

    superfluous line, removed



    6
    • Check
    6todo check
    • signal to service translation in Adaptive
    Autosar
    • AUTOSAR
    • (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
    • Create PoC SOME/IP
    7
    • todo agree on PoC use cases for the implementation
    8todo create PoC Someip
    • 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


    98
    • 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 
    • 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
    • Resolve
    10

    VSS data server component

    • todo APP implement authentication to access the data server (eg JWT), e.g. json Web token
      • relates to Vehicle Signal Authentication
      • description TBD
      • definition of done TBD
    11
    • todo APP implement access for in-vehicle data, (e.g. App manifest permissions layer concept)
    12
    • todo APP implement request/response serialization
      • Gunnar: this relates to a communication protocol (so-called binary protocol)
    13todo 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
    • 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

    15
    • todo
    handle the subscription for APPs
    16todo write a generator which will handle permissions
    • 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)

    Will update the description and DoD for this component
    1821
    • 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?
    2419

    Application Layer

    20todo
    • 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
    21todo implement
    • 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
    2226todo
    • APP implement request/response serialization for the client
    23
    • 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



    Support / Infrastructure

    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
      )