The Internet of Things (IoT) refers to the rapidly growing network of connected objects that are able to collect and exchange data using embedded sensors. With IoT devices flooding the market and the amount of IoT data growing each day, one of the biggest challenges is to manage the data in terms of (a) how the data flows (b) how the data is captured and organized, and (c) how the data is utilized and analyzed.
IBM IoT MessageSight, together with MQTT (MQ Telemetry Transport), provide an appliance-based fast, secure, scalable, bi-directional messaging framework for IoT and mobile environments, built to handle a very large volume of messages with extremely low latency.
Common questions asked to a consultant when he or she goes into an IoT engagement, is whether a dedicated appliance like IBM MessageSight is really needed and whether its functionalities can justify the cost of ownership. Especially when standard Internet protocols like HTTP can handle IoT traffic as well. While the answers to such questions depend on the actual needs of the client, I have stated below some pointers that would help come to a decision.
Integration with wireless networks: IBM MessageSight uses MQTT which is the protocol of choice for wireless networks. MQTT provides significant advantages over HTTP. The larger size of the HTTP header makes it unsuitable for low-bandwidth networks. MQTT has better network tolerance and the ability to recover from network disruptions – an extremely important requirement in wireless messaging networks. MQTT has been designed to use low battery power, another important requirement when wireless devices and sensors are in use.
Millions of connected clients: One challenge in the area of IoT is the constantly growing number of handheld devices including smartphones, tablets, e-terminals, as well as sensors that create a large number of M2M endpoints. HTTP is not optimized to handle this large number of concurrent connections. IBM MessageSight appliance, along with MQTT, is “capable of supporting one million concurrent sensors or smart devices and can scale up to thirteen million messages per second”. (Source: IBM Press Release 04/29/2013)
Integration with MQ, IIB and WAS: IBM MessageSight is a DMZ-ready, edge-of-the-network appliance. It supports client applications that use MQTT over TCP/IP and web sockets, and JMS. This gives IBM MessageSight the unique capability to integrate with enterprise applications like WebSphere Application Server (WAS) and IBM Integration Bus (IIB). IBM MessageSight integrates with IIB through JMS nodes, and with WAS using JMS resource adapter. MessageSight provides native connectivity to IBM MQ and can connect to one or more MQ queue managers to support bi-directional message transfer.
Push Notifications: One major consideration in almost any M2M scenario is the ability for the back-end to send timely notifications to the client. MQTT protocol is a push both ways between client and server. However, in HTTP, messages are pushed from client to server but are polled from client to server. The client performs constant polling to check the availability of new data on the server, resulting in more battery and network consumption. This advantage, along with the ability of IBM MessageSight to support a million client connections at one time, makes it ideal to support an enterprise that needs to send client notifications.
Support for client applications: IBM MessageSight provides developer-friendly API’s and libraries to connect to mobile devices on both iOS and Android. The simplicity of MQTT is an advantage when it needs to be implemented on different client platforms.
Security: IBM MessageSight is a DMZ-ready, hardened appliance that sits on the edge of the enterprise network. It runs only on firmware and has no operating system. The appliance provides industry-standard transport level securities out of the box. Client authentication (only authorized clients can connect to the appliance) is possible with the use of certificates. User authentication is done using the enterprise LDAP server. It is also extremely important to secure messages and ensure that the message reaches only the intended recipient. IBM MessageSight provides creation of messaging policies where the user ID and the client ID can be a part of the topic structure to ensure message confidentiality. I will touch upon messaging policies in a later blog.