MQTT and DDS for M2M: Disparate Approaches to the Internet of Things 4

The Internet of Things (IoT) has been getting a lot of attention lately. The impetus behind some of this is the recent announcement of an OASIS initiative to standardize the IBM MQTT protocol as a means for “Things” to communicate. This New York Times blog post provides some background on MQTT and the announcement.

If MQTT gives you a sense of déjà vu, then you’re likely familiar with the Object Management Group (OMG) Data Distribution Service for Real-Time Systems (DDS) standard. Like MQTT, DDS was designed specifically to address machine-to-machine (M2M) communication, the foundation for the IoT.

However, while they may share common aspirations, MQTT and DDS are very different standards. Each is optimized around different assumptions about how the IoT will be composed:

  • MQTT is optimized for centralized data collection and analysis – connecting sensors and mobile devices to applications running in a data center.
  • DDS is optimized for distributed processing – directly connecting sensors, devices and applications to each other without any dependence on centralized IT infrastructure.

The differences between MQTT and DDS are manifest in their underlying architectures.

MQTT is hub-and-spoke. Sensors, devices and applications communicate through a message broker running on a server (or appliance) in a data center. All communication routes through this centralized broker.

DDS is decentralized. Things that produce data communicate directly with the applications and Things that consume that data. In other words, peer-to-peer. Data only flows to a data center if it’s required in the data center.

Because of their different architectures, MQTT and DDS are suited for different types of applications.

MQTT accommodates classic M2M applications, in which a client machine talks to a server machine, one-to-one. An example is remote asset monitoring, such as sensors that monitor oil wells and pipelines.

DDS is best when not all data processing is centralized. For example, consider a patient monitoring system. Sensor data (such as vital statistics) is needed bedside, at a nurse’s station, for electronic health records and even on a physician’s mobile device. It would be incredibly inefficient to route sensor data through a data center to get it to a co-located bedside monitor. It may even be technically untenable due to the aggregate bandwidth requirement.

So, while both MQTT and DDS provide standard communication foundations for the Internet of Things, their architectures lend themselves to very different deployment topologies. Choosing a centralized solution when your data flows are distributed could have a profound impact on your applications’ scalability and efficiency.


  1. Help me understand the analytics, data and intelligence that DDS alone provides? To me, it is a synapse but without a central nervous system to engage in (as you call, more hub & spoke), what benefit does it serve? I am not sure my bedside vitals remain relevant if they’re not measured,understood and actionable. Maybe that use-case threw me.


  2. MQTT and DDS provide the means to distribute data from sensors to the analytics applications that consume it (possibly via a database or historian). DDS is typically used where some analytics occurs at the edge.

    In the patient monitoring example, an application running on a bedside PC or dedicated systems may be looking for relatively simple events, such as a threshold being exceeded; it could also be doing analysis based on trends over the last few seconds or minutes. A centralized analytics application may be looking at trends over hours or days. This likely won’t be based on all of the raw data but either samples or pre-processed data.


  3. Pingback: Internet of Things: Collect Device Data with MQTT & Use Device Data with DDS | Blogs from RTI

  4. Pingback: Internet of Things Protocols- Postscapes | 机械鼠的博客

Submit a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s