Wednesday, April 11, 2012

MQTT support added to upcoming Apache ActiveMQ 5.6 release



The MQTT protocol is an extremely light weight publish/subscribe messaging transport - targeted at  machine to machine (mobile, industrial control, asset tracking etc) devices that came out of IBM in 1999. Its incorporated into Websphere MQ via the WebSphere MQ Telemetry product.

A key driver for MQTT is the explosion in connected devices -  its predicted to be in the range of 50 billion by the year 2020. ActiveMQ already provides connectivity for asset tracking, smart devices and vehicle tracking via its ability to be deployed as a small footprint broker and utilizing store and forward for connectivity across unreliable networks. But it makes sense to extend the protocols ActiveMQ already supports (like OpenWire and STOMP) to support MQTT too (ActiveMQ Apollo already supports MQTT - and its the release where AMQP is being developed).

There's also an excellent open source broker called Mosquitto, that implements MQTT, but ActiveMQ gives you the advantage of interoperability with JMS,STOMP or C/C++/ clients over open-wire. In addition to providing enterprise features (clustering, networks, etc) - and of course - enables integration with Apache Camel (either embedded inside ActiveMQ or via the ActiveMQ Component).

4 comments:

Andy Piper said...

This is goodness, and I'm pleased to see more MQTT server implementations (including, as you mention, the interop with other protocols). It will be nice when ActiveMQ / Apollo also provide the MQTT dynamic topic and bridging features that RSMB, WMQ and mosquitto all support so that these things can be federated.

Andy Piper said...

This is goodness, and I'm pleased to see more MQTT server implementations (including, as you mention, the interop with other protocols). It will be nice when ActiveMQ / Apollo also provide the MQTT dynamic topic and bridging features that RSMB, WMQ and mosquitto all support so that these things can be federated.

holla2040 said...

I started poking around today to enable mqtt functionality? couldn't find much by grepping confs. Can you point to an example? Thanks.

Jay Rajani said...

Hi i tried MQTT in activemq. For dynamic topic and bridging, it does well. Tried some hands on programs too.

For the application I am working on we need support for wild card filtering.

e.g.
Consider a GPS application sending location to server using MQTT.
truck 1 sends to "gps/truck/123/location" whereas truck 2 sends to "gps/truck/456/location"

The server subscribers to "gps/truck/+/location" so that it can receive messages from both the trucks.

I could not do that with Activemq but RSMB supports that.

I would be glad if you have any idea on wildcard filtering.