Through recent advances in World Wide Web and Database Management System (DBMS) technology, the best features of both technologies can be combined to provide client/server DBMS applications over the Internet. The result is Web-Based Client/Server computing, which sends and receives dynamic data over the Internet by creating HTML files on the fly.
When a project
requirement for a Web-Based Client Server (WBCS) system first arose in
November of 1995, I had to comb through several periodicals each week just
to find a single relevant piece of information on the subject. I assumed
that some organizations were already doing it, but found that those few
innovators were writing tedious custom "C" and "Perl"
programs based on the Common Gateway Interface (CGI) standard. Many of
these organizations were not even accessing true database management systems
(DBMS), storing data in ASCII text files instead. These were hardly high-level
development tools that the industry periodicals would cover in detail.
Tools to create WBCS systems were scarce at that
time. Searches through the Internet, periodicals, Computer Select, and
even attending the Comdex convention to find the best tool, produced a
grand total of four development tools for web-enabling database applications.
Of the four tools, only two were open enough to enable web access to various
major brands of DBMS; the other two were proprietary.
About a year later, however, the environment has
changed dramatically. Entire articles are now devoted to WBCS development
in the major industry periodicals. All major DBMS vendors offer proprietary
means to put dynamic data on the web. Third-party tools are now much more
abundant and open in nature, allowing use of WBCS applications to access
data from various major DBMS brands. Even certain operating systems have
built-in WBCS development tools. Most, if not all, of these tools provide
a generic, yet customizable gateway between the web server and the DBMS,
eliminating much tedious coding. Indeed, huge and exciting steps forward
have been taken in a short period.
With the emergence of the Intranet, Java, and
the popularity of the World Wide Web (WWW), information systems (IS) managers
and developers must ask, "Is there anything to this for serious application
development?" This article provides developers and managers with insights
into the technology so that they can arrive at their own answers to this
question.
What Is It and What Is in It
for Me?
WBCS computing uses a typical web browser to access and manipulate dynamic
information, stored in a centrally controlled DBMS, over the Internet.
This is an alternative to the current client/server model, in which a custom-written
graphical user interface (GUI) application accesses and manipulates dynamic
information stored in a DBMS using proprietary communication software.
WBCS generates HyperText Mark-up Language (HTML) pages on the fly to provide
the latest information via the WWW.
Figure 1. Flow of a simple WBCS scenario.
Is This Truly Client/Server Computing?
In the simplest sense, WBCS computing fits the definition of client/server
computing because it involves two or more pieces of software performing
separate tasks in conjunction with one another to accomplish a common goal.
The web browser, for example, can be thought of as a generic client that
handles the display of information and processes the user interface events.
As the server, the DBMS accepts and processes client requests for data
and data manipulation.
How Does WBCS Work?
When it comes to dissemination of information, there is probably no better
alternative than the WWW; however, the WWW can only do this in the form
of static files. This means that dynamic data from DBMS would have to be
"dumped," stored as static HTML text files, then indexed before
it could be accessed via the WWW. Obviously, this is not a practical method
to distribute dynamic information. By the time information has been dumped
and converted to HTML formatted files, the information in the DBMS will
surely have changed. And depending on the method used and the number of
records involved, to convert the records into HTML-formatted files can
be too resource consuming.
Although the WWW is a great way to disseminate
static information, the DBMS has been and will continue to be the best
way to manage and maintain dynamic information such as inventory records
or employee files. A DBMS comes equipped with powerful query and manipulation
languages such as SQL that provide a means to search, sort, and update
information. Also, a DBMS allows automatic enforcement of any desired data
integrity rules.
Although a DBMS is a powerful tool to manage complex
information, the average user finds that gaining access to the DBMS and
using the query and manipulation languages is a difficult and tedious undertaking.
Therefore, application programs are created to automate and simplify many
of the tedious tasks of information management.
Most recently, the "client/server" model
for DBMS application development has been the model of choice. This model
takes advantage of advances in desktop personal computer (PC) and networking
technology by off-loading some of the processing from the computer that
runs the DBMS (the server) to the user's PC (the client). Ideally, users
should see a dramatic increase in the response of the DBMS because the
server no longer has to provide and process a user interface for each person
using the DBMS. The DBMS only has to process requests to manipulate data,
and the user interface is instead processed on the user's desktop PC.
Although the client/server model has many advantages,
it also introduces more levels of complexity into development and support
of a DBMS application. Additional software for communication between the
server and the client is needed; client PC's may not be powerful enough
to run the user interface, and distribution of software to each user's
PC can be tedious and extremely expensive. I have often heard developers
long for the "good old days" when the entire application and
user interfaces were run on the same processor, and everything from application
distribution to user support was much simpler.
Fortunately, recent advances in WWW and DBMS technology
have provided new ways to combine the best features of these two technologies
to provide client/server DBMS applications over the WWW. The result is
WBCS computing, a powerful combination that disseminates and manages
dynamic information well.
How It Works
1. A user runs a web browser on an Internet-enabled
PC. The browser sends a request for a particular HTML text file over the
Internet to an Hypertext Transfer Protocol (HTTP) web server. The web server
responds by finding and sending the requested file to the browser.
2. The web browser displays the file to the user
according to the HTML formatting tags found embedded in the contents of
the file. The user views the document and is presented a menu of various
selections that correspond to work transactions or perhaps fills out a
data entry form. The user selects one of the menu options or submits a
completed data entry form.
3. The browser sends the web server a request
for a specific document that corresponds to the option that the user selected.
The request might include parameters, such as entry data, that are specific
to the action the user chose.
4. The web server interprets the request as a
command to run a particular server-side process. The server initiates the
server-side process.
5. The server-side process logs into the DBMS
and executes a data manipulation or query language command that corresponds
to the menu option chosen by the user.
6. The command might select records based on certain
search criteria or even change values for a certain record, depending on
the action that the user chose. The server-side process merges the results
of the DBMS command with a pre-defined set of HTML tags, thus building
an HTML page on the fly.
7. The server-side process passes the new HTML
page to the web server, then disconnects from the DBMS and shuts the connection
down.
8. The web server sends the new HTML page to the
web browser. Depending on the action that the user originally chose and
the results of the server-side process, the browser could display an HTML
page containing actual data retrieved from the DBMS, a message stating
that data has been changed in the DBMS, an error message from the DBMS,
or another appropriate message.
The most important aspect in the above scenario
is that the HTML page sent by the web server to the web browser is generated
dynamically and only upon request. It is not stored statically as a text
file, and therefore, it is not necessary to manually maintain the information
in static text files. Any dynamic data embedded in the HTML page is actually
stored and managed in the DBMS and can be temporarily presented to users
as HTML pages upon request.
How Does WBCS Fit into the Intranet
Concept?
The Intranet concept applies Internet and WWW networking technology to
create a miniature, private Internet within an organization's network boundaries.
It can be thought of as the "Organization Wide Web." The Intranet
concept has appeal because it provides a simple, yet effective way for
organizations to publish and manage internal information. This brings about
improved communications within the organization and allows people to perform
their work more effectively. Ultimately, all of this results in better
overall organization performance. Good examples of something that an organization
would typically publish on an Intranet would be employee benefits information,
safety policy information, or management announcements.
WBCS is an important half of the Intranet concept.
Using WBCS allows Intranet users to access and manage the latest dynamic
information, such as inventory quantities, product prices, stock quotes,
phone numbers, and also reference more static information such as corporate
policy or employee handbooks--all from a single access point.
Benefits of Web-Based Client Server
Better Customer Service
Using WBCS, organizations can gain a competitive advantage by providing
better service to their customers. For example, customers could browse
through a catalog of product information, select an item, then submit a
completed order form without leaving their homes or licking a single stamp.
The order would be immediately placed into the company order database for
processing, rather than arriving a few days later in the mail and awaiting
data entry. The order can be automatically processed and stock levels appropriately
adjusted, assuring that accurate and timely information is available to
the next subscriber.
Platform Independent Applications
Web browsers are now available for nearly any platform. If users have a
web browser and Internet access, their access to your application is assured,
regardless of the platform they are using. This eliminates the need to
create separate applications for each distinct platform.
Using a web browser running on my Intel-based
PC at home, I can access and use a WBCS application that runs at a customer
site. When I use a web browser on an IBM RISC/6000 located at my employer's
remote branch office to connect to the same application at the customer
site, the application looks, feels, and acts the same as it does when I
access it from home. Yet no additional coding had to be done to allow access
to the application from either platform.
Easier Software Distribution
and Configuration Management
(Upgrades and Primary Releases)
New applications and upgrades need only be deployed to a single target-the
web/database server. This eliminates the need to install a client application
on every PC, assuming that users have access to a web browser and an Internet
connection. If the user's machine is already "web-enabled," providing
access to the application could be as simple as informing the user of the
associated Universal Resource Locator (web address).
As a corollary, with WBCS applications there is
no need to worry about which clients are running which version of the application
because all clients use the application that is stored on the web server.
The payoff continues to grow throughout the life of the application, because
you save not only the work of distributing the initial release, but also
that of each successive release.
Reusable Training
The web browser can be viewed as a generic client that can be used to access
many applications. Because of this, users naturally have an easier time
learning how to use new applications. Conceptually, if they can already
use a web browser, becoming proficient on a new WBCS application should
be simple.
Cheaper GUI Interface
Web browsers are cheap, if not free, and are readily available. This means
that the basic GUI functionality of the application is already complete
before you start to write application code, eliminating the need to pay
for, develop, and distribute a custom GUI and any associated run-time executables.
In fact, many of your users likely already use a web browser for other
purposes.
Simple Remote On-Line Transaction
Processing
Ideally, users at branch offices or those who constantly travel will have
simple access to the latest information from almost anywhere in the world.
By allowing remote transactions to update the database as they occur, rather
than using after-the-fact "batch" uploads, databases can contain
up-to-the-minute information.
Imagine a salesperson sitting in a client's office
using a WBCS application to display the latest pricing information or to
check inventory quantities. Take it a step further and imagine the same
salesperson entering the client's order into the application, which automatically
allocates the proper quantities of products in inventory as "no longer
available" so that other salespeople around the world automatically
know the true inventory quantities.
What Web-Based Client/Server Is Not
Not a Reason to Cut Corners
WBCS does not eliminate the need to perform thorough system analysis and
design with proper documentation (not to mention process redesign). Although
this would appear obvious to most developers, experience has shown that
each time a new technology emerges, many assume that the newer (and hopefully
better) tools automatically eliminate the need for developers to understand
the process behind the system and the business need associated with that
process. Furthermore, many assume that because the tools are highly advanced,
testing is almost unnecessary.
From there, promises are made based on the erroneous
assumptions. The promises are later shown to be impossible to deliver,
causing the customer to become dissatisfied with the project. Management
gets frustrated with the developers and their new tools. The developers
say, "We tried to tell you!" Then, it all starts over again when
the next batch of new tools emerge. The point is that developers must always
understand the process and associated business need before they can develop
good software to support it.
Not Yet a General Replacement
for the Current GUI Model
WBCS is a relatively young technology and cannot yet be thought of as a
complete replacement for the current client/server model. However, the
rapid acceptance and incredible growth of the WWW has created a demand
that all but guarantees a supply of tools and capabilities to overcome
the problems that are currently keeping WBCS from being accepted as the
new client/server model.
Not for the Technically Challenged
HTML is so easy to learn and implement that almost anybody can create a
web page. However, there is a huge difference between linking a few static
web pages and implementing a WBCS application. The level of expertise far
exceeds placing simple HTML codes in a text document. At a minimum, team
members must have expertise in the following areas before attempting to
develop a WBCS application:
If possible, find someone who has experience in WBCS system development. These people are difficult to find, but their understanding of the concepts, the technology, and the pitfalls helps others become proficient and keeps the project on course.
Drawbacks of Web-Based Client/Server
Slow Internet Speed
WBCS works, but works slowly. For Intranet applications, however, users
should not see a drastic difference compared to traditional client/server
application speed.
Among many reasons for the Internet speed problem
is that HTTP passes individual files back and forth between machines over
telecommunication lines, and it takes time for the web browser to interpret
and display each file to the user. To improve the speed of WBCS applications
on the Internet, eliminate unnecessary graphics from WBCS applications,
pay for faster Internet access methods, and deploy multiple web servers
and application instances to disperse network traffic.
Eventually, the enormous growth in demand for
a better, faster Internet will bring about solutions for the speed problem.
Ironically, growth in demand also plays a major role in the slow-down.
It stands to reason that until the growth of Internet access demands slows
down enough for supply to catch up, speed will continue to be a problem
for WBCS applications.
Limitations of HTML
In its current state, WBCS applications cannot provide users with the fancy
interfaces provided by applications constructed with other GUI development
tools. Applications designed with these types of tools can be customized
to complete complex transactions from a single screen. Although WBCS applications
still do the job right, complex transactions may require that the user
navigate several simple screens rather than use a single complex screen.
An example of this drawback is that HTML forms
currently have no built-in method to perform input validation or masking.
To the web browser, everything entered into HTML form is just text, which
means a server-side process must perform data validation after the entry
has already been submitted from the browser. If there is a validation error,
the server-side process must send an HTML page back to the browser to inform
the user of the error. This is not as efficient as having a client-side
process perform the validations before the data is submitted.
Java, ActiveX, and other similar tools promise
to allow development of more complex user interfaces for WBCS applications.
Also, certain other proprietary browser "plug-ins" allow more
complex client-side processing, as long as the HTML page has been designed
to trigger the browser plug-in and instruct it how to operate. When deciding
whether to use such proprietary client-side tools, a key consideration
should be that using these tools could nullify some of the major benefits
of WBCS, such as platform independent applications, easier software distribution,
and a cheaper GUI.
More Complex Security Issues
Because of the open nature of the Internet, security of WBCS data is a
serious issue. Extra steps must be taken to ensure that private information
remains private. The level of security required for your application depends
on the volatility of the information being passed between the web server
to the browser. Internet security cannot be fully covered within the scope
of this article; however, following are some points to consider:
Summary
WBCS uses a typical web browser to access and manipulate dynamic information
stored in a central DBMS over the Internet. WBCS already provides solutions
to developers who want to eliminate hassles typically associated with client/server
computing, and it promises to deliver even better solutions in the future.
Benefits of WBCS include but are not limited to
As with all information systems, the decision on what technology to implement should be based on a solid investigation into the users' functional requirements. Implementation of WBCS systems is technically challenging and requires a team of professionals with a broad skill set. With the great benefits of WBCS come several drawbacks that must be accepted or circumvented using extraordinary means. These drawbacks include but are not limited to
The prospect of being able to conduct DBMS transactions over the Internet from almost anywhere in the world is at minimum an intriguing concept for application developers and IS managers. At best, WBCS technology will mature to become the new client/server model and make the jobs of IS professionals easier until something better comes along. As WBCS technology matures, and as demand for its benefits grows, IS managers and developers will find it increasingly necessary to understand it.
About the Author
Mark LeBaron is a senior information systems engineer for NCI Information Systems, Inc. His core technical expertise is in delivering client/server systems that provide graphical user interface, World Wide Web, and telephony access to database management systems. He has previously worked as a software engineer for Morton International's Automotive Safety Products division and as a project data manager for Bio/West, Inc. He received a bachelor's degree in information systems management from Utah State University. |
NCI Information Systems, Inc.
370 S. 500 E. Suite 130
Clearfield, UT 84015
Voice: 801-776-1085
Fax: 801-776-1000
E-mail: lebee@xmission.com
Real Life Demos of Web-Based
Client/Server
NCI has created two Web-Based Client/Server (WBCS) application demos that
show how a WBCS system actually looks when it runs.
The employee demo is an application for maintaining
a list of employees over the World Wide Web (WWW) and was originally created
as a proof-of-concept under direction of DISA. Although the application
is simple, it serves its purpose as a demo because it forces the user to
authenticate himself, then allows authenticated users to create new employee
records, retrieve existing employee records from the database, update existing
employee records, and delete existing employee records. Other interesting
features include dynamically populated drop-down list boxes and association
of a particular image with a particular employee record (if a picture exists
for the employee).
The Environmental Assessment Tracking System (EATS)
is an application that allows full creation, retrieval, updates, and deletion
of Air Quality Assessment forms (Form 813) over the World Wide Web. The
application was created under the direction of Air Force Materiel Command's
Ogden Software Development Activity (MSG/SO) and is currently deployed
for use within the organization's Intranet and across Hill Air Force Base.
In both of these demos, the HTML pages are generated
on the fly, so the information displayed on them is the latest available.
This can be verified by updating an existing record or by creating a new
record and then "reloading" the query page in your browser. When
you do so, you will see that your new records are available in the appropriate
drop-down lists and that any updates are now displayed on the appropriate
freshly-generated pages.
Behind the scenes, these demos use the Oracle
Webserver product to receive and process HTTP requests from the user's
browser. The Webserver passes requests for dynamic information to a generic,
yet configurable executable, which attaches to an Oracle database. Once
attached to the database management system, the executable runs a stored
SQL procedure that processes the data manipulation request by executing
appropriate SQL statements based on parameters passed from the browser.
The Oracle Webserver and RDBMS are hosted on an
IBM RS6000 Power PC, which also hosts a telephony integration product from
IBM called DirectTalk/6000. Among other things, DirectTalk/600 allows access
to our database management system via a common telephone. We plan to submit
an article and provide a demo covering telephony-based client/server in
the near future.
You can access both demos using a standard web
browser to connect to the following web site:
http://www.nciinc.com/
Find and click on the link to the Web-Based Client/Server
Demo page. Carefully read and follow the instructions provided.