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