A Methodology for Building the Internet of Things

25
A Methodology for Building the Internet of Things Tom Collins @snillocmot [email protected]

description

The IoT Methodology aims to provide a loosely structured ecosystem of mutual value for all who participate, driven by sharing, collaboration, community and learning. An ecosystem made up of tools, design patterns, architecture references and guidelines to build IoT solutions. In the spirit of the World Wide Web and Open Source communities across the globe, a new collaborative effort must be taken to make the Internet of Things a reality. It’s alive, it grows, it expands, it has no end date or budget restriction.

Transcript of A Methodology for Building the Internet of Things

Page 1: A Methodology for Building the Internet of Things

A Methodology for Building

the Internet of Things

Tom Collins@snillocmot

[email protected]

Page 2: A Methodology for Building the Internet of Things

goal

To allow everyone to experience the Internet of Things,

by seeing and feeling potentials of common use cases,

through iterative prototyping and a ‘lean startup’ mentality.

Ultimately to enable individuals, communities and organizations

to think, imagine and question ‘What’s next?’

to inspire the next killer app.

This concerns the services and apps

created on top of these common use cases,

in order to build a meaningful Internet of Things

We can build services for people, by people, of people, in the 21st century, if we make it so“

@timoreilly

Page 3: A Methodology for Building the Internet of Things

motivation & ethos

Initiatives motivated solely by profit and politics hinder innovation and lack

the creativity, enthusiasm and courage to step into the unknown

In the spirit of the World Wide Web and Open Source communities across the globe,

a collaborative effort must be taken to make the Internet of Things a reality

The IoT Methodology aims to provide a loosely structured ecosystem of mutual value for all who

participate, driven by sharing, collaboration, community and learning.

An ecosystem made up of tools, design patterns, architecture references and guidelines

to build IoT solutions. It’s an iterative methodology, which is developing iteratively.

Page 4: A Methodology for Building the Internet of Things

perspective

The catalyst for the Internet of Things, are the do-ers, the explorers,

the early adopters, those ambitious enough to experiment, tinker and trial new technologies

The ‘lowest common denominator’ to promote IoT from a bottom-up

approach are makers, which will bring new technologies and disruptive innovation to industries and markets

What it isn’t

An all encompassing master solution.

Nor does it favor any technology, protocol or preferences.

What it is

A curated repository of best practices, tried and tested tools, protocols and solutions,

driven by a community who use them in real-world scenarios

Page 5: A Methodology for Building the Internet of Things

CoCreate

Ideate

Q&A

IoT OSI

Prototype

Deploy

iteration steps

Communicate with end users and stakeholders to

identify pain problem areas, in a non-technical way

Simplify discussions to communicate

requirements with designers, implementers and project managers

Translate soft concepts into hard

requirements, to analyze solutions and

brainstorm options

Requirements map to valid

architecture, infrastructure and

business frameworks

Standardized toolkit assists building

prototypes, which iterate towards minimum viable

products

Continuous Deployment assists closing the

feedback loop, enhances knowledge sharing and

collaboration opportunities

Page 6: A Methodology for Building the Internet of Things

co-create

Purpose

• Assist kickoff sessions to initiate projects and

aid communication between end users,

stakeholders and implementers

• User centric problem analysis

• Conceptual designer approach

• Remove complexities and influences that

technically minded individuals bring to the

equation

• Narrow the scope of a problem domain to

the most practical and impactful use cases

Current works & influences

cocreatetheiot.com @nstembert

gov.uk/design-principles @benterrett

A manifesto for do-it-yourself internet-of-things

creation @driesderoeck

Next steps

Build a repository of flavored techniques for specific domains and audiences

Define concrete deliverables to feed the Ideatestep

Page 7: A Methodology for Building the Internet of Things

A workshop to allow stakeholders from all levels and

backgrounds to identify and conceptualize IoT

solutions for Smart Cities.

co-create in action

@DunavNET Novi Sad, Serbia – 13th April 2014

• Discuss the problem domain using visual props

• Narrow down biggest pain problems

• Contextualize with the physical environment

• Consider influences and outcomes of these

problems

• Identify knowledge areas contributing to solutions

• Triage pressing problem areas

