You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 62 Next »

Table of Contents

Jump to:

Purpose and Summary

The purpose of this meeting was to formulate, discuss, and prioritize the major Fedora development items for 2010, and to start identifying who can help make them happen. It was held in the Franklin-Wilkins Building on the Waterloo Campus of Kings College, London, Feb 23-24.

Based on a poll of attendees, the agenda focused on the following major topics:

  1. Content Modeling Architecture
  2. Module Architecture
  3. Storage
  4. Interfaces

Tuesday Notes

Enhanced Content Models

Asger presented an overview of the Enhanced Content Model work, and we discussed which parts made sense to fold into the core Fedora distribution. The discussion focused primarily on the extension mechanism and schema + relationship validation.

The group agreed that the following would be good to fold into the core distribution:

  • (tick) An extension mechanism for DS_COMPOSITE_MODEL, inspired by ECM's
  • (tick) Use of this extension mechanism to:
    • Include XSD references
    • Include OWL Lite references
  • (tick) The ability to validate XSD and OWL on-demand (after ingest)
  • (tick) The ability to clone objects via Fedora's APIs

The following need further discussion:

  • (info) Ability to validate XSD and OWL as prereq. to "Active" state transition
  • (info) Kai indicated interest in defining DSL(s) for validation

To drive this work forward, we identified:

  • (smile) Lead: Asger
  • (thumbs up) Contrib: Kai

Service Definition/Deployment Improvements

Ben led a discussion of some of the outstanding issues with SDefs and SDeps, suggesting several improvements in addition to what has been documented in JIRA.

The group agreed that the following would be good to have in future versions of Fedora:

  • (tick) The ability to support multiple bindings in service deployment WSDL. Action: Create a JIRA issue for this
  • (tick) Support for POST/PUT/DELETE object methods (front-end)
  • (tick) Support for POST/PUT/DELETE method bindings (back-end)
  • (tick) Support for SOAP method bindings (back-end)

We did not have time to discuss everything noted in the document, but the general consensus was that a rehaul of the way the service deployment code works in Fedora (versus small, incremental code changes) will probably be necessary to get us where we want to go.

To drive this work forward, we identified:

  • (smile) Lead: Ben
  • (thumbs up) Contrib: Asger

Datastream Methods

We had planned on discussing Asger's proposal for adding datastream methods to Fedora, but decided to discuss this later in the interest of time.

OSGi and Spring

Eddie kicked off a discussion on what we've learned with OSGi so far, and Bill and Andrew shared some of their OSGi experience with DuraCloud.

The idea with the first chunk of our Fedora-OSGi work was to a) prove that Fedora can be packaged as a complete OSGi bundle, and b) begin OSGi-fying some of the key pieces that Fedora uses under the hood.  To that end, Eddie experiemented and had some success with building Fedora as an OSGi bundle, and started doing the same for Mulgara.  Chris successfully changed Akubra's plugins to be OSGi bundles and has gained experience in making existing artifacts OSGi-friendly.

Bill and Andrew are actively using OSGi for the "service" portion of DuraCloud, but noted that there is a significant learning curve and a new set of dependency issues to be concerned with, similar to the "growing pains" we experienced in the transition to Maven.

Those of us with some OSGi experience agreed that OSGi still represents a promising direction for Fedora, but there are still a lot of hurdles to getting there.  Like maven, these hurdles will become shorter with time, as Java-OSGi adoption increases and the community around it grows.

During this discussion, we noted again that moving toward OSGi is not incompatible with using Spring for dependency injection.  The latter seems to be a more tractable goal for the time being, with more immediate payoff.  We agreed to:

  • (tick) Document best practices for being "OSGi Friendly"
  • (tick) In the short-term, move to Spring for dependency injection (Fedora modules = spring beans)
  • (tick) Keep the long-term goal of having a Fedora OSGi bundle that can be used by other apps

To drive this work forward, we identified:

  • Lead: (smile) Chris
  • Contrib: (thumbs up) Dan, (thumbs up) Andrew,  (thumbs up) Asger

