Langzeitarchivierung

Übersicht

Visual Library unterstützt die Auslieferung der wesentlichen Stammdaten eines Titels in ein Langzeitarchiv und die Wiedereinspielung im Fall eines Datenverlustes.

Zur Auslieferung werden die zu einem Titel gehörenden Daten (Metadaten und Ressourcen wie Bilddateien, Volltexte, etc.) mit zusätzlichen Metadaten für den Archivbetreiber versehen und in eine langzeitarchivierbare Datei (SIP, Submission Information Package) überführt. Diese erste Auslieferung wird in Visual Library auch als Master-Kapsel bezeichnet.

Nachfolgende Änderungen an den Stammdaten werden vom VL-Server erkannt und führen zur Auslieferung weiterer Kapseln, welche die inkrementellen Änderungen (und nur diese) enthalten. Diese Ergänzungskapseln werden in Visual Library als Delta-Kapseln bezeichnet und tragen eine fortlaufende Nummer („Generation“).

Zur Wiederherstellung der Stammdaten eines Titels sind die Master-Kapsel sowie alle folgenden Delta-Kapseln notwendig. Diese können aus dem Langzeitarchiv über die Identifikation (z. B. URN) zurückgewonnen werden. Eventuell unterstützt das Langzeitarchiv auch die Zusammenführung dieser Kapseln zu einer Datei (DIP, Dissemination Information Package), die gleichwertig für eine Wiederherstellung verwendet werden kann.

Titel

Die Auswahl der Titel, die langzeitarchiviert werden sollen, findet über Statuswerte statt. Gewählt werden kann initial zwischen dem Abhname-, Bearbeitungs- und dem Freigabestatus. Im Standardverhalten werden nur freigegebene Titel archiviert. Die Auswahl beschränkt sich auf Titel, deren Metadatentyp die Eigenschaft „capsuleExport“ aktiviert hat. Dies ist vor der Ablieferung frei konfigurierbar und sollte nach Beginn der Ablieferung möglichst nicht mehr geändert werden. Im Standard wird nach Domaintypen unterschieden; bei elektronischen Pflichtexemplaren beispielsweise werden standardmäßig alle Metadatentypen außer Aufsätzen eigenständig verkapselt, in der Retrodigitalisierung standardmäßig alle Metadatentypen, auch Aufsätze, außer Beilagen und Heften. Die Daten und Ressourcen Metadatentypen, bei denen die Eigenschaft „capsuleExport“ deaktiviert ist, werden in der Kapsel ihrer Überordnung mitverkapselt.

In der VL-Baumstruktur können einem Titel beliebig viele andere Titel untergeordnet sein. Dies betrifft insbesondere mehrbändige Werke und Periodika, kann aber beispielsweise auch bei archivalischen Beständen der Fall sein. Den Überordnungen selbst können dabei Digitalisate zugeordnet sein. Zudem kann sich die Strukturierung im Einzelfall auch nach der initialen Kapsel-Auslieferung ändern.

Dieser Komplexität wird auf einfache Weise Rechnung getragen: Zu jedem exportierten Titel gehört eine Folge von Kapseln (eine Master- und mehrere Delta-Kapseln), die alle Daten in der Baumstruktur abwärts bis zu den untergeordneten Titeln erfassen, die gemäß Konfiguration („capsuleExport“ aktiviert) selbstständig verkapselt werden.

Eine Kapsel zu einem Titel enthält in ihren Metadaten Verweise auf die Metadaten aller ihrer Überordnungen, so dass ihr hierarchischer Zusammenhang vollständig ausgeliefert wird.

Bemerkung

Das Verfahren erfordert die Auszeichnung aller Jahrgänge eines Periodikums als eigenständig verkapselte Metadateneinheit. Insbesondere muss dazu die Zuweisung eines URNs erfolgen, sofern dieser als Kapsel-Identifier genutzt wird. Ansonsten würden alle Jahrgänge in die Kapsel der Überordnung eingeschlossen, die damit in der Regel zu groß werden würde.

Bemerkung

Auch für Überordnungen ohne eigene Digitalisate werden Kapseln gebaut. Diese enthalten dann nur Metadaten-Dateien.

Domainstrukturen

Die Titel-Kapseln erfassen nicht alle wesentlichen Stammdaten. So fehlen die oberhalb der Titel liegenden Strukturen wie Sammlungen, Kollektionen und Wiki-Daten, die nicht Teil eines Titels sind.

Alle diese Daten werden jeweils in einer Domain-Kapsel zusammengefasst. Diese referenziert auch die obersten Titel in der Baumstruktur (welche wiederum ihre Unterordnungen referenzieren, u.s.w.).

Diese Strukturen werden sowohl als METS-Datei wie auch als EAD-Datei je Domain ausgeliefert. Wikiressourcen auf Domainebene, darunter Bilder für Wikiseiten, werden in einem zusätzlichen Ordner der Domain-Kapsel ausgeliefert.

Voraussetzung

Um die Langzeitarchivierung für eine VL-Instanz zu aktivieren, muss in der server.ini der Wert preservation.on=True gesetzt werden.

Ablauf für Titel

Der automatisierte Kapselexport wird über eine Statusmaschine gesteuert, die für jeden Titel den Auslieferungs-Status verwaltet.

Die zugehörigen Serverjobs, die auf die Kapsel-Statuswerte für Titel reagieren, laufen in regelmäßigen Abständen. Der automatisierte Export wird über die Domain-Konfiguration eingestellt.

Kapselerstellung zu prüfen

Der Auslieferungsprozess beginnt in der Regel mit der Freigabe eines Werks. Es wird der Status „Kapselerstellung zu prüfen“ vergeben.

In diesem Zustand wird regelmäßig geprüft, ob eine Master- oder in der Folge eine Delta-Kapsel für den Titel gebaut werden muss.

