The Internet is no longer a global network just for computers but is becoming an environment for diverse devices to join. Preluded by mobile, billions of smart devices are instrumenting our world today. They are controllers, sensors, meters, gauges, switches, scanners, radio frequency identification (RFID) and supervisory control and data acquisition (SCADA) systems and so on, which are addressable with network-connected embedded microprocessors. By 2020, the number of devices connected to the global network is expected to be 30 billion, according to ABI Research. Those devices are going to publish data, consume data or both, and they will need to responsively interact with each other and with applications through an appropriate protocol to perform tasks without human involvement.
Aside from the other two well-known messaging protocols—Advanced Message Queuing Protocol (AMQP) and Simple (or Streaming) Text Oriented Messaging Protocol (STOMP)—the Message Queue Telemetry Transport (MQTT) protocol seems to be a very good fit for this need because it's designed to be lightweight and less resource-consuming (network bandwidth, power) while also attempting to ensure reliability with some assurance of delivery.
Preparing for the emerging Internet of Things, in April 2013 IBM announced IBM MessageSight, which is a 2U appliance-based messaging server built on MQTT technology. MessageSight is optimized to address the massive scale requirements of the machine-to-machine (M2M) and mobile use cases and designed to handle and route a tremendous volume of messages among diverse types of devices reliably and securely.
Below are five key aspects of MessageSight and details on how the appliance could perform on each.
1. Scalability and performance
Built upon the MQTT messaging protocol, which is faster and requires less bandwidth and power than traditional HTTP(s), IBM MessageSight is well-suited with tags and sensors for mobile devices and other “things” that typically have low power and low communication bandwidth capabilities. Also, the high-scale, asynchronous publish/subscribe with event-oriented paradigm could provide responsive interaction, which turns into better user experience and better scalability.
One MessageSight appliance can serve up to a million devices connected concurrently and handle the throughput of up to 13 million nonpersistent messages per second with predictable latency in microseconds under load. That is an impressive number.
If high availability (HA) and disaster recovery ability are required, two MessageSight appliances could be easily configured to an HA-enabled mode to act as an HA pair of nodes, one to be the primary node (the appliance that is processing messages) and the other to be the standby node (the appliance to which the primary node is replicated). With HA enabled, the messaging services can withstand an outage of an appliance and continue to provide messaging services.
At the message delivery level, since MessageSight fully supports MQTT protocol, it consequently supports three qualities of service options for delivering messages between clients and servers. This allows the delivery assurance of a particular message to be flexibly achieved as needed.
There are three main aspects to security in MessageSight: transport level security, authentication and authorization.
MessageSight controls transport level security and authentication settings using a security profile associated with an endpoint to define the security operations applied to a message flow. Besides protecting the message content being transferred, configuring the appropriate transport level also helps to avoid sending authentication credentials that are not encrypted.
The authentication supports both local user stores and external Lightweight Directory Access Protocol (LDAP) servers, which gives users more flexibility in building up a security plan.
IBM MessageSight implements a policy-based authorization mechanism to allow clients to connect and use messaging actions (connection and messaging policies). A modern policy-based security approach is comprised of a cohesive set of different policies, which helps MessageSight to efficiently achieve security compliance.
Supporting Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols that only run signed, encrypted firmware images provided by IBM, encrypted flash storage media make MessageSight secure enough to be used for demilitarized zone (DMZ) environments and placed at the edge of an enterprise to interface with the external world.
4. Integration ability
As a full-featured messaging appliance, the ability to integrate with other systems is a key feature of IBM MessageSight.
By supporting the well-known messaging protocols MQTT (MQTT over Transmission Control Protocol/Internet Protocol [TCP/IP], MQTT over WebSockets) and Java Message Service (JMS), the appliance is well-suited with both publish/subscribe (topic-based) and point-to-point (queue-based) messaging models and can be widely integrated with other systems like Java-based systems, rich HTML5-based applications and so on.
MessageSight can extend and connect to WebSphere MQ infrastructures and supports connectivity to IBM Integration Bus by using MQ connectivity. Options appropriate for this are to use multiple queue managers to handle the messages or preserve the message order by using a single queue manager.
Built on the open MQTT, MessageSight supports MQTT client applications and libraries for a variety of platforms such as:
- MQTT over TCP/IP: MQTT C client; MQTT client for Java, Android and iOS
- JMS: IBM MessageSight JMS client
If you want to play around with it to see how it works from a developer's perspective, you can quickly get a version of MessageSight developer here. It usually takes less than one hour to have everything set up and running and to start experiencing the virtual appliance.
As part of the IBM MobileFirst portfolio, IBM MessageSight could play a very important role in helping organizations to transform, adapt and catch up to new businesses.
What are your thoughts on IBM MessageSight? Leave a comment below.