Limitations of the Pub/Sub pattern for cloud based IoT and their implications
The current approach to roll out large scale IoT systems is to outsource the crucial parts of the system to cloud based services, such as message brokerage, devices management, or sensor data storage and processing. One core protocol for messaging in those settings is the widely adopted publish/subscribe protocol MQTT. Pub/sub protocols, however, were not designed for this particular scenario and have decoupling properties that make some common task in IoT settings more challenging to achieve. It is, for instance, not straightforward to discover potential publishers of sensor data or to give guarantees that all, a certain number or at least one subscriber of a certain set of possible subscribers will received a message. Because they are missing in the standard, different approaches and implementations tackling those challenges will lead to incompatibilities between users of different systems. In this work, we therefore give an overview of the challenges with discovery and guaranteed delivery to a certain number of subscribers over pub/sub networks in IoT settings and present different possible solutions. We give advice on which implementation is useful under which circumstances and provide a proof of concept that can be used with little adaption for enabling discovery and reliability in MQTT.
2016 Cloudification of the Internet of Things (CIoT)