21
Programming the Internet of Things Why Devices Need APIs August 26, 2015 Marcello Lioy Chair of Core Working Group AllSeen Alliance

Programming the Internet of Things: Why Devices Need APIs

Embed Size (px)

Citation preview

Page 1: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 1

Programming the Internet of Things

Why Devices Need APIs

August 26, 2015

Marcello Lioy

Chair of Core Working GroupAllSeen Alliance

Page 2: Programming the Internet of Things: Why Devices Need APIs

2

Ubiquitous connectivity promises to make devices “smart”

But ONLY if they speak the same language

당신은 내 말 들려 ? Tem alguém aí?

100010101011hello world! hello world

AutoHomeConsumer goodsand appliances

IndustrialComputing devices

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

Page 3: Programming the Internet of Things: Why Devices Need APIs

3

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 4: Programming the Internet of Things: Why Devices Need APIs

4

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 5: Programming the Internet of Things: Why Devices Need APIs

5

Internet of Things Tomorrow

NOW PLAYING:Artist: FlowersSong: Daisy

SecuredProximal Cloud

Various CloudServices

Page 6: Programming the Internet of Things: Why Devices Need APIs

6

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 7: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 7

IoT Devices: how will they interact?

• IoT devices are characterized by the software they run so:– When IoT devices talk to IoT devices it is software talking 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

• APIs are how software talks to software

Page 8: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 8

APIs – for IoT devices

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

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

Page 9: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 9

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 10: Programming the Internet of Things: Why Devices Need APIs

10

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 11: Programming the Internet of Things: Why Devices Need APIs

11

The AllJoyn™ Project

An Open Source Framework for the Internet of Things

Page 12: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 12

December 2014 a group of companies formed the AllSeen Alliance• A nonprofit consortium dedicated to enabling the Internet of Things

• 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.

Author
Updated to keep title accurate
Page 13: Programming the Internet of Things: Why Devices Need APIs

13

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

APIs Security APIs

AllJoyn Core LibsProvides ability to find and connect to devices to do interesting things.Provides access control and encryptionCore libraries interact with the AllJoyn Router

AllJoyn Service FrameworksInteroperable, cross-platform modules for common IoE functionalityDefines 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

….

Author
moved AJ Router bullet last.
Page 14: Programming the Internet of Things: Why Devices Need APIs

14

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 RTOSThin 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 15: Programming the Internet of Things: Why Devices Need APIs

15

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 16: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 16 16http://events.linuxfoundation.org/events/allseen-alliance-summit/program/about

Page 17: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 17

About the event

Attend the AllSeen Alliance Summit...

Join business and thought leaders, developers, product managers and the open source community to address critical technological areas of the Internet of Things (IoT), while working together to advance the AllJoyn open source software framework.

Taking place in Seattle, October 19-21, the AllSeen Alliance Summit will include keynotes, technical sessions and general sessions that encourage collaboration on AllJoyn and key IoT topics of interest including security, smart spaces, industrial, connected lighting, cloud/gateway connectivity, application development, wearables and developer tools.

From the web page describing the event

Page 18: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 18

Who and WhyWho Attends:

The AllSeen Alliance Summit is open to the public and expected to attract 600 attendees including:

• Developers - Software Developers, Programmers

• Operations - IT Operations Experts, IT architects

• Business - Senior Business Executives, CIOs/CTOs/VPs of Technology

• Plus Students, Media, Analysts and anyone with an interest in the IoT ecosystem and open source technologies

Why Attend:

• Receive up-to-date information on the latest developments and innovations within the open source IoT ecosystem

• Develop your technical knowledge around the AllJoyn open source software framework

• Explore innovative IoT solutions and creative ways to support your IoT business model

• Gain and understanding of how AllJoyn interacts with other open standards and technologies

• Network with like-minded business leaders and organizations; and more

Page 19: Programming the Internet of Things: Why Devices Need APIs

May 1, 2023 AllSeen Alliance 19

Detailed Agenda…

…can be found:

http://events.linuxfoundation.org/events/allseen-alliance-summit/program/schedule

There is also a 2 day plugfest following the summit: October 22 and October 23– The goal of the PlugFest is to offer participants a valuable opportunity to test interoperability and

compliance of AllJoyn implementations in a private and well-supported environment, with experts on hand to help with issues in real time.

– Details can be found:http://events.linuxfoundation.org/events/allseen-alliance-summit/extend-the-experience/alljoynplugfest

Page 20: Programming the Internet of Things: Why Devices Need APIs

20

− 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