Kapsel zu erstellen

Ist noch keine Kapsel vorhanden, so wird der Status auf „Kapsel zu erstellen“ geändert, um die Erstellung der Master-Kapsel zu beauftragen.

Nach Erstellung der Master-Kapsel wird der Status auf „Kapselerstellung zu prüfen“ zurückgesetzt. Hiermit beginnt auch der Ablauf für die Master-Kapsel (s. nächster Abschnitt).

Delta-Kapsel zu erstellen

Werden im Status „Kapselerstellung zu prüfen“ Änderungen an den wesentlichen Stammdaten des Titels festgestellt, so wird der Status auf „Delta-Kapsel zu erstellen“ geändert.

Nach Erstellung der Delta-Kapsel wird der Status auf „Kapselerstellung zu prüfen“ zurückgesetzt. Hiermit beginnt auch der Ablauf für die Delta-Kapsel (s. nächster Abschnitt).

Kapselerstellung fehlgeschlagen

Tritt ein Fehler während der Erstellung der Master- oder einer Delta-Kapsel auf, so wird der Status auf „Kapselerstellung fehlgeschlagen“ gesetzt.

Ein Titel in diesem Zustand nimmt nicht mehr am Kapselexport teil.

Nachdem das Problem behoben wurde, kann der Status manuell auf „Kapselerstellung zu prüfen“ zurückgesetzt werden. Die Kapselerstellung wird dann erneut probiert. Alternativ kann von Zeit zu Zeit in der Domain-Konfiguration der Wert retryOnError=true gesetzt werden. Dadurch nehmen auch Titel, die im Status „Kapselerstellung fehlgeschlagen“ stehen, am Kapselexport teil.

Kapsel nicht erstellen

Dieser Zustand wird vergeben, falls der Titel nicht mehr für einen Kapselexport in Frage kommt, zum Beispiel weil die Freigabe entzogen oder der Metadatentyp geändert wurde.

Ein Titel in diesem Zustand nimmt nicht mehr am Kapselexport teil.

Sind die Voraussetzungen für einen Kapselexport wieder gegeben, so wird der Titel automatisch wieder in den Zustand „Kapselerstellung zu prüfen“ versetzt.

Kapselerstellung angehalten

Dieser Zustand kann manuell vergeben werden, zum Beispiel über den Visual Library Manager.

Ein Titel in diesem Zustand nimmt nicht mehr am Kapselexport teil.

Soll der Kapselexport fortgesetzt werden, so muss der Status manuell auf „Kapselerstellung zu prüfen“ zurückgesetzt werden.

Ablauf für Kapseln

Der Ablauf der Kapselverarbeitung wird über eine Statusmaschine gesteuert. Der VL-Server verwaltet den Status für jede Kapsel.

Die zugehörigen Serverjobs, die auf die Kapsel-Statuswerte reagieren, laufen in regelmäßigen Abständen. Die Einstellungen für den automatisierten Export finden über die Domain-Konfiguration statt.

Findet kein manueller Eingriff oder Fehler statt, so durchlaufen alle Kapseln die folgenden Statuswerte der Reihe nach.

Kapsel neu

Die Kapsel wurde neu erstellt und im Dateisystem abgelegt.

Kapsel gelöscht

Die Kapsel wurde vom Dateisystem entfernt. Dies ist üblicherweise der Fall, wenn sie in ein Langzeitarchiv überführt wurde.

Kapsel archiviert

Die Kapsel ist im Langzeitarchiv angekommen.

Dieser Status kann entweder über eine Online-Schnittstelle des Langzeitarchivs abgefragt werden oder nach Ablauf einer Frist (Voreinstellung: 2 Tage) ex silentio angenommen werden.

Für die Abfrage einer Online-Schnittstelle ist üblicherweise eine Domain-spezifische Implementierung notwendig.

Originalbilder zu entfernen

Die Originalbilder, die in der Kapsel exportiert wurden, sind zu entfernen.

In VL-Instanzen, auf denen die Originalbilder nicht erhalten bleiben sollen, können dann die Originalbilder nach Erstellung aller Webcache-Stufen entfernt werden (um Speicherplatz einzusparen).

Dieser Status wird nach Ablauf einer Schonfrist (Voreinstellung: 14 Tage) ex silentio angenommen.

Dieser Status ist optional, und wird nur in VLS-Instanzen erreicht, in denen die Originalbilder gelöscht werden sollen.

Originalbilder entfernt

Sind die Originalbilder durch den DeleteArchiveJob entfernt worden, so wird dieser Status gesetzt.

Achtung

Sind die Originalbilder gelöscht, so darf die Kapselinformation in der VL-Datenbank nicht mehr gelöscht werden, da eine erneute Erstellung einer Master- oder Delta-Kapsel, welche diese Bilder enthalten müsste, nicht mehr möglich ist.

Dieser Status ist optional und wird nur in VLS-Instanzen erreicht, in denen die Originalbilder gelöscht werden sollen.

Aufbau der Kapseln

Kapsel-Typen

Es gibt zwei Typen von ZIP-Kapseln, Master und Delta. Beiden Typen sind gleich aufgebaut und enthalten immer eine METS-Datei mit dem Dateinamen export_mets.xml.

Dateiname

Master-Kapsel

Beispielname:

| Identifier          | Datum         | Typ  | Version | Erweiterung |
urn+nbn+de+hbz+6+1-612_20120626T140756_master_ver1.zip
Identifier

Als Identifier wird der URN, DOI, source identifier oder die VLIDverwendet. Sonderzeichen wie : und / werden ersetzt, da sie auf POSIX-Plattformen bzw. unter Windows reserviert sind. Im Standard werden die Sonderzeichen durch + ersetzt, es ist aber auch _ möglich.

