Qu’est-ce que le protocole MQTT et comment il fonctionne ; Il existe plusieurs façons d’obtenir des données d’un point A à un bien B et inversement. On appelle cela de l’échange de données, mais le faire de manière fiable représente toujours un défi de taille, surtout si en plus d’autres conditions très contraignantes doivent être remplies.
Les appareils et applications IoT, également appelés « objets connectés », nécessitent un protocole de messagerie fiable, robuste, sécurisé et qui ne consommeraient pas beaucoup de ressources processeurs et RAM.
Un protocole de messagerie en particulier réunit toutes ces conditions : le protocole MQTT ou Message Queuing Telemetry Transport.
Qu’est-ce que le protocole MQTT et comment il fonctionne ? La réponse tout de suite !
Sommaires
Qu’est-ce que le protocole MQTT ?
MQTT est l’abréviation de MQ Telemetry Transport. Il s’agit d’un protocole de communication M2M (machine to machine) de type messagerie et permet aux appareils de communiquer de manière asynchrone et efficace à travers des réseaux de contraintes vers des systèmes distants.
MQTT est aujourd’hui en train de devenir l’un des protocoles standard pour l’Internet des objets (IoT). Parmi les solutions IoT utilisant le protocole MQTT, on peut notamment citer les quelques exemples suivants : les capteurs industriels de fumées CO2, CO, humidité et température, les concentrateurs de mesure d’énergies, les modules d’E/S, les contrôleurs et serveur de communication et bien d’autres encore.
Le protocole MQTT s’appuie sur la pile TCP/IP comme base de communication. Chaque client MQTT, application ou dispositif de traitement de données, producteur ou consommateur, doit se connecter à un serveur central avant de communiquer avec d’autres clients MQTT. Le serveur accepte les messages publiés et les livre aux consommateurs intéressés selon un modèle d’interaction Publier/S’abonner.
Autre particularité du protocole, chaque connexion est maintenue ouverte et est « réutilisée » dans chaque communication là où avec d’autres protocoles de communication, comme c’est le cas du http, chaque transmission se fait par une connexion.
Historique du protocole MQTT
Créé par Andy Stanford-Clark et Arlen Nipper en 1999, le protocole MQTT a été développé à l’origine pour permettre à des capteurs de surveiller les oléoducs et les gazoducs traversant le désert. Les dispositifs de surveillance se trouvaient dans des endroits éloignés où la connexion par voie terrestre, filaire ou radio aux serveurs de surveillance était difficile ou peu pratique.
En réalité ces deux ingénieurs en 1999, travaillaient l’un pour IBM et l’autre pour Eurotech, et ils souhaitaient utiliser un protocole pour surveiller un oléoduc dans le désert, obligations que le protocole soit efficace et qu’il consomme peu de batterie et peu de bande passante.
La seule option, à l’époque, était la communication par satellite qui était très chère et facturée en fonction de la quantité de données transmises. Avec des installations comprenant des milliers de capteurs de terrain, le défi consistait à développer une forme de communication capable de fournir des données fiables en utilisant une bande passante minimale. C’est dans ce texte et aussi pour répondre à ces différentes contraintes que le protocole de communication MQTT fut créé.
Comment fonctionne la communication MQTT
Quelques entités travaillent ensemble pour constituer le protocole MQTT :
-
Éditeur :
Cet appareil envoie des messages aux abonnés via le sujet.
-
Sujet :
Chaque ressource a cet identifiant unique. L’éditeur envoie un message au sujet, qui le transmet ensuite à l’abonné.
-
Abonné :
L’abonné est l’appareil final qui reçoit les messages de l’éditeur via la rubrique.
-
Broker :
Il s’agit du serveur, un hub central responsable de la communication organisationnelle entre les éditeurs et les abonnés.
Le protocole MQTT est basé sur le principe de publication de messages et d’abonnement à des rubriques avec un modèle éditeur/abonné, ou « pub/sub ». Dans ce type d’infrastructure, plusieurs clients se connectent à un courtier (serveur central) et s’abonnent aux sujets qui les intéressent.
Les clients se connectent également au courtier et publient des messages dans les sujets. De nombreux clients peuvent s’abonner aux mêmes sujets et utiliser les informations à leur guise.
Le courtier et MQTT agissent comme une interface simple et commune à laquelle tout se connecte. Pour filtrer les messages qui sont envoyés à chaque client, les messages sont classés dans des sujets organisés de manière hiérarchique.
Pour fonctionner, une session MQTT est séparée en quatre étapes :
- La connexion
- L’authentification
- La communication
- La terminaison
Le MQTT est devenu un standard international dans la communication entre les objets IoT et les machines. S’il est devenu aussi populaire et indispensable, ce n’est pas pour rien, il présente de très nombreux avantages face au protocole HTTP :
- Environ 90 fois plus rapide pour envoyer des informations
- Environ 10 fois moins énergivore pour envoyer des messages
- Environ 170 fois moins énergivore pour recevoir des messages
Protocole MQTT et architecture des messages
MQTT définit trois niveaux de qualité de service (QoS : quality of service). La QoS définit à quel point le courtier/client essaiera de s’assurer qu’un message est reçu. Les messages peuvent être envoyés à n’importe quel niveau de QoS et les clients peuvent tenter de s’abonner à des sujets à n’importe quel niveau de QoS.
Cela signifie que le client choisit la QoS maximale qu’il recevra. Par exemple, si un message est publié à QoS 2 et qu’un client est abonné avec QoS 0, le message sera remis à ce client avec QoS 0. Si un deuxième client est également abonné au même sujet, mais avec QoS 2, alors il recevra le même message mais avec QoS 2. Pour un deuxième exemple, si un client est abonné avec QoS 2 et qu’un message est publié sur QoS 0, le client le recevra sur QoS 0.
Des niveaux de QoS plus élevés sont plus fiables, mais impliquent une latence plus élevée et ont des exigences de bande passante plus élevées.
- 0 : Le courtier/client remettra le message une fois, sans confirmation.
- 1 : Le courtier/client remettra le message au moins une fois, avec confirmation requise.
- 2: Le courtier/client livrera le message exactement une fois en utilisant une poignée de main en quatre étapes.
Pour utiliser une bande passante minimale, MQTT doit également minimiser ses transmissions. Pour cela, la taille de chaque message envoyé est allégée au maximum. Ils se composent généralement d’un en-tête fixe de 2 octets, ce qui est très léger.
Quels sont les avantages du protocole MQTT ?
L’intérêt du MQTT plutôt qu’un autre protocole, est, comme nous l’avons vu plus haut, sa faible consommation d’énergie et sa grande rapidité d’exécution. En plus de cela, il est très léger et ne requiert que très peu de ressources, de quoi l’utiliser sur des cartes et des microcontrôleurs de petites tailles et peu puissantes.
MQTT est un protocole efficace, car il présente l’avantage de pouvoir fonctionner même sur des appareils dotés de processeurs à faible consommation et d’une faible RAM. Ses transferts de données sont plus fluides qu’avec d’autres protocoles, malgré sa faible consommation énergétique.
Voici ses principaux avantages :
- Grâce à son architecture légère, il est simple et rapide à implémenter ;
- Il réduit l’utilisation du réseau en envoyant moins de paquets de données ;
- La consommation d’énergie réduite le rend idéal pour les appareils connectés ;
- La distribution des données sont efficaces ;
- La mise en œuvre de la télédétection et du contrôle est plus facile grâce au protocole MQTT ;
- Il nécessite peu de ressources processeurs et une faible consommation de mémoire ;
- Adapté aux réseaux sans fil ;
- Il est idéal pour la transmission de données en utilisant une très faible bande passante.
- Messagerie à grande échelle. Avec ce protocole, du fait de son architecture, il est plus simple de diffuser un message à un million d’appareils qu’avec des dizaines ;
- Il est possible de s’assurer à l’avance que les messages seront transmis avec succès. La fonction QoS des systèmes MQTT peut déterminer si un message important a été transmis avec succès.
MQTT & MEMOGuard V5, de Clever Technologies le binône parfait.
Clever Technologies éditeur français de logiciels, vient de proposer sa nouvelle version du logiciel MEMOGuard, pour la gestion des astreintes, et la supervision des cellules de crise.
Ce logiciel est innovateur, il a été entièrement refait, avec des IHM de dernière génération, intégrant de nombreuses et nouvelles fonctionnalités (à la demande de ses clients).
Et comme tant de fois, il a naturellement ajouté ce nouveau protocole MQTT à son logiciel, pour tous les clients qui pratiquent l’IOT et pour tous les autres.
Alors n’hésitez plus, demandez une démonstration gratuite, vous serez surpris par sa facilité et sa rapidité de mise en place, un tel 00.33.1.60.53.60.53 www.clever.fr
Auteur Antonio Rodriguez, Directeur Clever Technologies