Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Da Goobi als Workflow-Software im bibliothekarischen Kontext mit einer Vielzahl von individuellen Konfigurationen und projektspezifischen Besonderheiten umgehen können muss, hat sich bewährt, sich hierbei an etablierte Konventionen zu halten. Dazu gehören unter anderem auch die einzelnen Verzeichnisstrukturen, wie sie von Goobi für die unterschiedlichen Bereiche der Anwendung verwendet werden. In diesem Abschnitt soll darauf näher eingegangen werden, welche Verzeichnisstrukturen sich bewährt haben. Des Weiteren wird darauf eingegangen, wie ein externer Datenspeicher in das System eingebunden wird.
Innerhalb des Verzeichnisses config
befinden sich sämtliche Konfigurationsdateien von Goobi, die sich nicht innerhalb der Applikation selbst befinden müssen. An dieser Stelle finden sich daher die folgenden Konfigurationsdateien:
Neben den Konfigurationsdateien für die Kernkomponenten von Goobi befinden sich je nach individueller Installation an dieser Stelle unter Umständen auch noch weitere Konfigurationsdateien. Konfigurationen für einzelne Plugins, die die Funktionalität von Goobi erweitern, sollten entsprechend ebenfalls innerhalb dieses zentralen Konfigurationsverzeichnisses vorgehalten werden.
Neue Entwicklungen von zusätzlichen Goobi-Plugins sollten sich mit ihren Pfaden und Dateibenennungen für ihre Konfigurationen auch an diese Konvention halten, um eine möglichst einfache Wartung der Software zu gewährleisten.
Innerhalb des Verzeichnisses import
liegen je nach individueller Goobi-Installation unterschiedliche Daten größtenteils temporär vor. Import-Plugins verwenden dieses Verzeichnis beispielsweise, um Metadaten sowie zugehörige digitale Inhalte für das Anlegen von Vorgängen einzuspielen. Die jeweiligen Import-Plugins sind dabei ebenso für das Löschen nicht mehr benötigter Dateien verantwortlich.
Das Verzeichnis metadata
ist das zentrale Verzeichnis für die Speicherung von Metadaten und digitalen Inhalten von Goobi. Innerhalb dieses Verzeichnisses befindet sich für jeden Goobi-Vorgang ein Verzeichnis mit dem Namen der Vorgangs-ID von Goobi. Die Verzeichnisse der einzelnen Goobi-Vorgänge sind dabei folgendermaßen aufgebaut:
Neben der zentralen Metadatendatei meta.xml
befinden sich je nach Konfiguration gegebenenfalls noch weitere Backupdateien wie z.B. meta.xml.1
, meta.xml.2
, meta.xml.3
Das Verzeichnis images
wird innerhalb des Workflows verschiedenen Nutzern temporär zur Verfügung gestellt und hat dabei den folgenden Aufbau:
Der für die Arbeit mit den Inhalten wichtigste Ordner ist derjenige, der auf _media
endet. Das Verzeichnis, das mit master_
beginnt, wird üblicherweise dafür verwendet, dort alle Masterimages in unmanipuliertem Status zu speichern. Die weiteren Verzeichnisse dienen zur freien Verwendung innerhalb der Workflows und können beliebig ergänzt werden. Das Verzeichnis, das auf source
endet, wird ebenso wie das Verzeichnis, das auf _media
endet, innerhalb des Exports zum Präsentationssystem (z.B. intranda viewer) kopiert.
Neben dem Verzeichnis images
kann ebenfalls ein Verzeichnis ocr
vorhanden sein. Hierin befinden sich sämtliche OCR-Ergebnisse, die innerhalb des Workflows erzeugt und zu dem Vorgang hinzugefügt wurden. Für jedes vorliegende Format der OCR-Ergebnisse besteht ein eigenes Verzeichnis.
Im Ordner thumbs
können kleinere Versionen der in images
liegenden Bilder gespeichert werden, die Goobi verwendet um die Bilder in geringer Auflösung darzustellen. Dies erhöht die Geschwindigkeit der Bildanzeige bei größeren Bildern erheblich. Für jeden Unterordner von images
können ein oder mehrere Unterordner in thumbs
angelegt werden, die den selben Namen tragen wie der images
Unterordner, erweitert um einen zusätzlichen Unterstrich _ und eine Größenangabe in Pixeln. Diese Größenangabe muss dem Maximum von Höhe und Breite der Bilder im jeweiligen Unterordner entsprechen. Die Dateinamen der Bilder im thumbs
Unterordner müssen denen der Bilder im passenden images
Unterordner entsprechen, jedoch mit der Dateiendung .jpg
.
Wenn zu einer Bilddatei in images
passende Bilder in thumbs
vorhanden sind, dann werden diese in Goobi automatisch verwendet für die Anzeige von Thumbnails und zoombaren Bildern im herausgezoomten Zustand.
Sollte auf dem Goobi-Server und auch in den verwendeten Workflows eine automatische Validierung z.B. der Images stattfinden, existiert das Verzeichnis validation
.
Innerhalb dieses Verzeichnisses wird pro Validierungsdurchführung jeweils ein Unterordner erzeugt, um auch ältere Validierungsergebnisse vorzuhalten. Die Benennung der erzeugten Unterordner erfolgt dabei stets so, dass der Ordnername sowohl Datum und Uhrzeit sowie den Typ der Validierung aufführen. Dies sieht z.B. wie folgt aus:
Findet eine Zusammenarbeit mit dem intranda TaskManager statt, so existiert innerhalb des Ordners ebenso das Verzeichnis taskmanager
. Binnen dieses Verzeichnisses speichert der TaskManager temporäre Daten für die Durchführung langlaufender Aufgaben. Außerdem werden an dieser Stelle je nach Konfiguration ebenfalls sämtliche Ticket- bzw. Templatedateien dauerhaft gespeichert und vorgehalten, die für die einzelnen Aufrufe des TaskManagers verwendet wurden. Der Inhalt dieses Verzeichnisses sieht folgendermaßen aus:
Auch abhängig von der individuellen Installation liegt pro Goobi-Vorgang gleichermaßen ein Ordner import
vor. Dieser Ordner wird von Import-Plugins dafür verwendet originale Quelldateien zum jeweiligen Vorgang zugehörig mitzuführen. Manuell eingespielte und importierte Katalogdatensatzdateien oder andere Ursprungsdateien können hier aufbewahrt und innerhalb von Scripten im Rahmen der Workflowverarbeitung verwendet werden. Der Inhalt des Ordners könnte z.B. folgendermaßen aussehen:
Zur Generierung von Laufzetteln als PDF-Dateien verwendet Goobi den Mechanismus der XSLT-Transformation. Hierbei werden aus bestehenden xml-Dateien auf der Basis von xslt-Dateien PDF-Dokumente generiert. Das Verzeichnis xslt
ist die zentrale Stelle zum Vorhalten dieser xslt-Dateien.
Innerhalb des Verzeichnisses scripts
können an zentraler Stelle verschiedene Scripte vorgehalten werden, die im Bereich des Workflows für die automatische Ausführung von Aufgaben verwendet werden sollen.
Da Goobi als Webapplikation in Betrieb genommen wird, verfügt es selbst über einen vorgegebenen Aufbau und befindet sich abhängig vom verwendeten Servlet Container an einem definierten Pfad im Dateisystem. In diesem Abschnitt soll jedoch darauf eingegangen werden, wie die Verzeichnisstrukturen aussehen sollten, innerhalb derer Goobi seine Daten sowie die unterschiedlichen Konfigurationsdateien verwaltet.
Der Basispfad für sämtliche Digitalisierungssoftware im Kontext von Goobi lautet:
Im Bereich dieses Basispfades bestehen im Allgemeinen folgende Verzeichnisse:
Das Verzeichnis logs
ist hierbei das zentrale Verzeichnis für Logdateien. Auch die Goobi-Log-Dateien werden bei korrekter Konfiguration an dieser Stelle gespeichert. Die anderen hier aufgeführten Verzeichnisse stehen jeweils für unterschiedliche Applikationen, wie sie häufig Verwendung finden (z.B. viewer
für Goobi viewer, itm
für intranda Task Manager und goobi
für Goobi.
Der Basispfad für Goobi lautet entsprechend:
Unterhalb dieses Basispfades findet sich üblicherweise die folgende Ordnerstruktur, die im Folgenden auch detailliert beschrieben wird:
Die Verarbeitung von Metadaten, das Mapping von PICA-Importen sowie das Erzeugen von METS-Dateien erfolgt innerhalb von Goobi mit der Klassenbibliothek UGH. Zur Abbildung der sehr variablen Konfigurierbarkeit verfügt UGH hierbei über einen Mechanismus sogenannter Regelsätze. Das Verzeichnis rulesets
ist dabei der zentrale Speicherort für diese Regelsätze und erlaubt, dass für unterschiedliche Projekte und Publikationstypen individuelle Konfigurationen vorgehalten werden können.
Da in Digitalisierungsprojekten im Allgemeinen mit sehr großen Datenmengen gearbeitet wird, muss zumeist externer Speicher an den Server angebunden werden. Dieses ist technisch unterschiedlich lösbar. Empfohlen wird, den externen Speicher grundsätzlich in den folgenden Ordner im Verzeichnisbaum einzuhängen:
Somit finden sich sämtliche Daten von Goobi an einem zentralen Ort.
Im Folgenden werden zwei Möglichkeiten für die Einbindung von externem Speicher schemenhaft aufgezeigt. Von einer Anbindung über CIFS sollte aufgrund schlechter Performance und fehlender Funktionalität grundsätzlich abgesehen werden. Auch sind über CIFS keine symbolischen Links oder Nur-Lese-Rechte abbildbar.
Um einen externen Speicher über einen NFS Share einzubinden, werden die folgenden Informationen benötigt:
• exportierender Server • exportiertes Verzeichnis
Anschließend kann der Speicher per NFS in den Verzeichnisbaum eingehängt werden. Hierfür bietet es sich an, einen Eintrag in die Datei /etc/fstab hinzuzufügen, die die Verbindung beim Systemstart automatisch herstellt. Ein beispielhafter Eintrag sieht wie folgt aus:
Eine weitere Alternative, um externen Speicher einzubinden, ist diesen als eigenständiges Device an die virtuelle Maschine anzuhängen.
Dieses können z.B. verschiedene iSCSI oder SAN LUNs sein. Sie werden später in der virtuellen Maschine zu einem Logischen Volume mittels LVM zusammengefasst. Das Ergebnis ist ein Speicher, der aus den verschiedenen Devices aggregiert wurde.
Je nach Installation wird Goobi an einem unterschiedlichen Pfad installiert. Auf einem Ubuntu-Linux ist der Basispfad für Web-Applikationen innerhalb eines Apache Tomcat Servlet Containers typischerweise:
Die Applikation Goobi befindet sich entsprechend im Dateisystem unter dem folgenden Pfad:
Goobi workflow erlaubt den Betrieb mit S3-kompatiblem Storage. Dabei ist zu beachten, dass weiterhin ein lokales Dateisystem benötigt wird, um die Metadaten abspeichern zu können. Dies bedeutet, dass die Dateien meta.xml
, meta_anchor.xml
sowie ihre Backups, die für den jeweiligen Vorgang vorhanden sind, auch weiterhin im Dateisystem gespeichert werden. Lediglich alle anderen Daten, wie beispielsweise Bilder und OCR-Ergebnisse, werden auf dem S3-Speicherbereich gelagert.
Um Goobi mit S3 als Storage betreiben zu können, müssen die beiden folgenden Einstellungen innerhalb der Konfigurationsdatei goobi_config.properties
gesetzt werden:
Goobi workflow nutzt intern das AWS Java SDK. Das heißt, die Zugangsdaten für den Zugriff auf das Speichersystem werden entweder aus $HOME/.aws
oder aus Umgebungsvariablen gelesen. Wenn statt AWS ein anderer S3-Provider zum Einsatz kommen soll, kann die Anbindung relativ granular konfiguriert werden. Dazu werden noch einige weitere Einstellungen innerhalb der gleichen Konfigurationsdateien benötigt:
Ein Einsatz von S3 als Speichersystem sollte grundsätzlich mit allen S3-kompatiblen APIs funktionieren. Während der Entwicklung der S3-Funktionalität kam für die Implementierung sowohl Amazon S3 als auch MinIO zum Einsatz.
Je nach individueller Installation von Goobi liegen innerhalb des Verzeichnisses plugins
verschiedene Plugins für die Durchführung von Importen oder die Aufrufe von Web-Api-Kommandos vor. Die kompilierten Plugins befinden sich je nach Aufgabe in einem der folgenden Verzeichnisse: