Then came the smart phone. This shift from personal PCs to small mobile devices such as iPhones forced modern application development to support multiple screen resolutions, and a need to operate off-line while remaining connected to cloud services. Our next shift is to the Internet of Things (IoT), once again giving a new meaning to modern application development. Now, applications need to be developed to run on different types of devices like thermostats, doorbells and small Bluetooth sensors. The application must be secure, cloud ready and able to perform predictive analysis using machine learning. Below are my thoughts on this latest shift in modern application development:
The IoT modern application development shift includes a multitude of devices that range from televisions to cameras, to refrigerators, to pretty much any device that is powered into an outlet. One of the more notable products in this space is the Amazon Echo which uses voice recognition as its main interface, and can provide control over your light switches, thermostats and even your music collection. Amazon Echo is an example of an IoT device which breaks away from the previous modern application development, as it uses voice as its interface, is always connected to the cloud, and can connect with other IoT devices. This changes everything about how we think of modern application development. No longer is it about supporting multiple device resolutions, but rather about what data can be captured via the latest IoT devices and how that data can be used to improve our lives. This means we need new software tools, new cloud services, new analysis software and new machine learning algorithms.
These applications do not always include fancy user interfaces, as they are often function specific. For example, an IoT device could capture changes in temperature on a farm, take soil sample readings or even capture images and video of the fields. This data can then be sent to cloud services where it can be analyzed and run through machine learning to produce an easy to understand update on the farm. The data from the disparate “things” needs to be collected in a common format for actionable insights. Of note, most of the “big data” being processed and collected today is machine-to-machine. Cloud services help to aggregate and display this data in ways humans can understand, analyze and take action on the insights delivered.
Cloud services are at the heart of IoT. Devices are built to perform a simple purpose and leave all complex user interfacing, analysis and thinking to the cloud. Cloud services such as the Azure IoT hub provide both the software tooling and service for a device to talk to the cloud and the device to connect to other devices. For example, in the manufacturing industry, IoT devices using the Azure IoT hub can be developed to monitor the production line and equipment use, which is then submitted to cloud service which then can be interpreted by human intelligence to predict equipment maintenance.
With this shift to IoT modern application development software is developed to capture data from a range of sensors, submit that data to cloud services and then process that data using analytics services such as Business Intelligence dashboards for timely and relevant role based information.
So what is the point of these IoT devices in our homes, cars and at work, capturing data and sending it to the cloud? Well that’s what machine learning is all about. We now need to develop algorithms that can learn based on data from the IoT. For example: home IoT devices using machine learning will learn the normal patterns in your house and only notify you when there is a disruption such as the lights staying on past a normal pattern or when you leave your windows open while you are away. Machine learning is one of the most important aspects of IoT and without it, all we would have is raw data in a cloud service with no meaningful way to utilize it.
blumshapiro is a Microsoft Advanced Analytics partner, with experience building modern IoT apps.