Lessons Learned at the Excellence Awards Site

This year, as with last year, we used a secure Web site to gather entry information for the eWeek eXcellence Awards program.

This year, as with last year, we used a secure Web site to gather entry information for the eWeek eXcellence Awards program.

The Web application was written in JavaServer Pages and runs on Apache Software Foundation Inc.s Tomcat 4.0.1 application server. All data was stored in an IBM DB2 7.2 database.

The biggest change to the site architecture this year was a switch in back-end databases.

Last year, we used MySQL ABs MySQL. After a year of use, we appreciated the stability of the product and its Java Database Connectivity driver, as well as its easy-to-use activity logging and encryption facilities. However, we were also frustrated by some major feature gaps, such as a lack of foreign keys and SQL views, less-than-competitive administration tools, and poor data analytic and complex query capabilities.

As a result, we switched to DB2 7.2 (running on Red Hat Inc.s Red Hat Linux 6.2) for the latest eXcellence Awards. Overall, DB2 was a pleasure to use and provided a significantly richer data processing environment.

We were able to use foreign keys extensively to double-check that no orphaned data—data not correctly linked to related data—ever made it into the database, something that caused us problems when we were using MySQL. (The problems were in our application code, but the database made it easy to miss our coding bugs.)

We also used views throughout the database to enforce a multilevel security scheme. (The Web application user, site judges, entry fee payment processing staff, labs staff and site administrator all needed different, sometimes overlapping, sets of rights.)

We implemented this scheme using a set of views for each class of user, which allowed us to have a simple set of permissions for each view, instead of having one complex set of permissions on the base tables—a design that makes it easy to make security mistakes.

This year, we also switched from Sun Microsystems Inc.s Java 1.3 Virtual Machine on Linux to the IBM Java 1.3 VM because we had frustratingly mysterious VM deaths about every three weeks using the Sun VM last year. With the IBM VM, on the other hand, we didnt have a single problem in more than five months of use, so thats the one were sticking with for next year.

Tomcat continued to be completely trouble-free software, and we just let it do its thing.

eWeek Labs West Coast Technical Director Timothy Dyck can be reached at [email protected]