Introductory Architectural Notes

Ricardo Terminology

The following terminology derives from Ricardo, which forms the basic architectural layout to which WebFunds conforms.


An Application is a programme that does something for users. For example,

The latter two are server applications, so the user is really another application.

Item, Contract, Instrument

These terms may sometimes mean the same thing:

So, an issue like pints of beer might be an instrument, a contract, and an item, depending on the context.

Account, Subaccount, Holding

These terms are often used interchangeably to mean some place where value is kept.

In more precise Ricardo terms, we have the following:


See more on the SOX page .


WebFunds is the basic downloadable cash management application, written in Java. It is now in its 4th generation.

(G4) Lucaya

Lucaya, the 4th generation of WebFunds, was started by Edwin Woudt in the summer of 2002, and further developed in 2003 with Jeroen van Gelderen. Ian Grigg worked on it from then on until mid 2004. Around the end of 2003, it first become demonstrable, although it is some way from achieving the feature set and stability of G3. By mid 2004, the transactions were stable and robust, and management of servers and contracts was substantial up to the standards of G3.

Lucaya brings 3 things to the table:

The thread and events model was required for Rafi's which didn't cope with the lack of live events coming from the network. It was also required in order to cope with persistent network difficulties. Underlying, Lucaya uses the same basic SOX package, in much the same fashion as Pumphouse, Teller and WebFunds G3.

Lucaya drops the ValueManager 3rd party plugin concept of G3. The main reason for this was the complete absence of any support for 3rd party plugins. Even though Lucaya is planning to deliver 3 applications, in some technical sense plugged in to the core application, this will now be managed centrally.

G3 WebFunds


G3 - third generation - was first started in late 1998 by Erwin van der Koogh, and has been in continuous improvement since then, mostly by Ian Grigg, and with some work by Edwin Woudt and Jeroen van Gelderen. It is now mature, but also on a track to be replaced by Lucaya (which is only just entering demo mode).


            +------+   +-------+   +-------+   +------+  
            | u2u  |   |auction|   |loyalty|   |retail|  
          +-|plugin|---|plugin |---|plugin |---|plugin|---+
          | |      |   |       |   |       |   |      |   |
          | +------+   +-------+   +-------+   +------+   |
          |                                               |
          |     c o r e    W e b F u n d s    a p p l     |
          |                                               |
          |    c o m m o n    c a p a b i l i t i e s     |   
          |                                               |
          |G U I - n e t - D B - P K I - c o n t r a c t s|
          |                                               |
          |     +------+   +------+   +------+   +------+ | 
          |     | SOX  |   |Trader|   |Mondex|   |  E   | | 
          +-----|  vm  |---|  vm  |---|  vm  |---|  vm  |-+
                |      |   |      |   |      |   |      |
                +------+   +------+   +------+   +------+

The original motive for ValueManagers was the need to create a bearer token system. SOX was to be one VM, and the token payments the other. In the event, the tokens VM was never delivered, but a Trader VM did get completed.

Value Managers

A Value Manager is a module offering payments of a particular type and technology. E.g., SOXWallet can do SOX payments and deposits. We refer to the value manager as the protocol manager for a given system, such as Trader, SOX/Ricardo, E-protocol, Mondex, etc. G3 strived to permit multiple value managers to exist underneath it, and offers the user a coherent interface.

Each Value Manager conforms to the interface located in webfunds/client/ In the case of the SOXWallet, the module is at webfunds/client/sox/, although this is migrating to webfunds/sox/value/*,

There was some early confusion on terms. Originally, the value manager was referred to as a wallet, but as many systems refer to the entire application as a wallet, the term was deprecated.


We refer to the plugin as the application that gets plugged in to the top of G3, using the cash management capabilities of the system, perhaps provided by multiple value managers. Here, we would be referring to plugins for u2u, retail, loyalty, auctions. The one plugin that was added was the ContractSignWizard, written by Edwin Woudt to sign Ricardian Contracts.

G2 WebFunds

The 2nd Generation of WebFunds was a substantial rewrite by Gary Howland of Mike's application. The AWT-based GUI did not change much, but the underlying organisation did, making it more robust. It was also updated to Java 1.1. This was completed around 1997.

G1 WebFunds

The 1st Generation of WebFunds was written from scratch by Mike, based on the work done with Trader. This was completed around mid 1996. It was substantially written in Java 1.0.

The primary feature of WebFunds then was a proxy design that allowed the application to handle seamless requests for payments driven by the browser and server shopping cart interface. The web server was empowered with The SOX Shop, a simple requestor of payments.

Back to Index.

Copyright © 1999-2004 Systemics Ltd. All rights reserved.