January 2017 |
[an error occurred while processing this directive] |
Two Effective IoT Protocols and
How They Work Addressing this challenge is essential as more than 50% of the value that IoT systems might unveil is currently locked by a lack of interoperability. |
Kudzai Manditereza Systems Architect & Founder, Intelligent Systems Designer, Avid Reader |
Articles |
Interviews |
Releases |
New Products |
Reviews |
[an error occurred while processing this directive] |
Editorial |
Events |
Sponsors |
Site Search |
Newsletters |
[an error occurred while processing this directive] |
Archives |
Past Issues |
Home |
Editors |
eDucation |
[an error occurred while processing this directive] |
Training |
Links |
Software |
Subscribe |
[an error occurred while processing this directive] |
Interoperability
is the 'herding cats' problem of the Internet of Things. Devices
or equipment that are not made by the same manufacturer cannot easily
integrate, and information cannot be pushed/pulled from devices using
same interfaces with ease e.t.c. Addressing this challenge is essential
as more than 50% of the value that IoT systems might unveil is
currently locked by a lack of interoperability. However, standards are
emerging to solve these different levels of interoperability. In this
post, I will highlight two of them and briefly describe how they work.
AMQP
Advanced Message Queuing Protocol (AMQP) is an open standard designed
to allow development of message oriented applications (middleware) in
brokering of messages between different processes, applications or
unrelated systems that need to talk to each other. Brokers may be used
to receive, queue route and deliver messages or for peer to peer
communications.
AMQP runs over TCP/IP, uses small packet frames and its advantage, as
far as IoT is concerned, is that the message size can be negotiated.
This is important particularly for IoT devices where memory is
constrained.
Below is a diagram showing AMQP assembly and the terminology used. The
producer and or consumer can be anything; it could be a device or a
process, and a broker could be running AMQP broker software, e.g., RabbitMQ an open-source implementation of AMQP. The message content flowing from the
producer to the consumer would be a method name and some parameters and
the answer going back would be the result of evaluating a function.
A producer can communicate with more than one consumer, and there can be
more than one producer/consumer. AMQP enforces decoupling in such a way
that the producer and the consumer don't need to know anything about
each other, can be in different geographical locations and systems
don’t need to be available simultaneously as messages can be stored and
retrieved later.
MQTT
MQ Telemetry Transport is a lightweight, open and simple
publish/subscribe messaging transport protocol. This protocol is so
lightweight that it can be supported by some of the smallest measuring
and monitoring devices, and it is useful for connections with remote
locations over unreliable networks such as in Machine to Machine and
IoT. It runs over TCP/IP, and every message is a discrete chunk of data.
Every message is published to a topic, which is technically a message
queue. A client can be a publisher or a subscriber publishing a message
on a topic or subscribing to a specific topic. MQTT differs from the
traditional client-server model in that there is no direct link between
endpoints. Instead a broker known by both publisher and subscriber
manages subscriptions to topics and relays messages to those subscribed
to it.
MQTT works with large networks of small devices that need to be
monitored and controlled from a back-end server as opposed to
multi-casting and device-to-device transfers. This model allows
one-to-one and one-to-many distribution and the clients don't need to
know anything about each other thereby guaranteeing decoupling and
asynchronous communication. An example of an open source MQTT
implementation is Mosquitto.
There is quite a number of IoT protocols that are emerging. I'd love to
hear about other protocols/standards that you find useful and any
thoughts on this topic. Contact me here.
[an error occurred while processing this directive]
[Click Banner To Learn More]
[Home Page] [The Automator] [About] [Subscribe ] [Contact Us]