• User Interface mockup creation to allow users to

visualize and understand possible solutions

Summary

Tools for the CoCreate IoT Workshop by Nathalie Stembert

In two and a half hours we developed a full IoT

concept together with end-users, designers and

developers.

Normally this takes us half a year and then we wouldn’t

even have involved people from the target group yet.

Page 8: A Methodology for Building the Internet of Things

ideate

Purpose

• Provides a common reference for

brainstorming and discussing IoT ideas, use

cases and projects

• Quick and easy for the prospects and

practioneers

• Standardized terminology

• Designer or developer centric approaches

• Opens discussions between varied

stakeholders

Current works & influences

Lillidots @DriesDeRoeck

The IoT Canvas @snillocmot

Business Model/Lean Canvas @ericries & @ashmaurya

Next steps

Share the IoT Canvas template

Publish IoT Canvas & Guide inspired by Running Lean on how to apply this to IoT projects

Analyze how best to extract requirements for

validation which feeds into Q&A

Build a web app to digitize the process

Page 9: A Methodology for Building the Internet of Things

The IoT Canvas is an adaptation of the Business

Model/Lean Canvas, used in brainstorm sessions

with various user groups, it assists validation and

identification of MVP requirements for projects.

ideate in action

@smartliving_io Gent, Belgium 20th November 2014

• Problem statement summing up user’s pains

• Identify Things in the physical environment(Context)

• Consider sensors(inputs), actuators(outputs) &

controllers which make up Endpoints interacting

with Things

• Define Data models for Endpoints

• Define Middleware requirements for Endpoints to

connect IoT Services

• Summarize Third-party-web-services that will be

integrated

• Sketch User Interface widgets

• Define the key actors (Humans) using the system

Summary

IoT Canvas for the ‘Smart Greenhouse’ Makers project

Page 10: A Methodology for Building the Internet of Things

Q&A

• Closes the gap between idea and

implementation

• Validation - What, where, when, why, how?

• Feasibility - For metrics, resources, skills,

practicality, defined problem

• Domain Analysis - What else in the problem domain hasn’t been considered?

• Solution & Topology Design - What other

requirements have stakeholders voiced

which affect the selection of tools &

technologies

Current works & influences

IoT:DB - Repository listing tools, technologies and solutions, that

can be searched with project requirements

IoT Analysis Survey @allthingstalk

Next steps

Purpose

Guide for the path from ideation to architecture, to target specific verticals

Define a deliverable ‘report’ to feed the IOT OSI &

IOT ARM

Web app survey to allow users to enter

requirements

IoT:DB MVP - facilitate adding new solutions and

searching the repository

Page 11: A Methodology for Building the Internet of Things

• Project outline - Business value

• Feasibility - Validate scope

• Practical Considerations - Close scope

• Problem Domain Analysis - Solution summary

• Solution & Topology Design - Architecture

• Infrastructure Considerations - Infrastructure

A series of surveys conducted with early user groups

to discover the best way of conceptualizing a

project and choosing the most appropriate

solutions for IOT OSI layers to assist project

development.

Summary

@allthingstalk Conducted online – April to August 2014

Results from architecture design preferences for end point devices

Q&A in action

Page 12: A Methodology for Building the Internet of Things

IOT OSIPurpose

• Breaks down and the simplifies the

components of the IoT into an ‘Internet as

an operating system’ paradigm

• Makes it easy to digest the scale of Internet of Things and all of it’s intricate

components

• Define scope areas for domain specialists

to focus efforts

• Simplifies communications with end users, stakeholders and development teams

Current works & influences

IoT:DB - Search for solutions based on architecture requirements

The IoT-Architecture Reference Model @IoT_A

OSI Seven layer model

Next steps

Map common solutions to the IOT OSI – Intel IoTSolutions, Eclipse Open IoT Stack, etc

Support the creation of new architecture

references for specific verticals

Test and validate architectures using the Prototype step

Page 13: A Methodology for Building the Internet of Things

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPSaka things

Endpoints have a number of roles

including producing data, receiving

commands, providing services for

management, discovery, persistence and local

logic.

Examples

Temperature sensor, LED, Weather service,

Email notifications, RFID Reader, etc

The wire(less) level communication

