GenDBWiki/DeveloperDocumentation/SystemDesign
The GenDB System Design
The figure below illustrates the architecture of the GenDB system with the main building blocks.
attachment:GenDB-Overview.png
On the server side all data that is stored in a relational database management system can be accessed using the O2DBI modules. The Perl server API is basically used for the integration of sequence databases and bioinformatics tools. On the client side, different user frontends are implemented that access the system via a Perl or C++ client API.
The complexity of the system encourages using an object-oriented approach not only in designing but also in implementing the system. Therefore, the enhanced O2DBI system was used to map Perl objects automatically to relational tables. The GenDB objects are mapped onto tables via O2DBI and stored in a relational database (here MySQL). All access to the data via a Perl client or server API, or via a C++ client interface is managed again by the O2DBI module.
On the client side, user interfaces have been implemented that use the functionality of these APIs. On the server side, sequence databases can be accessed via the SRS system or via the !BioPerl interfaces. Computation-intensive tools like Blast or !InterPro can be managed and scheduled via a !BioGrid (e.g. Sun GridEngine).