Changes between Initial Version and Version 1 of Z3950_sru_improvements


Ignore:
Timestamp:
Apr 27, 2010, 4:24:38 PM (14 years ago)
Author:
simonp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Z3950_sru_improvements

    v1 v1  
     1= Proposal title =
     2
     3|| '''Date''' || 2009/12/17 ||
     4|| '''Contact(s)''' || Timo Proescholdt <timo_AT_proescholdt.de>, Simon Pigot ||
     5|| '''Last edited''' || [[Timestamp]] ||
     6|| '''Status''' || complete ||
     7|| '''Assigned to release''' || 2.5.0 ||
     8|| '''Resources''' || available ||
     9
     10== Overview ==
     11
     12Currently Geonetwork has only basic Z39.50 support and no support for [http://www.loc.gov/standards/sru/ SRU]. The current Z39.50 implementation is based on the JZKit library version 1, dating from 2002, which is no longer maintained (sourcecode is not even longer officially available). The current version of JZKit is 3. It offers support for SRU and addresses many of the issues that have only basic support  in version 1. Among others these are:
     13  * configurability (e.g error behaviour if server does not support a requested index, mapping between context-sets)
     14  * session and request-set caching (important for performant web-based SRU).
     15  * result-record and query transformation
     16  * possibility to mix local and remote targets
     17  * more mature Z39.50 support
     18
     19Moreover, the current Z39.50 interface hasn't been maintained: no date search support, improved geospacial indexing
     20not applied to this part of the software, the Z3950 server in GeoNetwork does not produce HTML or other formats and harvest from Z3950 sources is not supported.
     21
     22The proposal is to undertake an overhaul of the Z3950 part of the code, to update the JZKit library to version 3, implement an SRU webinterface, Z3950 harvester and enable the Z3950 server provide at least HTML (as well as the usual XML). Support for remote search will also be returned to !GeoNetwork but changes to the current search interface to integrate it with local search will be in a later proposal.
     23
     24=== Proposal Type ===
     25 * '''Type''': Core Change, Module Change
     26 * '''App''': !GeoNetwork
     27
     28
     29=== Voting History ===
     30 * Vote proposed by X on Y, result was +/-n (m non-voting members).
     31
     32----
     33
     34== Motivations ==
     35
     36 * More complete Z39.50 interface support, especially concerning error conditions.
     37 * Support for web-based Z39.50 (SRU) adds an additional search interface.
     38 * Clean up of the Z39.50 code.
     39 * Add Z3950 harvester
     40 * Return Z39.50 remote search capability to trunk (but no integrated search interface till later)
     41 * !GeoNetwork Z3950 server will provide HTML (in addition to XML) if requested by a Z client. 
     42
     43== Proposal ==
     44
     45Update the JZKit library to version 3, adding SRU support in the process.
     46
     47Backward-compatibility is important. The traditional Z39.50 interface should not be affected, although using the
     48new library.
     49
     50JZKit3 port, implementation of SRU, server production of HTML as well as XML, Z3950 harvesting and a tab based remote search client exist in the BlueNetMEST sandbox. Bringing all of these (apart from the tab based remote search client) into the trunk for the 2.5 Unstable release will allow them to be evaluated, discussed and enhanced by the community in time for the next stable release (2.6).
     51
     52SRU interface implemented as jeeves service. (http://127.0.0.1:8080/geonetwork/srv/en/portal.sru?operation=searchretrieve&version=1.2&query=title%20any%20WMO ).
     53
     54The spring application-context had to be loosely integrated into Geonetwork, since JZKit makes extensive use of it.
     55A ApplicationContext reference was added to the GeonetworkContext to make the Spring ApplicationContext available.
     56Initialization in Geonetwork.java uppon Z39.50 initialization.
     57
     58JZKit configuration files need a directory in the classpath and have to be tweaked to support a "Geonetwork" context-set.
     59This is currently being done by creating a "virtual" context-set "geonet", which defines the indices that are searchable.
     60Queries that contain unsupported indices (and relations) are rejected (this can be configured). Currently this is hard-wired
     61in a configuration file, but this could be dynamically configured by Geonetwork if the set of searchable indices was available.
     62
     63JZKit is dependent on the following libraries
     64
     651) JZkit libraries (remove old ki-*.jar)
     66 * a2j-2.0.4.jar
     67 * jzkit_core-3.0.0.jar
     68 * jzkit_service-3.0.0.jar
     69 * jzkit_z3950_server-3.0.0.jar
     70 * jzkit_z3950_plugin-3.0.0.jar
     71
     722) spring
     73 * spring-beans-2.5.3.jar
     74 * spring-context-2.5.3.jar
     75 * spring-core-2.5.3.jar
     76
     773) apache commons
     78 * commons-digester-1.6.jar
     79 * commons-beanutils-1.7.0.jar
     80 * persistence-api-1.0.jar
     81 * hibernate-annotations.jar
     82
     834) SRU query language parser
     84 * cql-java-0.0.7.jar
     85 
     865) update of libs contained in GN (remove old versions from classpath)
     87 * marc4j-2.3.1.jar
     88 * jdbm-1.0.jar
     89
     90
     91=== Backwards Compatibility Issues ===
     92
     93The z39.50 remote search and server depends on JZKit3. Since JZKit has no backwards compatibility these facilities have had to be re-implemented.
     94
     95== Risks ==
     96
     97JZKit is not well documented at the moment, although documentation will be provided in the course of a World Meteorological Organization
     98project on Z39.50.
     99
     100== Participants ==
     101 * Timo Proescholdt (developer)
     102 * Simon Pigot (developer)