Memobase Systembeschreibung
Memobase ist eine modular aufgebaute Lösung auf Grundlage einer Microservice-Architektur, die neben der Administration des Frontends bzw. der Webseite auch alle Backendprozesse wie das User-Management, die Zugangsregelung zu Objekten und den Import neuer Institutionen, Bestände und Objekte ermöglicht. Microservices sind voneinander entkoppelte Applikationen, welche in der Regel nur eine einzige Aufgabe erfüllen (beispielsweise die Transformation von Metadaten basierend auf einem Regelset). Einzelne Services können ähnlich wie Legosteine miteinander zu einer vollständigen Datenpipeline zusammengesetzt, anders kombiniert, aber auch für weitere Pipelines verwendet werden. Die Microservices kommunizieren nicht direkt miteinander, sondern über standardisierte Schnittstellen. Diese Schnittstellen stellt das Framework Apache Kafka zur Verfügung, welches gleichzeitig auch als transienter Datenspeicher fungiert. Dies macht es möglich, dass einzelne Microservices in einer Pipeline zeitlich voneinander entkoppelt arbeiten oder dass verschiedene Microservices dieselben in Kafka gespeicherten Daten für verschiedene Zwecke nachnutzen können.
Auf der Ebene der Infrastruktur wird der modulare Ansatz durch eine Aufteilung der einzelnen Komponenten umgesetzt. Dafür verwenden wir Docker, wobei die einzelnen Microservices in sog. Containern instantiiert werden. Das bedeutet, dass die Services voneinander abgekapselt werden und ähnlich wie in virtuellen Maschinen über ihre eigene Systemumgebung verfügen. Ein solcher Aufbau hat den Vorteil, dass je nach Systemlast eine oder mehrere Instanzen eines Services in einem Verbund betrieben werden können.
Bei ihrer Einspielung werden die Metadaten von Dokumenten in einen Rohdatenspeicher geladen, welcher sowohl als Changelog aller Importprozesse als auch als eine Absicherung dient, um nach einem Sys-temausfall schnell und zuverlässig sämtliche Daten wieder einspielen zu können. Metadaten und allenfalls zugehörige Mediendateien werden während des Importprozesses in das Repository Fedora eingespielt. Dieses wird ergänzt durch eine relationale Datenbank, in der alle Benutzer-, Institutions- und Bestandesmetadaten vorgehalten werden.
Als Datenprovider für das Web-Frontend kommt Elasticsearch zum Einsatz, eine etablierte Open-Source-Softwarelösung im Bereich von Suchmaschinentechnologien. Zur Überwachung des Systems wird zusätzlich Kibana eingesetzt, welches die Logdateien und Metriken der einzelnen Applikationen bezieht und aufbereitet.
Das Frontend inklusive administrativem Backend, die grafische Schnittstelle zum User also, wurde auf Basis von Drupal umgesetzt. Das Open-Source-CMS basiert auf PHP und MySQL und ist an die Bedürfnisse der Memobase angepasst worden.
Dieser Aufbau erlaubt ein hohes Mass an Automatisierung von Workflows, strebt eine hohe Performanz an und hat das Angebot einer Vielfalt an Schnittstellen als Vision vor Augen (OAI-PMH, IIF, SRU, SPARQL). Zudem basiert der vollständige Technologie-Stack auf Open-Source-Technologien und offenen Standards.
Sämtlichen öffentlichen Code entnehmen Sie unserem GitLab Repository.