building the iot platform as a service

Post on 28-Jul-2015

524 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Powering the Industrial Enterprise: The Emerge of the IOT

PaaS

Better Title: The NO BS Guide to IOT in the Real World

About Me

• Hackerpreneur• Founder of KidoZen• Founder of Tellago • Board member: Mobiquity,Electric Cloud• Advisor: Microsoft, Oracle• Angel Investor• Speaker, Author

http://jrodthoughts.comhttps://twitter.com/jrdothoughts

Agenda

• A quick look at the IOT market• A platform as a service for IOT• Centralized IOT capabilities• Decentralized IOT capabilities• Foundational models of an IOT PaaS:

Cloudfoundry, Block Chain• The current IOT solution landscape

Key Takeaways

• IOT PaaS models• How to implement IOT PaaS capabilities• State of the IOT platform market

IoT is destined to power the modern enterprise

We all know the real value of IOT

We Need Smarter Toasters

The Market?

Gartner calls IOT overhyped technology

Growth in venture funding has sustained in IoT over the last four years

~70% of IoT funding rounds from 2011-2013 were related to wearable technology

IoT company exits have grown ~36% YoY since 2010

Notable exits

$200M

$100M

$2B

$3.2B

$555M $175M

$170M $112M

$107M

~$500M IPO

$780M

Most of the Innovations has taken place in the wearables market but the enterprise is quickly catching up…..

Redefining Industries

The Opportunity is Huge… but so are the Challenges

Enterprise IoT Challenges

Connectivity

You Can Build Your Own Infrastructure

But It Will be Hard

There Must be a Better Way

IOT requires a new type of platform….

Introducing IOT Platform as a Service

Key Capabilities of an IOT Platform

Centralized vs. Decentralized IOT PaaS Models

Centralized IOT PaaS Model

• Smart devices talk to a central hub• The hub provides backend capabilities to smart devices• The hub manages and controls the IOT topology

Decentralized IOT Capabilities

• Capabilities that operate without a central authority• Smart devices host a version of the IOT PaaS• Smart devices communicate autonomously without a central

authority

Let’s explore….

Centralized IOT PaaS Capabilities…

Device Management Service

• Managing smart devices in an IOT topology

• Device monitoring• Device security • Device ping

Device Management Service: How To Implement it?

• Consul.io• XMPP discovery extensions • IBM IOT Foundation device

management API

REQUEST

POST org_id.internetofthings.ibmcloud.com/api/v0001/devices

{"type": "raspberrypi-sample",

"id": "1958138a4dfe",

"metadata": {

"address": { "number": 29, "street": "Acacia Road" } }}

RESPONSE

{"uuid": "d:ey67sp:raspberrypi-sample:1958138a4dfe",

"type": "raspberrypi-sample",

"id": "1958138a4dfe",

"metadata": { "address": {"number": 29, "street": "Acacia Road" }},

"password": "A?j8y_ueh*d(je34", "registration": {

"auth": {"id": "joebloggs@uk.ibm.com",

"type": "person"

},

"date": "2014-08-21T18:25:43-05:00"}}

Protocol Hub

• Enabling devices to interact with the IOT platform using heterogenous protocols

• Provide consistent data/message exchange experiences across different devices

• Unify management, discovery and monitoring interfaces across different devices

Protocol Hub: How To Implement it?

• IOTivity protocol plugin model• IOTLab protocol manager• Apigee Zetta

PluginManager *m_pm = new PluginManager();std::vector<Plugin> plugins = m_pm->getPlugins();std::string name = plugins[0].getName();std::string id = plugins[0].getId();

<?xml version="1.0" encoding="UTF-8"?> <plugin id="oic.plugin.hue" version="0.1" name="hue plugin" resourcetype="oic.light" provider-name="wallace"> <runtime library="libplugin-hue-light" funcs="hue_light"/> </plugin>

Device Discovery

• Registering devices in an IOT topology

• Dynamically discovering smart devices in IOT network

Device Discovery: How To Implement it?

• UDP datagrams• Constrained application

protocol (CoAp)• IOTivity discovery APIs

platform.findResources("", "<span class="s1">coap://224.0.1.187</span>/oc/core?rt=alpha.light", findHandler)

