Wiki

Clone wiki

SVGMap / Development

Development guide

The SVGMap project aims to browse data and visualize generated images with highlighted regions according to some data values. Additionally we have incorporated a simple management of the experiment data.

1. Use cases

The application, therefore, has the following main functional use cases:

  • Browse experimental data
  • Generate experimental data images on demand
  • Manage experimental data
  • Configure browser viewer for an experimental data

2. Design and implementation

The application has been designed following the 3-tier architecture pattern with the typical data, logic and presentation layers. This pattern has the advantage to build modular software with well-defined interfaces, and also allows to upgrade or replace any of the three tiers independently as requirements or technology change.

The project application has been been implemented using Maven2 framework in order to make easier the project modularisation, deployment and dependencies management. Thus the SVGMap project consist on 3 sub-modules more :

  • SVGMap-cli : where exists all the svg image generation process
  • SVGMap-server : the section where all code of the project is assembled with an embedded web-server
  • SVGMap-web: the web code of the application

In terms of implementation we have used Wicket a J2EE framework for web development. This framework is relatively new but with powerful features that make it a suitable for our software purposes. Also we have prepared the application to be deployed as in HSQL as in Mysql.

In the next section we will describe with more details the content of the application.

2.1 Data layer

The data layer of the application consist on 3 tables

ExperimentDataView: Information about the experiment
ExperimentDataType: the type of files of each experiment
ExperimentFile: the path to the files of the experiments

We have designed the data base to store relative paths to the physical data files of the experiments. Thus given a configurable physical root path of your machine all thefiles for the svgmap will be stored there organized by folders, each experiment in a different folder.

In the following section we will explain the persistence layer which allows us to manage and map into objects the SQL tables of our model. The persistence layer allows us to deploy our data layer in different DBMS providers. For our purposes we have used an embeded database (HSQL) to store the database schema in order to provide a ready to use application. Although it is also possible to use a Mysql database to store the data schema.

2.2 Logic layer

In this layer is performed all main operations of the application.

I. Data persistance

We have created a persistence layer with all classes nedeed for managing the tables of the database schema. We have used hibernate and JPA to annotate all the POJOs that map the correspondent tables of the database. Also we have implemented the corresponding controllers to helps us with the sql CRUD operations. This persistence layer makes easy to use the operations with the database and makes also of flexible the mapping between the db schema.

II. SVGMap image scale-color process This process has been implemented as an independent module : svgmap-cli

III. Scales management We have implemented Linear, linear-two sided and p-value scales

IV. Files management

2.3 Presentation Layer

We have adapted the development of the view layer to the web standards in order to make the application usable for the different web browser. Also we have used web 2.0 technologies CSS3 and xml, AJAX and JQuery.

3. References

Updated