Java™ Virtual Machines

30 Years of Experience

Java™ is the most successful programming language on the planet. It is mainstream on servers, classic desktop 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 skilled developers. Java is constantly modernized and extended. As an open platform, directions of the onwards development are governed by the Java Community Process (JCP) and the JCP Executive Board. The Java virtual machine (JVM) is at the core of all Java applications. It provides a protected and managed runtime environment to execute application code.  It takes care of automatic memory management and isolates application code from the underlying operating system and hardware architecture to ensure easy portability. The Java business model changed over time. As of today, there are basically two major offerings to license Java virtual machines: commercial license and open-source use. MicroDoc offers commercial licensing for embedded usecases for standard and non-standard platform as well es various engagement models to support open-source usage in the embedded space and also for server and desktop platforms.

Java™ Virtual Machines

30 Years of Experience

Java™ is the most successful programming language on the planet. It is mainstream on servers, classic desktop 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 skilled developers. Java is constantly modernized and extended. As an open platform, directions of the onwards development are governed by the Java Community Process (JCP) and the JCP Executive Board. The Java virtual machine (JVM) is at the core of all Java applications. It provides a protected and managed runtime environment to execute application code.  It takes care of automatic memory management and isolates application code from the underlying operating system and hardware architecture to ensure easy portability. The Java business model changed over time. As of today, there are basically two major offerings to license Java virtual machines: commercial license and open-source use. MicroDoc offers commercial licensing for embedded usecases for standard and non-standard platform as well es various engagement models to support open-source usage in the embedded space and also for server and desktop platforms.

Our experience in
quality and quantity

0
Licenses in the field

Commercial offering: Java Runtime Environment license for embedded applications

The Java licensing model is based on application domains (among other criteria). MicroDoc offers commercial Java licenses for embedded applications only. If you need Java for multi-purpose desktop apps or servers, please contact Oracle for terms and conditions.

Embedded applications are systems where a specific hardware is bundled with specific software to serve a defined purpose, for example: ATMs, automotive onboard units, handheld scanners, charging stations, industrial process automation devices etc.

The basic licensing model is one-time royalty per device. Each license for the JRE is coupled to a specific device and the license is valid as long as the device exists. If the device is abandoned, the JRE 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 of the JRE (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. If you are looking for a Java runtime environment that supports your embedded platform, we can help.

MicroDoc Standard Reference Platforms

MicroDoc created a set of pre-certified JREs for the following mainstream embedded platforms:

  • Raspberry Pi 4 Model B – Raspberry Pi OS (Linux – armhf)
  • Rock64 (Pine 64) – Arch Linux (Linux – AArch64)

Licensing of MicroDoc Standard Reference Platforms is straightforward. You select the platform, enter into the CLA with MicroDoc and you’ll get a master copy of the JRE which allows you to deploy the Java runtime with your device or application. MicroDoc Standard Reference Platforms are already certified and no NRE cost is involved. Please understand that warranty and support for MicroDoc Standard Reference Platforms are limited to the actually certified HW/SW devices.

Custom Java Runtime Environments

If your systems are different from our standard platforms, we can usually create a custom JRE which is specifically built for your devices hardware and software. We create the JVM for you based on the original closed source Oracle code and we use your platform SDK consisting of C/C++ compiler, assembler, debugger etc. to build the Java VM. 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 JRE. Typically, some NRE costs are involved in the creation and certification of a custom JRE.

Licensing is again pretty straightforward: Step one: we agree on the details of your custom platform and the porting/certification costs, 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 JRE, Step 4: we deliver a master copy that allows you to deploy the custom Java runtime with your device or application.

Custom JREs are not necessarily for previously unsupported devices. We may also customize a MicroDoc Standard Reference Platform for application specific requirements. Typical customization 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

MicroDoc already successfully ported the following Java Runtime Environments to the other platforms:

  • Java SE Embedded 8 for ARM (32bit and 64bit)
  • Java SE Embedded 8 for PowerPC
  • Java SE Embedded 8 for Windows Embedded Compact 7

Please contact our JVM specialist to discuss your Java needs in detail.

Support for commercial JREs

MicroDoc offers a variety of optional support models for MicroDoc Standard Reference Platform JREs and for Custom JREs. The most common models are:

Version Locked Support

Version locked support is a model which is preferred by many embedded customers – it is easy to handle, cost effective and matches the requirements of many embedded usecases.

When you license a JRE from MicroDoc, you get a specific version of the VM which is either certified for a MicroDoc Standard Reference Platform or specifically for your embedded platform (Custom JRE). The optional “Version Locked Support” package provides you with security and stability fixes for the licensed version for a defined timeframe which is called the “support term”. The support term can be as short as 6 month or can be longer than 8 years if necessary. The “Version Locked Support” does not include upgrades to newer product releases or additional features in the product.

In other words: You may use newer JRE releases whenever you need (by extending the CLA with MicroDoc to include newer product versions), but you cannot upgrade licenses in the field without relicensing the installed base.

Depending on your needs, “Version Locked Support” can be provided as an annual fixed price plan or can be priced based on the installed license volume. The contract can also be extended with a Service Level Agreement for quick response times and development support.

Continuous Maintenance

If you need a support agreement that allows you to upgrade installed JREs in the field to the latest available release, we can help with a “Continuous Maintenance” agreement. In addition to providing security- and stability fixes, you get the right to install the latest available release of the JRE to all devices, even when they are already deployed to a customer.

Pricing for “Continuous Maintenance” is always based on the total volume of licensed JREs and can be granted for terms between one and three years. A renewal after 3 years may be possible, depending on the further availability of releases of your JRE.

Continuous maintenance for “Custom JREs” implies that all new releases need to be ported and tested on your custom platform and may require additional NRE costs for each release

Please talk to your JVM specialist to learn more about our maintenance and support offering.

Independent Java Libraries

MicroDoc also creates independent functional libraries for the use with standard or custom JREs.

MicroDoc LEG

MicroDoc LEG is a lightweight graphics library especially for embedded platforms (especially in cases where large graphics systems such as JavaFX or Swing place too high demands on the available resources). LEG can run on devices without a GPU and only requires a framebuffer device as underlying graphics system.

Features of LEG:

  • Variety of widgets (button, bar, slider, chart, text area, keyboard, calendar, among others)
  • Support any kind of display and resolution: from small monochrome displays to Full HD monitors
  • Support for touch displays
  • Widgets appearance configurable (similar to CSS)
  • Animations
Disclaimer

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.

Contact us!