Thanks to the Internet of Things (IoT), smart thermostats can help lower the cost of cooling server rooms and will soon help utility companies prevent power failures by monitoring residential air conditioning volume. That’s just the tip of the iceberg in innovations that IoT, or machine-to-machine (M2M) communication, will deliver, according to JavaOne 2013 speaker Artyom Astafurov. IoT also presents software professionals many career opportunities in embedded software development, and new tools will lessen the learning curve for entering that field.
In his JavaOne session on building an IoT application, Astafurov described the DeviceHive open source project, which he co-founded. The resulting DeviceHive open source cloud-based machine-to-machine communication framework has been available on several development platforms, such as .NET, since November 2012. A few days before JavaOne 2013, a Java version was released.
DeviceHive, which has a cloud-based management portal, offers a communication layer, control software and multi-platform libraries to software developers and architects. "Now, when building an M2M solution, developers can focus on their strong skill set, developing functionality," said Astafurov, who has worked on Smart Energy Thermostat project, mentioned above, a fleet-tracking project which delivered device information on a 3G network to Google Maps and others.
In the past, the lack of a hardware-to-software communication framework created a big learning curve for software professionals that were moving from server side and Web application development to embedded, said Astafurov, who is also chief innovation officer for DataArt, a custom software development firm. Without that framework, enterprise-level embedded development required creating messaging protocol and communication libraries, as well as a cloud server. The learning curve has been exacerbated by the lack of an enterprise embedded development community that provides forums, tutorials and other learning. DeviceHive was created to provide the technology and knowledge base.
"We created an abstraction layer for those who don’t like embedded," said Astafurov. "It’s ready for enterprise-level development. Being open source, it's not proprietary to any device manufacturer."
The scope of current and upcoming connected-device projects is astounding, Astafurov said, citing future possibilities for projects that automate, monitor and generate instructions for home appliances, automobiles, manufacturing processes and even animals. Most important, he said, is that all the data generated by devices will be presented in formats that humans can analyze and act upon.