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 communication, will deliver, according to JavaOne 2013 speaker Artyom Astafurov. IoT also presents software professionals with many career opportunities in embedded software development, and new tools will lessen the learning curve for entering that field.
Now, when building a M2M solution, developers can focus on their strong skill set, developing functionality.
chief innovation officer, DataArt
In his JavaOne session on building Internet of Things applications, 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 Nov. 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 a M2M solution, developers can focus on their strong skill set, developing functionality," said Astafurov, who has worked on the Smart Energy Thermostat project (mentioned above), a fleet-tracking project that delivered device information on a 3G network to Google Maps and others.
In the past, the lack of a hardware-to-software communication framework has created a big learning curve for software professionals moving to embedded development from server-side and Web application development, said Astafurov, who is also chief innovation officer for DataArt, a custom software development firm. Without that framework, enterprise-level embedded development required creating a 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," Astafurov said. "It's ready for enterprise-level development. Being open source, it's not proprietary to any device manufacturer." Building good embedded applications requires a wide variety of skills. Astafurov recommends that embedded developers wear many hats rather than delving deep into the intricacies of any one language.
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 importantly, he said, all the data generated by devices will be presented in formats that humans can analyze and act upon.