Room: BBL room 420
Speaker: Michiel Overeem
Title: Dynamic Archive Management: a framework for dynamic database schemas
Two important problems arise in the development of web-based archive management
systems. The first is the tight coupling of the database schema with the
application logic. Basic functions such as read, update, create, and delete are
implemented with knowledge of the database schema. This knowledge is often
compiled into the application. Changing the schema entails changing the source
code. The second problem is that the user interface is also coupled to the
database schema at compile-time. Certain database fields have to be presented,
so they become part of the user interface. Changing the database schema often
entails that the user interface is changed.
DEVENTit, an independent software vendor, has developed a framework that tries
to solve these problems. The database schema is stored in a data model and this
model is used to implement generic read, update, create, and delete
functionality. However, this data model is still compile-time linked to the
application. The application is thus static. Furthermore, the user interface is
defined in a programming language, and thus also compile-time linked.
This thesis describes an extension of the existing framework. It no longer uses
a compile-time linked data model, but loads the model from a database. A reload
mechanism makes sure that the model is reloaded when changes are made. A
template engine is built, which provides the means to use a dynamic user
interface definition. Because of these extensions the application does not have
to be recompiled when the database schema is modified.
An application that can react on changing database schemas is nice, but not very
useful. Therefore a management application for database schemas is developed.
This application provides the means to update the database schema, while keeping
the data model synchronized with the database. A version control system with
support for branching and merging is proposed to experiment with alternative