May 20, 2000

Handheld Computers

Four years ago Palm created the first successful PDA. Today it holds an 80% share of the market for handheld computers. Its most serious competition is a family of devices from various vendors based on the Windows CE operating system. In some ways the competition between these two systems is reminiscent of the earlier Macintosh-Windows battle. Users become familiar with a device and develop strong preferences. This paper will address objective questions like programming and communication interfaces.

OS

The Palm OS was originally designed for a device with 512K of memory and no hard disk. Subsequent models doubled and redoubled available memory until the current generation of devices (IIIxe, Vx, IIIc) have 8M RAM at the same or lower prices than the original model. Although the Palm OS was modified to allow use of larger memory, it retains its original base architecture and processing speed. It is almost impossible for an ordinary user to use anywhere near the full 8M.

Windows CE is a scaled down version of the Windows 9x operating system. Just booting the system seems to use up 3M of the RAM, and with Pocket versions of Word, Excel, IE, and (in some models) Access it is fairly simple to fill a typical 16 or 32M system. CE devices typically have a slot for a plug in "CompactFlash card". The most common use for the card is to add 32 to 128M of non-volatile memory to hold large files as an alternative to disk storage. Although CE appears to be big and sloppy, it is not architecturally constrained by a small memory design. Early versions of CE were unsuccessful because the hardware had not caught up with the design. Today the available processor and memory technology can support CE competitively with Palm. In subsequent generations of technology, CE may be more flexibly designed to take advantage of additional power.

Until recently, a Palm system cost $300 to $450 while CE systems typically cost $600 to $800. Today, however, the street price of the high end 8M Palm Vx or IIIc ($400 to $450) is in the same general area as the HP Jornada 540 (16M $420), the Compaq H3650 (32M $470), or the Casiopeia 115 (32M $530). 

Palm has allowed its operating system to be used on "clone" devices like the Handspring PDA. However, the supported hardware has been tightly controlled. This allowed the operating system to remain small, tight, and lean. The screens have 160x160 pixels although subsequent models and versions of the OS have supported progressively deeper levels of gray and now color. Since all data is held in memory, Palm doesn't need to support any type of disk devices. All communication is based on some type of serial communication (direct to the PC, over IR, or through a modem).

CE inherits a wider range of device support from its parent Windows 9x system. USB is standard for all the new Pocket PC systems, allowing faster synchronization of data with the desktop system.  The new Pocket PC devices all have 240x320 pixels with 16 bit color, although specialized CE devices (the "Windows Terminals" from companies like Wyse) support full size PC displays. CompactFlash form-factor cards can provide additional memory, small disk drives, or 10BaseT Ethernet adapters. The Compaq H3600 family can plug into an external expansion cradle that exposes  a PC Card slot for laptop adapter cards. Although CE has support for all these devices, it is necessary to confirm support in the particular CE image installed in any particular model.

Data

Since the Palm OS only supports memory resident data, it dispenses not only with device support but also with any type of file system. Data is contained in "records". Each application is bound to an in storage collection of these records that Palm refers to as a "database". This is a misleading name, because the Palm "database" has neither tables nor keys. It is, rather, a list of similar records scattered through the memory but logically chained together. Each record has a common initial header followed by content that is specific to the application. The Calendar application database holds events, the address book database records hold names, addresses, and phone numbers. New applications downloaded to the device create their own database (of mail files, HTML pages, whatever).

CE also stores its data in memory. However, CE organizes the memory as a virtual disk with a standard windows hierarchical structure. There is a \Windows directory and a \Program Files directory. If the user selects the simplest type of hardware expansion and installs a CompactFlash non-volatile memory card (the same card used to hold pictures from digital cameras), then the flash memory is treated as a new directory called \Storage Card. Microsoft has released to developers a "proof of concept" Redirector that provides connected CE devices with access to files on an NT Server, but more development is required before this could be available to end users.

Palm data is downloaded from or backed up to the PC through a utility called HotSync. Architecturally, HotSync is designed to synchronize the records in each Palm database to a corresponding backup file on the PC hard disk. Instead of copying the Palm data byte-for-byte, HotSync operates through an extensible programming interface called "conduits". A programmer can create new conduits in C++ or Java. HotSync presents records through a programming interface to the supplied conduit code. That code could simply store data in a simple PC file or database structure. However, the more interesting conduits translate between the Palm record format for particular types of data and corresponding PC applications. For example, the Meeting Maker application on the PC translates between the Palm calendar event record format and the Meeting Maker central network based Enterprise event database.

