The proliferation of sensors in the world has created increased opportunities for context-aware applications. However, it is often cumbersome to capitalize on these opportunities due to the difficulties inherent in collecting, fusing, and reasoning with data from a heterogeneous set of distributed sensors. The fabric that connects sensors lacks resilience and fault tolerance in the face of infrastructure intermittency. To address these difficulties, we introduce Cacophony, a network of peer-to-peer nodes (CNodes), where each node provides real-time predictions of a specified set of sensor data. The predictions from each of the Cacophony prediction nodes can be used by any application with access to the web. Creating a new CNode involves three steps: (1) Developers and domain-knowledge experts, via a simple web UI, specify which sensor data they care about:possible sources of sensor data include stationary sensors, mobile sensors, and the real-time web. (2) The CNode automatically aggregates data from the relevant sensors in real time using a JXTA-based peer-to-peer network. (3) The CNode uses the aggregated data to train a prediction model via the Weka machine learning library. Real-time predictions made by the CNode are then made publicly available to applications that wish to use data from a CNode’s particular set of sensors. The real-time predictions themselves can also be used recursively as sensor data, enabling the creation of CNodes that make predictions based on other CNodes. (local copy)
Published in LIMITS 2015
C.V.: WR-10
1 comment for “Cacophony: Building a Resilient Internet of Things”