We share the view that a revolution will come from the edge of the Internet. Almost everything will be able to communicate and to interact with its environment to perform various tasks and to adapt this environment to human activities. From the pervasive computing envisioned just a few years ago, in which small computers are spread in the environment, the vision of the Internet of Things evolves towards a world where objects have very different characteristics. All of them are not able to perform complex tasks. Some of them have to be frugal in terms of hardware (low cost) and energy (years battery operation). They could even work without any embarked energy using the one they could harvest in the environment. Others will have enough energy but experience changing network conditions (mobility, volatility). This leads to various networking conditions that could change dramatically over time. Applications and services have to take this into account to be able to meet requirements that could be strong when human life is in danger (vehicular communication, industrial IoT, eHealth). They also have to adapt their behavior to the context in which they operate.
For some pervasive services, local processing and interactions could be more efficient than cloud-based approaches. Information should be used where it is produced and where it is useful to provide services to the user. The ability to exchange contextual information through various communication technologies is necessary to allow context aware applications to discover the context and to adapt their behavior. These local interactions versus global processing could also be relevant for high demanding applications since it is possible to use local processor capabilities to reduce the time spent exchanging the data (Fog Computing). More generally, local interactions could use various type of information to improve services to customers. For instance, the knowledge of the trip a user is taking could be used locally by access points and base stations to manage handover seamlessly or to make application data follow the user.
More generally, the intelligence is about to be spread in the environment, a lot of small pieces of hardware are now capable to run IA algorithms for various usages and decisions that could be made locally. The approach to control and to feed all these IA instances from the cloud does not scale even if it is easier to implement and to understand. It also makes it difficult to break silos and to use local interaction to autonomously trigger actions on the physical space.
Traditional software architectures isolate the developer of a pervasive application from the real environment that he often has to depict according to complex, heavy and expensive processes. In our approach, objects and infrastructure integrated into user’s environment could provide a more suitable support to pervasive applications: description of the actual system’s state can be richer, more accurate, and, meanwhile, easier to handle; the applications’ structure can be distributed by being built directly into the environment, facilitating scalability and resilience by the processing autonomy; finally, moving processing closer to the edge of the network avoids major problems of data sovereignty and privacy encountered in infrastructures very dependent on the cloud.
Building a pervasive application requires to implement one or more logical control loops which include four stages: (1) a massive collection of raw data from the environment, stored on re- mote servers, (2) the (re)construction of information that is meaningful for the application and (3) for decision making, and finally, (4) action within the environment.
Pervasive applications and services ready to be deployed and to operate in various environments should overcome the existing silos and allow significant cost reduction. Unfortunately, designing, testing and ensuring the maintenance as well as the evolution of a pervasive application remains very complex. Heterogeneity is often considered as an issue to deal with, and definitively it is. But it could also be considered as an asset in the sense that an heterogeneous environment is more resilient to failures or attacks. Being able to deal with heterogeneity is also a property that could help to cope with the necessary evolution of cyber-physical systems.
The collection and construction of a reliable and relevant perception of the environment is necessary for many decision algorithms proposed in various domains. Adapting the behavior of the environment to the actual requirements of such decision making mechanisms is a challenge. In our vision, the lack of resources by which properties of the real environment are made available to application developers is a major concern. Exposition of raw sensor values to the decision-making process does not allow to build relevant perception that a pervasive application actually needs in order to shrewdly act/react to changes in the environment. So, the following is left up to the developer:
- To characterize more finely raw data beyond its simple value, for example, the acquisition date, the nature of network links crossed to access the sensor, the durability and accuracy of value reading, etc.
- To exploit this raw data to calculate a relevant abstraction for the application, such as, whether the room is occupied, or whether two objects are in the same physical vicinity.
- To interact with heterogeneous objects spread in the environment in order to get the data required to build the perception with the right level of quality.
The aim of the team is to ease development, deployment, evolution and maintenance of pervasive applications in complex environments with a strong focus on smart building andsmart cities. We are especially interested in cooperative autonomy applied to autonomous vehicles. We aim to help pervasive application designers in the development phase as well as to ease the life cycle management. In this respect will develop a comprehensive set of new interaction models, tools to augment and qualify information, and system architecture principles following three main leading principles:
- Locally enrich and manage data produced in the environment. By proposing data-centric service architectures, the developer must be able to identify the data he/she wants to collect as simple as possible. In return, applications would then be able to build their knowledge about their environment (perception) in order to adjust their behavior (eg. level of automation) to the actual situation.
- Pervasive applications should be able to describe requirements they have on the quality of their environment perception. We would be able to achieve the minimum quality level adapting the diversity of the sources (data fusion/aggregation), the network mech- anisms used to collect the data (network/link level) and the production of the raw data (sensors).
- Leverage on local properties and direct interactions between objects to propose new service architectures. Rebuilding a complete virtual mirror of the environment is often required, and out-off-silo designs generally relies on cloud-based approaches; we want to avoid the need for such a reconstruction of the reality.
International and industrial relations
As we aim at improving deployability and maintenance of pervasive services and applications, we have to understand and to face challenges from various domains. This will be done through interactions with industry (Smart Home/Building, Smart City, Intelligent Transport System). Although our goal does not lie in products themselves, it is necessary to identify architectural principles and concepts that could be generalized to a large range of applications. To ensure such generalization we plan to root our research in several domain bringing complementary properties (high mobility for Intelligent Transport System, low mobility for pedestrian in smart city, almost static and well known environment in smart building, etc.). The team already build several fruitful industrial partnerships (Orange, YoGoKo, OKWind) to address different aspect of our work program. And instead of developing a large number of collaboration, we prefer to establish few tight relationships.
As long as we consider interaction mechanisms it is pointless to develop new interaction principles without spending times and efforts to push our ideas in standardization where we have been involved for years. Following the progress of bodies will allows us to stay inline with the main trends in targeted application domains and place ourselves in a unique position to develop partnerships towards smarter environment.
We clearly identified interfaces we can have with teams within Inria. In order to help us to stay focused on our objectives, we start to develop collaborations with two international teams. In the context of the French-German Academy for Industry of the Future (Industry 4.0), we define common research objectives with theTUM (Technical University of Munich) Department of Electrical and Computer Engineering (Electronic and Embedded System). We can focus on local interactions between automated vehicle and a smart controlled environment (ie. a plant). This work could be considered as a first step in the way to address the more general problem in a fully open environment (ie. smart cities). We also established long-lasting collaboration with UTS (School of Computing and Communications – Sydney) where pedestrians through their smartphone are considered. Our goal here is to involve application developpers in order to get feedback on our solutions.