> It is proposed to replace, yes, but I know that it is not complete at
> the moment. I just wanted go get it out there before the current REST
> interface is finalized.

If that is the case, then I do have a few concerns I noticed when first
reading the proposal.   In general, these concerns stem from the the
design principle stated on the wiki page:  "There should not be big
methods with lots of parameters, but rather a bunch of small ones with
very clear purpose."  Many of these are very convenient, but relying on
them exclusively raises questions.

The problem is that the 'methods' in the proposal conflict with the
current preservation/versioning model in Fedora.  Datastream versions
contain a content stream, as well as relevant metadata such as checksum,
label, etc, etc.  These are preserved together as a single unit.  It
needs to be possible to update *both* the content *and* the properties
in a single, atomic operation.  In the proposal right now, it is
impossible to do so.  In addition, the implications of these
fine-granied operations on datastream versions is unclear.

For example, what does a POST
to /objects/{pid}/datastreams/{dsID}/properties/checksum really mean?
Does that mean that a new datastream version could be created?  Does it
mean that a value in *current* datastream version is modified? (without
creating a new version or audit entry)?  If a client intends to modify
both datastream content as well as datastream properties, does this
imply that it MUST first change datastream content, then change
properties?  What happens if a client dies/fails between requests?  What
happens if another thread/process modifies the datastream between
requests?

With datastream operations, it would appear that if the client just
wanted to make one operation/change, then everything is OK and easy.  If
the client needs to make changes to content AND properties (or just
multiple properties) of a datastream, then this API makes it impossible
to for Fedora to preserve that change set as one datastream version.
That is what I mean when I say "conflict with the current
preservation/versioning model in Fedora".

Other than that, A few quick additional items I noticed:
- There seems to be no way to ingest a fully-formed object
- It is not clear how one would get/export an object in a specified
serialization format
- There should be a way to DELETE a content model from an object.

Overall, I recognize that exposing various aspects of a fedora object as
fine-grained resources can be very convenient and make certain tasks
easy.   However, I believe that the consequences as they relate to
Fedora's preservation model need to be made clear.

  -Aaron



------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Fedora-commons-developers mailing list
Fedora-commons-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers

Reply via email to