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.
|