GRAALVM™ NATIVE IMAGE TECHNOLOGY
Java™ is the most successful programming language on the planet. It is mainstream on servers, classicdesktop applications and even widely used in the embedded space. A powerful eco-system exists around Java:thousands of programming libraries, support for a large variety of platforms and a huge crowd of skilleddevelopers. Java is constantly modernized and extended. As an open platform, directions of the onwardsdevelopment are governed by the Java Community Process (JCP) and the JCP Executive Board.
GraalVM is the “next level” technology that allows to compile Java code into native executables. Thistechnology drastically improves startup time, more deterministic runtime behavior and security. Theseadvantages are essential for many embedded applications.
MicroDoc GraalVM Embedded™
Our GraalVM™ licensing model is based on application domains (among other criteria). MicroDoc offers commercial GraalVM™ licenses for embedded applications only.
Embedded applications are systems where a specific hardware is bundled with specific software to serve a defined purpose, for example: ATMs, automotive infotainment and telematic units, handheld scanners, charging stations, industrial process automation devices etc.
The basic licensing model is one-time royalty per device. Each license for a GraalVM™ runtime is coupled to a specific device and the license is valid as long as the device exists. If the device is abandoned, the GraalVM™ runtime license becomes void. The cost for a license is determined by a metric that is ruled by the processing power of the device (performance-based pricing) – or in specific cases by the application implemented on top (application-based pricing). All licenses are granted by a one-to-one “Custom License Agreement (CLA)” between You (as a customer) and MicroDoc (as the supplier).
The embedded space is a complex environment with many different hardware architectures, operating systems and peripherals devices. Java™ is a highly standardized programming language and any product that claims to be compliant with the Java™ specification needs to be certified by passing a Technology Compatibility Kit (TCK/JCK) suite of tests. The process ensures that your application code will run properly on any certified Java™ virtual machine and can be compiled into a native executable.
If you are looking for GraalVM™ Native Image Technology that supports your embedded platform, we can help you.
Custom platforms and platform ports
If your systems are different from standard platforms, we can usually create a custom GraalVM which is specifically built for your device hardware and software. We create the GraalVM Native Image Technology for you based on the original Oracle code and we use your platform SDK consisting of C/C++ compiler, assembler, debugger etc. to build the GraalVM. We make sure that the VM created for you is fully compatible with your platform and we also certify the VM by executing the appropriate TCK/JCK suite of tests to ensure compliance with the Java™ specification.
We will need a hardware sample, either original device, original BSP or sufficiently compatibly development system, together with the toolchain for the platform in our lab to create and certify a custom runtime. Typically, some NRE cost are involved in the creation and certification of a custom runtime.
Licensing is again pretty straightforward: Step one: we agree on the details of your custom platform and the porting/certification cost, Step two: you provide us with a free copy of the device and software tools for the creation of the VM, Step three: we build and certify the runtime, Step 4: we deliver a master copy that allows you to compile your applications to native executables for your devices.
Custom GraalVMs are not necessarily for previously unsupported devices. We may also customize a MicroDoc Standard Reference Platform for application specific requirements. Typical customizations include:
- Reduced RAM and/or ROM footprint
- Improved startup time
- Integration of crypto hardware or native crypto stacks
- Application specific performance improvements
- Custom garbage collectors
Please contact our JVM specialist to discuss your Java needs in detail.
Licensing and Support
MicroDoc GraalVM Embedded is a commercial product. The technology is licensed to “device manufacturers” on a “per device” basis. The lifetime of the license is coupled to the lifetime of the individual device. A “device manufacturer” is a company that integrates the GraalVM Embedded product into a solution/product that contains hardware and/or software created or integrated by the company.
Pricing is based on the CPU performance class of your target device and the number of CPU cores on your system.
We offer “version locked licenses”, a model that is perfectly suited to embedded use-cases. The license is granted for the entire individual device lifetime and there are no recurring fees, just a one-time payment per device. Optional support plans for “version locked” licenses can include the delivery of stability or security fixes for the licensed product version and we offer custom SLAs tailored to your needs. Version upgrades to purchased licenses are not included in this model.
We also offer a model called “maintained license” which allows you to upgrade to the latest level of our product at any time, including devices that have already been deployed. “Maintained license” have a mandatory support plan with annual payments for all licensed devices.
Custom platform support plans and support for platform ports may also include NRE cost for new product releases (re-porting fees).
Long term support agreements can be provided for high volume projects or under special conditions.
It is also possible to create “application based” pricing for high volume projects which do not easily fit into the regular pricing schemes. Please contact us for details.
License contracts are freely negotiated between the parties. MicroDoc proposes to define a frame agreement to determine the license grant and the rights and duties of each party. For each platform and product, we propose to amend an attachment which defines the product specifics, prices, and other project specific terms including an optional support plan.
The content of this document is carefully edited and reflects the current terms of the licensing business. Anything in this document is subject to change without notice. Any binding agreement between a customer and MicroDoc requires a mutually signed contract in writing. MicroDoc does not accept any liability for erroneous or incomplete statements.
Java™ and Java related trademarks as well as GraalVM™ are trademarks or registered trademarks of Oracle Corporation and/or its affiliates.
The latest on Graal VM
MicroDoc is introducing GraalVM to the embedded world. It is the Swiss Army knife of virtual machines. It can accelerate the startup of applications like a car’s rear view camera with more than a factor of 10. Furthermore it hosts multiple programming languages at the same time, can reduce memory usage dramatically, and frees you from taking care of complex software infrastructure issues.
Cars are quickly converting into cyber centres on wheels, and buyers expect new features to be introduced just as fast as in their smartphones and consumer electronics. That puts tremendous pressure on car manufacturers. To relieve some of the pressure MicroDoc is now introducing GraalVM embedded, a virtual machine allowing for faster development cycles while retaining the stability and longevity required by the auto industry.
Would it be fair to say that the GraalVM is a step closer to the holy grail of polyglot programming? Yes, according to the virtual machine experts from MicroDoc. Here’s an overview of what the GraalVM can do for software developers.
For devices that are not powerful enough to run a full feature browser or Android system, MicroDoc is developing a user interface framework directly integrated with the Graal virtual machine. Why? Because the number of small devices is increasing dramatically, and although they may be small and low powered they still deserve an up-to-date user interface.
We illustrate how to build and debug the native image of a Java application, produced by MicroDoc GraalVM Embedded, and running on a remote embedded device. The debugging experience is illustrated inside the VSCode IDE. The embedded device runs Linux on an ARMv8-A processor (running in AArch64 mode), like a RaspberryPi 4 or 5.