WeMakeIoT

Use of AMQP in IoT Gateway Development

Today IoT is used in vast domains and architecture, be it building automation, industrial solutions, power management and many more. The introduction of cloud platforms by technology giants such as Amazon and Microsoft allowed companies to create a cost effective global network which enhanced their business by many folds. This cloud based infrastructure helps in getting complete information about the working of a company and can even unearth insights out of confidential information that would help in taking valued business decisions.

These improvised decisions can lead to reducing cost of production, find new revenue generating mechanisms and of course improve customer satisfaction. The technology behind achieving this consists of lot of layers, with IoT gateway being one of them. IoT gateways basically act as a link between an onsite communications grid and cloud-based communications grid.

AMQP in IoT Gateway Development

With the arrival of sensor based data, there was a desperate need of new protocols to be used in communication process. Connectivity plays a crucial part in achieving reliable and secure data communication. The two major emerging protocols that help in executing real-time data transfer from the end device to the cloud are Message Queuing Telemetry Transport (MQTT) and Advanced Message Queuing Protocol (AMQP).  As name suggests, AMQP is an advanced open standard protocol that dictates the actions of the messaging provider and the client. It fundamentally connects the applications across different platforms and also can link to business process by feeding the right information to take better decisions.  AMQP as a protocol is open source and can be labelled as a reliable, secure and interoperable protocol. AMQP has the ability to support variety of messaging requests and patterns and comes with various message delivery guarantees.

RabbitMQ: The message queuing middleware

There would be a need of a message queuing middleware to implement AMQP; RabbitMQ is one such open source message broker. RabbitMQ basically collects and delivers messages from applications to and fro. Applications connect to the queue and transfer a particular message accordingly. A RabbitMQ stores message till another application connects to the same thereby taking a message from the queue and processing it correspondingly. This in turn balance the data load coming to the server. In one of our projects we had developed customized nodes for sending data to RabbitMQ via AMQP.

Such features make AMQP an automatic choice during IoT gateway development process, because IoT gateways need to be designed with keeping security and interoperability in mind. The management of IoT gateway becomes simpler with the use of AMQP protocol.  IoT cloud platforms can be connected via a number of protocols such as HTTPS, MQTT etc. but AMQP can be preferred over these two because of its capability to handle multi-vendor real time communication. Popular IoT gateways such as Azure IoT protocol gateway links the traffic to their IoT hub over AMQP 1.0. Please have a look at the “Buffered AMQP node in Node-RED” case study from our project portfolio