1 / 25

Web Services and Fedora

Web Services and Fedora. Tim Sigmon University of Virginia. EDUCAUSE Mid-Atlantic Regional Conference January 14, 2003. What Are Web Services?. WWW mainly used for human interaction HTML forms and HTTP transport

yardan
Télécharger la présentation

Web Services and Fedora

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web Services and Fedora Tim Sigmon University of Virginia EDUCAUSE Mid-Atlantic Regional Conference January 14, 2003

  2. What Are Web Services? • WWW mainly used for human interaction • HTML forms and HTTP transport • Web Services are meant to support machine-to-machine or application-to-application interaction

  3. Web Services Definition A Web Service is a unit of application logic providing data and services to other applications. Applications access Web Services via ubiquitous Web protocols and data formats such as HTTP, XML, and SOAP, with no need to worry about how each Web Service is implemented. -Microsoft

  4. Another Definition • A Web Service is a software component that is platform and implementation independent and that can be: • Described using a service description language • Published to a registry of services • Discovered through a standard mechanism • Invoked through a declared API • Composed with other services • - Building Web Services with Java

  5. Web Services Technologies • XML is the common language • platform independent • easy to parse • human readable (sort of!) • extensible via namespaces and schemas • SOAP for transport of information • WSDL for description of services • UDDI for discovery

  6. SOAP • Simple Object Access Protocol • XML-based messaging framework • Transport is usually HTTP, but can be any transport

  7. WSDL • Web Services Definition Language • XML language for defining Web Services endpoints, access protocol, service interface, and implementation details • Web Services equivalent of an IDL • Enables automatic generation of language specific API for accessing a particular Web Service

  8. UDDI • Universal Description, Discovery, and Integration • Discovery protocol for Web Services through which applications and/or Web Services can find other Web Services • Publish, find, and bind information about how to use Web Services • Public registries exist but UDDI can also be used internally • UDDI has been slow to catch on

  9. Additional Web Services Technologies • WS Choreography • a language to compose and describe the relationships between Web services (e.g., sequencing, state management, etc.) • ability to combine simple services to produce complex results • WS Security • many areas and standards • WS Transactions

  10. Web Services Characteristics • Evolutionary, not revolutionary • Builds on existing web technologies and infrastructure • Still evolving rapidly – numerous standards initiatives with more appearing almost monthly (W3C, OASIS, IBM, Microsoft, Sun, …) • Tools maturing (Apache, IBM, BEA, Sun, Microsoft, many others) • Lots of testing the water • Some highly visible Internet applications (Amazon, Google) • Enterprise implementations are emerging • Tons of hype, including significant over-hype

  11. Some Early Adopters • Google and Amazon • http://www.google.com/apis • http://www.amazon.com/apis • US Military – logistics applications between branches of the service (e.g., provisioning cargo planes) • According to Forrester, 52% of US companies > $1B have rolled out or are rolling out a Web Services project

  12. Fedora This Fedora Project is not the Redhat Fedora project.

  13. The Fedora Project • Fedora Digital Object Repository System • Extensible digital object model • Repository System exposed via Web Service APIs • Scalable, persistent storage for content and metadata • Local and remote content • Associate services with objects • Content versioning • Fedora Use cases • Content Management (CMS) • Digital Library architecture • Digital Asset Management • Institutional Repository • Scholarly publishing • Preservation • Open source software

  14. Fedora History • Research (1997-present) : • DARPA and NSF-funded research project at Cornell (Carl Lagoze and Sandy Payette) • Reference implementation developed at Cornell • First Application (1999-2001) : • University of Virginia digital library prototype (Thornton Staples and Ross Wayland) • Scale/stress testing for 10,000,000 objects • Open Source Software(2002-present): • Andrew W. Mellon Foundation granted Virginia and Cornell $1 million to develop a production-quality Fedora system • Fedora 1.0 released in May 2003 • www.fedora.info

  15. Digital Object Model Architectural View Globally unique persistent id Persistent ID ( PID ) Public view: access methods for obtaining “disseminations” of digital object content Disseminators Internal view: metadata necessary to manage the object System Metadata Datastreams Protected view: content that makes up the “basis” of the object

  16. Digital Object Model Example Disseminators Get Profile List Items Get Item List Methods Get DC Record Persistent ID ( PID ) Disseminators Default Simple Image Get Thumbnail Get Medium Get High Get VeryHigh System Metadata Datastreams

  17. Fedora and Web Services • Fedora Repository is a set of Web Services • Access/Search (API-A) and Management (API-M) • Service descriptions published using WSDL • Both SOAP and REST bindings • Back-end services • Digital object behaviors implemented as linkages to other distributed web services • Service binding metadata (WSDL) stored in special Fedora Behavior Mechanism objects. • Fedora acts as mediator to these services.

  18. Fedora Repository SystemClient and Web Service Interactions Frontend Backend Fedora Repository System Content Transform Service client application client application user Service Web Service Web Service Dispatch Content Transform Service web browser user Service

  19. Management Service (API-M) Ingest - XML-encoded object submission Create - interactive object creation via API requests Maintain - interactive object modification via API requests Validate – application of integrity rules to objects Identify - generate unique object identifiers Security - authentication and access control Preserve - automatic content versioning and audit trail Export - XML-encoded object formats Access Service (API-A and API-A-LITE) Search - search repository for objects Object Reflection - what disseminations can the object provide? Object Dissemination - request a view of the object’s content OAI-PMH Provider Service OAI-DC records Fedora Repository Service Interfaces

  20. Fedora Repository System

  21. Fedora 1.2 Software Feature Set • Open Fedora APIs • Repository as web services (REST and SOAP bindings); WSDL interface defs • Flexible Digital Object Model • Content View: objects as bundle of items (content and metadata) • Service View: objects as a set of service methods (“behaviors”) • Extensible functionality by associating services with objects • Repository System • Core Services: Management, Access/Search, OAI-PMH • Storage: XML object store; relational db object cache; relational db object registry • Mediation - auto-dispatching to distributed web services for content transformation • Auto-Indexing – system metadata and DC record of each object • HTTP Basic Authentication and Access Control • Built-in disseminator services: XSLT x-form, image manipulation, xml-to-PDF • Content Versioning • Automatic version control (saves version of content/metadata when modified) • Enables date-time stampedAPI requests (see object as it looked at a point in time) • Clients • Fedora Administrator: GUI client to create/maintain objects • Default Web browser interface: search; access objects via default disseminator • Command line utilities (batch load, ingest, purge, others) • Migration Utility – mass export/ingest

  22. Fedora Software Distribution Package • Open Source (Mozilla Public License) • 100% Java (Sun Java J2SDK1.4) • Supporting Technologies • Apache Tomcat 4.1 and Apache Axis (SOAP) • Xerces 2-2.0.2 for XML parsing and validation • Saxon 6.5 for XSLT transformation • Schematron 1.5 for validation • MySQL and Mckoi relational database • Oracle 9i support • Deployment Platforms • Windows 2000, NT, XP • Solaris • Linux

  23. Fedora Object XML (FOXML) Internal storage format; direct expression of Fedora object model Better support for relationships (“kinship” metadata) Better support for audit trail (event history) Format identifiers for dynamic service binding Shibboleth authentication Policy Enforcement XACML expression language Fedora policy enforcement module Web interface for easy content submission Batch object modification utility Administrative Reporting Object Event History (ABC/RDF disseminations) Better support for “collections” New ingest and export formats (METS1.3, DIDL) Future Software Releases December 2003 – December 2004

  24. Questions? www.fedora.info

  25. DEMO: Basic Use Cases Image (multiple datastreams) Image (Mr. SID) EAD (Rita Mae Brown papers) Text conversion (TEI to PDF) Basic Search

More Related