File: server.html

package info (click to toggle)
yaz 3.0.34-2
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 13,404 kB
  • ctags: 12,108
  • sloc: xml: 116,075; ansic: 52,205; sh: 9,746; tcl: 2,043; makefile: 1,141; yacc: 347
file content (35 lines) | stat: -rw-r--r-- 5,222 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<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.73.2"><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#server.introduction">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#server.init">5.1. Init</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#server.search.retrieve">5.2. Search and Retrieve</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#server.delete">5.3. Delete</a></span></dt><dt><span class="sect2"><a href="server.backendfunctions.html#server.scan">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. GFS Configuration and 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="server.introduction"></a>1.�Introduction</h2></div></div></div><p>
    If you aren't into documentation, a good way to learn how the
    back end interface works is to look at the <code class="filename">backend.h</code>
    file. Then, look at the small dummy-server in
    <code class="filename">ztest/ztest.c</code>. The <code class="filename">backend.h</code>
    file also makes a good reference, once you've chewed your way through
    the prose of this file.
   </p><p>
    If you have a database system that you would like to make available by
    means of Z39.50 or SRU, YAZ basically offers your two options. You
    can use the APIs provided by the Z39.50 ASN.1, <acronym class="acronym">ODR</acronym>, and <acronym class="acronym">COMSTACK</acronym>
    modules to
    create and decode PDUs, and exchange them with a client.
    Using this low-level interface gives you access to all fields and
    options of the protocol, and you can construct your server as close
    to your existing database as you like.
    It is also a fairly involved process, requiring
    you to set up an event-handling mechanism, protocol state machine,
    etc. To simplify server implementation, we have implemented a compact
    and simple, but reasonably full-functioned server-frontend that will
    handle most of the protocol mechanics, while leaving you to
    concentrate on your database interface.
   </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
     The backend interface was designed in anticipation of a specific
     integration task, while still attempting to achieve some degree of
     generality. We realize fully that there are points where the
     interface can be improved significantly. If you have specific
     functions or parameters that you think could be useful, send us a
     mail (or better, sign on to the mailing list referred to in the
     top-level README file). We will try to fit good suggestions into future
     releases, to the extent that it can be done without requiring
     too many structural changes in existing applications.
    </p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
     The YAZ server does not support XCQL.
     </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>