Articles about the Internet of Things are now a daily feature. It is clear where IoT is in the hype cycle but where is it in terms of its technology maturity cycle, and the potential for integration with other enterprise data?
Even the non-technical among us understand something about those standards. But the power of the apps on our phone owes as much to another emergent set of standards - namely the way that applications send messages to each other. This, referred to as the API Economy, means that a modern cloud application comes equipped with a rich set of API’s to communicate to other cloud applications. We think nothing of linking Evernote to Outlook or our website to our CRM system, but what about home insurers gaining access to myriad different connected home devices?
For the Internet of Things to become a central business tool for insurance companies, IoT will have to become like the rest of the web - seamless and rapid connectivity will be essential.
IoT device integration currently feels like working with multiple web browsers in the late 90’s - or networking Macs and PCs in that era - namely developers sitting in darkened rooms with arcane knowledge of their dark arts. Deferential executives, fearful of the answer, would occasionally knock on the door to check on progress.
The MQTT protocol is an important milestone in this regard. The protocol has the potential to become the standard for the exchange of data for the Internet of Things. When Amazon recently announced their IoT platform for developers, for instance, it launched with MQTT support at the core.
What is MQTT?
MQTT carries the hallmarks of a mature protocol - a pub/sub model, a core concept of a broker, and session management. More importantly, it is a message oriented protocol, with the key concept that individual messages are discrete pieces of data. The broker views these as relatively opaque messages. Messages themselves are published to topics (addresses), which are consumed by clients in the cloud architecture.
In this way, MQTT is designed to be aligned with core messaging protocols such as RabbitMQ and Apache Kafka, tools that are becoming the backbone of cloud messaging architecture.
What does this mean in practical terms? Put simply, an enterprise developer should be able to say ‘I want to subscribe to just the temperature topic from that set of devices’ - I only want the data important to my part of the business. Only once this is possible will businesses be able truly take advantage of IoT.
Is MQTT Mature?
What makes a protocol mature is the emergence of an ecosystem of software around it. In that regard, MQTT is still at an early stage of maturity.
At the device level, relatively few devices support it. Yes, there are MQTT libraries available in many programing languages, but many devices do not support such languages, and operate on lower level architectures.
Looking at the cloud end of the architecture, a few brokers have emerged (Hive, Mosquitto) but as yet, no single open source MQTT messaging application has arisen as a central player.
The IOT today may be interfaced, but it is not yet interoperable. MQTT is one key piece in delivering that interoperability, and the rest will come from emergent languages that describe that data, semantic descriptions that will themselves appear as businesses recognise the core value of real world data. How this ecosystem will evolve will be an ongoing subject of these blogs.