Architecting IoT System: Beyond Functional Correctness

Responsable / In charge of : Deantoni Julien (Julien.DEANTONI@univ-cotedazur.fr)

M2 Fintech

CM TD HNE 7h 24h 19h

Résumé / Abstract :
The hardware infrastructure of an IoT System is, by nature, made of heterogeneous devices, ranging from virtual machines in the Cloud to embedded devices (aka. the Things), through gateway, pico- computers, etc. Some of these devices may have limited resources (in terms of connectivity, battery, computation power, memory, etc.). These devices are geographically located in different places and allow access to the physical environment through sensors and actuators. Finally, they communicate using heterogeneous communication medium and protocols; themselves coming with their own communication capabilities (e.g., in terms of QoS, bandwidth or robustness).
Specifying the software architecture of an IoT application not only requires covering the functional aspects of the application but also the design and technical choices specific to the underlying hardware infrastructure, which can strongly impact the extra functional properties of the systems. Consider as an intuitive example the deployment of application including IA-based image recognition. The IA algorithm could be deployed on a Thing, on some gateway or in the Cloud. If the Thing runs on battery, where is it best to run the IA algorithm? On the device to limit the use of the network or on the gateway to limit the use of the Thing’s battery. If one considers other extra functional properties such as maintainability, timing constraints, robustness or fault tolerance, correctly deploying a software architecture boils down in dealing with different trade-offs between technical decisions that improve some concerns, possibly deteriorating some others. In this course we will practice on a project to face these challenges and see what solutions can pragmatically be used and what are the envisioned solutions to tackle these challenges.

Prérequis / Prerequisite :
• Knowledge about classical languages and protocols used in IoT (C, C++, Java, Python, JS/TS MQTT, COAP, ...)
• Curiosity and desire to study and evaluate alternative solutions
• Capacity to abstract and reason on higher level representation of IoT system

Objectifs / Objectives :

  • Understand the impact of some technical and architectural choices on extra functional properties
  • Have ideas about current state of the art approaches to handle some of the problems
  • Have ideas about current research trends to help engineers in their decision taking


Contenu / Contents :
The course will be supported by a project used to let the student feel the problematic and found solutions. Additionally, some focuses will be made to help them understand what they actually experimented by working on the project. Focus length may vary and are not necessarily spread regularly along the weeks.
• General introduction to overview the main goal and organization of the UE and to present the project that will be used as a guideline along the 8 weeks
• Focus #1: hardware infrastructure. Main topology, heterogeneity, notion of fleet and specific usage of the ubiquarium.
• Focus #2: software architecture. Categorization (e.g., Event Driven Architecture, Service Oriented Architecture) data retention/communication choices, etc
• Focus #3: maintainability and automatic deployment
• Focus #4: performances and scalability. Tradeoff between time / space / energy consumption / ...
• Focus #5: Robustness and fault tolerance

• Focus #6: pro/cons of middleware standards for the IoT
• Focus #7: towards live validation of extra-functional properties

Références / References :

Acquis / Knowledge :
• Capability to find variation points leading to trade-off with respect to extra functional properties. Expert level
• Capability to define an appropriate architecture for an IoT system. Medium level
• Knowledge about state of the art architectural style

Evaluation / Assessment :
The evaluation will consist of 3 parts:
• Continuous evaluation of the project increments and evolution
• Final evaluation of the project result
• Final exam