Connected Limited Device Configuration (CLDC); JSR 30, JSR 139 Overview

Contents
 
Introduction
The CLDC Configuration
Profiles
Optional Packages
Objectives
Target Devices
Java Specification Requests for CLDC
Sun's Optimized CLDC Implementation
 
Introduction
The Connected Limited Device Configuration (CLDC) is a fundamental part of the architecture of the Java 2 Platform, Micro Edition (J2ME). J2ME technology is delivered in API bundles called configurations, profiles, and optional packages. A J2ME application environment includes both a configuration like CLDC and a profile like the Mobile Information Device Profile (MIDP). In addition, optional packages provide capability in specific areas of functionality, such as wireless messaging and multimedia capture and playback. The ability to choose from among the various bundles enables product designers and developers to match software capabilities with hardware capabilities very closely. They can use APIs that give them easy access to the components a particular kind of device actually has, without the overhead of APIs designed for capabilities the device doesn't support.
 
The CLDC Configuration
A configuration provides the most basic set of libraries and virtual-machine features that must be present in each implementation of a J2ME environment. When coupled with one or more profiles, the Connected Limited Device Configuration gives developers a solid Java platform for creating applications for consumer and embedded devices.
 
Profiles
A profile is a set of standard APIs that support a narrower category of devices within the framework of a chosen configuration. A specific profile is combined with a configuration like CLDC to provide a complete Java application environment for the target device class. MIDP is a profile supported by CLDC. Together, they provide a rich run-time environment.
 
Optional Packages
An optional package is a set of technology-specific APIs that extends the functionality of a Java application environment. CLDC supports a number of optional packages that allow product designers to balance the functionality needs of a design against its resource constraints. CLDC-based optional packages include the Wireless Messaging API (WMA) and the Mobile Media API (MMAPI).
 
Objectives
The goal of the CLDC specification is to standardize a highly portable, minimum-footprint Java application development platform for resource-constrained, network-connected devices. It is developed through the Java Community Process (JCP), which comprises more than 500 members, including mobile operators and service providers, wireless handset manufacturers, and vendors of mobile software. CLDC has been designed with the following goals in view:
  • Reduce footprint requirements to levels suitable for mass-market deployment
  • Facilitate application portability by abstracting native system operations into standardized APIs
  • Extend device functionality by allowing dynamic downloading of applications into the device
 
Target Devices
CLDC is designed to bring the many advantages of the Java platform to network-connected devices that have limited processing power, memory, and graphical capability, such as cellular phones, pagers, low-end personal organizers, and machine-to-machine equipment. In addition, CLDC can also be deployed in home appliances, TV set-top boxes, and point-of-sale terminals. Target devices typically have the following capabilities:
  • A 16-bit or 32-bit processor with a clock speed of 16MHz or higher
  • At least 160 KB of non-volatile memory allocated for the CLDC libraries and virtual machine
  • At least 192 KB of total memory available for the Java platform
  • Low power consumption, often operating on battery power
  • Connectivity to some kind of network, often with a wireless, intermittent connection and limited bandwidth
 
Java Specification Requests for CLDC

The JCP embodies the development of each innovation or enhancement of Java technology in a Java Specification Request (JSR). The JSRs for CLDC include the following:

Specifications

  • CLDC Version 1.1 (JSR 139) is a backward-compatible revision of the CLDC 1.0 specification, with the same target, small devices with limited resources, and the same key objective, maintaining a tight footprint. Its many additions and enhancements include support for floating-point math and weak references.
  • CLDC Version 1.0 (JSR 30) is the first release of the CLDC specification, which provides a compact virtual machine and basic libraries for resource-constrained devices.

Technology Compatibility Kits

  • The CLDC TCKs are suites of tests, tools, and documentation that determine whether or not a product implementation complies with the CLDC specification. They can be licensed directly from Sun. For information about licensing terms, please contact Sun's Java Partner Engineering organization

Reference Implementations

  • The CLDC 1.1 RI is based on the CLDC 1.1 specification, provided for device manufacturers who want to port this J2ME configuration to their platforms.
  • The CLDC 1.0.4 RI is an earlier version of the CLDC reference implementation, based on the CLDC 1.0 specification, with the same target audience.
  • The CLDC RI is based on the K Virtual Machine (KVM) and provides a proof-of-concept implementation of the specification. This implementation is available through the Sun Community Source License Program. For more information regarding the commercial deployment of products based on the RI, please contact Sun's Java Partner Engineering organization.
 
Sun's Optimized CLDC Implementation
For commercial deployments on target devices, Sun offers an optimized virtual machine called the CLDC HotSpot Implementation. Its focus is on optimizing performance and minimizing footprint. Not only does CLDC HI comply with the CLDC specification, it includes a number of patented features that speed application execution and use resources more efficiently. It is supported on a number of platforms, which allows manufacturers to reduce time-to-market significantly. For more information, please refer to the CLDC HotSpot Implementation White Paper.

Left Curve
Java SDKs and Tools
Right Curve
Left Curve
Java Resources
Right Curve
JavaOne Banner
Java 8 banner (182)