Net::Z3950::SimpleServer is a Perl module which is intended to make it as simple as possible to develop new Z39.50, SRU and SRW servers over any type of database imaginable. All you have to do is implement functions handling:
- Initializing of your database (optional),
- searching the database,
- returning “database records” on request,
- sorting (optional),
- scanning indexes (optional),
- connection closure (optional), and
- eventually other Z39.50/SRU/SRW events such as result-set deletion and extended services.
The module takes care of everything else and automatically starts a server for you, listens to incoming connections, and implements the Z39.50, SRU and SRW protocols. It couldn’t really be easier. SimpleServer is based on the popular YAZ toolkit which means it is robust, efficient, widely portable, and it inter-operates with all known Z39.50, SRU and SRW clients. Use SimpleServer together with other Perl modules to provide gateways to relational databases, local file stores, SOAP/RDF-servers, etc. SimpleServer currently supports the Init, Search, Present, Sort, Scan and Close services. If you are interested in other functionality, get in touch and we’ll help if we can.
Zoogle
As an example of a SimpleServer application, we have written the Zoogle gateway. This is a Z39.50, SRU and SRW server allowing a client to search directly in the Google web search engine via their public SOAP service. Feel free to download Zoogle!
Support
The SimpleServer module can be covered by the optional Index Data support agreement. Please contact us if you are interested.
Requirements
SimpleServer currently requires the YAZ toolkit – version 2.0.0 or higher. Remember to ./configure YAZ with –enable-shared to support dynamic load libraries.
MS Windows
We’ve run through the exercise of compiling SimpleServer under Windows, and it turned out to be fairly trivial. The included Perl makefile will work with MS VC++. The YAZ DLL is required. We’ve no reason to suspect it wouldn’t run under both Win98 and WinNT/2000.