Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · –...
Transcript of Programming the Internet of Thingsiots-workshop.com/slides/GC_2014_IoTS_Workshop_Burns.pdf · –...
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
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
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
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
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
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”
7
Internet of Things Tomorrow
NOW PLAYING:Artist: FlowersSong: Daisy
SecuredProximal Cloud
Various CloudServices
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.
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!
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
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
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
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
14
Exposing smartphone APIs enabled new experiences - that no one had ever thought of
GPS
GPU
DSP
GYRO
MICROPHONE
TOUCHSCREEN
ACCELEROMETER
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
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
17
The AllJoyn™ Project
An Open Source Framework for the Internet of Things
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.
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]>
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
….
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
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
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
2 December 2014 AllSeen Alliance 24
For more information on AllSeen Alliance, visit us at: allseenalliance.org & allseenalliance.org/news/blogs