The internet of things (IoT) will enable a range of applications providing enhanced awareness and control of the physical environment. Current systems typically sense and actuate physical phenomena locally and then rely on a cloud-based publish/subscribe infrastructure for distribution of sensor and control data to end-users and external services. Despite the popularity of pub/sub solutions in this context, it is still unclear which features such a middleware should have to successfully meet the specific requirements of the IoT domain. Questions like how a large number of connected devices that only sporadically send small sensor data messages affect the throughput, and how much additional delay cloud-based pub/sub systems typically introduce, that are very important for practitioners, have not been tackled in a systematic way. In this work, we address these limitations by analyzing the main requirements of IoT platforms and by evaluating which of those features are supported by prominent open pub/sub solutions. We further carry out a performance evaluation in the public cloud using four popular pub/sub implementations: rabbitMQ (AMQP), mosquitto (MQTT), ejabberd (XMPP), and ZeroMQ. We study the maximum sustainable throughput and delay under realistic load conditions using traces from real sensors. While the core features are similar, the analyzed pub/sub systems differ in their filtering capabilities, semantic guarantees, and encoding. Our evaluation indicates that those differences can have a notable impact on throughput and delay of cloud-based IoT platforms.
['Daniel Happ', 'Niels Karowski', 'Thomas Menzel', 'Vlado Handziski', 'Adam Wolisz']
Meeting IoT platform requirements with open pub/sub solutions