J2ME Specifications and other Java Platforms

J2ME Specifications All of the J2ME configurations and profiles have been developed as part of the Java Community Process (JCP). The JCP brings together leading players in the relevant industries with the aim of agreeing on a common specification to which they can all design their products. Each configuration or profile started out as a Java Specification Request(JSR), which describes the scope of the work to be done and an outline of the areas to be covered. An expert group is assembled to create the specification, which is then subject to an internal ballot and revision before being made available for public review. Following public review and a possible last revision, the final draft is produced, and the JSR is completed.

The current list of JSRs, including those that have been completed, can be found on the JCP web site. The JSRs that define the current J2ME configurations and profiles are as follows:

Number

Scope

JSR 30

J2ME Connected Limited Device Configuration (CLDC)

JSR 37

Mobile Information Device Profile for the J2ME Platform (MIDP)

JSR 75

PDA Profile for the J2ME Platform

JSR 36

J2ME Connected Device Configuration (CDC)

JSR 46

J2ME Foundation Profile

JSR 129

Personal Basis Profile Specification

JSR 62

Personal Profile Specification

JSR 66

J2ME RMI Profile

JSR 134

Java Game Profile

There is also work in progress that is not directly related to any configuration or profile:

Number

Scope

JSR 82

Java APIs for Bluetooth

JSR 120

Wireless Telephony Communication APIs (WTCA)

JSR 135

J2ME Multimedia API

Finally, even though some of the current profiles have not yet been fully defined, work is already underway to define the next generation of the J2ME platform. At the time of writing, nothing is available for public review, but it would be worth keeping an eye on the following JSRs:

Number

Scope

JSR 68

J2ME Platform Specification

JSR 118

Mobile Information Device Next Generation

JSR 139

Connected Limited Device Configuration Next Generation

 

 J2ME and Other Java Platforms

J2ME is intended to be the way ahead for Java on small devices, but, as noted at the beginning of this chapter, there are other Java platforms already in existence (and in use) that have similar scope. The following sections briefly summarize these alternative platforms and compare them to J2ME.

 

JavaCard

JavaCard is a platform aimed at smart card technology. Smart cards are the smallest environment for which a Java platform exists. The constraints of these devices are such that the JavaCard virtual machine and the small set of Java class libraries that it supports require only around 16 KB of non-volatile memory and 512 bytes of volatile memory. The scope of J2ME does not extend to platforms with this little resource, so there is no J2ME configuration that is suitable for the current generation of smart cards. You can find more information about JavaCard at this link.

 

EmbeddedJava

EmbeddedJava is a JDK 1.1-based platform that is used to create software for embedded devices. These devices typically have a 32-bit processor with 512 KB of ROM and 512 KB of RAM available for the VM, class libraries, and embedded application. Since embedded devices generally serve only one purpose, it is unnecessary to include parts of the Java platform that the application does not require. In fact, EmbeddedJava allows the implementor to remove any package or class -- or even a method within a class -- that is not required, in order to fit the final product into the memory available. The EmbeddedJava specification, which can be found at this link, defines only the maximum possible content of the platform, rather than a minimum (as is the case with J2ME specifications).

EmbeddedJava is currently undergoing its end-of-life cycle, which means that it will no longer be supported as of January 1, 2003. In the future, developers in embedded environments will probably migrate to CDLC and one of its profiles, which are targeted to devices with similar resources.

 

PersonalJava

PersonalJava is intended for a much more general application environment than EmbeddedJava. The target devices for Personal Java have up to 2 MB of ROM and at least 1 MB of RAM available for the Java platform itself, with more required for application software. Some of the larger PDAs and communicator devices, such as the Compaq iPAQ and the Nokia 9210 cell phone, are currently using the PersonalJava environment.

PersonalJava is based on JDK 1.1.8 and includes a fully featured Java VM. The specification, available at this link, designates each of the core JDK 1.1.8 packages as required, modified, or optional. Similar designations may also be applied to individual classes and methods. A required package must contain all of the classes from its JDK 1.1.8 counterpart, and each class must be a full implementation. An optional package may or may not be present, but if it is present, it must be complete. A modified package must be present, but its content may differ from its JDK 1.1.8 equivalent according to rules laid down in the specification. PersonalJava includes user interface components in the form of a modified java.awt package, and it also has optional support for RMI.

PersonalJava developers are expected to use CDC as a migration path to the Java 2 platform. Since PersonalJava includes user interface components, it will be necessary to wait for the Personal Basis and Personal Profiles to become available before migration can be started. PersonalJava applications that use RMI will also need to use the CDC RMI profile.

Вас заинтересует / Intresting for you:

Getting Started with Java prog...
Getting Started with Java prog... 1647 views Doctor Thu, 02 Aug 2018, 04:05:33
Creating TinyCalculator web ap...
Creating TinyCalculator web ap... 9091 views Zero Cool Sun, 23 Sep 2018, 11:10:19
Your First JavaFX Application ...
Your First JavaFX Application ... 3157 views Taniani Thu, 05 Jul 2018, 18:51:01
Introducing Java Data Access T...
Introducing Java Data Access T... 1821 views Анатолий Sun, 16 Sep 2018, 09:44:35
Print