The Eclipse sensiNact project consists of a software platform enabling the collection, processing and redistribution of any data relevant to improving the quality of life of urban citizens, programming interfaces allowing different modes of access to data (on-demand, periodic, historic, etc.) and application development and deployment to easily and rapidly build innovative applications on top of the platform.
At the heart of sensiNact lies its service-oriented approach in which IoT devices expose their functionalities in terms of services (temperature service, presence detection service, air quality monitoring service, alarm service, etc.). Each service then exposes one or several resources such as sensor data or actions. Building applications thus become a matter of composing sensing services with actuation services. Loosely coupling between the devices and the services they implement makes the composition of services more dynamic and adaptable to the changing context, not only in the software environment (increasing CPU or memory usage, low battery, reducing quality of measures, etc.) but also in the physical environment (replacing sensors, changing localization, etc.).
sensiNact particularly deals with the following 4 topics.
Heterogeneity of data is today’s reality in every urban environment. Emerging IoT devices, legacy systems, increasing number of social networks, mobile applications, open data repositories and web data are the potential exploitable data sources. sensiNact thus provides connectivity support to those data sources including today’s IoT protocols and platforms such as LoRa, Zigbee, IEEE 802.15.4, Sigfox, enOcean, MQTT, XMPP, NGSI, HTTP, CoAP, etc. With its modular approach, connectivity support for new protocols can be rapidly developed and dynamically added to the platform, even at run-time.
sensiNact platform provides a unified view over those heterogeneous sources of data and action. With the lack of a de facto standard data model today in the IoT domain, sensiNact adopts a generic and extensible data model to facilitate building adapters for various protocols. It’s core model based on 4 types of resources: sensor data, action, state variables, and properties.
Those resources are accessible by generic and easy to use Application Programming Interfaces (API) providing synchronous (on demand) and asynchronous (periodic or event based) access to data/actions of IoT devices, as well as access to historic data.
Data and event processing
sensiNact follows a distributed approach for data and event processing. From the device layer to the Cloud layer, passing through the gateway level, data are processed as close as possible to the data source. sensiNact provides data processing functions, varying from simple filters to more complex aggregation functions on streaming data. sensiNact also provides extension points allowing addition of new functions to the platform.
On top of the platform, sensiNact proposes a development tool (sensiNact Studio) that allows managing devices/services connected to the platform and rapidly creating applications and deploying them to the platform. It is a service composition tool which assists developers in building applications by binding the services via events and actions. With a Domain Specific Language, the developers can express the application logic in terms of ECA (Event-Condition-Action) rules, which is verified and validated by the tool before its deployment into the sensiNact platform. The application developers can then remotely monitor and manage applications (install, start, stop, uninstall, etc.). The tool also provides means to easily build support for new types of protocols and platforms and add it to the platform on-the-fly.
We can list the features of sensiNact as a glance as follows:
• Plug&play: Device as a Service Approach. The flexibility of adding/removing/updating devices with a minimum impact on the running platform ;
• Modular: Modular development and deployment for enhanced system maintenance and evolution ;
• Dependable: sensiNact’s formal data and service models facilitate reliable IoT applications development ;
• Scalable: sensiNact’s three layers architecture (device/gateway/cloud) allows distribution of data processing at different levels ;
• Easy&quick: sensiNact’s comprehensive data model and APIs help to rapidly build IoT applications.