“You mean you can connect these Palm things?” is the second question most people ask me when I tell them that I’m writing a book on Palm OS network programming. The first is, “I’m sorry, what is your book about?”
This book is for software developers who are comfortable with the basics of Palm OS programming and are interested in developing networking applications for the platform.
The past five years have seen incredible growth in both the Personal Digital Assistant (PDA) market in general, and the Palm OS Platform in particular. While any book on Palm OS programming is unlikely to appear in Oprah’s Book Club, the Palm V did appear as a Christmas Gift pick, almost two years ago.
At the beginning of 1999, there were seven Palm OS-based devices from Palm (at that time a division of 3Com), IBM, and Symbol Technologies. Today there are dozens of devices from Handspring, Sony, TRG, and many others, as well as a stream of new devices from Palm, IBM, and Symbol. These devices have rapidly expanded into the consumer, professional, and enterprise markets. And these markets still remain relatively untapped.
Wireless networking technologies are maturing. Local Area Wireless Networks (LAWNs) that cover an office or building are becoming more common in mainstream applications. The Personal Area Wireless Network (PAWN) technologies, of which Bluetooth is the most famous, are maturing rapidly.
Mobile phone and PDA technologies are converging. Qualcomm’s pdQ married a Palm OS device with a mobile phone. It never quite found its niche, but it was a foreshadowing of the latest gadgets. Handspring sells a Springboard device that turns your Visor into a mobile phone. Each vendor provides an expansion port for its device; we can expect many interesting combinations in the future.
The rise of peer-to-peer networking provides an excellent opportunity for network-enabled handheld computers. Peer networking applications act as both clients and servers, tapping into a web of peers for support. Desktop-based peer-to-peer applications allowing users to share music, pictures, and ideas have exploded into the marketplace and public consciousness. These applications reveal a deep-seated desire for people to communicate.
The convergence of handheld, wireless, and peer-to-peer technologies will allow people to communicate as never before. Some of the infrastructure for this glorious future is already complete, but there is still a way to go. There are already networking applications available for the Palm, but there are a lot more Palm devices out there that are not connected, just waiting for the right connection.
In the beginning, there was the Pilot 1000. This was a lean machine with 128K of dynamic memory. It had everything it needed for the built-in applications and no more. It was soon followed by the Pilot 5000. The dynamic memory was increased to 512K, but this increase went straight to the storage heap.
The design goals for these early devices were simple. The device had to be small enough and light enough to fit in a shirt pocket. And it had to survive on two AA batteries for at least three weeks at a time. None of these devices supported networking; their only link to the outside world was through the HotSync.
The introduction of the PalmPilot in 1997 opened the
door to network connectivity. The standard
PalmPilot came with 512K, but the Professional model had 1 MB, just
enough for a protocol stack. The new operating system introduced
networking support. The Net Library (a.k.a.
NetLib) provided the
developer with access to this protocol stack.
We discuss the Net Library in Part II of this Book.
Network support was added primarily to enable network HotSync. This allowed users to synchronize remotely with their desktops. Palm then introduced a wired modem to provide dial-up connectivity. Loading the protocol stack consumed most of the available dynamic memory, but a careful developer could shoehorn a network application into the few remaining resources. Not many did, but it was a start.
The Palm III, introduced in 1998, was a huge step forward in Palm networking, even though it added little to the available networking support. Billed as “The Connected Organizer,” the new device came with 2 MB of dynamic RAM. Even after loading the protocol stack, there were still enough resources left for networking applications.
GoAmerica provided wireless Internet access and bundled Novatel’s Minstrel III wireless modem with a Palm III and a service contract. Using a custom browser, users could surf the web and check their email anytime and anywhere. As long as there was coverage.
Version 3.0 of the OS included an updated Net Library, Version 2.0. The changes to networking support were minimal.From a network application perspective, the main benefit of the new OS was the increase in memory. This left more room for building network applications after the network protocol stack was loaded.
With great fanfare and emotion, Palm introduced the Palm VII at their developer’s conference in October, 1998. The Palm VII was a groundbreaking device that integrated a wireless radio into the Palm form-factor.
The Palm VII used a different version of the operating system, Version 3.2, which included a different version of the Net Library, also designated as Version 3.2. Version numbers of the OS and Net Library have been the same ever since. The updated Net Library provided undocumented support for wireless networking, which was available to only a few third party developers. For the rest of the Palm developer community, the only access to the wireless radio was through the Internet Library.
The new Internet Library (
wireless access to web content and email messages. Only HTTP and mail
requests were allowed through Palm.Net’s proxy servers, which
discarded requests that it considered inappropriate and stripped
everything but text and images. This library is not useful for
general networking applications, so we do not cover it in this book.
Since the Palm VII, a wide variety of Palm OS devices have appeared. Palm has introduced the IIIe, IIIx, V, Vx, IIIc, IIIxe, m100, m500, m105, and m505. There have been four versions of the operating system: 3.1, 3.3, 3.5, and now 4.0. Almost nothing was added to the Network Library in any of these versions.
As Palm devices came and went, compelling alternatives appeared from Symbol Technologies, IBM, Qualcomm, Handspring, TRG, Sony, and other licensees. Each had its own mix of proprietary connectors and proprietary expansion capabilities. It was a hardware developer’s nightmare. Modems and other network connection peripherals have appeared for many of these platforms, but the plethora of competing connector standards means that users often need to buy a new network connection peripheral when they buy a new Palm device, especially if they switch vendors.
Network application developers have been more insulated from these changes. Each licensee provided its own version of the OS and protocol stack. Access to this protocol stack is through the Net Library interface. A well-written network application should run safely across the entire range of connected organizers, regardless of who has made them.