Datum

Das Datum bezieht sich auf den Zeitpunkt, an dem die Informationen für die Kapsel gesammelt worden sind. Der Zeitpunkt ist eine Sekunde bis Stunden vor der Generierung der Kapsel. Das Datum ist in UTC und hat den Aufbau YYYYmmddThhmmss.

Typ

Der Typ ist entweder master oder genX, wobei X eine streng monoton ansteigende Zahl startend mit 1 ist. Die erste Delta-Kapsel hat den Typ gen1, die nachfolgende gen2 etc.

Version

Die Version ist zur Zeit immer ver1.

Erweiterung

Die Erweiterung ist .zip.

Delta-Kapsel

Beispielname:

urn+nbn+de+hbz+6+1-612_20130115T173301_gen1_ver1.zip

Verzeichnisstruktur

urn+nbn+de+hbz+6+1-612/
  export_mets.xml
  image/
    117637.tif
    117638.tif
    ...
  fulltext/
    117637.xml
    ...
  pdf/
    117637.pdf
    117638-somename.pdf
    ...
  zip/
    117637.zip
    ...
  generic/
    117637.doc
    117637.odt
    117638-unknown.bin
    ...

Verzeichnisstruktur (BagIt)

Im BagIt-Format werden die Kapseldaten in einem Unterverzeichnis data abgelegt. Das übergeordnete Verzeichnis enthält die BagIt-Metadaten, insbesondere die Prüfsummen aller Dateien.

urn+nbn+de+hbz+6+1-612/
  bagit.txt
  bag-info.txt
  manifest-sha1.txt
  tagmanifest-sha1.txt
  data/
    export_mets.xml
    (...wie oben...)

Kriterien für die Erstellung von Delta-Kapseln

Vergleich der Zeitstempel

Es werden die Zeitstempel der letzten Änderung von Tabellenzeilen verglichen. Dieser Test ist sehr schnell, da er komplett innerhalb des Datenbankservers erfolgt. Als Referenzdatum wird der Erstellungszeitpunkt der neusten (Delta)Kapsel der Einheit oder der Zeitpunkt der letzten Überprüfung durch den ZipExportStatusJob verwendet.

Dieser Zeitpunkt wird mit den update timestamps der Tabellenzeilen für den zentralen Baum, Metadaten, Ressourcen (Volltext, ZIP Package, Generic File, Upload PDF), Identifiern, Zugriffsbeschränkungen und Lizenzen verglichen, außerdem wird das Änderungsdatum des Archivbilds in Betracht gezogen. Dabei werden alle Unterordnungen der Einheit untersucht und die Einträge betrachtet, die einen neueren Zeitstempel haben. update timestamps werden von der Datenbank bei jeder Schreiboperation über Trigger gesetzt und sind somit verlässlich.

Wenn Änderungen dieser Eigenschaften gefunden werden, wird der Titel auf Delta-Kapsel zu erstellen gesetzt, weitere Überprüfungen sind nicht mehr notwendig.

Falls nur der Baumeintrag des Hauptknotens geändert wurde, weitere Einträge aber unverändert sind, wird die Überprüfung abgebrochen und keine Delta-Kapsel veranlasst. Dies ist eine Optimierung für den Fall, dass ein Titel verschoben oder die Freigabe geändert wurde.

In allen anderen Fällen erfolgt der nächste Schritt.

Vergleich des METS

Im dritten Schritt wird ein aktuelles METS des Werk erzeugt und dieses METS blockweise mit dem METS verglichen, das für die letzte ZIP-Kapsel erstellt worden ist. Vom METS aller früheren Kapsel-Generationen werden dauerhaft Kopien vorgehalten.

Vor dem Vergleich werden eine Reihe von Informationen aus beiden METS entfernt, um die Anzahl der falschen Erkennungen gering zu halten bzw. um das Verfahren zu beschleunigen.

  • MIX-Informationen in Image AMD Section (bereits über Änderungsdatum des Bilds abgedeckt)

  • CREATED, CHECKSUM, CHECKSUMTYPE und vls:file-omitted Attribute der mets:fileGrp/mets:file Elemente, außerdem das SIZE aus der MIX-Section gesetzt, falls SIZE nicht vorhanden ist. Dies ist notwendig, weil die Informationen erst seit VL-Version 2.11 vorhanden sind.

  • Alle mets:metsHdr, mets:amdSec und mets:dmdSec Sektionen und die ADMID- bzw. DMDID-Links zu den Sektionen. mets:dmdSec wird nur entfernt, wenn der Domain-Konfigurationswert compareMODS auf falsegesetzt, also ausgeschaltet, ist.

Zum Schluss werden die Blöcke mit der C14N Form in UTF-8 serialisiert und die Strings verglichen. Bei einem Unterschied wird der Titel auf Delta Kapsel zu erstellen gesetzt.

Überprüfungszeitpunkt speichern

Schließlich wird der Zeitpunkt der letzten Überprüfung gespeichert. Dies ist eine Optimierung, damit zeitaufwändige Vergleiche des METS nicht jede Nacht notwendig sind.

LZA-Jobs

Die Erstellung der Kapseln wird durch eine Reihe aufeinanderfolgender Serverjobs gesteuert, die im ZipExportCombinedJob zusammengefasst sind. Im Standard ist die Reihenfolge:

ZipExportStatusJob

Aktualisiert den Status aller zur Auslieferung ausgewählten Titel.

ZipExport

Erzeugt Kapseln zur Auslieferung von Titeln mit passenden Status.

ZipCapsuleTransfer

Transferiert Kapseln ins Langzeitarchiv.

ZipCapsuleStatusJob

Aktualisiert den Status aller erzeugten und abgelieferten Kapseln.

DeleteArchiveJob (optional)

