Framework for IoT Interoperability

Samsung Open Source Group
Samsung Open Source GroupOpen Source & Community Strategist
Samsung Open Source Group 1Samsung Open Source Group #OSIS2017
Framework for IoT interoperability
Philippe Coval
Samsung Open Source Group / SRUK
philippe.coval@osg.samsung.com
From sensors to Tizen devices and beyond ?
Open Source Innovation Spring
#OSIS2017, CNRS Paris, France <2017-07-11>
Samsung Open Source Group 2Samsung Open Source Group #OSIS2017
/whois Philippe Coval
● Software engineer for Samsung Research
– Belongs to Open Source Group (S-OSG) EU/UK team
● I am based in Rennes, France
– Commits into IoTivity, Tizen, Yocto, Automotive OS (GENIVI, AGL)...
– Ask me about FLOSS, OSHW, DIY, Communities
● Find me online
– https://wiki.tizen.org/wiki/User:Pcoval
Samsung Open Source Group 3Samsung Open Source Group #OSIS2017
Agenda
● What is Open Connectivity's IoTivity ?
● Demo and examples
?
Samsung Open Source Group 4Samsung Open Source Group #OSIS2017
Internet of Things is: A complex equation
● Where all parameters are correlated :
– Connectivity: not only Internet, probably IP, but not only
● Personal (<1m), Local (<10m - 10km), Metropolitan (<10km), Wide Area
(<1000Km)
– Security matters ! (during all expected life span)
● Several surfaces of attacks: service, monitoring, upgrade
– Cost of materials and cost of usage:
● Computing capability (CPU or MCU?), consumption, if 24x7
● Development, maintenance: FLOSS or Closed source ?
Samsung Open Source Group 5Samsung Open Source Group #OSIS2017
● Many Silos / Many implementations :
– One app per device (better than many remote controls)
– Dependence on centralized models (hub/cloud)
● Many concerns or issues:
– Security/Privacy concerns?
– Long term support and maintenance?
– Do we want critical devices exposed to the Internet ?
● Few Interoperability/Interconnection of today's things.
IoT: Internet of Today or Internet of Troubles ?
Samsung Open Source Group 6
“Without trust there's no cooperation.
And without cooperation there's no progress.
History stops.”
~ Rick Yancey, The Last Star
Samsung Open Source Group 7Samsung Open Source Group #OSIS2017
Open connectivity foundation's mission
● Provide software linking the Internet Of Things
– Focus on interoperability and seamless connectivity between devices
● Write specification, Establish a protocol,
– Rely on existing standards (CoAP, TLS), or OSS libs
● Sponsor Reference implementation:
– OpenSource (Apache 2.0 license)
● Hosted by Linux Foundation (like kernel, Tizen etc)
– Rule: No unimplemented features in specification
● Certify conformance to standard of products
● Above 300 members already joined, did you?
Samsung Open Source Group 8Samsung Open Source Group #OSIS2017
Common technology for multiple profiles
Architecture
RESTful
CRUD-N
Communication
CoAP, CBor
+Security
DTLS
Semantics
RAML
Smart
Home:
Zigbee
Blue
Tooth
Personal
Devices
Wearables:
BLE
Cloud: HTTP/ TCP
Mobilty
Automotive
LTE*
V2X*
...
Samsung Open Source Group 9Samsung Open Source Group #OSIS2017
IoTivity Framework for connecting devices
● Core cross platform libraries
– C API: resource layer + connectivity abstraction (IP, BT, BLE...)
● Link to libcoap, tinycbor (code footprint ~128KiB-)
– C++ API: C++11 bindings to build extra services
● + High level services (Mostly C++)
– Data/Device Management: Container, Hosting, Encapsulation, Scene
– Simulator (Eclipse based), http proxy
● + Plugins: Transport, Cloud Interface, Bridging
● Related projects
– IoTivity-Node: Javascript bindings
– IoTivity-contrainted: For thin devices (micro-controllers)
Samsung Open Source Group 10Samsung Open Source Group #OSIS2017
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/ GET
UDP Multicast
+ CoAP
Notify updated resource Observe resource change
& Handling propertiesOBSERVE
11Samsung Open Source Group #OSIS2017
CES2017 Smart Home+Automotive
https://youtu.be/3d0uZE6lHo#smarthome-ces2017
Automotive: SmartHome interaction and more
– https://wiki.iotivity.org/automotive
Samsung Open Source Group 12Samsung Open Source Group #OSIS2017
Resource Model
/example/BinarySwitchResURI
{
“p” : Discoverable & Observable & Secured,
“if” : ["oic.if.a","oic.if.baseline"],
“rt” : [“oic.r.switch.binary”],
“value” : true
...
}
URI:
+ common
properties:
Policy:
& Interface:
Resource Type:
+ attribute(s)
● Well knows resources URI (/oic/*):
– “res” discovery, “p” for platform , “d”: device (role: C/S), “sec/*” : security
Samsung Open Source Group 13Samsung Open Source Group #OSIS2017
Data models can be:
● Described
– For RESTful operations (CRUD)
– RAML+JSON Schemas
● Reviewed and validated
– OCF check consistency
● Shared
– OneIotA.org tool & repository
● Note:
– IoTivity works with private models too
● oic.r.switch.binary.json
– http://www.oneiota.org/revisions/1580
● /* … */ "definitions": {
  "oic.r.switch.binary": {
    "properties": {
      "value": {
        "type": "boolean",
        "description":
          "Status of the switch"
}  }  } /* … */
Samsung Open Source Group 14Samsung Open Source Group #OSIS2017
Hardware Support
● Desktop, Mobile...
● Single Board Computers: RaspberryPI, ARTIK modules...
– Full stack (CSDK, C++, C++ Services)
– IoTivity-node (Javascript bindings)
– OS: Tizen, Yocto, and most GNU/Linux distros
● Microcontollers:
– IoTivity-constrained: implementation of OCF protocol
– OS: Baremetal, Linux, Zephyr, TizenRT, RIOT (WIP)
– Note CSDK (1.2.1-) supported ATmega2560
Samsung Open Source Group 15Samsung Open Source Group #OSIS2017
Security matters
● Connectivity Abstraction layer establishes secure channel using DTLS
● Devices need to be provisioned (using onboarding tool):
– Establish ownership in user's network
● Secure Resource Manager (SRM)
– Secure Virtual resources
● Device provisioning, Credentials, Access control list, persistence
– Policy engine: Request filtering: Grant, deny resource requests
● Per policy, requester ID, ACL, device status...
– Is an OIC resource (“/oic/sec/cred”)
● Hardware hardening: use encryption and secure contexts, RNG, IO etc
Samsung Open Source Group 16
“Talk is cheap.
Show me the code.”
~ Linus Torvalds
17Samsung Open Source Group #OSIS2017
Getting started with IoTivity

IoTivity 1.2.1 is latest release
– Uses Scons build system with many options: Transport, Security, Log...
– Note: Upstream just enabled security on 1.3-rel

Prefer to use or rebuild packages to local build/install
– Use standard path (/usr/include …)

Major Operating system are supported
– Tizen provides RPM/spec for Tizen:3 profiles, with security enabled
– Yocto's meta-oic ships it with security disabled like upstream
– Debian, Ubuntu, deb packages are possible too
●
Details: https://wiki.iotivity.org/os , https://wiki.iotivity.org/build
Samsung Open Source Group
18Samsung Open Source Group #OSIS2017
IoTivity-example tutorial

OCF application developers might not develop in upstream source tree
– SCons build system is complex (even for sample apps)

A standalone project is better to get inspiration from or derivate (SDK?)
– Tend to be minimalist, can be used as base (fork it at will)

Download a collection of standalone subprojects:
– git clone http://git.s-osg.org/iotivity-example/ ; make

Each ”feature” subproject is a git module (pulling a branch based on other)
– Nice history to understand each steps
– For many OSes or build system (Currently, GNUmake, Linux, Tizen, More welcome)
Samsung Open Source Group
19Samsung Open Source Group #OSIS2017
Base example: Resource discovery

branch=example/master (src/example/master/README.md)
– Server register a “dummy” resource identified as “/ExampleResURI”
– Client discover and list all resources' endpoints served in local network
– GNUmake is used to build it
– Systemd service provided to start it once installed

branch=example/packaging is based on previous one
– Yocto Bitbake recipe
– Tizen RPM spec file
– Debian/Ubuntu packaging files too (more welcome)
Samsung Open Source Group
20Samsung Open Source Group #OSIS2017
IoTivity
Server
IoTivity
Client(s)
IP Network
Resource discovery example flow
class IoTServer {
int main() { init(); … }
OC::PlatformConfig mPlatformConfig;
void init() {
mPlatformConfig = OC::PlatformConfig
(OC::ServiceType::InProc,
OC::ModeType::Server, // different that C
"0.0.0.0", 0, // default for all subnets / ifaces
OC::QualityOfService::LowQos //or HighQos
);
OCPlatform::Configure(mPlatformConfig);
}
};
class IoTClient {
int main() { init(); … }
OC::PlatformConfig mPlatformConfig;
void init() {
mPlatformConfig = OC::PlatformConfig
(OC::ServiceType::InProc,
OC::ModeType::Client, // different than S
"0.0.0.0", 0, // on any random port available
OC::QualityOfService::LowQos // or HighQos
);
OCPlatform::Configure(mPlatformConfig);
}
};
21Samsung Open Source Group #OSIS2017
main {
IoTServer::init() { ModeType::Server }
IoTServer::createResource()
{ OCPlatform::registerResource(... uri …) }
// loop on OCProcess() is called internally
}
main {
IoTClient::init() { ModeType::Client }
IoTClient::start()
{ OCPlatform::findResource(onFindCallback) }
IoTClient::onFind(resource)
{ print(resource->uri) }
IoTivity
Server
IoTivity
Client(s)
IP Network
Resource discovery example flow
$ ./bin/server -v
(...)
log: { IoTServer::createResource(...)
log: Successfully created
org.example.r.example resource
log: } OCStackResult
(...)
$ ./bin/client -v
(...)
log: { void IoTClient::onFind(...)
log: Resource: uri: /oic/d
(...)
log: Resource: uri: /ExampleResURI
coap://[fe80::baca:3aff:fe9b:b934%25eth0]:47508
Samsung Open Source Group 22Samsung Open Source Group #OSIS2017
Binary switch example
● Actuator, client change value (on/off) of server's resource
● IoTivity-example's branch=switch/master
– Is based on “example/packaging” and adapted
● Usage:
./bin/client
menu:
0) Set value off
1) Set value on
(...)
1
./bin/server -v
log: { OCEntityHandlerResult
IoTServer::handleEntity(...)
log: { OCStackResult IoTServer::handlePost(...)
log: { void Platform::setValue(bool)
1
log: } void Platform::setValue(bool)
log: { void
IoTServer::postResourceRepresentation()
Samsung Open Source Group 23Samsung Open Source Group #OSIS2017
OCResource::post(rep, callback);
onPost(...)
Switch Example: Resource update
OCPlatform::Configure(...);
OCPlatform::registerResource( …);
handleEntity(OCResourceRequest) {
switch entityHandlerRequest->method {
case 'POST:
// update actuator resource (physically)
...
OCPlatform::sendResponse(response);
}}
OCPlatform::Configure(...);
OCPlatform::findResource(...);
onFind(... resource ...)
IoTivity Server IoTivity Client(s)
IP NetworkIP Network
● Client controls actuator:
– Set resource's value
● Server is handling request
– and responding
Samsung Open Source Group 24Samsung Open Source Group #OSIS2017
Interaction with products
● Tizen is an Operating System based on FLOSS
● Shipped into consumer electronics products
● Tizen IoTivity
– Tizen:3 contains as platform package (.rpm)
– Tizen:2 can ship shared lib into native app (.tpk)
● For Samsung Z{1,2,3} (Tizen:2.4:Mobile)
● Samsung GearS{2,3} (Tizen:2.3.x:Wearable)
25Samsung Open Source Group #OSIS2017
Derivate to Tizen native app

iotivity-example branches for Tizen devices:
– Mobile (Z1) : switch/tizen/2.4/mobile/master
– Wearables (GearS2) : sandbox/pcoval/tizen/wearable/2.3.2/master

Need to rebuild IoTivity’s shared lib (to be bundled in tpk):
– Use helper script build rpm and unpack lib
– ./tizen.mk ; ls lib/*.so
– ./tizen.mk run # deploy on root device (ie TM1)

More details or ask for help:
– https://wiki.iotivity.org/tizen
Samsung Open Source Group
Samsung Open Source Group 26Samsung Open Source Group #OSIS2017
Want more ?
27Samsung Open Source Group #OSIS2017
Smart City’s Street lights use case

Various examples combined in demo using nodejs
– Branch “sandbox/pcoval/on/master/demo”
●
Defective Street lights notification service
– Sensor to read luminance
– Switch front light on if too dark
– Send message to ARTIK cloud
– Using geolocation client/server
Samsung Open Source Group
11
2
3
5
6
4
7
Samsung Open Source Group 28Samsung Open Source Group #OSIS2017
From devices to cloud AutoLinux demo
https://vimeo.com/202478132#iotivity-artik-20170204rzr
1
2
1
Samsung Open Source Group 29Samsung Open Source Group #OSIS2017
/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.post(url...); }
} }
client.on("resourcefound", function(resource) {
  if ("/IlluminanceResURI" === resource.resourcePath) {
    resource.on("update", handle);
  } else if ("/GeolocationResURI" === resource.resourcePath) {
    resource.on("update",
      function(resource) { gGeo = resource.properties; });
} };
1
2
/IlluminanceResURI
{
illuminance: 42
}
https://api.artik.cloud/
{
illuminance: 42,
latitude: 52.165,
longitude: -2.21
}
3
1
Samsung Open Source Group 30Samsung Open Source Group #OSIS2017
Forward data to a cloud backend
● Login your artik.io dashboard
– Select or (re)define “OCF” data models
● https://developer.artik.cloud/dashboard/devicetypes
– Declare devices: (Copy IDs)
● https://my.artik.cloud/devices
– Monitor:
● https://my.artik.cloud/data
● Send data on resource “update” event
– Using http REST (or CoAP, WebSocket...)
require("node-rest-client").Client;
client.post(url, message, callback);
https://api.artik.cloud/v1.1/messages
message = { 
  headers: {
    'Content­Type': 'application/json', 
     Authorization: 'bearer 
                BADC0DE(...)DEADBEEF42'
}, data: {
    sdid:'deadbeef(...)badc0de13',
    ts: 1485178599672,
    type: 'message',
    data: { illuminance: 42 } 
} }
Samsung Open Source Group 31Samsung Open Source Group #OSIS2017
Summary
● OCF establishes a standard for interconnecting things
– Resource model
– RESTful architecture
– Definitions must be shared to ensure interoperability
● Open Source project IoTivity
– implements it in C, C++, Java and Javascript
– Shipped into Tizen:3+ and available for many OS.
– Provide core and hi level services for management, security, cloud
Samsung Open Source Group 32Samsung Open Source Group #OSIS2017
References
● Entry points:
– https://wiki.iotivity.org/examples : git clone iotivity-example
– https://wiki.iotivity.org/docker : cloud images from Ondrej Tomcik
– http://wiki.iotivity.org/automotive
● Going further:
– https://openconnectivity.org/resources/iotivity
– https://openconnectivity.org/resources/oneiota-data-model-tool
– https://news.samsung.com/global/samsung-contributes-to-open-iot-showcase-at-ces-2017
● Keep in touch online:
– https://www.meetup.com/OCF-France/
– https://wiki.iotivity.org/community
– https://wiki.tizen.org/wiki/Meeting
– https://blogs.s-osg.org/author/pcoval/
Samsung Open Source Group 33Samsung Open Source Group #OSIS2017
Thank you,
Merci, Trugarez,
맙습니다 , 谢谢
Gracias, Danke Schoen!
Resources: flaticons CC
Contact:
https://wiki.tizen.org/wiki/User:Pcoval
1 of 33

Recommended

webthing-floss-iot-20180607rzr by
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrPhil www.rzr.online.fr
350 views23 slides
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices by
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
10.6K views33 slides
IoTivity for Automotive IoT Interoperability by
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilitySamsung Open Source Group
16.3K views20 slides
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux by
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxSamsung Open Source Group
28.5K views47 slides
Easy IoT with JavaScript by
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScriptSamsung Open Source Group
11.2K views20 slides
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux by
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
20.1K views39 slides

More Related Content

What's hot

SOSCON 2016 JerryScript by
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSamsung Open Source Group
24.1K views34 slides
IoT Meets Security by
IoT Meets SecurityIoT Meets Security
IoT Meets SecuritySamsung Open Source Group
3.7K views32 slides
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin... by
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...Samsung Open Source Group
13.9K views17 slides
Development Boards for Tizen IoT by
Development Boards for Tizen IoTDevelopment Boards for Tizen IoT
Development Boards for Tizen IoTSamsung Open Source Group
34.1K views30 slides
IoTivity: Smart Home to Automotive and Beyond by
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondSamsung Open Source Group
2.7K views21 slides
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device by
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
31.9K views42 slides

What's hot(19)

JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin... by Samsung Open Source Group
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity by Samsung Open Source Group
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
Devoxx 2015 - Building the Internet of Things with Eclipse IoT by Benjamin Cabé
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Benjamin Cabé3.3K views
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro... by Samsung Open Source Group
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...
Connected Tizen: Bringing Tizen to Your Connected Devices Using the Yocto Pro...

Similar to Framework for IoT Interoperability

IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp... by
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...WithTheBest
360 views39 slides
Connected TIZEN by
Connected TIZENConnected TIZEN
Connected TIZENPôle Systematic Paris-Region
545 views20 slides
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris by
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisOW2
93 views23 slides
The Complex IoT Equation (and FLOSS solutions) by
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)Samsung Open Source Group
9.9K views23 slides
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem by
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemCisco DevNet
1.8K views61 slides
Cytoscape and External Data Analysis Tools by
Cytoscape and External Data Analysis ToolsCytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis ToolsKeiichiro Ono
1.3K views24 slides

Similar to Framework for IoT Interoperability(20)

IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp... by WithTheBest
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...
IoT: From Arduino MicroControllers to Tizen Products Using IoTivity - Philipp...
WithTheBest360 views
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris by OW2
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
OW293 views
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem by Cisco DevNet
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation EcosystemHow APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
How APIs are Transforming Cisco Solutions and Catalyzing an Innovation Ecosystem
Cisco DevNet1.8K views
Cytoscape and External Data Analysis Tools by Keiichiro Ono
Cytoscape and External Data Analysis ToolsCytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis Tools
Keiichiro Ono1.3K views
IPMI is dead, Long live Redfish by Bruno Cornec
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec7.7K views
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (... by Open Mobile Alliance
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Microservices and containers networking: Contiv, an industry leading open sou... by Codemotion
Microservices and containers networking: Contiv, an industry leading open sou...Microservices and containers networking: Contiv, an industry leading open sou...
Microservices and containers networking: Contiv, an industry leading open sou...
Codemotion1.3K views
Introduction to Openstack Network by salv_orlando
Introduction to Openstack NetworkIntroduction to Openstack Network
Introduction to Openstack Network
salv_orlando2.1K views
Introduction to Orchestration and DevOps with OpenStack by Abderrahmane TEKFI
Introduction to Orchestration and DevOps with OpenStackIntroduction to Orchestration and DevOps with OpenStack
Introduction to Orchestration and DevOps with OpenStack
Abderrahmane TEKFI503 views
PLNOG19 - Gaweł Mikołajczyk & Michał Garcarz - SOC, studium ciężkich przypadków by PROIDEA
PLNOG19 - Gaweł Mikołajczyk & Michał Garcarz - SOC, studium ciężkich przypadkówPLNOG19 - Gaweł Mikołajczyk & Michał Garcarz - SOC, studium ciężkich przypadków
PLNOG19 - Gaweł Mikołajczyk & Michał Garcarz - SOC, studium ciężkich przypadków
PROIDEA38 views
DDDP 2019 - Brown to Green by John Archer
DDDP 2019  - Brown to GreenDDDP 2019  - Brown to Green
DDDP 2019 - Brown to Green
John Archer294 views
Cloud Services On UI and Ideas for Federated Cloud on idREN by Tonny Adhi Sabastian
Cloud Services On UI and Ideas for Federated Cloud on idRENCloud Services On UI and Ideas for Federated Cloud on idREN
Cloud Services On UI and Ideas for Federated Cloud on idREN
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th... by sparkfabrik
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik15 views
CNCF Introduction - Feb 2018 by Krishna-Kumar
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
Krishna-Kumar 1.3K views

More from Samsung Open Source Group

Spawny: A New Approach to Logins by
Spawny: A New Approach to LoginsSpawny: A New Approach to Logins
Spawny: A New Approach to LoginsSamsung Open Source Group
472 views10 slides
Rapid SPi Device Driver Development over USB by
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBSamsung Open Source Group
1K views18 slides
Open Source Metrics to Inform Corporate Strategy by
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategySamsung Open Source Group
7.1K views47 slides
Run Your Own 6LoWPAN Based IoT Network by
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkSamsung Open Source Group
20.5K views45 slides
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things by
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsSamsung Open Source Group
19.7K views39 slides
Clang: More than just a C/C++ Compiler by
Clang: More than just a C/C++ CompilerClang: More than just a C/C++ Compiler
Clang: More than just a C/C++ CompilerSamsung Open Source Group
19.4K views45 slides

Recently uploaded

tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides
How Workforce Management Software Empowers SMEs | TraQSuite by
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteTraQSuite
5 views3 slides
FIMA 2023 Neo4j & FS - Entity Resolution.pptx by
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
17 views26 slides
AI and Ml presentation .pptx by
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptxFayazAli87
13 views15 slides
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...NimaTorabi2
15 views17 slides
Introduction to Git Source Control by
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source ControlJohn Valentino
6 views18 slides

Recently uploaded(20)

tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite5 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j17 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8713 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi215 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino6 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm15 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Understanding HTML terminology by artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar56 views
Fleet Management Software in India by Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable12 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino7 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok15 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ10 views
Top-5-production-devconMunich-2023-v2.pptx by Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app6 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan6 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app7 views

Framework for IoT Interoperability

  • 1. Samsung Open Source Group 1Samsung Open Source Group #OSIS2017 Framework for IoT interoperability Philippe Coval Samsung Open Source Group / SRUK philippe.coval@osg.samsung.com From sensors to Tizen devices and beyond ? Open Source Innovation Spring #OSIS2017, CNRS Paris, France <2017-07-11>
  • 2. Samsung Open Source Group 2Samsung Open Source Group #OSIS2017 /whois Philippe Coval ● Software engineer for Samsung Research – Belongs to Open Source Group (S-OSG) EU/UK team ● I am based in Rennes, France – Commits into IoTivity, Tizen, Yocto, Automotive OS (GENIVI, AGL)... – Ask me about FLOSS, OSHW, DIY, Communities ● Find me online – https://wiki.tizen.org/wiki/User:Pcoval
  • 3. Samsung Open Source Group 3Samsung Open Source Group #OSIS2017 Agenda ● What is Open Connectivity's IoTivity ? ● Demo and examples ?
  • 4. Samsung Open Source Group 4Samsung Open Source Group #OSIS2017 Internet of Things is: A complex equation ● Where all parameters are correlated : – Connectivity: not only Internet, probably IP, but not only ● Personal (<1m), Local (<10m - 10km), Metropolitan (<10km), Wide Area (<1000Km) – Security matters ! (during all expected life span) ● Several surfaces of attacks: service, monitoring, upgrade – Cost of materials and cost of usage: ● Computing capability (CPU or MCU?), consumption, if 24x7 ● Development, maintenance: FLOSS or Closed source ?
  • 5. Samsung Open Source Group 5Samsung Open Source Group #OSIS2017 ● Many Silos / Many implementations : – One app per device (better than many remote controls) – Dependence on centralized models (hub/cloud) ● Many concerns or issues: – Security/Privacy concerns? – Long term support and maintenance? – Do we want critical devices exposed to the Internet ? ● Few Interoperability/Interconnection of today's things. IoT: Internet of Today or Internet of Troubles ?
  • 6. Samsung Open Source Group 6 “Without trust there's no cooperation. And without cooperation there's no progress. History stops.” ~ Rick Yancey, The Last Star
  • 7. Samsung Open Source Group 7Samsung Open Source Group #OSIS2017 Open connectivity foundation's mission ● Provide software linking the Internet Of Things – Focus on interoperability and seamless connectivity between devices ● Write specification, Establish a protocol, – Rely on existing standards (CoAP, TLS), or OSS libs ● Sponsor Reference implementation: – OpenSource (Apache 2.0 license) ● Hosted by Linux Foundation (like kernel, Tizen etc) – Rule: No unimplemented features in specification ● Certify conformance to standard of products ● Above 300 members already joined, did you?
  • 8. Samsung Open Source Group 8Samsung Open Source Group #OSIS2017 Common technology for multiple profiles Architecture RESTful CRUD-N Communication CoAP, CBor +Security DTLS Semantics RAML Smart Home: Zigbee Blue Tooth Personal Devices Wearables: BLE Cloud: HTTP/ TCP Mobilty Automotive LTE* V2X* ...
  • 9. Samsung Open Source Group 9Samsung Open Source Group #OSIS2017 IoTivity Framework for connecting devices ● Core cross platform libraries – C API: resource layer + connectivity abstraction (IP, BT, BLE...) ● Link to libcoap, tinycbor (code footprint ~128KiB-) – C++ API: C++11 bindings to build extra services ● + High level services (Mostly C++) – Data/Device Management: Container, Hosting, Encapsulation, Scene – Simulator (Eclipse based), http proxy ● + Plugins: Transport, Cloud Interface, Bridging ● Related projects – IoTivity-Node: Javascript bindings – IoTivity-contrainted: For thin devices (micro-controllers)
  • 10. Samsung Open Source Group 10Samsung Open Source Group #OSIS2017 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/ GET UDP Multicast + CoAP Notify updated resource Observe resource change & Handling propertiesOBSERVE
  • 11. 11Samsung Open Source Group #OSIS2017 CES2017 Smart Home+Automotive https://youtu.be/3d0uZE6lHo#smarthome-ces2017 Automotive: SmartHome interaction and more – https://wiki.iotivity.org/automotive
  • 12. Samsung Open Source Group 12Samsung Open Source Group #OSIS2017 Resource Model /example/BinarySwitchResURI { “p” : Discoverable & Observable & Secured, “if” : ["oic.if.a","oic.if.baseline"], “rt” : [“oic.r.switch.binary”], “value” : true ... } URI: + common properties: Policy: & Interface: Resource Type: + attribute(s) ● Well knows resources URI (/oic/*): – “res” discovery, “p” for platform , “d”: device (role: C/S), “sec/*” : security
  • 13. Samsung Open Source Group 13Samsung Open Source Group #OSIS2017 Data models can be: ● Described – For RESTful operations (CRUD) – RAML+JSON Schemas ● Reviewed and validated – OCF check consistency ● Shared – OneIotA.org tool & repository ● Note: – IoTivity works with private models too ● oic.r.switch.binary.json – http://www.oneiota.org/revisions/1580 ● /* … */ "definitions": {   "oic.r.switch.binary": {     "properties": {       "value": {         "type": "boolean",         "description":           "Status of the switch" }  }  } /* … */
  • 14. Samsung Open Source Group 14Samsung Open Source Group #OSIS2017 Hardware Support ● Desktop, Mobile... ● Single Board Computers: RaspberryPI, ARTIK modules... – Full stack (CSDK, C++, C++ Services) – IoTivity-node (Javascript bindings) – OS: Tizen, Yocto, and most GNU/Linux distros ● Microcontollers: – IoTivity-constrained: implementation of OCF protocol – OS: Baremetal, Linux, Zephyr, TizenRT, RIOT (WIP) – Note CSDK (1.2.1-) supported ATmega2560
  • 15. Samsung Open Source Group 15Samsung Open Source Group #OSIS2017 Security matters ● Connectivity Abstraction layer establishes secure channel using DTLS ● Devices need to be provisioned (using onboarding tool): – Establish ownership in user's network ● Secure Resource Manager (SRM) – Secure Virtual resources ● Device provisioning, Credentials, Access control list, persistence – Policy engine: Request filtering: Grant, deny resource requests ● Per policy, requester ID, ACL, device status... – Is an OIC resource (“/oic/sec/cred”) ● Hardware hardening: use encryption and secure contexts, RNG, IO etc
  • 16. Samsung Open Source Group 16 “Talk is cheap. Show me the code.” ~ Linus Torvalds
  • 17. 17Samsung Open Source Group #OSIS2017 Getting started with IoTivity  IoTivity 1.2.1 is latest release – Uses Scons build system with many options: Transport, Security, Log... – Note: Upstream just enabled security on 1.3-rel  Prefer to use or rebuild packages to local build/install – Use standard path (/usr/include …)  Major Operating system are supported – Tizen provides RPM/spec for Tizen:3 profiles, with security enabled – Yocto's meta-oic ships it with security disabled like upstream – Debian, Ubuntu, deb packages are possible too ● Details: https://wiki.iotivity.org/os , https://wiki.iotivity.org/build Samsung Open Source Group
  • 18. 18Samsung Open Source Group #OSIS2017 IoTivity-example tutorial  OCF application developers might not develop in upstream source tree – SCons build system is complex (even for sample apps)  A standalone project is better to get inspiration from or derivate (SDK?) – Tend to be minimalist, can be used as base (fork it at will)  Download a collection of standalone subprojects: – git clone http://git.s-osg.org/iotivity-example/ ; make  Each ”feature” subproject is a git module (pulling a branch based on other) – Nice history to understand each steps – For many OSes or build system (Currently, GNUmake, Linux, Tizen, More welcome) Samsung Open Source Group
  • 19. 19Samsung Open Source Group #OSIS2017 Base example: Resource discovery  branch=example/master (src/example/master/README.md) – Server register a “dummy” resource identified as “/ExampleResURI” – Client discover and list all resources' endpoints served in local network – GNUmake is used to build it – Systemd service provided to start it once installed  branch=example/packaging is based on previous one – Yocto Bitbake recipe – Tizen RPM spec file – Debian/Ubuntu packaging files too (more welcome) Samsung Open Source Group
  • 20. 20Samsung Open Source Group #OSIS2017 IoTivity Server IoTivity Client(s) IP Network Resource discovery example flow class IoTServer { int main() { init(); … } OC::PlatformConfig mPlatformConfig; void init() { mPlatformConfig = OC::PlatformConfig (OC::ServiceType::InProc, OC::ModeType::Server, // different that C "0.0.0.0", 0, // default for all subnets / ifaces OC::QualityOfService::LowQos //or HighQos ); OCPlatform::Configure(mPlatformConfig); } }; class IoTClient { int main() { init(); … } OC::PlatformConfig mPlatformConfig; void init() { mPlatformConfig = OC::PlatformConfig (OC::ServiceType::InProc, OC::ModeType::Client, // different than S "0.0.0.0", 0, // on any random port available OC::QualityOfService::LowQos // or HighQos ); OCPlatform::Configure(mPlatformConfig); } };
  • 21. 21Samsung Open Source Group #OSIS2017 main { IoTServer::init() { ModeType::Server } IoTServer::createResource() { OCPlatform::registerResource(... uri …) } // loop on OCProcess() is called internally } main { IoTClient::init() { ModeType::Client } IoTClient::start() { OCPlatform::findResource(onFindCallback) } IoTClient::onFind(resource) { print(resource->uri) } IoTivity Server IoTivity Client(s) IP Network Resource discovery example flow $ ./bin/server -v (...) log: { IoTServer::createResource(...) log: Successfully created org.example.r.example resource log: } OCStackResult (...) $ ./bin/client -v (...) log: { void IoTClient::onFind(...) log: Resource: uri: /oic/d (...) log: Resource: uri: /ExampleResURI coap://[fe80::baca:3aff:fe9b:b934%25eth0]:47508
  • 22. Samsung Open Source Group 22Samsung Open Source Group #OSIS2017 Binary switch example ● Actuator, client change value (on/off) of server's resource ● IoTivity-example's branch=switch/master – Is based on “example/packaging” and adapted ● Usage: ./bin/client menu: 0) Set value off 1) Set value on (...) 1 ./bin/server -v log: { OCEntityHandlerResult IoTServer::handleEntity(...) log: { OCStackResult IoTServer::handlePost(...) log: { void Platform::setValue(bool) 1 log: } void Platform::setValue(bool) log: { void IoTServer::postResourceRepresentation()
  • 23. Samsung Open Source Group 23Samsung Open Source Group #OSIS2017 OCResource::post(rep, callback); onPost(...) Switch Example: Resource update OCPlatform::Configure(...); OCPlatform::registerResource( …); handleEntity(OCResourceRequest) { switch entityHandlerRequest->method { case 'POST: // update actuator resource (physically) ... OCPlatform::sendResponse(response); }} OCPlatform::Configure(...); OCPlatform::findResource(...); onFind(... resource ...) IoTivity Server IoTivity Client(s) IP NetworkIP Network ● Client controls actuator: – Set resource's value ● Server is handling request – and responding
  • 24. Samsung Open Source Group 24Samsung Open Source Group #OSIS2017 Interaction with products ● Tizen is an Operating System based on FLOSS ● Shipped into consumer electronics products ● Tizen IoTivity – Tizen:3 contains as platform package (.rpm) – Tizen:2 can ship shared lib into native app (.tpk) ● For Samsung Z{1,2,3} (Tizen:2.4:Mobile) ● Samsung GearS{2,3} (Tizen:2.3.x:Wearable)
  • 25. 25Samsung Open Source Group #OSIS2017 Derivate to Tizen native app  iotivity-example branches for Tizen devices: – Mobile (Z1) : switch/tizen/2.4/mobile/master – Wearables (GearS2) : sandbox/pcoval/tizen/wearable/2.3.2/master  Need to rebuild IoTivity’s shared lib (to be bundled in tpk): – Use helper script build rpm and unpack lib – ./tizen.mk ; ls lib/*.so – ./tizen.mk run # deploy on root device (ie TM1)  More details or ask for help: – https://wiki.iotivity.org/tizen Samsung Open Source Group
  • 26. Samsung Open Source Group 26Samsung Open Source Group #OSIS2017 Want more ?
  • 27. 27Samsung Open Source Group #OSIS2017 Smart City’s Street lights use case  Various examples combined in demo using nodejs – Branch “sandbox/pcoval/on/master/demo” ● Defective Street lights notification service – Sensor to read luminance – Switch front light on if too dark – Send message to ARTIK cloud – Using geolocation client/server Samsung Open Source Group 11 2 3 5 6 4 7
  • 28. Samsung Open Source Group 28Samsung Open Source Group #OSIS2017 From devices to cloud AutoLinux demo https://vimeo.com/202478132#iotivity-artik-20170204rzr 1 2 1
  • 29. Samsung Open Source Group 29Samsung Open Source Group #OSIS2017 /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.post(url...); } } } client.on("resourcefound", function(resource) {   if ("/IlluminanceResURI" === resource.resourcePath) {     resource.on("update", handle);   } else if ("/GeolocationResURI" === resource.resourcePath) {     resource.on("update",       function(resource) { gGeo = resource.properties; }); } }; 1 2 /IlluminanceResURI { illuminance: 42 } https://api.artik.cloud/ { illuminance: 42, latitude: 52.165, longitude: -2.21 } 3 1
  • 30. Samsung Open Source Group 30Samsung Open Source Group #OSIS2017 Forward data to a cloud backend ● Login your artik.io dashboard – Select or (re)define “OCF” data models ● https://developer.artik.cloud/dashboard/devicetypes – Declare devices: (Copy IDs) ● https://my.artik.cloud/devices – Monitor: ● https://my.artik.cloud/data ● Send data on resource “update” event – Using http REST (or CoAP, WebSocket...) require("node-rest-client").Client; client.post(url, message, callback); https://api.artik.cloud/v1.1/messages message = {    headers: {     'Content­Type': 'application/json',       Authorization: 'bearer                  BADC0DE(...)DEADBEEF42' }, data: {     sdid:'deadbeef(...)badc0de13',     ts: 1485178599672,     type: 'message',     data: { illuminance: 42 }  } }
  • 31. Samsung Open Source Group 31Samsung Open Source Group #OSIS2017 Summary ● OCF establishes a standard for interconnecting things – Resource model – RESTful architecture – Definitions must be shared to ensure interoperability ● Open Source project IoTivity – implements it in C, C++, Java and Javascript – Shipped into Tizen:3+ and available for many OS. – Provide core and hi level services for management, security, cloud
  • 32. Samsung Open Source Group 32Samsung Open Source Group #OSIS2017 References ● Entry points: – https://wiki.iotivity.org/examples : git clone iotivity-example – https://wiki.iotivity.org/docker : cloud images from Ondrej Tomcik – http://wiki.iotivity.org/automotive ● Going further: – https://openconnectivity.org/resources/iotivity – https://openconnectivity.org/resources/oneiota-data-model-tool – https://news.samsung.com/global/samsung-contributes-to-open-iot-showcase-at-ces-2017 ● Keep in touch online: – https://www.meetup.com/OCF-France/ – https://wiki.iotivity.org/community – https://wiki.tizen.org/wiki/Meeting – https://blogs.s-osg.org/author/pcoval/
  • 33. Samsung Open Source Group 33Samsung Open Source Group #OSIS2017 Thank you, Merci, Trugarez, 맙습니다 , 谢谢 Gracias, Danke Schoen! Resources: flaticons CC Contact: https://wiki.tizen.org/wiki/User:Pcoval