Event Aggregation

• Execute queries over data streams• Compose event queries • Distribute query results to event

consumers

Event Aggregation: How To Implement it? • Apache Storm• AWS Kinesis • Azure Event Hubs• + Stream Analytics • Siddhi (WSO2)

KinesisSpoutConfig(streamName, zookeeperEndpoint). withZookeeperPrefix(zookeeperPrefix).withInitialPositionInStream(initialPositionInStream).withRegion(Regions.fromName(regionName));

builder.setSpout("Kinesis", spout, 2);builder.setBolt("Parse", new ParseReferrerBolt(),6).shuffleGrouping("Kinesis"); builder.setBolt("Count", new RollingCountBolt(5, 2,elasticCacheRedisEndpoint), 6).fieldsGrouping("Parse", new Fields("referrer"));..StormSubmitter.submitTopology(topologyName, topoConf, builder.createTopology());

Telemetry Data Storage

• Store data streams from smart devices in an IOT topology

• Store the output of the event aggregator service

• Optimize access to the data based on time stamps

• Offline data storage• Offline data syncing

Telemetry Data Storage: How To Implement it?

• Time Series: OpenTSDB, KairosDB, InfluxDB

• Offline: Couchbase + Couchbase lite

• IBM Bluemix Time Series API• InfluxDB

select percentile(value, 95) from response_times group by time(5m) into response_times.percentiles.5m.95

select mean(value), percentile(90, value) as percentile_90, percentile(99, value) as percentile_99 from /^stats.*/ group by time(10m) into 10m.:series_name

Event Simulation

• Replay streams of data in an IOT topology

• Store data streams that simulate real world conditions

• Detect and troubleshoot error conditions associated with specific data streams

Event Simulation: How To Implement it?

• Azure Event Hubs• AWS Kinesis• Apache Storm • PubNub

// retrieve last 100 messages pubnub.history({channel : 'my_channel',count : 100,callback : function(m){console.log(m)}});

Event Notifications

• Distribute events from a source to different devices in an IOT topology

• Devices can subscribe to data notification on specific topics

Event Notifications: How To Implement it?

• PubNub for IOT• Parse Notifications for IOT• MQTT

public class SubscribeCallback implements MqttCallback{ @Override public void connectionLost(Throwable cause) {} @Override public void messageArrived(MqttTopic topic, MqttMessage message) { System.out.println("Message arrived. Topic: " + topic.getName() + " Message: " + message.toString()); if ("home/LWT".equals(topic.getName())) { System.err.println("Sensor gone!"); } } @Override public void deliveryComplete(MqttDeliveryToken token) {} }

Real Time Data Visualizations

• Visualize IOT data streams real time

• Provide map visualizations in an IOT topology

• Integrate with big data platforms

• Integrate with machine and deep learning platforms

Real Time Data Visualizations: How To Implement it? • MetricsGraphicsJS• Graphite• Graphene• Cube• Plottly• D3JS

d3.json('data/ufo-sightings.json', function(data) { MG.data_graphic({ title: "UFO Sightings", description: "Yearly UFO sightings from the year 1945 to 2010.", data: data, width: 650, height: 150, target: '#ufo-sightings', x_accessor: 'year', y_accessor: 'sightings', markers: [{'year': 1964, 'label': '"The Creeping Terror" released'}] })})

Other Interesting Centralized IOT Capabilities• Device authentication• Access control • Integration with enterprise systems

Adopting Centralized IOT PaaS Capabilities

• Standard services, different implementations • Hosting environment agnostic • Incorporating third party services• Centralized management and governance

Cloudfoundry: A Foundational Model for a Centralized IOT PaaS

• Open PaaS architecture• Standard set of services• Broker model to incorporate

new services • CF web and infrastructure

services • CF mobile services (Pivotal CF

mobile)• CF IOT services??????????????

Decentralized IOT PaaS Capabilities…

Peer to Peer Secure Messaging

• Exchanging messages between smart devices in an IOT topology

• Eliminate the need of a central hub

• Secure, fully encrypted messaging protocol

Peer to Peer Secure Messaging: How To Implement it?

