MQTT

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche

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.

Historique[modifier | modifier le code]

Andy Stanford-Clark (IBM) et Arlen Nipper (Cirrus Link, puis Eurotech) 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 les appareils étaient connectés par liaison satellite et à cette époque c'était extrêmement coûteux.

Agents MQTT[modifier | modifier le code]

Il existe de nombreux agents MQTT disponibles, ils varient dans leur fonctionnalités et certains d'entre eux mettent en œuvre des fonctionnalités additionnelles.

Les principaux agents open-sources sont :

Bibliothèques clientes[modifier | modifier le code]

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[modifier | modifier le code]

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. [3]
  • 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.[4]

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[modifier | modifier le code]

  1. MQTT 3.1.1 specification
  2. https://www.ibm.com/developerworks/lotus/library/expeditor-mqtt/
  3. (en) Lucy Zhang, « Building Facebook Messenger », sur facebook.com/Engineering, Facebook, (consulté le 15 octobre 2015) : « 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
  4. (en) Daren Wood et Dave Robson, « Message broker technology for flexible signalling control » [PDF], sur irse.org, IRSE (en), (consulté le 1er août 2017), p. 7