Web-Based Client/Server
Putting Database Management Systems on the Web

Mark M. LeBaron
NCI Information Systems, Inc.

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.