Building reliable IoT applications using MQTT

As the IoT becomes a reality, the MQTT protocol is gaining in importance. The small, low bandwidth protocol supports sporadic messages from thousands of devices which publish information to a central broker. This makes it suitable for remotely monitored applications.

An elevator company, for example, could fit sensors for temperature, vibration, speed, door monitoring or position, and aggregate the data received from thousands of elevators. It could then apply machine learning techniques to the database of information collected to predict failures before they happen and to improve the cost and efficiency of future technology.

The potential benefits are huge, but an application needs to be built on a platform of high quality, reliable software to ensure optimal security and reliability.

MQTT and security
HCC provides a verifiable TLS module to use with MQTT when a secure connection is required. Encryption is handled by TLS independently of MQTT and user name and password within a packet will allow clients to authenticate themselves with the broker. When MQTT is run over a TLS connection, both the client and the server can authenticate each other using X.509 certificates.

Although there are many options for security software, most security breakdowns are caused by poor quality security implementations and few caused by algorithm hacking. Software quality is a critical component of any IoT security strategy and HCC provides evidence of compliance with strict MISRA coding rules to minimise risk.

TCP/IPv4, IPv6, encryption, TLS/SSL, IPSec/IKE
The key to a successful embedded application is to use high quality software that is verifiably developed and ensures a stable, low-risk development platform.

HCC’s TCP/IP stack was developed with a rigorous approach to quality using a subset of the ‘C’ language. The approach adheres to the MISRA-C:2004 standard and was validated using advanced verification tools.

All software is provided with optimised Ethernet drivers and will integrate with any RTOS. The implementation was designed for high performance on a microcontroller. There are no unnecessary copies; static memory management and dedicated memory areas and cache are fully exploited. HCC’s networking solution provides a range of protocols – as well as support for IPv4 and IPv6 – providing flexibility and long-term network compatibility.

All storage and communications products are written using modern coding techniques and are portable and target independent. This means they can be used to upgrade almost any processor, flash or RTOS to be fail-safe, reliable and secure.

All software comes with highly efficient abstractions and interfaces that can be changed to ensure it is a long-term investment.

With V-model design, most software components can be applied to areas where reliability and certification standards are high, such as medical,

transport, industrial, aerospace and power generation.