Java Platform, Micro Edition (Java ME) is a collection of technologies and specifications to create a platform that fits the requirements for mobile devices such as consumer products, embedded devices, and advanced mobile devices. It is a collection of technologies and specifications that can be combined to create a complete Java runtime environment specifically to fit the requirements of a particular device or market.
Java ME technology was originally created in order to deal with the constraints associated with building applications for small devices. For this purpose Sun defined the basics for Java ME technology 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;
Over time the Java ME platform has been divided into two base configurations, one to fit small mobile devices and one to be targeted towards more capable mobile devices like smart-phones and set top boxes.
The figure below represents an overview of the components of Java ME technology and how it relates to the other Java Technologies.
The configuration targeting resource-constraint devices like mobile phones is called the Connected Limited Device Configuration (CLDC). It is specifically designed to meet the needs for a Java platform to run on devices with limited memory, processing power and graphical capabilities. On top of the different configurations Java ME platform also specifies a number of profiles defining a set of higher-level APIs that further define the application. A widely adopted example is to combine the CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for mobile phones and other devices with similar capabilities.
With the configuration and profiles the actual application then resides, using the different available APIs in the profile. For a CLDC and MIDP environment, which is typically what most mobile devices today are implemented with, a MIDlet is then created. A MIDlet is the application created by a Java ME software developer, such as a game, a business application or other mobile features. These MIDlets can be written once and run on every available device conforming with the specifications for Java ME technology. The MIDlet can reside on a repository somewhere in the ecosystem and the end user can search for a specific type of application and having it downloaded over the air to his/her device.
To learn more about CLDC please visit java.sun.com/products/cldc/index.html.
The configuration targeted larger devices with more capacity and with a network-connection, like high-end personal digital assistants, and set-top boxes, is called the Connected Device Profile (CDC). The goals of the CDC configuration is to leverage technology skills and developer tools based on the Java Platform Standard Edition (SE), and to support the feature sets of a broad range of connected devices while fitting within their resource constraints.
Looking at the benefits the CDC configuration brings to the different groups in the value-chain the following can be said:
On the CDC configuration there are three different defined profiles:
For each of these profiles there are in turn a set of optional packages on which the actual application runs. To learn more about CDC please visit java.sun.com/technology/cdc/.
The Java ME platform covers everything from small limited devices with intermittent network connection to capable on-line mobile devices. The platform's design enables it to flexibly and efficiently support the need for services covering all mobility channels. Services are easily portable between different configurations and profiles, and the same service can be delivered via different channels.