-----BEGIN PGP SIGNED MESSAGE-----

(I took the freedom to translate Martin's original question into English here. 
Since this concerns all of GnuCash's developers, the discussion should be 
continued in English, please.)

On Freitag, 21. November 2003 18:54, Martin Preuss wrote:
> previously you said that if there is a HBCI server implementation 
> available, you would like to use it from GnuCash. Now that I'm 
> currently on my way to actually program such a HBCI server-side
> implementation, I wanted to ask whether you can already provide 
> more details about this idea. What kind of functionality are you 
> interested in; what do you need; etc. Maybe I can adapt the 
> HBCI server-side code accordingly, if I already know what your 
> needs are.

For readers without HBCI knowledge: HBCI is a *protocol* that has every 
features that are needed for secure online banking. I.e., it specifies 
formats for encryption and signatures with self-created RSA keys as well as 
the authentication procedure when initially exchanging the RSA keys. (The 
point here is that the RSA fingerprint is printed on paper, which is then 
signed by hand and sent to the other party by paper mail.) HBCI also 
specifies the communication format for many so-called "business transactions" 
("Geschäftsvorfall" in German), including single (or multiple) online 
transfer, online direct debit, online statement retrieval, and many more. 
Every specification of these business transactions also includes procedures 
for negotiating the supported features of specific server and client 
implementations. This also means that HBCI already specifies an exhaustive 
data type for "a transaction", relatively similar to gnucash's "Transaction" 
data type. And HBCI also specifies how this data type is serialized and in 
what context it can be sent to the other party -- e.g. the user can send it 
to the bank as an online transfer (or direct debit) order, or the bank sends 
it to the user for his/her retrieved account statement.

Up to now, the auxiliary library OpenHBCI only was a client-side HBCI 
implementation, and GnuCash used it to perform the HBCI client-side jobs as 
needed for an online banking user. It has been successfully used with real 
bank accounts over the last 1.5 years. *Now* things are changing. Martin 
Preuss over the past few months pretty much rewrote the whole OpenHBCI 
structure. And it turned out that in addition  to the client-side HBCI 
implementation, it is relatively easy for him to also write a server-side 
implementation. It might be a matter of 2-3 months until he has finished this 
on his own, and of course it will be even faster if others are helping.

I thought about two ideas that will be possible with such a library available:

1. Firstly, this would enable using HBCI as the backend's communication 
protocol between many GnuCash clients and one central GnuCash server. This 
means that there is a bullet-proof networking protocol available, which can 
be used for an Internet-wide multi-user GnuCash setup. The client-side code 
for such a distributed GnuCash bookkeeping is almost there -- it's not much 
different from the existing HBCI module, which has been extensively tested 
and used already. The server-side code would still need to be created, but 
basically that's OpenHBCI's HBCI server listening on some port, and as soon 
as someone sends a request to that server, OpenHBCI's server code passes the 
request to the GnuCash HBCI-server code, which invokes the desired operation 
in the GnuCash engine, returns the result to the OpenHBCI code, which in turn 
delivers it to the client. I believe this is already possible with 3000-5000 
lines of code, i.e. 1-2 months of work, and I find this terribly cool. The 
point is that the HBCI protocol has been used since 1998 in Germany, and the 
security concept hasn't been compromised since. So if we are using this, then 
we are building on top of bullet-proof technology, and most part of it has 
been extensively used alreay.

By the way, when using the PostgreSQL backend, is it possible for multiple 
GnuCash users to access the same PostgreSQL database concurrently? If that is 
the case, then in a secure environment networking issues are already handled 
by the PostgreSQL database and the HBCI server-side code wouldn't give too 
much additional benefit. But it could still be used for an Internet-wide 
distributed setup, where encryption and authentication is needed 
additionally.

2. Secondly, such a HBCI server-side library could enable someone to set up 
his own OpenSource online *bank*. It would enable people to start their own 
PayPal. The OpenSource Gift Exchange Registry idea by Christophe B. Browne 
could actually be implemented with real working online transfers. The 
donation jar of GnuCash could be set up to represent such a HBCI-accessible 
bank, which means it can be managed by people all over the Internet. Well, 
the possibilities are I think pretty much summarized by "setup your own 
paypal".

What do people think? Is there a demand for such ideas? Who wants to setup an 
Internet-wide distributed GnuCash?

Christian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

iQCVAwUBP8C6k2XAi+BfhivFAQFU9wQAlYHzFW1NECK66F4Kq5JvJVe+j4SIFThh
ADBQopINYz4eqYO8ZxugQhsrXuObuyCIvilB/Li67NdMNPGwCJjQ/exaIO6rR7Jv
4lgH4D2vUjVKqeAZ8brxQrITN1T3f09XG538qSfY+0eaz3kqli3JBwTthNGnkuPK
G55XFO+xmSI=
=2lOF
-----END PGP SIGNATURE-----

_______________________________________________
gnucash-devel mailing list
[EMAIL PROTECTED]
http://www.gnucash.org/cgi-bin/mailman/listinfo/gnucash-devel

Reply via email to