Java ME technology was originally created in order to address the constraints associated with building applications for small devices. For this purpose Java ME technology was defined to fit such a limited environment and make it possible to create Java applications running on small devices with limited memory, display and power capacity.
Java ME platform is a collection of technologies and specifications that can be combined to construct a complete Java runtime environment specifically to fit the requirements of a particular device or market. This offers a flexibility and co-existence for all the players in the eco-system to seamlessly cooperate to offer the most appealing experience for the end-user.
The Java ME technology is based on three elements:
A configuration provides the most basic set of libraries and virtual machine capabilities for a broad range of devices,
A profile is a set of APIs that support a narrower range of devices, and
An optional package is a set of technology-specific APIs
The sections below describe two products targeted for embedded devices and based on Java ME technology. The Oracle Java ME Embedded product is a brand new product based on the Java Connected Limited Device Configuration (CLDC) and targets small, resource-constrained embedded devices such as wireless modules for m2m, industrial control, smartgrid infrastructure, environmental sensors and tracking, and more. While the already existing Java ME based product in the market, Oracle Java ME Embedded Client, is based on the Java Connected Device Configuration (CDC) and targets more powerful, mid-range embedded devices such as e-book readers, Blu-ray Disc players, Voice Over IP telephones, televisions, set-top boxes, printers, residential gateways.
ORACLE JAVA ME EMBEDDED
Oracle Java ME Embedded is a Java runtime that leverages the core Java ME technologies deployed in billions of mobile devices around the world. The Java ME specifications are designed to be rich in functionality, portable to a wide range of devices, flexible, and secure while being very resource-efficient and keeping the demands on the underlying platform low.
Oracle Java ME Embedded builds on this proven technology to deliver a highly-optimized and complete client Java runtime stack optimized for resource-constrained, connected, and intelligent embedded systems. It provides a robust and flexible cross-platform application environment based on Java ME CLDC with dedicated embedded functionality for a broad range of use cases. Oracle Java ME Embedded is supported by a range of best-in-class developer tools, such as the Java ME SDK, as well as NetBeans and Eclipse plugins. These tools offer system designers and developers a rich and productive environment to create sophisticated small embedded solutions leveraging the benefits of the Java language, runtime, and ecosystem while meeting while meeting tight system resource targets. The figure below illustrates the product stack-
Example Use Case
Oracle Java ME Embedded targets a wide range of embedded platforms and use cases such as:
Smart meters/smart sensors
Environmental remote monitors
Home automation devices
Connected vending machines
And more, including the general M2M (machine-to-machine) space
Complete solution for a highly-optimized client Java runtime stack optimized for resource-constrained, connected, and intelligent embedded devices
Providing a robust and flexible, cross-platform application environment for small embedded solutions
Very low footprint and CPU requirements, scaling from micro-controller class systems up to mid-range embedded devices
Fully compliant with CLDC 1.1 (JSR 139) and IMP-NG (JSR-228) plus support for a number of additional optional JSRs: File I/O API’s (JSR-75), Wireless Messaging API’s (JSR-120), Web Services (JSR-172), Security and Trust Services subset (JSR-177), Location API’s (JSR-179), XML API’s (JSR-280)
Dedicated embedded functionality for developing sophisticated embedded solutions, including remote application management and monitoring, remote system configuration, support for robust 24x7 operation, and direct access to peripheral I/O from Java
Highly portable and extensible system design to meet the needs of diverse embedded requirements, providing a foundation which enables downstream specialization, enhancements, and productization for specific target markets and use cases
Supported by best-in class tools: Java ME SDK and plugins for NetBeans and Eclipse – including support for device emulation and remote on-device debugging
Backed by Oracle’s expertise in proven and widely commercially deployed Java ME technology
By using Java technologies for embedded products, device manufacturers, system integrators, and developers can build more functional, robust, secure, and long-lived solutions with a reduced time-to-market window, providing better, more cost efficient embedded solutions.
For developing Java applications for small embedded devices, the Java ME SDK provides a complete and free set of tools, enabling developers to write, compile, deploy, and test their applications. For more information on the Java ME SDK, please click here
ORACLE JAVA ME EMBEDDED CLIENT
The Oracle Java Micro Edition (ME) Embedded Client is an application runtime that builds on the popular Java ME specification and has been designed for resource-constrained devices like e-book readers, Blu-ray Disc players, Voice Over IP telephones, televisions, set-top boxes, printers, residential gateways and more. Java ME is the best technology for resource constrained embedded devices and has seen widespread deployment across mobile handsets and digital television devices. Java ME provides device manufacturers with the full power of the Java language, a comprehensive set of APIs, industry-leading security and access to more developers than any other platform. Through its compatibility with the Java Platform Standard Edition (Java SE), the Oracle Java Micro Edition Embedded Client inherits familiar Java features and benefits from a rich development ecosystem that enables Java developers to hit the ground running. An extensive range of tools, such as the NetBeans IDE, provides sophisticated power for creating and debugging applications. At the same time, the Oracle Java Micro Edition Embedded Client capitalizes on its Java ME heritage by being specially designed for speed and efficiency on devices with limited processing power and memory.
High performance runtime designed for resource constrained devices
Fully compliant for use with global standards: GEM MHP, BD-J, tru2way, OSGi, Ginga-J
Develop using a range of popular tools including Eclipse and NetBeans across Windows, Linux and Mac OS X
Enables advanced applications and system software: scalable and robust in heavily threaded scenarios
Comprehensive support for key Java specifications (JSRs)
Pre-optimized runtimes enable faster time to market on supported platforms
Just-In-Time (JIT) Compiler - Space efficient, Fast, Reliable, Portable and Configurable
Ahead of Time Compilation (AOT) - Fast VM Startup Time
Interpreter - Optimal Speed, Uses GCC extensions
Runtime - Fast startup and shutdown, no Resource leaks, small class footprint for both dynamically loaded and preloaded classes, Native and software floating point support.
Class Preloading (Romization) - Space saving, Data sharing, In-place execution from ROM, Faster startup time, Avoids fragmentation
Memory Management - Heap management, Fast generational garbage collector
Thread Support - Fast locking, Scalable and robust in heavily threaded scenarios, C stack safety for tight memory conditions, Porting layer supports native threads
Process-Based Multi Application Support - Leverage OS copy on fork capability, Secure and efficient
Standard JVM Interfaces - Policy-based security model, Java Native Interface (JNI) method support, JVMTI for debugging and profiling support