Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Inc drawio
zoom1
simple0
pageId366772244
custContentId573309028
lbox1
diagramDisplayNamesystem-architecture-small.drawio
hiResPreview0
baseUrlhttps://memobase.atlassian.net/wiki
diagramNameUntitled Diagram.drawio
imgPageId667123845
pCenter0
aspectC5RBs43oDa-KdzZeNtuy WIyWlLk6GJQsqaUBKTNV-1
width601
includedDiagram1
aspectHash9a5e8d725cd7b4eac5989bd1d46d34873b5a8c2a
linksauto
tbstyletop
height601

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.