What exactly are Web-Applications?
January 25, 1999
Web-based applications are computer programs that execute in a
web browser environment. An example of such an application
would be an online store accessed via Netscape Navigator or
Internet Explorer.
Amazon.com
is a high profile example of this. Amazon has
a proprietary "Web Store" application
that they use to sell books and compact discs online.
Built on the foundations of the
World Wide Web, such
applications can be run anywhere in the world at any time and
are completely cross platform. Web applications provide
a rich interactive environment through which the user can
further define their unique online experience. Without web
applications to breathe life and provide user-interaction, a
web page is limited to static electronic text.
The Generic Web-Application
Regardless of the specific tasks they perform, all web
applications do the same things generically. Specifically,
all web applications must do the following:
- Get data from a user on the web - Traditionally,
getting the user data involves creating and serving
a user interface such as a
Java
GUI
or an
HTML/
DHTML
form. The user interface submits user supplied data
by sending it using
GET or
POST requests to the
web server that is serving the user interface. The
web server will then pass the data to a server-processing
agent (application) such as a
CGI script,
Java Servlet, or
server-integrated API script such as Cold Fusion or mod_perl.
Typically, the developer must code the user interface and
be able to process data going from the user interface to the
server-processing agent.
- Validate the user's data - Once the data has been handed
off to the server-processing agent, the agent must check
the data submitted to make sure it is valid. Such validation
might include making sure a date is a valid date (i.e.
not Oct 34,-1000), making sure a price is valid (i.e.
not $123.98ASDF-1), or making sure the incoming data is
safe for processing (ie: not exec `rm *.*`;). An agent
might also communicate with other processing agents such as
a credit card validation service.
Typically, the developer
must define the logic of validation and embed that into the
web application.
- Process that data - Once the data has been validated, the
agent must process it. Processing often involves 1) data
storage and retrieval and 2) inter-application communication.
- Data Storage and Retrieval - Often a web application must
have access to data from some data source like a
RDBMS database
or a local file on the web server. Web applications
usually need to be able to read and write to these data
sources.
- Inter-Application Communication - Web applications also need
to be able to work with other application resources such as email,
fax-gateways, paging-gateways, encryption protocols and even other web
servers.
- Typically the programmer must spend most of her time defining
the logic of the workflow. This is the piece that is
most often thought of as the web application. For example
you might specify that a data source should be opened, a
specific data row should be selected based on a given keyword
and search description, and the row should be updated based on
the submission of a Structured Query Language (SQL) statement.
- Respond to the client who submitted the request
in the first place. Usually, the developer will
code the server agent to send an
HTML or
Java based
response to the client based on the processing. However,
this might also be as simple as a dynamically generated
thank you note
HTML
file and/or an e-mail receipt.
In performing these generic functions, a web application
should be
- Secure - Both the privacy of the data and the
access to supporting server resources must be secure.
- Scalable - The application must be able to serve
one client at a time or one hundred thousand clients
at the same time without a noticeable degradation of
service.
- Fast - The execution of the application must appear
rapid to the user even within the context of clogged
Internet bandwidth.
- User-Friendly - The application must be so simple to
use that a user on the web should need no or minimal instructions
in order to perform the task they want to complete.
- Maintenance-Friendly - Because web application services
must change so rapidly, the application must be built
so that it can be modified, fixed, or maintained with
little cost of time or money.
- Reusable - The cost of reinventing agent processing
for each task is too great. Processing agent technology must
be reusable between projects if it is to be useful.
As you can see, designing a web application represents quite
a bit of coding.
Extropia WebWare Suite 2.0: Towards a New Application Development Framework for Server-Side Web-Based Applications in Perl and Java
Extropia WebWare Suite 2.0: Towards a New Application Development Framework for Server-Side Web-Based Applications in Perl and Java
WebWare 1.0:The Old Framework
|