- Web Server(s) for static HTML, images, sound files, and multimedia or non-multimedia data
- Web Server for CGI scripts and Java Applets: the CGI scripts have been developed in Perl; they make use of DBI, which is an interface to several popular database systems
- A database system (or systems) which can be accessed as one database by the CGI scripts and Java Applets
These three components of the System generally act independently of each other. The only constraining feature is that the CGI scripts and Java Applets use a few administrative tables in the database for housekeeping purposes. Other than this particular relationship, any one of the three entities works without the knowledge of the other entities.
Since the database allows only soft links to external data files, that is an image file is not embedded as a binary stream in the database for example, any number of outside web content servers can be used in conjunction with the Database. These content servers must not be set-up in any specific manner, other than being accessible through the web.
Similarly, the database may just as well be an entire farm of servers, as long as it can be accessed as one unit by the CGI scripts and the Java Applets.
Even though the alternatives for the chosen technologies are manifold, the herein mentioned ones have been chosen because of their reputation in stability and manageability. The System may be implemented with any other underlying product(s), as far as the web server and database is concerned. In that event, minimal changes would need to be made to the product.
||Unix; currently installed on a SUN Ultra 10 (production system) and a SUN Blade 1000 (development system). The System has proven to work very well in this environment.
||MySQL; this database system works very well, given a few million data records. At this early stage of the project, MySQL will suffice for the purposes of testing and improving the system. Later on, Oracle may serve as a replacement.
||Apache; the web server may possibly be implemented with modPerl to improve the speed of script execution.
The System has been designed to be flexible in its setup, as already alluded to above. It has been tested in a single-server environment, and it is currently being used in production on a single server. However, given the nature of the major components, the System can be split up into parts, which will be useful for larger databases and especially for large content files, that is images, multi-media data, etc.
Given a single-server environment, the division of the three components shows up in the very directory structure. i) CGI scripts are placed in their respective directory, ii) HTML files and images that are used in the interfaces are placed into their directory, and iii) the database manages its own file and directory structure.