We refer to this software as a generic database frontend. Your
database system is the
backend database
, and the
interface between the two is called the
backend API
.
The backend API consists of a small number of function handlers and
structure definitions. You are required to provide the
main() routine for the server (which can be
quite simple), as well as a set of handlers to match each of the
prototypes.
The interface functions that you write can use any mechanism you like
to communicate with your database system: You might link the whole
thing together with your database application and access it by
function calls; you might use IPC to talk to a database server
somewhere; or you might link with third-party software that handles
the communication for you (like a commercial database client library).
At any rate, the handlers will perform the tasks of:
-
Initialization.
-
Searching.
-
Fetching records.
-
Scanning the database index (optional - if you wish to implement SCAN).
-
Extended Services (optional).
-
Result-Set Delete (optional).
-
Result-Set Sort (optional).
-
Return Explain for SRU (optional).
(more functions will be added in time to support as much of
Z39.50-1995 as possible).