Keywords: IoT; Middleware; Privacy; Quality of data; multiscale distribution; IoT discovery;
1 What is M4iOT
M4ioT is a free software platform which offers (1) generic middleware services and (2) modeling tools to design application in numerous application domains of the IoT: smart city, intelligent transportation, healthcare, smart homes, energy management.
With the Internet of Things (IoT) paradigm, smart objects are evolving from ambient objects, only accessible in the surrounding environment, to Internet objects, world wide accessible. The objective of M4ioT is to facilitate the design of applications that use data coming from the wide range of connected objects.
2 For whom is M4ioT
M4IoT frameworks may be used by research projects and industry to create mass-market applications that interact with the Internet of things.
3 Description of M4ioT
M4IoT is a set of free software under GNU LGPL licence. Each software may be used independantly from the other.
M4ioT is underpinned by our experience in model driven engineering and distributed systems.
M4IoT key points:
- Aggregate context data from raw producer data to meaningfull data;
- Distribute context information in large distributed systems;
- For systems distributed geographically, administratively and thematically: structure the systems in a meaningfull multiscale system;
- Process and distribute the quality of transmitted data;
- Privacy preservation with decoupled producers and consumers.
4 M4IoT Frameworks
4.1 COSMOS (COntext entitieS coMpositiOn and Sharing)
Ubiquitous computing environments are characterised by a high number of devices which generate vast amounts of context information data. These data are used for example to adapt applications to changing execution contexts. We chose to reorganise the classical functionalities of a context manager to systematically introduce a 3-step cycle of data collection, data interpretation, and situation identification. For that, we propose the COSMOS framework for processing context information. This framework is based on the concepts of context node and context management policies translated into software components in a software.
More information: the project is moving for an old repository to a new infrastructure; so, some information is coming ASAP.
4.2 muDEBS (MUltiscale Distributed Event-Based System)
muDEBS is designed for allowing the distribution of data in large-scale and heterogeneous systems involving clouds, cloudlets, desktops, laptops, mobile phones, and smart objects of the Internet of Things.
The features of muDEBS include:
- Content-based filtering to ease the work of applications designers;
- Semi-structured data model à la XML to interop with approaches such as sensors as a service that use standards like RDF;
- Several modes of operation to allow for instance local advertisements with global subscriptions, global advertisements with local subscriptions, etc.;
- Synchronous anonymous request with multiple replies;
- Distributed routing with multiscoping to delimit logical spaces and these spaces delimit scopes of data distribution;
- Protection of privacy with attribute-based access control.
More information : https://fusionforge.int-evry.fr/www/mudebs/
4.3 MuContext (MUltiscale Context management)
muContext is a framework that offers distributed context management. It involves three categories of software entities: context collectors, context processing capsules, and context-aware applications. Each of these categories of components implement a functional part of context manager.
A context collector is a software entity dealing with the acquisition of raw context data—i.e. that have not yet been processed or transformed—and to which it can associate QoC meta-data.
A context capsule is a functional element that performs the processing of context information into information of a higher level of abstraction. It is a consuming and producing entity. Several categories of context data treatments can be operated by a capsule: aggregation, filtering, fusion, inference…
A context-aware application is a client that consumes context information for being context-aware.
muContext relies on the framework muDEBS (multiscale Distributed Event-Based System) for the distribution of context data between collectors, capsules, and applications.
More information : https://fusionforge.int-evry.fr/www/mucontext/
4.4 QoCIM (Quality of Context Information Model)
The QoCIM framework provides a solution to handle the meta-data of context information concerning their quality. The term QoC (Quality of Context) refers to "any information that describes the quality of information that is used as context information" The QoCIM framework contains a meta-model able to represent heterogeneous, primitive or composite Quality of Context criteria used to evaluate the quality of context information. The framework also provides functions and tools to analyse and transform the QoC meta-data all along the life cycle of the context information from their production to their consumption.
More information : https://fusionforge.int-evry.fr/www/qocim/
4.5 MuSCa (MultiScale Characterization framework)
Due to their heterogeneities, complex distributed systems are sometimes referred to as multiscale systems. The word “multiscale” may qualify extremely various distributed systems according to the view-points in which the heterogeneities are considered, such as the geographic dispersion of the entities or the nature of the hosting devices. Mastering the complexity of such distributed systems through the identification of the multiscale nature of the system is the approach we are exploring with MuSCa. MuSCa framework allows multiscale distributed systems architect designers to share a taxonomy for qualifying each system in terms of viewpoints, dimensions and scales. The result of a characterization is a model from which the framework provides runtime scale-awareness to the system’s entities. Scale awareness may be used for data distribution over the IoT.
More information : https://fusionforge.int-evry.fr/www/musca/
4.6 IoTvar (Internet of Things variables)
Because of the number of objects encompassed by IoT, their dynamicity and their world wide accessibility, the middleware community faces new challenges. Offering to application developers the possibility to declare IoT variables easily discovered, transparently updated, with low power consumption on the client side is one of these challenges.
With IoTvar, software developers easily declare IoT variables in their applications. Based on this declaration, IoTVar handles all the interactions between the application and the IoT platform:
- to discover and select the sensors that provide the data (the sensors are chosen according to expressed constraints – e.g., freshness, location)
- to transparently update the variables when necessary – i.e. when new relevant values are available for this sensor.
The IoTvar middleware currently offers interactions with several IoT platforms.
More information : https://fusionforge.int-evry.fr/www/iotvar/