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.