/***********************************************************************/ /* Hardware platform /***********************************************************************/ Our LIMS is an open system forming an integrated information environment based on a Client/Server architecture hosted on two Linux servers and maintained with an uninterruptible power supply. One server is dedicated to the database and the other to the web application. The latter enables interaction between the database and most of the laboratories instruments and robots as well as specific analysis software. /***********************************************************************/ /* MySQL Relational Database Server /***********************************************************************/ The underlying relational database is written in MySQL. It resides on a Debian Woody server and works in InnoDB mode, a type of SQL storage that enables relationships. The security of the database is ensured by the implementation of a regular combination of backups. These range from daily cron jobs that store the structure and content of the database in compressed form on a completely independent server to bi-monthly archiving of the database. An incremental backup of all data modifications inside the database is also performed every 30 minutes. /***********************************************************************/ /* Web Application Server /***********************************************************************/ The web application server is also hosted on a computer running the Debian Woody Operating System, and several applications: an Apache Tomcat 4.0 binary distribution, SSH and FTP servers, and Java 2 SDK. It also runs Apache Ant (a compiler for Java projects deployment) and a Perl interpreter. A series of approximately 200 Java Server Pages (JSPs) link the user interface to the database, enabling management of the entire database through forms that enable insertion, update, deletion and queries of records. JSPs, which are HTML pages with embedded JavaScript, use Java DataBase Connectivity (JDBC) to access the databases. The connectivity is ensured by MySQL Connector/J, the official JDBC driver for MySQL. All of the application logic is run on the server which sends the client machine standard HTML containing some standard JavaScript to provide increased interactivity. /***********************************************************************/ /* Application interface /***********************************************************************/ The LIMS is integrated into an Ultimate Bulletin Board (UBB), which is a customized application, based on version 6.02 of the Ultimate Bulletin Board from Infopop, Inc. The UBB is a set of Perl scripts and supporting data files that implement a web news service for the overall system administrators. The application contains a framework for standard basic web page generation that accelerates web page development and database table creation while imposing specific naming rules and clean coding. Each database table generally corresponds to one entity or one step in the laboratory workflow and has seven associated standard files for listing, adding, updating and deleting entries. After the basic tables were created, relationships between the tables were established manually and the 7 associated standard files were modified and completed by hand-coding in HTML, JavaScript and JSPs to fulfill our needs. In addition, a large number of new pages have been created for specific functionalities and for more sophisticated modules such as plate pictures, results re-quests, or scripts for sending files to printers and robots. All JSP files must be constructed following certain guidelines in order for them to work in tandem with the UBB application. In a typical use-case scenario, a JSP file contains a form that is visual and active on the client. The submission of this form calls the UBB application, which processes the form’s information by acting on it or repackaging it as needed before sending it to the appropriate JSP through a JSP logic file which acts as the underlying project switchboard. After further processing, the JSP finally returns the content to the client. This means that no visual contents are ever returned to the client from the JSP logic file, nor is this file ever called directly by the client using its URL. Through the UBB application, user authorization access has been implemented for different levels of functionality. LIMS users must be registered with the system administrator. Each user is identified with a personal login and password and has specific authorizations stored encrypted in a MySQL database (chore number for each page of the application).