EThOSnet BL Workshop 2nd June 2009
“The Fedora repository system is exposed as a Web service and is described using Web Services Definition Language (WSDL).
“Digital Object behaviors are implemented as linkages to distributed web services that are expressed using WSDL and implemented via HTTP GET/POST or SOAP bindings.
“The Mellon Fedora System is exposed as two related web services: the Fedora Management service (API-M) and the Fedora Access service (API-A).”
Fedora Technical Specification December 2002
2
EThOSnet BL Workshop 2nd June 2009
Fedora was designed to be used via Web Services
Two interfaces: API-M (management) – create, update, delete etc API-A (access)
Originally implemented using SOAP (Simple Object Access Protocol) though with some additional REST-like functionality (API-M/A-lite) “Simple” is a relative term? Now regarded as a somewhat heavyweight approach
Full REST (Representational State Transfer) interface since v3.2 (May 2009)
3
EThOSnet BL Workshop 2nd June 2009
Fedora also provides functionality to allow users to associate custom behaviours with objects: “disseminators” Effectively additional web services
Web Services allow clients to be physically disassociated from the repository
4
EThOSnet BL Workshop 2nd June 2009
Access functions (either SOAP or REST)
Thus using REST in a browser: http://localhost:8080/fedora/objects/demo:5/datastreams/DC returns the DC datastream of object demo:5
Logical structure to the REST URL
5
Describe RepositoryGet Datastream DisseminationGet DisseminationGet Object HistoryGet Object Profile
Find ObjectsResume Find ObjectsList DatastreamsList Methodsetc
EThOSnet BL Workshop 2nd June 2009
Management functions (either SOAP or REST)
Thus using REST from a command line: curl -i -H "Content-type: text/html" -XPOST "http://localhost:8080/fedora/objects/test:02/datastreams/EXT?
dsLabel=A%20Ext%20Datastream&altIDs=3333&controlGroup=E&dsLocation=http://www.yahoo.com" -u
fedoraAdmin:fedoraAdmin Creates an ‘external’ datastream in object ‘test:02’ pointing
at the Yahoo home page6
Add DatastreamAdd RelationshipCompare Datastream ChecksumExportGet DatastreamGet Datastream HistoryGet DatastreamsGet Next PIDGet Object XML
Get RelationshipsIngestModify DatastreamModify ObjectPurge DatastreamPurge ObjectPurge RelationshipSet Datastream StateSet Datastream Versionableetc.
EThOSnet BL Workshop 2nd June 2009
Fedora had an admin client which uses the SOAP calls to build and edit objects
First stage of a web-based GUI admin client with Fedora 3.2
7
EThOSnet BL Workshop 2nd June 2009 8
EThOSnet BL Workshop 2nd June 2009
Hull’s ‘REMAP’ deposit tool uses a sequence of Fedora’s SOAP calls orchestrated by BPEL (Business Process Execution Language) using the Active Endpoints open source engine
There are other orchestration tools, jBPM, Mule(?), etc…
At least two other ‘lightweight’ approaches to orchestration being developed (probably dozens!)
9
EThOSnet BL Workshop 2nd June 2009
EThOSnet BL Workshop 2nd June 2009 11
EThOSnet BL Workshop 2nd June 2009
The Muradora Fedora client likewise uses the SOAP Web Service calls in an orchestrated fashion to lead a user through the construction of an object
- and provides all the tools for subsequent editing and maintenance
12
EThOSnet BL Workshop 2nd June 2009
‘Select collection’ will determine the parent collection Choosing a metadata editor creates the appropriate
metadata stream (and the editor creates DC as well if that was not the choice)
13
EThOSnet BL Workshop 2nd June 2009
Choose your content
The Muradora workflow takes care of constructing the appropriate content datastream
14
EThOSnet BL Workshop 2nd June 2009
The Muradora editors are XForms
Allow you to set up the metadata
‘Save’ then invokes a sequence of Web Service calls to build the complete object
15
EThOSnet BL Workshop 2nd June 2009
The Hydra Project is building a flexible, configurable, end-to-end workflow solution (add, edit, delete, search, discover, orchestrate workflow components) based on Fedora’s REST services and Ruby for rapid agile development
Part of Hydra will be a ‘Lego set’ of Web Services for the Fedora community that go beyond API-M and API-A to do other ‘commonly needed’ jobs
Other projects worldwide are likewise developing Fedora-related (or –usable) services.
16
EThOSnet BL Workshop 2nd June 2009
The point is that Fedora provides Web Service calls that can be orchestrated in many ways to build your own clients
Web Service support was fundamental, not an afterthought
‘User-built’ or externally provided services can be built into the mix
Very flexible workflow-enabled systems can be built
17
EThOSnet BL Workshop 2nd June 2009
Fedora: fedora-commons.org Muradora: www.muradora.org Hull repository: edocs.hull.ac.uk REMAP: www.hull.ac.uk/remap Hydra:
fedora-commons.org/confluence/display/hydra
18