This chapter describes the current architecture and development policy for the DbtuTools project. It represents guidelines for the development. If there is a need for changing these rules, the issue will be discussed and incorporated.
As the mission statement says, the project is working hard to become an integrated solution for working with the UNIX / Wintel versions of IBM's DB2 UDB database family. It consists of an increasing number of independent (and in some cases loosely coupled) tools. These tools sit on top of a framework, which provides a common infrastructure (directory trees, libraries, common services etc).
Building a multi-component solution, it is important to have a common understanding of the design objectives to ensure a consistent architecture:
Dealing with the different needs within the project, we make use of more than one programming language. Nevertheless we are focusing on as few programming languages as possible and sensible.
Niels Bohr once said "Prediction is difficult,
especially the future". The same is true when it comes to the
versioning/roadmap of a product. So I will try to focus on the next
steps only.
The first versions of the DbtuTools project started with a number
of small tools written in C and Shell Script. They were independent
from each from other and there was no need for a common infrastructure.
Then Java came into the game and the first tools made use of the
Java packages coming with this tool collection. So we started to
establish a common infrastructure providing a directory structure
[more] and common
libraries.
Now we are focusing on providing some common services (Config-Reader,
Tempfile-Object,...) to prepare for the development of the 3 core
processes within a database life:
Once these core processes are done, the project will have reached version 1.0 - do not compare this to 1.0 versions of commercial products, within the open source community, version 1.0 (normally) means a robust and well-proven product. Nobody can foresee the next major issues after version 1.0, but be sure, that there will be a lot of additional nice tools out there - even before reaching version 1.0.