Home » e-Learning in the School of Physics and Astronomy » Project Showcase » Aardvark: Technical Details

Skip Navigation

Aardvark: Technical Details


Aardvark is a web application that is deployed within the School of Physics' intranet. It is accessed using a web browser and a Java applet.

Client Requirements

To be able to access Aardvark, you will need:

  • A MathML-supporting browser, such as a Mozilla-based browser like Firefox or Internet Explorer 6/7 with the freely available MathPlayer plugin.
  • The Java Runtime Environment (or Java SDK), version 5 or above.

All access to Aardvark is via HTTP and HTTPS so accessing Aardvark should not cause any problems with firewalls.

Server Details

The Aardvark server component is a standard Java web application which runs inside the Tomcat (or equivalent) web containers. The Aardvark server needs access to a working LaTeX installation and standard graphic manipulation software so is designed to run on a Linux, Unix or Mac OS X system with the teTeX LaTeX distribution and ImageMagick software suite installed.

Aardvark stores all of the Knowledge Object metadata, along with other information, in a database and we currently support the popular open source databases PostgreSQL and MySQL. The actual Knowledge Objects are stored directly in the filesystem for ease of management and performance.

Aside from the database, LaTeX and graphic requirements, the Aardvark server components are 100% Java and use a number of open source components, including:

  • The Spring Framework for its useful database helpers, transaction management, Aspect Oriented features, Object remoting and simple web MVC features.
  • The Xerces XML parser and Saxon XSLT processor. Saxon performs best out of the various open-source XSLT processors for the types of material that Aardvark handles.
  • Various Apache Jakarta Commons libraries handling logging, HTTP access, etc.
  • The Log4J logging system.
  • The Batik toolkit for manipulating scalable vector graphics.
  • Various JGoodies freeware components for nice GUI development.

Server Architecture Overview

The Aardvark server essentially comprises 2 components:

  • Aardvark Content Manager: This provides APIs and implementations for accessing and manipulating the underlying Knowledge Objects and metadata, along with other related domain Objects. This component is reusable and can be used for other projects that store data the same way as Aardvark.
  • Aardvark Processing Engine: This provides a simple client API for generating the various outputs that Aardvark produces. Inside the engine is a framework that can be used to add support for new types of outputs with relative ease. This framework includes support for caching of resources, dependency management and stylesheet caching in order to perform as best as possible. This is also designed to be reusable for other purposes.

The Aardvark web application is built on top of these components, using a combination of standard web browser access and a rich Java applet to allow clients to interact with the application. The Spring remoting capabilities are used heavily to make client/server communication work with little programming effort.