Pid Cache Manager Service

From MPDLMediaWiki
Jump to navigation Jump to search
eSciDoc SOA

SOAP and REST style interfaces
Service layers

Core services
Context Handler · Item Handler
Container Handler
Organizational Unit Handler
User Account Handler
Authentication
Content Model Handler
Semantic Store Handler

Intermediate services
Validation Service
Statistics Manager
Technical Metadata extraction
PIDManager
Basket Handler
Duplication detection
ImageHandler(Digilib)

Application services
Depositing
Searching
Search&Export
Control of Named Entities
Citation style Manager
RightsChecking
DataAcquisition
Transformation
Fledged Data
PID Cache
OAI-PMH

SOA Introduction

edit

This Page describes the PID cache service.

ID (Label)[edit]

PIDC

Complete Name[edit]

PID Cache Manager Service

Status[edit]

Work in Progress (version 0.1.0 in test).

Description[edit]

  • The PID cache service is a client to the GWDG PID Handle Service.
  • The PID cache service is used as an alternative to the PIDManager service offered by eSciDoc core infrastructure (PID Service without pre-cached PIDs).
  • The PID cache service holds pre-created PIDs which are assigned to an eSciDoc content resource by calling the Item/Container Handler methods (assignObjectPid(), assignVersionPid() or assignContentPid()).

Operations Overview[edit]

Operation Status Input Output Description
create implemented URL:String String Scope:Public
Assign a PID to an URL.
update implemented URL: String
PID(handler): String
String Scope:Public
Update a PID with a new URL.
view implemented PID(handler):String String Scope:Public
Retrieve a PID (If GWDG service unavailable, can only retrieve PID that are waiting in cache to be updated at the GWDG).
search implemented URL:String String Scope:Public
Search for a PID (If GWDG service unavailable, can only search for PID that are waiting in cache to be updated at the GWDG). Implements only the search by URL so far. Might be extended.


Service Interface[edit]

  • The PID cache service provides a REST interface:
    • GET: /pidcache/handle/read, implemting 2 methods:
      • /view?pid= - resolve PID
      • /search?url= - Find a PID
    • PUT: Not allowed.
    • POST: /pidcache/handle/write - Implements 2 methods:
      • /create - Create a PID at GWDG (url passed as body parameter).
      • /update?pid= - Update a PID with new url (url passed as body parameter)
    • DELETE: (Not allowed)


Installation[edit]

  1. Install files in deploy directory:
    1. pidmanger.war
    2. pid_cache.ear
    3. pid-cache-ds.xml
  2. Defines properties in conf directory:
    1. PidManager.properties (no changes needed)
    2. gwdg.properties with: <entry key="service.url">http://your.escidoc.url.org:8080/pidcache/handle/</entry> (changes with correct escidoc url)
    3. pidcache.properties (if installed with pubman, then uses pubman.properties instead)
    4. escidoc-core.properties

pid-cache-ds.xml[edit]

<?xml version="1.0" encoding="utf-8"?>
<datasources>
	<local-tx-datasource>
		<jndi-name>PidCache</jndi-name>
		<use-java-context>false</use-java-context>
		<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}localDB</connection-url>
		<driver-class>org.hsqldb.jdbcDriver</driver-class>
		<user-name>sa</user-name>
		<password></password>
		<min-pool-size>5</min-pool-size>
		<max-pool-size>20</max-pool-size>
		<idle-timeout-minutes>0</idle-timeout-minutes>
		<track-statements/>
		<security-domain>HsqlDbRealm</security-domain>
		<prepared-statement-cache-size>32</prepared-statement-cache-size>
		<metadata>
			<type-mapping>Hypersonic SQL</type-mapping>
		</metadata>
		<depends>jboss:service=Hypersonic,database=localDB</depends>
	</local-tx-datasource>
</datasources>