[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: database stuff (aka "the backend")



>This can all be done by a well defined database schema.  It
>certainly doesn't make the database simpler but it is possible
>to maintain histories in a database.  The job of the coders
>is more is dfficult but i am certain this history information
>will be one of the most important things that can be kept in 
>a eduational oriented database.

Ideally, the application should not be dealing with the storage mechanism.
It should just ask for data and get back an XML interface, say via SAX or
DOM or maybe some other object model.
The actual mechanics of storage then can be abstracted, so we can provide
a thin layer for the client with an XML parser, local file read/write,
and a simple network layer to communicate via a consistent interface to a
larger, distributed backend.
This is similar to the design of the casbah project Doug mentioned a few
days ago, but simplified in many ways.

The beauty of this is that the app only deals with XML, so as long as
everyone uses that for data (just think of a heirarchical object model,
like a tree), and keeps the read/write code fairly abstracted, then it can
be moved relatively painlessly to the backend, which will be written
concurrently.

Here at my work (a federal technology in educational grant), a few of us
(including some lurkers here) are working on some definitions for this,
because it provides networked access and distributed storage of data.
Once the backend framework is in place, an application can just pick the
specific data from the sources it wants, specifying the query with
something like the OODBMS query syntax or one of the XML query language
proposals, and it gets a XML subset back (in the format the defined in the
request).
An app can get a consistent view of data regardless of where, how, or what
format it is stored.

For now, the best thing is to write applications using an XML model for
data, like Justin Maurer is doing with his gbook. We can transition it
pretty easily to a complex backend that provides a similar interface.

It'll help keep momentum going here if we have some working applications
rather than waiting for us to develop a complex backend, so if using
a RDBMS directly for your storage is convenient for now, go ahead, but
keep in mind that the data access portions will likely be rewritten
eventually using the XML interface model.


Justin Bradford
justin@scrtec.org