The corresponding CE utility is called Microsoft ActiveSync. Since Microsoft has its own set of proprietary PC-side applications, it has a strong bias to synchronize address book, notes, to-do, and mail data to Outlook 2000 (and potentially through it to a central Enterprise Exchange server). However, there is a conduit-like programming interface that allows a PC programmer to manage any type of data and any host application. However, separate from the synchronization function, the CE utility has another important function. When the CE is powered up and connected, the ActiveSynch utility has an Explorer button. Click it, and a window opens on the PC desktop that displays the CE device virtual file system as if it was a directory shared from a network file server. The user can then use drag and drop to move or copy files between the PC and the CE device. ActiveSync is configured with a set of COM classes that act as "filters" for particular file types. Although this looks like an ordinary copy, the data passes through the configured filter as it moves between the PC and the handheld device. Microsoft provides filters that simplify the format and content of some file types. Word documents (*.doc) for example are converted to the less sophisticated format supported by the Pocket Word application. The translation is transparent to the user, although the user should realize that any file that is copied to CE and then copied back to the PC may lose more sophisticated formatting and programming elements.

The Palm is generally accepted to be a simpler and more intuitive device for the applications around which it was originally designed. If all you need from a PDA is a place to store phone numbers and calendar reminders, then the Palm is easy to learn, easy to use, and cheap. However, if you want to carry around any other type of data, then the CE has some clear advantages. Information formatted as a Word document, spreadsheet, or HTML file can be simply copied over to the CE file system and viewed through the Pocket versions of Word, Excel, or IE. On the Palm, it would be necessary to install extra cost viewer programs and the data transfer and repackaging is not so intuitive.

Networking

The Palm exposes a programming interface to its serial port. Some programs use this to communicate with attached serial devices, like a GPS. IBM has some code that allows the Palm to act as the hardware console for rack mounted RS/6000 computers. There is also a low level interface to the IR port that has been used to exchange data with other devices. HP, for example, has code to print files to JetSend equipped printers. However, most communication uses TCP/IP over PPP either through a direct serial connection to a desktop PC or over a modem.

From the user's point of view, there are three types of Palm "networking".

HotSync Proxy - In the simplest case, the Palm acquires network data (E-mail messages, Calendar events, HTML pages) during its HotSync exchange with the PC. In this arrangement, the desktop PC has the real network clients (Outlook, Meeting Maker, AvantGo) and the Palm synchronizes data through conduit code with these desktop applications. In some cases the conduit code appears to act as a "proxy" forwarding Palm requests to the real network.

PPP - Palm OS does provide a network "socket" programming interface to TCP over PPP over the Serial Port. Typically this is used when the Palm is connected through a modem to an ISP. A few applications directly implement higher level network protocols (IMAP, HTTP) on top of this interface. This allows the Palm to host an independent mail client or Web Browser.

VII - The Palm VII has built in wireless networking. Surprisingly, this is not based on top of the standard serial networking stack. Due to limited bandwidth, higher per-byte cost, and security considerations, the entire Palm.net structure has been engineered to deliver compressed, encrypted, clipped Web pages over a UDP based protocol from proxy machines distributed through the Bell Atlantic system. A program cannot use the TCP/IP "socket" programming interface on the Palm VII wireless network, and it cannot use the wireless API (based mostly around submitting a URL and retrieving the response) on standard serial port networking.

The Palm VII was designed to be a one time only, special case, groundbreaking, technological dead end. There are newer, faster data transmission options for wireless systems, and there are emerging industry standards (WAP?) for the formatting and compression of Web data for wireless transmission. Palm is promising a second generation of wireless technology by the end of the year that will apply to all current models. Meanwhile, Omnisky is preparing to launch a wireless modem that clips onto the Palm V or Vx and delivers real TCP/IP and Web access. The cost is $300 for the modem and $40/month flat rate for the service (through the AT&T wireless network).

The CE provides a stripped down version of the standard Windows 9x networking. As with the Palm, the serial port can be connected to a modem to provide dial-up network access. CE handheld devices can be directly connected to Ethernet though a CompactFlash 2 form factor adapter card (take care, because the HP Jornada supports only CF1 cards). The Compaq H3600 has a clip-on expansion unit that supports PC Card adapters. CE has built-in support for any device that emulates the old NE2000 standard, and the Cabletron Roamabout 802.11 PC Card specifically mentions CE support. It would be necessary to research and test any particular combination, but architecturally CE offers a full range of network connectivity for mobile campus computing contexts.

EIA RS-232

Now that hotel rooms have Ethernet jacks and home computers connect over DSL or cable modems, you probably thought you could forget anything you ever learned about serial communication technology. Not so fast. You can buy specialized modems that connect to specific Palm or CE devices and provide wire or wireless communication. If you want to use an existing cell phone and connect it to multiple devices, then you have some problems to solve.

All the handheld computers come with a "null modem" cable that ends in a nine-pin female connector (DB9F) that can plug directly into one of the serial ports on the back of a desktop or laptop computer. There is no orderable part number for a cable that can plug into a real modem. You have to order or build a 9 pin male to male (DB9M-DB9M) crossover cable. You will not find this part in a computer store. You can order it from a Web source that specializes in cables, like www.blackbox.com. If you decide to build it yourself, the cable must cross the transmit (TD) to the receive (RD),  RTS with CTS, and DTR with DSR at both ends. You can ignore the DCD and RI pins.

