White Papers

Distributed approach of wordprocessors

Approche distribuée de l'outil traitement de texte

STRASSER Michel

Prérequis

Contexte, Cadre, l'existant

Un traitement de texte peut-être vu comme un compilateur qui convertie un document d'un format à un autre en appliquant un filtre (par exemple .sxw (Open Office) vers PostScript ), de plus on distingue généralement des familles de traitement de texte :

  1. Wysiwyg (What you see is what you what you get) dont l'objectif est de montrer à l'utilisateur ce qu'il obtiendra sur papier. Font partie de cette famille : Microsoft Word, Corel Word Perfect, Star Office, Open Office, ... La plupart d'entre eux utilisent la programmation par composants ce qui permet la création de document mixte, par exemple on peut insérer un document excel dans un document word.

    • Avantages (non exaustif)
      • Simple d'utilisation
      • Correction orthographique on the fly
      • Bonne intégration (Il suffit de cliquer sur un document word dans l'explorateur pour que celui-ci s'ouvre en lecture seule sans sortir de l'explorateur)
    • Inconvénients (non exaustif)
      • Très orientée sortie papier, pas multi sortie (à la fois papier / HTML / WML / ...)
      • L'utilisateur perd trop de temps à se demander comment il va présenter son texte puisqu'il a constamment le texte sous les yeux
      • Si l'utilisateur veut en sortie quelque chose de stylisé il doit fournir un grand effort.
      • Utilisation abusive de mémoire sur les gros documents.
  2. Wysiwyw (What you see is what you want). Il s'agit là d'orienter l'utilisateur à ne pas se soucier de la mise en forme mais de se concentrer sur le contenu. Cette une approche haut niveau, on ne parle pas de telle ou telle police ou de telle ou telle couleur mais de section, et de classe dont fait partie le document (lettre, article, livre). Citons dans cette catégorie :

    • Latex

      Un langage de macros

      • Avantages
        • Agé, robuste, documenté
        • Capacité à faire des choses très fines (On peut intégrer du code postscript, ce qui est équivalent à pouvoir intégrer de l'assembleur dans du code C)
        • Extensible
      • Inconvénients
        • Suppose la connaissance d'un langage donc élitiste, et même chez les élites, nécessité de se replonger dans la doc de temps en temps
        • Même s'il existe latex2html , un programme de conversion du format latex vers le HTML, celui ci est peu fourni en options ce qui nous permet de dire que latex est orienté sorti papier
        • Une distribution TexLive pour windows occupe plus de un giga octet de disque dur.
    • Lyx

      C'est un front end graphique pour latex.

      • Avantages
        • Légèrement plus simple d'utilisation que Latex seul
      • Inconvénients
        • Orienté papier
        • Interface graphique obsolète (utilisation de Motif)
        • Ne convient pas pour les documents courts
    • XML / XSLT / xsl:fo

      Un langage de balise / Une feuille de style / une sémantique

      • Avantages
        • Orientation objet encore plus marqué qu'avec latex. On crée ses propres balises
        • Standart
      • Inconvénients
        • Jeunesse de xsl:fo
        • Pauvreté des outils existants
        • Nécessite de connaître la syntaxe du langage cible (si utilisé sans xsl:fo)
    • SGML / docbook

      voir xml / xslt / xsl:fo

  3. les Wiki-s
    • Avantages
      • Permet l'édition des documents à distance à l'aide d'un simple navigateur web
      • Permet l'édition et la vue simultanée par plusieurs utilisateurs en même temps
      • Parfois gère des hiérarchies d'utilisateurs (autorisé à lire tel type de document, à en écrire tel type)
    • Inconvénients
      • Génération de sortie papier rarement programmée
      • Peu de fonctionnalités
      • Parfois fonctionnalités non utilisées et ralentissant le site (comme par exemple un forum)
Conclusions sur le contexte

A l'heure actuel, un traitement de texte idéal devrait au moins être :

Objectif visé

Nous avons des contraintes pour notre traitement de texte qui s'opposent. Nous voulons à la fois bénéficié d'une infinité de filtres et de composants tout en conservant l'espace disque. Ceci nous amène à envisager de distribuer les composants et les filtres de notre traitement de texte idéal.

D'autre part nous avons vu qu'il était du travail de bonobo de s'occuper de la gestion des composants, alors, bien que cela mérite quand même que nous en parlions, nous occulterons ce point pour nous intéresser à l'utilisation des filtres à distance.

Fonctionnalités souhaitées

Nous souhaitons :

Il s'agira d'écrire à la fois toute la partie cliente que la partie serveur. Pour la communication client - serveur, on utilisera CORBA.

Technologies employées

Le cadre est l'environnement GNOME. On utilisera donc le langage C. Si besoin est d'utiliser de la programmation objet, on utilisera les GObject-s. Les autres conventions sont celles couramment admises dans la création de programmes GNOME.

On dispose

et bien sûr de tout l'attirail GNOME