Java 2ME Bridging Wireless Gap?by Jeffrey M. Capone, Ph.D.
Mobile technologies are only at the cusp of software innovation. We have seen similar inflection points of innovation in other segments of technology whenever the gap between network connectivity and device capabilities has widened. In the not so distant past, when direct-connection bandwidth exceeded the processing capabilities of mainframe dumb terminals, server-side mainframe applications ruled.
More recently, when the PCs came to being, with superior processing capabilities, and Intranet and Internet network connectivity performance lagged, client application development gained traction. As a result, client-side operating systems and application-development and -deployment software became critical. Such software filled the gap between processing capabilities of client devices and network connectivity by offering synchronization, better user interfaces, and advanced server-side communications. Enterprises became the first buyers of such software, to maximize the benefits of their centralized data stores and decentralized processing power residing on the client devices.
Currently, over forty percent of enterprise employees use mobile devices. Reflecting past technological gaps, continuous advances in hardware technologies have pushed mobile device capabilities to exceed their networks' performance. With the lags involved in migrating the networks to 3G connectivity, enterprises look to software solutions for synchronization, server-side communications, and better user interfaces. In this article, we will discuss the role of J2ME technology, and discover not only its strengths to fill in the software gaps, but also the associated development, maturity, and maintenance cost for the enterprise. In the conclusion, you will be provided a map that can explain where and how J2ME applications can meet enterprise needs.
Understanding Wireless Application Development
How will J2ME impact wireless application development? To answer this question, we need to understand what a wireless application is, and more generally, what an application is. In summary, an end-user application (as opposed to an embedded application) consists of the following components:
- A user interface where user gestures are applied and interpreted as actions
- Application logic which receives the actions and may request application data form a repository
- A data repository
An application can then be classified as a distributed or local application. Distributed applications typically involve a client component and a server component of the application, whereas a local application resides on a single device.
Wireless devices and networks pose additional challenges for client-server application development. Some of the challenges include:
- Small screen size
- Cumbersome input capabilities
- Limited memory
- Limited processing power
- Limited programmability
- Limited connectivity
- Compromised security
Wireless applications are, therefore, client-server applications that operate over unreliable low-bandwidth links on devices with limited capabilities. Some technologies exist to attempt to alleviate the problems associated with building such applications. They include:
- Palm-based technologies
WAP (Wireless Application Protocol) was designed to allow wireless devices running on high-latency, low-bandwidth networks to access Internet and Intranet applications despite restrictions such as small screens and limited keyboards. Since the foundation of the Wireless Application Protocol Forum in June 1997, WAP has gained a substantial amount of industry support, and WML (Wireless Markup Language) and WMLScript have been the standard choices for delivering and presenting wireless Internet content to ultra-thin mobile devices, particularly mobile phones. For wireless application development, WAP provides WML for preparing the user interface. With the introduction of WAP 1.2, some of the application logic, in addition to the user interface, may reside on the client through the use of WMLScript. WAP contains a transaction protocol (i.e., Wireless Session Protocol) similar to HTTP; it is actually WML that lets you build browser-based, thin-client applications optimized for wireless delivery.
Will J2ME indeed bridge the wireless technology gap?
In addition to WAP, there are iMode- and Palm-based technologies that offer services similar to WAP over wireless networks. The technologies use compact and clipped HTML to display data, but they have no provisions for scripting.
Java 2 Platform, Micro Edition (J2ME) is a Java-based programming language that lets you build client-side applications optimized for mobile devices that have limited resources. These devices are also referred to as connected limited device configuration (CLDC) devices. A Java application that conforms to the specifications set out by the CLDC spec and the Mobile Information Device Profile (MIDP) is called a MIDlet. While MIDlets may have an improved user-interface, contain more client-side application logic, and use local data stores (e.g., thin client databases) to give them the ability to run in offline mode, they still require some level of network connectivity. CLDC specifies a networking library, so that MIDlets do not necessarily need to employ browsers.
J2ME (MIDP) may be installed on Palm, WAP, and iMode devices to provide these advanced functionalities, as long as limitations of the device are taken into account.