Top Banner
Connecting Everything Phillip J. Windley, PhD Enterprise Architecture, BYU CTO, Kynetx, Inc. @windley
64
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Picos, CloudOS, and Connecting Things

Connecting EverythingPhillip J. Windley, PhD Enterprise Architecture, BYU CTO, Kynetx, Inc. @windley

Page 2: Picos, CloudOS, and Connecting Things

Internet of Things

Page 3: Picos, CloudOS, and Connecting Things

The Internet of Things will lead to a computing experience that is immersive & pervasive.

Page 4: Picos, CloudOS, and Connecting Things

Ambient Computing

Page 5: Picos, CloudOS, and Connecting Things

vs

Page 6: Picos, CloudOS, and Connecting Things
Page 7: Picos, CloudOS, and Connecting Things
Page 8: Picos, CloudOS, and Connecting Things

But it’s bigger than that…

Everything will have an online representation.

Page 9: Picos, CloudOS, and Connecting Things

Connections EverywhereThe things you own The things you don't Different types of connections

Page 10: Picos, CloudOS, and Connecting Things

What will its architecture be?

Page 11: Picos, CloudOS, and Connecting Things

Personal: Clients working on behalf of the user Real-time events and alerts Access to data through APIs Context

Page 12: Picos, CloudOS, and Connecting Things

Imagine a mountain representing today’s billion node network...

Page 13: Picos, CloudOS, and Connecting Things

From Trillions by Maya Design

Page 14: Picos, CloudOS, and Connecting Things

From Trillions by Maya Design

Page 15: Picos, CloudOS, and Connecting Things

Events and Requests

Page 16: Picos, CloudOS, and Connecting Things

“this happened” vs “do this”

Page 17: Picos, CloudOS, and Connecting Things

Static Data & Dynamic Queries

Page 18: Picos, CloudOS, and Connecting Things
Page 19: Picos, CloudOS, and Connecting Things
Page 20: Picos, CloudOS, and Connecting Things

Dynamic Data & Static Queries

Page 21: Picos, CloudOS, and Connecting Things
Page 22: Picos, CloudOS, and Connecting Things
Page 23: Picos, CloudOS, and Connecting Things
Page 24: Picos, CloudOS, and Connecting Things
Page 25: Picos, CloudOS, and Connecting Things

Event System Properties

Events are autonomous Event-driven system are more loosely coupled Downstream (receiver) driven flow control Near real-time propagation

Page 26: Picos, CloudOS, and Connecting Things

The Current #IoT Model Won’t Scale

Page 27: Picos, CloudOS, and Connecting Things

Me

Page 28: Picos, CloudOS, and Connecting Things
Page 29: Picos, CloudOS, and Connecting Things

GE

Page 30: Picos, CloudOS, and Connecting Things

Internet of

My Things

Me

GE

Page 31: Picos, CloudOS, and Connecting Things

The Internet of My Things

Page 32: Picos, CloudOS, and Connecting Things

The Internet of My Things leads to The API of Me

Page 33: Picos, CloudOS, and Connecting Things

Fuse is Three Things

http://joinfuse.com

Page 34: Picos, CloudOS, and Connecting Things
Page 35: Picos, CloudOS, and Connecting Things
Page 36: Picos, CloudOS, and Connecting Things

Social Products

Page 37: Picos, CloudOS, and Connecting Things

"The car needs to become your friend. How does the car speak to me? How does the car integrate with the dealership and the factory? How does the car help me get to the service station? ... I want a relationship with the car in the same way I have a relationship with my friends. ... The car is going to become social. All our

products are going to become social."—Marc Benioff

Page 38: Picos, CloudOS, and Connecting Things

But it’s not just about manufactured things...

Page 39: Picos, CloudOS, and Connecting Things

We give each thing a persistent compute object, or pico

Page 40: Picos, CloudOS, and Connecting Things

Picos are online computersIdentity—they represent a specific entity Storage—they persistently encapsulate both structured and unstructured data Open event network—they respond to events Processing—they run applications autonomously Event Channels—they have connections to other picos APIs—they provide access to and access other online services

Page 41: Picos, CloudOS, and Connecting Things

Picos Are Decentralized & Networked

Page 42: Picos, CloudOS, and Connecting Things

Built on open standards Built on open source

Page 43: Picos, CloudOS, and Connecting Things

Phil's Cloud Tom's Cloud

1

2

3

4owner

borrower

Lynne's Cloud

1owner

Picos Ease Modeling

Page 44: Picos, CloudOS, and Connecting Things

Picos support a new Web programming model

Page 45: Picos, CloudOS, and Connecting Things

Web Application

Application Data

Browser

Page 46: Picos, CloudOS, and Connecting Things

Web Application

Application Data

Browser

Page 47: Picos, CloudOS, and Connecting Things

Picos Use an Event Query Model

pico

functions

rules

persistentstorage

or CancelDone

User Interface

name

email

phone

query API

event API

user makes change in UIresulting in an event

UI updates presentation using query API

rules validate and process event, often updating model

functions return results based on persistent data

Page 48: Picos, CloudOS, and Connecting Things

Picos Support A Familiar Model

CloudOS

Kynetx Rules Engine

KernelSpace

Confi

gura

