Open Source and The Internet of Things

20
19 February 2015 AllSeen Alliance 1 Open Sourcing the Internet of Things Greg Burns Technical Steering Committee Chair AllSeen Alliance

Transcript of Open Source and The Internet of Things

Page 1: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 1

Open Sourcing the Internet of Things

Greg BurnsTechnical Steering Committee Chair

AllSeen Alliance

Page 2: Open Source and The Internet of Things

2

“Companies will win over Internet of

Things not in the boardroom, but on

the command line. The consortium

that gets excellent code to market

first, with a community that provides

great documentation and an inviting

atmosphere, will win. So far, only

AllSeen has done that, with code

available for download today.”

Matt Asay, VP Mobile at Adobe, via readwrite.com

Page 3: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 3

History of AllJoyn

• Late 2009 – Released as API Framework For Bluetooth Peer-To-Peer

• Connectivity

• Provided a protocol for rapid protocol development.

• Used DBus serialization format (standard on Linux platforms)

• Implemented distributed message-based software bus

• Extended to include WiFi and other reliable transport protocols

• Focused on proximal peer-to-peer applications (gaming, multi-screen, file sharing)

• Early 2011 - AllJoyn Released as Open Source Project on AllJoyn.org

• Supported Android, Linux and Windows PCs

• Late 2013 - AllSeen Alliance Formed

• To promote AllJoyn technology as the standard for IoT

Page 4: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 4

The problem to be solved

DISCOVERNearby Friendly

Devices

IDENTIFYServices Running on Those Devices

ADAPTTo Devices

Coming & Going

MANAGEDiverse

Transports

INTEROPERATEAcross Different OS’s

EXCHANGEInformation &

Services

SECUREAgainst Nearby

Bad Actors

The Problem To Be Solved

Page 5: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 5

AllJoyn Mesh-of-Stars Network Architecture

Router nodes

•Discovery/advertising

•Presence/session-management

•Publish/subscribe support

Leaf nodes

•Application code

•Authentication and encryption

App

App

App

AllJoyn

Router

App

App

App

AllJoyn

Router

App

App

App

AllJoyn

Router

App

AllJoyn

Router

App

AllJoyn

Router

Page 6: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 6

IoT and IoP

Standards Exist to Enable Interoperability

• AllJoyn is a standard protocol for developing standard protocols

The AllSeen Alliance is First and Foremost an Open Source Project

• Takes a “code first” approach to standardization

• Code is normative specifications are informative

The Standardization Mission of the AllSeen Alliance is Twofold:

• Maintain and evolve AllJoyn as the core framework for IoT

• Define open vertical standards as software interfaces on top of the core framework

These Software Interfaces are Formalized in Two Ways

• A description in a standardized XML schema

• An embodiment in an approved open source implementation

Page 7: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 7

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°

120

80

Devices Describe Their Capabilities Via Discoverable Self-Describing Service Interfaces

Page 8: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 8

Path to Interoperability

To Pass Certification, Products Must Be Based on the Open Source

Implementation

• Eliminates common cause of failed IoP – misinterpretation of the specification

• Certification testing ensures compliance at interface level

• Device to device IoP tests provide functional compliance

Function of Many Working Groups is Definition of Interfaces for Specific Verticals

• Approved interfaces can become part of the standard

• Deliverables from working groups include working code, unit tests, and

compliance tests

• Devices that implement an interface must implement it completely

Page 9: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 9

Software Architecture

AllJoyn Core

Application Layer

AllJoyn Service Frameworks

Onboarding

Physical Layer

Authentication

& Encryption

Leaf Node

Serialization

& Deserialization“About”

& Introspection

Router

Discovery

Control Panel Notifications Lighting Etc

AllJoyn Core

Management Functions

Physical Layer(s)

Routing Node

Message Router

Advertising

& Discovery

Sessions &

Presence

Multicast

Fan-out

Store &

Forward

Subscription

& Filtering

Page 10: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 10

AllJoyn Core Implementations

Standard Core Library

• Implemented in C++

• Targets HLOS applications

• Platform-specific language bindings

