Navigation:  Introduction >

Architecture overview

PDF version of the documentation Print this Topic Previous pageReturn to chapter overviewNext page

BioUML workbench is a plugin-based application framework that provides its extensibility and possibility of seamless integration of other tools for systems biology. It consists from an Eclipse platform (http://www.eclipse.org) runtime kernel that supports 'plug-ins' and a set of plug-ins that support database access, diagram editing, and biological systems simulation.

Plug-in based architecture

Plug-in - is the smallest unit of BioUML workbench function that can be developed and delivered separately into BioUML workbench. Plug-ins are coded in Java. A typical plug-in consists of Java code in a JAR library, some read-only files, and other resources such as images, message catalogs, native code libraries, etc. A plug-in is described in an XML manifest file, called plugin.xml. The parsed contents of plug-in manifest files are made available programmatically through a plug-in registry API provided by Eclipse runtime.
Extension points are well-defined function points in the system where other plug-ins can contribute functionality.
Extension is a specific contribution to an extension point. Plug-ins can define their own extension points, so that other plug-ins can integrate tightly with them.

plug-in-based-architecture

Figure 1.13. Plug-in based architecture, extension-point - extension point; extension - extension

Architecture of BioUML workbench

BioUML workbench installation includes a plugins folder where individual plug-ins are deployed. Each plug-in is installed in its own folder under the plugins folder. A plug-in is described in an XML manifest file, called plugin.xml, residing in the plug-in's folder. The parsed contents of plug-in manifest files are made available programmatically through a plug-in registry API provided by Eclipse runtime.

 

architecture-overview

Figure 1.14. BioUML workbench - architecture overview.

 

Formal description and modeling of biological systems require coordinated efforts of different group of researchers:

programmers - they should provide computer tools for this task;
problem domain experts - they should specify what and how should be described;
experimenters and annotators - they should describe corresponding data following to these rules;
mathematicians - they should provide methods for models analysis and simulations.

BioUML architecture separates these tasks so they can be effectively solved by corresponding group of researchers and provides simple contract how these groups and corresponding software parts should communicate.

Architecture of BioUML server

BioUML server is Java application that is started as servlet on J2EE compatible server (we are using Tomcat server).

 

Like BioUML workbench it is also uses Eclipse runtime to manage by plug-ins that provide different services (Figure 1.15). Main services provided by BioUML server are:

database service - provides information about database and secure access to it
access service - provides access to databases (read/write)
diagram service - provides protocol to read/write diagram and all diagram elements during one HTTP request
Lucene service - provides full text search and its configuration
query service - provides indexed search for a database

 
BioUML server supports access to different types of databases. Main of them are:

relational databases (for example, Ensembl database that is available as MySQL dump)
text databases (for exampe KEGG/Ligand database)
XML databases (for example databases in BioPAX or SBML formats)
databases available via web services (for example SABIO-RK database)

 

bioum-server-architecture

 

Figure 1.15. Architecture of BioUML server.