Löscht die exportierten Originalbilder vom VL-Server, nachdem alle benötigten Webcache-Stufen erzeugt worden sind. Neuer Master ist die 0er-Webcache-Stufe, die den Abmessungen des Originals entspricht.

Gemeinsame Parameter

subdomains (Boolean)

Der Job kann entweder auf der Job-Domain laufen, oder auf der Job-Domain sowie allen untergeordneten Domains (rekursiv). Die Job-Einstellungen werden für jede Domain individuell über die Domain-Konfiguration geregelt.

Voreinstellung: false

target (String, zipcapsule)

Bestimmt das Export-Ziel für diesen Job. Nur Domains (bzw. Subdomains), die das gleiche Export-Ziel wie der Job haben, werden von dem Job bearbeitet.

Aktuell ist nur ein Export-Ziel vorgesehen: zipcapsule. Dieses unterstützt den fortlaufenden Export in ein Langzeitarchiv. Wenn eine Domain gar nicht am Kapselexport teilnehmen soll, kann als Export-Ziel None eingestellt werden.

Der ZipExportJob (und nur dieser) unterstützt auch ein weiteres Export-Ziel: manual. Dieses ist für den manuellen Einzel-Export von Master-Kapseln (außer der Reihe) vorgesehen.

Voreinstellung: zipcapsule

startMode (String, automatic oder manual)

ZipExportCombined

Der Job ZipExportCombined ruft (optional) alle anderen Jobs auf, die für den Kapselexport relevant sind.

exportstatus (Boolean)

Falls wahr, wird der ZipExportStatus-Job aufgerufen.

Voreinstellung: true

export (Boolean)

Falls wahr, wird der ZipExport-Job aufgerufen.

Voreinstellung: true

capsulestatus (Boolean)

Falls wahr, wird der ZipCapsuleStatus-Job aufgerufen.

Voreinstellung: true

deletearchive (Boolean)

Falls wahr, wird der DeleteArchive-Job aufgerufen.

Voreinstellung: false

subdomains (Boolean)

Dieses Argument wird an alle untergeordneten Jobs weitergereicht.

Voreinstellung: false

target (String, zipcapsule)

Dieses Argument wird an alle untergeordneten Jobs weitergereicht.

Voreinstellung: zipcapsule

limitCount (Integer)

Dieses Argument wird an den ZipExportJob weitergereicht.

Voreinstellung: 0

limitSizeGB (Float)

Dieses Argument wird an den ZipExportJob weitergereicht.

Voreinstellung: 0.0

ZipExportStatusJob

Der ZipExportStatusJob implementiert den „Ablauf für Titel“. Dabei werden für jede ausgewählte Domain mehrere Schritte durchlaufen:

  1. Neue (freigegebene) Titel bekommen den Zustand „Kapselerstellung zu prüfen“.

  2. Titel im Zustand „Kapsel nicht erstellen“, bei denen die Voraussetzung für diesen Zustand weggefallen ist (z.B. zurückgezogene Freigabe wird erneut erteilt), bekommen den Zustand „Kapselerstellung zu prüfen“.

  3. Falls die Domain-Konfiguration export.retryOnError gesetzt ist: Titel im Zustand „Kapselerstellung fehlgeschlagen“ bekommen den Zustand „Kapselerstellung zu prüfen“.

  4. Titel in irgendeinem Zustand, bei denen die Voraussetzung für den Kapselexport weggefallen ist (z.B. Freigabe wird entzogen), bekommen den Zustand „Kapsel nicht erstellen“.

  5. Zu exportierende Titel, für die noch keine Kapseln erstellt wurden, bekommen den Zustand „Kapsel zu erstellen“.

  6. Zu exportierende Titel, für die bereits Kapseln erstellt wurden, bekommen den Zustand „Delta-Kapsel zu erstellen“. Der genaue Ablauf der Prüfung, ob eine Delta-Kapsel erstellt werden soll, wird im Abschnitt „Kriterien für die Erstellung von Delta-Kapseln“ beschrieben.

Die folgenden Domain-Einstellungen sind verfügbar:

export.target (String)

Bestimmt das Export-Ziel für diese Domain. Nur Domains (bzw. Subdomains), die das gleiche Export-Ziel wie der Job haben, werden von dem Job bearbeitet.

Voreinstellung: zipcapsule

export.checkWorkflowState (Boolean)

Falls true, wird die Auswahl der zu exportierenden Titel auf QA-geprüfte beschränkt („Strukturierung nicht notwendig“ und „Strukturierung abgeschlossen“)

Voreinstellung: true

export.checkReleaseState (Boolean)

Falls true, wird die Auswahl der zu exportierende Titel auf freigegebene beschränkt.

Voreinstellung: true

export.retryOnError (Boolean)

Falls true, werden Titel im Zustand „Kapselerstellung fehlgeschlagen“ automatisch zurückgesetzt.

Voreinstellung: false

export.compareMODS (Boolean)

Falls true, erstelle eine Delta-Kapsel, wenn Änderungen im MODS festgestellt werden.

Voreinstellung: true

export.compareDPSection (Boolean)

Falls true, erstelle eine Delta-Kapsel, wenn Änderungen an den VLS-DP-Erweiterungen im Export-METS festgestellt werden. Die VLS-DP-Erweiterungen enthalten zusätzliche VL-Daten, welche im Export-METS nicht nativ abgebildet werden können.

Voreinstellung: false

export.metstype (String)

Der Typ der Export-METS, die erzeugt und auf Änderungen untersucht werden soll. Aktuell wird ausschliesslich vdzip unterstützt.

Voreinstellung: vdzip

Die folgenden Job-Parameter sind verfügbar:

target (String, zipcapsule)

Das Export-Ziel für den Job (aktuell nur zipcapsule).

