-----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