Architecture IoTRoutes
➡ Description des composants
Cette représentation décrit les principaux composants fournis par la plateforme IoTRoutes. La liste complète des fonctionnalités et leurs fonctionnement sont détaillés dans le guide d'utilisation.

Messaging module :
Assure la réception et l'envoi des messages IoT entre la plateforme et les appareils, le type d'échange et la structure de message sont totalement paramétrables via la fonctionnalité "Formats des messages". Plusieurs structures peuvent être définis pour chaque type d'échange. Pour la communication via MQTT ,un seul broker MQTT est monté par défaut pour chaque déploiement, mais l'administrateur de la plateforme peut ajouter et activer/désactiver des brokers selon la taille de la plateforme et le nombre d'appareils à gérer.
IoTRoutes utilise un Broker MQTT intégrée basée sur le framework MQTTnet, une bibliothèque puissante et légère implémentant le protocole MQTT (versions 3.1.1 et 5.0).
Ce choix garantit une intégration native, une extensibilité complète et une faible consommation de ressources, faisant des courtiers un composant essentiel de l'architecture IoTRoutes.
Module des Travaux:
Workers Module, Se sont des travaux qui se lancent pour exécuter une ou plusieurs actions d'une façon séquentielle et/ou parallèle . Ces actions sont paramétrables via un designer de workflow visuel. On trouve deux type travaux:
- Travaux immédiats qui se déclenchent suite à un évènement, tel que la réception d'un lot de messages dans la file d'attente ou à la connexion d'un nouveau dispositif. Ce type de travaux et essentiel pour filtrer, réceptionner et convertir les messages reçus. Selon la configuration, les interpréteurs de messages peuvent être activés à ce niveau a fin de détecter les anomalies ou les alertes urgents, ou d'extraction d'autres données à partir d'un media envoyé par l'appareil comme les images, vidéos ou sons.
Travaux planifiés et Travaux manuels : Identiques aux autres travaux, se sont des workflows qui se lancent manuellement ou à des heures spécifiques pour exécuter des actions d'analyse , de génération de reporting, d'envoie de commandes à des appareils et d'interfaçage ou de synchronisation avec de systèmes externe.
Module de Communication :
Ce module permet à la plateforme IoTRoutes d’échanger des informations avec d’autres systèmes, y compris le client web IoTRoutes.
Il joue un double rôle :
- Interaction utilisateur : il gère la connexion des utilisateurs afin qu’ils puissent configurer, visualiser et extraire des données depuis la plateforme.
- Interopérabilité système : il assure l’interfaçage entre IoTRoutes et les processus internes ou les systèmes externes.
Le module de communication publie les API REST mises à disposition des applications tierces et gère également la connexion à des objets sécurisés configurés via la fonctionnalité « Communicators » — tels que des API externes, serveurs SMTP, FTP ou autres. Ces connexions sont utilisées à des fins d’intégration, d’automatisation ou de notification.
Module d’Authentification & d’Autorisation :
Ce module assure la sécurité des utilisateurs, la gestion des accès et l’isolation des données sur IoTRoutes.
- Utilisateurs internes : créés localement dans la base de données avec mots de passe cryptés.
- Autorisation basée sur les rôles (RBAC) :
- Niveaux d'accès par rôle par objet: Chaque rôle définit des niveaux d’accès pour chaque Objet sécurisé tel que Aucun, Visualisation, Gérer,..
- Les actions avancées peuvent être configurées par rôle et par objet (ex. : « activer » un broker, « reset password » pour un utilisateur).
- Isolation et sécurité des données :
- Le système gère des entités représentant des organisations, sous-organisations, personnes ou clients.
- Un utilisateur limité, associé à une entité spécifique, ne peut accéder qu’aux données liées à cette entité.
Exemple : un utilisateur du rôle client, rattaché à l’entité « Client X », ne peut voir ni manipuler que les appareils et leurs données associés à cette entité.
- Sécurisation des APIs :
- Les utilisateurs reçoivent des tokens JWT court-livrés avec rafraîchissement.
- Chaque route API est associée à une action spécifique, et l’accès est autorisé uniquement si le rôle de l’utilisateur le permet (ex. : l'Api "Get" autorisée pour l'action "Display" de l’objet correspondant).
Accès des appareils IoT :
Chaque courtier MQTT définit son propre système d'authentification et d'autorisation des appareils. Les données échangées entre la plateforme et les appareils sont chiffrées à l'aide du protocole SSL/TLS pour les communications HTTP et de certificats X.509 pour les connexions MQTT.
Ce module garantit un contrôle fin et granulaire des accès, la sécurité des données par entité, et la conformité aux bonnes pratiques pour utilisateurs et appareils IoT.
Module de stockage :
Storage Module, Ce module gère l’enregistrement et la conservation des données échangées au sein de la plateforme IoTRoutes. Il repose sur deux types de bases de données complémentaires :
- Data : des bases NoSQL dédiées au stockage des données applicatives ainsi que des messages échangés avec la plateforme.
- Files Storage : un système de stockage des fichiers, utilisé pour conserver les objets et fichiers multimédias envoyés par les appareils, ainsi que les documents, rapports et tout autre fichier utilisateur.
Les messages reçus depuis les appareils sont d’abord placés dans une file d’attente en attendant leur traitement par les workers d’acquisition. Une fois traités, ils sont enregistrés dans la base de données et suivent ensuite le cycle de vie défini via la fonctionnalité "Cycle de vie des messages".