×

Status message

This proposal has been approved and the Eclipse sensiNact project has been created.

Eclipse sensiNact

Basics
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project: 
Background: 

The world is facing a number of critical challenges such as global warming, economic crisis, security threats, inequality, natural disasters and ageing society. Urban areas are particularly affected, given that the world population is increasingly concentrated in those areas, which is expected to be 66% by 2050.

While occupying 2% of the earth's surface, cities use 75% of the world resources. Those resources in civil infrastructure such as water, energy, public transportation, parking spaces, buildings, roads, bridges, etc., as well as natural resources and economic resources need to be shared by this increasing population. This has direct consequences for urban citizens and for the city itself.

Ranging from social to economic aspects, IoT and big data provide countless possibilities to enhance the quality of life and security of people, while at the same time reducing inequalities and providing new revenue opportunities for enterprising businesses, from large groups and public administrations to SMEs, startups and web entrepreneurs.

The unprecedented number of connected things in urban environments and the need to process the associated big data naturally raises new technical challenges in terms of interoperability, data and connectivity heterogeneity, scalable and online data processing, actionable knowledge extraction, security and privacy. Eclipse sensiNact project has been created to bring a community of developers and other smart city stakeholders together who will tackle those challenges with an open approach aiming at fostering smart city business ecosystem.

Scope: 

The Eclipse sensiNact project will in particular be dealing with the following technical aspects related to smart city platforms:

  • Connectivity: providing support for gathering data from various sources in urban environments (IoT devices, legacy devices, open data, social networks, participatory sensing mobile applications, etc.)
  • Interoperability: providing interoperability among heterogeneous urban data; providing developer friendly interfaces to access to data and action resources in cities in a uniformed way, supporting various state of the art remote access protocols
  • Data processing: mechanisms to extract actionable information from raw data
  • Developer Tool: providing a tool to build/deploy/manage smart city applications in an easy yet dependable way
Description: 

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.

Connectivity: 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.

Interoperability: 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.

Developer tool

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.

 

Why Here?: 

The sensiNact team believes in open solutions for smarter cities. We know that smart people with open tools and platforms can build together innovative solutions for the smart cities of the future. sensiNact is an ambitious project aiming at building a strong community to address today’s and tomorrow’s challenges for smarter cities and enhancing and extending the functionalities provided by sensiNact. sensiNact has already been used in various collaborative international projects and deployed in close to real operational environments. The objective of sensiNact is also to build a business ecosystem in order to have sensiNact in real-life deployments integrated with commercial deployments.

We believe that Eclipse provides a perfect environment to make our project reach its objectives, in terms of efficient project management, in terms of reaching a large number of developers and in terms of creating a business ecosystem.

Project Scheduling: 

sensiNact code is ready to be provided as a first contribution. It already includes its first build. We plan to do regular releases in agile methodology, with intervals of no more than 6 months. 

Future Work: 

We are expecting to add the following functionalities for the sensiNact’s different building blocks:

·        Connectivity: we are continuously looking for opportunities to integrate support for additional connectivity protocols. We will provide bridges for various emerging communication standards such as Thread, OneM2M, OMA LWM2M, OPC-UA, etc. We are planning to take benefit of Eclipse IoT open source projects to implement the necessary bridges for those protocols.

·        Interoperability: we would like to add semantic interoperability support to the sensiNact. We would like to look at closer to W3C web of things initiative. CEA as a member of OSGi IoT Expert Group member, we would like to bring reference implementation of IoT related specifications of the OSGi Alliance.

·        Data processing: we would like to include new data processing functions and prediction mechanisms.

·        Developer Tool: we would like to work with the modeling community in order to develop additional functions to facilitate building dependable IoT applications, with complementary tools such as Eclipse Papyrus and Sirius.

CEA is committing to actively support the project, with at least 4 FTE. We are planning to actively participate to developer events (organized by Eclipse, as well as other national and international initiatives), as well as creating sensiNact specific events, in order to present our project to the community and attract users and developers. We are planning to reach national stakeholders using our various offices established all over France to transfer CEA technology to local industry. In addition, CEA is an active member in the European smart city ecosystem and has been coordinating and participating to several related collaborative projects involving numerous industrial and academic partners, which will certainly be part of the ecosystem we will create around the platform. CEA is also an active member of the European IoT Platform Initiative (IoT-EPI) and planning to create a smart city related working group within the Eclipse Foundation. As a member of Industrial Internet Consortium (IIC), CEA will also promote Eclipse sensiNact project towards IIC members.

People
Project Leads: 
Interested Parties: 

Osaka University

Keio University

Engineering Ingegneria Informatica spa

ACUTUS Software, Inc.

JRISS

Kyoto Sangyoo University

ST Microelectronics

 

Source Code
Initial Contribution: 

sensiNact code is composed of approximately 85 000 lines of Java code and about 1 500 classes. It is based on the OSGi framework.  It is principally composed of 6 groups of software bundles

  • Core: it includes the implementation of the core functionalities of the platform including implementation of sensiNact service model, utility classes, data structures, abstract classes and security mechanism
  • Southbound bridges: this group includes implementation of bridges and adapters for various IoT protocols and platforms such as LoRa, Zigbee, IEEE 802.15.4, Sigfox, enOcean, CoAP, MQTT, XMPP, NGSI, HTTP, etc.
  • Northbound bridges: this group includes implementation of remote access bridges to the platform such as REST APIs, JSON RPC, as well as publish subscribe protocols such as MQTT, XMPP, NGSI, etc.
  • Application manager: This group includes implementation of the application management mechanism and a set of data processing functions ;
  • Studio: This group is composed of a set of visual elements based on Eclipse’s EMF, GMF and XText frameworks
  • Studio web: This is an implementation of a lighter web version of the Studio

Following list provides the dependencies of sensiNact to third party libraries and their associated licenses.

org.xerial:sqlite-jdbc

Apache Licence

org.json:json

JSON Licence

org.apache.felix:org.apache.felix.gogo.runtime

Apache Licence

org.everit.json:org.everit.json.schema

Apache Licence

com.espertech:esper

GPL v2

org.slf4j:slf4j-api

MIT Licence

javax.servlet:javax.servlet-api

-

com.neuronrobotics:nrjavaserial-sensinact

LGPL v2

javax.ws.rs:jsr311-api

-

org.apache.felix:org.apache.felix.http.api

Apache Licence

org.apache.felix:org.apache.felix.http.jetty

Apache Licence

org.apache.felix:org.apache.felix.ipojo

Apache Licence

org.apache.felix:org.apache.felix.ipojo.annotations

Apache Licence

philips.hue.sdk:huesdk-bundle

Philips Licence

org.apache.commons:commons-lang3

Apache Licence

it.politico.elite:enocean.library

Apache Licence

javax.jmdns:jmdns

Apache Licence

JSoXLib:JSoXLib

Apache Licence

com.tikitag:com.tikitag.client

LGPL v2

org.igniterealtime.smack:smack-tcp

Apache Licence

org.igniterealtime.smack:smack-extensions

Apache Licence

org.eclipse.paho:org.eclipse.paho.client.mqttv3

Eclipse Public Licence

org.json

JSON Licence

org.restlet

Apache Licence

org.apache.log4j

Apache Licence

org.objectweb.asm

ASM licence (http://asm.ow2.org/license.html)  

org.osgi.framework

Eclipse Public Licence

 

Dependencies to software having Eclipse conflictual licenses such as GPL, are not critical.

Source Repository Type: