Added SRU support
[pazpar2-moved-to-github.git] / doc / book.xml
index 6ed3ee0..cd01325 100644 (file)
@@ -67,7 +67,8 @@
    -- <ulink url="&url.xslt;">XSLT</ulink> is used to normalize and extract
    data from retrieval records for display and analysis. It can be used
    against any server which supports the 
-   <ulink url="&url.z39.50;">Z39.50</ulink> protocol. Proprietary
+   <ulink url="&url.z39.50;">Z39.50</ulink> and <ulink url="&url.sru;">SRU/SRW</ulink>
+   protocol. Proprietary
    backend modules can be used to support a large number of other protocols
    (please contact Index Data for further information about this).
   </para>
    support open standards, please contact Index Data. We have a licensing
    agreement with a third party vendor which will enable Pazpar2 to access
    thousands of online databases, in addition the vast number of catalogs
-   and online services that support the Z39.50 protocol.
+   and online services that support the Z39.50/SRU/SRW protocols.
   </para>
   <para>
    Pazpar2 is our attempt to re-think the traditional paradigms for
    </para>
   </section>
 
+  <section id="installation.win32">
+    <title>Installation on Windows (from Source)</title>
+    <para>
+      Pazpar2 can be built for Windows using
+      <ulink url="&url.vstudio;">Microsoft Visual Studio</ulink>.
+      The support files for building YAZ on Windows are located in the
+      <filename>win</filename> directory. The compilation is performed
+      using the <filename>win/makefile</filename> which is to be
+      processed by the NMAKE utility part of Visual Studio.
+    </para>
+    <para>
+      Ensure that the development libraries + header files are
+      available on your system before compiling Pazpar2. For installation
+      of YAZ, refer to the YAZ installation chapter.
+      It is easiest if YAZ and Pazpar2 are unpacked in the same
+      directory (side-by-side).
+    </para>
+    <para>
+      The compilation is tuned by editing the makefile of Pazpar2.
+      The process is similar to YAZ. Adjust the various directories
+      <literal>YAZ_DIR</literal>, <literal>ZLIB_DIR</literal>, ..
+    </para>
+    <para>
+      Compile Pazpar2 by invoking <application>nmake</application> in
+      the <filename>win</filename> directory.
+      The resulting binaries of the build process are located in the
+      <filename>bin</filename> of the Pazpar2 source
+      tree - including the <filename>pazpar2.exe</filename> and necessary DLLs.
+    </para>
+    <para>
+      The Windows version of Pazpar2 is a console application. It may
+      be installed as a Windows Service by adding option 
+      <literal>-install</literal> for the pazpar2 program. This will
+      register Pazpar2 as a service and use the other options provided
+      in the same invocation. For example:
+      <screen>
+       cd \MyPazpar2\etc
+       ..\bin\pazpar2 -install -c pazpar2.cfg -l pazpar2.log
+      </screen>
+      The Pazpar2 service may now be controlled via the Service Control
+      Panel. It may be unregistered by passing the <literal>-remove</literal>
+      option. Example:
+      <screen>
+       cd \MyPazpar2\etc
+       ..\bin\pazpar2 -remove
+      </screen>
+    </para>
+  </section>
+
   <section id="installation.test1">
    <title>Installation of test1 interface</title>
    <para>
 
    <para>
     Start the Pazpar2 daemon using the 'in-source' binary of the Pazpar2
-    daemon.
+    daemon. On Unix the process is:
     <screen>
      cd etc
      cp pazpar2.cfg.dist pazpar2.cfg
      ../src/pazpar2 -f pazpar2.cfg -t edu.xml
     </screen>
+    And on Windows:
+    <screen>
+     cd etc
+     copy pazpar2.cfg.dist pazpar2.cfg
+     ..\bin\pazpar2 -f pazpar2.cfg -t edu.xml
+    </screen>
     This will start a Pazpar2 listener on port 8004. It will proxy 
     HTTP requests to localhost - port 80, which we assume will be the regular
     HTTP server on the system. Inspect and modify pazpar2.cfg as needed
    <title>Connecting to non-standard resources</title>
    <para>
     Pazpar2 uses Z39.50 as its switchboard language -- i.e. as far as it
-    is concerned, all resources speak Z39.50. It is, however, equipped
+    is concerned, all resources speak Z39.50, or its webservices derivatives,
+    SRU/SRW. It is, however, equipped
     to handle a broad range of different server behavior, through
     configurable query mapping and record normalization. If you develop
     configuration, stylesheets, etc., for a new type of resources, we
    </para>
 
    <para>
-    But what about resources that don't support Z39.50 at all? The NISO
-    SRU (MXG) protocol is slowly gathering steam. Other resources might
+    But what about resources that don't support Z39.50 at all? Some resources might
     support OpenSearch, private, XML/HTTP-based protocols, or something
     else entirely. Some databases exist only as web user interfaces and
     will require screen-scraping. Still others exist only as static