Welcome!

ColdFusion Authors: Yakov Fain, Maureen O'Gara, Nancy Y. Nee, Tad Anderson, Daniel Kaar

Related Topics: ColdFusion

ColdFusion: Article

ColdFusion in the Palms of your Hands

ColdFusion in the Palms of your Hands

I am completely hooked on my new wireless Palm! The Palm Pilot VII has changed the way I access information — I can find it anywhere and any time I need it. With the newest Palm I can check account balances in real time on DLJDirect, buy a book from Amazon.com and — using the popular Starbucks Finder application — find the nearest Starbucks. With so many useful wireless applications available, you might be wondering why you can't create your own with ColdFusion. Well, you can! And after reading this article, you'll be well on the way to writing your own wireless applications for the Palm Pilot VII.

Wireless Applications Background

I'm not the only one who's in love with the idea of wireless access to the Web. In a recent study it was reported that the market for wireless handheld devices could reach 500 million by 2003, which will create a huge demand for Web applications that are "unplugged" and optimized for wireless devices.

For developing wireless applications, two similar but competing protocols for wireless Web access have emerged. The first is the Palm Wireless Web Clipping Protocol — a proprietary but popular solution developed by 3COM. The second is the Wireless Application Protocol. WAP is a more open protocol developed by companies like Unwired Planet, Motorola, Nokia and Ericsson to provide wireless Web access to cellular phones. For this article I'll focus on writing wireless Web applications in ColdFusion for the Palm Pilot Web clipping protocol, and in a future article I'll discuss how to write ColdFusion applications for WAP. Even though these two protocols are different in their implementations, developing applications for each is quite similar.

The palm.net Service

The Palm Pilot VII is a wireless device that contains its own built-in antennae for wireless access to the Web. Once you bring your Palm home, it's easy to sign on and start surfing wirelessly on the Web — simply flip up your Palm's antennae and access the Activate Application to sign on. All it takes is a credit card and about 15 minutes to get started.

3COM charges an online access fee to access the palm.net service. This is a monthly service fee similar to what you'd pay an ISP for Internet access. The palm.net service is a bit pricey compared to your basic ISP costs, and also comes with limits on the number of bytes that can be accessed on a monthly basis. 3COM has basic, extended and volume plans that range from $10 per month to $40 per month, with each providing a greater number of KB per month. I purchased the volume plan and, in the first several weeks with fairly active use, I haven't used up even half of my quota.

3COM provides a Web site, www.palm.net, with a lot of great information about the service and a wide array of Web clipping applications that you can download. Available applications include Financial, News, Reference, Travel, Entertainment, Communication, Shopping and Enterprise applications. It also includes a Web browsing function that allows you to access any URL, many stock quote and online trading systems, an application to check airline flight times, and various shopping apps, including Amazon.

Web Clipping Architecture

At the heart of the palm.net service is 3COM's Web clipping proxy server. This server is responsible for converting the standard Internet protocols and content from normal HTML Web pages into a form that's optimized for low-bandwidth wireless transmission and for display on a small device. Figure 1 shows how the proxy server takes the HTTP, SSL and TCP standard protocols and compresses them for wireless access via the Palm Pilot VII.

ColdFusion applications work in this environment just like any other Web page. URL requests are made from the Palm. They go through the wireless network and the proxy to the ultimate destination of the Web server. It doesn't matter that the requested page is an HTML, a CFM or an ASP. As long as the actual content returned from the server is in HTML format that can be processed, compressed and sent through the wireless network, it should work just fine.

Does this mean you can just take your existing ColdFusion apps and make them accessible to the wireless network and they'll work? Well, not quite. As I'll explain in the following section, there are many considerations you have to keep in mind when developing unplugged (wireless) ColdFusion Applications.

The following steps demonstrate the flow of a Web clipping application when launched:

    1. If the linked page or graphic is installed on the Palm VII organizer, the page or graphic is displayed without downloading anything remotely.
    2. In other cases the Palm VII organizer compresses the query into a small file in Palm query format and sends this packet over the air to a local base station.
    3. The local base station relays the compressed packet to the Web clipping proxy servers on the palm.net service.
    4. The Web clipping proxy server translates the query packet into a standard HTTP packet and then sends the decompressed query to the appropriate Internet address. All communication between the Web clipping proxy server and the Internet server is via the standard Internet protocols of TCP, HTTP and SSL.
    5. The HTTP server returns an HTML clipping to the Web clipping proxy server.
    6. The Web clipping proxy server compresses the HTML clipping into a Palm proxy format file and sends it back to the local base station.
    7. The local base station relays the clipping to the Palm VII organizer, where the Web clipping application renders the page for viewing. Communication between the Palm VII organizer and the Web clipping proxy server is via the User Datagram Protocol (UDP).
