Cacophony: Building a resilient Internet of things


  • John Brock
  • Donald J. Patterson



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; and, (3) The CNode uses the aggregated data to train a prediction model via the Weka machine-learning library (Hall, et al., 2009). 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.

Author Biographies

John Brock

graduate student in the Department of Computer Science  at the University of California, Irvine

Donald J. Patterson

Associate Professor in the Department of Informatics at the Donald Bren School of Information and Computer Sciences at the University of California, Irvine




How to Cite

Brock, J., & Patterson, D. J. (2015). Cacophony: Building a resilient Internet of things. First Monday, 20(8).