Print Friendly  .  About this website   .  Search 

 

 

 

Index Data  >  Metaproxy  >  Metaproxy - User's Guide and Reference

Metaproxy - User's Guide and Reference

Adam Dickmeiss

Marc Cromme

Mike Taylor

1.0.14

Abstract

This manual is part of Metaproxy version 1.0.14.

Metaproxy is a universal router, proxy and encapsulated metasearcher for information retrieval protocols. It accepts, processes, interprets and redirects requests from IR clients using standard protocols such as the binary ANSI/NISO Z39.50 and the information search and retrieval web service SRU as well as functioning as a limited HTTP server.

Metaproxy is configured by an XML file which specifies how the software should function in terms of routes that the request packets can take through the proxy, each step on a route being an instantiation of a filter. Filters come in many types, one for each operation: accepting Z39.50 packets, logging, query transformation, multiplexing, etc. Further filter-types can be added as loadable modules to extend Metaproxy functionality, using the filter API.

Metaproxy is covered by the GNU General Public License version 2.


Table of Contents

1. Introduction
2. Installation
Installation on Unix (from Source)
Installation on Debian GNU/Linux
Installation on RPM based Linux Systems
Installation on Windows
Boost
Libxslt
YAZ
YAZ++
Metaproxy
3. YAZ Proxy Comparison
4. The Metaproxy Architecture
5. Filters
Introductory notes
Overview of filter types
auth_simple (mp::filter::AuthSimple)
backend_test (mp::filter::Backend_test)
bounce (mp::filter::Bounce)
cql_rpn (mp::filter::CQLtoRPN)
frontend_net (mp::filter::FrontendNet)
http_file (mp::filter::HttpFile)
load_balance (mp::filter::LoadBalance)
log (mp::filter::Log)
multi (mp::filter::Multi)
query_rewrite (mp::filter::QueryRewrite)
record_transform (mp::filter::RecordTransform)
session_shared (mp::filter::SessionShared)
sru_z3950 (mp::filter::SRUtoZ3950)
template (mp::filter::Template)
virt_db (mp::filter::VirtualDB)
z3950_client (mp::filter::Z3950Client)
zeerex_explain (mp::filter::ZeerexExplain)
Future directions
6. Configuration: the Metaproxy configuration file format
Introductory notes
Overview of the config file XML structure
An example configuration
Config file modularity
Config file syntax checking
7. Virtual databases and multi-database searching
Introductory notes
Virtual databases with the virt_db filter
Multi-database search with the multi filter
What's going on?
A picture is worth a thousand words (but only five hundred on 64-bit architectures)
8. Combined SRU webservice and Z39.50 server configuration
9. Classes in the Metaproxy source code
Introductory notes
Individual classes
mp::FactoryFilter (factory_filter.cpp)
mp::FactoryStatic (factory_static.cpp)
mp::filter::Base (filter.cpp)
mp::filter::AuthSimple, Backend_test, etc. (filter_auth_simple.cpp, filter_backend_test.cpp, etc.)
mp::Package (package.cpp)
mp::Pipe (pipe.cpp)
mp::RouterChain (router_chain.cpp)
mp::RouterFleXML (router_flexml.cpp)
mp::Session (session.cpp)
mp::ThreadPoolSocketObserver (thread_pool_observer.cpp)
mp::util (util.cpp)
mp::xml (xmlutil.cpp)
Other Source Files
I. Reference
metaproxy — Metaproxy - server
auth_simple — Metaproxy Simple Authentication And Authorization Module
backend_test — Metaproxy Backend Test Z39.50 Server Module
bounce — Metaproxy Bouncing Package Sink Module for all kind of metaproxy packages
cql_rpn — Metaproxy CQL to RPN Query Language Transforming Module
frontend_net — Metaproxy Network Server module that accepts Z39.50 and HTTP requests
http_file — Metaproxy HTTP File Server Module
load_balance — Metaproxy Module balancing load among multiple identical Z39.50 targets
log — Metaproxy Package Logging Module
multi — Metaproxy Package Multiplexer Module
query_rewrite — Metaproxy RPN Query Rewrite Module
record_transform — Metaproxy Module that performs Z39.50 presentResponse record transformations
session_shared — Metaproxy Module for sharing system ressorces between threads
sru_z3950 — Metaproxy Module transforming SRU web service requests to Z3950 Metaproxy packages
template — Metaproxy Template Module That Does Nothing
virt_db — Metaproxy Virtual Databases Module
z3950_client — Metaproxy Z39.50 Backend Client Module
zeerex_explain — Metaproxy Z39.50 ZeeReX Explain Module
A. License
GNU General Public License