wiki:PipeOnline/Architecture
Last modified 9 years ago Last modified on 10/30/09 08:59:53

The content of this page is now deprecated. It will be updated progressively in the next few weeks to more precisely describe the actual architecture of the PipeOnline project

PipeOnline Architecture Overview

This document provides a high-level view of the system architecture, and gives hints on the technologies or libraries that will be used to implement it.

The system will be implemented as a distributed Java web application. It will follow a usual multi-tiered design composed mainly of a data tier, a logic tier and a presentation tier, and will be based on technologies that are part of Java EE (JPA, Servlets, JSP)

Data tier

Most of the data manipulated by the system (e.g. user accounts, job queues) will be persisted using a database management system.

The current prototype uses a relational database (MySQL), but it could be decided to use an XML database (e.g. eXist).

The data stored in the database will be manipulated using the Java Persistence API (JPA). The current prototype uses TopLink Essentials as the JPA implementation but other options should be investigated such as the EclipseLink project (open source port of Oracle TopLink and the JPA 2.0 reference implementation).

For some system settings, simple configuration files (Java Properties, XML) can be preferred over database for convenience. Standard Java APIs such as Java Properties API, JAXP (SAX/DOM/StAX) are used to access these files.

ER-diagram of the current underlying database:

Logic tier

This tier is basically responsible for manipulating the data tier based on user inputs sent by the presentation tier. This includes for instance the following actions:

  • User management (creation, settings, login)
  • Creation of new Jobs (added to the queue or for instant execution)
  • Execution of jobs (by polling the queue or instantly)
  • Extraction and storage of statistics

The logic tier will be implemented in plain old Java objects, using standard Java APIs and the DAISY Pipeline APIs.

The current prototype launches an external daemon to regularly sniff the queues in the database. When a job is found in the queue and ready to be executed, the daemon will execute the job with the DAISY Pipeline in a new JVM instance.

Presentation tier

The presentation tier defines a web-oriented user interface. The initial implementation will feature a set of web pages for the end user UI, one or several pages will be added afterwards for the admin UI. Additionally, a future version may feature a rich desktop client.

The web UI is mostly based on the Java Servlets and Java Sever Pages (JSP) technologies. The application will be deployed as a WAR (Java Web Archive) on a servlet container such as Tomcat or Jetty.

Attachments