Welcome to Nervousnet GitHub Page.
The Nervousnet is a large-scale distributed research platform that provides real-time social sensing services as a public good. Existing Big Data systems threaten social cohesion as they are designed to be closed, proprietary, privacy-intrusive and discriminatory. In contrast, the Planetary Nervous System is an open, privacy-preserving and participatory platform designed to be collectively built by citizens and for citizens.
The Nervousnet is enabled by Internet of Things technologies and aims at seamlessly interconnecting a large number of different pervasive devices, e.g. mobile phones, smart sensors, etc. For this purpose, several universal state-of-the-art protocols and communication means are introduced. A novel social sensing paradigm shift is engineered: Users are provided with freedom and incentives to share, collect and, at the same time, protect data of their digital environment in real-time. In this way, social sensing turns into a knowledge extraction service of public good.
The social sensing services of the planetary nervous system can be publicly used for building novel innovative applications. Whether you would like to detect an earthquake, perform a secure evacuation or discover the hot spots of a visited city, the Nervousnet makes this possible by collectively sensing social activity of participatory citizens.
The nervousnet project and related services is based on the research mentioned below:
E. Pournaras, I. Moise and D. Helbing,
Privacy-preserving Ubiquitous Social Mining via Modular and Compositional Virtual Sensors
in the proceedings of the 29th IEEE International Conference on Advanced Information Networking and Applications-AINA-2015, pages 332-338, Gwangju, South Korea, March 2015. © IEEE
The Android nervousnet mobile application is based on the concept of Bound Services and Android Interface Definition
“A Service is an application component that can perform long-running operations in the background and does not provide a user interface. Another application component can start a service and it will continue to run in the background even if the user switches to another application. Additionally, a component can bind to a service to interact with it and even perform interprocess communication (IPC).”
“A bound service offers a client-server interface that allows components to interact with the service, send requests, get results, and even do so across processes with inter-process communication (IPC).”
“ AIDL allows you to define the programming interface that both the client and service agree upon in order to communicate with each other using interprocess communication (IPC). On Android, one process cannot normally access the memory of another process. So to talk, they need to decompose their objects into primitives that the operating system can understand, and marshall the objects across that boundary for you. The code to do that marshalling is tedious to write, so Android handles it for you with AIDL.”
####Terminology #####Mobile App - Native Mobile Application built for Android and iOS platforms.
- 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.
#####nervousnet CORE – Distributed and Decentralized set of Servers
- 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.
Root GitHub structure
-- Documents (Contains all documentation related to nervousnet and the Android Project)
-- Mobile Clients ( Contains nervousnet mobile app Android Project)
-- Sample Extensionss ( Contains native Axon App projects)
-- nervousnetHUB ( Main nervousnet Android Mobile App Project)
-- nervousnetLIB ( nervousnet Library Project. Native Axon App projects should include into their project)
-- nervousnetVM ( nervousnet Virtual Machine, required by the main project)
-- Resources ( Contains all resource, raw images and final images that are used for the nervousnet Android Project)
Google Play Store Links:
- Nervousnet Mobile App
- Nervousnet – Sample Native Axon App List
https://play.google.com/store/apps/details?id=ch.ethz.coss.nervousnet.extensions.lightmeter * NoiseMeter:
https://play.google.com/store/apps/details?id=ch.ethz.coss.nervousnet.extensions.noisemeter * Accelerometer:
A detailed explanation of Nervousnet, the platform, its architecture and components, Android project details, sample Axon project and a step by step guide to build nervousnet Axon apps can be found on the Wiki of this Github project at the following link:
Support or Contact
Prasad Pulikal - (Nervousnet Platform Architecture / Android Client / Nervousnet CORE Servers)