Usually, end devices have a limited memory and CPU power, running on batteries, so connecting them with servers requires a light protocol. Enter MQTT, which was invented in 1999 by Andy Stanford-Clark from IBM and Arlen Nipper from Arcom, a SCADA protocol design initially for battery operated devices to supervise oil pipelines. Later in 2010, IBM released it as a royalty-free protocol. In 2014, OASIS announced that the MQTT v.3.1.1 had become an OASIS standard and a lot of MQTT clients were developed for all programming languages.
The characteristics of MQTT are listed as follows:
- Data agnostic: MQTT can transport all kind of data, from sensor data to images or over the air updates
- Lightweight and bandwidth efficient: Smallest frame is only 2 bytes long
- Provide QoS: Three Quality of Service (QoS) levels
- Runs on top of the TCP/IP stack
- Simple...