Upgrade to Pro — share decks privately, control downloads, hide ads and more …

genivi-ocf-20160427.pdf

 genivi-ocf-20160427.pdf

Phil "RzR" Coval

April 04, 2017
Tweet

More Decks by Phil "RzR" Coval

Other Decks in Technology

Transcript

  1. 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 2016
    5-Oct-16
    1
    Genivi OCF Demonstrator
    2016-04-27 | 14th Genivi AMM
    A collaborative effort by
    Genivi
    JLR
    Samsung

    View Slide

  2. 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 2016
    5-Oct-16
    2
    IoTivity connects GDP to Tizen
    2016-04-27 | IoT development
    IoTivity connects GDP to Tizen
    2016-04-27 | IoT development
    Philippe Coval
    Software Engineer
    Samsung OpenSource Group
    Philippe Coval
    Software Engineer
    Samsung OpenSource Group

    View Slide

  3. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016

    Why ?
    – Infinite use cases: monitoring, convergence, behaviour, AI...

    What ?
    – Linking user's devices together in a secure way
    – Cross products applications or services

    How ?
    – Open protocols, standards and FLOSS

    When ?
    5-Oct-15
    3
    Connected devices : It's all about interconnection

    View Slide

  4. What is Open Connectivity Foundation
    “OCF is a standard & open source project
    that delivers “just-works” interconnectivty
    for developers, manufacturers and end
    users.”

    View Slide

  5. OCF Approach to Standardization & Adoption
    A SPEC + Open Source Implementation approach
    openconnectivity.org
    Specification & certification
    Open Specification
    IP protection and branding
    WG & TG* headed by industry experts
    Certification by OCF
    www.iotivity.org
    Open Source Implementation
    Apache 2.0 License
    Linux Foundation co-operative project
    Android, iOS, Tizen, Linux, RTOS
    Open governance model

    View Slide

  6. OCF Specification
    OCF

    View Slide

  7. OCF Members (~170 and growing)
    Diamond
    Platinum
    Gold

    View Slide

  8. IoTivity Architecture

    View Slide

  9. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016

    : a FLOSS software plaform based on GNU/Linux
    – Split into Profiles : Wearable, Mobile, TV, IVI...
    – Shipped into Consumer Electronic products:

    Gear S, Z1, Z3, Gear S2, TVs J*

    : Seemsless device to device connectivity framework for IoT
    – C/C++ FLOSS library (Apache 2)
    – IoTivity is part of Tizen 3.0 platform
    – Can be integrated into Tizen 2.x products
    5-Oct-15
    9
    What is Tizen / IoTivity ?

    View Slide

  10. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016

    Genivi Demo platform
    – is a Yocto based Linux distribution for IVI
    – so supports meta-oic yocto layer that brings IoTivity

    Let's prototype a Server
    – Exposes a physical resource (MinnowMax's GPIO)
    – Share a virtual GPS position to near devices

    And use Tizen devices as clients to interact with
    5-Oct-15
    10
    IoTivity on GDP

    View Slide

  11. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016

    https://vimeo.com/164000646#tizen-genivi-20160424rzr
    5-Oct-15
    11
    IoTivity on GDP

    View Slide

  12. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016
    5-Oct-15
    12
    IoTivity Client / Server Flow
    OCPlatform::Configure(OC::PlatformConfig )
    OCPlatform::registerResource
    ...
    OC::EntityHandler(OCResourceRequest) {
    switch(getRequestType) {
    case 'GET' :
    ...
    OCPlatform::sendResponse();;
    case 'PUT' :
    ...
    OCPlatform::sendResponse()
    OCPlatform::notifyAllObservers();;
    }}
    OCPlatform::findResource(...)
    OCPlatform::Configure(OC::PlatformConfig )
    OC::FindCallback(...)
    OCResource::observe()
    OC::OCResource::put(...)
    OC::PullCallback(...)
    OC::OCResource::get(...)
    OC::GetCallback(...)
    IoTivity Server
    (on Genivi)
    IoTivity Client(s)
    (on Tizen)
    OC:ObserveCallback(...)
    IP Network (* multicast for discovery)

    View Slide

  13. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016

    Entry points:
    – https://wiki.iotivity.org/community
    – https://wiki.iotivity.org/tizen
    – https://at.projects.genivi.org/jira/projects/GOCF

    Related:
    – http://slideshare.net/SamsungOSG/iotivity-on-tizen-how-to
    – http://blogs.s-osg.org/iotivity-ready-automotive/
    – https://github.com/TizenTeam/
    5-Oct-15
    13
    References

    View Slide

  14. Keep in touch

    Questions ?
    – Contact me online for support or resources
    – https://wiki.tizen.org/wiki/User:Pcoval
    – irc://irc.freenode.net/#automotive

    Thank you:
    – GENIVI, Samsung OSG
    – Intel/Minnowboard, CampOSV, Flaticons (CC BY 2.0)

    View Slide

  15. 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 2016
    5-Oct-16
    15
    RVI Details
    2016-04-27 | 14th Genivi AMM
    RVI Details
    2016-04-27 | 14th Genivi AMM
    Anson Fan
    Architect
    JLR
    Anson Fan
    Architect
    JLR

    View Slide

  16. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016
    27-April-16 16
    RVI Service Flow
    Node 1 “Client” Node 2 “Server”
    Connect
    Register Service X Service X Available
    Service X Callback Send Service X:
    a=b
    TLS Transport
    Message Received
    Got:
    a=b

    View Slide

  17. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016
    27-April-16 17
    RVI JSON-RPC
    {
    "jsonrpc“ : "2.0",
    "id“ : "1",
    "method“ : "message",
    "params“ : {
    "timeout“ : 1559388884,
    "service_name“ : “genivi.org/node/vehicle_id/rvi/vehiclecontrol",
    "parameters“ : {
    "function“ : "fanSpeed",
    "newValue“ : 20,
    "target“ : "SETHVAC"
    }
    }
    }

    View Slide

  18. GENIVI is a registered trademark of the GENIVI Alliance in the USA and other countries
    Copyright © GENIVI Alliance 2016
    27-April-16 18
    GDP Application Architecture
    HTTP/WS
    Qt/QML
    D-Bus Connector
    CAN interface
    CAN Router
    HVAC
    RVI
    Service
    Handlers
    OCF Gateway
    D-Bus
    CAN
    Qt/QML
    D-Bus Connector
    SmartHome
    RVI
    GDP
    Apps

    View Slide

  19. 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 2016
    5-Oct-16
    19
    Realizing Connected Car Scenarios
    With IoTivity and RVI
    2016-04-27 | 14th Genivi AMM
    Realizing Connected Car Scenarios
    With IoTivity and RVI
    2016-04-27 | 14th Genivi AMM
    Sanjeev BA
    Senior Engineer
    Samsung OpenSource Group
    Sanjeev BA
    Senior Engineer
    Samsung OpenSource Group

    View Slide

  20. Background

    Developers looking for niche areas
    – Direct revenues from apps slowing down
    – 52% make < $1000 / month

    53% working on IoT related apps already.
    – Estimated 5.5 Million mobile app devs.
    – Smart Home and Wearables

    Users already have app fatigue
    * Source : VisionMobile™ Developer Economics Q1 2015: State of the Developer Nation

    View Slide

  21. Challenges

    View Slide

  22. IoT & Connected Services
    Critical
    Consumer Specific
    Just in Time
    Regulatory User Context
    Customization

    View Slide

  23. SDK Overload for Developers
    Developer.
    Tizen.org
    Developer.
    android.com
    Developer.
    apple.com
    developers.facebook
    .com
    developer.paypal.
    com
    dev.twitter.com
    Iotivity SDK
    Weave SDK
    MQTT SDK
    Platform
    SDK
    Web Service SDK
    IoT SDK
    Proprietary
    SDKs
    Connected
    Car SDK
    App Developer (ex. Streaming Music Service)

    View Slide

  24. Siloed Connected Car Ecosystems
    Store 1
    { Subset #2 of Apps }
    Store 2
    { Subset #1 of Apps }
    Store 3
    { Subset #3 of Apps }
    Car Makers / OEM
    Group 1
    Car Makers / OEM
    Group 2
    Car Makers / OEM
    Group 3

    View Slide

  25. App Overload for Users
    Smart
    Things
    Flipkart
    Sonos
    Sphero
    Car
    Twitter
    Skype Hue
    User
    !=
    Service
    Integrator

    View Slide

  26. Approaches
    How to make this simpler ?
    For users, developers &
    service providers

    View Slide

  27. Dedicated Hub + Cloud Service Model
    IoT
    Network
    App
    App
    Cloud Service

    View Slide

  28. Service Plugin Model
    Web Service Plugin
    Plugin
    Download
    Server
    IoT
    Network
    App
    App
    Cloud Service

    View Slide

  29. Distributed App Control Model
    IoT Network
    Distributed App Control
    App
    App
    IoT
    Protocol
    App
    App
    App
    Service
    Integration
    Backend

    View Slide

  30. IoTivity Web Service Interface

    View Slide

  31. Web Service Interface
    Enabler of interactions
    From IoTivity devices to a variety of Services
    Service abstraction
    Web
    Service
    Interface
    IoTivity
    Network
    IoTivity
    Device
    IoTivity
    Device
    IoT Data Stays Local
    Service Access
    Credentials Caching
    RESTful
    Web Services
    VoIP
    Services
    “Other”
    Services

    View Slide

  32. Service Representation : JSON Blocks
    "name":“Openweathermap",
    "id":“org.openweathermap",
    "description":“A service that has weather for more than 200,000
    cities",
    “logo" : "http://openweathermap.org/images/OWM_logo32_32.png"
    SERVICE META DATA
    "tags":[
    "search",
    “weather”
    ]
    SERVICE TAGS

    View Slide

  33. Service Representation : JSON Blocks
    capability:[
    {
    id : org.openweathermap.findbycity,
    isauthrequired : true,
    description : Find the weather by cityname string.,
    endpoint : api.openweathermap.org/data/2.5/weather?
    endpointtype : REST,
    operation : GET,
    params :{
    q : {{cityname}}
    },
    response :{

    }
    CAPABILITY DESCRIPTION

    View Slide

  34. Service Description details
    Mustache syntax for variables
    {{ variable }}
    Services
    Authorization Section
    Capability Section
    Params Section
    Cues using tags
    Extensible and customizable

    View Slide

  35. Service Representation : JSON Blocks
    auth:{
    type :oauth2.0,
    subtype :application-only,
    appcredentials: {
    cust_key :{{cust_key}}
    cust_sec :{{cust_secret}}
    oauth_key :{{oauth_key}}
    oauth_sec :{{oauth_secret}}
    }
    }
    Supported Types : Supported SubTypes :
    oauth2.0, application-only
    oauth1.0a, client credentials
    oauth1.0 oob
    AUTH SECTION

    View Slide

  36. Putting it all together
    Web Services Interface
    Platform
    Adaptation
    Linux
    nodejs
    Android Web
    WSI API Interface
    Service
    Management
    Service Request
    Processing
    Config
    & Caching
    Auth
    Workflow
    Management
    WSI
    Daemon /
    Service
    Tizen

    View Slide

  37. RVI Service Description
    "capability": [
    {
    "cid": "org.genivi.rvi.connect",
    "isauthrequired": "false",
    "description": "Connect to RVI.",
    "endpoint": "{{rviurl}}",
    "endpointtype": "rvi",
    "chain" : "http://localhost:8081/callback",
    "operation": "RVICONNECT"
    },
    {
    "cid": "org.genivi.rvi.send",
    "isauthrequired": "false",
    "description": "Post Message to RVI.",
    "endpoint": "{{rviurl}}",
    "endpointtype": "rvi",
    "operation": "RVISEND",
    "params": {
    "message": "None"
    }
    }
    Connect Capability
    Send Capability
    Notify URL for remote RVI msgs.

    View Slide

  38. Genivi OCF Demo Theme
    • Vehicle to Smart Device Control
    • Associating a set of devices using rules
    • Executing the rule to change device states
    • Getting the status of home devices
    • Smart Device to Vehicle Control
    • Control Vehicle Parameters (HVAC, Temperature)
    • Getting the status of Vehicle
    • Notifications
    • Vehicle Location Notifications

    View Slide

  39. https://at.projects.genivi.org/wiki/display/PROJ/GENIVI-OCF+Demonstrator
    OCF Smart Home
    Tizen
    Z1
    Tizen
    Gear
    S2
    OCF to RVI
    Bridging Gateway
    Simulated OCF Devices
    Smart TV Aircon
    RVI
    Services
    App #1
    App
    #2
    Genivi Head Unit
    Android
    Nexus
    Tizen
    Z3
    RVI­OCF Gateway Demo Concept

    View Slide

  40. Openness
    What did we publish ?
    git clone https://gerrit.iotivity.org/gerrit/iotivity
    (wsi-dev branch)
    Tizen Mobile/Wearable & Android applications
    http://git.projects.genivi.org/?p=meta-genivi-ocf-demo.git;a=summary
    * cleanup and publishing to be done post demo

    View Slide

  41. Openness
    What did we publish ?
    git clone https://gerrit.iotivity.org/gerrit/iotivity
    (wsi-dev branch)
    Tizen Mobile/Wearable & Android applications
    http://git.projects.genivi.org/?p=meta-genivi-ocf-demo.git;a=summary
    * cleanup and publishing to be done post demo

    View Slide

  42. Challenges Addressed
    App Overload ?
    App Overload ?
    SDK Overload ?
    SDK Overload ?
    Siloed Ecosystems ?
    Siloed Ecosystems ? New IoT Apps ?
    New IoT Apps ?
    Developer
    .
    Tizen.or
    g
    Developer
    .
    andr
    oid.com
    Developer
    .
    apple.com
    developers.facebook.com
    developer.paypal.
    com
    dev.twitter
    .com
    Iotivity SDK
    AllJoyn SDK
    MQTT SDK
    Platf
    or
    m
    SDK
    Web Service SDK
    IoT
    SDK
    Smart
    Things
    Flipkar
    t
    Sonos
    Spher
    o
    P
    ath
    T
    witter
    Skype Hue
    Store 1 Store 2 Store 3
    He
    alth
    car
    e
    Ser
    vic
    e
    User Conte
    xt
    Location + Time
    Smart Home +
    Retail
    Partial No
    Open Standards
    OCF & RVI
    Yes !!!

    View Slide