Mohammed Shamma Impact of Multimedia and New Information Resources
December 4, 1998 Professor Howard Besser

Methods for Planning and Developing Web-Centric Database Applications

Since the emergence of the Web, connected users now have the capability to access a number of distributed database applications through their client browsers with what most often seems to be an interface that requires no prior knowledge of database usage. Indeed, it is perhaps this new ability to use the database in a relatively easier manner that has made Web-centric database applications so popular. For example, the moment a user enters the Yahoo Web site they are interfacing with a database. Much is the same for portal, news, E-commerce, personalization sites and so on. This database functionality is now perhaps a necessity since the nature of online information has become so volatile that the data itself would most often be "outdated" if left up to human hands to process.

Both product developers and marketers have indeed reacted to this need to automatically process and manage online information among Web developers, and have released products as well as books claiming to provide information or tools on how to enable database applications via the Web. Web publishers now have a number of decisions ahead of them when deciding on which method to choose for the automation of information processing and management within their site. Among the most commonly database enabling methods are static and dynamic table building, CGI interfaces, and Java interfaces. Given this, it is the objective of this project to compare and contrast these methods by deploying the same database across all methods comparing its functionality, ease and efficiency of development and scalability.

The database example used in this project is that of an image database intended to serve as a digital counterpart to the Ancient Egyptian Art Collection at the Brooklyn Museum. It consists of three main tables: an artifacts table that contains the artifact descriptive metadata as well as images files, a keywords table that lists all possible keywords used in searching the database, and finally an artifact keyword index that links the artifacts to their keywords. It is both distributed and deployed as a CD-ROM product and implemented with a Tcl based interface. For the purpose of this product the database was migrated from its source to a Microsoft Access database from which the three main methods of database enabling were then applied.

Static and dynamic table building is perhaps a more simpler method than the CGI and Java methods in terms of process, but gets very complicated as the scale of the data management increases. Static and dynamic table building are grouped together because they are essentially the same process, however one is dynamic (i.e. it changes as the database source changes) and one is static (i.e. a copy of the source without any dependency). This method involves converting the source table or copies of those tables and/or views to a format viewable by the Web browser (HTML). The developer will export the data from the source to HTML format directly or to a text format that will later be converted into HTML. Then the appropriate revisions are made to the HTML files as if they were entirely hard coded. (See screenshots 1 | 2 | 3) This method is perhaps a more appropriate method if the Web developer is in a restricted environment that does not allow CGI or Java interactions. Clearly almost all functionality is stripped from the database because this method is more similar to a data export than Web database enabling. In addition to that, this method is not efficient since these exports have to be made each time the data is changed. However it does save the Web developer time in having to format each table into its HTML counterpart. Currently most database products claim to offer "Internet migration assistants" within their package that perform this method automatically for the user. The static example in this project was developed using the Microsoft Access Internet Assistant.

The CGI method is a bit more complicated in that the Web developer is required to know a small amount of programming to successfully deploy the Web enabled database as it is now an application that communicates with the database and the user. The method used in the CGI example for this project is the Cold Fusion method which requires the Web developer to not only have more permissions on the Web server, but also that they have the Cold Fusion Application Server running and accessible to the Web server and the database. Developers deploy ".cfm" files (Cold Fusion Files) that are essentialy a hybrid of HTML and Cold Fusion Markup Language (CFML). These files can then read both by the Cold Fusion Application Server and the Web server in much the same way that a Perlscript file can be read by the Perl interpreter as well as the Web server. The Cold Fusion Application Server makes the necessary SQL commands to the database while the browser sends the form action or URL parameters to the Web server. This method is perhaps the most popular of all three because most of the end-user functionality (search queries) can be preserved while, at the same time, no additional requirements are placed on the browser. (See screenshots 1 | 2 | 3) In addition to that, both the HTML files and the database can be maintained separately from their perspective environments. The more complex part of this that the Web developer is now faced with the task of having to build a usable interface that meets the users needs and does not compromise the database server, Web server or Cold Fusion Application Server in unnecessary transaction times.

The final method is the Java method that requires somewhat advanced programming skills on the part of the developer. Java allows the developer to deploy both applets and applications that access databases in much the same way the GUI based application on any platform operates. The example used here is an applet that provides a single view that browses the image collection. (Sreenshot) This method requires considerable development time as well as security and risk planning, since Java allows users to run local applications as if they were being run from the host machine. In this case functionality may be stifled in order to maintain a secure environment. In addition to security, the current state of the Java Database Connectivity (JDBC) standard is still gaining acceptance which most likely means that developers would have to know whether or not their database is JDBC compliant. In the case that it is not, then a piece of middleware will have to be engineered on the system that creates a JDBC-ODBC bridge, which processes the JDBC calls to ODBC calls which most database products support. If this is the case then the Java application architecture is no different than the CGI method, thus a developer might want to choose the CGI method just to stay away from the huge development investment that Java requires. This does not mean that Java is not popular, in fact the latest version of Oracle, Oracle 8i, claims to be 100% Java compatible. Thus a developer can reap the main benefits of Java, its platform independence and build Java applications that can be run on most any machine without any supporting database connectivity middleware.

As Web enabled databases become more and more popular the industry of products supporting such needs will grow ideally, in terms of the consumer, and become more specialized. However with this potential benefit of a wide variety of product, the Web developer must be completely informed beyond what the marketing experts claim. Indeed, products like the Microsoft Access Internet Assistant technically help users in publishing their database, but such features must be qualified. Likewise for CGI and Java based products as well. Thus with more efforts to fully explain the various Web-enabling methods for database applications, Web developers, who are not (by far) necessarily programmers can benefit from being fully informed as to the benefits and costs of any particular method and, therefore, can make more intelligent decisions when planning such projects.