Introduction
Internet of Things (IoT) has been the latest buzz in IT circles in recent times. This disruptive technology is bringing digital, analog and mechanical devices under a single umbrella to simplify infrastructure management. IoT secures business processes, improves operational efficiencies, optimizes costs and allows for better decision making.
According to MarketsandMarkets, the market value of IoT reached $157.57 billion in 2017. This value is expected to touch $561.04 billion by 2022, growing at a CAGR of 26.9%. Juniper envisages that the total number of devices connected to the IoT networks would reach 42 billion by 2021. According to a McKinsey report, the IoT market that was valued at $900 million in 2015 is expected to touch $3.7 billion in 2020, growing at a CAGR of 32.6%.
An overview of Internet of Things
Internet of Things is a system or network of interconnected things, ranging from digital devices to mechanical devices and sensors, with an ability to transfer or exchange data without human or computer intervention. The transfer of data is done using unique identifiers. Simply put, IoT is a network of things. These things can be anything from an animal with a biochip, a human with a monitoring chip implant or a built-in sensor that monitors the temperature of a device.
In the tradition network setup, only computer devices were able to communicate with each other. With the advent of the IoT, computers, sensors and other mechanical devices are able to join any network and exchange data between them. Internet of Things is actually a combination of Microservices, wireless technologies and micro-electrical mechanical systems (MEMS). It was first mentioned by Kevin Ashton of MIT Auto-ID center in 1999. The advent of IoT has allowed people to analyze machine-generated data and better control business procedures.
How do IoT Systems work?
The IoT system comprises multiple devices or sensors, each assigned with a unique identifier. For instance, a logistics company runs a fleet of vehicles with a GPS system, a power plant uses a sensor to monitor the temperature of a boiler, a biochip implanted to an animal to check its temperature etc. The data collected from a device/sensor is automatically uploaded to the cloud or to a central location using a variety of communication protocols such as LAN, WAN, Wireless, cellular network, low-energy Bluetooth, NFC, RFID, ZigBee, Z-Wave etc.
The data that is stored in the cloud is processed using an analytics software. Based on the threshold values set by the user, the software monitors the data and automatically performs specified actions. For instance, if the boiler temperature is set to a threshold value and if it reaches that value, the software automatically turns off the boiler to avoid blasting. At the same time, it sends an alert notification to the concerned people. Using a centralized dashboard, you can remotely monitor and manage the IoT infrastructure with ease.
How do devices in an IoT network speak to each other?
When you send data from one device to another, the data is broken into smaller packets that travel through various routes to reach the destination. Once the data reaches the destination, the pieces of data are reassembled. An Internet Protocol is used for this messaging system. There are two types of internet protocols; Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). While UDP is quick and efficient, it doesn’t verify the receipt of the data. TCP actually checks if the data has arrived.
When it comes to the Internet of Things, there are multiple devices that vary in hardware, software, connectivity, application and messaging protocols. So, communication methods differ with each IoT system.
Common Communication Protocols for IoT systems
IoT Device to IoT Device
When you want an IoT device to communicate with another IoT device, Data Distribution Service (DDS) is a good option. It is a middleware protocol that uses the publish-subscribe model to receive and send data. DDS protocol eliminates complex network programming in distributed applications and offers highly scalable and reliable data connectivity. With message-centric middleware, developers have to write code for sending messages. However, data-centric middleware is aware of the data it stores. DDS is data-centric which
means it is best suited IoT networks, offering better control over data management. With a rich set of Quality of Service (QoS), DDS enables you to control how data is stored and distributed which makes it a better choice for industrial IoT as well as consumer IoT.
IoT Device to the Cloud
When you want to collect data from multiple IoT devices in a large network and send this data to the cloud for analysis, you need a system that can efficiently ingest massive amounts of data. For instance, a large shopping mall contains multiple HVAC devices. Each HVAC device reports metrics such as temperature, humidity, load, energy consumption, air quality and desired temperature etc., generating gigabytes of data in few seconds. To process, store, analyze and manage these massive datasets, you need a powerful messaging system. Apache Kafka is the answer.
Apache Kafka
Sensor devices cannot run the full stack of TCP protocols. So, they use an IoT gateway such as Zigbee or Z-Wave to aggregate datasets and route them to the corresponding data points. Apache Kafka clusters receive these datasets and send them to corresponding data points, for instance, metrics such as temperate and humidity needs real-time monitoring. So, they are sent to real-time processing solutions such as Apache Spark or Apache Storm. Similarly, metrics such as energy consumption and load are collected over time and analyzed using Hadoop data analytics systems. Apache Kafka acts as a publish-subscribe messaging system wherein massive amounts of datasets are ingested into the system.
MQTT
When you use multiple client apps that exchange real-time messages on various topics, Message Query Telemetry Transport (MQTT) is a good choice. Invented by Dr. Andy Stanford of IBM, MQTT is a lightweight protocol that uses the publish-subscribe messaging system. Working on top of the TCP/IP protocol, MQTT facilitates data communication even in low bandwidth networks. It uses the TCP/IP port 1883. Being a lightweight protocol, it allows devices with small code footprint to remotely send data to the cloud. MQTT is best suited for mobile devices wherein low power usage, small footprint and minimized data packets are involved.
CoAP
When you have resource-constrained devices such as wireless sensors nodes in the IoT network, Constrained Application Protocol (CoAP) is a good choice. This service-layer protocol enables constrained nodes to easily communicate with the regular nodes on the Internet. It can be easily integrated with the web as it easily translates to HTTP. CoAP is also used for sending SMS by communication networks.
RESTful API
As multiple devices are connected to an IoT network, developers should be able to access specific devices without knowing their protocols or intricacies. REST APIs enable you to expose them as interfaces so that you can write code for devices as you normally do for backend systems. RESTful APIs are best suited for IoT systems as they allow any device that can use HTTP to make its state available and standardize a way to manage data. So, developers can write a code wherein you check the state of a light bulb and turn it on/off. REST uses a unified architectural style which means a single app can use the same software written in different programming languages. With RESTful APIs, developers can focus on the application interactions instead on the applications themselves.
A common IoT platform is the need of the hour
As there are multiple devices involved in IoT networks, it is not easy to come up with a common protocol for device communication. There are two groups that are trying to create a common communication platform for IoT devices. The first one is Allseen Alliance that is backed by companies such as Qualcomm and Cisco. The second one is Open Interconnect Consortium that is backed by companies such as Intel and Samsung Electronics. Allseen Alliance released a software framework platform called the Alljoyn IoT platform recently. OIC came up with another framework platform called IoTivity. Looking at these efforts to implement standards in the IoT network, we can expect complete operability within the IoT in the days to come.