The University of Illinois Open Archives Initiative Metadata Harvesting Project
ASP OAI 2.0 Static Repository Gateway
ver. 1.11
Disclaimer: The following is 'quick and dirty' documentation to hopefully get you started. It assumes a fair amount of
familiarity with configuring the Microsoft IIS web server and other minutia such as
editing text files, etc. Hopefully, we will eventually have time for some better documentation. Thanks.
WHAT THIS IS:
This is an ASP OAI-PMH static repository gateway implementation as described in release 2.0 of the
Open Archives Initiative Protocol for Metadata Harvesting
and
Specification of the OAI Static Repository and Gateway - alpha version .
It uses
- Microsoft Internet Information Server;
- Microsoft ASP with VBScript and JScript;
- Microsoft Windows Script;
- Microsoft XML Core Services (MSXML);
- Windows HTTP Services (WinHTTP);
- UIUC OAI Harvester Objects.
This application can be downloaded onto an appropriately configured
Microsoft Windows NT/2000 system and used with minimal configuration changes.
INSTALLATION:
-
Unpack the downloaded zip file to install all files into the root directory of the C
drive (C:\) on a system running Microsoft IIS ver. 4 or later. (Installation into
a different directory is possible but may require significant changes.
These dependencies may be removed in a future release.)
You must also preserve subdirectory names during unzipping.
A directory named C:\ASP_OAI_2.0_SRG\ will be created and contains
all necessary program files and sample data files.
-
Make sure that UrlScan is NOT installed or
is disabled on the local system. UrlScan renders the
PathInfoFilter.dll useless and therefore makes this gateway unable
to function properly. Please check if UrlScan is installed with the following
steps:
- Go to Control Panel
- Open Administrative Tools
- Open Internet Services Manager
- Right-click on the machine and select Properties
- Click Edit of WWW Service's Master Properties
- Select the ISAPI Filters
- If UrlScan is installed, simply remove it and restart the IIS
-
Make the C:\ASP_OAI_2.0_SRG\ directory available as an
IIS virtual application (Create a new Virtual Directory with an
active application. Make sure that this application allows scripting access.
For information on how to do this refer to the IIS documentation.)
Assume that the name of the virtual directory is ASPOAISRG.
-
Files in the C:\ASP_OAI_2.0_SRG\ directory may be read-only.
Cancel the read-only property of the following files:
- PathInfoFilter.ini
- GatewayDescription.xml
- StaticRepositoryDescription.xml
- static-repository.xml
-
Edit
- PathInfoFilter.ini
- GatewayDescription.xml
- StaticRepositoryDescription.xml
- static-repository.xml
based on your environment (e.g. the name of the virtual directory, baseURL, cachePath, etc.)
static-repository.xml is a sample static repository.
Modify its oai:baseURL according to your webserver settings.
-
AspEnableParentPaths of the IIS server has to be set to TRUE,
which is NOT the default value. The following command can be used to
set the appropriate value:
C:\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/1/ROOT/ASPOAISRG/AspEnableParentPaths TRUE
The path for "adsutil.vbs" and the directory name might be different in your system.
-
Install PathInfoFilter.dll into the IIS top-level website
(one level higher than the virtual application) as an ISAPI filter.
The source code of PathInfoFilter.dll can be found under the directory
C:\ASP_OAI_2.0_SRG\PathInfoFilter\.
-
Now the base URL of the ASP OAI 2.0 Static Repository Gateway 1.11 running
on your local system is:
http://<your hostname or IP>/ASPOAISRG/oai.asp
You should test the installation from browsers at local and remote sites
with the following command:
http://<your hostname or IP>/ASPOAISRG/oai.asp/<your hostname or IP>/ASPOAISRG/static-repository.xml?verb=Identify
to access the sample repository included in the package.
We have frequently found that firewalls must be re-configured to allow access
from remote sites.
-
This gateway can be configured through the configuration files:
- PathInfoFilter.ini: Specifies the virtual directory of the gateway.
- GatewayDescription.xml: Provides the gateway properties.
- StaticRepositoryDescription.xml: Describes the static repositories supported by this gateway.
ASSUMPTIONS & NOTES:
-
AllowPathInfoForScriptMappings of the IIS server has to be set to FALSE,
which is the default value.
If not, the IIS takes control of the necessary information and make it unavailable for
PathInfoFilter.dll.
-
This gateway supports the cache mechanism described in the specification.
The cache path for each static repository is specified in StaticRepositoryDescription.xml
and has to be valid when the gateway is running.
-
Because the gateway modifies StaticRepositoryDescription.xml, if the new information needs
to be added into the file (e.g. new static repositories), the ASP application has to be unloaded
first, otherwise, the changes made to the file might be lost when the gateway overwrites it.
ARCHITECTURE:
- Operating System / Platform
- Microsoft Windows NT 4 Server SP 6
- Microsoft Windows NT 4 Workstation SP 6
- Microsoft 2000 Advanced Server
- Microsoft 2000 Professional, SP 2
-
- Microsoft Internet Information Server (IIS), version 4 or higher
-
- Microsoft Active Server Pages (ASP)
- ASP modules included use VBScript and JScript
-
- Microsoft Windows Script, version 5.6 or higher
- The script support object library is available free from the Microsoft Website at
http://msdn.microsoft.com/nhp/Default.asp?contentid=28001169
-
- Microsoft XML Parser (MSXML) 4.0
- This parser is available free from the Microsoft Website at
http://msdn.microsoft.com/xml
-
- Windows HTTP Services (WinHTTP), version 5.0 or higher
- The library is available on the Microsoft Website at
http://msdn.microsoft.com/library/en-us/winhttp/http/about_winhttp.asp
-
- UIUC OAI Harvester Objects:
- The library is available on SourceForge at
http://sourceforge.net/project/showfiles.php?group_id=47963
OAI PROTOCOL CONFORMANCE & XML Schema Definition Documents for Validation:
As installed locally, this system has been validated using version 1.45a of
the OAI Repository Explorer (available at
http://oai.dlib.vt.edu/~oai/cgi-bin/Explorer/2.0b2-1.44/testoai).
The OAI Repository Explorer tests for conformance to OAI Protocol release
2.0. When you have you have completed installing this tool and believe everything is set up properly, go
to this site and enter the URL for your data to validate your system.
INCLUDED FILES:
- PathInfoFilter.dll
- An ISAPI filter for handling the extended path info passed from
the harvester to the gateway.
- PathInfoFilter.ini
- The configuration file for PathInfoFilter.dll.
- global.asa
- The global.asa file retrieves parameters from GatewayDescription.xml to
configure the gateway.
- GatewayDescription.xml
- The configuration file for the OAI Static Repository Gateway.
It is XML-formatted and self-illustrative.
Please refer to the file for repository settings.
- StaticRepositoryDescription.xml
- The configuration file for the supported static repositories.
The filename can be specified in GatewayDescription.xml.
- static-repository.xml
- An sample OAI static repository adapted from
Specification of the OAI Static Repository and Gateway - alpha version .
- README.html
- This HTML file.
- license.html
- The Open Source license for this code.
- functions.inc
-
This contains various functions that are needed by other script files.
This file is included in the scripts that need access to the functions.
functions.inc provides functions and subroutines such as parsing OAI identifiers,
generating UTC datestamps, creating and parsing resumption tokens, etc.
These are mostly functions that should be reusable across many different
OAI implementations and are not specific to this implementation.
- oai.asp
- The main Active Server Page script code. All OAI requests are dispatched by oai.asp.
Most of this code is written in VBScript, a small amount of JScript is also used.
- *.asp (other than oai.asp)
-
Each of these ASP files corresponds to a single OAI request and is called by oai.asp.
- *.xsl
-
Each of these XSLT files corresponds to a single OAI request for generating
the response by using the XSLT technology.
All code provided in this illustrative implementation is being made available
under OpenSource license.
AUTHORS:
- Thomas G. Habing
- Research Programmer, Digital Library Initiative
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
thabing@uiuc.edu
- Timothy W. Cole
- Mathematics Librarian
University of Illinois at Urbana-Champaign
214 Altgeld Hall, MC-382
t-cole3@uiuc.edu
- Ying-ping Chen
- Graduate Assistant
University of Illinois at Urbana-Champaign
052 Grainger Engineering Library, MC-274
ychen21@uiuc.edu