Architecture applicative


La produit Flower repose sur une architecture classique en 3-Tiers :

  • Présentation
  • Services
  • Données


Flower s’appuie sur la visionneuse universelle de document ARender.

Couche de présentation

Flower

Flower est composée de deux applications web Java distinctes pour la couche de présentation :

  • Flower GUI : l’Interface Utilisateur principale développée en GWT et extensible via des personnalisations Javascript.
  • ARender HMI : l’Interface Utilisateur pour la visionneuse ARender, développée également en GWT.


Elles sont déployées dans un conteneur de servlet Apache Tomcat et sont accessibles via le protocole HTTP(S).

Kibana

Kibana est une application Web en NodeJS développée par Elastic. Elle s’interface avec le moteur de recherche Elasticsearch et permet de produire des tableaux de bord personnalisés basés sur les données dans Elasticsearch, pour réaliser du suivi opérationnel ou du reporting. Kibana communique avec Elasticsearch via les API HTTP RESTful de ce dernier.

Ces rapports sont intégrés directement par Flower GUI. Les échanges se font donc via le protocole HTTP(S).

Couche de services

Flower Core

Flower Core est le moteur de GED. C’est une application Web Java déployée dans un conteneur de servlet Tomcat. Elle permet de gérer de très grandes quantités de documents (ajout, suppression, mise à jour de documents, recherche, dossiers dynamiques etc.). Elle expose des Web Services SOAP qui sont consommés par les clients, que ce soit l’Interface Web native Flower GUI, des applications tierces type Kofax ou potentiellement des éléments du Système d’Informations. Le protocole de communication est HTTP(S).

Pour la persistance des données, Elasticsearch est utilisé pour la partie métadonnées et un espace de stockage pour la partie contenus de documents. La communication avec Elasticsearch est réalisée via l’ES Transport qui est un protocole propre à Elasticsearch. Le stockage des contenus des documents est réalisé en fonction des besoins et le protocole d’échange dépend de la technologie étudiée (cf. chapitre sur le stockage des contenus).

L’authentification des utilisateurs est déléguée un annuaire d’entreprise. Des requêtes LDAP sont effectuées avec des filtres sur les attributs pour rechercher des utilisateurs dans l’annuaire. Ces opérations sont réalisées via LDAP(S).

ARender Rendition Server

ARender Rendition, produit développé par Arondor, est le moteur de conversion des contenus pour que ces derniers soient utilisables par ARender HMI. C’est une application Java standalone qui s’exécute dans sa propre JVM. Le principe est de transformer les contenus (PDF, Word etc) en images qui sont envoyées vers ARender HMI.

Données

Cette partie décrit la couche de données seulement pour le connecteur Elasticsearch. Consulter la document Alfreso ou IBM FileNet P8 pour les autres connecteurs.

Elasticsearch

Le moteur d’indexation et de recherche Elasticsearch, application Java standalone, est utilisé pour l’indexation et la recherche des données. Il fournit un moteur de recherche distribué et multi-entité ainsi qu’un stockage NoSQL de type Document. Flower utilise ces fonctionnalités pour stocker les métadonnées du document dans la partie NoSQL et les capacités avancées de moteur de recherche pour les requêtes sur les documents, les tâches et les dossiers.

La communication se fait via l’Elasticsearch Transport Protocol qui repose sur un module spécifique basé sur TCP. Les Web Services RESTful proposés par Elasticsearch sont eux utilisés pour les requêtes de Kibana.

Stockage des contenus

Les contenus des documents (PDF, MS Word, etc.) gérés par Flower ne sont pas stockés dans Elasticsearch mais sur un espace de stockage dédié qui peut être :

  • un système de fichiers type NAS via CIFS/NFS
  • un système de fichiers type SAN via Fiber Channel
  • un service de stockage objet type AWS S3 via des WebServices RESTful

Exemple d'architecture simple
Exemple d'architecture simple