Más contenido relacionado



Similar a IoTivity for Automotive IoT Interoperability(20)


IoTivity for Automotive IoT Interoperability

  1. Samsung Open Source Group 1Samsung Open Source Group Philippe Coval Samsung Open Source Group / SRUK For Automotive IoT Interoperability Conference Libre Software and Hardware / Workshops Université de Rennes, France <2017-02-08>
  2. Samsung Open Source Group 2Samsung Open Source Group Bonjour tout le monde ! ● Philippe Coval – Software engineer of Samsung OSG (EU team) – Member of IoTivity, Tizen, Yocto, Automotive (GENIVI+AGL) projects – I am taking care about OS/hardware support, build & usages – Ask me for help: ●
  3. Samsung Open Source Group 3Samsung Open Source Group Agenda ● What is Open connectivity ? ● What is IoTivity ? ● What is OCF automotive? ● A Vehicle to Infrastructure IoT demonstration ● Q&A or/and extras ?
  4. Samsung Open Source Group 4Samsung Open Source Group “Simplicity is the ultimate sophistication.” ~Leonardo da Vinci
  5. Samsung Open Source Group 5Samsung Open Source Group Open Connectivity Foundation ● “Providing the software Linking the Internet of Things” ● Creating a specification, based on open standards: – Resource based, RESTful architecture (Stateless. client/server...) – IETF, CoAP protocol (HTTP on UDP), CBOR (JSON in binary)... ● Sponsoring reference implementation: IoTivity – under Apache 2.0 license ● Rules: Part of standard only if – Specified and Implemented
  6. Samsung Open Source Group 6Samsung Open Source Group OCF Automotive profile's mission ● Provide OCF technology for connected cars, by proposing – A common definition of vehicle resources – A common way to interact with those (inside or outside vehicle) – Based on or bridging to existing standards ● Cooperative effort with existing FLOSS Automotive projects – Tizen, GENIVI, AGL, W3C, RVI ...
  7. Samsung Open Source Group 7Samsung Open Source Group IoTivity is a complete framework ● Hardware: CPU, MCU, Desktop, Mobile, SBC, Tizen devices ● OS: Many including GNU/Linux, Tizen, Yocto, Android or baremetal... ● C API: Data transmission (flash footprint ~128KiB-) – Resource Model / Serialization (CBOR) – Connectivity Abstraction: CoAP, Local IP Network, BT, BLE... – Discovery (UDP, Multicast), Security (DTLS/TLS) ● C++ API: Object Oriented (C++11) ● More Bindings: JavaScript (iotivity-node) ● + High level services – Data/Device Management, Hosting, Encapsulation, Cloud interface
  8. Samsung Open Source Group 8Samsung Open Source Group IoTivity is resources oriented ● Resource is identified by an URI – Composed of properties ● Declared by a ResourceType – Operations: CRUD+N ● Create, Read, Update, Delete+ Notify ● Use existing known resource models – From repository – Ie: sensors, geolocation... ● Or create new ones (new names) – Share for interoperability ● ● oic.r.sensor.illuminance.json ● /* … */ "definitions": {   "oic.r.sensor.illuminance": {     "properties": {       "illuminance": {         "type": "number",         "readOnly": true,         "description":     "Sensed luminous flux in lux." }  }  } /* … */ 
  9. Samsung Open Source Group 9Samsung Open Source Group Flow: Create, Read, Update, Delete, Notify IoTivity Server IoTivity Client(s) Local IP Network Registration of resource Handling new requests Set/Get/ing properties values Initialization as server Initialization as client Handling new clients Discovery of resource POST/PUT GET UDP Multicast + CoAP Notify updated resource Observe resource change & Handling propertiesOBSERVE
  10. Samsung Open Source Group 10 OCDoResource(...OC_REST_PUT …) onPut(... OCClientResponse ...) Example: Client updates server's resource OCInit(..., OC_SERVER); OCCreateResource( …, onOCEntity); { OCProcess(); } onOCEntity(entityHandlerRequest) { switch entityHandlerRequest->method { case 'POST: // Create value case 'PUT' : // Update new resource // handling the change case 'GET' : // READ current value ... OCDoResponse(&response); }} OCInit(..., OC_CLIENT); OCDoResource(...,OC_REST_DISCOVER, ...) onDiscover(... OCClientResponse ...) IoTivity Server IoTivity Client(s) IP NetworkIP Network ● Client sets resource's value ● Server is handling it – and responding
  11. Samsung Open Source Group 11 “Any sufficiently advanced technology is indistinguishable from magic.” ~ Arthur C. Clarke
  12. Samsung Open Source Group 12Samsung Open Source Group How to track defectives street lights? ● 1: Measure if outside's lighting is too dark – Using Embedded sensor in car (demo: I²C sensor) – Turn car's front light on automatically ● 2: Get position from satellites (GPS, Galileo) – From: car, mobile or any (demo: simulated) ● 3: Send notice to Internet (Cloud) – Using mobile data – 4: Forward information to city services (pull or push) ● 5: Agent is assigned – 6: to fix defective light ● 7: he can also check “open data” base from his mobile ● ... 11 2 3 5 6 4 7
  13. Samsung Open Source Group 13Samsung Open Source Group From devices to cloud (AutoLinux FOSDEM)
  14. Samsung Open Source Group 14Samsung Open Source Group /GeoLocationResURI { latitude: 52.165, longitude: -2.21, } A Vehicle to Infrastructure notification service function handle(illuminance) {   if (gThreshold > illuminance) {     var data= { illuminance: illuminance,                 latitude: gGeo.latitude, longitude: gGeo.longitude };     sender.send(data); // { ARTIK's; } } } client.on("resourcefound", function(resource) {   if ("/IlluminanceResURI" === resource.resourcePath) {     resource.on("update", handle);   } else if ("/GeolocationResURI" === resource.resourcePath){     resource.on("update",       function(resource) { gGeo =; }); } }; 1 2 /IlluminanceResURI { illuminance: 42 } { illuminance: 42, latitude: 52.165, longitude: -2.21 } 3 1
  15. Samsung Open Source Group 15Samsung Open Source Group Summary ● Open Connectivity establishes a specification – for interconnecting things, products, services – RESTful architecture based on existing standards (IETF, CoAP, Cbor) ● IoTivity implements it in C under Apache-2.0 license – Can run on micro controllers (baremetal) – Most Operating systems: GNU/Linux, Tizen, Yocto (GENIVI, LFAGL etc) – Other languages C++, JS are supported ● Automotive is one of OCF domains under development – Project is open to be extended with new technologies or services
  16. Samsung Open Source Group 16 Q&A or/and Extras ?
  17. Samsung Open Source Group 17Samsung Open Source Group IoTivity on LF AGL + Minnow max (OSHW)
  18. Samsung Open Source Group 18Samsung Open Source Group Use GeoLocation resource in Tizen apps
  19. Samsung Open Source Group 19Samsung Open Source Group References ● Entry points: – – ● Going further: – – – ● Keep in touch online: – – –
  20. Samsung Open Source Group 20Samsung Open Source Group Merci / Trugarez Thanks / 고맙습니다 Samsung OSG, SRUK, SEF, SSI, Open Connectivity Foundation and members, LinuxFoundation, FLOSS Communities: Tizen, Yocto, EFL, LF AGL, GENIVI, eLinux, Local: LabFabFr, CampOSV, UR1 IETR Rennes, IMT Atlantique, IoTBzh. Resources:, FlatIcons (CC BY 3.0: Freepik,Scott de Jonge, Gregor Cresnar) Tools: Libreoffice, openshot, + YOU ! Contact: