Speaker
Anzar Afaq
(FERMILAB)
Description
The idea of an application database server is not new. It is a key element in
multi-tiered architectures and business application frameworks. We present here a
paradigm of developing such an application server in a complete schema independent
way. We introduce a Generic Query Object Layer (QOL) and set of Database/Query
Objects (D/QO) as the key component of the multi-layer Application server along with
set of tools for generating such objects. In Query Object Layer each database table
is represented as a C++ Object (Database Object) and structured complex queries
spanning multiple tables are written into Object Representations, calling them Query
Objects. All database operations (select/insert etc) are performed via these Objects.
In general, developments of such servers tend to pre-identify interesting join
conditions and hardwire queries for such Query Objects, for the ease of development.
We have tried to enhance this concept by generalizing creation of such Query Objects
based on existing/defined relations among the tables involved in the join, like
foreign key relations, and any other user-defined join-condition. Also delaying and
generalizing creation of actual SQL Query till the execution time. This is an
enormously complex task, joins with cyclic conditions and multi-relations going to
same table are hard to convert into Query Objects. The task is divided into three
major components. A SQL Parser that reads-in Table definitions and create C++ Objects
(Database Objects). A Query Object View Creator that generates Query Object according
to existing and user-defined join conditions for multiple tables. And Object Layer
Algorithms that are generic enough to deal with any Dataset or Query Object. In
addition to this the whole fabric of Application server is tied by exchanging self
describing objects that do not need any changes in case of a schema change. The
Business Logic Layer can be quickly built for know set of operations, written as
"Managers" and Client interface is done through data structures that can also be
semi-generated through SQL Parser. The process of adapting the system for a new
schema is very fast. The maintenance over head is also very low.
Primary authors
Anzar Afaq
(FERMILAB)
Dr
Gregory Graham
(FERMILAB)
Dr
Lee Lueking
(FERMILAB)
Dr
Sinisa Veseli
(FERMILAB)
Vijay Sekhri
(FERMILAB)