Removing incompatibilities between the different embeddable versions of its Java environment are among the changes Oracle envisages as the company tries to make the language the natural choice for internet-of-things (IoT) applications.
“We are unifying the stack. Java ME and SE will be unified. Unifying the virtual machines and APIs to make it easier for developers to write to these platforms,” claimed Oracles’s vice president of Java Nandini Ramani in her keynote speech at ARM TechCon 2013 at the end of October. “We aim to make Java the lingua franca for embedded devices.”
In the late 1990s, Java creator Sun Microsystems created the Micro Edition (ME) as a special version of the Java runtime. Its programming interface formed a subset of the Standard Edition (SE) together with a number of dedicated class libraries intended for use on early featurephones and other embedded devices.
Although available in open-source form as PhoneME, Java ME has seen few official updates since the mid-2000s. Java ME employs version 1.3 of the Java runtime engine (JRE) whereas the latest Java SE uses version 1.7 and version 1.8 is due for release mid-March 2014. Oracle has released binaries of the current Java ME engine for ARM’s Cortex-M family while providing Java SE for the A-series applications processors.
Photo Oracle's Nandani Ramani at ARM TechCon 2013
COAP addition to Java
Nandini said ARM’s summer purchase of Sensinode would feed into Oracle’s own plans for Java: “We are going to integrate a lot of the Sensinode components with Oracle middleware. Several building blocks already exist to support this such as JavaCard and Java Embedded. It is a reliable, robust and secure technology and we have decades of experience in building middleware. We believe it’s the best foundation for the internet of things.
“We are working to make Mbed the core hardware abstraction layer for Java on Cortex-M CPUs. To aid this, we will make Java ME readily available for Mbed devices. You will download the software, pick up an Mbed device and you will be good to go”, Ramani claimed.
For higher-end applications, such as IoT gateways, Oracle will port the JDK for Linux to 64bit versions of ARM, expected to be available in the first half of 2015. Ramani said: “We are embracing the momentum around ARM 64bit. We will add features such as complex event processing.”
Java will ‘cut IoT costs’
Ramani argued that building around Java would allow companies to cut costs. “We are seeing a shift where value and cost are moving from hardware to software and expanding into the world of IT. Software development costs now dominate the product development lifecycle.”
Embracing more powerful hardware and with it heavier-weight software frameworks may be a more sensible choice, Ramani said: “Even if you increase BOM cost because it reduces your time to market and overall system cost. These devices are in the field for 15 years, so you have to design in features such as remote management and you have to think about longevity.
“Also you want to reuse the skill-set you have in-house. Nowadays, how many people do assembly programming versus native [C/C++] versus Java. And how do you reuse software across different markets?” said Ramani, pointing to the widespread use of Java in different sectors in enterprise IT.
“The question is how do you get it to scale? And make it simple and communicate to bring it down to the edge to get into the Cortex-Ms and other smaller devices? We aim to create an abstraction away from firewalls, gateways and other devices, and make it easy for vendors to write for any part of the IoT platform. It’s an end to end play where you want to be able to write something that knows what to do when at the edge of the network and knows what to do in the back-end IT systems.”
Ramani concluded: “If it’s good enough for financial houses we believe it’s definitely good for the internet of things.”