dspace users group - jan. 2007 dspace as a platform creating custom interfaces with content...

17
DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium DSpace User Group, Open Repositories 2007 Session 5

Upload: clarence-pearson

Post on 29-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

DSpace As A Platform

Creating Custom Interfaces With

Content Packaging Plugins

Don Gourley

Washington Research Library Consortium

DSpace User Group, Open Repositories 2007

Session 5

Page 2: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

DSpace As A Platform

• Agenda– DSpace Plugin Mechanism

• Introduced in version 1.4

– Example Application: Custom HTTP interface for the WRLC Digital Object Catalog

Page 3: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Plugin Manager

• Plugin: Independently “pluggable” software component

• PluginManager: Java class that organizes/selects/creates plugins

• Plugin Interface: Defines a class of service

• Plugin Implementation: Service provider

Page 4: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Types Of Plugins

• Singleton Plugin: One implementation of the class

• Sequence Plugins: Ordered set of implementations

• Named Plugin: Multiple available implementations– Names bound to implementation in config– Self-named

Page 5: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Plugins in DSpace 1.4

• AuthenticationMethod– Sequence plugins (implement a “stack”)– E.g. Password, LDAP

• MediaFilter– E.g. HTML, Word, PDF, JPEG

• BitstreamDispatcher– E.g. by Item or least-recently checked

Page 6: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Metadata & Content Plugins

• DisseminationCrosswalk and IngestionCrosswalk– E.g. DC, QDC, MODS, METS, PREMIS– XSLT: define crosswalk with stylesheet

• PackageDisseminator and PackageIngester– E.g. METS, PDF

Page 7: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Invoking Plugins

• Plugin Consumer: Java class that uses PluginManager– Configure plugin classes, names, options in dspace.cfg

– Reload Web app for online consumers• E.g. AuthenticationManager

– Run command-line program• E.g. Packager, MediaFilterManager, ChecksumChecker

– Invoke via OAI-PMH: PluginCrosswalk

Page 8: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Invoking Plugins

• Need a mechanism for invoking content packaging plugins with HTTP GET and POST requests (REST-style Web services)

• DisseminatePackageServlet– Invokes a named PackageDisseminator– Patch # 1442299

• IngestPackageServlet– Invokes a named PackageIngester– Patch to be submitted soon

Page 9: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Digital Object Catalog

DSpace

IngestPackageServlet

DisseminatePackageServlet

DIDL Ingester Plugin URL Ingester Plugin EAD Ingester Plugin

DIDLDisseminator Plugin

HTMLDisseminator Plugin

BitstreamDisseminator Plugin

DCEditor DCMS Web site EAD XForms

DCEditor ImgViewer XMLViewer

HTTP POST

HTTP GET or POST

DOC Web site

webui

Page 10: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Dissemination Interface

http://ds pace.wrl c.org/ doc/package/2041/29694?package=METS

METS dissemination interface: package parameter

http://ds pace.wrl c.org/ doc/handle/2041/ 29694

HTML dissemination interface: item display example

http://ds pace.wrl c.org/ view/I mgViewer? url=http : //dspa ce.wrlc . org/doc/get/2041/29694/manifest.x ml

Persistent URL to ImgViewer dissemination

http://ds pace.wrl c.org/ doc/di dl /2041/25816? browse=ti tle&focus=mystery+of+shady+falls

DIDL dissemination interface: collection browse example

Page 11: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Submitting Ingestion Content

• IngestPackageServlet requires an HTTP POST request– DOC plugins generally expect XML– Must be done by browser if you want the

DSpace session cookie for login context– Can’t post XML content with plain HTML

Alternatives include:• JavaScript (e.g. the XMLHttpRequest class)• Browser plugin (e.g. XForms viewer)

Page 12: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Submission Response

• What is the proper response to an ingestion request?– Successful => submission receipt

• If ingestion plugin also implements the DisseminationPackage interface, IngestPackageServlet will use it for response

– Unsuccessful => detailed error message•PluginException thrown to servlet

Page 13: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Ingestion Interface

var xmlDoc = docum ent.impl ementat ion. createDocument("" , "",nul l ); xmlDoc.load( "http://ds pace.wrl c.or g/dcms/treasure/vol18a01. xml") ; var xmlRequest = new XMLHttpRequest(); xmlRequest .open(“POST”,”/doc/ docsubmit/ 2041/25816”,false) ; xmlRequest .send(xmlDoc);

DIDL ingestion interface: JavaScript example

Page 14: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Ingestion Interface

<form method="POST" action=" http:// dspace.wrlc. org/doc/ url submit/ 2041/25816"> <input type="hidden" name="pkg" value="docsubmit "> <input type="checkbox" name="url" value="http://d space.wrlc.o rg/dcms/tr easure/vol18a01.xml"> Article 0 1<br> . . . <input type="checkbox" name="url" value="http://d space.wrlc.o rg/dcms/tr easure/vol18a10.xml"> Article 1 0<br> <input type=submi t value="Submit Selected Records"> </form>

Batch ingestion interface: HTML example

Page 15: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Issues With HTTP Interfaces

• Security– DOC plugins use DSpace public API

• Access controlled by authorization system• Sometimes need to override (e.g. recreating structural

metadata bitstream)

• Performance– Comparable to native interfaces

• Functionality– Limited to content packaging plugins

Page 16: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

Web Services Applications

• Integration with content-specific workflow applications– E.g. ETD-db

• DLF-Aquifer “asset actions”

• Pathways “interoperability fabric” obtain, harvest & put services

Page 17: DSpace Users Group - Jan. 2007 DSpace As A Platform Creating Custom Interfaces With Content Packaging Plugins Don Gourley Washington Research Library Consortium

DSpace Users Group - Jan. 2007

For More Information . . .

Presentation write-up:

http://dspace.wrlc.org/doc/wrlc/DSpaceAsAPlatform.pdf

Wiki pages:

http://wiki.dspace.org/index.php/PluginManager

/CrosswalkPlugins

/PackagerPlugins

Me: [email protected]