Lecture 23: The Case for HomeOS Xiaowei Yang Today’s Plan • HomeOS – Why & How • Final Review – We’ve learned a lot! • Course Evaluation Smart homes • Capability to automate and control multiple, disparate systems within the home [ABI Research] • Today, only the super rich and super geeks have it HomeNets | ratul | 2010 3 Why don’t you have it? • You have the basic ingredients • But composition is difficult HomeNets | ratul | 2010 4 A quick example Unlock? Yes No Why is device composition in the home hard? • Users • Developers • Vendors Home users are not administrators • Management Nightmare Why developers are not helping: heterogeneity Application Application Logic User Preference What is automated? When? How? Coordination When apps disagree, who wins? Device Handle different brands/models Topology Handle WiFi vs. 3G vs. Eth, Subnets Hardware The actual devices in the house Vendors prefer vertical integration • Vertically integrate hardware and software • Seldom make use of other vendors’ devices • No single vendor comes close to providing all the devices a home needs Interoperability is not sufficient Video Recording Climate Control CameraRemote Based Lock Entry • Many standards exist for interoperability – Media: DLNA (Digital Living Network Alliance), AirTunes, etc. – Devices: UPnP, SpeakEasy, mDNS, etc. – Home Auto: Zwave ZigBee, X10, etc. • Handles device heterogeneity, not topology, user preferences, and coordination heterogeneity Monolithic systems are inextensible Home Media Security • Security: ADT, Brinks, etc. • Academic: EasyLiving, House_n, etc. • Commercial: Control4, Elk M1, Leviton, etc. An alternative approach: A home-wide operating system HomeStore Video Rec. Remote Unlock Climate Operating System Goals of HomeOS • Simplify application development • Enable innovation and device differentiation • Simplify user management Core Features of HomeOS • Driver and application modules • A “port” abstraction for exposing functionality and communication • Access control for users and modules Simplify development Application Logic User Preference App A … App B What is automated? When? How? Coordination When apps disagree, who wins? Device Handle different brands/models Topology Handle WiFi vs. 3G vs. Eth, Subnets Hardware The actual devices in the house … Simplify development Application Logic User Preference App A … App B Users’ What ismanage automated? accessWhen? controlHow? rules Coordination Access When apps control disagree, mediates who conflicts wins? Device Handle Standardize different at functional brands/models layer Topology Access Control Port Driver Port … Handle Logically WiFi vs. centralize 3G vs. Eth, devices Subnets Hardware The actual devices in the house Mgmt UI … Driver Modules • Driver and application modules are isolated – A poorly written module can’t impact HomeOS or other modules • Application modules belong to application domain • Communication cross domains is through predefined entry points A port example • A port is functionally described in terms of roles and controls – Roles: express a functionality – Controls: typed points of sensing and actuation within a port • < roles=“lightswitch”, “dimmerswitch” > , < controls=(“on-off”, binary, readable, writable), (“intensity”, range:1-100, readable, writable) > . Roles in HomeOS • Roles are functional descriptions of ports – lightswitch, television, display, speakers, etc. – App developers program against roles • Enable vendors to innovate/differentiate – Anyone can create a new role • e.g., SonyBraviaTV vs. television • Allows new functionality to be rapidly exposed – Commodity vendors can still participate Simplify user management • Conducted a field study – Modern homes with automation & other tech – 14 homes, 31 people • Users’ needs for access control – Applications as security principals – Time in access control decisions – Confidence in their configuration Management primitives • Datalog access control rules – (port, group, module, time-start, time-end, day, priority, access-mode) – Reliable reverse perspectives help users confidently configure access control • User accounts – Can be restricted by time (guests) • Application manifests – Specify role requirements for compatibility testing – Simplifies rule setup (only when roles match) Implementation status • Built on the .NET CLR • ~15,000 lines of C# – ~2,500 kernel • 11 Applications – Average ~300 lines/app • Music Follows the Lights – Play, pause & transfer music where lights are on/off • Two-factor Authentication – Based on spoken password and face recognition Open questions/Ongoing work • Additional evaluation – Is it easy to write apps and drivers? – Is it easy to manage? – Does it scale to large homes? • Deploy & support application development • Explore business/economic issues Conclusion • A home-wide OS can make home technology manageable and programmable • HomeOS balances stakeholder desires – Developers: abstracts four sources of heterogeneity – Vendors: enables innovation and differentiation – Users: provides mgmt. primitives match mental models http://research.microsoft.com/homeos Discussion • Do homes need an OS? • Is HomeOS the right solution? • Why would vendors comply? Course Summary • A broad range of topics – Cloud computing and its challenges – Cloud inner working – Datacenter networking – Social networks – Privacy • Web, Wireless, Mobile devices – Home Networking Cloud Computing: Opportunities • Opportunities – Elastic computing: on-demand scaling – Pay-as-you-go • No upfront investment cost – New applications • • • • Mobile & Cloud Energy saving Disaster recovery Group collaboration Cloud Computing: Challenges • Security – Placement – Co-location – Inference • Performance • Sharing impacts computation, network Cloud Inner Workings • MapReduce – A powerful framework for parallel computation – Map() • Process a key/value pair to generate intermediate key/value pairs • map (in_key, in_value) -> (out_key, intermediate_value) list – Reduce() • Merge all intermediate values associated with the same key • reduce (out_key, intermediate_value list) -> out_value list • MapReduce online for interactive applications • Reining outliers Example: word counting • Map() – Input <filename, file text> – Parses file and emits <word, count> pairs • eg. <”hello”, 1> • Reduce() – Sums all values for the same key and emits <word, TotalCount> • eg. <”hello”, (1 1 1 1)> => <”hello”, 4> Datacenter Networking • FatTree – Multi-rooted trees to provide abundant bisection bandwidth • Adaptive routing – Valiant routing: picking a random redirection point works • Datacenter congestion control – InCast: synchronized replies lead to congestion – DCTCP • Reduce cwnd proportionally to congestion • Small queue size in routers Social network storage • Haystack – Write once – Read many – Using a needle to hold many files – Cache metadata in memory for high access speed Privacy • Social networks – Personal identifiable information leaks to unauthorized third parties • Cookies, referrer header, Request-URI – User browsing behavior is linkable • Online advertising – Behavior targeting in social networks • Ads exclusively sent to users in certain groups – Not obvious for search and web ads • Mostly keyword based • Wireless – Mobility pattern linkable – Anything over http spoofable – SlyFi • TaintDroid – Private information leaks to unauthorized 3rd party The End • It’s really the beginning • Take the ideas • Apply the skills – Critical and creative thinking • Turn your course project into a research paper • I hope you enjoyed it as much as I do