Part I. Architectural Overview

Layers

CATE is a java web-application. It relies heavily upon the following technologies:

CATE is built using Apache maven 2, a build manager. The project has also produced some perl code designed to extract data from databases produced by the content teams and write the data into a set of xml document that validate against the cate xml schema packaged in a module called CATE.

This section gives an overview of the web-application, the installed instances of CATE, cate-araceae.org and cate-sphingidae.org, and the artifacts produced by the project.

Figure 1. CATE is a web application which consists of four separate layers or modules. Model data objects are exchanged between layers. Cross-cutting aspects, such as security, transactions, and caching are shared across layers.

CATE is a web application which consists of four separate layers or modules. Model data objects are exchanged between layers. Cross-cutting aspects, such as security, transactions, and caching are shared across layers.

CATE consists of four major components:

  • The persistence layer, which provides access to a local database, and also provides components which proxy remote resources: cate-persistence

  • The service layer, which provides a facade to the persistence layer, some business logic, and workflow: cate-service

  • The controller layer, which handles http requests, calls methods in the service layer, and routs data to be rendered in a view: cate-controller

  • The view layer, which renders java objects as xml, json, and html: cate-view

In addition, there are several other packages, which encompass

  • The domain model, object-relational mapping, xml bindings: cate-model

  • Javascript Widgets used in the view layer: cate-js

  • Command line tools for data import, sitemap generation, and distribution map (image) generation: cate-tools

  • The web-application: cate-web

  • A customized maven site skin, branded for the cate project: cate-site

CATE is curretly hosted on the gForge site at the National e-Science Centre. Documentation (including this document) can be found at http://www.cate-project.org.

Building CATE

CATE relies upon the maven build system to compile and package the web application. Each layer is packaged as a separate jar file by maven. These are then combined into a single web application archive (war) artifact by the cate-web project. The CATE araceae and CATE sphingidae sites require a few extra resources (mainly content and branding), and some specific configuration (database details, web application root keys), and represent a customized instance of cate-web, replacing a few specific properties and files where neccessary.

The build environment required for CATE is as follows:

  • Java Development Kit version 5 or more (CATE makes extensive use of the features of J2SE 5.0, notably annotations, enumerations, and generics).

  • Apache Maven 2 (http://maven.apache.org)

  • A CVS Client (such as Tortoise CVS)

Details about the source repository can be found here . Detailed instructions for installing and running Apache Maven can be found on the Maven project site, but in short, issuing the command mvn installwill build and install the maven binaries to a local repository.

C:\Documents and Settings\ben\My Documents\cate> mvn install
[INFO] Scanning for projects . . .

The cate-araceae and cate-sphingidae web-applications are customized versions of the of the cate web module. To generate cate-araceae or cate-sphingidae, set the desired properties (db connection url, username, password, webapp theme name, lsid authority name etc) in maven. The best way to do this is to set all the properties in a profile in your settings.xml file, and then enable the desired profile from the commanline thus mvn install -Pprofilename to build cate-araceae or cate-sphingidae without exposing these application specific parameters.