You are on page 1of 2


Embedded Systems are part of our lives. We can find them in several
applications, like home appliances, industrial plants, medical equipments,
communication devices, and automotive applications, among others.
Some embedded systems are generally located remotely from people that
service or operate them. In such cases, tasks like monitoring their operation,
checking their performance, collecting data, or upgrading the application
software can be a costly and time consuming process. Also, some
applications could get great benefits if they could remotely report their
status, get remote data to process, or even send remote messages to have
their administrator informed about some incidents.
Many applications require huge memory and processing power necessary to
run complex algorithms that generate certain results. Due to embedded
systems limited resources, those kinds of applications are restricted to only
certain microcontrollers' families. If we provided internet-connectivity to
those embedded systems, they could use the internet resources, so these
complex algorithms could be resolved remotely in external servers. In this
way, with few resources we could get great results using external
intelligence stored in Internet.
The demand for internet connected products is growing. Internet is seen as
the most cost effective way of remotely monitoring and controlling
embedded systems. As internet has grown, it has become the world's low
cost network, allowing data to be passed relatively cheaply across
continents. So, there is no doubt at all, that while the embedded system
applications are still growing, the internet connected embedded systems are
the next step, in the near future.

Protocol overview:
Devices must communicate with each other (D2D). Device data then must
be collected and sent to the server infrastructure (D2S). That server
infrastructure has to share device data (S2S), possibly providing it back to
devices, to analysis programs, or to people. From 30,000 feet, the protocols
can be described in this framework as:
MQTT: a protocol for collecting device data and communicating it to
servers (D2S)
XMPP: a protocol best for connecting devices to people, a special case of
the D2S pattern, since people are connected to the servers
DDS: a fast bus for integrating intelligent machines (D2D)
AMQP: a queuing system designed to connect servers to each other (S2S)
Each of these protocols is widely adopted. There are at least 10
implementations of each. Confusion is understandable, because the highlevel positioning is similar. In fact, all four claim to be real-time publishsubscribe IoT protocols that can connect thousands of devices. And its
true, depending on how you define real time, things, and devices.
Nonetheless, they are very different indeed! Todays Internet supports
hundreds of protocols. The IoT will support hundreds more. Its important
to understand the class of use that each of these important protocols