MQTT
MQTT[1] (Message Queuing Telemetry Transport[2]) est un protocole de messagerie publish-subscribe basé sur le protocole TCP/IP.
Il a été initialement développé par Andy Stanford-Clark (IBM) et Arlen Nipper (EuroTech). Il est conçu pour les connexions avec des sites distants où la bande passante du réseau est limitée.
MQTT 3.1.1 est un standard OASIS, la version 5 de la spécification est maintenant publiée depuis le 7 mars 2019[3].
Historique
Andy Stanford-Clark (IBM) et Arlen Nipper (Arcom, Eurotech et Cirrus Link) sont les auteurs de la première version du protocole en 1999 qui a servi à surveiller un oléoduc dans le désert. L'objectif était d'avoir un protocole efficace en bande passante, léger et utilisant peu d'énergie de batterie, car la liaison satellite qu'ils utilisaient était très coûteuse à cette époque.
Agents MQTT
Il existe de nombreux agents MQTT disponibles, ils varient dans leurs fonctionnalités et certains d'entre eux mettent en œuvre des fonctionnalités additionnelles.
Les principaux agents open-source sont :
Bibliothèques clientes
De très nombreuses bibliothèques sont disponibles pour programmer des clients MQTT, pour la plupart des langages (C, C++, Java, JavaScript, PHP, Python…) et sur la plupart des plates-formes (GNU/Linux, Windows, iOS, Android, Arduino…).
Les projets Eclipse Paho (en) ainsi que wolfSSL offrent des implémentations libres et open-source des protocoles de messagerie ouverts et standards destinés aux applications nouvelles et émergentes du M2M (machine-to-machine) et de l'Internet des objets.
Applications
De nombreux projets mettent en œuvre MQTT :
- Facebook Messenger : Facebook a utilisé des aspects de MQTT dans Facebook Messenger, cependant on ne connaît pas exactement ce qui est utilisé de MQTT dans Facebook Messenger ni pourquoi[4].
- La dernière version du système de contrôle de signalisation de IECC Scalable DeltaRail utilise MQTT pour les communications entre les différentes parties du système et les composants du système de signalisation[5].
- Home Assistant, logiciel serveur domotique open source, est compatible MQTT et fonctionne avec le serveur Mosquitto[6].
Dans un livre rouge intitulé Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry IBM décrit plusieurs exemples d'applications dans le domaine de la santé et de l'énergie.
Références
- MQTT 3.1.1 specification
- https://www.ibm.com/developerworks/lotus/library/expeditor-mqtt/
- https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html MQTT v5
- (en) Lucy Zhang, « Building Facebook Messenger », sur facebook.com/Engineering, Facebook, (consulté le ) : « By maintaining an MQTT connection and routing messages through our chat pipeline, we were able to often achieve phone-to-phone delivery in the hundreds of milliseconds, rather than multiple seconds. », p. 1
- (en) Daren Wood et Dave Robson, « Message broker technology for flexible signalling control » [PDF], sur irse.org, IRSE (en), (consulté le ), p. 7
- (en) Home Assistant, « MQTT », sur Home Assistant (consulté le )