Part 1 presents an introduction to the general concept and
benefits of using dynamically generated WAP applications, as well
as an introduction to ColdFusion. Those experienced in both dynamic
WAP applications and ColdFusion will want to skip to Part 2:
Preaching to the Choir.
What is a Dynamically Generated WAP Application?
A dynamically generated WAP application is one whose contents
are created on the fly, perhaps based on data in some central
database. An example might be a presentation to a client of their
list of stocks in a stock tracking application. They only want to
see their own list of stocks, and so the relevant information is
obtained from a table of such data.
The deck and cards presented to the user to show them their
choices are offered in WML (or HDML, if you prefer). There's
nothing special about what is sent to the client/browser: it's the
same as the WML that you would create by hand in a static WML
page.
Code Generated by a Server-side Application
Rather than being a fixed set of choices coded in WML by hand, a
dynamically generated WML deck will be created by a program running
on the web server from which the user requested the information.
This creates a kind of two-tier system, where the back end (or
processing layer) is separated from the presentation layer. The
program will run in a web application server environment, of the
kind that has traditionally been used to create dynamic HTML
applications.
Suitable web application servers include Microsoft's Active
Server Pages (ASP), Allaire's ColdFusion, and JavaServer Pages (as
provided by a tool such as JRUN). Perl is another traditional web
application development environment. All of these environments have
been employed by web application developers to create dynamic HTML
applications, and each of them can be used similarly to create
dynamic WAP applications.
The example offered above - generating content from a
database - is perhaps the most obvious possibility for
dynamically generated web applications. It opens the door both to
making existing enterprise data available for display on browsers,
and to creating databases specifically for use by dynamic web
applications.
That leads naturally to another possibility: creating two-way
applications.
Two-way Applications
In a nutshell, two-way applications prompt the user for input,
and serve information in response to specific requests. Examples of
two-way applications include search engines or data entry pages. In
web pages, such capabilities are generally enabled by HTML forms.
WML offers similar user input capabilities, but while WML does
offer mechanisms to process and manipulate user input on the
client, there's not nearly the power and versatility of processing
input as there is on the server with a tool such as CF, ASP, JSP,
or Perl.
When a WML page calls upon a server program written in one of
these languages, the latter can perform processing that results in
the generation of a web page (either HTML or WML). The server
program is written in the language of the server development
environment (Visual Basic, CFML, Java, Perl, etc.) but the result
sent to the user in response is HTML or WML.
The server program might search for data based on user input,
store that user input in a database, or cause records to be updated
or deleted. Furthermore, it could send e-mail based on the WAP
client's request, or communicate to another process on the server
on the client's behalf. Finally, the user will receive a WML page
that shows or explains the result of their request.
What Makes Dynamic WAP Applications So Great?
For a web site (HTML or WML) to be dynamically generated is a
clear sign of its maturity. Dynamically generated web sites open up
many possibilities for visitors and the site owner alike.
Personalization
One of the most important benefits is customization of content
based on the user's preferences or their permitted access to data.
Personalized sites are a worthwhile design goal because they are
much more responsive to the needs of the end user, and serve to
make the user feel better about the 'browsing experience'.
Personalization starts with the identification of the user in
such a way that they can be uniquely associated with their profile
of preferences or authorized access. In the development of HTML
applications, the traditional means of identifying users is by way
of a login form - and cookies are used to remember a user's
authentication over multiple visits.
One difference with wireless browsers is that some mobile phones
can offer a means by which to identify the user uniquely. Not all
phones do, but this approach can provide assurance of the visitor's
uniqueness without violating their privacy, making personalization
even more powerful. If a phone doesn't offer such a facility, or
the user has chosen to disable it, the more traditional means of
login authentication (a login form) is available. Also, some phones
(or gateways) now support cookies too, although the support is thin
and not something you should presume just yet.
Site Security
An extension of the features enabled by personalization, where
we determine the identity and authenticity of the user, is that we
can also limit what parts of the site the user is authorized to
see. This enables important data to be made available to the user
without concern that it may be viewed by an unauthorized party, as
might be the case with a static web site. (It's true that web
server security can be used to protect static data, but there are
times when developers are unable to control web server security
configurations. In such cases, they can create programmatic
security.)
Database Query and Update Processing
As mentioned earlier, another important benefit of dynamic sites
is database query and update processing. A WML deck can provide a
search interface, and a server program can search the appropriate
database table (or site search index). Perhaps more powerful still
is the ability to store, update, or delete database data based on
user input. Mobile applications can provide substantial benefit
when users can provide and update data from the field.
Generating e-Mail
Yet another benefit of dynamic sites is that the server program
can generate e‑mail based on actions performed on the client.
Perhaps a form will simply lead to mail being sent as a direct
result - giving the user the opportunity to provide site
feedback, for example. Another use of e‑mail is the generation of a
message based on some activity taken by the user, such as the
updating of a database in response to registering their details on
a site.
Integrating Other Content
Still another possibility is to integrate content from other
applications, or even from other sites. For example, the server
program might request data from some other program operating on the
server. Perhaps that other program is written in another
programming language?
There are several mechanisms available for the mediation of such
inter-program communications: Component Object Model (COM) and
Distributed COM (DCOM) in the Windows environment, Common Object
Request Broker Architecture (CORBA) in most other environments, and
Enterprise JavaBeans (EJB) in Java programming environments.
Some server programming languages offer a means to gather
information from other web sites. Such tools can parse the content
gathered from another site for presentation to your visitors.
Scheduled Content
Finally, one of the biggest benefits of dynamic content is that
you can use server-side scheduling features to cause generation of
content at a particular time, on either a recurring or a once-only
basis. This can cause the server to reflect data changed based on
scheduled content, or in wireless browsers this can be more
powerfully employed by taking advantage of WAP's 'notification' or
'push' capabilities.
With notification (a feature offered in the proprietary but
widely supported Phone.com WAP architecture), content is
sent to the browser, rather than the browser coming to a site
to request content. Notification processes are most often
associated with such features as messages sent to warn of dramatic
changes in stock prices. More practical applications could include
notifications based on changes in business processes (stock
outages, site break-ins, etc.). The WAPForum's 1.2 standard is
due to add a 'push' feature that could be used in similar
fashion.