31. 1. Distributed transaction processing and
applications
2. Peer-to-peer messaging and sharing
3. Autonomous coordination and contracts
between peers
33. Picos are online computers
• persistent—retain state based on past operations.
• unique—identity that is immutable.
• online—available on the Internet and respond to events and
queries.
• concurrent—operate independently of one another and process
events and queries asynchronously.
• event-driven—respond to events by changing state and sending
new events.
• rule-based—behavior is expressed as rules that pattern-match
against incoming events.
59. Event System Properties
• Events are autonomous
• Event-driven system are more loosely coupled
• Downstream (receiver) driven flow control
• Near real-time propagation
64. Rather than a model
where a system
presents an API for
a collection of
resources….
65. Rather than a model
where a system
presents an API for
a collection of
resources….
Picos present a
model wherein each
pico presents it’s
own, customizable
API
91. Picos Support A Familiar Model
Kynetx Rules Engine
Other
Data
Sources
Web
Services
APIs
Rulesets
Persistent
Data
APIs
engine
92. Picos Support A Familiar Model
Kynetx Rules Engine
Other
Data
Sources
Web
Services
APIs
Rulesets
Persistent
Data
APIs
engine
Persistent Compute Object
containers
93. Picos Support A Familiar Model
Kynetx Rules Engine
Other
Data
Sources
Web
Services
APIs
Rulesets
Persistent
Data
APIs
engine
Persistent Compute Object
containers
CloudOS
Configuration
Management
CloudOS
Service
Notification
Service
PersonalData
Service
UISupport
File
Social
Social
Fuse
Library
Guard
Tour
Library
libraries
94. Picos Support A Familiar Model
Kynetx Rules Engine
Other
Data
Sources
Web
Services
APIs
Rulesets
Persistent
Data
APIs
engine
Persistent Compute Object
containers
Forevr.us
(contact)
Timeline
(social)
ToDo&
Reminders
Vehicle
Manangement
Home
Management
Intentcasting
Fuse
Guard
Tour
applications
CloudOS
Configuration
Management
CloudOS
Service
Notification
Service
PersonalData
Service
UISupport
File
Social
Social
Fuse
Library
Guard
Tour
Library
libraries
95. Picos Are Decentralized & Networked
pico
pico
Hosting
Space
Pico
Space
Hosting
Company A
Hosting
Company B
Self
Hosted
pico
pico
pico
pico
pico
pico
pico
KRE KRE KRE
Pico
Containers
97. Modules are NOT CGI Programs
• Modules run inside the Apache process architecture
• Modules have access to and can replace all Apache services
• Uses the server API - not an embedded interpreter
• Access to every part of the HTTP request lifecycle
107. Lessons Learned
• Understand language feng shui
• Parsing
• Don’t optimize too early
• Orthoganility
• Breadth first
• Languages evolve
• Leverage underlying language
• Build the language you want to
use
• Use your language
• Picos are a decent abstraction
108.
109. Implementing a Rule Language
for the Internet of Things
Phil Windley
pjw@byu.edu
www.windley.com
@windley
windley