Chapitre 1 Introduction

1.1 Présentation

Le serveur de transformation Dynacase TEngine ou TE est un composant autonome d'une architecture Dynacase.

Il a pour rôle d'exécuter, sur demande de Dynacase Platform ou de ses applications, des travaux de transformation. Il pilote pour cela des moteurs de transformation ou Engine.

Chaque moteur traite un fichier en entrée dans un format donné, et produit en sortie un fichier résultat. Le traitement réalisé et les formats de fichiers font la spécificité du moteur.

Lors de l'installation du serveur TE, un ensemble de moteurs est livré en standard.

Le développeur peut ajouter ses propres moteurs.

Le serveur TE est constitué de quatres services distincts :

  • te-request-server : le serveur de communication gérant la communication avec ses clients ;
  • te-rendering-server : le serveur de transformation ayant pour rôle le lancement des travaux et la gestion des produits ;
  • te-ooo-server : le serveur LibreOffice.org (ou OpenOffice.org) ;
  • te-tika-server : le serveur Tika.

Ce manuel aborde le fonctionnement du TE selon trois axes :

  • d'un point de vue installation et mise à jour, thème abordé au chapitre Installation ;
  • l'exploitation et la supervision du TE sont traités au chapitre Exploitation ;
  • les mécanismes supportés permettant de développer des clients ou moteurs TE sont décrits au chapitre Fonctionnement.

1.2 Notes de version

Les paragraphes suivant détaillent pour chacune des versions les nouveautés et précisent si nécessaire les instructions de mise à jour.

1.2.1 Compatibilité

Dynacase Platform
version 3.2
Apache Tika Server
version 1.16
OpenOffice.org / LibreOffice.org
OpenOffice version 4.0 - 4.1 / LibreOffice version 4.0 - 5.0 - 5.1 - 5.2 - 5.3 - 5.4

1.2.2 Releases

1.2.2.1 Release 1.4.2

Cette version introduit le support du redémarrage automatique des services de TE : lorsqu'un des services s'arrête (ex. serveur OOo qui plante et qui s'arrête), il est alors automatiquement redémarré.

Lorsqu'un service s'arrête 5 fois consécutives avec un temps d'exécution <= 1 seconde, alors le service est considéré comme étant en échec immédiat et répétitif, et le service n'est plus redémarré automatiquement.

Le redémarrage des services donne lieu à l'émission d'un message sur syslog avec le nom du service concerné et le mot clé "(respawn)" :

Exemple :

te-ooo-server: (respawn) Command exited after 4288s with code '255'.
te-ooo-server: (respawn) Waiting 0 seconds...
te-ooo-server: (respawn) Respawning command.
te-ooo-server: (respawn) Executing '[...]'
te-ooo-server: (respawn) Command running with PID '9739'.

Le format des messages syslog émis lorsque TE_SERVER_DEBUG est activé, a été uniformisé pour suffixer ceux-ci avec le nom du service concerné :

  • te-request-server: [...] ;
  • te-rendering-server: [...] ;
  • te-ooo-server: [...] ;
  • te-tika-server: [...].

Le script rc-init ted a été modifié pour supporter l'interrogation unitaire du statut, et l'arrêt/redémarrage, d'un service spécifique en spécifiant le nom du service.

Exemple :

# /etc/init.d/ted restart te-ooo-server
Stopping (te-ooo-server) OOO server (LibreOffice 5.2)... 5549
 * Stopping ted service:  OK
 
 Starting (te-ooo-server) OOO server (LibreOffice 5.2)... 10135
  * Starting ted service:  OK
# /etc/init.d/ted status te-ooo-server
(te-ooo-server) OOO server (LibreOffice 5.2) running (10135)

Si aucun service n'est spécifié, alors l'opération est appliquée à tous les services comme précédemment.

1.2.2.2 Release 1.4.1

Cette version permet d'utiliser les versions 5.0 et 5.1 de LibreOffice.

Le paramètrage de LibreOffice/OpenOffice a été simplifiée.

1.2.2.3 Release 1.4.0

Point majeur de cette release, des interfaces permettant de réaliser les opérations de paramétrage de Platform et de surveillance de TE sont disponibles.

Elles sont installées dans le centre d'administration Dynacase Platform grâce aux modules Dynacase TEngine Configuration (disponible publiquement) ou Dynacase TEngine Monitor (disponible sous licence Anakeen).

Cette version introduit aussi le support de Tika en mode serveur afin d'accélérer les conversions texte et réduire la charge serveur.

  • utilisation de Tika en mode serveur ;
  • suppression des moteurs html2txt, ooo2txt et pdf2txt (remplacés par tika2txt) ;
  • suppression des répertoires de travail REQUEST_DIRECTORY et RENDERING_DIRECTORY remplacés par une seul et même paramètre TE_WORK_DIR ;
  • chaque transformation crée ses fichiers temporaires dans un répertoire temporaire de travail dédié créé dans le répertoire TE_WORK_DIR (préfixe te-task-);
  • l'argument cleantmpfiles du script rc/init ted a été modifié pour supprimer les répertoires de travail des transformations (préfixe te-task-) ;
  • suppression du moteur txt2txt (la transformation étant à présent gérée par le moteur tika2txt) ;
  • l'URL de callback d'une transformation est appelée à la fin de la transformation quelque soit sont "status" final ({K, D, I}) ;
1.2.2.3.1 Mise à jour depuis la version 1.3.4

Après avoir installé la nouvelle version de TE, les modifications suivantes sont à faire :

  • Stopper le serveur TE.
  • Installer tika-server-<version>.jar : voir Installation de tika-server.
  • Configurer les variables TE_TIKA_SERVER_* dans etc/te.conf : voir Configuration serveur Tika.
  • Supprimer les variables REQUEST_DIRECTORY et RENDERING_DIRECTORY dans etc/te.conf et renseigner la variable TE_WORK_DIR : voir Paramètres.
  • Supprimer toutes les transformations de la table task :
# PGSERVICE=${TE_PG_SERVICE} psql
te=# DELETE FROM task;
  • Supprimer le fichier $TE_HOME/lib/engines/te-xvfb-server.
  • Supprimer le fichier $TE_HOME/lib/engines/tika-app-<version>.jar.
  • Supprimer le fichier $TE_HOME/lib/engines/html2txt.
  • Supprimer le fichier $TE_HOME/lib/engines/ooo2txt.
  • Supprimer le fichier $TE_HOME/lib/engines/pdf2txt.
  • Supprimer le fichier $TE_HOME/lib/engines/txt2txt.
  • Démarrer le serveur TE.

Lors du redémarrage, le nouveau serveur Tika doit être lancé :

Starting OOO server... 16020
Starting Tika server... 16065
Starting te_request_server... 16104
Starting te_rendering_server... 16140
 * Starting ted service:  OK

Pour la mise à jour de la liste des moteurs :

  • Sauvegarder la définition de vos propres moteurs.
  • Supprimer le contenu de la table engine :
# PGSERVICE=${TE_PG_SERVICE} psql
te=# DELETE FROM engine;
  • Re-charger la nouvelle liste de moteurs :
# PGSERVICE=${TE_PG_SERVICE} psql
te=# \i $TE_HOME/lib/engines/engine_init.sql
  • Re-importer la définition de vos propres moteurs.
×