General features
Prev | Chapter 1. Introduction | Next

## General features

- refdb uses a three-tier architecture (see Figure 1.1, “refdb three-tier architecture”), consisting of clients on the workstation side, and an application server as well as the SQL database server on the server side.

  Figure 1.1. refdb three-tier architecture

  Optionally you may use an internal database engine instead of the external SQL server, resulting in a simpler two-tier setup.

- The data storage proper is done by a SQL database engine. Currently MySQL and PostgreSQL are supported as external database engines. Additionally, an internal SQL engine based on SQLite is available, which allows data storage in a single, operating-system and architecture-independent file without any administration overhead.

- By default, incoming data are converted to UTF-8 and stored as such (see Figure 1.2, “refdb character encoding support”). Outgoing data can be converted to other character encodings if needed. However, RefDB can be set up in a very flexible manner to accommodate other character encoding requirements as long as they are supported by your operating system.

  Figure 1.2. refdb character encoding support

- The server can run as a daemon in a non-privileged account if security concerns require this. Besides, users can start it as a standalone application on demand. As just about everything is configurable, a thoughtful setup will allow to run several copies of the server on the same box in parallel.

- The refdb clients are no fat applications, but rather a collection of small, portable tools implemented in ANSI C to perform all necessary client-side tasks on any platform with a decent C compiler.

- The refdb clients can be run in an interactive mode or in a batch mode which is useful in scripts.

- Separately available packages integrate refdb functionality into Emacs and vim, turning these editors into integrated authoring environments for DocBook and TEI documents with easy access to your reference data.

- The adepts of the Perl programming language might be delighted to know that the RefDBClient module allows Perl programs to directly communicate with a refdbd server without using the C clients. This allows the rapid development of custom programs that access RefDB databases.

Prev | Up | Next
Who should use refdb? | Home | Reference management features