The internet of things requires a different architectural model than what we've used to build Web 2.0. This presentation makes a proposal for what that architecture could look like and presents a working example based on the connected car platform Fuse (http://joinfuse.com)
25. Event System Properties
Events are autonomous
Event-driven system are more loosely coupled
Downstream (receiver) driven flow control
Near real-time propagation
37. "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
39. We give each thing a
persistent compute object,
or pico
40. Picos are online computers
Identity—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
47. Picos Use an Event Query Model
pico
functions
rules
persistent
storage
or CancelDone
User Interface
name
email
phone
query API
event API
user makes change in UI
resulting in an event
UI updates presentation
using query API
rules validate and process event,
often updating model
functions return results based
on persistent data
48. Picos Support A Familiar Model
CloudOS
Kynetx Rules Engine
Kernel
Space
Configuration
Management
CloudOS
Service
Services &
Libraries
User
Space
Notification
Service
Forevr.us
(contact)
Timeline
(social)
ToDo&
Reminders
Vehicle
Manangement
Applications
PersonalData
Service
UISupport
Other
Data
Sources
Web
Services
APIs
Home
Management
Intentcasting
File
Social
Rulesets
Persistent
Data
...
...
APIs
Social
Persistent Compute Object
Fuse
Library
Fuse
Guard
Tour
Library
Guard
Tour
49. Programming Model
Program in any language you like
OAuth access to pico
Pico provides
user data
processing
API and inter-pico communications
50. Microservices
Organized 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
57. KRL
Runs in picos
Built for microservices
Complex event expressions
Persistent variables
Side-effects are quarantined
58. This can get complex…
Institution
Tour
Index
Location
Index
Report
Index
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
Tours
Tours
Tours
Tours
Locations
Locations
Locations
Locations
59. Why do this?
Orthogonality and modularity are
powerful: network effects!
More flexible
Can be less work
More private