-<!-- $Id: introduction.xml,v 1.1 2004-03-31 18:28:06 adam Exp $ -->
+<!-- $Id: introduction.xml,v 1.2 2004-04-11 11:16:39 adam Exp $ -->
<chapter id="introduction"><title>Introduction</title>
<para>
<ulink url="http://www.indexdata.dk/yazplusplus/">YAZ++</ulink>
is a C++ layer for YAZ and implements the ANSI Z39.50
protocol for information retrieval (client and server side).
While YAZ itself can be used from both C and C++ it is limited by the
- common denomiator: C.
+ common denominator C.
</para>
<para>
The YAZ++ packages also features a ZOOM interface for C++ (
Later versions (0.7+) of YAZ++ also supports SRW/SRU.
</para>
<para>
- YAZ++ and ZOOM C++ uses the same license as YAZ - see LICENSE file
- for details.
- </para>
- <para>
- This package also contains a proxy as well as a proxy library.
- The proxy can be used to debug existing Z39.50 implementations,
- optimize Z39.50 operation (by caching and other mechanisms), and
- offer a SRW/SRU service.
- The proxy and the proxy library is covered by the GPL.
- See LICENSE.proxy for details.
+ This package also contains a proxy application and proxy developer
+ library.
+ The proxy application can be used to debug existing Z39.50
+ implementations, optimize Z39.50 operation (by caching and other
+ mechanisms), and offer a SRW/SRU service.
</para>
<section>
<title>Licensing</title>
<para>
- The Proxy and its companion library is covered by the
+ The proxy application and the proxy library is covered by the
<link linkend="gpl">GPL</link>.
- The remaning parts: the ZOOM-C++ binding and the YAZ++ library is covered
+ The remaning parts: the ZOOM-C++ library and the YAZ++ library is covered
by the <link linkend="yaz.license">YAZ license</link>.
</para>
</section>
<chapter id="proxy">
<title>The YAZ Proxy</title>
<para>
- The YAZ proxy is a transparent Z39.50-to-Z39.50 gateway. That is,
- it is a Z39.50 server which has as its back-end a Z39.50 client
- that forwards requests on to another server (known as the
- <firstterm>backend target</firstterm>.)
+ The YAZ proxy is a transparent SRW/SRU/Z39.50-to-Z39.50 gateway.
+ That is, it is a SRW/SRU/Z39.50 server which has as its back-end a
+ Z39.50 client that forwards requests on to another server (known as
+ the <firstterm>backend target</firstterm>.)
</para>
<para>
- The YAZ Proxy is useful for debugging Z39.50 software, logging
+ -- All config directives --
+ -- SRW/SRU ..
+ -- Example config
+ -- Mention XSLT conversion
+ </para>
+ <para>
+ The YAZ Proxy is useful for debugging SRW/SRU/Z39.50 software, logging
APDUs, redirecting Z39.50 packages through firewalls, etc.
Furthermore, it offers facilities that often
boost performance for connectionless Z39.50 clients such
<section id="proxy-target">
<title>Specifying the Backend Target</title>
<para>
- When the proxy accepts a Z39.50 client session, it
- determines the backend target by the following rules:
+ When the proxy receives a Z39.50 Initialize Request from a Z39.50
+ client, it determines the backend target by the following rules:
<orderedlist>
<listitem>
- <para> If the <literal>InitializeRequest</literal> PDU from the
+ <para>If the <literal>InitializeRequest</literal> PDU from the
client includes an
<link linkend="otherinfo-encoding"><literal>otherInfo</literal></link>
element with OID
usual YAZ address format (typically
<literal>tcp:<parameter>hostname</parameter>:<parameter>port</parameter></literal>)
as described in
- <ulink url="http://www.indexdata.dk/yaz/doc/comstack.addresses.php"
+ <ulink url="http://www.indexdata.dk/yaz/doc/comstack.addresses.tkl"
>the Addresses section of the YAZ manual</ulink>.
</para>
</listitem>
<listitem>
- <para> Otherwise, the Proxy uses the default target, if one was
+ <para>Otherwise, the Proxy uses the default target, if one was
specified on the command-line with the <literal>-t</literal>
option. A default target can also be specified in the
XML Config file.
</para>
</listitem>
<listitem>
- <para> Otherwise, the proxy closes the connection with
+ <para>Otherwise, the proxy closes the connection with
the client.
</para>
</listitem>
client. Finally, the proxy may convert records.
</para>
<para>
- In the current version the only supported conversion is
- MARC21/USMARC in MARC-8 charset to MARCXML in UTF-8. Future version of
- the proxy may do other record/charset conversions.
+ The proxy can convert from MARC to MARCXML and thereby offer an
+ XML version of any MARC record as long as it is ISO2709 encoded.
+ If the proxy is compiled with libXSLT support it can also
+ perform XSLT on XML.
</para>
</section>
<section id="proxy-config-file">
<title>Proxy Configuration File</title>
<para>
- The Proxy as an option may read a configuration file using option
+ The Proxy may read a configuration file using option
<literal>-c</literal> followed by the filename of a config file.
</para>
<para>
- The config file is in XML format. The YAZ proxy must be compiled
+ The config file is XML based. The YAZ proxy must be compiled
with <ulink url="http://www.xmlsoft.org/">libxml2</ulink> and
<ulink url="http://xmlsoft.org/XSLT/">libXSLT</ulink> support in
order for the config file facility to be enabled.
<chapter id="zoom">
- <!-- $Id: zoom.xml,v 1.11 2002-11-08 13:38:45 adam Exp $ -->
+ <!-- $Id: zoom.xml,v 1.12 2004-04-11 11:16:39 adam Exp $ -->
<title>ZOOM-C++</title>
implementation of the C binding. For information on the supported
options and other such details, see the ZOOM-C documentation, which
can be found on-line at
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.php"/>
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.tkl"/>
</para>
<para>
All of the classes defined by ZOOM-C++ are in the
</listitem>
<listitem>
<para>
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.php#zoom.connections"
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.tkl#zoom.connections"
>The Connections section of the ZOOM-C documentation</ulink>
</para>
</listitem>
<para>
This class enables a query to be created by compiling YAZ's
cryptic but powerful
- <ulink url="http://www.indexdata.dk/yaz/doc/tools.php#PQF"
+ <ulink url="http://www.indexdata.dk/yaz/doc/tools.tkl#PQF"
>Prefix Query Notation (PQN)</ulink>.
</para>
</sect2>
<para>
This class enables a query to be created using the simpler but
less expressive
- <ulink url="http://www.indexdata.dk/yaz/doc/tools.php#CCL"
+ <ulink url="http://www.indexdata.dk/yaz/doc/tools.tkl#CCL"
>Common Command Language (CCL)</ulink>.
The qualifiers recognised by the CCL parser are specified in an
external configuration file in the format described by the YAZ
</listitem>
<listitem>
<para>
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.query.php"
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.query.tkl"
>The Queries section of the ZOOM-C documentation</ulink>
</para>
</listitem>
</listitem>
<listitem>
<para>
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.resultsets.php"
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.resultsets.tkl"
>The Result Sets section of the ZOOM-C documentation</ulink>
</para>
</listitem>
<sect2>
<title>Memory Management</title>
<para>
- The <literal>record</literal> obejcts returned from
+ The <literal>record</literal> objects returned from
<literal>resultSet::getRecord()</literal> are ``owned'' by the
result set object: that means that the application is not
responsible for <literal>delete</literal>ing them - each
</listitem>
<listitem>
<para>
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.records.php"
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.records.tkl"
>The Records section of the ZOOM-C documentation</ulink>
</para>
</listitem>
<literal>exception</literal> class and its subclasses. The
closest thing is the <literal>ZOOM_connection_error</literal>
function described in
- <ulink url="http://www.indexdata.dk/yaz/doc/zoom.php#zoom.connections"
+ <ulink url="http://www.indexdata.dk/yaz/doc/zoom.tkl#zoom.connections"
>The Connections section</ulink> of the documentation.
</para>
</sect2>