Sun Java Solaris Communities My SDN Account Join SDN
 
Article

Building Compelling Services for the Wireless Market Using Java Technology

 


Emerging wireless technologies are opening up a brand new market for new styles of applications and services targeted at consumers and enterprises. Java technology provides a comprehensive foundation that allows next-generation devices to offer new capabilities such as enhanced interactivity, rich user interface, off-line processing, local data storage, and networking. By utilizing these new capabilities, developers and enterprises can create new exciting services in the wireless market.

This article provides an overview of the benefits provided by Java technology in the wireless world, and how this solution overcomes the challenges presented by the variety of mobile phones and PDA solutions, evolving network technologies, and the requirements for easy to use, secure applications.

The Java Platform

Java 2 Platform, Micro Edition (J2ME) is part of the Java 2 platform. While Java 2 Standard Edition (J2SE) targets desktop systems, and Java 2 Enterprise Edition (J2EE) targets the server backend applications, J2ME is a collection of APIs focusing on consumer and embedded devices, ranging from TV set-top boxes, telematics systems, residential gateways, to mobile phones and PDAs. Within each edition of the Java 2 platform, there are different Java Virtual Machine1 (JVM) implementations that are optimized for the type of systems they are targeted at. For example, the K Virtual Machine (KVM) is a JVM optimized for resource constrained devices, such as mobile phones and PDAs.


J2ME is part of the Java 2 Platform

J2ME is part of the Java 2 Platform

The following characteristics are shared among the three Java editions:

  • Write Once Run Anywhere: because Java technology relies on Java byte-code that is interpreted by a virtual machine, applications written in Java can run on similar types of systems (servers, desktop systems, mobile devices) independent of the underlying operating system and processor. For example, a developer doesn't need to develop and maintain different versions of the same application to run on a Nokia Communicator running the EPOC operating system, a Compaq iPAQ running PocketPC, or even a PDA powered by the Linux operating system. On mobile phones, the variety of processors and operating systems is even more significant, and therefore the wireless community in general is seeking a solution that is platform agnostic, such as WAP or J2ME.

  • Security: while on the Internet, people are used to secure data transactions and downloading files or email messages that may contain viruses, few wireless networks today support standard Internet protocols, and wireless operators are concerned by the security issues associated with the download of standard C applications on their networks. Java technology features a robust security model: before any application is executed by the Java virtual machine, a byte-code pre-verifier tests its code integrity. Once an application is running, it cannot access system resources outside of a 'sandbox,' preventing applications from acting as viruses. Finally, Java applications can take advantage of standard data encryption solutions (SSL or Elliptic Curve Libraries) on packet based networks (for example CDPD, Mobitex, GPRS, W-CDMA), providing a robust infrastructure for mCommerce and enterprise application access.

  • Rich graphical user interface: you may remember that the first demonstration of Java technology was done using an animated character on a web page. While animated GIF files have made this use of the technology obsolete on desktop systems, mobile devices can benefit from richer GUI APIs that allow for differentiation of services and the development of compelling applications.

  • Network awareness: while Java applications can operate in disconnected mode, they are network-aware by default, allowing applications to be dynamically downloaded over a network. Additionally, Java is network-agnostic, in the sense that Java applications can exchange data with a backend server over any network protocol, whether it is TCP/IP, WAP, i-mode, and different bearers, such as GSM, CDMA, TDMA, PHS, CDPD, Mobitex, and so on.

The J2ME Application Cycle

Contrary to the web browser model, which requires continuous connectivity and offers a limited user interface and security experiences, J2ME allows applications to be dynamically downloaded to a mobile device in a secure fashion. J2ME applications can be posted on a Web server, allowing end users to initiate the download of an application they select through a micro browser or other application locator interface. Wireless operators, content providers, and ISVs can also push a set of J2ME applications and manage them remotely. The Java provisioning model puts the responsibility of checking the compatibility of the applications (such as version of the J2ME specification used, memory available on the handset) on the handset itself, allowing the end user to ignore the intricacies associated with typical desktop systems.

Once a J2ME application is deployed on a mobile device, it stays there until the user decides to upgrade or remove it. The application can be operated in disconnected mode (such as standalone game, data entry application) and store data locally, providing a level of convenience that is not available on current browser-based solutions. Because the application resides locally, the user doesn't experience any latency issues, and the application can offer a user interface (drop-down menus, check boxes, animated icons) that is only matched by native C applications. The level of convenience is increased because the user can control when the application initiates a data exchange over the wireless network. This allows for big cost savings on circuit0switched networks, where wireless users are billed per minute, and allows a more efficient exchange of data, since many applications can use a store and forward mechanism to minimize network latency.

J2ME is part of the Java 2 Platform

J2ME applications can exchange data over WAP, i-mode or TCP based wireless networks

