Personal tools

Pawn:Receiving Server

From Adapt

Revision as of 14:45, 15 September 2008 by Toaster (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

THIS IS OUTDATED DUE TO METS DEPRICATION

Overview

The receiving servers are simple servers that contain storage resources, validation resources, and drivers for publishing into an archive. Receiving servers will periodically update the PAWN scheduler with a information regarding it's current state and state of reservations on it. Data on receiving servers are organized into large storage pools. Within these storage pools, individual packages are organized into self-contained reservations.

Reservations and the objects within them also have a simple lifecycle that limits what actions may be performed on an item. items in a reservation transition from ingested to archived. When an item is in any of the states, certain actions may or may not be permitted.

Reservation Structure

PAWN attempts to keep reservations on disk in a form that is as simple as possible, ie human readable. Reservations are organized into a set of related obligations. Each obligation has a set of linked METS documents, metadata, and data objects.


Disk based reservation implementation. A reservation is stored in seperate pieces in a directory. The layout of the reservation follows:

 
   /                           - reservation directory, random name
   | reservation.properties    - global reservation properties
   | /[obligation1]            - files are grouped into self-contained obligations
   | |  obligation.properties  - 
   | |  /manifest              - manifest directory, name randomly generated
   | |  | urn                  - manifest files named by identifying urn
   | |
   | |  /data
   | |  |    /[manifesturn]    - directory named by manifest urn
   | |  |    |  file-id        - files named by ID in manifest document
   |
   | /[obligation2]

A sample reservation directory is shown below:

[toaster@naradev02 pool]$ find reservation-bkqqtloleg/
reservation-bkqqtloleg/
reservation-bkqqtloleg/reservation.properties
reservation-bkqqtloleg/yuyhmwlt
reservation-bkqqtloleg/yuyhmwlt/data
reservation-bkqqtloleg/yuyhmwlt/data/urn:pawn:mets-id.0000000001
reservation-bkqqtloleg/yuyhmwlt/data/urn:pawn:mets-id.0000000001/urn:pawn:file-id.xdb4034b8b6e470a047c587a6dde3e7d2
reservation-bkqqtloleg/yuyhmwlt/data/urn:pawn:mets-id.0000000001/urn:pawn:file-id.x8c0833b1bb88394dbe5976f748201622
reservation-bkqqtloleg/yuyhmwlt/manifest
reservation-bkqqtloleg/yuyhmwlt/manifest/urn:pawn:mets-id.0000000001
reservation-bkqqtloleg/yuyhmwlt/obligation.properties

The properties files are as follows:

  • reservation.properties
  • edu.umiacs.pawn.reservation.client : authorized client
  • edu.umiacs.pawn.reservation.issuer : SAML issuer / manager owning this reservation
  • edu.umiacs.pawn.reservation.domain : domain on owning managent server
  • edu.umiacs.pawn.reservation.id : external ID of this reservation, used to retrieve reservation

Sample reservation properties file

[toaster@naradev02 pool]$ cat reservation-dgfqcdshge/reservation.properties 
#
#Thu Oct 27 17:13:23 EDT 2005
edu.umiacs.pawn.reservation.client=usgs\:rhextall
edu.umiacs.pawn.reservation.issuer=http\://umiacs.umd.edu
edu.umiacs.pawn.reservation.domain=Geological Survey, United States (USGS)
edu.umiacs.pawn.reservation.id=1130447603852
  • Obligation properties
  • edu.umiacs.pawn.reservation.obligation.id : management server id of obligation / record set
  • edu.umiacs.pawn.reservation.obligation.desc : description of obligation
  • edu.umiacs.pawn.reservation.obligation.root : root document for this obligation

sample obligation properties file

[toaster@naradev02 pool]$ cat reservation-dgfqcdshge/rmbycfct/obligation.properties 
#
#Thu Oct 27 17:13:24 EDT 2005
edu.umiacs.pawn.reservation.obligation.id=z14
edu.umiacs.pawn.reservation.obligation.desc=Vector Files
edu.umiacs.pawn.reservation.obligation.root=urn\:pawn\:mets-id.0000000050

Managing Reservations

The ArchiveContext contains a ReservationManager that is used to manage reservations and storage pools. It maintains a list of currently registered reservations and a list of what pool they are currently stored in. It will also take care of creating new reservations and removing reservations.

Lifecycle of Items

The following diagram shows the lifecycle for items in a reservation. This may be either metadata, data, or a manifest.

Pawn-item-states.png

The following should be assumed. Once an item has been rejected, it may not be archived unless re-approved. If a single item has been rejected in a manifest and the manifest is to be archived. All items except for rejected will still be archived. Once an item is archived, it cannot be changed, however it can be archived multiple times if necessary.


The following web service calls are available depending on the state of the items. As item state is only based on manifest/item level details, operations at the obligation or manifest level aren't affected.

call INGESTED REJECTED ARCHIVED
acceptManifest - Y E
acceptObject - Y E
archiveReservation Y E Y
ingestManifests Y Y E
ingestObjects Y Y E
rejectObject Y - E
rejectManifest Y - E
removeManifest Y Y E
removeObject Y Y E
Y | Y | E


Y - call designed to be used in this state
E - call throws error when manifest or child is in this state
- - call does nothing, or is state agnostic