IoTivity Core Framework: Features & Opportunities Kishen Maloor - - PowerPoint PPT Presentation

iotivity core framework features opportunities
SMART_READER_LITE
LIVE PREVIEW

IoTivity Core Framework: Features & Opportunities Kishen Maloor - - PowerPoint PPT Presentation

IoTivity Core Framework: Features & Opportunities Kishen Maloor Intel Open Source Technology Center iCDG - Intel Communication and Devices Group Outline What is IoTivity and why is it useful? IoTivity stack architecture IoTivity


slide-1
SLIDE 1

iCDG - Intel Communication and Devices Group

Kishen Maloor Intel Open Source Technology Center

IoTivity Core Framework: Features & Opportunities

slide-2
SLIDE 2

iCDG - Intel Communication and Devices Group

Outline

  • What is IoTivity and why is it useful?
  • IoTivity stack architecture
  • IoTivity resource model and request-response

flow

  • Role in the IoT ecosystem
  • Cross-platform support
slide-3
SLIDE 3

iCDG - Intel Communication and Devices Group

What is IoTivity?

  • Open source framework and

SDK for building IoT applications

  • Independently governed
slide-4
SLIDE 4

iCDG - Intel Communication and Devices Group

Why is it useful?

Turn Lights ON Light bulbs with BLE radios

75F

75F

Smart TV Digital Thermostat Regulate Temperature Tablet Smartphone Notify Current Setting

slide-5
SLIDE 5

iCDG - Intel Communication and Devices Group

Why is it useful?

  • Cross-platform support
  • Uniform and easy-to-use APIs
  • Based on open standards
  • Support for multiple connectivity types
  • Extensible to support proprietary protocols
slide-6
SLIDE 6

iCDG - Intel Communication and Devices Group

IoTivity stack architecture

Connectivity Abstraction Secure Resource Manager Resource Model Base Functionality (C API)

Services Layer

Object Model (C++ API) JNI Glue Layer (Java API)

Smart Home Health Automotive Industrial Enterprise

…..

slide-7
SLIDE 7

iCDG - Intel Communication and Devices Group

OIC protocol & connectivity types

  • Messaging protocol
  • Currently based on CoAP (RFC 7252)
  • OIC payloads encoded using CBOR (RFC 7049)
  • Adapter abstraction
  • Handle multiple connectivity types
  • Dual-stack IPv4 / IPv6
  • Bluetooth Low Energy using GATT
  • Bluetooth EDR using RFCOMM
slide-8
SLIDE 8

iCDG - Intel Communication and Devices Group

IoTivity resource model

OIC Client OIC Server OIC Server OIC Client OIC Intermediary

Model 1 Model 2

  • RESTful design -> Things modeled as resources
  • Server role: Exposes hosted resources
  • Client role: Accesses resources on a server
  • Intermediary role: Bridges messaging between client

and server

slide-9
SLIDE 9

iCDG - Intel Communication and Devices Group

Resource URI rt: Resource Type if: Resource Interface prop: Policy n: Resource Name … …

Common Properties Resource Specific

Identifies the type of resource List of interfaces associated with the resource Policy associated with resource: discoverable,

  • bservable, secure, etc

Friendly name Resource URI :/a/light1 rt: oic.ex.light if: oic.if.rw prop: discoverable,

  • bservable

n: myHallWayLight State: 0 (OFF) Dim Level: 0 Resource URI :/a/fan1 rt: oic.ex.fan if: oic.if.rw prop: discoverable n: myKitchenFan State: 1 (ON) Speed: 10

slide-10
SLIDE 10

iCDG - Intel Communication and Devices Group

“Well-Known” resources

Functionality Fixed URI Discovery /oic/res Device /oic/d Platform /oic/p Presence /oic/ad Security …

Examples of OIC devices are thermostats or AC /oic/p /oic/res /oic/d /oic/ad /oic/res /oic/d /oic/ad OIC Device 1 OIC Device 2

  • Resources are associated with “Entity Handlers”
  • Execute OIC methods on resources
slide-11
SLIDE 11

iCDG - Intel Communication and Devices Group

Resource collections

  • Links to other resources (RFC 5988)
  • Express hierarchy, groups, indexes

Room /a/room Light /a/light/1 Light /a/light/2 Light /a/light/3

Collection URI rt: Resource Type if: Resource Interface

prop: Resource Properties

n: Resource Name links: [Other resource URI]

slide-12
SLIDE 12

iCDG - Intel Communication and Devices Group

