Skip Headers
Oracle® Java Micro Edition Connected Device Configuration Runtime Guide
Release 1.1.2 for Oracle Java Micro Edition Embedded Client
  Go To Table Of Contents


1 Introduction

A Java runtime environment is an implementation of Java technology for a specific target platform. It performs a middleware function with features common to a native application: it is installed, launched and run like a native application. But its real purpose is to launch, run and manage Java application software on the target platform.

The CDC Java runtime environment is an implementation of Java technology for connected devices. These include mobile devices like PDAs and smart phones in addition to attached devices like set-top boxes, printers and kiosks.

CDC target devices can vary widely based on their features and purpose. Figure 1-1 describes some CDC target device categories and organizes them by their two most important characteristics: purpose (fixed or general) and mobility (mobile or attached).

Figure 1-1 CDC Target Device Categories

Description of Figure 1-1 follows
Description of "Figure 1-1 CDC Target Device Categories"

This runtime guide describes how to use the CDC Java runtime environment for different purposes including application development, runtime development and solution deployment.

This chapter briefly introduces the CDC Java runtime environment through the following:

1.1 Goals

It is difficult to describe CDC technology without reference to the Java Standard Edition (Java SE) platform because Java SE represents the core of Java technology. In fact, the principal goal of CDC is to adapt Java SE technology from desktop systems to connected devices. Most of CDC's modifications to Java SE APIs are based on identifying features that are either too large or inappropriate for CDC target devices and then either removing or making them optional.

Other related goals of CDC include the following:

1.2 Usage Contexts

The CDC Java runtime environment described in this runtime guide can operate in several different usage contexts:

1.3 CDC Technology Implementations

CDC technology is delivered by Oracle through different kinds of software releases:

1.4 CDC Target Device Requirements

CDC is an adaptable technology that can support a range of connected target devices that exist today and in the future. The following are the baseline system requirements of these connected devices:

The memory requirements for a CDC Java runtime environment vary based on the native platform, the profile and optional packages and the application. See Section 3.4, "Memory Management" for memory usage guidelines.

Other features of the CDC target device can include:

1.5 Java Micro Edition Technology Standards

CDC is part of the family of Java Micro Edition (Java ME) technology standards that support application software for connected devices. From an application developer's perspective, CDC is a standards-based framework for creating and deploying application software on a broad range of consumer and embedded devices. The CDC APIs are largely based on well-known Java SE APIs, which makes the job of migrating skills, tools and source code easier. From a product designer's perspective, CDC provides a standards-based Java runtime environment that supports a variety of target devices. This allows product designers to provide an application platform that fits within their device's resource limitations while supporting a large number of applications and developers.

Java ME standards are developed in collaboration with industry leaders through the Java Community Process ( JCP standards allow Java technology to adapt to the needs of evolving products in an open way by defining APIs that address common needs in application development. Furthermore, these standards allow product designers to choose which API features fit their product needs.

Java ME technology uses three kinds of API standards described in Table 1-1 as building blocks that can be combined in a specific product solution.

Table 1-1 Java ME API Standards

Category Description Options


Defines the most basic Java class library and Java virtual machine capabilities for a broad range of devices.

Connected Device Configuration (CDC, JSR-218) supports connected devices like smart phones, set-top boxes and office equipment.


Defines additional APIs that support a narrower range of devices. A profile is built on a specific configuration.

Personal Basis Profile (JSR-217) provides a standards-based GUI framework for supporting lightweight components. Personal Basis Profile adds support for the xlet application model.

Optional Package

Defines a set of technology-specific APIs.

  • The Remote Method Invocation (RMI) Optional Package (JSR-66) provides a subset of the Java SE RMI API for networked devices based on Java technology. It exposes distributed application protocols through Java interfaces, classes and method invocations and shields the developer from the details of network communications.

  • The Java Database Connectivity (JDBC) Optional Package (JSR-169) provides a subset of the JDBC 3.0 API that can be used by Java application software to access tabular data sources including spreadsheets, flat files and cross-DBMS connectivity to a wide range of SQL databases.

  • The Security Optional Packages (part of JSR-219) include Java Secure Socket Extension (JSSE) Optional Package, the Java Cryptography Extension (JCE) Optional Package and the Java Authentication and Authorization Service (JAAS) Optional Package. These provide Java SE APIs for extending CDC's security architecture.

  • The Web Services Optional Package (JSR-172) provides standard access from Java ME clients to web services.

1.6 Java ME API Choices

Each Java ME licensee can create a Java runtime environment by choosing from a menu of standard APIs. The designer's choice must contain a configuration, and optionally, a profile and any number of optional packages. These choices can vary from product to product. The critical point to understand is that the application developer must separately learn about which API combinations are available for a specific CDC product implementation.

For example, Figure 1-2 describes a Java runtime environment where a product designer selects CDC, RMI Optional Package, and JDBC Optional Package to represent a conforming CDC Java runtime environment.

Figure 1-2 An Example CDC Java Runtime Environment

Description of Figure 1-2 follows
Description of "Figure 1-2 An Example CDC Java Runtime Environment"


See the companion document CDC Build System Guide for information on how to build a target development version of the CDC Java class library for application development that reflects the APIs chosen for a specific target product. Chapter 6, "Developer Tools" describes how to compile Java application software with such a library.

1.7 CDC Application Features

The applications targeted by CDC technology have certain characteristics that distinguish them from the productivity tools and utilities common to desktop platforms.

1.8 Developer Tools

Because CDC APIs are derived from Java SE APIs, application developers can migrate both their software and their skills to the CDC platform with little effort. Java SE developers can easily learn CDC APIs by focusing on their small differences with Java SE APIs. It is therefore easy to modify Java SE software for CDC devices. The ability to use Java SE developer tools like compilers, debuggers and profilers makes this transition easier.

The CDC Java runtime environment uses several developer tool-oriented specifications, including the following:

Java SE tools like jar and keytool can also be used in CDC application development and deployment.