A Java Jolt for Wireless
By Bryan Morgan, Thu Jun 28 00:00:00 GMT 2001
Sun Microsystems' Java technologies will help the company crack the wireless market, where achieving unity on anything can be difficult.
Despite the best efforts of "traditional" software companies, very few have been able to carve out a place to call their own in wireless. Products such as Microsoft's recently released Mobile Information Server and Oracle's 9iAS Wireless are likely to be good product offerings, but they can scarcely hope to approach the market dominance of their parent companies' operating system and database servers, respectively.
One company, however, has somewhat quietly developed what can only be described as a fleet of products that are quickly meshing together to solve many of the problems that have muted the growth of wireless data. That company, Sun Microsystems, is beginning to successfully parlay the huge investment they've made in Java technologies into what may be a dominant wireless market presence. Read on to gain some idea of how mobile Java may soon dwarf Java's server-side successes.
Building the foundation
If you're of the camp that believes that Java is too large of an environment to ever make an impact on mobile devices, keep in mind that Java was originally designed as part of an R&D project that studied "the convergence of digitally controlled consumer devices and products."
"Studied" is too weak of a word, as the project team actually produced a functioning PDA product that ran the predecessor to what is now known as Java. While much of the world has focused on useful Java technologies such as applets and servlets, Java's target has always been a networked world made up of disparate devices and operating platforms.
Its most familiar incarnations will be the three major "editions" (Standard, Enterprise, and Micro) which are comprised of a virtual machine (used to interpret the cross-platform Java bytecode) and an ever-growing set of APIs that provides a Sun-defined set of services.
For instance, the Java 2 Enterprise Edition (J2EE) includes advanced APIs for messaging and transaction management and is intended to standardize the task of enterprise server-side development. Meanwhile, the Java 2 Micro Edition (J2ME) includes a drastically slimmed-down virtual machine and API set designed for the smallest of devices (mobile phones, pagers, etc.). Every major enterprise software vendor (except for Microsoft) has announced J2EE support while nearly very major mobile vendor (including Nokia, Ericsson, Motorola, Palm, and RIM) is aggressively planning support for J2ME.
While these runtime environments (and their associated software development kits) receive most of the attention from the press and end users alike, they only serve to build the foundation of Sun's plan for Java ubiquity.
While not traditionally thought of as a mobile solution, what could be more mobile than the credit card in your wallet? Sun's JavaCard technology has been incorporated in well over one hundred million smart cards from the likes of American Express, Citibank, and Visa.
GSM users will be familiar with subscriber identity module (SIM) cards; Java SIM card technology has been licensed by major carriers such as China Mobile, France Telecom, Orange, and Telefonica. JavaCards offer the usual "Write Once, Run Anywhere" advantage of Java's portable, object-oriented code along with the specific advantages of public-key encryption and standards support (including ISO7816 and EMV).
The ability to build embedded applications using the Java programming language and off-the-shelf tools is proving to be a powerful argument for an industry accustomed to platform-specific assembly-level development over the years.
Jini is one of those technologies that seems to have been around for years without ever making an appearance in the marketplace.
Jini (pronounced "Genie") technology "provides an infrastructure for delivering services in a network and for creating spontaneous interaction between programs that use these services." According to Sun, "services can be added or removed from the network, and new clients can find existing services - all without administration." As you enter a new office building, your PDA could use Jini to discover network and print services (and dynamically load the proper drivers), setting itself up with no user intervention.
You can imagine that the marriage of Bluetooth and Jini is a topic of great interest as both technologies deal with the concept of "personal area networking" (Bluetooth with communications, Jini with application services). I expect both these technologies growth curves to closely mirror each other.
With the success of more powerful PDAs such as the Compaq iPaq, the Personal Java specification has begun to emerge as a viable platform for mobile applications that require advanced functionality.
Personal Java was originally proposed (pre-J2ME) as an environment for "set-top boxes and smart phones." As it currently exists in version 1.2, its capabilities lie somewhere between J2ME's Mobile Information Device Profile, or MIDP, and J2SE with some extra functionality thrown in for good measure. Personal Java currently includes support for JDBC, JNI, RMI, AWT, Reflection, and JavaBeans.
While there is speculation that Personal Java (or PJava) will eventually be folded into J2ME as a new profile, work has not officially begun on that yet. When solutions are simply too overwhelming for J2ME's minimal capabilities, PJava can step in. PJava implementations are now available for the Pocket PC from Insignia and SavaJe. A PJava implementation for WinCE and Palm OS has also been recently released by Kada Systems.
Personal Java's capabilities also make powerful relational database solutions a reality for PDA developers interested in Java. Databases such as PointBase, Sybase Ultralite, and Oracle 9i Lite all sport advanced SQL and synchronization technology on any PJava-supported platform.
In short, Java is currently the only runtime environment and development solution that offers the possibility of cross-platform mobile solutions. In addition, Java code can be downloaded dynamically from a remote server or, conversely, can be used as an intelligent agent to perform some user-defined task.
As a modular solution, Sun has made sure that multiple environment options are available to meet the needs of a wide class of devices. These capabilities match very well with typical mobile usage scenarios making Sun Microsystems a rising juggernaut in the wireless arena.
Bryan Morgan was the founder of WirelessDevNet.com (The Wireless Developer Network) and is currently an independent writer and software developer. He is a columnist for Wireless Internet magazine and is also a regular contributor to WirelessWeek.com and InformIT.com.