Nervousnet consists of two software parts:
- the Nervousnet backend and
- the Nervousnet virtual sensors.
1) Nervousnet backend
It also exposes the APIs with which various applications can be built on top, the so called “virtual sensors”. The Nervousnet backend is implemented in two mobile platforms, Android and iOS. It engineers a novel feed loop: (i) Nervousnet stores and manages sensor data. (ii) New data can be generated by performing data analytics on the sensor data. (iii) The new data can be stored and managed back by the Nervousnet backend.
Mobile App Architecture:
– Allows users to view and share various Sensor related Data
– Required to be installed for running external apps (Axons) built using nervousnet PlatformAPI’s.
– Acts like a connectivity hub for external products like smartwatches, beacons and external sensors that want to share sensor data with the nervousnet platform.
– Android version uses background Services to enable third party apps and extensions to connect and share data with the Nervousnet platform.
– iOS version uses WebViews and allows for external Axons to run inside a WebView container.
Axons (Native) – Native Android apps, Smart devices, beacons that can connect to the nervousnet HUB mobile app.
– Uses the nervousnet Platform API’s to receive and share sensor data.
– Works only in Android devices.
– Uses the Android background services feature.
– Possibility of using Bluetooth, Wi-Fi Direct to do connect to the nervousnet mobile app.
– Currently supported on the iOS platform.
– Android Platform support in the next phase.
– Used to store and collect Data shared by Clients (Mobile & Web), IOT Hardware sensors and devices, partner platforms and more.
– Individual Servers are called nervousnet Nodes.
– Mobile Clients will have the option of selecting a server from a list.
The storage engine is responsible for the storage and management of sensor data locally in the phone. Data are managed in the following temporal form:
time, sensor type, value(s)
Data are serialized and structured with the Protobuf Buffers system. Two storage implementations are provided for benchmark measurements and comparisons: (i) A red black tree implementation for the Android and (ii) an SQLite implementation for iOS. The storage engine exposes an API with which virtual sensors can stream data back to the Nervousnet backend for a unified seamless storage and management.
Local Analytics Engine
The local analytics engine performs lightweight statistics and machine learning operations on the data of the storage engine. It is the core component that bridges the Nervousnet backend with the virtual sensors. The local analytics engines exposes an extensible and evolving API for accessing the supported operations. New novel sensors can be entirely built by composing a pipeline of API calls to the local analytics engine. Moreover, if this pipeline is generic and relevant for other virtual sensors, it can be integrated in the local analytics engine as part of the Nervousnet backend.
The Nervousnet proxy is a locally deployable autonomous software for remote data collection. The proxy opens up new possibilities for an autonomous and participatory social sensing without relying on a centralized Big Data system. You can configure one or more proxies for one or more groups of users for full control of the data collection process. The Nervousnet backend is capable of pushing sensor data to the proxy in an efficient and smart way as data transfers occur in large chunks when there is an available wireless connection.
The privacy regulator in provides control of the data collection process in respect to privacy. The system provides three levels of privacy control: (i) self-determination of the sensor data logged in the phone, (ii) self-determination of the sensor data shared with the proxy and (iii) self-determination of the data collection frequency for each involved sensor.
2) Virtual Sensors / Axons
Virtual sensors sense an environment with one or more data streams and outputs a new data stream. A virtual sensor consists of an aggregator that processes the input data stream and a filter that regulates the availability of the output data stream. For more information, the model of virtual sensors is published here. Most virtual sensors are expected to run as independent applications supported by the Nervousnet backend, though generic virtual sensors can be integrated in the Nervousnet backend, e.g. the real-time visualizer.