-->
<!NOTATION PDF SYSTEM "PDF">
]>
-<!-- $Id: book.xml,v 1.60 2007-05-22 11:05:45 adam Exp $ -->
<book id="metaproxy">
<bookinfo>
<title>Metaproxy - User's Guide and Reference</title>
processes, interprets and redirects requests from IR clients using
standard protocols such as the binary
<ulink url="&url.z39.50;">ANSI/NISO Z39.50</ulink>
- and the information search and retireval
- web services <ulink url="&url.sru;">SRU</ulink>
- and <ulink url="&url.srw;">SRW</ulink>, as
- well as functioning as a limited
+ and the information search and retrieval
+ web service <ulink url="&url.sru;">SRU</ulink>
+ as well as functioning as a limited
<ulink url="&url.http;">HTTP</ulink> server.
</simpara>
<simpara>
<ulink url="&url.metaproxy;">Metaproxy</ulink>
is a stand alone program that acts as a universal router, proxy and
encapsulated metasearcher for information retrieval protocols such
- as <ulink url="&url.z39.50;">Z39.50</ulink>, and in the future
- <ulink url="&url.sru;">SRU</ulink> and <ulink url="&url.srw;">SRW</ulink>.
+ as <ulink url="&url.z39.50;">Z39.50</ulink> and
+ <ulink url="&url.sru;">SRU</ulink>.
To clients, it acts as a server of these protocols: it can be searched,
records can be retrieved from it, etc.
To servers, it acts as a client: it searches in them,
<listitem>
<para>
The popular C++ library. Initial versions of Metaproxy
- was built with 1.33.0. Version 1.33.1 works too.
+ was built with 1.32 but this is no longer supported.
+ Metaproxy is known to work with Boost version 1.33 through 1.38.
</para>
</listitem>
</varlistentry>
tools binary packages. If, for example, Libxml2/libxslt are already
installed as development packages use those (and omit compilation).
</para>
-
- <para>
- Libxml2/libxslt:
- </para>
- <screen>
- gunzip -c libxml2-version.tar.gz|tar xf -
- cd libxml2-version
- ./configure
- make
- su
- make install
- </screen>
- <screen>
- gunzip -c libxslt-version.tar.gz|tar xf -
- cd libxslt-version
- ./configure
- make
- su
- make install
- </screen>
- <para>
- YAZ/YAZ++:
- </para>
- <screen>
- gunzip -c yaz-version.tar.gz|tar xf -
- cd yaz-version
- ./configure
- make
- su
- make install
- </screen>
- <screen>
- gunzip -c yazpp-version.tar.gz|tar xf -
- cd yazpp-version
- ./configure
- make
- su
- make install
- </screen>
- <para>
- Boost:
- </para>
- <screen>
- gunzip -c boost-version.tar.gz|tar xf -
- cd boost-version
- ./configure
- make
- su
- make install
- </screen>
- <para>
- Metaproxy:
- </para>
- <screen>
- gunzip -c metaproxy-version.tar.gz|tar xf -
- cd metaproxy-version
- ./configure
- make
- su
- make install
- </screen>
+
+ <section id="libxml2.fromsource">
+ <title>Libxml2/libxslt</title>
+ <para>
+ Libxml2/libxslt:
+ </para>
+ <screen>
+ gunzip -c libxml2-version.tar.gz|tar xf -
+ cd libxml2-version
+ ./configure
+ make
+ su
+ make install
+ </screen>
+ <screen>
+ gunzip -c libxslt-version.tar.gz|tar xf -
+ cd libxslt-version
+ ./configure
+ make
+ su
+ make install
+ </screen>
+ </section>
+ <section id="yaz.fromsource">
+ <title>YAZ/YAZ++</title>
+ <screen>
+ gunzip -c yaz-version.tar.gz|tar xf -
+ cd yaz-version
+ ./configure
+ make
+ su
+ make install
+ </screen>
+ <screen>
+ gunzip -c yazpp-version.tar.gz|tar xf -
+ cd yazpp-version
+ ./configure
+ make
+ su
+ make install
+ </screen>
+ </section>
+ <section>
+ <title id="boost.fromsource">Boost</title>
+ <para>
+ Metaproxy needs components thread and test from
+ Boost.
+ </para>
+ <screen>
+ gunzip -c boost-version.tar.gz|tar xf -
+ cd boost-version
+ ./configure --with-libraries=thread,test --with-toolset=gcc
+ make
+ su
+ make install
+ </screen>
+ <para>
+ However, under the hood bjam is used. You can invoke that with
+ </para>
+ <screen>
+ ./bjam --toolset=gcc --with-thread --with-test stage
+ </screen>
+ <para>
+ Replace <literal>stage</literal> with <literal>clean</literal> /
+ <literal>install</literal> to perform clean and install respectively.
+ </para>
+ <para>
+ Add <literal>--prefix=DIR</literal> to install Boost in other
+ prefix than <literal>/usr/local</literal>.
+ </para>
+ </section>
+ <section id="metaproxy.fromsource">
+ <title>Metaproxy</title>
+ <screen>
+ gunzip -c metaproxy-version.tar.gz|tar xf -
+ cd metaproxy-version
+ ./configure
+ make
+ su
+ make install
+ </screen>
+ <para>
+ You may have to tell configure where Boost is installed by supplying
+ options <literal>--with-boost</literal> and <literal>--with-boost-toolset</literal>.
+ The former sets the PREFIX for Boost (same as --prefix for Boost above).
+ The latter the compiler toolset (eg. gcc34).
+ </para>
+ <para>
+ Pass <literal>--help</literal> to configure to get a list of
+ available options.
+ </para>
+ </section>
</section>
<section id="installation.debian">
</para>
<para>
There is currently no official Debian package for YAZ++.
- And the Debian package for YAZ is probably too old.
+ And the official Debian package for YAZ is probably too old.
+ But Index Data bulds "new" versions of those for Debian (i386 only).
+ </para>
+ <para>
Update the <filename>/etc/apt/sources.list</filename>
to include the Index Data repository.
See YAZ' <ulink url="&url.yaz.download.debian;">Download Debian</ulink>
</para>
<screen>
apt-get install libxslt1-dev
- apt-get install libyazpp-dev
+ apt-get install libyazpp2-dev
apt-get install libboost-dev
apt-get install libboost-thread-dev
- apt-get install libboost-date-time-dev
- apt-get install libboost-program-options-dev
apt-get install libboost-test-dev
</screen>
<para>
<para>
Metaproxy can be compiled with Microsoft
<ulink url="&url.vstudio;">Visual Studio</ulink>.
- Version 2003 (C 7.1) and 2005 (C 8.0) is known to work.
+ Versions 2003 (C 7.1), 2005 (C 8.0) and 2008 (C 9.0) is known to work.
</para>
<section id="installation.windows.boost">
<title>Boost</title>
<para>
- Get Boost from its <ulink url="&url.boost;">home page</ulink>.
- You also need Boost Jam (an alternative to make).
- That's also available from the Boost home page.
- The files to be downloaded are called something like:
- <filename>boost_1_33-1.exe</filename>
- and
- <filename>boost-jam-3.1.12-1-ntx86.zip</filename>.
- Unpack Boost Jam first. Put <filename>bjam.exe</filename>
- in your system path. Make a command prompt and ensure
- it can be found automatically. If not check the PATH.
- The Boost .exe is a self-extracting exe with
- complete source for Boost. Compile that source with
- Boost Jam (An alternative to Make).
- The compilation takes a while.
- For Visual Studio 2003, use
- <screen>
- bjam "-sTOOLS=vc-7_1"
- </screen>
- Here <literal>vc-7_1</literal> refers to a "Toolset" (compiler system).
- For Visual Studio 2005, use
- <screen>
- bjam "-sTOOLS=vc-8_0"
- </screen>
- To install the libraries in a common place, use
- <screen>
- bjam "-sTOOLS=vc-7_1" install
- </screen>
- (or vc-8_0 for VS 2005).
- </para>
- <para>
- By default, the Boost build process installs the resulting
- libraries + header files in
- <literal>\boost\lib</literal>, <literal>\boost\include</literal>.
+ For Windows, it's easiest to get the precompiled Boost
+ package from <ulink url="&url.boost.windows.download;">here</ulink>.
+ Several versions of the Boost libraries may be selected when
+ installing Boost for windows. Please choose at least the
+ <emphasis>multithreaded</emphasis> (non-DLL) version because
+ the Metaproxy makefile uses that.
</para>
<para>
For more information about installing Boost refer to the
</para>
<para>
Libxslt has other dependencies, but these can all be downloaded
- from the same site. Get the following:
+ from the same site. Get the following package:
iconv, zlib, libxml2, libxslt.
</para>
</section>
<title>YAZ++</title>
<para>
Get <ulink url="&url.yazplusplus;">YAZ++</ulink> as well.
- Version 1.0 or later is required. For now get it from
- Index Data's
- <ulink url="&url.snapshot.download;">Snapshot area</ulink>.
+ Version 1.1.0 or later is required.
</para>
<para>
YAZ++ includes NMAKE makefiles, similar to those found in the
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
</screen>
<para>
- The top-level element is <metaproxy>. This contains a
- <start> element, a <filters> element and a
- <routes> element, in that order. <filters> is
- optional; the other two are mandatory. All three are
- non-repeatable.
+ The top-level element is <metaproxy>. This contains
+ a <dlpath> element,
+ a <start> element,
+ a <filters> element and
+ a <routes> element, in that order. <dlpath> and
+ <filters> are optional; the other two are mandatory.
+ All four are non-repeatable.
+ </para>
+ <para>
+ The <dlpath;> element contains a text element which
+ specifies the location of filter modules. This is only needed
+ if Metaproxy must load 3rd party filters (most filters with Metaproxy
+ are built into the Metaproxy application).
</para>
<para>
The <start> element is empty, but carries a
</para>
<screen><![CDATA[<?xml version="1.0"?>
<metaproxy xmlns="http://indexdata.com/metaproxy" version="1.0">
+ <dlpath>/usr/lib/metaproxy/modules</dlpath>
<start route="start"/>
<filters>
<filter id="frontend" type="frontend_net">
<para>
Metaproxy can act as
<ulink url="&url.sru;">SRU</ulink> and
- <ulink url="&url.srw;">SRW</ulink>
web service server, which translates web service requests to
<ulink url="&url.z39.50;">ANSI/NISO Z39.50</ulink> packages and
sends them off to common available targets.
</tgroup>
</table>
<para>
- A typical minimal example <ulink url="&url.sru;">SRU</ulink> and
- <ulink url="&url.srw;">SRW</ulink> server configuration file is found
- in the tarball distribution at
+ A typical minimal example <ulink url="&url.sru;">SRU</ulink>
+ server configuration file is found in the tarball distribution at
<literal>etc/config-sru-to-z3950.xml</literal>.
</para>
<para>