232 Chapter 6 • Web Clipping user’s device, the only way to change it is to have the user download the latest version of the WCA. NOTE You can find over 250 WCAs available for download at wireless.palm.net/ apps. Many applications have already been built to solve common fea- tures that are requested by Palm.net users (e-mail, messaging, news, shopping, etc.). You can also post your own WCAs for distribution to users. One of the best ways to learn how to build an effective Web clip- ping application is to see what others have done successfully, and, per- haps more importantly, to see what others have done unsuccessfully! The WCA is viewed using the Web Clipping Application Viewer, or Clipper browser, which resides on the device.The Web Clipping Application Viewer can send data to (and receive properly formatted HTML from) a Web server located on the Internet through a network of base stations and Palm.net proxy servers. In addition, a WCA can launch, and, vice versa, be launched by, local applications on the device. NOTE It helps to think of WCAs as miniature Web sites stored on the handheld device, and to think of Clipper as a Web browser, but remember that these concepts are not directly analogous. In actuality, a WCA is a Palm Database Format record set that is installed on the device. Its content is static and cannot be updated until a user installs a new version of the application. Likewise, Clipper itself is not a Web browser, per se, but rather a unique application that can render HTML stored in a WCA. Web clipping applications were formerly called Palm Query Applications (PQAs).The files created by the Web Clipping Application Builder are saved with an extension of .pqa, a vestige of their former nomenclature. In this chapter, we will use the term Web clipping application or WCA to refer to what we are building.When we refer to Web clipping we will be referring to the entire pro- cess, not just an individual part of it. www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 232 Web Clipping • Chapter 6 233 The Components of Web Clipping Since we are most interested in the wireless Internet, we will focus primarily on the client-server aspects of Web clipping and on the overall architecture of a typ- ical transaction.The basic architecture of Web clipping includes several elements. The basic flow is shown in Figure 6.1: the device communicates with a Palm.net Proxy Server via a wireless network (made up of base stations run by Cingular Wireless), and the Proxy Server communicates with a Web server via the Internet.Any traffic must flow through the Palm.net Proxy Server network in order to be sent to the device. Client-Side Components The client-side components of Web clipping are the Palm handheld device, the Web clipping application, and the Web Clipping Application Viewer.Another necessary component is a piece of hardware that is used to provide connectivity. The Wireless Device The handheld device is the actual hardware that runs the Palm Operating System (OS 3.5 or later). It will typically contain a processor, some memory, a screen, and an input device (usually a stylus, but sometimes a miniature keyboard). Palm cur- rently licenses their OS to a wide variety of vendors, including Handera, Handspring, and Sony. The Web Clipping Application This is, technically, a Palm Database Format record set that contains HTML and images. It is the application that you will build and make available for your users to install on their devices.You can create Web clipping applications using the WCA Builder.To create a WCA, you will need to create your HTML and images and import them into the WCA Builder.The WCA Builder will then scan your www.syngress.com Figure 6.1 Web Clipping Architecture Web Server Palm.net Proxy Server Mobitex Network (Cingular Wireless) WCA Viewer Internet 159_wg_wi_06 10/22/01 4:37 PM Page 233 234 Chapter 6 • Web Clipping HTML and convert your code into a format readable by the Web Clipping Application Viewer. The Web Clipping Application Viewer This is the program on the device that is capable of viewing Web clipping appli- cations. It will render the contents of the WCA through a browser-like interface. It is capable of interacting with servers on the Internet as well as device-resident applications on a Palm-powered handheld. The Connection Hardware This component connects the device to the Internet.This may be an embedded radio antenna, an attachable third party modem, or a user’s cellular phone con- nected to the device via a cable or Infrared (IR) connection. Server-Side Components The server-side components of Web clipping are the Mobitex wireless network, the Palm.Net proxy server network, and any individual Web server or server-side program (such as a CGI script) that is accessed over the Internet.The one consis- tent server-side component is the Palm.net proxy server network.This is the part of the architecture where the HTML from a Web site is converted to CML and sent to the device, and where the requests from the device are communicated to a Web server on the Internet. Mobitex Base Stations These radio stations are owned by Cingular Wireless and make up a wireless net- work capable of transmitting data at a rate of 9.6 kbps.These base stations are capable of relaying the ZIP code of a Palm VII transmitting wireless data. NOTE The actual speed of a Web clipping transaction will be slightly slower than 9.6kbps, due to Internet traffic and the processing that is done by the Proxy server. www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 234 Web Clipping • Chapter 6 235 Palm.net Proxy Server Network The Palm.net Proxy Server Network is made up of computers that handle the requests initiated by handheld devices.These servers will, in turn, send a request to other servers on the Internet on behalf of the device.They will then relay the response over the air in a format readable by the Web Clipping Application Viewer. Web Servers The final server-side component of Web clipping is the Web server that handles the forwarded request from the device and sends back a response in HTML.This request may be for a static file, or a CGI script, or other server-side script to gen- erate dynamic content that may handle the request. A Typical Web Clipping Transaction In a typical Web clipping transaction, a user downloads and installs a WCA on their handheld device; the WCA contains a form that allows the user to input stock symbols and retrieve quotes.When the user launches this WCA using the Web Clipping Application Viewer, they fill out the form and Clipper sends a request over the air to a Palm.net proxy server.The proxy server passes this request on to a Web server connected to the Internet. The Web server then responds by returning HTML that contains the latest quote for the requested stock symbol.This response is handled by the Palm.net proxy server, which encodes it into the appropriate format for Clipper and then sends the clipping over the air to the handheld device. Figure 6.2 illustrates what the user would see within Clipper after installing and launching the WCA. www.syngress.com Figure 6.2 A Typical WCA Response 159_wg_wi_06 10/22/01 4:37 PM Page 235 236 Chapter 6 • Web Clipping What Types of Hardware Support Web Clipping There are many different handheld devices that are capable of connecting to the Internet.The actual means of connecting will vary depending on your particular device. For example, the Palm VII/VIIx was designed for Web clipping, and is capable of interacting with the Internet utilizing a radio antenna that is part of the device’s hardware. Other Palm models may connect to the Internet via an external modem or cellular phone. Palm-compatible Smart Phones can install and use WCAs. In this section we will provide an overview of connecting many different handheld devices to the network. In some cases the hardware that handles the physical connection will be included in the device, and in others, the connection will be provided by additional devices.We will first discuss the Palm VII/VIIx, then other handheld devices connected via other networks. Lastly, we will discuss connecting the less costly handheld devices such as the Palm m100, m105, and Palm III series. NOTE The RIM 957 (Blackberry) e-mail pager can view the HTML contained in a WCA, but only if the .pqa file is directly accessible from the Internet (www.mysite.com/mypqa.pqa). A RIM pager does not fully support Web clipping. For example, it is possible for you, in your server response, to reference an image that is embedded in your compiled, device-resident WCA. The RIM will not be able to render the image because it does not store compiled WCAs on the device. Minimum hardware requirements on any of the handheld devices covered in this section are not an issue.You can take advantage of Web clipping just as easily on a Handspring Visor with a modem and 2MB of RAM as you can on a Palm VIIx with an integrated wireless antenna and 8MB of RAM.The number of WCAs that you can install on your device, however, will be limited to the avail- able memory.The bare requirements for most Palm-compatible devices are ver- sion 3.5 or later of the Palm OS, and some method to connect to the Internet. www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 236 Web Clipping • Chapter 6 237 Regardless of your method of connection, you will need to pay for some type of connection service.All of these various devices are connecting to the Internet via an intermediate wireless layer.This layer can be composed of many different service providers, hardware configurations, and wireless networks, and the solution differs depending on the device you are using. NOTE Once your handheld is connected to the Internet via any of the following means, you may also browse WAP content using a third-party browser. The most common browser at this point is the 4thpass.com Kbrowser, available for download at www.4thpass.com. Versions exist for both the Palm VII/VIIx and others, so make sure that you get the appropriate download for your device. Palm VII/VIIx Connected via Mobitex The Palm VII/VIIx models contain a radio antenna as part of their hardware configurations.This antenna connects to a network of radio base stations, run by Cingular Wireless.This Mobitex network carries data at a rate of 9.6 kbps, but, as mentioned previously, the actual connection speed may be slower due to delays in Internet traffic and proxy server translation. If you are using a Palm VII/VIIx, you will need to get a subscription to Palm.net in order to connect to this net- work and use Web clipping applications. You can activate this service from the device itself.The first time that you raise the wireless antenna, the Activate Setup program starts automatically.You can enter your registration and payment information and be up and running in min- utes.There are several different pricing plans available, ranging from about $10 per month to $45 per month. Each plan includes a base volume of transmission plus an additional cost per kilobyte.You can find additional details at http://myaccount.palm.net. Other Handheld Devices Connected via CDPD If you are using another Palm handheld device or other Palm-compatible device, such as the Handspring Visor, then it is possible to purchase and install a Minstrel modem that attaches to the unit.This modem operates on the Cellular Digital www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 237 238 Chapter 6 • Web Clipping Packet Data (CDPD) network, available across most of the U.S. Service may be purchased via AT&T,Verizon, GoAmerica, or Omnisky. Omnisky does not sup- port Palm models below the Palm V/Vx. Palm-Compatible Handhelds Connected via the Mobile Internet Kit The Palm Mobile Internet Kit (MIK) allows users of Palm handheld devices other than the Palm VII/VIIx to make use of Web clipping and other Internet- related applications.The Mobile Internet Kit may be used most any Palm hand- held, including models that were released several years ago. Included in the purchase of the MIK is a copy of the Palm OS 3.5 upgrade. The MIK works by allowing your Palm handheld to utilize a modem or a data-capable cellular phone to connect to the Internet, which can be done via a cable or via an Infrared (IR) connection.You may need to purchase a different cable depending on the model of your phone, but the general process is the same. You will not need to pay for Palm.net service, or purchase a monthly flat-rate account from a wireless network carrier. However, any connection time will cut into the minutes available on your cellular phone account. NOTE A list of compatible phones can be found at www.palm.com/software/ mik/phone.html. Essentially, the MIK uses the same procedure that some desktop computers use to connect to the Internet.The software of the Palm sends a data signal to the modem, which in turn transmits it to an ISP, which communicates with the Internet.You can use the same ISP as you do with your regular computer (with the exception of proprietary connection and mail protocols).This also eliminates the need for an account with Palm.net. As you can see, there are a wide variety of handheld devices that are capable of connecting to the Internet, and many ways of connecting these devices to the Internet. It is possible, however, to build and test WCAs without purchasing a device or paying connection fees.There is an emulator available that can run on your desktop computer and mimic a wireless handheld. In the next section, we will discuss the installation and configuration of the Palm Operating System Emulator. www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 238 Web Clipping • Chapter 6 239 Working with the Palm OS Emulator Once upon a time, back in the dark ages of 1996 and 1997, a gentleman named Greg Hewgill created an application called Copilot that emulated the software of a Palm Pilot on a desktop computer. In the beginning of 1998, Palm Inc. asked permission to take over the development of the emulator, and have since renamed Copilot to the Palm Operating System Emulator (POSE) and incorpo- rated it into the Palm OS Software Development Kit.The source code remains open and available.The POSE is available for download at www.palmos.com/ dev/tech/tools/ and is distributed under the GNU General Public License (GPL). In this section, we will cover the download and installation of the POSE on the Windows and Macintosh platforms. A UNIX version of this emulator is available in source code format. Source code versions of the emulator are also available for the Windows and Macintosh versions. However, it is not necessary to understand the inner workings of the Palm Operating System, or to understand how to install the emulator from source code in order to build a successful Web clipping application. For our pur- poses, we will be using the emulator only as it applies to Web clipping. Downloading and Installing the Emulator The Palm Operating System Emulator is available for the Windows and Macintosh platforms as a compressed archive (.zip or .sit).You must be running Windows 95, 98, or NT or Macintosh OS 7.5 (or higher) to install the POSE. To install the POSE on a Windows or Macintosh system, download the archive and extract it to a local folder using your favorite compression utility. Windows users will be familiar with WINZip, and Macintosh users will be familiar with Aladdin StuffIt Expander.A restart of your system is not necessary to install the emulator. Installing the application is only the first step, however. In order run the emu- lator, you will need to obtain a Read-Only Memory (ROM) image of the oper- ating system.There are two places to obtain access to a ROM image: 1. Transferring a ROM image from an existing device that you own. 2. Registering with the Palm Developer Program. www.syngress.com 159_wg_wi_06 10/22/01 4:37 PM Page 239 240 Chapter 6 • Web Clipping Transferring a ROM Image It is possible to transfer the ROM image of the Palm OS from a handheld device to a desktop computer.This is done by first installing a transfer program onto the device, and then initiating a transfer of the ROM image to the POSE.The appli- cation required to perform this transfer, ROM Transfer.prc, is included in the download for the POSE. To transfer a ROM image from a handheld: 1. Install the Palm OS application named ROMTransfer.prc (included in the emulator download) onto your handheld device. 2. Place the handheld in the HotSync cradle that is connected to the computer that contains the Emulator program. 3. Start your handheld and start the ROM Transfer application (see Figure 6.3).You can also select a port speed here. 4. Start the POSE and select Download from the startup screen (see Figure 6.4). 5. Press the Begin button on the dialog box containing instructions and port selections (use the same port and speed that connects to your hand- held). Once you press Begin, the POSE will wait for a response from your handheld (see Figure 6.5). 6. Tap the Transfer Now button on your handheld. 7. Be patient while the process completes. www.syngress.com Why Do I Need a ROM Image? The Palm OS emulator allows you to emulate only the device hardware. To install any applications on the emulator, or even to start it up, you will need to obtain a copy of the Palm OS. It is possible to transfer a ROM image from a device you own (see the next section), but it is recom- mended that you join the Palm Developer Program (www.palm.com/ dev/) to ensure that you know exactly which version of the OS you are installing. You will need to obtain a ROM image of version 3.5 or higher. Developing & Deploying… 159_wg_wi_06 10/22/01 4:37 PM Page 240 Web Clipping • Chapter 6 241 www.syngress.com Figure 6.3 Start the ROM Transfer Application on the Handheld Device Figure 6.4 Download the Image from the POSE Figure 6.5 Select Port and Speed of Transfer 159_wg_wi_06 10/22/01 4:37 PM Page 241 . www.palm.com/software/ mik/phone.html. Essentially, the MIK uses the same procedure that some desktop computers use to connect to the Internet .The software of the Palm sends a data signal to the modem, which in turn transmits it to an ISP,. handle the requests initiated by handheld devices.These servers will, in turn, send a request to other servers on the Internet on behalf of the device.They will then relay the response over the. fill out the form and Clipper sends a request over the air to a Palm.net proxy server .The proxy server passes this request on to a Web server connected to the Internet. The Web server then responds