Wednesday Notes

High Level Storage

Aaron presented his proposal for a high level storage interface for Fedora, describing the motivation and use cases that it enables.

This proposal was generally well-recieved.

During the discussion, Aaron identified the need to have Fedora's internal datastream locations (stored within the FOXML, for pointing to managed content) be specific.  That is, rather than "pid+dsid+dsVersionId", they should be an internal location that means something to the underlying storage.  Action: Validate this with Aaron and add as a JIRA issue. 

We also touched on what it would mean to make this interface compatible with asynchronous read/write use cases.  For reads, if Fedora cannot find the content immediately, a 503 http respons and a retry-after header should be sent.  It is unclear exactly what should be happening at this level to support such use cases, but one possibility that was mentioned as to have the operations return a Map of name-value pairs as a possible extensibility point.

The ideas around high level storage are still forming, and are inspiring some ideas about caching and sending updates to modules in Fedora in pluggable ways. Asger presented a follow-on proposal:

This proposal splits the high level storage interface into a read and write side.  There was some discussion about how to "stack" these interfaces.  One possibility that came up was having the wholistic Read+Write interface (Aaron's interface) be a singleton within the repository, through which all storage calls go, and some implementation of that might then send reads/writes to delegates beneath, which are read-only or write-only (Asger's interfaces).

One of the major questions that Asger's presentation provoked was whether versioning was still important to do at the datastream level, or whether it can be done at the object level.  We had a follow-on discussion about this.  The idea presented was: What if Fedora no longer held information about old versions in the DigitalObject class and in the stored FOXML?  In other words, these would be designed to work only with the current version of the components of the object.  If a datastream changed, a new version of the entire object would be made (and object-level version number would be incremented), and older versions of the datastreams would be retained only if storage was configured to do so.  While discussing this, one concern we landed on was that there would no longer be a manifest pointing to all versions of everything stored within an object.  We cut this portion of the discussion short in the interest of time.

To drive the high level storage work forward, we identified:

  • Lead: (smile) Aaron
  • Contrib: (thumbs up) Asger, (thumbs up) Dan, (thumbs up) Chris
  • Possible Contrib: (question) Lee Namba (re:Caching), (question) Others at FIZ (re:Versioning)

Semantic Web and Linked Data

Steve

WebDAV

Kai

Agenda

Tuesday

Welcome and Introductions (1 hr)
Topic: Content Modeling Architecture (4 hrs)
Topic: Module Architecture (1-2 hrs)
  • Report (Eddie/Chris): OSGi experience & discussion of strategy
  • Dependency injection framework: Spring?

Wednesday

Topic: Storage (2-2.5 hrs)
  • Proposal (Aaron): High level storage
    • Tree of stores idea (relates to multiplexing) (Asger)
    • Should versioning of datastreams go away? (Asger)
  • Hot Topics:
Topic: Interfaces (2-2.5 hrs)
Getting It Done (2 hrs)

Session lead: Thorny
Identify:

  • Areas needing further discussion
  • Agreed-upon work items from discussions
  • Technical dependencies
  • Interested parties (leads + contributors)

Attendees

  • Aaron Birkland (Cornell)
  • Andrew Woods (DuraSpace)
  • Asger Askov Blekinge (State & Univ Lib, Denmark)
  • Ben Armintor (Columbia U)
  • Bill Branan (DuraSpace)
  • Brad McLean (DuraSpace)
  • Chris Wilper (DuraSpace)
  • Dan Davis (Cornell)
  • Edwin Shin (MediaShelf)
  • Gert Pedersen (Tech Univ of Denmark)
  • Kai Strnad (FIZ Karlsruhe)
  • Paul Pound (UPEI)
  • Simon Lamb (Hull)
  • Stephen Bayliss (Acuity Unlimited)
  • Tim Donohue (DuraSpace)
  • Thorny Staples (DuraSpace)
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels