2021.06

Die Speicherung der MyCoRe-Objekte mit OCFL

Allgemeines

OCFL, das Oxford Common File Layout, ist ein Konzept zur Speicherung von Daten in einer versionierten Form mit Ablage der Daten auf einem nativen Plattenbereich. Somit kann der Vorteil einer einfachen Speicherung im Dateisystem mit dem einer Dateiversionierung optimal verbunden werden. Die MyCoRe-Entwickler arbeiten seit 2020 an der Integration diese Form der Datenablage in MyCoRe. Mit Version 2021 ist nun eine prototypische Implementierung unter Zuhilfenahme der OCFL-Library im MyCoRe-Kern verfügbar.

Hier die Referenz zum OCFL-Java Github

Konfiguration

Um OCFL zu nutzen, muss zuerst das entsprechende MyCoRe-Modul in der pom.xml integriert werden.

 <dependency>
    <groupId>org.mycore</groupId>
    <artifactId>mycore-ocfl</artifactId>
    <version>${mycore.version}</version>
 </dependency>

Die folgenden Properties werden in dieser Form im Code mitgeliefert.

 MCR.CLI.Classes.Internal=%MCR.CLI.Classes.Internal%,org.mycore.ocfl.commands.MCROCFLCommands

 MCR.OCFL.Repository.Main=org.mycore.ocfl.MCRSimpleOcflRepositoryProvider
 MCR.OCFL.Repository.Main.RepositoryRoot=%MCR.datadir%/ocfl-root
 MCR.OCFL.Repository.Main.WorkDir=%MCR.datadir%/ocfl-temp

Diese Properties sind benötigt um den Metadatenmanager für XML zu ersetzen durch den für OCFL! Main ist dabei ein Bezeichner, welcher die Gruppe der notwendigen Properties zusammenfasst.

 MCR.Metadata.Manager=org.mycore.ocfl.MCROCFLXMLMetadataManager
 MCR.Metadata.Manager.Repository=Main

Migration

Achtung: Die Migration befindet sich aktuell noch im Beta-Entwicklungsstadium und ist nicht für den produktiven Einsatz vorgesehen

Für die Prozedur sollte sichergestellt werden, dass die Daten nicht von Nutzern bearbeitet werden. Zunächst sollte ein Repository konfiguriert werden. Der Metadaten-Manager darf aber noch nicht auf OCFL umgestellt werden. Mit dem Kommando migrate metadata to repository Main können die Daten in das Repository Main überspielt werden. Das Kommando gibt eine Statistik aus, ob alle Metadaten migriert werden konnten.

Wenn alles geklappt hat, dann kann man den MetadatenManager umstellen.

Offene Probleme

  • Ein Objekt muss hart löschbar sein - bisher ist nur 'soft'-löschen möglich.
  • Die Directory-Struktur muss 'sprechend' sein - wie bisher.
  • Die Version muss bei /receive/{ID} als Attribut mitgegeben werden, da sonst XSLT nichts von den Versionen weiß.
  • Tests sind noch nicht alle komplett durch, weitere folgen.

Fazit

  • OCFL ist nicht für Produktivanwendungen komplett genug.
  • Fixes und Konkretisierungen sind noch erforderlich.
  • Mit Release 2022 sollte OCFL produktiv einsetzbar sein.