Voreinstellung: zipcapsule

subdomains (Boolean)

Ob der Job nur in der Job-Domain oder auch allen untergeordneten Domains laufen soll.

Voreinstellung: false

deltaDeepScan (Boolean)

Erzwingt eine Prüfung von Titeln, bei denen die Zeitmarken in der Datenbank alleine keinen Hinweis auf die Notwendigkeit einer Delta-Kapsel geben. Dies kann der Fall sein, wenn Teile eines Titels gelöscht wurden, ohne dass ein übergeordneter Datenbankeintrag eine Aktualisierung der Zeitmarke erhält.

Dieser Test ist langsam und sollte deshalb nur im Einzelfall durchgeführt werden.

showDiff (Boolean)

Zeigt den Unterschied zwischen zwei Export-METS-Dateien, der zum Zustand „Delta-Kapsel zu erstellen“ geführt hat, in der Log-Datei.

dryrun (Boolean)

Falls true werden keine Änderungen an der Datenbank vorgenommen.

Voreinstellung: false

ZipExportJob

Der ZipExportJob implementiert den Kapsel-Export für Master- und Delta-Kapseln. Dabei werden grundsätzlich zwei Varianten unterschieden:

  1. target=zipcapsule: Hier ist das Export-Ziel ein Langzeitarchiv. Es werden Master- und Delta-Kapseln über einen langen Zeitraum exportiert. Die Einstellungen finden ausschliesslich über die Domain-Konfiguration statt, da eine unbedarfte, manuelle Änderung in den Job-Parametern zu Inkonsistenten im Langzeitarchiv führen könnte.

  2. target=manual: Hier ist das Export-Ziel eine einmalige, händische Auslieferung einzelner Master-Kapseln. Die Einstellungen finden über die Domain-Konfiguration statt und können durch die Job-Parameter überschrieben werden.

Die folgenden Domain-Einstellungen sind verfügbar:

export.target (String)

Nur für target=zipcapsule.

Bestimmt das Export-Ziel für diese Domain. Nur Domains (bzw. Subdomains), die das gleiche Export-Ziel wie der Job haben, werden von dem Job bearbeitet.

Voreinstellung: zipcapsule

export.destination (String)

Nur für target=zipcapsule (vgl. Job-Parameter destination).

Das Verzeichnis, unter dem die Kapseln abgelegt werden sollen.

Voreinstellung: config.path.zipBackup (aus der Server-Konfiguration)

export.copy_mode (String, keep/copy/move)

Nur für target=zipcapsule.

Bestimmt, ob die Kapseln nach der Erstellung in ein weiteres Verzeichnis kopiert (copy) oder verschoben (move) werden sollen.

Voreinstellung: keep

export.copy_destination (String)

Nur für target=zipcapsule.

Das Verzeichnis, in das die Kapseln kopiert oder verschoben werden sollen (nur bei export.copy_mode=copy oder move)

Voreinstellung: N/A

export.copy_queue_size (Integer)

Nur für target=zipcapsule.

Die Anzahl der parallelen Kopier- oder Verschiebeoperationen (nur bei export.copy_mode=copy oder move). 0 bedeutet, dass alle Operationen sequentiell erfolgen.

Voreinstellung: 3

export.create_report (Boolean)

Nur für target=zipcapsule.

Falls true, wird eine CVS-Datei erstellt, die eine Tabelle aller erstellten Kapseln enthält.

Voreinstellung: false

export.metstype (String)

Der Typ der Export-METS, die erzeugt und auf Änderungen untersucht werden soll. Aktuell wird ausschliesslich vdzip unterstützt.

Voreinstellung: vdzip

export.identname (String, urn/doi/sourceident/struct)

Bestimmt den persistenten Identifikator, der Teil des Kapsel-Namens werden soll. Dieser wird üblicherweise bei Langzeitarchiven zur Referenzierun verwendet.

Voreinstellung: urn

export.arctype (String, zip/tar)

Bestimmt das äussere Archiv-Format der Kapsel.

Voreinstellung: zip

export.compression (Boolean)

Falls true, werden die Kapseln verlustfrei komprimiert. Nicht empfohlen, da Kompression bei Übertragungsfehlern zu grösseren Datenverlusten führen kann. Kompression ist zudem sehr CPU-intensiv, und die zu erwartende Kompressionsrate ist bei Bilddaten nicht sehr hoch.

Voreinstellung: false

export.containertype (String, zipcapsule/bagit)

Bestimmt die Dateistruktur in der Kapsel. Bei zipcapsule werden die Export-Daten direkt in das Archiv gepackt, bei bagit wird das Archiv um weitere Metadaten nach dem BagIt-Standard angereichtert.

Voreinstellung: zipcapsule

export.premistype (String, no_premis/danrw_premis)

Falls danrw_premis, werden die Kapseln zusätzlich um Metadaten nach dem PREMIS-Standard (DA-NRW-Profil) angereichert.

Voreinstellung: no_premis

export.validateImage (Boolean)

Falls true, müssen alle Bilder Prüfsummen in der Datenbank hinterlegt haben. Zusammen mit export.compareChecksum werden diese auch überprüft.

Voreinstellung: false

export.compareChecksum (Boolean)

Falls true, werden alle vorhandenen Prüfsummen nach Erstellung der Kapsel überprüft.

Voreinstellung: true

export.with_public_mets (Boolean)

Falls true, wird in die Kapsel eine OAI-METS Datei unter public_mets.xml abgelegt.

Damit die OAI-METS erzeugt werden kann, muss die Domain-Konfiguration oai.baseUrl gesetzt sein.

Voreinstellung: false

export.export_mets (Boolean)

Falls true, wird neben der Kapseldatei noch eine .xml-METS-Datei erzeugt.

Voreinstellung: false

