Chapter 1. Introduction

Metaproxy is a stand alone program that acts as a universal router, proxy and encapsulated metasearcher for information retrieval protocols such as Z39.50 and SRU. 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, retrieves records from them, etc. it satisfies its clients' requests by transforming them, multiplexing them, forwarding them on to zero or more servers, merging the results, transforming them, and delivering them back to the client. In addition, it acts as a simple HTTP server; support for further protocols can be added in a modular fashion, through the creation of new filters.

   Anything goes in!
   Anything goes out!
   Fish, bananas, cold pyjamas,
   Mutton, beef and trout!
	- attributed to Cole Porter.

Metaproxy is a more capable alternative to YAZ Proxy, being more powerful, flexible, configurable and extensible. Among its many advantages over the older, more pedestrian work are support for multiplexing (encapsulated metasearching), routing by database name, authentication and authorization and serving local files via HTTP. Equally significant, its modular architecture facilitates the creation of pluggable modules implementing further functionality.

This manual will describe how to install Metaproxy before giving an overview of its architecture, then discussing the key concept of a filter in some depth and giving an overview of the various filter types, then discussing the configuration file format. After this come several optional chapters which may be freely skipped: a detailed discussion of virtual databases and multi-database searching, some notes on writing extensions (additional filter types) and a high-level description of the source code. Finally comes the reference guide, which contains instructions for invoking the metaproxy program, and detailed information on each type of filter, including examples.