10 likes | 107 Vues
IS4: Storage System for Physical Data. Electrical. Load Tree. CT mains power monitoring. CT mains power monitoring. Jorge Ortiz (jortiz@cs.berkeley.edu). Circuit/breaker panel level power monitoring. Subscribe Manager. Physical data management. Proxy Manager. What is physical data
E N D
IS4: Storage System for Physical Data Electrical Load Tree CT mains power monitoring CT mains power monitoring Jorge Ortiz (jortiz@cs.berkeley.edu) Circuit/breaker panel level power monitoring Subscribe Manager Physical data management Proxy Manager • What is physical data • Produced by sensors in physical environment • Sensor devices change over time • Physical environment changes over time ACme: plug load energy monitor and controller ACme: plug load energy monitor and controller 2001:252:0:1::2008:6 and 2001:252:0:1::2008:8 http://coryacme.cs.berkeley.edu/data/33 • Make: ACme • Model: Revision 1 Picture 1: Sensors embedded in Load Tree System Architecture HTTP/RESTful interface • Pub/Sub System • Metadata schema • Object description • Logic description • Context graphs / #root – status information [GET] /is4 # a particular channel [GET] /info # statistical system information [GET] /publish # publishing resource [GET/PUT] /all # list of all publishers [GET] /id # sub-children [GET] /<id> # id of publisher [GET/POST] /name # name alias for this id [GET] /mysubs # list/add to pub subscriptions [GET/PUT/DELETE] /metadata # returns publisher-associate metadata [GET] POST requests: supply JSON objects as arguments: POST: http://is4.cs.berkeley.edu/is4/publish/id/123456/mysubs?username=jortiz&pw=8832749 {“SubscribeTo":[13241324,234213,45456745], “UnsubscribeFrom":[45432,567365,21465765,2435786] } Publish Subscribe HTTP/REST Publish Manager Humidity Humidity Temperature PAR/TSR PAR/TSR Temperature Vibration Vibration Storage Context Manager { "description":“logic_stream_schema", "type":"object", "properties": { “type":{"type":"string","optional":false, "options":[{"value":“logic"}]}, “$schema”:”logic_stream_schema.json”, “address”:{“type”:”string”, “format”:[“string”, “ipv4”, “ipv6”, “url”], “optional”:”false”}, “functions”:{“type”:”array”, “options”:[{ “function_name”:”{“type”:”string”}, “operation”:{“type”:”string”, “optional”:”true”}, “parameters”:{“type”:”array”, “options”:[”object”, “string”, “$ref”]} } } } Logic schema { "description":"object_stream_schema", "type":"object", "properties": { “type":{"type":"string","optional":false, "options":[{"value":"object_stream"}]}, "device_name":{"type":"string", "optional":"false"}, "model":{"type":"string","optional":false}, "desc":{"type":"string","optional":true}, “url":{"type":"string",”format”:”url”,"optional":true } } Object schema Username and pw hash Publisher Id Semantic graphs Future Work • Query interface • Semantic + time series queries • Semantic graph constraints • Time series data processing • Interpolation, extrapolation, signal processing • Context graph capture entity relationships • Nodes/edges represent logical or physical relationships • Nodes/edges associated with devices • Devices produce time series data • Graph representation Context Node: { "label":{"type":"string", "optional":false}, "name":{"type":"string", "optional":false}, "type":{"type":"string","options":[{"value":"context_node"}], "optional":false}, "description":{"type":"string", "optional":false}, "properties": { "AssociatedDevices":{ "type":"array", "options":[{"value":"string","format":"UUID"}], "optional":true }, "parents":{ "type":"array", "options":[{"value":"string", "properties":{"$ref":"#.properties.cnid"}}], "optional":true }, "children":{ "type":"array", "options":[{"value":"string", "properties":{"$ref":"#.properties.cnid"}}], "optional":true }, "cnid": { "type":[“string"] "description":"local node identifier", "optional":false }}} Context Edge {… "label":{"type":"string", "optional":false, "description":"String with spaces"}, "name":{"type":"string", "optional":false, "description":"String without space"}, … "sourceNode":{"type":[“string"], "description":"local node identifier", "optional":false}, "destinationNode":{"type":[“string"], "description":"local node identifier", "optional":false}, "AssociatedDevices":{ "type":"array", "options":[{"value":"string","format":"UUID"}], "optional":true }} Context graph schema • Graph time snapshots