• Telehash var th = require("telehash");th.generate(function(err, endpoint){ if(err) return console.log("endpoint generation failed",err); // endpoint contains a `keys:{}`, `secrets:{}`, and `hashname:"..."` });…...var link = mesh.link(hashname);// will be called when link status changes, err is undefined when link is uplink.status(function(err){ if(err) { console.log('disconnected',err); return; } console.log('connected'); // can do any other link.* methods});

Contract Enforcement & Messaging Trust

• Express capabilities of a device• Enforce actions between

devices• Maintain a trusted ledger of

actions in an IOT network

Contract Enforcement: How To Implement it?

• Bitcoin Block Chain• Ethereum

File Sharing

• Efficiently sending files to smart devices (ex: firmware update)

• Exchange files in a decentralized model

• Secure and trusted file exchanges

File Sharng: How To Implement it?

• Bittorrent

Other Interesting Decentralized IOT Capabilities• Historical analytics • Device cooperation

Adopting Decentralized IOT PaaS Capabilities

• Smart devices will host an embedded version of the IOT PaaS• Interactions between devices need to be trusted without a

central authority • Standard way for devices to express capabilities

Block Chain: A Foundational Model for a Decentralized IOT PaaS

• Decentralized consensus • Trusted computing • Proof of work

The IOT Platform Market Is Incredibly Crowded…

Main Groups

IOT Platforms

Traditional Enterprise Software Vendors

Platform as a Service Solutions

API and Integration Platforms

Telecommunication Operators

Hardware & Networking Vendors

IOT Platform Startups

Enterprise Software Vendors

Vendors

• Oracle IOT Platform • IBM IOT Foundation• Citrix

Key Characteristics

• Closed source• On-premise • Proprietary technology• Hard to manage and deploy

Key Scenarios

• Vertical IOT solutions built on the platform• Integration with enterprise systems

Platforms as a Service

Vendors

• Azure Stream Analytics + Event Hubs• AWS Kinesis

Key Characteristics

• Cloud based• Standalone services for specific IOT capabilities • Easy to use and manage

Key Scenarios

• IOT products or solutions that require a specific service or capability

API and Integration Platforms

Vendors

• Apigee IOT Link (Zetta)• MuleSoft Anypoint• Parse IOT

Key Characteristics

• Integrating APIs with IOT telemetry data• Missing key elements of an IOT platform• Relatively simple to use and setup

Key Scenarios

• Integrating IOT solutions with backend APIs• Suppporting heterogeneous IOT transports and protocols

Integration PlatformsIntegration Platforms

Telecommunication Operators

Vendors

• Huawei Agile IOT Platform• <Insert your favorite telco name here…> IOT Platform

Key Characteristics

• Deep integration with operator network• Optimized for devices and solutions provided by the network operator • Complex to use, lack of mainstream adoption

Key Scenarios

• Industry solutions built on the platform• Network traffic optimization

Hardware and Networking Solutions

Vendors

• Cisco IOT solution suite• F5 IOT networking solutions

Key Characteristics

• Focus on networking and security• Integration with specific network hardware topology

Key Scenarios

• Enable an efficient network topology for IOT solutions

Mobile OS Vendors

Vendors

• Android Brillio • Blackberry IOT platform

Key Characteristics

• Tight integration with a specific mobile OS• Simple developer experience• Optimized for wearable’s

Key Scenarios

• Developing solutions for wearables• Interoperability between mobile apps and smart devices

IOT Platform Startups

Vendors

• LogmeIn Xively• ThingWorx • 2lemetry (AWS)

Key Characteristics

• Focus on enabling backend capabilities to IOT apps• Simple developer experience • Cross IOT platform capabilities

Key Scenarios

• Highly customizable IOT solutions• Advanced green field capabilities

Summary

• Industrial IOT will require a new type of platform• IOT PaaS models will be the foundation to the industrial enterprise• IOT PaaS models can be centralized or decentralized• Cloudfoundry architectures can be a great enabler of centralized IOT

capabilities• The block chain provides an incredible foundation for decetrnalized

IOT• The IOT PaaS is evolving on different segments of the market

THANKSJesus Rodriguez

https://twitter.com/jrdothoughts http://jrodthoughts.com/

top related