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.

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 est une solution modulaire basée sur une architecture de microservices qui, en plus de l'administration du frontend ou site web, permet également tous les processus backend tels que la gestion des utilisateurs, le contrôle d'accès aux objets et l'importation de nouvelles institutions, fonds et objets. Les microservices sont des applications découplées les unes des autres et qui effectuent généralement une seule tâche (par exemple, la transformation de métadonnées sur la base d'un ensemble de règles). Les services individuels peuvent être assemblés comme des briques Lego pour former un pipeline de données complet, combiné différemment, mais aussi utilisé pour d'autres pipelines. Les microservices ne communiquent pas directement entre eux, mais via des interfaces standardisées. Ces interfaces sont fournies par le cadre Apache Kafka, qui fait également office de magasin de données transitoire. Cela permet aux microservices individuels d'un pipeline de travailler de manière découplée dans le temps, ou aux différents microservices de réutiliser les mêmes données stockées dans Kafka à des fins différentes.

Au niveau de l'infrastructure, l'approche modulaire est mise en œuvre en partitionnant les différents composants. Pour cela, nous utilisons Docker, où les microservices individuels sont instanciés dans des conteneurs. Cela signifie que les services sont encapsulés les uns des autres et disposent de leur propre environnement système, à l'instar des machines virtuelles. Une telle structure présente l'avantage que, selon la charge du système, une ou plusieurs instances d'un service peuvent être exploitées dans une fédération.

Lors de leur importation, les métadonnées des documents sont chargées dans un magasin de données brutes, qui sert à la fois de journal des modifications de tous les processus d'importation et de sauvegarde, de sorte que toutes les données peuvent être réimportées rapidement et de manière fiable après une panne du système. Les métadonnées et tous les fichiers multimédias associés sont importés dans le référentiel Fedora au cours du processus d'importation. Elle est complétée par une base de données relationnelle dans laquelle sont stockées toutes les métadonnées des utilisateurs, des institutions et des inventaires.

Elasticsearch, une solution logicielle open source reconnue dans le domaine des technologies de moteurs de recherche, est utilisée comme fournisseur de données pour le frontal web. Pour surveiller le système, on utilise également Kibana, qui obtient et traite les fichiers journaux et les métriques des différentes applications.

Le front-end, y compris le back-end administratif, l'interface graphique avec l'utilisateur, a été mis en œuvre sur la base de Drupal. Le CMS open source est basé sur PHP et MySQL et a été adapté aux besoins de Memobase.

Cette structure permet un haut degré d'automatisation des flux de travail, vise une haute performance et offre une variété d'interfaces comme vision (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 En outre, l'ensemble de la pile technologique repose sur des technologies et des normes ouvertes.

Tout le code public peut être trouvé dans notre GitLab Bereich.