Devices (or “things” in the term Internet of Things) are the more visible part of IoT. However, merely having devices that can measure something (e.g. temperature), perform some action (e.g. control a motor) and communicate using some protocol (e.g. MQTT/TCP/IP over IEEE 802.11g/n) cannot do much towards fulfilling real use cases. An example use case we may expect from IoT could be a smart building, where we can:
- monitor which light bulbs are currently turned on
- monitor temperature of different sections of the building at a given time
- control light bulbs, doors, window blinds, air conditioning, etc from a central location
- track movements inside the building and alert suspicious movements
- analyze electricity usage of the building over time
- automatically adjust lighting, window blinds, air conditioning, etc based on current conditions and historical data
There can be many more to add to this list, but this is enough to understand that we need more than devices to get a real benefit from IoT. Let’s think of devices we need for such smart building.. we need light bulbs, door locks, air conditioners, etc which can be controlled over a network. In addition we need light sensors, temperature sensors, motion sensors, etc which can also send measured data over a network. However, having those devices installed is not sufficient…
In a scenario such as smart building, we may have hundreds or thousands of sensors and actuators like motion sensors, light bulbs and door locks. Each of these are installed in various locations in different floors. Further, there is a possibility that some of these devices to stop working or malfunction. Therefore, as the first step we need a way to track all installed devices with their basic attributes such as location and current state.
Secondly, there are many devices which need to be controlled remotely, either by a human operator or as a result of a decision made by some software (e.g. if a suspicious movement is detected a system may decide to lock all doors and switch on lights in the relevant section of the building). Although individual devices provide remote control functionality, identifying devices in a certain area and sending appropriate commands to those devices has to be handled by a central system.
Then comes one of the most important aspects.. that is analytics. Each of our sensors will be publishing data such as temperature value, light level and motion data. If we consider data from a single device at a given time, it is not much useful. For example, a temperature sensor may send 25 C as data at 10.20 AM. What can be more useful is if we can collect temperature values from all sensors with their location over a considerable period of time. Such data opens various possibilities.. For example, we can plot temperature variations of different sections of the building over days of week, predict temperature of a given section in next 2 hours given the expected number of occupants or generate an alert if a motion was activated more often than its historical behavior. Therefore, collecting and storing possibly very large amounts of data from sensors, performing computations based on current and historical data, generating real time alerts and pumping relevant data to external systems has to be facilitated by IoT platforms.
Security is another critical area in IoT, which is difficult to implement without an IoT platform. If we consider our example of smart building, we have doors locks and light bulbs that can be controlled over a network. Building occupants would not be happy, if an unauthorized person can lock any door or switch off any light in the building. Similarly, it would be a problem if any unregistered device can publish (possibly false) temperature data, forcing air conditioners to increase heat. All these comes down to implementing proper device provisioning, authentication and access control mechanisms, which needs to be enforced through an IoT platform.
Above are some main areas which are hard or impossible to be handled by devices alone and where IoT platforms have to take over from devices. Some of these functions may be delegated to external systems by integrating IoT platforms with relevant systems. For example, if an organization already has an analytics software, it may be required to integrate it with IoT data. Similarly, we may want to use an existing identity and access management system to control device access and authenticate device owners. Therefore, IoT platforms have to play a wider role in IoT applications by providing critical functions for devices and users as well as by facilitating integration with existing IT infrastructure.