AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead...

13
AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Transcript of AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead...

Page 1: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

AGL SignalingMonth 11, 2017 | OpenXC, Cloud, OpenAPI

Fulup Ar FollLead Architect, IoT.bzh

Page 2: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Beyong CAN Signaling Agent

Page 3: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Signaling Requirement @ AGL

3 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

● Clear Isolation ● Low level CAN operation only depends on equipment● High level business logic dedicated to applications

● Security Built In● Navigation APP may access GeoLocation but not Telephony● Implement statistic/counter to monitor unexpected behaviour● Leverage AGL-CC framework

● API transparency for client applications● Reuse existing technology (faster, cheaper, safer)

Page 4: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Clear Isolation

4 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Binder

CAN Low Level Binding(s)

● Decoding / Encoding● Authentication / Crypto / Firewalling● Transaction (set… ack ...)● Stats & Maths● Caching (low freq. Signals, get() call)● Debug

CAN High Level Binding(s)

● Logic● Aggregation (« vehicle.doors.any.open »)● Advanced Ops

CAN BUS

CAN frames - 011010010

Signals - « vehicle.doors.left.open »(Binder Events)

UI

Publish Subscribe

Page 5: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Low Level Binding

• Binary to Json• Binary encoding decoding

• Generate Application Friendly Signal Name & Values

• Close to Automatic Code Generation• OpenXC CAN vector definition in JSON

• Other CAN vector as CANoe

• Include Basic Filtering & Statistic• GT/GE LT/LE

• Timer, Cycle, Timestamps

• Counter: last value, average, invalid ID, …

• Can be ship to developer as binary only

5 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Page 6: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

High Level Binding

• Provide stable API to applications

• Provide signal composition

• Can be split/overloaded to simplify security

• Should support vehicle to cloud

• As today investigating VIWI-W3C

6 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Page 7: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Security Model base of AGL AppFW

Page 8: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Leveraging AppFW transport & security

8 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Page 9: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

OpenAPI as API definition tool

9 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Page 10: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Monitoring & Debug

• AGL/Master (available from git)• Binder Introspection (global or by API)

• Verbosity change (global or by API)

• AGL/DD (June 2017)• API trace (somehow equivalent to tcpdump)

• Application Log trapping

• Asynchronous event observation

• Integration with existing debug tool (ie: wireshark)

• AGL/EE (December 2017)• GDB integration

• Client session tracing through API architecture

• Central daemon to allow binder discovery, introspection & tracing

10 | Month 11, 2017 | Copyright © GENIVI Alliance 2017

Page 11: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Vehicle to Cloud

Page 12: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Signal integration with V2C (AGL/2018)

ws-client:tcp://hostname:port/MyAPI ws-server:tcp://hostname:port/MyAPI

Local Binding Remote Binding

(1) Request API

(2) Request AuthZ(clientID@IDP, scope, ..)

Identity Agent

(3) Forward AuthZ Request

IDP (Identity Provider)e.g. www.mycarportal.net

(4) Request AuthZ on behalfRemote (clientID, scope, ..)

Consent/AuthenticationUser UI

(5) Redirect AuthenticationURL for User consent

(7) User Consent/AuthenticationInteraction

(7) Forward IDP redirect(9) Return AuthCode

(10) Forward AuthCode

(11) Forward AuthCode

(12) ProvideAuthCode

(13) ReceiveUser Info

Page 13: AGL Signaling - iot.bzh · AGL Signaling Month 11, 2017 | OpenXC, Cloud, OpenAPI Fulup Ar Foll Lead Architect, IoT.bzh

Thank you!

Visit GENIVI at http://www.genivi.org or http://projects.genivi.org

Contact us: [email protected]

This work is licensed under a Creative Commons Attribution-Share Alike 4.0 (CC BY-SA 4.0)GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries.Copyright © GENIVI Alliance 2017.

Further information

● Publication at http://iot.bzh/publications● Documentation http://docs.automotivelinux.org