Login | Register
My pages Projects Community openCollabNet

Axion: Developer's Guide: Design

Status Note

This is a draft document, currently in progress and woefully incomplete. Contributions or suggestions are welcome.


At a very high level, Axion's functionality is distributed across four major layers, as illustrated in Axion's Major Tiers.

Axion's Major Tiers

Client applications typically interact with Axion via the JDBC layer, which is largely an implementation of the standard JDBC interfaces such as Connection, Statement, and ResultSet.

The JDBC implementations in turn use a parser layer to convert SQL statements into AxionCommand instances which can operate on the database. Currently Axion has only one parser, which is JavaCC based, but any implementation of Axion's Parser interface could be easily substituted.

These generated AxionCommands are then executed against the database in the engine layer, which is largely composed of various commmand, RowIterator and database object implementations.

When necessary, the engine reads and writes data to a storage layer, which is implemented by various Table, Index, Database, and DataType implementations.

Axion is designed to be modular, with well defined interfaces circumscribing the interaction between the various parts. By adhering to these interfaces, one may substitute additional or alternative implmentations of many of Axion's pieces, such as tables, indices, functions, constraints, datatypes, even new parsers and commands.



Axion - Open Source Java Database Engine
$Id: design.html,v 1.31 2007/11/15 15:09:27 rwald Exp $
Published 15 Nov 2007 at 3:07 PM GMT.