Wireless operating systems also represent a crucial point of control in the emerging market for wireless solutions. The three main contenders are Symbian, Palm OS, and Windows CE. In the author's view, Symbian is the most likely to emerge as the leading technology in this area because it is backed by the telecommunications industry (notably Ericsson, Nokia, and Motorola) and represents the most solid and flexible technology.
In the following sections we will look at Symbian, Palm OS, and Windows CE mostly from the point of view of operating system support for Java applications, and for various communication bearers.
Symbian is at the heart of the mobile handset manufacturers' plans to dominate the Wireless Net. Symbian is a UK-based corporation and was established by Ericsson, Motorola, Nokia, and Psion, in December 1998, with Matsushita (Panasonic) joining as a shareholder in May 1999. Symbian is dedicated to working closely with the wireless community in order to enable a mass market for communicator devices. Symbian has established strategic partnerships with the global leaders in the wireless industry, as well as international companies from all areas of the wireless value chain.
The Symbian mobile device platform is based on the EPOC operating system, which was originally designed by the Psion team. The Symbian platform is a multi-threaded, multi-tasking operating system optimized for next-generation mobile devices, such as smart phones and communicators.
The key features of the Symbian platform are:
There are three reference designs:
Quartz is aimed at communicators with pen based input
Crystal is aimed at communicators with a keyboard
Pearl is aimed at smart phones
Supported programming languages are C++, Java (PersonalJava and J2ME), and OPL. PersonalJava provides a JDK 1.1.x-compatible execution environment for small devices, and thus supports java.net sockets and object serialization, making it an ideal Java platform for implementing JMS. J2ME is a Java execution environment targeted at small devices, but is more restrictive than PersonalJava. For example, J2ME does not support object serialization. Nevertheless, J2ME can be used to implement all of the JMS abstractions, except the javax.jms.ObjectMessage type.
Close integration of contact information, messaging, browsing, and wireless telephony (for instance, using the JavaPhone API).
Support for various communication protocols and bearers TCP/IP, WAP, GSM, Bluetooth, IrDA, and serial line.
Full-strength encryption and certificate management, secure communications protocols, as well as certificate-based application installation.
Microkernel 32-bit operating system design, supporting multithreading and "background" services, as well as protected memory.
Important | The Symbian platform is ideally suited for running sophisticated, mobile Java applications. Symbian has officially committed to supporting the Java platform and a PersonalJava-compatible JVM is included on the Symbian platform. |
At the time of writing Palm OS owns 70% of the US PDA market. However, the question whether Palm Computing will be able to establish a strong foothold in the emerging communicator market will become clear during the next few years.
The Pilot-connected organizer was invented back in 1995. Before the advent of the Palm platform, Palm Computing was developing software for other handheld devices, working with many hardware manufacturers to have them adopt the vision of those at Palm Computing. This turned out to be a very difficult task and so Palm Computing decided to create its own hardware - and the Palm was born.
The fundamental idea behind its strategy was to grow a large base of customers using the devices as personal organizers, and then to focus on signing up developers to broaden their usefulness. Today the Palm Developer Network has attracted more than 50,000 developers.
The Palm OS platform consists of five primary components:
Palm OS software
Reference hardware design
HotSync conduit data synchronization technology for one-button synchronization
Platform component tools including an API that enables developers to write applications
Software interface capabilities to support hardware add-ons
The Palm OS platform architecture is shown diagrammatically below:
Important | The operating system design of the Palm OS is much more simplistic and less flexible than Symbian. For example, Palm OS supports neither multithreading nor multitasking. Also, the strategy of Palm Computing in respect to Java is unclear. The company has not officially committed to supporting Java on Palm OS. As of today, applications for the Palm are written predominantly in the C programming language and not in Java. |
Windows CE is Microsoft's 32-bit operating system for mobile devices and Pocket PCs. Windows CE implements the Windows desktop metaphor popular on PCs and laptops. In spite of a massive marketing effort, Windows CE has grabbed only a relatively small share of the market share to date. One reason might be that the desktop metaphor is appealing for PCs and laptops, but many users find it awkward on mobile devices.
The key features are:
Protected virtual memory increases reliability, since a faulty application cannot damage other running applications or the operating system services
Processes and threads allows Windows CE to execute multiple tasks or applications in parallel
Advanced power management
Advanced user interface services and components
Communications protocols TCP/IP, SSL, Serial, IrDA, Telephony API (TAPI), and SNMP
Although Microsoft does not officially support Java in its development environment for Windows CE, Java execution environments for Windows CE are available from several vendors. Typically, those Java environments are compatible with the PersonalJava standard.
Important | Protected virtual memory, 32-bit technology, and native threads make Windows CE an ideal platform for mobile Java applications. |
The following table summarizes the main characteristics of Symbian, Palm OS, and Windows CE, from the point of view of running JMS applications on them:
Platform | Availability | Features | Java Support |
---|---|---|---|
Symbian | Quartz: Now Crystal: 1Q/2001 Pearl: 2001 | 32 bit operating system, with low footprint and low resource usage | PersonalJava: Now J2ME: 2001 (Strategic for Symbian) |
Palm OS | Now | Simplistic 16 bit operating system design | J2ME: Now (Not strategic for Palm Computing) |
Windows CE | Now | 32 bit operating system | PersonalJava: Now (Not strategic for Microsoft) |
Other platforms to watch closely are embeddable variants of the Linux operating system, as well as realtime operating systems such as VxWorks and OS-9.