AstroGrid registry server

Server Area for the installation of the Registry. This area contains the Web Service Interface for querying, harvesting and Updating the registry. *Warning - The methods use a Document type style and has only been tested under Axis deployment. The information is stored in a xml database known as eXist. See eXist for more information. The Registry is also OAI conformant and has defined OAI Web Service interface methods for OAI. See oai.

Interface

Web Service Interface methods:

  • update(Resource schema) - updates the Registry with one to many Resources.
  • harvestResource(Resource schema) - return all resource information modified from a particular date.
  • submitQuery(old Astrogrid XML Criteria) - Query for entries based on a particular criteria.
  • loadRegistry - just returns the Registry Resource metadata entry for this defined registry.
  • Search(Adql) - queries based on ADQL, can handle multiple versions of ADQL.
  • GetRegistries - queries for all registries known.
  • Identify - OAI-Identify, identify information for the registry.
  • ListMetadataFormats - OAI-ListMetadataFormats.
  • ListIdentifiers - OAI-ListIdentifiers, lists all the registry identifiers.
  • ResumeListIdentifiers - OAI-ListIdentifiers, resumes a list (paging).
  • ListRecords - OAI-ListRecords, List all the metadata in the registry.
  • ResumeListRecords - OAI-ResumeListRecords, resumes a list (paging).
  • GetRecord - OAI-GetRecord, get a specific entry.

More on Queries

The queries conform to a new ivoa standard to take in ADQL. The Registry can handle multi-versioned ADQL currently 0.7.3, 0.7.4, soon to be 0.8.1. Many client components of Astrogrid though still use an old style xml schema and syntax for itn06 and will change to the ADQL in itn07. See More on ADQL/VOQL When ADQL is received then XSL stylesheets are called based on that ADQL version to tranform it to XQuery language for quering the XML database. On the older style query syntax then it is just regulary parsed for now into XQuery as well. Example Queries:

eXist

Registry uses an eXist xml database for storing and querying the resources of the Registry. You can download eXist from eXist website. You can also download it from eXist from Astrogrid For security purposes, it is better to install the eXist as a server installation on another port that is not accessible to outside computers, but still accessible to the registry installation. This is completely optional though, and for ease of installation throughout astrogrid it is normally installed as a war file.

Changes to be made once eXist is installed:

See Config for eXist. Change the cacheSize to something bigger if this is going to be a full Registry. Finally set the match-tagging-elements and match-tagging-attributes to "no". In Astrogrid these changes are already in place, but change the cacheSize to something more appropriate.

It is recommended to have the exist location end in "exist" hence http://server.com/exist is the location. This is not required, but if you wish to view exist manually it can be easier.

Builds

The registry allows you to build at the top level or at it's sub-project level. Here are the maven goals for building the registry.

  • astrogrid-clean - cleans out and removes all previous builds.
  • astrogrid-install-snapshot - Builds all the necessry jar and war files.
  • astrogrid-deploy-snapshot - Builds and deploys the snapshot onto the repository.
  • astrogrid-install-artifact - Builds and deploys the artifact onto the repository.
  • astrogrid-deploy-artifact - Builds and deploys the artifact onto the repository.
  • astrogrid-deploy-site - Generates reports and documents to be deployed on the site repository.

Deployment/Installation

This only builds the server jar and is expected to be bundled up with a war file. See the WebApp portion of the registry which bundles up the full server installation into a war file. After a build a jar file is produced in the "target" directory. When ever it is bundled with another component, it is expected to have in the System properties or JNDI a key value of "org.astrogrid.config.url" pointing to a config file. An example config file is given in cvs under the config directory as config.prop. Currently the config file only requires properties:

  • org.astrogrid.registry.authorityid - required, the main authority id for this registry. Should be the same authorityid used on the main Registry type Resource.
  • org.astrogrid.registry.version - required, a version number of the current main IVOA registry schema, slowly being factored out.
  • exist.db.url - required, eXist url property pointing to the root location of the eXist XML database.
  • exist.query.returncount - optional, the return count number (defaults to 25 if not given).
  • oai.servlet.url - required, the url to the servlet for the OAI, OAICat type servlet.
  • org.astrogrid.registry.harvest.daemon.interval-hours - required, See webapp section for more on this servlet. For harvesting other registries, the time intervals for automatic harvests to be started.
  • declare.namespace.0_9 - recommended, namespaces to be declared on the queries in xquery type form meaning seperated by ";"
  • keyword.query.path.0_9 - required, the xpaths to elements to be used on the keyword search comma seperated.
  • identifier.path.hasauthorityid.0_9 - required, is the key (identifier) split up, normally only 0_9 will be true
Example of config properties:
  • org.astrogrid.registry.authorityid=org.astrogrid.leicester
  • exist.db.url=http://localhost:8080/exist
  • exist.query.returncount=25
  • oai.servlet.url=http://localhost:8080/astrogrid-registry-snapshot/OAIHandler
  • org.astrogrid.registry.version=0_9
  • org.astrogrid.registry.harvest.daemon.interval-hours=1
  • declare.namespace.0_9=declare namespace vr = "http://www.ivoa.net/xml/VOResource/v0.9"; declare namespace vc = "http://www.ivoa.net/xml/VOCommunity/v0.2"; declare namespace vg = "http://www.ivoa.net/xml/VORegistry/v0.2"; declare namespace vs = "http://www.ivoa.net/xml/VODataService/v0.4"; declare namespace vt = "http://www.ivoa.net/xml/VOTable/v0.1"; declare namespace cs = "http://www.ivoa.net/xml/ConeSearch/v0.2"; declare namespace sia = "http://www.ivoa.net/xml/SIA/v0.6"; declare namespace cea="http://www.ivoa.net/xml/CEAService/v0.1"; declare namespace ceapd="http://www.astrogrid.org/schema/AGParameterDefinition/v1";
  • keyword.query.path.0_9=vr:Summary/vr:Description, vr:Title, vr:Subject
  • identifier.path.hasauthorityid.0_9=true