Even with the cable, it is difficult to configure the necessary parameters into the handheld device. You have to provide the phone number (of the ISP), a userid and password to sign on, and you have to set the communication speed. The direct connection to the PC may run at the highest possible speed, but a cell phone may not respond unless the port is running at 19200 baud. Then you have to find the control that will dial the phone and establish a connection. On the Palm, dialing may be triggered by an individual application (Mail, Browser) rather than by the system itself.

If it doesn't work, there are no messages. Do you have problems with the cable, line speed, phone number, userid, password, or server configuration? These systems don't come with even basic network diagnostic tools like "ping". It is unlikely that general types of network applications can be successfully mounted without some professional expertise.

Browser

The Palm VII comes with the "Clipper" Web browser that supports the special data format of Palm.net. A number of public data sources produce "clipped" Web pages suitable for display on a PDA or Web-enabled phone. Data originates as ordinary HTML on standard Web servers and is reformatted by the Palm.net proxy servers before it is transmitted over the wireless network.

The most widely used Web service for Palm devices is provided by AvantGo. The user downloads a software package and installs it on the desktop PC. It configures a conduit to the HotSync service and downloads a browser into the Palm. The user then goes to the www.avantgo.com web page and creates a free account with a userid and password. The user then creates a profile of information sources and can create new "channels" of information from any publicly accessible Web site. Whenever a HotSync calls the conduit, it connects through the network to the AvantGo server to obtain updated Web pages.

The basic AvantGo service is free. An Enterprise can pay money to obtain a more powerful version of the Browser (with some JavaScript support) or to buy its own AvantGo Web Server (to vend proprietary data to authenticated users). However, there is no public documentation of the AvantGo data format.

The Pocket PC systems come with the Pocket IE Browser. Full documentation on CE 3.0 and its components should be available in June. Generally Pocket IE is described as being somewhere between IE 4 and 5. There is JavaScript support but no VBScript. There is some support of DHTML and CSS.

Pocket IE supports the AvantGo service. When the device is actively connected to the Internet (though a modem or LAN), Pocket IE can directly access ordinary Web Servers like any other Browser. It is also the application associated with every *.htm or *.html file downloaded to the CE file system.

Programming

Programming is something you don't generally want to do on the Palm itself. The native application development environment is C++. Most proposed applications involve the download, search, update, and synchronization of what amounts to database rows. If the Palm can operate on such data disconnected from a central data source, then a solution to this sort of problem is provided by Pendragon Forms.

Sun has released a "proof of concept" version of its KVM Java to developers. However, the Palm OS is neither an embedded system nor any type of modern OS. It has no threads, no file system, a non-standard network API, and a specialized user interface. So the Sun version of Palm Java doesn't conform to any of the Java platform standards and, given the limitations of the system and device, may never rise to the level of a standard product.

It is relatively simple to write a Conduit. Conduit code runs in the PC under the HotSync program. Palm provides free development kits to develop Conduit code in either C++ or Java. Through a Conduit, the Enterprise can merge additional eventsinto the Calendar, or additional text into the Notes database, or additional names into the Address Book. The organization can take control of the applications that the Palm already does well.

CE is a real operating system. It supports the most important elements of the WIN32 API, including User Interface, file system, WINSOCK, COM/DCOM, and ADO. Microsoft supplies programming support through Visual C++ or Visual Basic. Sun was able to port a full function Java to CE and is now supplying to developers an implementation of the Java 2 Micro Edition (J2ME) specification. A programmer can use any PC IDE to build and debug a standard AWT application. Then copy the CLASS or JAR files to the CE device and run them on the handheld device.

Programming in increasingly a question of combining components. The Palm has no component architecture, or even a method for communication between applications. CE supports COM and ActiveX. Pocket IE, for example, supports JavaScript and some DHTML elements and can be embedded as an ActiveX component in other applications.

Conclusions

The Palm succeeded while the Newton failed. This has generally been attributed to a strategy of ":Less is More." Keep it simple, cheap, and make sure it works. Most people only need the address book and calendar functions. If you need wireless support now, the Omnisky Palm Vx looks like a better but more expensive choice than the Palm VII. If Palm follows its traditional strategy, its second generation wireless technology later this year will probably target the "pager" market with simple messaging and news/stocks/weather. Although subsequent models have had more memory, no attempt has been made to upgrade the processing power.

Although it is possible to put a database or data entry form on a Palm, the device is not architecturally suited for new applications. The Palm and CE devices do not really compete for a common market. CE cannot match the Palm for price and simplicity when all you want is the address book and calendar functions. Palm cannot match CE for programmability and extensibility.

When considering new Enterprise applications that require a highly portable data entry or access device, one should not start the design by considering devices that individuals are already using for personal business. Development, software, and communications cost will generally be far greater than the hardware acquisition.