HGM2002 Poster Abstracts: 1. Genome Informatics and Annotation
POSTER NO: 55
EMBL Nucleotide Sequence Database Forms: Multitiered Web Applications with Autogenerated Database Abstraction Layer
Katerina Tzouvara, Rolf Apweiler, Nicole Redaschi
The Sequence Database Group at the European Bioinformatics Institute (EBI) maintains comprehensive databases of nucleotide and protein sequences such as the EMBL Nucleotide Sequence Database (EMBL-Bank), TrEMBL and SWISS-PROT. The data is curated by expert biologists, using database forms that are developed in house.
Leading technologies such as Applets, Java Server Pages, Java Servlets, and JavaBeans have been used in a multitiered client-server architecture to create forms to query and update the EMBL-Bank database. The EMBL-Bank data is maintained in a relational database management system (RDBMS). We use JavaBeans as object representations of the relational schema to help abstract the business logic on the server side. The code for the JavaBeans is generated with AdaptorGenerator, a Java package that uses the database metadata and supports most of the major database systems such as Oracle, Sybase, DB2, MySQL, and PostgreSQL. The purpose of the autogenerated code is to provide programmers with a general, uniform way to access the database; no knowledge of SQL is required. On the client side, we use applets for the graphical user interface (GUI). Applets are Java programs that run within a web browser and they make an interface more dynamic and powerful than HTML alone. Servlets act as the go-between, communicating with both the applets and the JavaBeans. Servlets are analogous to CGI programs in that they handle web requests and return data or HTML dynamically, however, they are operating at a much higher level of efficiency. Unlike CGI programs, servlets are persistent - they are instantiated once and separate threads handle multiple concurrent requests so that the state from one request to the next is maintained.
Such a layered architecture gives our applications a maximum degree of flexibility, scalability, code reusability and performance. The layers are independent from each other so that modifications in one layer do not affect all the other layers. Changing from one RDBMS to another requires only a change of the database driver in the JavaBean layer. Likewise, the web-based GUI can easily be replaced by a stand-alone client by modifying the applet layer, changing the JApplet class into a JFrame class.
Other abstracts in same session