http://www.developer.com/

Back to article

A Survey of Wireless Options for Palm Developers


October 11, 2002

Introduction

Arguably there is no aspect of mobile computing that fires the public's imagination more than wireless communications. Indeed, when you contemplate the ability to access the vast wealth of the Internet from the Palm of your hand and communicate with friends and co-workers, anytime, anywhere, it is easy to see why there is so much pent-up excitement surrounding this topic.

It seems like we have been waiting for this marvelous future to happen for quite some time now. I remember just a few years ago attending a wireless and mobile computing tradeshow, and one of the speakers joked that, although many were calling that year the "Year of Wireless," the same tag had been applied to the previous ten years! The truth is that components of the wireless dream are in fact here, but depending on who you are, what your expectations are, and what you want to do with wireless, you might find that the realities of today's wireless capabilities fall short of the promise.

Part of the problem is that, like so many new technologies, wireless has been hyped to the point where it will take a very long time to live up to all the expectations involving pervasive anytime/anywhere fast connectivity. I will say that wireless is one of those few technologies in which the hype is well deserved: wireless will almost certainly fulfill its promise, and change the way we work and live. The problem is not whether it will or won't happen, but when. I think if someone stood up in 1980 and proclaimed that each of us would ultimately have a personal computer on our desk that had a 10GB hard drive and a 2GHz processor, they would clearly have seen their predictions come true, and given a long enough time span for it to occur, it might not have even seemed outlandish to predict. As usual, timing and expectations are so important as we try to forecast the future of computing.

What this article covers

This article provides a brief introduction to the landscape of available wireless communications options for software developers building mobile computing applications.

Specifically, you will learn:

  • Which wireless communication options are available
  • Hardware and software choices for each option
  • How to choose the right option for your application
  • The Palm SDK APIs that cover wireless communications

Subsequent articles in this series will build on this information, and provide more in depth, low-level treatments of some of these wireless technologies from the perspective of the Palm developer.

Options for Wireless Communication

There are by now a large number of ways for PDAs to connect wirelessly to other computers. Each method has its pros and cons, and for people new to the industry, these methods can be confusing to understand and choose from. It does not help that there are so many components to the whole solution, including hardware, software, adapters, protocols, carriers, and networks, many of which do not work with one another.