protocols used to connect Endpoints to

the Middleware.

Includes management of network sessions,

reliability, security and routing protocols.

Examples

TCP/IP, MQTT, IPv6, CoAP, REST, XBEE, ZigBee,

ZWave, Serial, custom radios, IPoAC, ..

Standardized layer using connectivity drivers, to translate and connect disparate sources (or

destinations).

Guarantees delivery, QoS, Privacy and Auth*

for IoT Services

Examples

Dowse, OpenHAB, TheThingSystem, ZIPR,

Ponte, WebSphere, RabbitMQ, Dweet

Typically provides the ‘Smarts’ for the IoT and power where processing

on endpoints or middleware is not

sufficient.

All systems require a form of management

for Endpoints, Middleware, Auth*,

IDM, etc

Examples

Persistence, (E.g TempoIQ), automation

(E.g IFTTT), intelligence, third party integrators

(ERP connectors)

User facing front-end applications that

facilitate using IoT services, in turn can be

used to manage and automate endpoints,

and generally orchestrate an Internet

of Things

Examples

WidgIoTs, SmartLivingWeb & Mobile Apps,

Freeboard

IOT OSI overview

Page 14: A Methodology for Building the Internet of Things

IOT OSI architecture models

Communication between each layer

deals with:

AuthenticationIdentificationManagement

Telemetry

APPS

IOT SERVICES

MIDDLEWARE

CONNECTIVITY

END POINTS

The

OSI 7

Layer model

It maps, however..OSI adds unnecessary

complexity

We’re not building protocols

We’re trying to build distributed applications which interact, and

can be developed in a ‘lean’ fashion

Cloud

Architecture

model

Distributed

Computing

model

Page 15: A Methodology for Building the Internet of Things

IOT OSI in action – IoT canvas mapping

The Smart Greenhouse Project

A Maker project being built with SmartLiving, a consumer centric IoTsolution.

The project aims to use IoT to make growing vegetables more efficiently in a sustainable and automated way.

PlantsWindow ventsDoorGlass panesWater catcherSprinklerWatering can

GalileoPlant sensorxbee node

MessageBroker

Xbee Gateway

W: moisture < 80T: sprinkler =1E:sprinler=0

W: temp > xT: servo=50

GardenerFellow gardeners

Smart city initiativesOpen source urban green housing

See mockups

WundergroundGrowing Green cities

Temp – intLux – intMoisture – intAQ – intHumidity intSprinkler - bool

“I'd like to make an automation project that "senses" the weather outside (rain, sun radiation and darkness), takes into account the electricity produced by the solar panels and that than automatizes certain household appliances or the central heating.

I would like to have such a system because I want our house to be smarter and less energy-consuming and thus more environmentally friendly.”

Page 16: A Methodology for Building the Internet of Things

IOT OSI in action – IoT canvas mapping

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPS

SENSORS

Temp Lux Moisture

ACTUATORS

Sprinklervalve

Servo

WEB SERVICES

END POINT CONNECTIONS

Plant senso

r node

END POINT CONNECTIONS

REST

LOCAL MESH GATEWAY

Galileo Xbee Gateway service

MESSAGE BROKER

INTERNET CONNECTIVITY

CLOUD BASED COMMAND & CONTROL

Green house

controllerEthernet

API

XBee

XBee

WiFi Router

MANAGEMENT

TELEMETRY DB

RULE ENGINE

MOBILE APPLICATIONS

TIME SERIES GRAPH

APPLIANCE STATUS

APPLIANCE CONTROL

NOTIFICATIONS

END POINT CONNECTIONS

3RD PARTY INTEGRAITON

Page 17: A Methodology for Building the Internet of Things

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPS

IOT OSI in action – SmartLiving.io implementers Toolbox

Plenty of existing resources here

DEV

TOO

LSSO

LUTIO

NS

Arduino Raspberry

Pi

ZWave

Devices

Android

Makers

App

Web

services

Custom

micro

controllers

Virtual

actuatorVirtual

sensors

TCP/IP SERIAL

ZWave ZigBee

433 MhzXBee

IR

ZWave

IPv6

Gateway

Raspberry

Pi Makers

Gateway

Smartliving

pub sub

Broker