export.export_checksums (Boolean)

Falls true, wird neben der Kapseldatei noch eine .sha1-Prüfsummendatei erzeugt. Diese enthält die Prüfsumme der Kapsel und, falls export.export_mets gesetzt ist, auch die Prüfsumme der Export-METS-Datei.

Voreinstellung: false

export.email_notification (String)

Falls gesetzt, wird eine Email-Nachricht an die angegebene Adresse geschickt, wenn Fehler beim ZipExportJob auftreten.

Voreinstellung: N/A

Die folgenden Job-Parameter sind verfügbar:

target (String, zipcapsule/manual)

Das Export-Ziel für den Job.

Voreinstellung: zipcapsule

subdomains (Boolean)

Nur für target=zipcapsule.

Ob der Job nur in der Job-Domain oder auch allen untergeordneten Domains laufen soll.

Voreinstellung: false

otids (IntegerList)

Bestimmt die Titel, welche exportiert werden sollen.

Nur für target=manual: Hier können auch Identifikatoren angegeben werden, welche sonst nicht zur Kapselerstellung ausgewählt werden.

Nur für target=zipcapsule: Die Identifikatoren schränken nur die Auswahl für den automatisierten Ablauf ein. Sie müssen sich im richtigen Zustand befinden und über die Job-Parameter (Domain und Subdomain-Einstellung) finden lassen.

Voreinstellung: N/A

destination (String)

Nur für target=manual.

Das Verzeichnis, unter dem die Kapseln abgelegt werden sollen. Die Kapseln werden in einem Unterverzeichnis export-{DATETIME} abgespeichert.

Voreinstellung: config.path.zipBackupManual (aus der Server-Konfiguration)

metstype (String)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

identname (String, urn/doi/sourceident/struct)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

arctype (String, zip/tar)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

compression (Boolean)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

containertype (String, zipcapsule/bagit)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

premistype (String, no_premis/danrw_premis)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

validateImage (Boolean)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

compareChecksum (Boolean)

Nur für target=manual.

Diese Einstellung entspricht der aus der Domain-Konfiguration und kann diese überschreiben.

Voreinstellung: N/A (aus der Domain-Konfiguration)

with_public_mets (Boolean)

Falls true, wird in die Kapsel eine OAI-METS Datei unter public_mets.xml abgelegt.

Voreinstellung: N/A (aus der Domain-Konfiguration)

export_mets (Boolean)

Falls true, wird neben der Kapseldatei noch eine .xml-METS-Datei erzeugt.

Voreinstellung: N/A (aus der Domain-Konfiguration)

export_checksums (Boolean)

Falls true, wird neben der Kapseldatei noch eine .sha1-Prüfsummendatei erzeugt. Diese enthält die Prüfsumme der Kapsel und, falls export.export_mets gesetzt ist, auch die Prüfsumme der Export-METS-Datei.

Voreinstellung: N/A (aus der Domain-Konfiguration)

emptyImages (Boolean)

Nur für target=manual.

Falls true, werden die Bilder in der Kapsel durch leere Platzhalter-Dateien ersetzt. Dies ist sinnvoll, falls nur die Metadaten und andere Resourcen (z.B. Volltexte) exportiert werden sollen.

Voreinstellung: false

runDate (String)

Falls gesetzt, bekommen alle erzeugten Kapseln die vorgegebene Zeitmarke. Dies ist nur für automatisierte Tests.

Voreinstellung: N/A

ZipCapsuleStatusJob

Der ZipCapsuleStatusJob implementiert den „Ablauf für Kapseln“. Dabei werden für jede ausgewählte Domain mehrere Schritte durchlaufen:

  1. Kapseln im Zustand „Kapsel neu“, die auf dem Dateisystem nicht mehr vorhanden sind, bekommen den Zustand „Kapsel gelöscht“.

    Diese Zustandsänderung erfolgt auch dann, wenn der Titel nicht mehr an der Kapselverarbeitung teilnimmt, da sie eine externe Tatsache festhält.

  2. Nur für target=zipcapsule:

    Kapseln im Zustand „Kapsel gelöscht“, die im Langzeitarchiv aufgenommen wurden, bekommen den Zustand „Kapsel archiviert“. Gibt es für das gewählte Langzeitarchiv keine Integration, wird dieser Zustand nach 2 Tagen ex silentio angenommen.

    Diese Zustandsänderung erfolgt auch dann, wenn der Titel nicht mehr an der Kapselverarbeitung teilnimmt, da sie eine externe Tatsache festhält.

  3. Nur für target=zipcapsule und export.allowDeleteArchive=true:

    Kapseln im Zustand „Kapsel archiviert“ bekommen nach 14 Tagen ex silentio den Zustand „Originalbilder zu entfernen“.

    Kapseln im Zustand „Originalbilder zu entfernen“ werden vom DeleteArchiveJob weiter bearbeitet.

Kapseln im Zustand „Kapsel angehalten“ werden von der Verarbeitung durch den ZipCapsuleStatusJob ausgenommen.

Die folgenden Domain-Einstellungen sind verfügbar:

export.allowDeleteArchive (Boolean)

Falls true, wird die Kapselverarbeitung bis zum Zustand „Originalbilder zu entfernen“ fortgesetzt. Ansonsten hört diese bei „Kapsel archiviert“ auf.

Voreinstellung: false

export.archiveTimespan (Integer)

Bestimmt die Anzahl an Tagen, welche der Job wartet, bis der Zustand von „Kapsel gelöscht“ zu „Kapsel archiviert“ ex silentio geändert wird (nur bei Domains, für die keine Integration ans Langzeitarchiv implementiert ist).

Voreinstellung: 2 (Tage)

export.archiveStatusUrl (String)

