EVER since the introduction of a new computer language from Sun Microsystems called Java, we have been hearing how it will revolutionize and unify computing. Of course, it hasn’t (at least so far), but it has given computing a new paradigm... write once, run everywhere.” So why has Java lagged behind with respect to handheld devices and PDAs?
It was Java’s original purpose to be the technology inside small interactive devices for the home. Where is the famed Java OS that was going to defeat the omnipotent Windows operating system by running on everything from Network Computers to PDAs? Whatever the reason, the fact is that up until now, Java was barely existent on mobile platforms.
There are three major platforms in the handheld/PDA marketplace: Palm, Windows CE (now renamed Windows Powered), and Psion. All three have different Java implementations. Palm Computing is working with Sun on incorporating the KVM (K Virtual Machine) to its PalmOS. Currently, this has not been released to consumers and has only been available to developers as an early release. As for Windows CE, a beta version of the Personal Java runtime environment was recently released to developers by Sun. NSIcom and Insignia also offer their own Java implementations for Window CE. Out of the three major platforms, Psion’s implementation is the most compatible with standard Java. EPOC Runtime for Java enables Java applications and applets and is fully compatible with Sun’s JDK 1.1.4.
So at the present time, two of the three platforms are just beginning to release their implementations to developers. Psion is the only real choice to write and develop Java applications and applets for real world use. A major cause for concern is that there is no standardization of Java between any of the platforms. Even when Palm and Windows CE Java implementations are ready for use by consumers, developers will have to program different versions of their applications to work on each platform. This defeats the original purpose of Java.
In December 1998, when Java 1.2 was introduced, the Java platform was developing at a tremendous pace and was in much need of some organization. In June 1999, Sun decided to reorganize the Java platform into three distinct types: Enterprise, Standard, and Micro Editions to make it easier for developers, service providers and device manufacturers to use the appropriate Java platform for their target market. For the mobile computing market, this was an important move to introduce a clear strategy for developers.
J2ME
The J2ME is Sun’s new framework that groups major types of consumer devices into categories, such as pagers and cell phones, screen phones, TV-set top boxes, and PDAs. The J2ME consists of a virtual machine and a core set of APIs called Configurations that allow the Java classes to be installed for configuration of the Java environment.
Realizing that there was a gap between the Personal Java and Java Card technologies, Sun introduced the K Virtual Machine, a key component of the J2ME. This compact JVM is targeted to devices that have between 128-512K of memory. Palm displayed programs at Java One of the KVM running on PalmOS. After a few seconds to load the KVM, programs are responsive and start to show there performance.
Development options
While Sun has lagged in the incorporation of Java into smaller devices, one company that has successfully implemented a solution of “write once, run anywhere” for handheld devices is WabaSoft. The company has developed its own VM and SDK (Software Development Kit).
They have created their own UI framework for use on handheld systems and their WabaVM runs under Window CE, PalmOS, and Windows 95/98/NT, which is a plus if you need to distribute your application on multiple handheld platforms. The main benefit of Waba is its small JVM that can run with a minimum of 64K of RAM. And for those who want the source code, Waba 1.0 is available to the open source community under the standard GNU license.
Another company called Aromasoft has gone one step further and developed TeaPot, a small, efficient operating system designed specifically for the Java platform. TeaPot is a combination of TeaVM (a Java runtime system) and Aromasoft’s real-time operating system PotOS. It provides a PersonalJava 3.0 compliant Java environment for application development and will also run applications written in C. TeaPot is targeted at Information Appliances that are network-aware, such as handhelds, screen-phones, and DTV.
Mobile devices
While Java in the PDA/Handheld market space may have gotten off to a slow start, there are other mobile products where Java is beginning to assert itself.
In the interactive pager arena, both Research in Motion (RIM) and Motorola have announced their support for Java. RIM said that the RIM Interactive Pager 950, RIM 850 Wireless Handheld, and Blackberry products will support the KVM. RIM expects to enable developers to access this technology in early 2000. Motorola displayed the Pagewriter 2000x running with the KVM back in June. The Pagewriter 2000x is a two-way pager with a keyboard and graphics display that allows wireless communication with the Internet, e-mail, and other pagers.
Mobile phones are also target devices for Java. A Japanese company called NTT DoCoMo has developed a new breed of wireless phones that are powered by the KVM. The units (F502i and D502i) are i-mode compatible, sport a large color screen, offer a constant connection to the Internet so that you can check e-mail and surf the internet, and are e-commerce enabled.
As far as actual hardware that is running Java, on Jan 17, Tadpole introduced J-Slate, a rugged Java-based industrial pen computer. It can run Java applications stand alone or via a web browser with the wireless option. The J-Slate includes Wind River’s VX Works RTOS (Real-Time Operating System) and runs Sun JVM 1.1.6 as well as Wind River Personal JWorks. Tadpole has teamed up with Espial Group who is the leader in Personal Java applications for small form factors such as handheld devices. Espial has provided the Espial web browser that has a small footprint of 175K as well as the Architect RAD development environment that provides faster development of Personal Java applications. Tadpole also takes advantage of Espial Device Top application delivery platform for wireless remote software upgrades and installations.
Probably the hottest technology that may well springboard Java into the mainstream of mobile computing is from a company called Zucotto which provides some much needed integration for mobile devices. In an effort to make Java faster and easier to develop for handheld wireless devices, Zucotto has recently announced its own optimized implementation of the KVM. Zucotto’s SLICE (Support Layer in Consumer Electronics) To Go is a development kit for developers targeting multimedia and wireless Internet devices using Java
Conclusion
Though Java got off to an extremely slow start in the mobile computing space, it may finally rise from the ashes in the next generation of mobile devices. We are already seeing early examples of 3G phones, internet appliances, and wireless handheld devices that are taking advantage of Java. However, the “write once, run anywhere” marketing slogan from Sun is definitely gone. It will be interesting to see if Java can conform to a few standards for mobile devices so a limited amount of change is necessary to port between different operating systems and foster momentum from developers.
The writer is a scholar of BS programme, Petroman training institute, Karachi