Information locations and stores in CHOICE
There are several different possible holders of information in a fully-featured CHOICE architecture.
Some information will be systematically duplicated,
but nevertheless have a primary source in any particular context.
- DEV: device storage in browser (HTML5) or app
- The initial source and destination of most information for interaction.
This must be synched with local server between sessions,
so that several devices are able to be used,
and information can be recovered after loss of device.
Devices are expected to be on, and connected to the Internet, only intermittently.
- QIS: Question Information Store
- Information for relevant questions can be cached in the device,
but needs to be refreshed every so often.
It is maintained centrally, distributed uniformly across the whole system.
- LSV: Local SerVer
- The local server is the one that the user relies on for access to the system,
and when responding to other enquirers as a respondent.
In the initial trials, the LSV storage can be held on the same machine as the QIS and HUB.
- HUB: the central server that is the hub of the system
- Stores:
- question data, including numbers of enquiries asking question and users answering it;
- other overall statistics, e.g. for the activity of different types of enquiry;
- some historical user answer records.
For answers, the hub will store some kind of
cryptographic hash
record of each user's answer history, in such a way that:
- any user can check that the returned record is correct;
- the records or hashes can be found quickly.
How to do this needs to be further thought through.
If the records are changed, the hub knows that the local server records have changed,
and that they must be discounted.
- STR: the query string
- This is a purely ephemeral "store", existing only to pass information from one page to the next. If used, serves only to represent context information.
Every link is processed with javascript to update info and then go somewhere.