This section lays out the relevant connectivity options available today for Palm OS handhelds. Although it is beyond the scope of this series to explain the entirety of wireless communications (that's a book in and of itself!), you should still be able to get a good starting point for understanding the options.

I (somewhat arbitrarily) divide the options into two categories: short-range wireless communications and wide-area communications. As you'll see, there is some overlap in terms of the capabilities delivered to the users, but it's as good a categorization as any.

Short-Range Options

This section provides an overview of the short-range wireless communications options available to the Palm programmer. Among them are infrared communications, Bluetooth, and 802.11 (also known as Wi-Fi).

Infrared

Infrared communications have been bundled with every Palm device manufactured going back to the Palm III. Infrared communications can be used to create one-way and two-way information exchange between two PDAs, or between a PDA and an IrDA-compatible device such as a printer.

Infrared on Palm devices is the shortest and most limited of the short-range communications options. Connections must be "line of sight" (no obstacles blocking the beam), and must be within a range of approximately three feet. (Note that some Sony Clie devices come with an enhanced IR port that can communicate over slightly longer distances such as the width of a living room.)

On the handheld side of things, every PDA has all it needs to support infrared communications. An IR port comes with every device, an IrDA compatible stack is bundled with Palm OS, and the Palm built-in applications are all enabled to beam data to and from other PDAs.

For short-duration tasks, things such as beaming an address book entry from one PDA to another, or printing to an IR-enabled printer, infrared is very reliable. The line-of-sight requirement and the limited range of the beam combine to make this a poor choice for longer duration activities such as Internet communications. Furthermore, on the Palm OS there is no native support for TCP/IP communications over IR.

Infrared can be used for hot-sync, but obviously requires the host computer to have an infrared port.

Bluetooth

Bluetooth, a newer wireless communications protocol that has won industry support, addresses some of the limitations of Infrared described previously. In contrast to infrared, Bluetooth is not limited to line-of-sight connections; it can communicate around and through walls. It also has a wider range than IR, communicating with other Bluetooth-enabled devices up to 30 feet away.

Bluetooth also can serve as a base platform for supporting additional higher-level protocols, such as serial communications and TCP/IP. Thus it becomes possible to perform networking over a Bluetooth connection. Because it supports higher communication speeds than IrDA, networking of larger amounts of data becomes more feasible.

Bluetooth has potential for many of the same uses as infrared, including wider-range beaming of data among PDAs, and printing to Bluetooth-enabled printers. It can also be used for "personal area networks," providing communication among multiple devices in your personal space such as cell phones and pagers. Finally, with a Bluetooth network access point in range, it can be used as a gateway to accessing network resources including e-mail and Internet content.

The main problems with Bluetooth are availability and end-user experience. Unlike infrared, there are not any Palm OS handheld devices that come with a built-in Bluetooth radio, meaning that users will need to obtain a Bluetooth adapter from either Palm or a third party. Although prices are coming down for these adapters, they are still expensive enough to make one pause.

The end user experience is also less than seamless in today's Palm OS implementation. Because Bluetooth ports don't "point" at one another, Bluetooth must go through a bootstrap process of "discovering" other Bluetooth devices in the 30-foot range it is operating in. This can take a few seconds to perform, and when it is complete the users are presented with a list of Bluetooth devices to choose from.

If there is only one other Bluetooth device in range, this represents a simple tap. But in an office environment with many Bluetooth-enabled PDAs, printers, cell phones, access points, and other devices, the users must wade through screens of available devices to choose from. This can be frustrating and confusing to the end users who may already know the target device they wish to connect to.

Wi-Fi

Much excitement has arisen recently over the growth in a wireless technology known alternately as 802.11b (along with variations 802.11a and 802.11g) and Wi-Fi (a slang term commonly used in place of "802.11"). Wi-Fi is a way to wirelessly network computers over short-to-medium-range distances (up to several hundred feet, depending on an indoor or outdoor location). Like Bluetooth, Wi-Fi is non-directional, and does not require a line-of-sight to make a connection.

A Wi-Fi connection is typically made from either a PDA or a laptop to a wireless LAN access point. The access point connects to your network router/hub, and forms what can be thought of as an invisible Ethernet connection between the hub and any Wi-Fi-enabled computer in range. Speeds go up into the multi-megabyte range, making it suitable for larger amounts of data.

Wi-Fi is implemented with networking in mind, and thus is highly suited for file sharing, networked printing, office applications, e-mail, and shared Internet access. With Wi-Fi you can more or less do the same types of things you can do with a laptop and an Ethernet card. Wi-Fi access points are springing up in offices, homes, and public places like airports and coffee shops, providing laptop and PDA users with easy access to internal and public networks without requiring expensive cabling. It is even possible to "daisy-chain" access points, providing an expanded interlocking web of network coverage over a greater distance.

Because of the networking-centric nature of the Wi-Fi solution, it tends not to be viable for interpersonal communication such as beaming a contact to the person standing next to you. But as a method of connecting your computer to networks without wires, Wi-Fi is an excellent option.

As with Bluetooth, a current downside to Wi-Fi is availability. Although it is becoming common to see laptops with built-in Wi-Fi radios, Wi-Fi is still not widely available as either a built-in or even add-on adapter for Palm handhelds. Symbol has for several years made an 802.11-enabled device for its target markets, and also has produced a wonderful Compact Flash card implementation. An issue that manufacturers are wrestling with is power consumption, which can be higher than that of infrared and Bluetooth. Another is form factor, as the requirements of Wi-Fi have not matched well with the peripheral interfaces available thus far on Palm devices such as SDIO.

Despite the current lack of PDA support, it is apparent that Wi-Fi is spreading fast, and one can imagine that it will soon become rather commonplace in office environments and public places. With that kind of availability, it is hard to believe that we will not see Palm devices with built-in Wi-Fi support in the near future (in fact as a harbinger of the future, there are already PocketPC devices that are sold with Wi-Fi as an option).

Wide Area Wireless Options

This section covers some of the wireless communication options that provide PDA connectivity over very large distances, freeing the user from the need to be located in proximity to an access point or other source.

Wireless Data Networks

Over the past several years, several competing wireless data networks have sprung up, offering the equivalent of a dial-up networking account in ISP-like fashion, only without the need for a telephone jack.

A major downside to wireless data networks is coverage, which is very much dependent on location. Depending on your location, you may have excellent coverage, spotty coverage, or no coverage at all. Whether this matters will depend on how mobile you need to be. If your application will run primarily in high-density population areas and major cities, you will likely not have a problem.

If you cannot predict where your application will run, either because it will be used by people regardless of location, or because it will be used by people who are inherently traveling from place to place (here think of truck drivers or outside salespeople), the uncertainty of an available wireless connection can be a major barrier.

Coverage seems to be slowly improving, but it's easy to see that it will be a long time (if indeed ever) before wireless networks of this type will cover the entirety of the world's populated areas.

Another downside is the subscriber cost. Wireless networks incur a monthly subscriber account and a monthly charge, typically priced according to how much data is transmitted. Depending on how much data needs to be transmitted this cost can become significant, especially if you are equipping a number of PDAs with your application.

There is also the cost of a wireless PDA modem to consider. There is a wealth of modems to choose from, and that has driven down costs. Some providers even offer deals on modems if you subscribe to their wireless service. It's worthwhile to check around before buying.

Palm made a bold move several years ago by producing the first Palm OS-based handheld with a built-in wireless modem. The Palm VII, together with its successors the VIIx and i705, represent a good value for users who require fast and relatively inexpensive access to e-mail and Internet services. Palm's Palm.net service is reliable, and when combined with Palm's proprietary WCA, or Web Clipping Architecture, can deliver Internet data to the palm of your hand quickly and reliably. Palm's device is also easy to connect with, it is said to be "always on". Thus there is no need to constantly connect and disconnect, which is very inconvenient if you've ever needed to connect in a hurry.

A final aspect of wireless data networks to consider is the communications speed. Although much has been made of the impending rollout of high-speed wireless data networks, the harsh reality is that today's network speed ranges from poor to abysmal. If you are lucky enough to be in a location with good coverage, you will still suffer speeds approximately an eighth of the typical landline dialup connection. For tiny bursts of data, or very carefully architected software, this can be sufficient. It does not however make for a pleasant experience downloading e-mail or surfing the Web.

Cellular Phones

Much has been made of late regarding "converged" devices, which combine a PDA with a cellular phone in single handheld device. So called "smartphones" are being rolled out in increasing numbers by both PDA manufacturers and traditional handset manufactures. Thus far, Palm OS devices have earned an early lead because of their form factor, usability, and availability. After a rough start with the original Qualcomm entry into this device category, several appealing next-generation devices have been produced from Kyocera, Handspring, and Samsung. They each represent different takes on the balancing act between a cell phone with PDA and a PDA with a cell phone.

Along with providing traditional voice capabilities, these cell phone hybrids also offer data connection capabilities through the various cellular networks. They are typically bundled with messaging functions, e-mail, and a Web browser.

Unfortunately in my experience, although I like the idea of not carrying two devices (the cell phone and the PDA), the data networking functionality in these devices is lacking. The models available today are not always on, meaning an annoying dial-up connection that takes a minute or more is required each time you get on-line. Although that may not sound horrible, and indeed we have put up with that on our home PCs when we dial up to our ISP, in mobile situations where fast access to information is required, it can be frustrating.

As with wireless data networks, once you are connected, the transmission speed is extremely slow, and connections are frequently dropped. Thus wireless data through a PDA phone is more suited for messaging and short bursts of information (such as printing or fax) than it is for longer duration activities such as e-mail or hot-sync.

As with all of these technologies, no doubt the implementation and form factor will improve over time, so the predictions of all PDA's containing a phone component may in fact someday come true!

The Developer's Perspective

The Palm OS developer faces two challenges when faced with a requirement for wireless functionality. The first is choosing an appropriate target platform, including a device, peripherals, access point, and carrier (depending on the type). Note that if your application can function across multiple platforms (for example an e-mail client), you might need to account for a rather large list of compatible equipment.

One of the purposes of the previous section was to give you a sense of these targets, and help you evaluate the pros and cons of each as they relate to your requirements.

The second challenge is in choosing and learning the appropriate developer tools and information required to work on your chosen platform(s). This section matches the platforms with the available Palm OS APIs.

TCP/IP

TCP/IP is the most pervasive development option for Palm programmers in the wireless world. With the exception of infrared, all of the aforementioned communications scenarios can support the use of TCP/IP through the Net Library services offered by the Palm SDK.

Using Net Library is advantageous because it does offer the largest range of target environments, and also because it is so familiar across platforms. Socket-based programming is a worldwide standard, and networking code can be ported rather easily from UNIX to Windows to Palm.

Use TCP/IP and Net Library where you need to provide access to the Internet, and to shared network resources such as file servers, application servers, and print servers. A downside to using TCP/IP can be the complexity of setting up a connection. Most users do not understand (nor do they want to learn) the complexities of DNS naming and IP addresses. They simply want to connect.

Web Clipping

Palm's Web Clipping architecture represents a unique way of optimizing Internet access across a slow wireless connection. It is proprietary to Palm, and arose as part of the Palm VII device platform. However with the installation of the appropriate software components, just about any wireless device can be set up to support Web clipping.

For the developer, Web clipping comes in two levels. At the browser level, Web clipping defines a standard for a flavor of HTML that is tuned for PDAs and slow connections. Thus you can create Web applications that are efficient to use on Web-clipping-enabled devices. A good example of this is the MapQuest clipping application that comes with the Palm.Net service. It is designed to provide driving directions quickly based upon minimal user input, and it works well.

Web clipping can be used at a lower level as a C programming library in the form of the Palm SDK's Internet Library, often referred to as INetLib. INetLib offers a high-level HTTP-like interface for developers to tightly integrate Web clipping functionality in their applications. INetLib has unfortunately had a checkered history, beginning life as an available but unsupported library from Palm, to legitimate status in the SDK. Along the way rumors in the developer community have persistently speculated that INetLib support will be dropped at some future point. If you are specifically targeting Palm.Net capability in your program, it's worth looking into, but otherwise it may be safer to avoid using it until its future is more certain.

Exchange Manager

Oriented more towards the short range of the spectrum, Exchange Manager is most familiar to developers in the form of OBEX, which drives the beaming of data over IR. Exchange Manager is of course capable of much richer functionality than simple beaming, and is also extensible via plug-ins and helpers.

Infrared Library

Specifically targeted at implementing the IrDA specification in the form of a developer's library, Infrared Library (IR Library) lets programmers code directly to the IR port that is standard on all Palm OS handhelds. If your applications need tighter control over infrared communications than what's offered in Exchange Manager, IR Library is worth looking into.

SMS and Telephony

Messaging and telephony are specific libraries that can help you incorporate voice and data exchange into your Palm application. With the telephony APIs, you can build a full-fledged phonebook and dialer application for use on the new wave of PDA smartphones. The Palm SDK documentation contains discussions, function listings, and example programs that show you the way if these APIs are what you are looking for.

Summary

This completes the introduction to wireless communications options on Palm OS. I hope you will use this information to help you decide on a set of target devices, peripherals, access, and developer tools that are best suited to your needs.

Once you have decided which technology (or technologies) to explore further, I invite you to follow my subsequent articles in this series on wireless development for more detailed information. Communications programming is not for the faint of heart, and I recommend you obtain all the resources and examples you can to understand the scope of effort and knowledge required to successfully add wireless communications support to your program.

Palm's Web site (http://www.palmsource.com) is a good additional resource and starting point, as is the Palm SDK documentation. You might also want to visit Web sites associated with the specific technologies you choose to target, such as www.irda.org or www.bluetooth.com.

About the Author

Glen Bachmann is the founder and president of Bachmann Software, a provider of software products and software development services for handheld computing and wireless applications. Glen is also the author of "Palm Programming; The Authoritative Solution". This article was based on the newest edition of his book, "Palm OS Programming" from Sams Publishing (ISBN: 0-672-32413-X).

# # #

Sitemap | Contact Us

Thanks for your registration, follow us on our social networks to keep up-to-date