Les objets connectés exploitent une multitude de protocoles de communication pour transmettre leurs données à travers les réseaux IoT. Il est souvent difficile de développer et de maintenir des systèmes capables de gérer efficacement dans la durée, cette diversité de protocoles et de formats de données. Pour pallier ce problème, le CETIC propose un middleware polyvalent, véritable couteau suisse de l’IoT, permettant de gérer de manière facile, flexible et efficiente les flux hétérogènes de données.
Cet article définit quelques concepts clés qui sous-tendent l’architecture du middleware DMWay et les illustre à travers des exemples de protocoles de communication, types d’encodages et modèles de données supportés par l’outil.
Les interfaces ou I/O Support dans DMWay désignent des modules logiciels qui fournissent un support bas niveau (i.e. proche du niveau physique/driver) des communications permettant à DMWay d’interagir avec le monde extérieur. Toutes les communications passent par des modules de ce type qui peuvent être utilisés directement ou par un connecteur.
Le tableau suivant liste les interfaces actuellement supportées par DMWay.
HTTP(s) client/serveur | CoAP client/serveur | MQTT client |
Serial | ModBus client | AMQP client |
S7 client | Fichiers | ODBC |
DMWay étant indépendant du moyen de communication sous-jacent, les données de payloads issues de protocoles réseau peuvent être reçues via n’importe quel moyen de communication (5G, Ethernet, Wi-Fi, etc).
Dans DMWay, structuré en boîte à outils de modules logiciels spécialisés, un connecteur désigne un module qui fournit de la connectivité aux autres modules. Ces modules de type connecteurs peuvent utiliser les interfaces. Ils ajoutent également une couche de gestion des données et de gestion de l’ensemble de la chaîne de communication.
Par exemple, les modules Z-Wave et RF utilisent l’interface MQTT et contiennent les modèles de données respectivement spécifiques à ces technologies.
DMWay fournit également des connecteurs spécifiques aux backends (i.e. applicatifs logiciels en aval côté serveurs et cloud : bases de données, plateformes de données, etc.) qui prennent en charge les spécificités de ceux-ci. Par exemple, MongoDB ou Thingsboard sont des applicatifs backend supportés par des connecteurs dédiés dans DMWay.
Le tableau suivant liste des exemples de connecteurs actuellement supportés par DMWay.
Bluetooth (client GATT) | OPC/UA | MongoDB |
RF (433 MHz, 868 MHz) | CayenneLPP | Prometheus/OpenMetrics |
InfluxDB | TSorage | Thingsboard |
Z-Wave |
Les modules de décodage et d’encodage permettent de transformer des données brutes en données utilisables par DMWay et inversement.
Le tableau suivant liste des exemples de types d’encodages disponibles dans DMWay.
JSON | CSV | CayenneLPP |
Données binaires | XML | S7 |
OpenMetrics | Séries temporelles | Vecteurs de données |
Décodage customisé via du code Python | Texte |
La sémantique des données est définie dans des modèles de données également appelés datamodels. Les modèles de données contiennent la description des données traitées par DMWay. On y trouve, par exemple, le type d’une donnée (entier, tableau, chaîne de caractère, etc.), des informations sur la hiérarchie des données ou encore sur le dispositif physique associé. Un modèle de donnée est lié un à infomodel qui organise et stocke les données décrites dans le datamodel.
DMWay supporte des modèles de données prédéfinis liés à des technologies existantes. Néanmoins, des modèles de données personnalisés peuvent être définis par l’utilisateur.
Le tableau suivant reprend des exemples de datamodels prédéfinis disponibles dans DMWay.
OCF | CayenneLPP | OPC/UA |
Z-Wave | RF (433 MHz, 868 MHz) | HGI |
OpenMetrics | LWM2M |
Dans cet article, une introduction à certains concepts de base de l’outil DMWay est fournie ainsi qu’un aperçu de certains protocoles et format de données supportés. Le diagramme suivant illustre la façon dont ces concepts sont agencés dans DMWay.
En plus de supporter ces protocoles et format de données, DMWay permet de paramétrer des actions complexes sur les données. Cela inclut, par exemple, la conversion de données, la définition d’exports spécifiques de données, l’implémentation d’actions pouvant être déclenchées à intervalles paramétrés (i.e. triggers), la traduction d’un modèle de données à un autre, etc.
Ces concepts et fonctionnalités feront l’objet d’autres articles dédiés.
Couteau suisse icônes créées par Freepik - Flaticon
Voir en ligne : Fiche de présentation de l’outil DMWay