Using MQTT to build large scale IoT solutions
MQTT is a protocol used for connecting small devices to a server and hence to each other. It has been around since 1998, when its inventors imagined a few thousand devices would be connected to one server. Now that MQTT is becoming a prominent protocol used for the Internet of Things, solutions with millions of devices are being proposed. I will talk about how MQTT might be used to build such solutions.
We can build large scale IoT solutions with MQTT using edge of network gateways and brokers such as Eclipse Kura and Eclipse Mosquitto as well as the client libraries of Eclipse Paho, connecting to cloud services such as those from IBM, Eurotech, Microsoft and Amazon. The simplest model is to connect every individual device to the cloud service. But MQTT allows components to be built up out of smaller building blocks, each component having an aggregate behaviour which can then be used to build larger components. At each level the MQTT traffic can be analyzed, filtered and aggregated so that the consuming components are not overwhelmed. Such an MQTT network is self-similar or fractal, greatly increasing its potential scale.
I will also consider how we might manage and secure devices in such topologies, and use gateways to allow the solution to include devices using other protocols, such as Modbus, Bluetooth, ZigBee or MQTT-SN,