Management

Telemetry DB

Rule Engine

AutomationScripting

Widget Lib

PolymerWidgets

Rule Wizard

iOS App

WidgetsWeb app

C Lib

Go Lib

Python

Lib

Node.js

Lib

JS

Lib

Java

Lib

ArduinoGateway

AndroidGateway

PUBSUBClients

RESTClients

Page 18: A Methodology for Building the Internet of Things

Widget running in a browser in actuator mode

Management only service required for auth/Identification

Stomp/Websockets

Grove shield with Relay/Servo

APPS

IOT SERVICES

MIDDLEWARE

END POINTS

Node.js libCONNECTIVITY

IOT OSI in action

Actuator control

Widget

Galileo – Arduino

interface

UI interaction

commands from a

browser (HTML5 device API)

Sprinkler and

ventilation controller

BROKER

Usecase One – Greenhouse controller

MQTT

Page 19: A Methodology for Building the Internet of Things

Front end user facing App (beta.smartliving.io)

Management only service required for auth/Identification

AMQP

XBee API Mode

Moisture, light, temperature

MQTT

Python Gateway Script

IOT OSI in action

Smart Plant node Galileo Gateway

Service HTML5 Web socket

Graph widget

Provides readings for

Moisture, temperature

and light lux

Wireless XBee to TCP/IP

via serial

Real-time data

showing sensor values

XBEE

BROKER

Usecase Two – Smart Plant Node

APPS

IOT SERVICES

MIDDLEWARE

END POINTS

CONNECTIVITY

Page 20: A Methodology for Building the Internet of Things

Purpose

• Defines an ethos with Lean startup

mentality, prototype for POC, test,

measure, iterate

• Uses standard building blocks to build IoT

products fast

• Allows developers and practitioners to

focus on what they’re good at, and using the IoT Toolbox for all other layers

• Use technologies and tools conducive for

Rapid Prototyping (web > native, script > bare metal code)

• No major concern for auth*, scalability or UX in early iterations (Exploit SaaS or specialists when

you’re ready to scale, deal with this after you learn enough from users)

Current works & influences

@SmartLiving _io End-2-end IoT solution for Makers,

developers, enthusiasts

Every hackerspace, maker community, hackthon,

and lean startup out there

Next steps

Validate prototyping techniques via SmartLiving &

@iMinds IoT Maker Hackathons and Meetups

Start sharing apps and services via github for people to collaborate and extend

Standardize project structure for Deploy

prototype

Page 21: A Methodology for Building the Internet of Things

deploy

Purpose

• Package up IoT projects to share with the world,

defining a standard IoT project structure

• Cuts deployment time

• Integrates IoT Unit Testing

• Collates code for a whole project with all layers of

the IOT OSI, along with all configurations

Current works & influences

Inspiration from every PaaS platform that’s supporting web developers to build what they want, fast. Without dedicated DevOps.

Xively

Next steps

1. Find a dream team to start implementing the architecture and

developing a pre-processing scripting language to support

projects which feed directly to IoT PaaS, current solutions are still

maturing and are driven by commercial needs

• Makes it easy to share, collaborate and build on top of existing solutions

• Incentivized

• Enhances knowledge sharing

IBM Bluemix

Page 22: A Methodology for Building the Internet of Things

deploy coming soon

• Platform facilitates continuous integration

• Pre-processor (Looks for .iot files), when user

wants to deploy a project it allows them to

dynamically add their own resource ID’s at

build time

• For widgets/dashboards/scenarios all fully

automated and hosted on the web as with

PaaS as we know it

• Automation and cloud scripts are deployed as

Micro-services

• Microcontroller code/dependencies/startup

scripts are auto-generated leaving you to

upload to your controller (The dream is OTA

updates, anyone for an Electric Imp demo?)

Concept requirements

Houston – mission control for IoT

Strict version control structure for pusing entire IoT project to a CI platform

Next steps

1. Analyze Gilliam and Flynn as possible solutions

2. Analyze flexibility of IBM Bluemix, it does a lot, practical use cases seem to be lacking

however

3. Analyze flexibility of Xively, it claims to be PaaS, but practical use cases also lack and it’s not

all encompassing (Frontend, Automation, intelligence?).

