GnuCash design - the role of QOF and QSF
Neil Williams
linux at codehelp.co.uk
Mon Oct 31 14:44:54 EST 2005
On Monday 31 October 2005 2:59 pm, Brian Rose wrote:
> Right now there is the wiki, gnucash.org,
> and then independent developers' sites all with
> different info. I want to sound rude, just that
> I was confused at where Gnucash is going after G2,
> so I thought if I am confused maybe
> others are as well--hence the website suggestions.
> For example, I read the QSF part on
> Neil's site and now I wonder what QOF/QSF has to
> do with G2, SQL backend, multi-user
> support, ....
QOF is a separate library now with it's own development path that will retain
gnucash as a client - incorporating feature requests from gnucash alongside
requests from other client programs and architectures. Other applications
using QOF include GnoTime, Pilot-QOF and cashutil.
QOF and QSF have important benefits for GnuCash and, yes, it is all linked to
data freedom.
QOF is to include full SQL backend support via libgda and the gnome-db
plugins. This will mean that gnucash will inherit generic backend support via
QOF for nearly all the databases you can name - SQLite, MySQL, Postgres,
Oracle, Sybase, ODBC, FireBird/Interbase, IBM DB2, mSQL and MS
SQL server, as well as MS Access and xBase files. Data in any of these sources
can be shared with any other backend and with any QOF client. (QOF is likely
to move to beta once this is done).
QOF is also going to be built for embedded systems and already has a client
application to work with Palm OS devices. On larger embedded systems, QOF can
run on the mobile device and provide query support on the move - many PDA
utilities lack the ability to use data from other programs on the same device
and native QOF can solve this problem.
The idea is that the user data should be as free as the source code that
creates it. Beating vendor/application lock-in not by reverse engineering but
by making lock-in itself increasingly redundant. Revealing the true colours
of lock-in - the selfish obsession of proprietary developers.
This means that GnuCash G2 gains access to data from a rapidly increasing
range of sources making it far easier to work with your GnuCash data in other
applications and to create GnuCash data from other tools - like a PDA -
without losing the ability to bring the data back into gnucash later on.
Lots of people enter business data like expenses onto a mobile device of some
kind. QOF - as a fundamental component of gnucash - can provide low-level
generic access to all these pieces of data making data entry automation more
available.
QOF will be able to go onto platforms that could never support gnucash and yet
provide gnucash with access to the available data on that platform. Indeed,
each and every QOF client will inherit the same levels of access to each
other QOF client and each QOF backend, on whichever platform QOF is
available.
Pilot-QOF wraps QOF around code from pilot-link to provide a QOF interface for
all devices supported by pilot-link using QSF XML. The same can be done for
other applications - wrapping QOF around existing code to create a new QOF
client that can share data with any other QOF client using any available QOF
backend.
> I am sorry and maybe I am a bit
> green on developing such an app, but I just
> don't get any of the stuff with QOF/QSF. Is it
> part of the "Free the data" concept or to
> support multiple backends/platforms or what?
Both and all.
1. QOF provides simple methods to only export the gnucash data relevant to a
specific query.
2. QOF retains the integrity of that data so that it can be reimported into
gnucash and updated from gnucash.
3. QOF stores this data in whichever backend is chosen - QSF is the default
backend and will be the only backend guaranteed to be available for ALL QOF
clients.
4. QSF is a generic and validated XML that can support detailed and recursive
SQL-type queries for data mining and data extraction / reporting. Any gnucash
data can be made available to a Perl/PHP/Python/whatever script and passed to
any number of customised scripts to provide an infinite number of reports and
analyses.
5. QOF provides the data interchange that allows disparate data sources to
exchange data without loss of data integrity.
This is mostly in the future - but I believe it all to be attainable.
--
Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20051031/112c46a2/attachment.bin
More information about the gnucash-devel
mailing list