Initial commit
[yaz4j-moved-to-github.git] / dependencies / yaz-2.1.28 / doc / server.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 4. Generic server</title><meta name="generator" content="DocBook XSL Stylesheets V1.70.1"><link rel="start" href="index.html" title="YAZ User's Guide and Reference"><link rel="up" href="index.html" title="YAZ User's Guide and Reference"><link rel="prev" href="zoom.events.html" title="8. Events"><link rel="next" href="server.frontend.html" title="2. The Database Frontend"></head><body><link rel="stylesheet" type="text/css" href="common/style1.css"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Generic server</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="zoom.events.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="server.frontend.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="server"></a>Chapter 4. Generic server</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="server.html#id2570228">1. Introduction</a></span></dt><dt><span class="sect1"><a href="server.frontend.html">2. The Database Frontend</a></span></dt><dt><span class="sect1"><a href="server.backend.html">3. The Backend API</a></span></dt><dt><span class="sect1"><a href="server.main.html">4. Your main() Routine</a></span></dt><dt><span class="sect1"><a href="server.backendfunctions.html">5. The Backend Functions</a></span></dt><dd><dl><dt><span class="sect2"><a href="server.backendfunctions.html#id2570826">5.1. Init</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#id2571032">5.2. Search and retrieve</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#id2571502">5.3. Delete</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#id2571537">5.4. scan</a></span></dt></dl></dd><dt><span class="sect1"><a href="server.invocation.html">6. Application Invocation</a></span></dt><dt><span class="sect1"><a href="server.vhosts.html">7. Virtual Hosts</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2570228"></a>1. Introduction</h2></div></div></div><p>
2     If you aren't into documentation, a good way to learn how the
3     back end interface works is to look at the <code class="filename">backend.h</code>
4     file. Then, look at the small dummy-server in
5     <code class="filename">ztest/ztest.c</code>. The <code class="filename">backend.h</code>
6     file also makes a good reference, once you've chewed your way through
7     the prose of this file.
8    </p><p>
9     If you have a database system that you would like to make available by
10     means of Z39.50 or SRU, YAZ basically offers your two options. You
11     can use the APIs provided by the Z39.50 ASN.1, <acronym class="acronym">ODR</acronym>, and <acronym class="acronym">COMSTACK</acronym>
12     modules to
13     create and decode PDUs, and exchange them with a client.
14     Using this low-level interface gives you access to all fields and
15     options of the protocol, and you can construct your server as close
16     to your existing database as you like.
17     It is also a fairly involved process, requiring
18     you to set up an event-handling mechanism, protocol state machine,
19     etc. To simplify server implementation, we have implemented a compact
20     and simple, but reasonably full-functioned server-frontend that will
21     handle most of the protocol mechanics, while leaving you to
22     concentrate on your database interface.
23    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
24      The backend interface was designed in anticipation of a specific
25      integration task, while still attempting to achieve some degree of
26      generality. We realize fully that there are points where the
27      interface can be improved significantly. If you have specific
28      functions or parameters that you think could be useful, send us a
29      mail (or better, sign on to the mailing list referred to in the
30      top-level README file). We will try to fit good suggestions into future
31      releases, to the extent that it can be done without requiring
32      too many structural changes in existing applications.
33     </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
34      The YAZ server does not support XCQL.
35      </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="zoom.events.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="server.frontend.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">8. Events </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2. The Database Frontend</td></tr></table></div></body></html>