BOSS: Building Operating System Services Stephen Dawson-Haggerty 2 motivation 1/11/13 SDB Pretreat 3 motivation B' 27' ,' #$G' 125\ ] ' 3$"&3$^&' _M' &-+8' $E 9*>$ %' -1P' 3$A52$C&' 2: #$CK D+' &D#$`BG^%Ca$ Cool Air AC LoCal Computer AC Signal Energy Data Control Computer Sensor Data " Sensor Data " ! AC Control ! AC Control Thermostat Sensor Data Sensor, Wind, Weather Data sMAP •! TZW$-L S$OS$D5< M61' 2$,"P52"152#$ •! / ' 1. 527' 3$1=' 2< 5-1"1$ •! / ' . 15&b-$,". $5A$D55,+&: $. +1=$=' "F&: $,5"3$ Weather Forecast (Aswani, et al., Proc. IEEE, 2011); (Taneja, et al., submitted, 2012)! 1/11/13 SDB Pretreat NWS 4 motivation 1/11/13 SDB Pretreat 5 outline • Problem overview – Use networked resources – Enable multiple control applications – Maintain system properties (robustness, discoverability…) • Architecture components – – – – – 1/11/13 Hardware abstraction Directory Historian Transaction manager Control processes SDB Pretreat 6 SCADA architecture Does not address reliability when controlling across a networked head-end supervisory panel direct device 1/11/13 SDB Pretreat 7 existing solutions work around this issue OpenADR 1. Standardized communications protocols 2. Completely partitioned implementation 3. “It’s a box” WattStopper head-end BACNet panel device 1/11/13 SDB Pretreat 8 design goals • Fault tolerance – Between domains • Isolation – Between processes, systems • Scheduling multiprogramming – Of users, changes • Security and authorization – Manage the principals • Hardware abstraction – Capture component relationships – Provide a namespace • Historical data – Process, query, reduce 1/11/13 SDB Pretreat 9 Control processes History “Kernel” interface Abstraction Isolation + Scheduling Fault tolerance Security boss: a proposed architecture 1/11/13 Directory History Trans. mgr. Hardware Abstraction Layer HPL HPL SDB Pretreat HPL HPL 10 hardware presentation lots of underlying diversity & heterogeneity Physical Information sMAP 1/11/13 Electrical Geographical Water Weather Structural SDB Pretreat Environmental Occupancy Actuator 11 considerations and related work • Pub/Sub – JMS, TIBCO, AMQP, CORBA – TinyDB • Management – SNMP • Syndication – RSS/Atom, PubSubHubbub – XMPP, SenseAndrew, SenseWeb • Embeddability – CoAP/CORE, TinyWebServices • Industrial protocols – BACnet, OPC, DeviceNet Protocol Year Network Example Applications Modbus 1979 RS-485, TCP/IP Panel monitoring, alarms Fieldbus/HART 1988 various Industrial Control BACnet 1995 ARCNET, Ethernet, IP, RS-232, etc. HVAC, Lighting, Fire… WirelessHART 2007 802.15.4e Industrial control, wire replacement 1/11/13 Zigbee SEP 2.0 2012? 802.15.4 SDB Pretreat Plug-load monitoring 12 HPL: Represent sensors and actuators • • • • Objects are time-series and collections Represent the underlying sense and actuation points Expose over HTTP Time-series are durably identified timeseries collections – – A collection of structured key-value pairs, data Data is (time, value[, seqno]) vector { "/" : { "Contents" : ["sensor0"], “Metadata” : { “SourceName” : “Example sMAP Source” }, }, "/sensor0" : { "Contents” :["channel1"] }, "/sensor0/channel0" : { "uuid" : "a7f63910-ddc6-11e0-8ab9-13c4da852bbc", "Readings" : [ [1315890624000, 12.5 ] ] } } 1/11/13 SDB Pretreat 13 RS-485 bus BacNET/IP OPC-DA sMAP BMS Integration Database integration Commercial building retrofit Residential deployment and automation Large wireless network sMAP – – – – – 6lowpan network s sMAP meet data acquisition needs Name Sensor Type Access Method Channels ISO Data CAISO, NYISO, PJM, MISO, ERCOT Web scrape 1211 ACme devices Plug-load electric meter Wireless 6lowpan mesh 344 EECS submetering project Dent Instruments PowerScout 18 electric meters Modbus 4644 EECS steam and condensate Cadillac condensate; Central Station steam meter Modbus/TCP 13 UC Berkeley submetering feeds ION 6200, Obvius Aquisuite; PSL pQube, Veris Industries E30 Mosbus/Ethernet, HTTP 4269 Sutardja Dai, Brower Hall BMS Siemens Apogee BMS, Legrand WattStopper, Johnson Control BMS BACnet/IP 4064 UC Davis submetering feeds Misc., Schneider Electric ION OPC-DA 34 (+) Weather feeds Vaisala WXT520 rooftop weather station; Wunderground SDI-12, LabJack/Modbus, web scrape 33 CBE PMP toolkit Dust motes; New York Times BMS CSV import; serial 874 1/11/13 SDB Pretreat 14 1/11/13 SDB Pretreat 15 outline • Problem overview – Extend control loops to cloud – Enable pluggable control applications – Maintain system properties (robustness, discoverability…) • Architecture components – – – – – Hardware abstraction Directory Historian Transaction manager Control processes • Timeline 1/11/13 SDB Pretreat 16 additional layer of complexity not in a computer OS Nguyen Thi Hoang Lan, http://cnx.org/content/m29708/1.1/ 1/11/13 SDB Pretreat 17 outline • Problem overview – Extend control loops to cloud – Enable pluggable control applications – Maintain system properties (robustness, discoverability…) • Architecture components – – – – – Hardware abstraction Directory Historian Transaction manager Control processes • Timeline 1/11/13 SDB Pretreat 18 historian modeling requires a log of sensor data • Limited real, open systems which do this well – – – – – – – Time series systems: wavelet systems, quick computations Lookup table-based floating point compression OpenTSDB = HBase + HDFS OPC+HDA, OSI Pi, System S, Flume MRO, Spark streaming Medusa, Fjord, Telegraph[CQ] SciDB • Write pattern – Append data to streams – Occasionally bulk-load • Read pattern – Range-query on timestamp • Process pattern – Clean, “join”, compute – SQL is quite clumsy for time-series processing… 1/11/13 SDB Pretreat Larry Ellison’s query 1. 2. 3. 4. 5. Extract data from 100 streams Interpolate onto a 5-minute time basis Filter missing data Combine the streams into a matrix Load into MATLAB/R/numpy looks like pipes to me 1/11/13 SDB Pretreat 19 20 Principles for physical data storage – Data is mostly array-like – Efficient “views” of data: subsampled/cleaned • Treat as 1st class objects • Use to govern retention and privacy – Flexible operators for repairing timestamps, unit conversion, time sampling – Compression/materialization control Something like append-only RDD’s sum < paste < window(mean, field="hour") of data 1/11/13 SDB Pretreat 21 write load on readingdb6 Importing old data: 150k points/sec 10 billion 1/11/13 Continuous write load: 300-500pts/sec readings, 40k streams, 3.5bytes/record on disk SDB Pretreat 22 1/11/13 SDB Pretreat 23 outline • Problem overview – Extend control loops to cloud – Enable pluggable control applications – Maintain system properties (robustness, discoverability…) • Architecture components – – – – – Hardware abstraction Directory Historian Transaction manager Control processes • Timeline 1/11/13 SDB Pretreat 24 control transactions want cloud applications… with old-fashioned reliability 1/11/13 SDB Pretreat 25 idea Use transaction metaphor to update state of the building • Adjust set points • Replace control logic 1/11/13 SDB Pretreat 26 1/11/13 writer 1 value: 245cfm 245 writer 2 value: 280cfm 245 SDB Pretreat 280 BACnet priorities 27 1 writer 1 value: 245cfm priority: 3 writer 2 value: 280cfm priority: 1 priority array 245 <time passes> writer 2 clear writer 1 crashes 16 1/11/13 SDB Pretreat present value: 280cfm 245cfm 28 future work • Transaction building blocks – Lease time – Priority level – Abort/rollback notifications • Define levels of transaction isolation – Actuator: just prevent concurrent writes – System: use pre-defined hierarchal locking – Model-based: learn interaction model 1/11/13 SDB Pretreat 29 Thank You application logic control process Model Training Runtime Logic Time-series Client system libraries Transaction Client portable, robust applications for the physical environment Authorization token BOSS boundary r equest cal l back hi st or i cal dat a submi t aut hor i ze 2 ver i f y 5 HAL Service Auth Service Time Series Service Transaction Manager 4 3 command publ i sh 1 sMAP sMAP XML/HTTP OPC-DA 1/11/13 sMAP sMAP sMAP 6loWPAN RS-485 BACnet/IP SDB Pretreat 1. Hardware presentation layer: sMAP 2. Hardware abstraction layer: device-specific logic 3. Time-series service: the archiver 4. Reliable control inputs: the transaction manager 5. Security: the authorization service