4.2. Le matériel de construction de TinyCE
v2
Comme nous l'avons déjà
révélé, TinyCE v2 est construit à partir de deux
langages: Java et Haskell. La version de Java qui a été
utilisée pour cette construction est Java 7 (avec le JDK -
Java Development Kit - 1.7); et la version de GHC est la plateforme
dénommée HaskellPlatform-2014.2.0.0. Pour les
communications en réseau nous avons utilisé l'API RMI.
Les sauvegardes et les analyses des fichiers XML ont
été réalisées avec l'API DOM (Document Object
Model) et le framework DOM4J (Document Object Model for Java).
Avec DOM4J, nous avons utilisé un parseur de type SAX (Simple API
for XML) et la technologie XPath (pour manipuler les données
XML).
6. L'outil yacc/bison est un produit GNU (GNU's Not UNIX) qui
permet la construction d'un analyseurs syntaxiques à partir des
grammaires. Combiné à l'outil (f)lex (qui permet la construction
d'analyseurs lexicaux), il peut permettre la construction d'un réel
compilateur.
7. Xtext est un framework de développement des
langages, utilisé comme plug-in pour l'IDE eclipse et permettant de
créer des DSL (Domain-Specific Language).
4.3. Mise en oeuvre d'un workflow d'édition sous TinyCE v2
53
Mémoire - ZEKENG NDADJI Milliam Maxime
LIFA
Les éléments des workflows (grammaires, vues,
documents, acteurs...) ont été sauvegardé sous le format
JSON (JavaScript Object Notation). Nous avons utilisé
la bibliothèque open source Gson, développée par
Google, pour sérialiser nos données dans leur
représentation JSON et pour désérialiser ces
données à partir de leur représentation JSON.
Les données stockées, tout comme celles
échangées, ont été cryptées puis
décryptées grâce à l'API JCE (Java
Cryptography Extension).
L'interface graphique a été complètement
développée grâce à l'API Swing. Pour la
représentation graphique des documents (sous forme d'arbres) avec Swing,
nous avons utilisé la version Java de la bibliothèque
mxGraph. Cette version est dénommée
JGraphX8. Nous avons de ce fait, réussi le pari
d'utiliser de bons outils gratuits et open source pour la plupart. De bons
outils qui nous ont conduit à la création d'un logiciel
disponible pour Windows et pour Linux (ce sont les
plateformes sur lesquelles nous avons réalisé nos tests).
4.3. Mise en oeuvre d'un workow d'édition sous
TinyCE v2
Pour cette présentation, nous disposons de deux postes
(un poste client-serveur (poste 1) et un poste client (poste 2)) pouvant
communiquer via une connexion réseau. L'utilisa-tion de TinyCE v2 pour
la mise en oeuvre d'un workflow d'édition, peut être la
suivante:
Sur le poste 1 (en mode serveur)
1. Authentification et création d'un nouveau
workflow d'édition : pour créer un nouveau workflow, on peut
se servir du menu'Fichier/Nouveau/Workflow' ou du bouton
'Créer un nouveau workflow' (dont l'icône porte le
symbole'+' sur un fond circulaire de couleur orange) de la barre d'outils.
Pour la création du workflow, on précise:
2. Le nom du workflow : il permet de
générer un identifiant pour ledit workflow;
3. Le serveur de synchronisation : il s'agit de
l'adresse du poste qui sera chargé des (re)distributions et des
synchronisations;
4. La grammaire : on saisit les productions de la
grammaire conformément au modèle9 accepté par
TinyCE v2, puis on choisit l'axiome de cette grammaire;
5. Les vues : il s'agit d'entrer les noms des
différentes vues et les symboles appartenant à ces vues;
6. Les différents acteurs/co-auteurs : on
précise pour chaque co-auteur, ses paramètres d'authentification
(login et mot de passe), son site d'édition (facultatif), la vue qui lui
est associée...
7. Le document initial : un document initial est
généré à partir de la grammaire; mais l'utilisateur
a la possibilité de proposer un autre document initial, qui sera
validé par TinyCE v2.
Pour enregistrer le workflow ainsi crée, il suffit de
cliquer sur le bouton'Terminer'. Il est utile de noter qu'un workflow
peut être crée à partir d'un modèle (template)
existant.
8. La bibliothèque mxGraph était
précédemment dénommée JGraph et ne proposait que la
représentation des graphes en Java avec Swing. À partir de la
version 6, les éditeurs ont proposé des versions de ladite
bibliothèque pour plusieurs autres langages (JavaScript,...). Le nom
mxGraph a donc été adopté pour désigner l'ensemble
de ces versions et JGraphX a été adopté pour
désigner JGraph 6 (la version Java de mxGraph).
9. Ce modèle est donné dans l'utilitaire d'aide
de TinyCE v2.
4.4. Synthèse 54
Mémoire - ZEKENG NDADJI Milliam Maxime
LIFA
Sur les postes 1 et 2 (en mode client)
1. Authentification : le co-auteur concerné,
fournit ses paramètres d'authentification;
2. Recherche des workflows d'édition : pour
cela, il faut se rendre dans l'onglet "workflows distants", puis
entrer l'adresse du serveur de synchronisation dans la zone de texte
prévue à cet effet et enfin cliquer sur le bouton"Actualiser"
(dont l'icône est une loupe).
3. Connexion au workflow : le co-auteur doit se
connecter au workflow, pour obtenir, par projection suivant sa vue, une copie
locale de ce dernier (copie locale de la grammaire et du document). Pour se
connecter à un workflow distant, il suffit de sélectionner ledit
workflow, puis de cliquer sur le bouton "Se connecter au workflow";
4. Édition en local du document: les
workflows locaux sont listés dans l'onglet "Workflows locaux".
Pour éditer en local le document d'un tel workflow, il suffit de
sélectionner ce dernier puis de cliquer sur le bouton "Éditer
ce workflow". TinyCE v2 dispose d'un éditeur permettant de modifier
les documents et de les sauvegarder;
5. Synchroniser: après l'édition de sa
réplique partielle, le co-auteur peut déclencher un processus de
synchronisation en cliquant sur le bouton "Synchroniser". Les autres
participants à ce workflow seront alors notifiés et
invités à envoyer leurs répliques pour compléter le
processus de synchronisation. Une fois que toutes les répliques
parviennent au serveur de synchronisation, TinyCE v2 réalise la fusion
consensuelle et propose, en mode interactif, le choix du consensus lorsqu'il y
en a plusieurs. Le document résultant est redistribué pour la
suite de l'édition.
Les captures d'écran suivantes (page 55), illustrent la
mise en oeuvre du workflow d'édition présenté au chapitre
3 (sect. ??), sous TinyCE v2 :
|