They’ve also shut the doors for new users

Page 23: A Methodology for Building the Internet of Things

who needs an IoT Methodology

Ignition Partners - 25 Nov 14 Searching for the missing link:DevOps and the Internet of Thingshttp://res.sys-con.com/session/2597/Rachel_Chalmers%20.pdf

Tim O’Reilly - 20 Nov 14 (Original article Apr 14)The Internet of Things & Humans https://www.youtube.com/watch?v=nBNDfxiaQSQ

Bosch - 17 Nov 145 Lessons Startups have for the old economyhttp://blog.bosch-si.com/categories/internetofthings/2014/11/5-lessons-start-ups-have-for-the-old-economy-iot-entrepreneur

Aeris Communications - 16 Nov 14 Call for Internet of Things practitioners (via LinkedIn)https://evernote.com/shard/s134/sh/b10a2869-5852-4efc-9b5c-b6cfc9ad8680/c1c484b0369eb23547d83d8eea97ce62

This guy… - 16 Nov 14Platform-as-a-Service and Micro-services for the Internet of Things http://cloudbestpractices.net/blog/paas-microservices

Forbes - 13 Nov 14The Internet of Things has an Enthusiasm Gaphttp://forbes.com/sites/michaelhumphrey/2014/11/13/study-the-internet-of-things-has-an-enthusiasm-gap/

Gigaom - 5 Nov 14 The Internet of Things needs developers, so what do developers need?https://gigaom.com/2014/11/05/the-internet-of-things-needs-developers-so-what-do-developers-need/

Gartner - 13 Oct 14Start-Ups - Not 'Enterprise Elephants' Lead the Internet of Thingshttp://cmswire.com/cms/internet-of-things/startups-not-enterprise-elephants-lead-the-internet-of-things-026804.php

Page 24: A Methodology for Building the Internet of Things

Advocates of the IoT Methodology

Rob van Kranenburg - @robvankRob van Kranenburg wrote The Internet of Things. A critique of ambient technology and the all-seeing network of RFID, Network Notebooks 02, Institute of Network Cultures. He is co-founder of Bricolabs and the founder of Council. Together with Christian Nold he published Situated Technologies Pamphlets 8: The Internet of People for a Post-Oil World. He currently works as Community Manager at the EU Project Sociotal. He is consultant to IoT China, Shanghai 2014. He Chairs AC8 - Societal Impact and Responsibility in the Context of IoT Applications of the IERC, The European Research Cluster on the Internet of Things.

Lorna Goulden - @lornagouldenLorna Goulden is the founder and director of Creative Innovation Works, a networked innovation consultancy specialised in guiding multi-stakeholder innovation developments with an emphasis on end-user value creation within the often-disruptive context of the Internet of Things. Clients and partners are supported through means of an advanced toolkit that guides them through the translation of technological, business and socio-cultural trends into relevant user experience flows. The most promising value propositions are then extracted and coupled with strategically focused business models for implementation.

Dries De Roeck - @driesderoeckDries works as a designer and researcher at Studio Dott, specializing in the confluence of digital and physical systems, with a focus on human involvement during the design, creation and modification of meaningful connected products for everyday life.

Page 25: A Methodology for Building the Internet of Things

Advocates of the IoT Methodology

Alessandro Bassi - @bassiconsultingAlessandro Bassi graduated in Computer Science from the University in Milan in 1994. He joined Amadeus in January 1997, and he moved to the University of Tennessee in 2000, where he was involved in the seminal work of the Internet Backplane Protocol. From 2002 he then held a Research Visitor position at the Ecole Normale Superieure in Lyon, France. After working one year for RIPE NCC, in November 2004 he joined Hitachi Europe. Since September 2010 an Independent Consultant, working on topics related to Big Data, Internet of Things and Smart Cities technologies.

Tom Collins - @snillocmotAfter being awarded first place for his Graduate Exhibition, and gaining a First with Honors for his work on ‘The Convergence of Cloud Computing, Smart Devices & the Internet of Things’, Tom went on to co-found SmartLiving, assuming a jack-of-all-trades role spanning architecture, DevOps, full stack and mobile development. He’s now set on making the Internet of Things a reality for everyone.