Architecture logicielle

La plateforme développée pour ORTOLANG a été complètement créée par les ingénieurs de l’équipe. L’application intègre de nombreux logiciels open source maintenus par une large communauté d’utilisateur :

  • PostgreSQL
  • WildFly
  • KeyCloak
  • Angular JS
  • ElasticSearch
  • Docker Swarm

Nous perfectionnons continuellement notre infrastructure logicielle en améliorant la fiabilité, en corrigeant les bogues et en ajoutant de nouvelles fonctionnalités (ex. : réécriture de l’indexation des métadonnées à l’aide d’ElasticSearch, package d’outils linguistiques pour traiter les données en ligne, etc.). Tout le code développé pour la plateforme est stocké dans des référentiels git. Nous utilisons Gitlab pour gérer tous nos projets. Le code est disponible sur notre serveur (https://git.ortolang.fr).

La plateforme ORTOLANG a été mise en œuvre grâce à une étroite collaboration entre l’équipe de développement ATILF et l’équipe de production INIST. Au cours de la phase de développement du projet (2013-2017), de nombreuses versions ont été faites (sur une base mensuelle). Depuis la phase d’exploitation, des mises à jour sont régulièrement effectuées soit pour ajouter de nouvelles fonctionnalités, pour remplacer ou mettre à jour un composant de l’application ou pour mettre à niveau le middleware (ex. : Ubuntu 16.04 vers 18.04, déploiement Docker, etc.).

Il existe trois environnements distincts :

  1. Développement
  2. Préproduction
  3. Production

L’installation et la qualification du logiciel sont effectuées à l’aide de différentes solutions de déploiement telles que Puppet, Ansible ou Docker.

L’architecture de Ortolang propose plusieurs services :

  • Le service d’authentification centralisée est basé sur le protocole OAuth2 et permet aussi bien aux personnes qu’aux applications métier Ortolang de s’authentifier de manière simple et efficace.
  • Le service de diffusion prend en charge l’hébergement et la publication des ressources Ortolang. Ce service propose différentes interfaces d’accès supportant des protocoles spécifiques (REST, OAI-PMH, SPARQL, SFTP). Ces différentes interfaces garantissent une utilisation adaptée aux besoins des utilisateurs (dépôt de gros fichiers, exploitation des méta données, recherches, …)
  • L’API d’intégration d’outils externes permet aux fournisseurs d’outils de proposer une version totalement en ligne de leurs produits. Cette version en ligne sera alors graphiquement intégrée au client HTML5 et permettra aux utilisateurs finaux d’utiliser cet outil sur les ressources du service de diffusion.
  • Le client HTML5 / Javascript exploite les capacités du service de diffusion et de l’API des outils en ligne afin de proposer une expérience utilisateur riche à partir d’un simple navigateur internet.