What is the Java Platform, Micro Edition (Java ME)?
The Java Platform, Micro Edition (Java ME) is the Java platform targeted at consumer electronics and embedded devices like wireless phones, pagers, personal digital assistants, camcorders, game devices, small retail payment terminals and smart cards.
What are the principal components of Java ME platform technology?
Java ME platform technology has three components which, taken together, form a compliant Java application environment:
A Configuration is a combination of a Java virtual machine and a set of application support APIs that are shared across a class of devices.
A Profile is a set of APIs (designed for a specific configuration) that address the needs of a narrower device category.
An Optional Package is a set of technology-specific APIs that extends the capabilities of a Java application environment.
A Java ME-compliant Java application environment requires both a configuration and a profile. Optional Packages provide device designers and other JCP participants with a standards-based extension framework.
How are Java ME standards defined?
Java technology standards are developed through the Java Community Process (JCP) by expert groups drawn from several industries. In this way, industry participants help shape Java ME standards targeted for their markets. Java ME technology is built around JSRs, reference implementations and technology compatibility kits.
What is a JSR?
Java technology standards are delivered as Java Specification Requests (JSRs). Expert groups propose, develop and ratify JSRs through the Java Community Process.
What is a reference implementation?
A reference implementation (RI) is a working demonstration of a JSR. RIs are developed and licensed by the JSR specification lead.
What is a technology compatibility kit?
A technology compatibility kit (TCK) is a test suite that verifies whether an implementation is compliant with a given JSR. TCKs are developed and licensed by the JSR specification lead.
Sales and Licensing
What is the licensing model for Java ME technology?
The CDC reference implementation source code is available free of charge for education and research purposes under the Sun Community Source License Agreement (SCSL). If you plan to ship a commercial product that leverages Sun's source code, or if you want to use one of the CDC technology compatibility kits developed by Sun, you must sign a commercial license agreement with Sun.
Does Sun license only reference implementations and TCKs?
Sun also licenses optimized implementations of various JSRs, as well as different optimized versions of CDC HotSpot Implementation.
How can I contact a Sun OEM software sales representative?
The Connected Device Configuration is a standards-based framework for building and delivering mobile applications that can be shared across a range of network-connected personal mobile devices. Typically, these devices include a 32-bit microprocessor/controller and require about 2 MB of RAM and 2.5 MB of ROM for the Java application environment.
What is CDC HotSpot Implementation?
The Connected Device Configuration HotSpot Implementation (formerly CVM) is a Java virtual machine that is highly optimized for resource-constrained devices like consumer products and embedded devices. CDC HotSpot Implementation combines full Java 2 compatibility with excellent performance, reliability and a low memory footprint.
How many Java virtual machine implementations does Sun have?
As the leader in Java virtual machine technology, Sun has developed several Java virtual machine implementations for different product scenarios and continues to perform research and development in this area. The following Java virtual machine technology products share the HotSpot brand:
Java HotSpot Server is designed for multi-processor enterprise server environments that require maximum program execution speed, 64-bit support and very large memory heaps.
Java HotSpot Client is designed for single-processor desktop environments that require faster start-up time and a smaller memory footprint.
CDC HotSpot Implementation (formerly CVM) is designed for resource-constrained devices like consumer products and embedded devices. Typically, these devices include a 32-bit microprocessor/controller and require about 2 MB of RAM and 2.5 MB of ROM for the Java application environment. CDC HotSpot Implementation has excellent performance and reliability for low-memory conditions. Its portability interfaces make it rapidly adaptable for the many different kinds of platforms in the consumer and embedded market.
CLDC HotSpot Implementation (formerly Monty) is designed for very small memory scenarios, typically 128 KB to 512 KB for the Java application environment. CLDC HotSpot Implementation also includes a portability interface for supporting alternate CPUs and operating systems.
For what platforms are implementations available?
Sun has developed optimized versions of CDC and CDC HotSpot Implementation for the ARM, PowerPC, MIPS and SPARC CPU architectures and the Linux and Solaris operating systems. The Personal Basis Profile reference implementation includes a device-driver based portability interface that includes a sample port based on X11. The Personal Profile reference implementation includes a sample port based on the GTK+ 1.2 toolkit. Other ports of Personal Profile include the QT application framework.
What optional packages are currently available for CDC?
CDC currently supports several optional packages, with more on the way. RMI Optional Package supports remote method invocation based on the Java ME java.rmi package. JDBC Optional Package provides a subset of the JDBC 3.0 API for accessing tabular data sources including spreadsheets, flat files and cross-DBMS connectivity to a wide range of SQL databases. Mobile Media Optional Package supports access to audio, video and other time-based multimedia services on resource-constrained devices and allows Java applications to access device-level multimedia services.
What is the difference between CDC and CLDC?
These two Java ME configurations are designed around different target device footprints. CLDC is designed for very small memory scenarios, typically 128 KB to 512 KB while CDC is designed for more moderate memory scenarios, typically 2 MB of RAM and 2.5 MB of ROM. As a result, the CLDC APIs are very compact and do not require Java SE compatibility. CDC is based on Java SE compatibility for both APIs and tools.
What is the migration path for the PersonalJava, EmbeddedJava and JavaOS technologies?
These technologies precede both Java SE and the JCP standards organization. Rather than retrofit them into the JCP process they are being replaced by new JCP standards. The migration path for these legacy technologies is with CDC and its profiles.
What are the differences between the CDC APIs and Java SE APIs?
Most of the core APIs are identical between CDC and J2SE 1.3.1. The main differences are in java.awt and the omission of javax.swing and other large packages like org.omg.*. See CDC API Comparison for a description of the relationship between the J2SE 1.3.1 APIs and the CDC APIs.
Can I migrate my code from Java SE to CDC?
Because CDC includes the core application support APIs from J2SE 1.3.1, migrating code from a Java SE application environment to a CDC application environment is straightforward.
What are the differences between the CDC APIs and CLDC APIs?
The CDC and CLDC APIs are very different. The CLDC APIs were designed around very small resource configurations and therefore do not require Java SE compatibility. The CDC APIs were designed around more moderate memory constraints and the need for Java SE compatibility for both APIs and tools.
Can I migrate my code from CLDC to CDC?
Yes. CDC is a superset of CLDC functionality.
Can I migrate my code from MIDP to CDC?
No. The MIDP GUI APIs are different. We are investigating a solution for this.
What are the graphical user-interface options for CDC?
The basic CDC profiles each offer different GUI options. Foundation Profile has no GUI support and can be used for "headless" device scenarios or for supporting a device with a proprietary GUI. Personal Basis Profile provides just enough AWT functionality to support lightweight components. Personal Profile supports full AWT and applet compatibility.
What is an xlet?
The xlet application programming model is very similar to the applet application programming model. Xlets are loaded into an xlet manager and controlled through a life cycle interface. This is similar to how an applet is loaded and run inside a browser. The main difference is that the xlet application programming model does not have implicit API requirements like java.applet which allows it to be used in a greater variety of product scenarios.
What is the security model for CDC?
CDC uses the same policy-based security model that Java SE provides. This gives an application fine-grained control over the access and use of its external interfaces.
Is CDC compatible with Java SE tools?
Yes. CDC supports Java SE-based compilers, debuggers and profilers.