Falls gesetzt, wird nach export.archiveTimespan Tagen noch eine Online-Abfrage zum Archivierungsstatus gemacht. Der String enthält die abzufragende URL, und kann folgende Parameter enthalten, die durch die konkreten Kapselangaben ersetzt werden: sb_id (Kapsel-ID), filename (Dateiname der Kapsel), ot_id (VL-ID des gekapselten Werks), mangled_urn (Dateisystem-kompatible Form der URN des Werkes), timestamp (Zeitmarke der Kapsel), generation (Generation der Kapsel), version (Version des Kapselformats), mets_filename (Name der Export-METS-Datei), checksums_filename (Name der Prüfsummendatei).

Benötigt auch export.archiveStatusPattern.

Voreinstellung: N/A

export.archiveStatusPattern (String)

Enthält den regulären Ausdruck, mit das Ergebnis der archiveStatusUrl-Abfrage verglichen wird. Wird ein positiver Treffer festgestellt, so wird angenommen, dass die Kapsel erfolgreich archiviert wurde.

Voreinstellung: N/A

export.removeTimespan (Integer)

Bestimmt die Anzahl an Tagen, welche der Job wartet, bis der Zustand von „Kapsel archiviert“ zu „Originalbilder zu löschen“ ex silentio geändert wird (nur bei Domains mit export.allowDeleteArchive=true).

Voreinstellung: 14 (Tage)

DeleteArchiveJob

Der ZipCapsuleStatusJob vervollständigt den „Ablauf für Kapseln“ für Kapseln im Zustand „Originalbilder zu entfernen“. Er löscht alle Originalbilder für solche Kapseln und setzt den Zustand auf „Originalbilder entfernt“.

Die folgenden Domain-Einstellungen sind verfügbar:

export.allowDeleteArchive (Boolean)

Falls true, wird die Kapselverarbeitung bis zum Zustand „Originalbilder zu entfernen“ fortgesetzt. Ansonsten hört diese bei „Kapsel archiviert“ auf.

Voreinstellung: false

Die folgenden Job-Parameter sind verfügbar:

dryrun (Boolean)

Falls true werden keine Änderungen an der Datenbank vorgenommen.

Voreinstellung: false

DomainCapsuleJob

Der DomainCapsuleJob erlaubt die Archivierung der Metadaten und Ressourcen einer Sammlung, die nicht in den Metadaten der Titel enthalten sind. Ausserdem enthält die Domain-Datei (METS bzw. EAD) eine Liste aller Titel einer Sammlung.

Die EAD-Dateien werden unter dem Dateinamen ead_SAMMLUNG_ZEITMARKE.xml abgelegt, also zum Beispiel: ead_retro_20160401T122731.xml, entsprechend die METS-Dateien mets_SAMMLUNG_ZEITMARKE.xml.

Falls ein ZIP-Archiv erstellt wird, ist der Name der ZIP-Datei ead_SAMMLUNG_ZEITMARKE.zip, wobei sich die Sammlung auf die Job-Domain bezieht. Für die VL-Instanzen, die am Digitalen Archiv NRW teilnehmen, werden in der Domainkapsel der jeweiligen Root-Domain der Instanz auch die VL-Datenbank und ein Verzeichnis der Schemadateien für die Validierung der verwendeten Formate ausgeliefert.

Die folgenden Job-Parameter sind verfügbar:

arctype (String, zip/xml)

Falls zip wird eine ZIP-Datei erstellt, welche die EAD- und METS-Dateien sowie ggf. weitere Elemente wie Webressourcen und Wikiseiten enthält. Falls xml wird für jede EAD-Datei eine separate Datei erstellt.

Voreinstellung: zip

destination (Boolean)

Das Ausgabeverzeichnis.

Voreinstellung: config.path.eadBackup (aus der Server-Konfiguration)

Use Cases

Die Ausgangslage für alle Fälle ist:

Abnahmestatus

abgenommen

Freigabestatus

freigegeben

ZIP-Kapsel

Kapsel erstellt (Originalbilder gelöscht)

Neues Bild hinzufügen

  1. Freigabe des Werks entziehen

  2. Neues Bild mit dem VLM hochladen und positionieren

  3. Werk wieder freigeben

Der nächtliche ZipExportStatusJob erkennt, dass neue Strukturen angelegt wurden und ein Bild ein neues Änderungsdatum als die letzte Kapsel bzw die letzte Überprüfung besitzt. Der Job setzt daher den Status Delta Kapsel zu erstellen. Der nachgelagerte ZipExportJob reagiert auf den Status, erstellt eine Kapsel, die das neue Bild und ein aktuelles METS enthält und setzt den Status auf Kapsel vorhanden. Der weitere Verarbeitungsprozess erfolgt analog zum normalen Kapselverfahren.

Vorhandenes Bild ersetzen

  1. Freigabe des Werks entziehen

  2. Bild mit dem VLM auswählen und ersetzen

  3. Werk wieder freigeben

Der weitere Ablauf erfolgt genau wie unter Neues Bild hinzufügen_. Die Deltakapsel enthält das geänderte Bild und ein neues METS.

Verknüpfung zu einem Bild entfernen oder erstellen

  1. Freigabe des Werks entziehen

  2. Verknüpfung mit dem VLM anlegen oder entfernen

  3. Werk wieder freigeben

Der weitere Ablauf erfolgt genau wie unter Neues Bild hinzufügen_. Die Deltakapsel enthält nur das neue METS und kein Bild. Bei Verknüpfungen in einem Werk wird das Bild nur einmal gespeichert.

Vorhandenes Bild oder Strukturierung löschen

  1. Freigabe des Werks entziehen

  2. Bild oder Strukturknoten mit dem VLM entfernen

  3. Werk wieder freigeben

