Logo Zéphyrnet

MQTT 5 : 7 nouvelles fonctionnalités et une liste de contrôle de migration

Date :

MQTT 5 : 7 nouvelles fonctionnalités et une liste de contrôle de migration
Illustration: © IoT For All

MQTT, qui signifie Message Queuing Telemetry Transport, est un protocole de messagerie léger conçu pour les appareils contraints et les réseaux à faible bande passante et à latence élevée. Il est particulièrement utile pour les connexions à distance où une faible empreinte de code est requise ou où la bande passante du réseau est limitée.

MQTT 5 est la dernière version du protocole, offrant de nombreuses améliorations par rapport à ses prédécesseurs. Les nouvelles fonctionnalités incluent les codes de motif, les intervalles d'expiration de session, les alias de sujet, les propriétés utilisateur, les options d'abonnement, les fonctionnalités de demande/réponse et les abonnements partagés.

Nous explorerons ces nouvelles fonctionnalités, expliquerons comment les courtiers et les SDK clients populaires prennent en charge MQTT 5, ainsi que quelques considérations clés lors de la migration de MQTT 3.1.1 vers MQTT 5.

Bref historique et évolution de MQTT 5

MQTT a été développé pour la première fois à la fin des années 1990 par le Dr Andy Stanford-Clark d'IBM et Arlen Nipper d'Arcom (aujourd'hui Eurotech), pour surveiller les oléoducs sur les réseaux satellite. La version initiale, MQTT v3.1, a été conçue pour être légère et facile à mettre en œuvre, ce qui la rend adaptée à de nombreux appareils IoT.

MQTT 3.1.1, une norme OASIS, a été publiée en 2014, qui comprenait des modifications mineures au protocole pour améliorer sa clarté et son interopérabilité. Sa simplicité et son efficacité dans la transmission de messages sur des réseaux aux ressources limitées ont conduit à son adoption généralisée dans les applications IoT.

Cependant, à mesure que l’industrie de l’IoT évoluait, les besoins de ses applications évoluaient également. Cela a conduit au développement de MQTT 5, sorti en 2019, qui a introduit de nouvelles fonctionnalités pour répondre à ces besoins changeants. Grâce à ses fonctionnalités améliorées, MQTT 5 est mieux équipé pour répondre aux exigences complexes des applications IoT modernes.

7 nouvelles fonctionnalités de MQTT v5

Codes de raison : comprendre les déconnexions ou les pannes

Contrairement à ses prédécesseurs, MQTT 5 peut fournir une code de raison pour chaque paquet d'accusé de réception, ce qui nous permet de mieux comprendre pourquoi une déconnexion ou une panne s'est produite. Cette amélioration facilite le dépannage et permet une gestion plus précise des erreurs.

Par exemple, si un client ne parvient pas à se connecter au serveur, le serveur renverra un code raison expliquant pourquoi la connexion a échoué. Cela peut être dû à une série de problèmes, depuis des informations de connexion incorrectes jusqu'à l'indisponibilité d'un serveur.

Intervalles d'expiration de session : gestion de la durée de vie des sessions

Cette fonctionnalité permet au client de spécifier comment longtemps le serveur doit maintenir sa session après la déconnexion du client. Dans les versions précédentes de MQTT, une session se terminait immédiatement après la déconnexion ou se poursuivait indéfiniment.

Avec MQTT 5, vous pouvez définir une période spécifique pendant laquelle la session doit rester active après la déconnexion. Cela offre une plus grande flexibilité dans la gestion de la durée de vie des sessions et préserve les ressources sur le serveur.

MQTT 5 présente Alias ​​de sujets pour réduire la surcharge dans les en-têtes de message. Dans les versions précédentes, le nom du sujet devait être inclus dans chaque message, ce qui entraînait des tailles de paquets plus grandes.

Avec les alias de sujet, un court alias numérique peut être attribué à un sujet. Cet alias peut être utilisé à la place du nom complet du sujet dans les messages suivants, réduisant ainsi considérablement la taille de l'en-tête MQTT et économisant la bande passante du réseau.

Cette fonctionnalité permet aux utilisateurs d'inclure des métadonnées personnalisées dans les en-têtes des paquets MQTT. Cela peut être particulièrement utile pour les applications qui doivent envoyer des informations supplémentaires avec leurs messages MQTT, telles que l'horodatage du message, l'emplacement de l'appareil ou d'autres données spécifiques à l'application. Les propriétés utilisateur offrent une plus grande flexibilité et un plus grand contrôle sur la messagerie MQTT.

Options d'abonnement : contrôles d'abonnement granulaires

MQTT 5 permet aux clients de spécifier comment ils souhaitent recevoir des messages pour chaque sujet abonné. Par exemple, les clients peuvent désormais spécifier s'ils souhaitent recevoir des messages conservés pour un abonnement particulier, ou s'ils souhaitent recevoir des messages même s'ils ont le même niveau de QoS (Qualité de Service) que l'abonnement.

Requête/Réponse : Autoriser les clients à répondre à un sujet spécifié

La fonctionnalité de demande/réponse permet à un client de spécifier un sujet que le serveur peut utiliser pour envoyer une réponse directe.

Dans les versions antérieures de MQTT, si un client souhaitait envoyer une réponse à un message, il devait publier la réponse dans un sujet et l'expéditeur d'origine devait être abonné à ce sujet pour recevoir la réponse. Avec la fonctionnalité de demande/réponse de MQTT 5, la communication entre les clients et les serveurs devient beaucoup plus efficace et simple.

Abonnement partagé : fonction d'équilibrage de charge pour les abonnés

Cette fonctionnalité permet à plusieurs clients de partager un abonnement. Lorsqu'un message est publié dans une rubrique partagée, le serveur distribue le message à l'un des clients de l'abonnement partagé, équilibrant ainsi efficacement la charge des messages.

Cette fonctionnalité est particulièrement utile dans les scénarios dans lesquels plusieurs instances d’un service sont en cours d’exécution et que vous souhaitez répartir la charge de travail uniformément entre elles.

Prise en charge actuelle des SDK Broker et Client dans MQTT 5.0

Le protocole MQTT 5.0 a été bien accueilli par la communauté IoT et de nombreux Courtiers MQTT et les kits de développement logiciel (SDK) clients en ont ajouté la prise en charge. Les principaux courtiers MQTT ont déjà implémenté les fonctionnalités MQTT 5.0 sur leurs plates-formes, permettant aux utilisateurs de tirer parti des avantages du nouveau protocole.

Du côté du SDK client, des bibliothèques comme Paho, qui disposent d'une large base d'utilisateurs, ont ajouté la prise en charge de MQTT 5.0. Cela signifie que les développeurs peuvent désormais utiliser les fonctionnalités MQTT 5.0 dans leurs applications IoT. D'autres exemples de SDK clients prenant en charge MQTT 5.0 sont MQTT.js et MQTTnet.

Liste de contrôle pour la migration de MQTT 3.1.1 vers MQTT 5

Si vous utilisez actuellement MQTT 3.1.1, il est probablement temps de passer à MQTT 5. Voici quelques-uns des principaux éléments à prendre en compte lors de cette transition.

Mettre à jour les courtiers MQTT

Une fois que vous avez évalué votre infrastructure actuelle et décidé de poursuivre la migration, l'étape suivante consiste à mettre à jour vos courtiers MQTT. Cela implique l'installation de la dernière version de votre courtier MQTT prenant en charge MQTT 5.0.

La mise à niveau de votre courtier doit être effectuée avec soin, car elle impacte tous vos Clients MQTT. Il est conseillé de tester d’abord le nouveau courtier dans un environnement hors production avant de le déployer en production. Assurez-vous également que la configuration de votre courtier est mise à jour si nécessaire pour prendre en charge les nouvelles fonctionnalités introduites dans MQTT 5.0.

Mettre à jour les bibliothèques client

Après avoir mis à jour vos courtiers MQTT, l'étape suivante consiste à mettre à jour vos bibliothèques clientes MQTT. Tout comme pour la mise à jour du courtier, vous devez d’abord effectuer cette mise à jour dans un environnement hors production. Assurez-vous également que le code de votre application est mis à jour pour gérer les nouvelles fonctionnalités de MQTT 5.0. Tenez compte du fait que cela peut impliquer une refactorisation du code.

Sécurité des adresses

Bien que MQTT 5.0 apporte plusieurs améliorations, il introduit également de nouvelles considérations en matière de sécurité. Par exemple, avec la nouvelle fonctionnalité de propriété utilisateur, les clients peuvent désormais envoyer des données personnalisées au courtier.

Bien qu’il s’agisse d’une fonctionnalité puissante, elle peut être exploitée si elle n’est pas utilisée correctement. Il est donc important d’évaluer toutes les nouvelles fonctionnalités du point de vue de la sécurité.

Certaines des mesures que vous pouvez prendre pour garantir la sécurité incluent l'utilisation de la nouvelle fonctionnalité d'authentification améliorée pour une sécurité renforcée, la limitation des propriétés utilisateur que les clients peuvent envoyer uniquement à ce qui est nécessaire et la surveillance continue de toute activité suspecte.

Surveiller après la migration

Enfin, après avoir migré vers MQTT 5.0 et implémenté ses fonctionnalités, il est important de surveiller en permanence votre système. La surveillance ne doit pas se limiter aux aspects techniques tels que la livraison des messages ou les connexions clients.

Vous devez également surveiller l'utilisation des nouvelles fonctionnalités MQTT 5.0 dans vos applications. Cela vous donnera un aperçu de la manière dont ces fonctionnalités améliorent vos applications et des domaines dans lesquels des améliorations supplémentaires peuvent être apportées.

spot_img

Dernières informations

spot_img