Language-based Approach for the Orchestration of Networked Devices
A host of networked devices are populating smart spaces that become prevalent (e.g., building management, personal assistance, avionics) and large scale (e.g., train station, city, highway network).
The ubiquity of smart spaces raises challenges in various computer science fields such as software engineering, security or networks. In addition, applications orchestrating networked devices become safety-critical systems because of people proximity. The first challenge is to assist the development of these smart spaces. Our approach leverages dedicated design languages providing support at each development stage (programming, test, deployment, etc.). The second challenge is to ensure the reliability and safety of these smart spaces. Our approach consists of integrating these non-functional concerns in the early-stages of the development process.
Our objective is to design languages and tools to support and to certify the development of software systems orchestrating networked entities.
Domain-specific design languages
Orchestrating networked entities involves key software engineering dimensions that are specific to this domain. Our goal is to create languages to address these dimensions, modeling both functional and non-functional aspects of a smart space (e.g., QoS, security policies, fault tolerance policies). Because they are domain specific, these languages will offer notations and concepts that are well suited for these dimensions, improving software productivity.
The dedicated nature of the proposed languages will enable domain-specific properties to be decidable. To do so, the languages are designed in conjunction with these properties, leveraging existing verification techniques and tools. Safety and security are two key properties that are specifically studied.
We develop compilation and optimization strategies that exploit the features of smart systems. The dedicated compilers encapsulate the techniques and technologies of the target domain, ensuring the conformance with the design and raising the level of abstraction.
We develop runtime support to manage the dynamic changes of a smart space. This runtime support is efficient enough to manage thousands of networked entities.
- Advanced telephony services
- Home and building automation
- Digital assistance for the elderly or people with cognitive disabilities