Proai 1.1.1

  1. What is Proai?
  2. How does it work?
  3. Getting Started
  4. Configuration
  5. Implementation Guide
  6. Known Issues / Bugs
  7. License Information

1. What is Proai?

Proai is a repository-neutral, Java web application supporting the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) version 2.0. By implementing a repository-specific driver, developers can provide a full-featured OAI-PMH access point to their existing software.

Proai offers the following features:

2. How does it work?

Before attempting to use Proai for your own OAI-PMH needs, you should have a basic understanding of how it works.

Overview

Proai is installed as a service that sits between a source repository and OAI harvesters. On the front end, it responds to OAI requests by consulting its local XML Record Cache. On the back end, it keeps this cache up-to-date by periodically communicating with the source repository through a repository-specific interface.

Front End

When a harvester sends an OAI request, Proai interprets the request and consults the record cache, which consists of database tables and XML record files on disk.

If a response exceeds a configured number of records, Proai takes care of splitting it into multiple parts and generating a resumptionToken for each part. In OAI-PMH, this is known as Flow Control.

The front end depends solely on the record cache. It does not directly access the source repository and therefore can do its job even when the source repository is unavailable.

Back End

The job of Proai's back-end is to keep the record cache up to date. This is done through a process known as the update cycle.

During an update cycle, the cache updater communicates with the source repository via the OAIDriver interface. An update cycle progresses as follows:

  1. First, the updater queries for the current list of all sets to see if any have changed since the previous cycle. If so, the database is updated accordingly.
  2. Next, it queries for the list of new/modified records and enqueues them for processing.
  3. Finally, the updater processes the queue, committing each change to the record cache. For each record, this involves getting the XML from the remote location, validating it, and removing it from the queue.

3. Getting Started

4. Configuration

5. Implementation Guide

Using Proai for your own repository software is a matter of creating an OAIDriver implementation. See the included source code of OAIDriverImpl for an example.

6. Known Issues / Bugs

7. License Information

Proai is distributed under the Apache Software License, v2.0.

The distribution also includes several third-party, open-source libraries, each with it's own license terms.

See the License Information Page for specific terms of all relevant licenses.