What it means to code for the Internet of Things
The Internet of Things is becoming huge. Numbers increase exponentially. From two billion in 2006, over 200 billion “things” will be connected by 2020. That includes 1.9 billion home devices and 90% of all running cars. Over 82% of businesses will be impacted.
But with size comes complexity. Currently, a host of different IoT technologies and standards coexist, several of them vying for supremacy. There are already countless types of devices and solutions for managing connected things. As a result, programming for such a dynamic environment can be a challenge. Especially when looking to create a software ecosystem that integrates the wildly different elements. One dashboard to rule them all, that is.
At Tremend we have worked on developing tools that add connected devices to business operations. That has helped us define several overarching principles of “IoT programming”. So we asked our lead developers about specifics and challenges of programming for the Internet of Things.
Here are some of the things we learned.
- Software solutions for the Internet of Things need to be designed with the industry boom in mind.
- Scalability, that is. Make sure the app will work just as easily with 10 or with 1000 connected devices.
- Prepare for the risk of limited connectivity. Connected devices may suffer from low bandwidth or unstable connections. So, data handshaking and data validation should be taken very seriously when coding for IoT applications.
- Pay attention to the way you reconcile business logic with asynchronous communication.
- Real life situation: You send a command to a remote device to turn on the AC, but the device is offline. What happens when it comes back online ten hours later, in the evening? Should it carry out the command, or wait for a confirmation? Or ask for one?
Properly calibrate the management of data streams. Some devices send data every second, and 1000 such devices may end up sending huge amounts of information. Data storage and management needs to be calibrated according to each usage scenario.
Try to hack your own IoT software. Security is probably the greatest concern for the IoT industry. Compliance is about meeting standards and about extended testing. Nobody wants rogue code to hijack their devices or to connect to their own cloud service account.
Interoperability is the Holy Grail of IoT. Things will be easier when unified standards or solutions will help various devices easily communicate with each other. For the time being, creating a platform that integrates diverse connected products with the most popular enterprise systems and processes is a major undertaking. It involves the separate implementation of each important standard, whether it is Nabto, CoAP over LoRa, MQTT or another technology.
At Tremend we have been building IoT applications that range from device-level embedded software (including the first NB-IoT connection in Romania) to cloud integration, user and device management for enterprise level IoT uses.
Tremend also delivers full solutions ranging from mobile applications, online stores or complex banking software to embedded software for the automotive sector.
For over 11 years we have developed e-commerce platforms, enterprise solutions, embedded software, CRM, CMS, ERP integration and custom software. Over sixty million users benefit from solutions developed by our team of software engineers.
Contact us at firstname.lastname@example.org for support in developing your own software projects.