tion

Man

agem

ent

Clou

dOS

Serv

ice

Services &Libraries

UserSpace

Notifi

catio

nSe

rvice

Fore

vr.u

s(c

onta

ct)

Tim

elin

e(s

ocia

l)

To D

o &

Rem

inde

rs

Vehi

cle

Man

ange

men

t

Applications

Pers

onal

Dat

a Se

rvice

UI S

uppo

rt

OtherData

Sources

WebServices

APIs

Hom

e M

anag

emen

t

Inte

ntca

stin

g

File

Socia

l

Rulesets PersistentData

...

...AP

Is

Socia

l

Persistent Compute Object

Fuse

Libr

ary

Fuse

Gua

rd

Tour

Libr

ary

Gua

rd

Tour

Page 49: Picos, CloudOS, and Connecting Things

Programming ModelProgram in any language you like

OAuth access to pico

Pico provides

user data

processing

API and inter-pico communications

Page 50: Picos, CloudOS, and Connecting Things

MicroservicesOrganized around a single business capability Small, generally less than 1000 lines and code and usually much smaller Event-based and asynchronous Run in their own process Independently deployable Decentralized data storage

Page 51: Picos, CloudOS, and Connecting Things
Page 52: Picos, CloudOS, and Connecting Things

Healing Subscriptionsrule check_subscriptions {

select when fuse subscription_check

pre {

vid = carvoyant:vehicle_id();

my_subs = carvoyant:getSubscription(vid);

should_have = required_subscription_list.length();

}

if(my_subs.length() < should_have) then

send_directive("not enough subscriptions")

fired {

log ">>>> vehicle #{vid} needs subscription check";

raise fuse event need_initial_carvoyant_subscriptions;

}

}

Page 53: Picos, CloudOS, and Connecting Things

Healing Subscriptionsrule check_subscriptions {

select when fuse subscription_check

pre {

vid = carvoyant:vehicle_id();

my_subs = carvoyant:getSubscription(vid);

should_have = required_subscription_list.length();

}

if(my_subs.length() < should_have) then

send_directive("not enough subscriptions")

fired {

log ">>>> vehicle #{vid} needs subscription check";

raise fuse event need_initial_carvoyant_subscriptions;

}

}

Page 54: Picos, CloudOS, and Connecting Things

Healing Subscriptionsrule check_subscriptions {

select when fuse subscription_check

pre {

vid = carvoyant:vehicle_id();

my_subs = carvoyant:getSubscription(vid);

should_have = required_subscription_list.length();

}

if(my_subs.length() < should_have) then

send_directive("not enough subscriptions")

fired {

log ">>>> vehicle #{vid} needs subscription check";

raise fuse event need_initial_carvoyant_subscriptions;

}

}

Page 55: Picos, CloudOS, and Connecting Things

Healing Subscriptionsrule check_subscriptions {

select when fuse subscription_check

pre {

vid = carvoyant:vehicle_id();

my_subs = carvoyant:getSubscription(vid);

should_have = required_subscription_list.length();

}

if(my_subs.length() < should_have) then

send_directive("not enough subscriptions")

fired {

log ">>>> vehicle #{vid} needs subscription check";

raise fuse event need_initial_carvoyant_subscriptions;

}

}

Page 56: Picos, CloudOS, and Connecting Things

Healing Subscriptionsrule check_subscriptions {

select when fuse subscription_check

pre {

vid = carvoyant:vehicle_id();

my_subs = carvoyant:getSubscription(vid);

should_have = required_subscription_list.length();

}

if(my_subs.length() < should_have) then

send_directive("not enough subscriptions")

fired {

log ">>>> vehicle #{vid} needs subscription check";

raise fuse event need_initial_carvoyant_subscriptions;

}

}

Page 57: Picos, CloudOS, and Connecting Things

KRL

Runs in picos Built for microservices Complex event expressions Persistent variables Side-effects are quarantined

Page 58: Picos, CloudOS, and Connecting Things

This can get complex…

Institution

TourIndex Location

Index

ReportIndex

Tour"LUFX"

Tour"KUFF"

Location"R7RK"

Report"1"

Location"G5YH"

Report"current"

Location"T67G"

Managers

Guards

Guard"Frank"

Subscriptions

permanent

temporary

Report"2"Report"2"Report"2"Reports

ToursToursToursTours

LocationsLocationsLocationsLocations

Page 59: Picos, CloudOS, and Connecting Things

Why do this?Orthogonality and modularity are powerful: network effects! More flexible Can be less work More private

Page 60: Picos, CloudOS, and Connecting Things

What Technology Wants

Page 61: Picos, CloudOS, and Connecting Things

Recommended ReadingMirror Worlds, David Gelernter

Snowcrash, Neal Stevenson

Rainbow's End, Vernor Vinge

The Intention Economy, Doc Searls

Trillions, Peter Lucas, Joe Ballay & Mickey McManus

Page 62: Picos, CloudOS, and Connecting Things

My book on how this can be built now

Page 63: Picos, CloudOS, and Connecting Things

CloudOS White Papers

www.windley.com

Page 64: Picos, CloudOS, and Connecting Things

Contact info: Phil Windley

[email protected] www.windley.com

@windley

Connecting Everything