Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · –...

24
Programming the Internet of Things Why Devices Need APIs December 8, 2014 Greg Burns Chair of Technical Steering Committee AllSeen Alliance

Transcript of Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · –...

Page 1: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 1

Programming the Internet of Things

Why Devices Need APIs

December 8, 2014

Greg BurnsChair of Technical Steering CommitteeAllSeen Alliance

Page 2: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2

Mobile – The largest technology platform~3.3 billion unique subscribers

Source: GSMA Intelligence, November 13; UN, November 2013

6.8 Bconnections people

7.2 B

Page 3: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

3

And that platform is about to be dwarfed…Massive surge in connected things has already begun

By 2020, 40.9 billion things will be connected*

− Via Wi-Fi, wire line, cellular, and proximal networks− Benefiting billions of people worldwide− 75% of the growth between today and the end of the

decade will come from non-hub devices

Transforming:− Industry− Infrastructure− Media− Education− Work− Recreation− Family− Daily life

* Source: https://www.abiresearch.com/press/the-internet-of-things-will-drive-wireless-connect

AllSeen Alliance

Page 4: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

4

Internet of Things Today

NOW PLAYING:Artist: FlowersSong: Daisy

FridgeCloud

LaundryCloud

Lighting BCloud

Speaker BCloud

Speaker ACloud

TVCloud

Lighting ACloud

Lighting CCloud

SecurityCamera Cloud

Page 5: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

5

Ubiquitous connectivity promises to make devices “smart”

But ONLY if they speak the same language

당신은내말들려? Tem alguém aí? 100010101011hello world!

AutoHomeConsumer goodsand appliances

IndustrialComputing devices

Devices that can’t connect across brands, categories, and operating systems will be left out

Page 6: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

6

Network topology matters

Direct communicationis fast, efficient, and secure.

No need to go out to the cloud to talk to the device right next to you!“Coffee is done”

“Coffee is done”“Laundry is ready!”

“Laundry is ready!”

“Someone’s at the door”

“Someone’s at the door”

NOW PLAYING:Artist: FlowersSong: Daisy

“Someone’s at the door”

Page 7: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

7

Internet of Things Tomorrow

NOW PLAYING:Artist: FlowersSong: Daisy

SecuredProximal Cloud

Various CloudServices

Page 8: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

8

What are these “things” of which you speak? Without the right combination of hardware, connectivity and software a “Thing” is just a “Thing”. Ultimately it is software that makes a “Thing” an Internet-of -Things Thing.

Page 9: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 9

APIs - how software talks to software

• Well constructed software has clean boundaries between the internals of the implementation and the external interfaces exposed to other software.– We generally call these external interfaces Application Programming Interfaces (APIs)– APIs are what makes it possible to incorporate existing functionality into new code

• Software platforms are simply collections of APIs– Windows, Linux, Android, iOS, OSX – are defined by the APIs they provide– Examples abound - OpenGL, PhysX, Webkit, every social network on the planet!

Page 10: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 10

APIs – for IoT devices

• IoT devices are characterized by the software they run so:– When IoT devices talk to IoT devices it is software talking to software

• IoT devices should have APIs– But these IoT devices are all so different– But often have very similar functions

• What APIs should IoT devices have?– Some standard APIs– Some device specific APIs

Page 11: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

11

IoT needs a framework to expose the various APIs of connected devices in a consistent way.A single platform allowing products to expose their capabilities

LOCK DOORS

LIGHT BULBS

GARAGE DOOR

SENSORS

PICTURES

VIDEO

DRAPES

DISPLAYS

SPEAKERS

CLOCKS

COOL

HEAT

TVs

The AllJoyn software framework is a collaborative open source project of the AllSeen Alliance

Page 12: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

12

Devices describe their capabilities via discoverable self-describing service interfaces

I can send notificationsI have control panel

I have lighting interface

I can send notifications.I have control panelI have a clock interface

I display notifications.I have the clock interface!

I display notifications.I have the clock interface!

I display notifications.I have the clock interface!

I can send and display notifications

I can send notifications

The AllJoyn software framework is a collaborative open source project of the AllSeen Alliance

72°

12080

Page 13: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 13

Standards

• What we don’t want:– There’s an App for that thing– And an App for that thing– And yet another App for that thing– …

• Devices that have similar functionality should expose the same APIs– Every device with a clock should expose a set-clock API– Every device that has a battery should expose a battery level API– Manufacturers cannot differentiate by exposing necessary functionality in different ways

Page 14: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

14

Exposing smartphone APIs enabled new experiences - that no one had ever thought of

GPS

GPU

DSP

GYRO

MICROPHONE

TOUCHSCREEN

ACCELEROMETER

Page 15: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

15

The problems to be solved…in an open interoperable way

DISCOVERnearby friendly devices

IDENTIFYservices runningon those devices

ADAPTto devices comingand going

