Top Banner
JavaScript for IoTivity Sakari Poussa, Intel @spoussa
16

JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

JavaScript for IoTivity Sakari Poussa, Intel

@spoussa

Page 2: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Topics

Page 3: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Vision

GW

Smart Devices

REST

REST

CoAP, MQTT, 6LowPAN, BLE

JavaScriptEngine(s)

Web Server

API Server

Resources Connectivity

HTML5 Apps

Storage

Cloud

JavaScript for Everything

Applica'on  developer  can  use  only  web  technologies  to  create  end-­‐to-­‐end  solu'ons.    Not  the  only  op'on  but  focus  of  this  talk.  

Page 4: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Gold  

Diamond  

Pla,num  

Page 5: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

•  Specifications •  Data models •  Certification •  Marketing

•  Open Source implementation •  QA •  API bindings

No  JavaScript  

Page 6: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

•  JavaScript API for OIC •  Web IDL specification •  Single API – Multiple Implementations •  All open source •  Travis, sample code, demos •  IoTivity 1.0

Page 7: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

API Highlights

Promise findResources(); Events:

resourcefound

Promise<resource> register(data); Events:

retrieverequest updaterequest observerequest

Client   Server  

Promise retrieve(); Promise update(data); Promise observe(); Events:

update

Resource  

Page 8: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

OIC  Client   OIC  Server  

Request:  DISCOVER  

Response:  URI,  Type,  ID  

Discovery

Page 9: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

OIC  Client   OIC  Server  

Request:  RETRIEVE  

Response:  DATA  

Retrieve, Update

Request:  UPDATE  

Response:  OK  

Page 10: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Cloud

OIC and Cloud

REST API

CoAP over TCP

XMPP

Page 11: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Cloud

API    SERVER   REST   HTTP(S)  and  JSON  

OIC  Device  Network  (local)  

Remote Access with REST APIs

Page 12: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Sensor    (OIC  server)  

HTTP  GET  /oic/res  Request:  DISCOVER  

Response:  URI,  Type,  ID  {"href":"/a/light,"rt":"core.light","if":"oc.mi.def"}  

HTTP  200  OK  {"href":"/a/light,"rt":"core.light","if":"oc.mi.def"}  

HTTP  GET  /a/light  Request:  RETRIEVE  (/a/light)  

Response:  DATA  {"href":"/a/light","proper'es”:{”on":false}}  

HTTP  200  OK  {"href":"/a/light","proper'es":{”on":false}}  

HTTP  PUT  /a/light  {"href":"/a/light","proper'es":{”on":true}}  

Request  UPDATE  (/a/light)  {"href":"/a/light","proper'es":{”on":true}}  

Response:  OK    

HTTP  200  OK  

Discovery  

Read  

Update  

API  Server  (REST)   Cloud/Mobile  

Page 13: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

REST API SERVER •  All JavaScript

•  Node.js, Express, and iotivity-node

•  Open source https://github.com/01org/iot-rest-api-server

•  RAML API documentation

•  Features

•  OIC discovery (/oic/res and /oic/d)

•  OIC RETRIEVE and UPDATE

•  Observing

Cloud

REST  API    SERVER  

Page 14: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Next Steps Security – Sandbox

Small devices – V8 is big

JS Engine API ?

Page 15: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Demo

Visit Intel Booth for Demo

Iotivity-node in Action

No Native Application Code

JavaScript, HTML, WebGL and CSS

Page 16: JavaScript for IoTivity · 2017-12-14 · OIC*Client OIC*Server* Request:*DISCOVER Response:*URI,*Type,*ID* Discovery

Questions ?