The PerX toolkit is a software package produced by the PerX Project. Basically it provides federated searching functionality and it is able to simultaneously cross-search OAI, Z39.50 and SRU/SRW repositories as well as databases with custom APIs such as the Java SDK Google API interface. The PerX Toolkit makes use of algorithms developed by the SPP Project [1].
The toolkit software uses IndexData YAZ technology [2] to search remote Z39.50 databases, and the Lucene search engine [3] for searching local databases obtained by harvesting OAI metadata repositories. It uses in-house software for remotely searching SRU/SRW targets. It also includes custom APIs for searching proprietary databases such as the Google search engine, and potentially Amazon and Wikipedia searchable data.
PerX Toolkit Architecture
The PerX Toolkit technical architecture includes a set of Open Source software applications and loosely coupled software modules and libraries implemented using protocols for searching and harvesting distributed digital repositories as well as open standards that support the discovery and the cross searching of searchable databases. The PerX Architecture makes extensive use of message-oriented interfaces to harmoniously integrate the functionality provided by the different open source packages working together within the toolkit. This middleware (the "PerX MetaSearch Engine") is the core component of the software developed by the PerX Project.
Factor | SPP xSearch | PerX Toolkit |
Functionality | Acceptable | Good |
Usability | Acceptable | Good |
Software Maintenance | Difficult (it is embed in a portal no longer maintained) | Easy. It is modular and most of the coding is in PHP. OOP is only used in the sessions API |
Performance | Acceptable. But it is prone to system failure (e.g. requires tomcat server be restarted nightly, periodic cleaning of memory garbage, etc.) | Good. The first searches tend to be relatively slow (due to Java and Z39.50 runtime features) but subsequent searches are faster than SPP. |
Scalability | Good. Tested with 20 targets | Good. Tested with 42 targets |
Technology | Java and Jetspeed-based portal technology | PHP, MySQL and Java |
Code Status | Beta 0.3 29/06/04 | Beta 1.5 27/03/07 |
SOA compliance | No | Acceptable |
Overall Pro | Can cross-search Z39.50 databases simultaneously. | Software easy to maintain, replicate (clone) and embed in external systems such as a VLE |
Overall Con | Uses deprecated portal technology, its development team has been disbanded and its software is now unmaintained and out-of-date | It has only one developer. Needs full documentation. |
Feature | SPP xSearch | PerX Toolkit |
In production? | No | Yes [4,5] |
Webpage creation | Velocity templates | Uses CSS and HTML and XML templates. CMS features pending to be implemented via PAIN [6] |
Targets Maintenance | Difficult. Adding/Updating of targets requires a lot of manual configuration and knowledge of XML/XSLT. | Acceptable. It uses an admin interface for adding/updating targets, but requires human intervention for harvesting and normalising OAI targets. |
Accessibility | Poor | Acceptable |
Federated Searching Capability | Can cross-search large number of OAI and Z39.50 databases simultaneously | Can cross-search large number of OAI, Z39.50, SRU/SRW and proprietary databases simultaneously. |
OAI-PMH support | Yes, via Arc & Lucene | Yes, via PHP/MySQL & Lucene |
Z39.50 layer | JZkit | Yaz (C) |
Web Services support | No | Yes, via SRU/SRW |