• High-level abstraction

• Multi-thread support

• Synchronous and asynchronous APIs

• Dynamic object creation via introspection

• Library size around 600K bytes

Thin Core Library

• Implemented in C

• Targets embedded RTOS

applications

• C APIs

• Directly exposes AllJoyn message

layer

• Single thread message handler

• Blocking send/receive calls

• Static object and interface definitions

• Library size around 80K bytes

Page 11: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 11

AllJoyn Base Services

ONBOARDING

NOTIFICATIONS CONTROL PANEL

CONFIGURATION

Page 12: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 12

C&C and IRB

AllSeen Alliance Branded Products Must Meet Certification & Compliance Requirements

• Currently a “self-certification” process

• Must demonstrate that standard interfaces are being correctly used

• Must pass feature level interoperability tests

• Must be based on a compliant base implementation of the open source code

Interface Review Board

• A body composed of AllSeen Alliance members charged with approving interface

definitions

• Ensures interfaces a consistent and conform to best practices

• Ensures interfaces are non-overlapping

• Ensures interfaces are reasonably atomic

Page 13: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 13

Sample Interface Definition

<node name="/About"

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:noNamespaceSchemaLocation="http://www.allseenalliance.org/schemas/introspect.xsd">

<interface name="org.alljoyn.About">

<property name="Version" type="q" access="read"/>

<method name="GetAboutData">

<arg name="languageTag" type="s" direction="in"/>

<arg name="aboutData" type="a{sv}" direction="out"/>

</method>

<method name="GetObjectDescription">

<arg name="objectDescription" type="a(sas)" direction="out"/>

</method>

<signal name="Announce">

<arg name="version" type="q"/>

<arg name="port" type="q"/>

<arg name="objectDescription" type="a(sas)"/>

<arg name="metaData" type="a{sv}"/>

</signal>

</interface>

</node> See About Interface Specification:

http://allseenalliance.org/docs-and-downloads/documentation/alljoyn-about-feature-10-interface-specification

Page 14: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 14

AllSeen Alliance Project Structure

Working Groups

• Provides an umbrella for a collection of related projects

• Each working group chair gets a voting seat on the Technical Steering Committee (TSC)

Projects

• Projects are where code gets committed to the AllSeen Alliance

• Each project has maintainer and one or more committers

• Committers are responsible for conducting code reviews and maintaining the integrity of the

project

• Anyone (member or not) can contribute to any project

Sub-Committees Under the TSC

• Perform various functions not necessarily related to code contribution

• Interface Review Board, Security Committee, Tools and Infrastructure Committee

Page 15: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 15

Project Workflow

Proposal

• One or more members make a proposal for a new project

• Scope and timeline must be well defined

• Project contributors, committers, and maintainer must be identified

Incubation

• Design underway, code is being contributed

Mature

• Shows a track record of ongoing contributions

• Ready or close to production quality release

• Compliance test cases delivered to C&C working group

Foundational

• Vetted for patent protection by membership

Page 16: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 16

Technical Steering Committee (TSC)

TSC Membership

• Software architects and domain experts representing premier members

• Working group chairs

Responsibilities

• Approve projects and assign mature projects to working groups

• Approve features and set schedules for releases

• Act on recommendations from IRB, security and other subcommittees

• Manage budget for technical services

• Provide technology updates and briefings for the broader membership

Page 17: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 17

Current Working Groups

Core

Data-Driven API

Developer

Tools

Gateway

Lighting

Smart Home

Page 18: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 18

Collaboration Scorecard

Projects

• 9 Working Groups

• 31 Projects

• 5367 Files

Contributions

• 83 Individual Contributors

• 17 Member Companies

• >3000 Contributions

Code

• >620,000 SLOC

• 250,000 Comment Lines

• 7 Programming Languages

Page 19: Open Source and The Internet of Things

19

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

Page 20: Open Source and The Internet of Things

19 February 2015 AllSeen Alliance 20

Thank you

Follow us on

For more information on AllSeen Alliance, visit us at:

allseenalliance.org & allseenalliance.org/news/blogs