As climate data providers we must provide robust and flexible mechanisms for users to search, create plots and subsets and download data from our Web site. Our current implementation relies heavily on the Common Gateway Interface (CGI) mechanism popular on the Web. This technology, developed mostly in Perl at our site, uses a relational database as the back-end storage and search engine. In the past, we have also experimented with a client-side Java applet to provide the user interface to the data search.
The client-side applet has proved to be difficult to deploy successfully because of issues with different Java virtual machines and the need for plug-ins for certain types of user interface elements. The Perl based CGI is currently providing great service, but the servlets and JSP hold great promise for increased robustness and interactivity.
The servlet and JSP approach offers several advantages over CGI in the areas of performance, portability and security. Because servlets run in the same memory space as the HTTP server, the overhead of forking a new process for each request is avoided. Additionally, the strong typing and lack of pointer arithmetic in Java helps secure the servlet against out-of-bounds memory access. Because servlets can persist between HTTP connections, the overhead of such tasks as database connections can be incurred only once at start-up, further increasing the performance and reliability of the servlet over the CGI implementation. Finally, and perhaps most importantly, scientists at CDC interested in providing customized search interfaces to their own data can use JSP without any programming knowledge.