Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Picos, CloudOS, and Connecting Things

1,169 views

Published on

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)

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Picos, CloudOS, and Connecting Things

  1. 1. Connecting Everything Phillip J. Windley, PhD Enterprise Architecture, BYU CTO, Kynetx, Inc. @windley
  2. 2. Internet of Things
  3. 3. The Internet of Things will lead to a computing experience that is immersive & pervasive.
  4. 4. Ambient Computing
  5. 5. vs
  6. 6. But it’s bigger than that… Everything will have an online representation.
  7. 7. Connections Everywhere The things you own The things you don't Different types of connections
  8. 8. What will its architecture be?
  9. 9. Personal: Clients working on behalf of the user Real-time events and alerts Access to data through APIs Context
  10. 10. Imagine a mountain representing today’s billion node network...
  11. 11. From Trillions by Maya Design
  12. 12. From Trillions by Maya Design
  13. 13. Events and Requests
  14. 14. “this happened” vs “do this”
  15. 15. Static Data & Dynamic Queries
  16. 16. Dynamic Data & Static Queries
  17. 17. Event System Properties Events are autonomous Event-driven system are more loosely coupled Downstream (receiver) driven flow control Near real-time propagation
  18. 18. The Current #IoT Model Won’t Scale
  19. 19. Me
  20. 20. GE
  21. 21. Internet of My Things Me GE
  22. 22. The Internet of My Things
  23. 23. The Internet of My Things leads to The API of Me
  24. 24. Fuse is Three Things http://joinfuse.com
  25. 25. Social Products
  26. 26. "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
  27. 27. But it’s not just about manufactured things...
  28. 28. We give each thing a persistent compute object, or pico
  29. 29. 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
  30. 30. Picos Are Decentralized & Networked
  31. 31. Built on open standards Built on open source
  32. 32. Phil's Cloud Tom's Cloud 1 2 3 4 owner borrower Lynne's Cloud 1 owner Picos Ease Modeling
  33. 33. Picos support a new Web programming model
  34. 34. Web Application Application Data Browser
  35. 35. Web Application Application Data Browser
  36. 36. 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
  37. 37. 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
  38. 38. Programming Model Program in any language you like OAuth access to pico Pico provides user data processing API and inter-pico communications
  39. 39. 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
  40. 40. Healing Subscriptions rule 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; } }
  41. 41. Healing Subscriptions rule 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; } }
  42. 42. Healing Subscriptions rule 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; } }
  43. 43. Healing Subscriptions rule 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; } }
  44. 44. Healing Subscriptions rule 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; } }
  45. 45. KRL Runs in picos Built for microservices Complex event expressions Persistent variables Side-effects are quarantined
  46. 46. 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
  47. 47. Why do this? Orthogonality and modularity are powerful: network effects! More flexible Can be less work More private
  48. 48. What Technology Wants
  49. 49. Recommended Reading Mirror Worlds, David Gelernter Snowcrash, Neal Stevenson Rainbow's End, Vernor Vinge The Intention Economy, Doc Searls Trillions, Peter Lucas, Joe Ballay & Mickey McManus
  50. 50. My book on how this can be built now
  51. 51. CloudOS White Papers www.windley.com
  52. 52. Contact info: Phil Windley pjw@kynetx.com www.windley.com @windley Connecting Everything

×