| By John McCready | Article Rating: |
|
| August 20, 2006 10:15 AM EDT | Reads: |
11,066 |
Java, in the form of the Java 2 Platform Micro Edition (J2ME), has become a prerequisite for all future mobile handsets for at least the next seven to nine years. Not only will the core applications needed for the user experience be created in Java, it will also serve as the basis for the lucrative downloadable application market - the Java segment of which is currently projected to exceed $15 billion by 2008.
If there are any remaining questions as to the pivotal role Java is destined to play in the mobile industry, consider the following numbers. By mid-2006, the installed base of Java enabled handsets will cross the billion-unit mark, with over 35 vendors already offering upwards of 600 different Java-enabled handset models. Furthermore, over four million software developers, per 3G Americas' estimates in mid-2005, are now involved in creating J2ME-specific software to feed, as well as fuel, this burgeoning demand for Java-based functionality for mobile handsets.
Despite all of these inescapable positives, handset manufacturers are still facing a major challenge on the Java front. Their approach to providing Java capability on handsets has become passé - plagued by inefficiencies, fraught with application integration complications, and above all, vulnerable to security risks. All of these problems stem from the fact that manufacturers never set out to fully and tightly integrate the necessary Java platform [i.e. J2ME] with the native handset OS kernel, the handset engines/codecs, and the native libraries. With this two-stack approach, there exists a native stack with its own set of exposed APIs. Then, there's the Java stack, with exposed APIs also grafted atop the native stack.
In short, the two-stack approach offers a seriously flawed foundation unsuitable to support a Java future.
Yet, groundbreaking developments have been taking place and a much better way to implement mobile Java has emerged, one that permits handset makers to overcome all of the problems associated with the conventional two-stack approach. With this new platform, manufacturers can provide developers with a single-stack that supports all the strategic Java APIs, while providing the necessary access to the native engines, codecs, and libraries via the Java APIs. It's a real win-win solution without any limitations or drawbacks.
The Conventional Two-Stack Approach to Java
In 2001, handset makers were confronted with the need to support Java, primarily to accommodate downloadable Java applications. At that juncture, the native handset OS (Symbian), the OS services, and middleware (access to the handset engines and codecs), the handset services (phone settings), handset application (Web browser), and the native libraries were all being developed in C. Rather than making any changes to this native infrastructure to tightly integrate Java, manufacturers opted instead to create a host-porting layer on top of their native libraries as the basis of their Java support.
A Java KVM was then implemented on top of the host-porting layer, where a KVM is a J2ME-specific subset of a Java virtual machine (JVM). This KVM then served as the platform for Java libraries, with their Java APIs. Suffice it to say, this was not a very efficient way to realize Java. The two-stack approach compromises Java performance, compounds application integration complexity, and at a minimum doubles the amount of software testing (and quality assurance) that has to be performed. All of that, bad enough as it is, is not the limit of the pitfalls associated with this approach.
This two-stack approach, with native APIs exposed to all, is also an unmitigated security nightmare. Access to the native APIs, as manufacturers and operators are acutely aware of, enables hackers to easily create malicious viruses, worms, and spyware. Thus, the current goal, across the industry, is to try to restrict access to the native APIs. However, with the two-stack approach it's difficult to restrict access to the native APIs since bona fide developers have to use these APIs to interact with libraries, codecs, and engines.
Fortunately, a new single-stack approach provides an elegant and universal solution to this security problem as well as all the other complexity and inefficiency-related issues associated with two stacks.
The Single-Stack Java Solution
With a single-stack platform, handset makers no longer have to expose their native APIs to the software development community-at-large. Software developers can instead use one set of strategic broad-spectrum Java APIs for all of their needs including that of accessing the handset's native engines and codecs. The graphs below illustrate how the single-stack approach markedly differs from the conventional two-stack approach that manufacturers have been employing.
To ensure that software developers gain uncompromised access to everything they need on the handset using just Java APIs, the single-stack platform goes well beyond just implementing the basic amount of functionality required to be J2ME-compliant. Unlike Java 2 Enterprise Edition (J2EE) and Standard Edition (J2SE) - where there's only one version of the platform - J2ME (as shown in Figure 1) has two variants known as configurations. The Java functionality available with each of the two configurations is defined in terms of the core libraries to be included with that configuration as well as by the capabilities of the Java virtual machine associated with it.
The two different J2ME configurations are:
- Connected Limited Device Configuration (CLDC), and
- Connected Device Configuration (CDC).
CLDC and CDC, as again shown in Figure 2, have so-called profiles implemented on top of the configurations. These profiles define the requisite Java software functionality and the API repertoire for a specific class of device. At present there are two key profiles defined for J2ME: the Mobile Information Device Profile (MIDP) and Personal Profile (PP). MIDP (now at version 2.0), which is to be used with CLDC, defines basic connectivity, persistent storage, networking, and user interface functionality. MIDP is targeted at low-end handsets. On the other hand, PP, meant to be used with CDC, is for high-end devices, including PDAs.
The single-stack platform implements both CDC as well as CLDC/MIDP2.0. It thus provides software developers with a complete set of J2ME APIs that is more comprehensive, feature-rich, and powerful than the APIs available with just MIDP. This is the crux of the solution. Thanks to the availability of this expanded set of Java APIs, software developers are no longer as dependent on native APIs as they previously were. Now they can use Java APIs for all needs, whether it's to develop core handset utilities or value-added, downloadable applications.
The advantages of this single-stack approach are many and obvious, positively benefiting not just the handset makers but also developers, operators, service providers, and even users. The key advantages of the single-stack approach include:
- Reduction in development and testing costs by reduced software duplication and complexity;
- Major improvement in software security, greatly minimizing the disruptive threats of viruses and spyware, by obviating the need for exposed native APIs;
- Simplifying the data sharing between applications (chat and address book) through the use of common APIs and libraries;
- Standardization on Java, without the need to flip-flop between Java and native code, thus promoting the creation of a more consistent and cohesive user experience;
- Reducing development and testing schedules, expediting overall time-to-market;
- Tangible increases in Java performance by tighter integration with the OS kernel (without using an intermediary host porting layer).
Java has become a mandatory prerequisite for future handsets. The conventional approach of implementing Java as a separate stack grafted on top of the native libraries via a host-porting layer is fraught with problems - security, performance, and inefficiency being key among these. The new single-stack platform, which with a stroke implements both J2ME CDC and CLDC/MIDP2.0, eliminates all of the problems associated with the two-stack approach. Rather than having to contend with multiple stacks, with two competing sets of APIs, the single-stack approach provides one unified stack with one set of APIs. By reducing software duplication and complexity, this new approach reduces costs, expedites time-to-market, enhances security, enforces consistency, and increases performance. It, in reality, is the only way to go forward when it comes to J2ME on mobile handsets. Period.
Published August 20, 2006 Reads 11,066
Copyright © 2006 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By John McCready
John McCready is senior vice president of marketing for SavaJe Technologies, developers of a Java technology-based mobile operating platform. The SavaJe-based Jasper S20 mobile phone was recently named “Device of the Show” at the 2006 JavaOne Conference. The SavaJe Mobile Platform simplifies and accelerates development of customizable, richly branded and secure user interfaces across mobile feature phone handsets.
![]() |
nd 08/19/06 08:40:09 PM EDT | |||
Java, in the form of the Java 2 Platform Micro Edition (J2ME), has become a prerequisite for all future mobile handsets for at least the next seven to nine years. Not only will the core applications needed for the user experience be created in Java, it will also serve as the basis for the lucrative downloadable application market - the Java segment of which is currently projected to exceed $15 billion by 2008. |
||||
![]() |
n d 08/19/06 03:45:44 PM EDT | |||
Java, in the form of the Java 2 Platform Micro Edition (J2ME), has become a prerequisite for all future mobile handsets for at least the next seven to nine years. Not only will the core applications needed for the user experience be created in Java, it will also serve as the basis for the lucrative downloadable application market - the Java segment of which is currently projected to exceed $15 billion by 2008. |
||||
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Cross-Platform Mobile Website Development – a Tool Comparison
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Immersing into JavaScript Frameworks
- Workday Reportedly Prepping to Go Public
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Book Review: Sams Teach Yourself Java in 24 Hours
- OpenOffice.com Lives
- Book Excerpt: Introducing HTML5
- Adobe Sends Flex to the Apache Foundation
- Five Years Waiting for JRE 7: Is It Justified? (Part 1)
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- It's the Java vs. C++ Shootout Revisited!
- Patterns for Building High Performance Applications
- OpenXava 4.3: Rapid Java Web Development
- The Next Web Architecture
- Asynchronous Logging Using Spring
- Java for Programmers (2nd Edition)
- Is Write Once Run Anywhere Ever Going to Be a Reality?
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- JavaServer Faces (JSF) vs Struts
- The i-Technology Right Stuff
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- What's New in Eclipse?
- i-Technology Predictions for 2007: Where's It All Headed?



