The Basics of a Palm Web Clipping App

The basic mechanics of authoring Web clipping applications are similar to the mechanics of authoring Web pages in general. However, because of the constraints of authoring for a handheld organizer connected to the Internet via a relatively expensive radio link, you'll need to rethink your philosophy of design and implementation. The world looks much different when you're holding a small, low-power computer like the Palm VII organizer with its tiny screen, battery-powered operation and relatively slow and expensive wireless connection to the Internet.

Palm applications are called PQAs (Palm query applications). A Web clipping application is a PQA that is developed to take advantage of the wireless capability of the Palm VII.

The basic steps involved in writing a PQA application include the following:

  • Produce HTML pages and graphics to serve as the base for the PQA.
  • Convert the HTML pages and graphics using a tool called the Query Application Builder to produce the PQA file (to be reviewed later).
  • Test the PQA, using either the Palm VII organizer itself or a Palm Emulator, which allows you to run the PQA apps on your workstation.
  • Distribute the compiled file. Users install it with HotSync software on their Palm VII organizers.

    When developing Web clipping applications, follow the same rules as above. What makes a PQA a Web clipping application is that it has links to pages that are not stored on the Palm but are accessed remotely over the Web. These remote links are coded just like any other Web application link.

    Writing a Simple Web Clipping App

    The following example shows how you can create the most basic Web clipping application for the Palm Pilot. It's very simple. You can start out with the code in a single HTML file that does nothing more than display "Hello World." The entire HTML source code that's used to build the application is in Listing 1.

    The first step in turning the HTML file into a Web clipping app is to create a PQA file through 3COM's Query Application Builder, which can be found at www.palm.com/devzone. (Note that the domain for this is palm.com, not palm.net.)

    The Query Application Builder is a simple application that converts your HTML and image files into a single PQA file. Just select the File and Open Index menu to select your HTML file.

    Once an HTML file is selected, it's displayed in the Query Application Builder file window. If the HTML file referenced any local images, they'd be displayed here, as well as included in the PQA file (see Figure 2).

    Once the HTML file has been selected, choose "Build PQA" from the File menu. Then the Build PQA Dialog Box specifies the name of the PQA that is being created (see Figure 3).

    Note: The icons for this application default to the diamonds with the remote signal displayed on the right in Figure 3. For this application the defaults are being used. In the next example, using ColdFusion, an Allaire image is used for the application icon.

    Now that you've created the "Hello World" Web clipping application, you can install it to your Palm VII handheld using the Palm desktop software. This is the same process you'd go through to install any PQA application onto your Palm. Just add applications to the desktop software running on your workstation and then load the application to your Palm by synchronizing Palm's HotSync utility.

    Once you add and synchronize the new PQA, you'll see the new application appear on your Palm. Now we have a new application icon on our Palm called "Hello World" (see Figure 4).

    Clicking on the new "Hello World" application icon will launch our simple application. Figure 5 shows our simple application running on the Palm. Remember that so far we've only accessed local data. Next we'll get into accessing data over the Web.

    Writing a ColdFusion Web Clipping App

    In order to write a ColdFusion application for the Palm, we have to involve more than just local pages. As in the previous example, we must add Web clipping pages remotely over the Web.

    The two main components in a Web clipping application are as follows:

    • Web clipping application (also known as the PQA): This is an application you build using HTML, which is installed by the end user onto a handheld organizer. A Web clipping application is like a mini-Web site that's stored locally, so access to it is instant and free. The index page of the Web clipping application usually contains either a form or a list of links, which are the gateways to the live data provided by your server.

      The part of the application that gets compiled into the PQA must be generic and should include only what's not likely to change. If anything changes in the code that's compiled into the PQA, the application has to be redistributed and reloaded onto the Palm Pilots of all your users.

    • Results pages (clippings): Pages are returned by your back-end server after receiving a request from your Web clipping application. It's the key part of the overall application, and where all the real work gets done. These pages can be written in HTML, ColdFusion, ASP or whatever. The pages can pull in remote database information and behave similarly to browser-based ColdFusion pages. Images can either be referenced remotely or locally if they were pulled into the PQA. Referring to local images is very useful in saving precious bandwidth, but it leaves less room later to change those images without redistributing the PQA.

    The Web clipping pages developed as part of the application can also be accessed through a browser in addition to being accessible through the Palm. Does this mean you can develop an application and deploy it to both the browser and Palm? Not really. Since the Palm only supports a subset of things that can be done on a browser, the UI needs to be specific to the Palm.

    One strategy in deploying applications to both the Palm and browser is to separate the user interface from the business and database logic as much as possible so that business logic pages can be included in both the Palm and browser versions of the application. In many ways you can just treat the Palm as a very, very limited browser. The limited nature of this handheld device is equally true with the WAP applications. Web Clipping HTML Specifics

    Web clipping applications are written in a subset of the HTML 3.2 specification. Many of the usual tags for things like tables, forms, checkboxes, radio buttons, select lists and font sizes are supported. However, Web clipping applications don't support more resource-intensive features such as JavaScript, nested tables, frames, cookies or Java.

    Web clipping applications are designed to be small and to give users the information they need with minimum effort and maximum speed. Likewise, results coming from your server to a handheld device are designed to be small and to the point. Remember, this is not Web browsing, but Web clipping. Web clipping applications should be written to provide users only with the information they need, without any extraneous items. Try limiting the size of your result pages to about 400 bytes.

    There are two meta tags you'll want to consider incorporating into your Web clipping applications:

  • PalmComputingPlatform: Identifies your page as a "Palm Friendly" page — i.e., one that's been designed to work well on a small screen and isn't wasteful of bandwidth. When you include this tag, images will be rendered and the entire text will be displayed on the device. Otherwise, images will be stripped out and only the first 1,024 bytes of your page will display. This meta tag should be used on all of your local and remote clipping pages.

    <meta name="PalmComputingPlatform" content="true">

  • LocalIcon: Stores graphics and HTML documents not otherwise referenced locally within your Web clipping application. It is to be used only in local pages and should be placed only in the root page of the Web clipping application.

    <meta name="LocalIcon" content="images/palm_image.gif">

    Two other meta tags are also useful.

  • HistoryListText: Specifies the user-visible string for each clipping displayed in the history pop-up menu on the Palm. This meta tag can be used on all of your Web clipping pages.

    <meta name="HistoryListText" content="true">

  • PalmLauncherRevision: Sets the version string for your Web clipping application. To be used on the main index (or root) page of your Web clipping application. This string can be viewed in the Info window of the Applications Launcher. The version in my example below is 1.0, but it can be whatever is meaningful for your application.

    <meta name="PalmLauncherRevision" content="1.0">

    Web clipping applications also support secure HTTPS connections to make credit card purchases and stock transactions possible. The Palm indicates a link is an over-the-air secure link by automatically displaying the top icon at right on all anchor tags, except where a user-defined image is used. All other over-the-air links have the bottom icon at right next to the link. To ensure consistency with other Palm applications, user-defined images should include either the secure icon or the nonsecure icon.

    In Web clipping applications there are three types of links that you'll be using. The first is a link from one local page to another on the Palm — a remote link to a remote link. The syntax for this link is the following:

    <a href="about.html">

    The second type of link is from a local page to a remote page. The syntax for this link is the following:

    <a href=http://www.allaire.com/about.html>

    The third type of link is from a remote page to a local page stored on the Palm. The syntax for this link is the following:

    <a href="file:coldfusion.pqa/about.html">

    Since the Palm screen is much smaller than a browser page, graphics should be used with care. GIF and JPEG images are both supported by the Web clipping system. However, the usable screen size is only 153 pixels wide by 144 pixels high and only gray-scale images are supported.

    The idea in developing Web clipping applications is to keep the images small and to reference them locally wherever possible.

    The LocalIcon meta tag is used to store graphics locally, using the following syntax:

    <meta name="LocalIcon" content="images/palm_image.gif">

    It can be referred to remotely in a clipping page using the following syntax:

    <td><IMG height=30 src="coldfusion.pqa/palm_image.gif" width=30></td>

    Sample ColdFusion Application

    The following application shows how a ColdFusion application interacts with a PQA. The application is a simple ColdFusion application that contains a form that accepts a keyword and then passes it to a result page that queries a database of contacts and returns the results.

    Figure 6 shows the ColdFusion sample application that was created using the Query Application Builder and loaded onto the Palm. It is called ColdFusion.

    Listing 2 shows the code associated with the HTML file used to build the PQA. This form loads a local image to be displayed on the page and contains a link to my ColdFusion page (the Web clipping).
    This sample page makes use of a table that contains some text and a local image reference. In addition, it contains the link that references the remote clipping page developed in ColdFusion. The page on the Palm looks like Figure 7.

    Listing 3 shows the source code of the simple ColdFusion page that is loaded via the Web onto the Palm.

    This page makes use of an input form with a submit button that sends the form variable to the ColdFusion result page to query and display the results. The resulting page is shown in Figure 8.

    Listing 4 shows the ColdFusion code that accepts the form variable from the input page and performs the query to return the results back.

    This page makes use of a ColdFusion query tag that selects the list of matching contacts and an output tag that displays the results to the Palm screen. You can see what the page looks like on the Palm in Figure 9.

    Summary

    Developing wireless Web applications gives you the ability to roll out applications to handheld devices. This process allows access to those applications for users at any time and in any place. The Palm platform provides a very nice vehicle for deploying wireless applications in ColdFusion. Acknowledgements

    Portions of this article were taken from texts and articles on developing Web clipping applications from the Palm development zone

  • More Stories By Paul Elisii

    Paul J. Elisii is the founder and CTO of eTech Solutions, Inc., a Philadelphia-based e-business development company and a BEA partner. He is active in developing and researching emerging technologies for eTech Solutions.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    @ThingsExpo Stories
    The Internet of Things (IoT) is going to require a new way of thinking and of developing software for speed, security and innovation. This requires IT leaders to balance business as usual while anticipating for the next market and technology trends. Cloud provides the right IT asset portfolio to help today’s IT leaders manage the old and prepare for the new. Today the cloud conversation is evolving from private and public to hybrid. This session will provide use cases and insights to reinforce the value of the network in helping organizations to maximize their company’s cloud experience.
    Disruptive macro trends in technology are impacting and dramatically changing the "art of the possible" relative to supply chain management practices through the innovative use of IoT, cloud, machine learning and Big Data to enable connected ecosystems of engagement. Enterprise informatics can now move beyond point solutions that merely monitor the past and implement integrated enterprise fabrics that enable end-to-end supply chain visibility to improve customer service delivery and optimize supplier management. Learn about enterprise architecture strategies for designing connected systems tha...
    Cultural, regulatory, environmental, political and economic (CREPE) conditions over the past decade are creating cross-industry solution spaces that require processes and technologies from both the Internet of Things (IoT), and Data Management and Analytics (DMA). These solution spaces are evolving into Sensor Analytics Ecosystems (SAE) that represent significant new opportunities for organizations of all types. Public Utilities throughout the world, providing electricity, natural gas and water, are pursuing SmartGrid initiatives that represent one of the more mature examples of SAE. We have s...
    IoT is still a vague buzzword for many people. In his session at Internet of @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, will discuss the business value of IoT that goes far beyond the general public's perception that IoT is all about wearables and home consumer services. The presentation will also discuss how IoT is perceived by investors and how venture capitalist access this space. Other topics to discuss are barriers to success, what is new, what is old, and what the future may hold.
    Whether you're a startup or a 100 year old enterprise, the Internet of Things offers a variety of new capabilities for your business. IoT style solutions can help you get closer your customers, launch new product lines and take over an industry. Some companies are dipping their toes in, but many have already taken the plunge, all while dramatic new capabilities continue to emerge. In his session at Internet of @ThingsExpo, Reid Carlberg, Senior Director, Developer Evangelism at salesforce.com, to discuss real-world use cases, patterns and opportunities you can harness today.
    All major researchers estimate there will be tens of billions devices – computers, smartphones, tablets, and sensors – connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!
    Noted IoT expert and researcher Joseph di Paolantonio (pictured below) has joined the @ThingsExpo faculty. Joseph, who describes himself as an “Independent Thinker” from DataArchon, will speak on the topic of “Smart Grids & Managing Big Utilities.” Over his career, Joseph di Paolantonio has worked in the energy, renewables, aerospace, telecommunications, and information technology industries. His expertise is in data analysis, system engineering, Bayesian statistics, data warehouses, business intelligence, data mining, predictive methods, and very large databases (VLDB). Prior to DataArcho...
    Software AG helps organizations transform into Digital Enterprises, so they can differentiate from competitors and better engage customers, partners and employees. Using the Software AG Suite, companies can close the gap between business and IT to create digital systems of differentiation that drive front-line agility. We offer four on-ramps to the Digital Enterprise: alignment through collaborative process analysis; transformation through portfolio management; agility through process automation and integration; and visibility through intelligent business operations and big data.
    There will be 50 billion Internet connected devices by 2020. Today, every manufacturer has a propriety protocol and an app. How do we securely integrate these "things" into our lives and businesses in a way that we can easily control and manage? Even better, how do we integrate these "things" so that they control and manage each other so our lives become more convenient or our businesses become more profitable and/or safe? We have heard that the best interface is no interface. In his session at Internet of @ThingsExpo, Chris Matthieu, Co-Founder & CTO at Octoblu, Inc., will discuss how thes...
    Last week, while in San Francisco, I used the Uber app and service four times. All four experiences were great, although one of the drivers stopped for 30 seconds and then left as I was walking up to the car. He must have realized I was a blogger. None the less, the next car was just a minute away and I suffered no pain. In this article, my colleague, Ved Sen, Global Head, Advisory Services Social, Mobile and Sensors at Cognizant shares his experiences and insights.
    We are reaching the end of the beginning with WebRTC and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) ir...
    Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. It also ensured scalability and better service for customers, including MUY! Companies, one of the country's largest franchise restaurant companies with 232 Pizza Hut locations. This is one example of WebRTC adoption today, but the potential is limitless when powered by IoT. Attendees will learn rea...
    From telemedicine to smart cars, digital homes and industrial monitoring, the explosive growth of IoT has created exciting new business opportunities for real time calls and messaging. In his session at Internet of @ThingsExpo, Ivelin Ivanov, CEO and Co-Founder of Telestax, will share some of the new revenue sources that IoT created for Restcomm – the open source telephony platform from Telestax. Ivelin Ivanov is a technology entrepreneur who founded Mobicents, an Open Source VoIP Platform, to help create, deploy, and manage applications integrating voice, video and data. He is the co-founder ...
    The Internet of Things (IoT) promises to create new business models as significant as those that were inspired by the Internet and the smartphone 20 and 10 years ago. What business, social and practical implications will this phenomenon bring? That's the subject of "Monetizing the Internet of Things: Perspectives from the Front Lines," an e-book released today and available free of charge from Aria Systems, the leading innovator in recurring revenue management.
    The Internet of Things will put IT to its ultimate test by creating infinite new opportunities to digitize products and services, generate and analyze new data to improve customer satisfaction, and discover new ways to gain a competitive advantage across nearly every industry. In order to help corporate business units to capitalize on the rapidly evolving IoT opportunities, IT must stand up to a new set of challenges.
    There’s Big Data, then there’s really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at 6th Big Data Expo®, Hannah Smalltree, Director at Treasure Data, to discuss how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other mach...
    P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Erik Lagerway, Co-founder of Hookflash, will walk through the shifting landscape of traditional telephone and voice s...
    While great strides have been made relative to the video aspects of remote collaboration, audio technology has basically stagnated. Typically all audio is mixed to a single monaural stream and emanates from a single point, such as a speakerphone or a speaker associated with a video monitor. This leads to confusion and lack of understanding among participants especially regarding who is actually speaking. Spatial teleconferencing introduces the concept of acoustic spatial separation between conference participants in three dimensional space. This has been shown to significantly improve comprehe...
    The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, will discuss single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example...
    SYS-CON Events announced today that Gridstore™, the leader in software-defined storage (SDS) purpose-built for Windows Servers and Hyper-V, will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Gridstore™ is the leader in software-defined storage purpose built for virtualization that is designed to accelerate applications in virtualized environments. Using its patented Server-Side Virtual Controller™ Technology (SVCT) to eliminate the I/O blender effect and accelerate applications Gridsto...