IoTivity request-response flow

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server Client

EH

URI: /a/light; rt = ‘oic.ex.light’, if = ‘oic.ex.rw’, prop = discoverable,

  • bservable
slide-13
SLIDE 13

iCDG - Intel Communication and Devices Group

Resource discovery

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server 192.168.1.1 Client 192.168.1.2

EH

IPv4 224.0.1.187: 5683 IPv6 FF0X::FD: 5683

Multicast GET coap://224.0.1.187:5683/oic/res Unicast response [URI: /a/light; rt = ‘oic.ex.light’, if = ‘oic.ex.rw’, prop = discoverable, observable]

slide-14
SLIDE 14

iCDG - Intel Communication and Devices Group

GET operation

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server 192.168.1.1 Client 192.168.1.2

EH

Unicast GET coap://192.168.1.1:9000/a/light Unicast response [URI: /a/light; state = 0, dim = 0]

slide-15
SLIDE 15

iCDG - Intel Communication and Devices Group

PUT operation

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server 192.168.1.1 Client 192.168.1.2

EH

Unicast PUT coap://192.168.1.1:9000/a/light PayLoad: [state=1;dim=50] Unicast response Status = Success

slide-16
SLIDE 16

iCDG - Intel Communication and Devices Group

OBSERVE operation

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server 192.168.1.1 Client 192.168.1.2

EH

Unicast GET coap://192.168.1.1:9000/a/light; ObserveFlag = 1 Unicast response [URI: /a/light; state = 1, dim = 50]

slide-17
SLIDE 17

iCDG - Intel Communication and Devices Group

OBSERVE notification

Application Resource Model CoAP over UDP L2 Connectivity + IP Application Resource Model CoAP over UDP L2 Connectivity + IP Server 192.168.1.1 Client 192.168.1.2

EH

Notify Observers [URI: /a/light; state = 0, dim = 0, sequence #: 1]

slide-18
SLIDE 18

iCDG - Intel Communication and Devices Group

PRESENCE: “Active discovery”

  • Servers can advertise themselves to clients
  • Clients can request unicast or multicast notifications
  • Server coming online
  • Server going off-line
  • Changes to resources
  • Clients may indicate interest in specific resource

types

slide-19
SLIDE 19

iCDG - Intel Communication and Devices Group

Notable IoTivity features

  • Discovery
  • Messaging and data model
  • Message switching
  • Remote access
  • Services
  • Protocol plug-ins
  • Group management
  • Security
slide-20
SLIDE 20

iCDG - Intel Communication and Devices Group

Role in the IoT ecosystem

service #2 domain service #1 domain

Local Control Remote Control Server to Server

Industrial Smart Home Healthcare

Vertical Profiles IoTivity Framework Connectivity

Controller Controller Cloud Servers Cloud Servers Things LE

Connectivity Abstraction IoTivity Base & Services

IoT Application

IoTivity Application

slide-21
SLIDE 21

iCDG - Intel Communication and Devices Group

Cross-platform support

  • Linux (Ubuntu 12.04)
  • Arduino: Due, ATMega 2560
  • Android
  • Tizen
slide-22
SLIDE 22

iCDG - Intel Communication and Devices Group

Embedded support: Yocto Project

  • http://www.yoctoproject.org/
  • Hosted at the Linux Foundation
  • Create customized OS images for embedded targets
  • Ready-to-use BSPs for multiple platforms
  • Supports major CPU architectures
  • Layers and recipes
slide-23
SLIDE 23

iCDG - Intel Communication and Devices Group

meta-oic software layer for Yocto

  • git://git.yoctoproject.org/meta-oic

Samples

  • Resource and Service layer samples

IoTivity

  • APIs
  • Service layer
  • Resource Model
  • Base Framework

Dependencies

  • Kernel Configuration
  • Protocols
  • Middleware
slide-24
SLIDE 24

iCDG - Intel Communication and Devices Group

Constrained peripherals

  • Storage and memory constraints
  • Lightweight IoTivity server stack
  • Base framework, resource model, messaging
  • Work in progress…
slide-25
SLIDE 25

iCDG - Intel Communication and Devices Group

How can you participate?

  • Adopt IoTivity as the framework of choice for IoT

projects

  • Contribute to the IoTivity project: www.iotivity.org
  • IoTivity mailing list: iotivity-dev@lists.iotivity.org
slide-26
SLIDE 26

iCDG - Intel Communication and Devices Group

Thanks for your time! Q&A