MQTTMQTT 3.1.1 specification (Message Queuing Telemetry Transport) és un protocol de missatgeria publish-subscribe basat en el protocol TCP/IP. Inicialment desenvolupat per Andy Stanford-Clark (IBM) i Arlen Nipper (EuroTech), i després publicat com a codi obert. MQTT v3.1.1 és ara un estàndard d'OASIS, l'especificació d'aquest protocol és disponible en HTML i PDF. http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf

Funcionalitat Propietats de MQTT : Estàndard obert. Estructura senzilla (mínim nombre de bytes per cada missatge). Fiabilitat (existeix la funció QoS Quality of Service), que ens informa de l'estat de la comunicació. Simplicitat (protocol que està definit en 43 pàgines).

miniatura|Fig.1 Missatge tipus CONNECT MQTT defineix un petit conjunt de missatges : Tipus de missatgeValorDescripcióCONNECT1Petició del client per a connectar-se al servidor (vegeu Fig1)CONNACK2Reconeixement de la connexióPUBLISH3Edició missatgePUBACK4Reconeixement de l'edicióPUBREC5Edició rebuda (part 1)PUBREL6Edició alliberada (part 2)PUBCOMP7Edició completa (part 3)SUBSCRIBE8Petició de subscripció de clientSUBACK9Reconeixement de subscripcióUNSUBSCRIBE10Petició de desubscripció de clientUNSUBACK11Reconeixement de desubscripcióPINGREQ12Petició de PINGPINGRESP13Resposta de PINGDISCONNECT14Client deconnectant

Comparativa de protocols MQTT versus HTTP Benchmarking de mida de trama: AccióProtocol HTTPProtocol MQTTRelació HTTP/MQTTRebre una unitat de dades (la mínima)320 bytes69 bytes4,6Enviar una unitat de dades (la mínima)320 bytes47 bytes6,8Rebre 100 unitats de dades (la mínima)12600 bytes2445 bytes5,1Enviar 100 unitats de dades (la mínima)14100 bytes2126 bytes6,6 Benchmarking de característiques : CaracterísticaProtocol HTTPProtocol MQTTModelCentrat a les dadesCentrat al documentAccionsGET, POST, DELETE especificació complexaPub/Sub/Unsub especificació senzillaMida dels missatgesMissatges llargsMissatges curtsQuality of serviceNo, cal implementar en la capa d'aplicació3 nivells : el millor, almenys 1 cop i exactament 1 copDistribució de dadesNO, només 1 a 1Sí, 1 a n

Brokers MQTT miniatura|Fig.2 Exemple de Broker Existeixen molts brokers MQTT disponibles, varien en la seua funcionalitat, alguns d'ells ofereixen funcionalitats addicionals.

Els principals brokers de codi obert són: ActiveMQ JoramMQ, OW2 JORAM Mosquitto RabbitMQ Podem trobar una llista dels brokers disponibles aquí.

Un estudi comparatiu de les característiques d'aquests diferents brokers (ActiveMQ, Apollo, JoramMQ, Mosquitto i RabbitMQ) es troba disponible aquí .

Biblioteques de clients Nombroses biblioteques estan disponibles per programar clients MQTT, per a la majoria dels llenguatges (C, C++, Java, JavaScript, PHP, Python, etc.) i per a la majoria de les plataformes (Linux, Windows, iOS, Android, Arduino, etc.).La llista de les biblioteques de clients disponibles és accessible des d'aquí.

El projecte Eclipse/Paho ofereix implementacions de codi obert dels protocols de missatgeria oberts i estàndards destinats a les aplicacions noves i emergents per a la comunicació M2M (màquina-a-màquina) i de l'Internet de les coses (IoT).

Aplicacions reals En el món real, hi ha nombrosos projectes que utilitza el protocol MQTT : Facebook Messenger : Facebook ha utilitzat aspectes de MQTT en Facebook Messenger. L'ultima_versio del sistema de control de senyalització de l'IECC Scalable DeltaRail utilitza MQTT per les comunicacions entre les diferents parts del sistema i els components del sistema de senyalització. CloudMQTT és un servei de missatgeria que utilitza el protocol MQTT. En un llibre titulat "Building Smarter Planet Solucions with MQTT and IBM WebSphere MQ Telemetry" IBM descriu diversos exemples d'aplicacions en el domini de la salut i de l'energia.

Referències

Categoria:World Wide Web