MANAGEdiversetransports

INTEROPERATEacross different OSes

EXCHANGEinformation and services

SECUREagainst nearby bad actors

Page 16: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 16

Baseline for an API framework for IoT

• Must be designed to work with existing programming languages– Java, C, C++, C#, JavaScript, Python, etc

• Must support modular construction– To allow standard building blocks– To allow innovation

• Must include facilities for discovery– Find out what APIs a device has rather than what the device is

• Must support privacy and security– Which APIs can be used by other devices– Authentication and data encryption

Page 17: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

17

The AllJoyn™ Project

An Open Source Framework for the Internet of Things

Page 18: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 18

A year ago a group of companies formed the AllSeen Alliance• A nonprofit consortium dedicated to enabling the widespread adoption of products, systems and

services that support the Internet of Things through an open environment, vibrant ecosystem and thriving technical community.

• Hosts and advances an industry-supported software and services framework based on the collaborative AllJoyn open source project.

• This collaborative open source framework enables hardware manufacturers and software developers to create interoperable products that can discover, connect and communicate directly with other devices, systems and services regardless of brand.

Page 19: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

2 December 2014 AllSeen Alliance 19

Alliance and ObjectivesSupporting the Internet of Things through an open environment, vibrant ecosystem and thriving technical community.

Alliance

Open Source Community

Industryleaders

Tech/software innovators

Contribute& Use

EvangelizeEvolutionof AllJoyn

EnableVibrant

Ecosystem

To learn more about the AllSeen Alliance visit: www.allseenalliance.org

To find out about participating in the AllSeen Alliance contact: Joe Speed <[email protected]>

Page 20: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

20

AllJoyn Software Framework: High-level architecture A comprehensive software framework lets devices and applications communicate

Standard Application Layer

AllJoyn Application LayerAllJoyn Service Frameworks

AllJoyn Core Libs

Onboarding Control Panel

Notifications Audio

Lighting

Physical Layer (Wi-Fi, PLC, Ethernet, Bluetooth)

Discovery & Advertisement

APIsConnection

APIsSecurity

APIs

AllJoyn Core LibsProvides ability to find and connect to devices to do interesting things.Core libraries interact with the AllJoyn RouterProvides access control and encryption

AllJoyn Service FrameworksInteroperable, cross-platform modules for common IoEfunctionalityDefines common interfaces between devices

The AllJoyn software framework is a collaborative open source project of the AllSeen Alliance

OS

AllJoyn Apps

Config

AllJoyn App LayerDefines the User experience

AllJoyn RouterAllJoyn Router

• Manages communications between devices and apps

• Dynamic network management

Interface APIs

Events and Actions

….

Page 21: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

21

Two Versions of the AllJoyn Framework To Choose

Standard Application Layer

Standard Application Layer

App LayerAllJoyn Standard

Service Frameworks

AllJoyn Standard Core Libs

Physical Layer (Wi-Fi, PLC, Ethernet, Bluetooth)

Standard Core LibrariesMultiple bindings, runs on HLOS C bindings, runs on RTOS

Thin Apps using Thin Core requires an AllJoyn Routerin the network

Thin Core Libraries

The AllJoyn software framework is a collaborative open source project of the AllSeen Alliance

HLOS RTOS

App LayerAllJoyn Thin Service

Frameworks

AllJoyn Thin Core Libs

Standard Apps Thin AppsStandard App LayerApp dev or OEM writes this

Thin App Layer

OEM writes this

AllJoyn RouterAllJoyn Router

AllJoyn Router can be bundled with a Standard App or run standalone

Page 22: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

22

Licensed under open source; general IOE use cases

Not licensed under open source; addresses specific use cases

Value Added Services(e.g., your differentiation)

AllJoyn Core: Discovery,

connectivity, network management from AJ Router + core libraries

Onboarding, notification, audio compatibility from

AllJoyn Service Frameworks

AllJoyn Router

AllJoyn Core LibrariesDiscovery Connection / Network Management Security

AllJoyn Service Frameworks

Onboarding Control Panel Notifications Audio Future…Config

Open source building blocks for value added servicesUse AllJoyn Core Library and Service Frameworks to create differentiated offerings

Page 23: Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · – APIs are what makes it possible to incorporate existing functionality into new code

23

− Alliance Wiki: https://wiki.allseenalliance.org− Documents, downloads, and developer tools− Source Code, release overviews, roadmaps− Training & Service Framework details− Working Groups, New Proposals & meeting minutes

− Forums: https://ask.allseenalliance.org/questions

− Certification: https://allseenalliance.org/certification

− Releases & Roadmaps: https://wiki.allseenalliance.org/release/overview

− Public Mail Lists: https://lists.allseenalliance.org/mailman/listinfo

− Showcase: https://allseenalliance.org/showcase

− Monthly Newsletter: https://allseenalliance.org/news-and-events/newsletters

For More Information