fmalabre at yahoo.com
Wed Feb 12 18:43:47 CST 2003
I was thinking about an evolution of Gnucash architecture.
Today the architecture uses Guile to plug all kinds of components together
(Engine, UI, ...).
One of these modules may persist the data on different supports (XML file,
external database, ...).
The architecture I propose is to evolve to a client/server Gnucash.
The server would be the engine and the persistence of data.
The client would be the user interface.
The server and the client could communicate using a socket connection with a
This architecture would open a lot of new possibilities for Gnucash:
1. Gnucash could become a multi-user engine, managing and synchronizing
multiple clients. Eventually it could add multiple user rights to
visualize/use only a set of accounts.
2. Gnucash could be open to mutiple platforms through a client specific to
each plaform. Then there could be a Windows client, a console client, ...
3. In the Gnucash roadmap, there were discussions about porting Gnucash to
PDA. With this new architecture, it would just be a light client
synchronizing with the server when a connection is established.
I'm sure it could open a lot more possibilities...
I also believe now is the best time to introduce this architecture for the
1. Gnucash will have to be ported to Gnome2, which may well end up writing an
all new client. Also, I started to work on a KDE UI for Gnucash. It would
then become a new client as well.
2. It's not a big change in the Gnucash architecture. Today Guile
inter-connect multiple components together, one of those is a Gnome UI. This
Gnome UI would then be replaced by a server socket layer.
3. It wouldn't change anything for a casual end user, the server and the
client would reside on the same machine and would be started and stopped at
the same time, it will then be the same as it is today for such users.
4. It is probably a good time to start working on a real-time transaction
exchange protocol. More people will be interested with such a tool, as the
banking industry may provide similar tools in a near future.
Creating a good protocol is the key. An XML based protocol seems to be a good
option to allow evolution of the server without impacting the clients.
What do you think about this?
PS: See this post on http://fmalabre.homelinux.net/gnucash/
More information about the gnucash-devel