Memobase come sistema

Memobase è 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.

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 unsererm GitLab Bereich.