Additionally, J2ME applications can leverage any wireless network infrastructure, taking advantage of a WAP network stack on current circuit-switched networks (GSM, CDMA, TDMA). The same applications are ready to be used on packet-based networks, allowing the use of standard Internet protocols, such as HTTPS over SSL (data encryption), IMAP (email), LDAP (directories), between the J2ME enabled client application and the backend infrastructure.

J2ME Benefits on Wireless Devices

Let's look at how Java technology fits in the wireless service evolution. Originally, analog technology was sufficient to handle voice services, but the quality of the calls was sketchy and multiple radio networks competed with one another.

Today we take advantage of the second generation of networks and services (2G networks), which use digital networks and web browser technologies. This provides access to data services, but markup languages present some limitations. Markup languages are a step in the right direction, but browser-based applications don't work when out of coverage-require air time for even simple operations (such as entering appointments in browser-based calendar) - offer a limited user interface paradigm (character-based, static black and white images, cumbersome navigation interface).

When Java technology is added to this environment, it brings additional benefits that translate into an enhanced user experience. Instead of plain text applications and latency associated to a browser-based interface, the user is presented with rich animated graphics, a fast interaction, the capability to use an application off-line, and maybe most interestingly, the capability to dynamically download new applications to the device.

For application developers, this means that you can use your favorite programming language and your favorite development tools, rather than learning a new programming environment. There are over 2.5 million developers who have already developed applications using the Java programming language, primarily on the server side. Once these developers become familiar with the small set of J2ME APIs, it becomes relatively easy to develop small client modules that can exchange data with server applications over the wireless network.

The challenges that remain the same for Java, WAP, or native APIs is that small screens and limited input interfaces require developers to put some effort into the development of the application user interface. In other worlds, small devices force developers to abandon bad or lazy programming techniques.

What Type of Applications Does J2ME Enable?

Many people expect to see new type of applications developed with J2ME. You can argue that the application categories would remain the same, except for a few exceptions such as location services and data applications that integrate with telephony functionality. The outcome is likely to be applications that are context sensitive (immediacy, location, personal or professional use) and are migrating from a character-based interface (browser-based applications) to a graphical environment, providing developers and end users with an unmatched level of flexibility. Just think about the evolution from DOS or mainframe applications to Windows, MacOS, or Solaris graphical environment. We still use processors, spreadsheets, accounting applications like in the good old days, but because the new generation of applications take advantage of a richer graphical environment, the applications are better and easier to use.

Therefore, expect to see J2ME developers targeting the same categories of applications they focused on with WAP, but this time with the user experience compelling enough for ISVs and system integrators to be able to charge for them.

As far as adoption of J2ME, the prognostics are rather good. Evans Data recently conducted a survey2 among 500 wireless application developers, concluding that more developers will use Java and J2ME to develop wireless applications (30%) than native C APIs (Palm OS, PocketPC, EPOC) or even WAP.

The market that J2ME will penetrate the fastest is the Japanese market, with Nikkei Market Access3 forecasting a penetration rate of 40% this year. NTT DoCoMo, who started shipping J2ME enabled I-mode phones at the end of January, has already sold 1 million units, and they expect the number to increase to 3 million by the end of September. The two other major Japanese wireless operators (KDDI and J-Phone) will join DoCoMo in the deployment of J2ME enabled handsets by the end of the summer.

Obviously, forecasts can be misleading, as the experience with WAP, Bluetooth and 3G has shown. Therefore, what really matters is the number of handset manufacturers that are planning to make available J2ME enabled phones and PDAs this year, as well as the number of wireless operators that are endorsing the technology and putting in place a network infrastructure that will allow ISVs, content providers and corporations to deploy J2ME applications and services over their network.

The benefits of Java technology as provided by J2ME in the wireless arena are many and varied. From its Write Once Run Anywhere flexibility, to its robust security features, to its support for off-line processing and local data storage, to its leverage of any wireless infrastructure, to its fine-tuned control of data exchange, J2ME is a natural platform for wireless application development. The numbers bear this out -- the ranks of J2ME developers are growing fast.


1 As used in this document, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.

2 Wireless Developer Survey, Vol. 1 Winter 2000/Spring 2001.
http://www.evansdata.com/wirelessTOC301.html

3 Java Cellular Phones Blossom in Japan; Production to Reach 20M in 2001. March 12, 2001.
http://www.nikkeibp.asiabiztech.com/wcs/leaf?CID=onair/asabt/resch/ 125412



Reader Feedback
Excellent   Good   Fair   Poor  

If you have other comments or ideas for future technical tips, please type them here:

Comments:
If you would like a reply to your comment, please submit your email address:
Note: We may not respond to all submitted comments.

Have a question about Java programming? Use Java Online Support.



Back To Top