Versions Compared

Key

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

...

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è una soluzione modulare basata su un'architettura a microservizi che, oltre all'amministrazione del frontend e del sito web, permette anche di gestire tutti i processi di backend come la gestione degli utenti, il controllo degli accessi agli oggetti e l'importazione di nuove istituzioni, collezioni e documenti. I microservizi sono applicazioni dissociate l'una dall'altra che di solito eseguono un singolo compito (per esempio, la trasformazione dei metadati sulla base di un insieme di regole). I singoli servizi possono essere assemblati insieme come dei mattoncini Lego per formare una pipeline di dati completa, combinati in modo diverso, oppure anche utilizzati per ulteriori pipeline. I microservizi non comunicano direttamente tra loro, ma tramite delle interfacce standardizzate. Queste interfacce sono fornite dal framework Apache Kafka, che agisce anche come banca dati transitoria. Questo rende possibile per i singoli microservizi in una pipeline di lavorare disassociati l'uno dall'altro in termini temporali, o per diversi microservizi di riutilizzare per scopi diversi gli stessi dati memorizzati in Kafka.

A livello dell’infrastruttura, l'approccio modulare è implementato dividendo i singoli componenti. A questo scopo usiamo Docker, per cui i singoli microservizi sono istanziati nei cosiddetti “contenitori” (container). Questo significa che i servizi sono tra loro isolati e hanno un proprio ambiente di sistema, simile a delle macchine virtuali. Tale struttura è vantaggiosa perché, a seconda del carico del sistema, è possibile gestire in una rete una o più istanze di un servizio.

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.

...