IoT is one of the most popular buzz words in the world of technology these days. It is basically an ecosystem of connected physical objects accessible via internet, viz. Heart rate monitor, automobile pod, electrical switches, hope appliances like washing machines and air conditioners and many more. Since this area of technology is at a very elementary stage, it is not without its pitfalls. In this blog, we will discuss some of those and possible resolutions or work-arounds to overcome them.
Security and Privacy:
Embedded platforms are pretty low in configurations giving rise to possible performance issues if additional processing is taken up for security. However security is a prime concern for personal/critical information such health data, automation triggers etc. There are two aspects of security here. One is if the data is sent directly sent from the embedded device to web. Another is if data is sent over Bluetooth connection over to mobile device. In the 1st case if the device is not competent enough to handle the security processing load for sending data over the web, we can take the 2nd route. Instead of sending data directly to the web, send it to a mobile device and from there direct it to the web. However in the 2nd case it is again important to have a secured connection over Bluetooth/Wifi to send data to the Mobile app. An unsecured connection over Bluetooth/Wifi opens up room for hackers to get hold of the data being transmitted. However it is imperative to program this connection security on the embedded devices with high accuracy. It has been observed that quite a few IoT devices fail to have consistent connectivity with the mobile device i.e. fail quite a few times when establishing a secured connection, which is not the case with an unsecured connection. If for any reason this issue persists it would be safe to send the data in an encrypted format.
Some of the data collected by IoT devices is sensitive and is protected by legal provisions e.g. HIPPA. Such data should not be accessible or should be wiped clean in case of possible hack attacks, since it pertains to the health of a person. IoT devices and their corresponding apps should not be storing health data against any personal identity e.g. the name of the person in US, as per HIPPA provisions.
This is one of the biggest challenges in IoT. Since IoT is not matured yet, there are no established communication standards for interaction between devices and apps or between devices themselves. Existing Bluetooth/wifi profiles are leveraged to fill this gap. Since these standards are specific to a hardware technology, it poses as a barrier. Neither are these standards optimized for low configuration devices. As a result there are unexpected behaviors during interaction between the app and the device using these standards e.g. the data is transmitted in extremely low chunk sizes, as low as 1 byte per chuck. For the data to be interpreted properly it has to be sent in a minimum set of bytes e.g. each chunk sent from the device should have enough bytes to handle the protocol standard e.g. SPP has 8 bytes in a command. So each chunk of data transmitted to the app should have atleast 8 bytes and further more the size of the future chunks should be in multiples of 8. This will ensure that there is no additional processing on the app side to handle this pitfall. In the absence of this implementation on the device side, the code on app side will be extremely complex and will be very difficult to maintain. Better still is to come up with a standard that will be tuned to the needs of low configuration IoT devices. This way there can be a hardware independent standard that can not only communicate with apps but also across IoT devices with little impact on the processing of the device.
It is very important to have good hardware quality for the complete application to work well. The quality and durability of sensors play a crucial role in mission critical products such as stethoscopes e.g. if the ecg/heartrate sensors are of average quality, accuracy of data might be an issue which might create problems in getting approval from the respective medical authority on the product.
Isolating a Problem:
If there are any data or it’s transfer related issues, it is really difficult to isolate it. To a large extent using debugging tools it is possible to identify if a problem is at the mobile end, since these platforms have matured over the last decade and have solid debugging tools to get down to the minutest details. However if it is identified that the issue is not at the mobile end, then it gets really difficult to troubleshoot the issue since most of the IoT devices don’t have well established debugging tools, as . In fact many of these don’t have any debugging tools at all and rely heavily on the mobile side for isolation. So at times the IoT developers need to do assumption based coding, which is a pretty high risk, since it might lead to additional production cycles, resulting in cost overhead and delays. It is very important to have some sort of simulators that will help bridge this gap. May be as this field matures over the next few years, the industry might move in this direction. But as of today this is a huge challenge.
As with any new technology, people are cautious about adapting to these products. Since the technology is in a nascent stage, there are no mass productions resulting in higher costs and there by reducing the mass appeal. People will accept these forays only when they see a ROI. Since a large number of IoT products focus on consumer market, it only adds to their comfort and no tangible ROI as of now. There is definitely scope to actually help consumers reduce costs in certain areas, by running analytics on top of the data gathered and provide insights into the usage pattern, thereby letting the consumer know what are the highest usages and how he can reduce those. However this phase is still picking up and will take sometime to mature. Also the absence of mass production affects the cost benefit ratio. May be this will change in time with a change in the mindset of the masses. However these products have a great appeal in medical, auto and the like industries where in, not only is there addition to comfort, but there is actual cost benefit and critical value add e.g. A car pod that can capture all the riding patterns such as quick swerving, breaking and acceleration. With this data parents can get to know how their kids are handling their cars. Add a mobile app to it that will automatically enter a kiosk mode once the car’s speed pickup and you have added safety for the driver. Even car rental companies can use such platforms to check the drive quality of their drivers and can have sticks and carrots for them. If the overall drive quality is great, this information can be used to bargain with insurance providers, since it proves reliability of the drivers and thereby more safety, which should help reduce insurance costs and vice-versa. This way, the good drivers will get rewarded with the insurance company losing it business. It will also lead bad drivers to improve themselves, reducing the possibility of accidents and creating a win-win situation for both the rental and the insurance companies.
The very nature of IoT products make them vulnerable to configuration problems. Most of these products are pretty small in size. As a result having high configurations is difficult. Also the cost of high configurations poses a bottleneck. As a result resource intensive activities such a performing computations, supporting multiple connections etc. cannot be easily performed. This however can be offloaded to mobile devices, if these is support to connect to them. Over a period of evolution this area will mature to support high configurations at low costs. But till then it poses a bottleneck.
At the moment a host of connectivity standards are being used in IoT viz. ZigBee, Z-Wave, Wifi, Bluetooth and BLE. The standard for these protocols keeps changing rapidly and some of these might be obsolete in the coming years. However consumer durables such as TVs, fridges, air-conditioners etc. have a much bigger lifespan and should be able to function even if the protocols and standards go out of fashion.
All of the above factors pose as major challenges in IoT as of date. Some of these will disappear as IoT evolves over a period of time, some will continue to exist and newer challenges might come in. However one important move to be made in this direction is to have a standard platform which can be used by vendors for making IoT devices. That way vendors and developers can focus more on the functionality and the rest of the things are taken care of by the platform.