Software Applications

Most of the existing software applications in the library community build off existing Z39.50 products and services. One of the most popular tools for providing SRU functionality is the YAZ proxy package from Index Data. It provides a middle-tier between clients and servers. In the provision of SRU services, it accepts incoming queries from clients, then connects to a native Z39.50 interface to retrieve information and then serves the responses back to the client using the appropriate XML structure.

The YAZ proxy does not have to operate in such a fashion. The open-source ILS Evergreen provides a native SRU interface. If the library wishes to provide a Z39.50 service, it uses the YAZ software combined with a perl module to provide one which connects to the SRU service (evergreen-admin, 2009).

The majority of server and client applications related to SRU are designed to be integrated within an existing server-based infrastructure. Index Data's YAZ tools provide a range of options, including C++, Java and PHP modules. Taylor provides a number of Java-based tools, and the Cheshire3 project implements an XML-based search engine which emphasizes the use of standards, including SRU.

Options for desktop client software are limited for both Z39.50 and SRU. Most uses of SRU integrate with existing web sites, federated search products or cataloguing tools. For testing purposes, the yaz-client command-line program from Index Data and the Mercury Z39.50 Client (which includes SRU functionality) from Basedow Information Systems were used.

Server-based client systems do exist. As an example, Drupal (, a popular open-source content management system, has a module available that integrates Z39.50 and SRU searches into web site content. Built using the YAZ PHP toolkit from Index Data, it significantly reduces the level of skill needed to integrate searches into an existing web site.

Previous: Protocol Operations Next: Related Standards