180 likes | 344 Views
EThOSnet Repositories and Web Services Workshop 2 nd June2009 Richard Green r.green@hull.ac.uk. Fedora and Web Services. Fedora and Web Services. “The Fedora repository system is exposed as a Web service and is described using Web Services Definition Language (WSDL).
E N D
EThOSnet Repositories and Web Services Workshop 2nd June2009 Richard Green r.green@hull.ac.uk Fedora and Web Services
Fedora and Web Services • “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
Fedora and Web Services • 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)
Fedora and Web Services • 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
Access functions • 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
Management functions • 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 page
Fedora’s own Java app • 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
Simple deposit tool at Hull • 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!)
Muradora • 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
Muradora ‘submit’ workflow • ‘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)
Muradora ‘submit’ workflow • Choose your content • The Muradora workflow takes care of constructing the appropriate content datastream
Muradora ‘submit’ process • 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
Coming soon(ish): Hydra • 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.
“And your point is?” • 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
Information: • 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 • r.green@hull.ac.uk