Micro Runtime executes bytecodes in the JEFF format, bringing all dependencies and libraries into one file.
Eighteen years ago, a team called Real-Time Java Working Group (RTJWG) spun out the J Consortium to provide a real time implementation of Java that could be used in embedded applications. The ISO standard for the JEFF Java format was defined in 2002 and re-confirmed in 2013.
Now, Wind River is using JEFF on top of VxWorks to provide an optimised embedded Java runtime engine, a virtual machine (VM) called Micro Runtime. Using JEFF enables the deployment of Java applications specifically for embedded devices that have a smaller footprint requirement on resource-constrained devices. It also means that IoT system developers can tap into Java programming skills.
“IoT developers can use Micro Runtime to design applications bringing the benefits of Java to embedded development such as increased development efficiency and code portability, and over-the-air bug fixes saving money and creating new revenue opportunities,” said Dinyar Dastoor, Vice President and General Manager, Operating System Platforms & Internet of Things at Wind River.
Figure 1: Micro Runtime architecture. Micro Runtime executes bytecodes following the JEFF file format, providing benefits such as compact execution file formats, execution from storage memory instead of RAM and more efficient execution. Click here for larger image. (Source: Wind River).
Micro Runtime executes bytecodes in the JEFF format, bringing together all the dependencies and libraries into one file so that it can be used on any device running the VM. Using JEFF gives a reduction of 40-50% over the more common .JAR file format and allows execution from storage memory instead of RAM with more efficient execution to reduce the power consumption in the device. Micro Runtime includes key communication protocols (TCP, UDP, CoAP, and MQTT) and peripheral interfaces (GPIO, I2C, and SPIO), and has been optimised for memory/CPU-constrained systems.
“Micro Runtime provides an optimised embedded Java runtime engine enabling our customers to leverage the skills of millions of Java developers and also reuse applications to run on their existing VxWorks investment,” said Dastoor. “Micro Runtime also solves the typical Java support issue faced by small footprint and resource constrained embedded devices."
The portability is a key advantage, as well as over-the-air bug fixes that save money and create new revenue opportunities. This also allows companies to tap into the large ecosystem and knowledge base of the more than 9 million Java developers. It reduces project costs by investing in the Java application development once and then extending its use across multiple projects, important in the IoT-connected world.
Micro Runtime also provides all the security features of standard Java and adds advanced security support with the Bouncy Castle cryptographic APIs for Java. The VM was designed to be self-contained to allow proper sandboxing of applications and was developed using a strict security lifecycle development process.