In 2004 the Java 2 Platform, Micro Edition (J2ME) celebrated its fifth anniversary. Sun Microsystems unveiled the K Virtual Machine (KVM), the core technology that became the basis for today's J2ME, at JavaOne 1999. Over the last five years the Java mobility platform has matured through the Java Community Process (JCP), and has earned widespread adoption. Immediately after the 1999 announcement, KVM rapidly captured the attention of the Java community. Key to this excitement was the Spotless system, a research project at Sun Labs KVM was based on, because it demonstrated, not only a Java runtime operating on a Palm OS personal digital assistant (PDA), but Java's potential on other mobile and embedded systems as well. Since then, "Java technology for small devices" has been formalized and further defined. One of the first steps in this formalization phase was the recognition that we were looking at a whole new kind of Java platform, and reorganization of the many Java technologies into three Java editions: Standard, Enterprise, and Micro. The Micro Edition is defined by the JCP as "Java technology to specifically address the vast consumer space, which covers the range of extremely tiny commodities such as smart cards or a pager all the way up to the set-top box, an appliance almost as powerful as a computer". The Micro Edition standardized the KVM technology into today's Connected Limited Device Configuration (CLDC) that, together with the Mobile Information Device Profile (MIDP), is today's most widely adopted programmable runtime environment for mobile phones and low-end PDAs. J2ME also incorporated the older EmbeddedJava and PersonalJava environments as profiles under the umbrella of the Connected Device Configuration (CDC), whose Foundation, Personal Basis, and Personal profiles support higher-end cell phones, PDAs, and other devices. Market Adoption
Over the past five years the Micro edition has seen tremendous growth and adoption, especially MIDP applied to the wireless space. According to reports from Ovum, ARC, and the Wireless World Forum, today there are more than 280 Java handset models available from 32 manufacturers, deployed over 93 carriers. The installed base of Java handsets was 267 million at the beginning of 2004, and is projected to reach 1.5 billion by the end of 2007. Currently in Japan 50% of all handsets are J2ME-enabled, and have earned operators $1.4 billion. In Japan and Korea, around 80% of Java handsets sold in 2003 led to active Java users. The Development Community
There are thousands of active J2ME developers worldwide, the majority of them MIDP developers. The KVM-interest list, a mailing list dedicated to discussion among CLDC/MIDP developers, has more than 2,000 subscribers. A good measure of developer interest on a given technology is the number of web sites dedicated to the technology. In addition to the developer sites provided by companies such as Nokia, Sun Microsystems, Sony Ericsson, IBM and Motorola, independent developers' sites that focus on J2ME are plentiful: A quick survey found around 50. Development teams all over the world are creating mobile applications based on the J2ME platform. To help developers working in the wireless industry stay up to date with the latest developments in the Micro Edition, Sun created the Sun Wireless Developer certification program. This program also helps companies meet their need to find wireless developers who are highly qualified in Java technology. The Java Community Process
The Java Community Process manages the continuing evolution of all editions of the Java platform. The JCP is an open, community-based organization with a formal process that standardizes Java technology by defining specifications of platforms and APIs, and revising them as new capabilities are developed. The members of the JCP are individuals and organizations that share a common interest in seeing Java technology continue to meet market needs successfully. In the area of the JCP devoted to J2ME, all major industry players are involved, including IBM, Nokia, Sony Ericsson, Motorola, Siemens, Vodafone, Sprint, and others. Other participants include large and small development houses, and individual contributors. New Java Specification Requests (JSRs) abound. For the Micro Edition alone, there are more than 60, whose subjects range from Bluetooth wireless networks to web services, to location-based services, to wireless messaging, to headless embedded devices. Not all submitted specifications are ultimately approved; their fate depends entirely on input from the Java community. Java Technology for the Wireless Industry
As the Micro Edition of the Java 2 platform continues to grow, consistency is vital, especially for developers of software for wireless devices, who must ensure their products will run across mobile handsets from multiple vendors. To promote such consistency and thereby encourage wide adoption of Java technology in the mobility space, the JCP has defined JSR 185, Java Technology for the Wireless Industry (JTWI). This standard specifies the minimum runtime characteristics and APIs that all compliant wireless devices must support. JTWI 1.0 mandates the following JSRs:
Most recently two new JSRs in progress continue the work of the JTWI JSR-185. The Mobile Service Architecture for CLDC (JSR 248) will define new technologies as appropriate and a mobile service architecture and platform definition for wireless handsets. The Mobile Service Architecture for CDC (JSR 249) defines similar architecture and platform but for CDC-based devices. MIDP 2.0 and CLDC 1.1
MIDP, the first Micro Edition profile, continues to evolve. MIDP 2.0 was released more than two years ago. At this writing at least 26 MIDP 2.0 handset models have been announced. MIDP 2.0 offers a number of advantages over MIDP 1.0, including better security, gaming, and networking APIs. CLDC has also been updated; CLDC 1.1, released in March 2003, supports floating-point operations and includes other enhancements related to the Java virtual machine1 and supported Java constructs. The memory budget was also raised, from 160KB to 192KB. CDC 1.1 and Related Profiles
CLDC and MIDP provide compact, efficient support for applications running on low-end pagers, cell phones and PDAs. For devices with more memory and processing power, the Micro Edition also includes the Connected Device Configuration. This realm of J2ME has been evolving recently; CDC and its related profiles are now in their 1.1 release:
Java Card
Not part of the Micro Edition itself but complementary to it, the Java Card technology continues its evolution as well. The Java Card specification is currently in its 2.2.1 revision. Recently the JCP approved JSR 177, the Security and Trust Services API for J2ME. This new JSR extends the Micro Edition with APIs to access security elements such as smart cards by way of standard APDU or Java Card RMI communication methods as well as APIs for the management of digital certificates, digital signatures and data encryption. Also recently, Sun has introduced the Java Card System Protection Profile Collection, which defines guidelines and a new concept call "protection profiles" that set out security requirements for the Java Card Runtime Environment, the Java Card Virtual Machine, the Java Card API Framework, and the on-card Installer components. Conclusion
1As used in this document, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform. J2ME has come a long way since its inception. With an abundance of standardized capabilities already approved, and more under development, the Micro Edition of the Java platform has gained considerable adoption, by both the market and development community. Acknowledgements
Many thanks to Nicolas Lorain for his input to this article. About the Author
C. Enrique Ortiz is a software architect and developer, and a wireless technologist and writer. He has been author or co-author of many publications, a co-designer of Sun Microsystems' the Mobile Java Developer Certification Exam, and an active participant in the wireless Java community and in various J2ME expert groups. Enrique holds a B.S. in Computer Science from the University of Puerto Rico and has more than 15 years of software engineering, product development, and management experience. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||