Blogs

Java is the key to software development in the Internet of Things

February 24, 2016

Posted by: George Malim

Andrew Pockson, Anglia Components

With a massive developer base, targeted development kits and application enablement platforms, Java is making it easier than ever to develop and prototype robust IoT applications, writes Andrew Pockson, the divisional marketing manager for semiconductors at Anglia Components.

There is a common misconception that Java is an operating system. It is much more than that: a programming language and a runtime environment too.

It has become the most pervasive open standards programming language in the world, running on billions of devices and machines ranging from mobile phones to enterprise servers to supercomputers. Platform independence and the ability to distribute bytecode over the web make Java the ideal choice for IoT applications. Besides its huge installed base, a further advantage is Java’s rich pool of Java developers – around 10million of them at the last count. This is just as well, since according to a recent report (Vision Mobile, June 2014) around 4.5million developers will be working on IoT projects by 2020. Many of the newcomers to IoT will be using Java.

But it is Java’s ‘write once, run anywhere’ flexibility that delivers the code portability, increased developer productivity and reduced overall cost of development for IoT.

Java usage cases
A typical IoT thing consists of a sensor or actuator, some processing functions and connection to the Internet. This could be implemented with no Java using a relatively powerful microcontroller and memory to store data and code. More usually, a mixed solution is one based on a small controller with memory running Java virtual machines to implement communications protocols, implement security and provide simple and secure application management. It is also possible to implement the entire solution in Java, with the sensor/actuator being the only element in the hardware bill of materials.

Java modules simplify the development of IoT devices on the edge by providing essential functions in Embedded Java. Modules like the EHSx series from Gemalto run Java virtual machine on an ARM11 processor. Everything is shared as part of a single ARM core.

Enabling applications
Application enablement platforms offer Java developers a low risk solution for those about to embark new IoT applications based on Java modules. Platforms vastly reduce the risk, complexity and development time of an IoT system – from the sensor interface to the back end user application. They centre on pre-defined building blocks to address the challenge of edge design, supported by a back-end data management cloud with admin tools that address any IT infrastructure issues. Sensor Logic’s architecture is based on an agent running on board the edge hardware, which manages the sensor interface, communications device, the protocols and data filtering. A back end cloud stores the data, provides login and administrative portals for raw data management. Its application programming interfaces provide hooks into customised web based applications or market-leading enterprise tools.

Expandable boards accelerate development
Java development for modules and application enablement platforms is simplified through the availability not only of complete software development suites, but also of extendable development boards based on Java module hardware. For example, the Gemalto Concept board is based on a global 2G/3G wireless module with Java™ ME embedded. Powered via USB or battery, it features an integrated five-band antenna, on-board SIM card holder, eight GPIO lines with level shifters and serial I/O and USB interfaces, together with user buttons and LEDs.

Development board hardware can be extended further by means of Arduino ‘Shields’ where developers can simply add sensors, displays or GPS functionality through a standard physical interface.

Free-of-charge software developments tools for the popular Eclipse and Netbeans integrated development environments are supplemented by professional tutorials, sample code and documentation available from module vendors as well as the wider Java community.

In this way, the power of Java can be harnessed to build IoT demonstrators quickly and to test new virtual machine performance. Concepts can be tried out with a small investment in hardware and at minimal risk. Code reusability and secure OTAP updates means shorter time from concept to production, with rapid deployment in the field and simple, secure, upgrades in the future.