Memobase comme système
Memobase 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). 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.