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
etpdf2txt
(remplacés partika2txt
) ; - suppression des répertoires de travail
REQUEST_DIRECTORY
etRENDERING_DIRECTORY
remplacés par une seul et même paramètreTE_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éfixete-task-
); - l'argument
cleantmpfiles
du script rc/initted
a été modifié pour supprimer les répertoires de travail des transformations (préfixete-task-
) ; - suppression du moteur
txt2txt
(la transformation étant à présent gérée par le moteurtika2txt
) ; - 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_*
dansetc/te.conf
: voir Configuration serveur Tika. - Supprimer les variables
REQUEST_DIRECTORY
etRENDERING_DIRECTORY
dansetc/te.conf
et renseigner la variableTE_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.