Software architecture

The platform developed for ORTOLANG was created from scratch by our engineers. Our software relies on many community-supported components:

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

We continually improve our software infrastructure by refactoring, improving reliability, fixing bugs and adding new functionalities (e.g.: rewriting the metadata indexing by using ElasticSearch, package linguistic tools to process data online, etc.). All the code developed for the platform is stored in git repositories. We use Gitlab to manage all our projects. The code is available on our server (

The ORTOLANG platform was implemented through a close collaboration between the ATILF development team and the INIST production team. During the development phase of the project (2013-2017), many releases were made (on a monthly basis). Since the exploitation phase, updates have been regularly carried out to either add new functionalities, to replace or update a component of the application or to upgrade the middleware (e.g. Ubuntu 16.04 to 18.04, Docker deployment, etc.).

There are three distinct environments:

  1. Development
  2. Pre-production
  3. Production

Software installation and qualification is performed using different deployment solutions such as Puppet, Ansible or Docker.

ORTOLANG’s architecture offers several services :

  • The centralized authentication service is based on the OAuth2 protocol and enables both individual users and ORTOLANG enterprise applications to log in simply and efficiently.
  • The dissemination service hosts and publishes ORTOLANG resources. This service offers different access interfaces supporting specific protocols (REST, OAI-PMH, SPARQL, SFTP). These interfaces are adapted to users’ needs (depositing large files, using metadata, running searches, etc.).
  • Tool providers can use the External Tool Integration API to provide a fully online version of their products. This online version will then be graphically integrated into the HTML5 client so that end users can use this tool on the distribution service’s resources.
  • The HTML5 / Javascript client exploits the capabilities of the delivery service and the online tools API to provide a rich user experience which can be accessed from a basic web browser.