Dieser Fall wird zur Zeit noch nicht performant erkannt, da nach dem Löschen eines Eintrags die Informationen in der Datenbank fehlen. Hierzu ist ein zeitaufwändiger Vergleich der Daten mit den gespeicherten METS-Dateien aus dem Kapselprozess notwendig. Die Tiefensuche ist über neue Optionen im ZipExportStatusJob möglich und kan mehrere Stunden in Ansprucn nehmen.

Primärer Identifier wird geändert

Der primäre Identifier ist der Identifier, mit dem das Werk und die dazugehörigen Kapseln eindeutig zugeordnet werden, zum Beispiel URN, DOI oder die Systemnummer des Katalogs, falls beim Export keine URN oder DOI verwendet wird.

Die nachträgliche Veränderung des primären Identifiers wird nicht unterstützt. In diesem Fall muss eine neue und Hauptkapsel erzeugt und die Kapseln mit dem alten Identifiern aus dem Archiv gelöscht werden. Falls die Bilder in der Zwischenzeit gelöscht wurden, müssen sie erst re-importiert werden.

Verschieben von Bildern und Strukturen zwischen Werken

Nachdem ein Werk freigegeben und archiviert wurde, wird die Verschiebung von Bildern und Strukturen zwischen Werken nicht unterstützt.

Achtung

Zwar können Delta-Kapseln diese Änderungen wiedergeben, aber die SYS_Backup2Page-Tabelle wird in diesem Fall nicht korrekt nachgepflegt. Originalbilder könnten gelöscht werden, die für die neue Master- oder Delta-Kapsel gebraucht würden.

DA-NRW

Für Sammlungen, die in das Langzeitarchiv DA-NRW überführt werden sollen, gibt es gesonderte Einstellungen.

Contract

Der Contract regelt die Weiterverwendung der Digitalisate im Langzeitarchiv DA-NRW, und wird definiert durch die Metadaten in der PREMIS-Datei (Element „rightsExtension“ nach Schema „danrw-contract-1.xsd“).

Für die VLS sind derzeit zwei Contracts definiert:

öffentliche Präsentation

Dieser Contract erlaubt die Weiternutzung des Werks im Präsentationsportal.

gesperrte Präsentation

Dieser Contract verbietet die Weiternutzung des Werks im Präsentationsportal.

Beide erlauben die unbeschränkte Formatmigration im Archiv.

Die Auswahl des Contracts erfolgt automatisch nach dem Zugriffsstatus (access restriction) auf der Ebene des jeweiligen Titels. Darüber hinausgehende Einschränkungen unterhalb der Titelebene oder auf Domainebene wären möglich, sind aber in der aktuellen Implementierung obsolet.

Transfer

Der Transfer von Kapseln ins DA-NRW erfolgt automatisiert. Die Kapseln werden nach Erzeugung im Ausgangsverzeichnis der jeweiligen Instanz abgelegt und von dort mittels rsync über eine SSH-Verbindung ins jeweilige instanzspezifische Einlieferungsverzeichnis des DA-NRW-Ingestknotens im Hochschulbibliothekszentrum NRW (hbz) übertragen. Dabei werden folgende Statusinformationen geliefert:

  • Kapsel neu [new] - im Ausgangsverzeichnis abgelegt

  • Transfer aktiv - Übertragung der Kapsel ins DANRW hat begonnen

  • Transfer gescheitert [transfer failed] - Transfer der Kapsel ist - aus Performance-Gründen wie schlechter Verbindungsqualität - nicht erfolgreich gewesen

  • Transfer zurückgewiesen [transfer rejected] - Transfer der Kapsel ist - aus technischen Gründen wie fehlender SSH-Berechtigung oder erschöpfter Quota - nicht erfolgreich gewesen

  • Transferiert [transfered] - Transfer der Kapsel ins DANRW-Einlieferungsverzeichnis (OAIS: Ingest-Knoten) ist erfolgreich abgeschlossen

Verarbeitung im DA-NRW und Statusinformationen via API

Kapseln werden … Mehrere Kapsel-Generationen eines Titels werden im DA-NRW einzeln gespeichert, gleichzeit aber auch wieder jeweils zu vollständigen Generationspaketen zusammengesetzt, sodass jede Generation eines VL-Titels vollständig im DA-NRW langzeitgespeichert wird.

Jobinfos

  • Kapsel in Verarbeitung

  • Kapsel zurückgewiesen

  • Kapsel archiviert

Damit erhält der Status „Kapsel archiviert“ eine andere, aktive Bedeutung gegenüber dem in …. geschilderten Modell. Hier ist es der Endstatus für die DANRW-Kapselverarbeitung. Die optional anschließenden Statuswerte im Fall der Löschung von Bildern nach erfolgreicher Archivierung (siehe …) spielt im Kontext der Archivierung im DANRW praktisch keine Rolle.

Interaktion mit den archivierten Paketen

Die API des DA-NRW bietet zwei Interaktionsmöglichkeiten: Löschen und Anforderung von archivierten Paketen für die Wiedereinspielung in VL (OAIS: Retrieval).

  • Löschen: Werden Kapseln vom DANRW zurückgewiesen, können sie also nicht so verarbeitet werden, dass sie ins Langzeitarchiv aufgenommen werden können, gelangen diese Statusinformationen via API-Abfrage in die VL-Datenbank zu den jeweiligen Statusinformationen der zu archivierenden Kapsel.

  • Anforderung: Wenn Kapseln erfolgreich archiviert worden sind, kann ihre Ausspielung über die grafische Benutzeroberfläche des DANRW angefordert und die Datei anschließend heruntergeladen werden. Bei der Rückspielung sind verschiedene Szenarien zu bedenken, die über den Standard-Import durchgeführt werden. Eine Automatisierung der verschiedenen Szenarien ist nach Spezifikation möglich.