FR 2852124 A1 20040910 FR 0302553 A 20030303 PROCEDE LOGICIEL DE GENERATION DE DOCUMENTS Dans la description qui va suivre, plusieurs sigles et abréviations seront utilisés. On en trouvera ci-après les définitions. AFP Advanced Function Présentation. Un langage de description de pages pour imprimantes IBM. Cobol : un langage de programmation dédié aux applications de gestion, actuellement surtout utilisé sur gros systèmes (main-frame) . OpenOffice : nom d'une suite bureautique OpenSource, dont la particularité est d'utiliser XML comme format de stockage des documents produits. PDF : Portable Document Format. Un encodage de document préservant toutes ses qualités typographiques et esthétiques. Un document au format PDF peut être lu, visualisé, imprimé par un certain nombre de logiciels gratuits pour la plupart, dont le célèbre Acrobat Reader de la société Adobe. PS : Postscript. Un langage de description de pages imprimables utilisé par beaucoup d'imprimantes haut de gamme. RTF : Rich Text Format. Un format de mise en page d'un document qui peut être utilisé par beaucoup de logiciels de traitement de textes (MS/Word, OpenOffice, FrameMaker, etc. ) XML : extensible Markup Language. Un langage de balises formalisé par le W3C (www.w3c.org), aujourd'hui standard de représentation de l'information semi structurée. XML/OpenOffice : un langage XML particulier utilisé par OpenOffice pour sauvegarder les documents produits. XSL : extensible Stylesheet Language. Un standard W3C de langages de traitement associés à XML ; comporte deux volets : XSLT (XSL Transformations) et XSL-FO (XSL-Formatting Objects). XSLT : XSL-Transformations. Un langage de traitement d'un document XML permettant d'obtenir un autre document XML (voir XSL). XSL-FO : XSL-Formatting Objects. Un langage de description de pages imprimables et de spécification de leur contenu (voir XSL). L'invention concerne la génération de documents paginés de belle facture. Contexte de la génération de documents Une génération de document paginé est un processus par lequel on réalise la construction automatique et programmée d'un document à partir de données extraites d'une base de données et d'une maquette qui impose l'aspect visuel du document. Il peut y avoir a priori plusieurs niveaux d'exigences quant à la qualité du document obtenu : on peut se contenter d'une mise en page sommaire avec une qualité listing , ou bien vouloir une qualité se rapprochant du style de documents qu'on pouvait obtenir avec les premiers systèmes de traitements de texte, ou enfin rechercher une qualité bureautique, c'est-àdire une qualité permettant d'obtenir, avec du goût et des connaissances en typographie, un document de belle facture, comme s'il était sorti de l'atelier d'un professionnel de la composition. Généralement, les systèmes de production de documents les moins ambitieux en ce qui concerne l'aspect visuel et esthétique du résultat sont en fait des logiciels pilotant in fine une imprimante, ce qui veut dire qu' ils ne produisent que des documents papier, alors que les systèmes produisant des documents de qualité bureautique sont capables de créer des fichiers de divers formats, que l'on est libre ensuite d'imprimer si le papier est indispensable. Dans la suite de la description, on se place dans l'hypothèse où l'on cherche à obtenir un document de belle facture. Ceci étant, une génération de documents s'inscrit toujours dans un contexte faisant apparaître 3 pôles essentiels : - un pôle Base de données , généralement accompagnée d'une ou plusieurs applications informatiques permettant d'exploiter cette base dans un cadre n'étant pas nécessairement dédié à la fabrication de documents, mais plus généralement à la gestion du métier de l'entreprise ; - un pôle Maquette , dans lequel va s'inscrire le travail d'une personne possédant généralement des compétences en programmation et en bases de données, et dont le but est de dessiner les maquettes des documents à produire, tout en corrélant les données à faire figurer dans ces documents avec celles qu'il faut extraire de la base de données ; - un pôle Chaîne de production , qui est constitué de l'ensemble des programmes qui permettent l'obtention du document final en fonction de sa maquette et des données extraites de la base. Difficultés de mise en oeuvre d'une solution de génération de documents Les difficultés qui apparaissent lors de l'exploitation ou lors de la mise en place d'une telle solution de génération de documents sont de deux ordres : il y a des difficultés d'organisation, et des difficultés techniques. Difficultés d'organisation Elles sont dues au fait qu'il est extrêmement peu fréquent, dans la pratique, que la personne en charge de la réalisation des maquettes ait un pouvoir de décision en ce qui concerne l'allure du document à produire. La réalisation de la maquette est nécessairement du ressort d'une personne compétente en base de données, en tous cas suffisamment compétente pour être capable de définir les liens entre les données à faire figurer dans le document et la base de données, telle qu'elle existe dans toute sa technicité. Les décisions en matière de charte graphique, d'aspect général, de contenu commercial, sont au contraire prises par des personnes appartenant à des comités de direction, des services marketing ou des services commerciaux. Il y a donc ici une séparation nette entre maîtrise d'ouvrage et maîtrise d'oeuvre, et donc apparaissent potentiellement tous les problèmes classiques d'interface entre ces deux mondes. Même s'ils sont résolus par une organisation rigoureuse, il reste celui du délai s'écoulant entre le moment où la maîtrise d'ouvrage décide d'un changement de maquette, et celui où la maîtrise d'oeuvre le met en production : il peut parfois être ressenti comme incompatible avec la dynamique d'un service marketing. Difficultés techniques Elles sont évidemment nombreuses et peuvent en principe être résolues avec plus ou moins d'efforts, mais il y en a une particulièrement qui peut dans certains cas se révéler insoluble : c'est celui où l'on veut intégrer la génération des documents dans une application existante, alors que le logiciel que l'on utilise pour réaliser les maquettes et produire les documents ne prévoit pas la possibilité d'une telle connexion. Etat de l'art Les solutions que l'on trouve disponibles sur le marché sont à peu près toutes de l'un des deux types suivants : - soit on a une solution fonctionnant sur gros système ( main frame ), grâce à un logiciel propriétaire, relié aux applicatifs existants, et vendu par le fabriquant dudit gros système (IBM, par ex.) ; soit on a une solution fonctionnant de façon autonome sur PC vendue par un éditeur de logiciels. Il y a toutefois un type intermédiaire de solutions, solutions propriétaires elles aussi, vendues par des éditeurs de base de base de données (Oracle, par exemple). Ces solutions fonctionnent sur PC serveur ou sur serveurs propriétaires (AS400, par exemple) et fournissent en général des documents de qualité acceptable, mais d'une richesse typographique limitée. Les solutions propriétaires pour gros systèmes sont presque toujours des solutions qui intègrent l'imprimante dans la chaîne de fabrication, c'est-à-dire que les documents produits sont nécessairement des documents sur papier. Ils produisent généralement des documents de qualité typographique et de mise en page qui sont à peine du niveau atteint par les premiers logiciels de traitement de textes, il y a une vingtaine d'années. Ces solutions sont actuellement adaptées aux productions de masse, quelques millions de pages par mois, mais sont de plus en plus mal acceptées par les services marketing qui réclament aujourd'hui des documents de meilleure qualité typographique. Les solutions autonomes sur PC sont des solutions beaucoup plus évoluées en terme de qualité de mise en page. Elles utilisent un système de maquettage propriétaire qui permet de mettre le document en valeur : graphiques, histogrammes, camemberts,... et sont faites pour être connectées à des bases de données suivant des protocoles standard qui les rendent le plus souvent indépendantes des éditeurs de bases de données. Elles ont toutefois la réputation d'être assez complexes à installer et à maîtriser, du fait précisément de leur degré de généralité : produire des documents reflétant l'état partiel d'une base de données sans faire aucune hypothèse sur la structure de cette base ni sur celle des données à afficher exige de toute évidence une phase de paramétrage complexe pour parvenir à combler le fossé creusé, entre les données et le document final, par le peu d'hypothèses sur lesquelles le logiciel peut s'appuyer. Cette phase de paramétrage est à la charge de la personne qui construit les maquettes, qui doit donc maîtriser la complexité de logiciel et bien sûr connaître et utiliser le langage de requêtes associé à la maquette permettant d'extraire les bonnes données au bon moment. Ces solutions, suivant les éditeurs, peuvent être complètement déconnectées de toute application, ou peuvent être connectables à une application existante afin de s'intégrer au processus de traitement. On l'aura remarqué, les solutions actuellement disponibles sont caractérisées par le fait que la personne qui dessine les maquettes doit avoir un certain niveau de compétences en base de données, solutions autonomes sur PC, ou en programmation Cobol, AFP, ou autre, solutions sur grands systèmes ou sur serveur de type AS400. La solution selon l'invention est destinée à rendre possible la conception et la réalisation de maquettes pour une personne sans compétence particulière en bases de données ou en programmation. Elle est aussi explicitement conçue pour s'intégrer à une application existante exploitant les données métier de l'entreprise. L'invention L'invention concerne un procédé logiciel de génération de documents qui est destiné à permettre à un utilisateur de créer, facilement et sans compétences informatiques particulières, des documents finaux de haute qualité visuelle. Les documents finaux sont destinés à intégrer des données contenues dans une base de données. Le procédé comprend : - l'étape de générer, grâce à des premiers moyens de traitement informatique, un fichier-maquette se présentant notamment sous la forme d'un fichier au format XML et comprenant des caractéristiques telles que des textes fixes, des champs référençant des données, des tableaux, - l'étape de générer, à partir des données contenues dans la base de données, grâce à des seconds moyens de traitement informatique, un flux de données primaire, notamment un flux de données au format XML. Le flux de données primaire ayant un format standard et des caractéristiques indépendantes des caractéristiques du fichier-maquette. Le procédé comprend en outre : - l'étape de générer, à partir du flux de données primaire, grâce à des troisièmes moyens de traitement informatique, un flux de données secondaire, spécifiquement adapté aux caractéristiques du fichier-maquette. Les troisièmes moyens de traitement informatique se présentant notamment sous la forme d'un module logiciel de type XSLT. Le procédé comprend en outre : - l'étape de générer, grâce à des quatrièmes moyens de traitement informatique, les documents finaux en fusionnant le flux de données secondaire avec le fichier-maquette. Les documents finaux ainsi obtenus se présentant notamment sous la forme de fichiers au format XSL-FO ou XML/OpenOffice. Les documents finaux ainsi obtenus pouvant être ensuite convertis dans d'autres formats du type PDF ou RTF et imprimés grâce à des moyens d'impression. Architecture et principe La solution selon l'invention est basée essentiellement sur l'enchaînement des quatre points suivants : 1. il est a priori ardu et même probablement impossible de concevoir un logiciel, simple à maîtriser pour l'utilisateur, qui puisse générer des documents d'après une maquette et une base de données, sans rien connaître de la maquette ni des données au moment de la conception de ce logiciel ; 2. il par contre assez aisé de concevoir un tel logiciel dès lors que la maquette et le flux de données sont connus ; 3. il est possible, mais moins facile, connaissant la maquette, de concevoir un logiciel capable de générer automatiquement le logiciel mentionné au point 2. 4. il est également possible, connaissant la maquette et la forme que doivent revêtir les données, de concevoir un logiciel capable de générer automatiquement le flux de données mentionné au point 2. La solution proposée concerne donc la mise en #uvre des points 2, 3, et 4. La figure 1 montre l'architecture synthétique du générateur, et comment il s'intègre dans l'ensemble de la chaîne de production. Les points innovants, par rapport à l'état de l'art, résident dans l'application des points 3 et 4. Etapes de la mise en place et du lancement du logiciel Conception d'une maquette Voir figure 2. Cette étape consiste à utiliser un logiciel de traitement de textes pour établir le contenu de la maquette. N'importe quel traitement de textes du marché peut a priori convenir, pourvu qu'il sauvegarde le fichier résultat au format XML, et que ce format soit public. En l'occurrence, il n'existe qu'un seul logiciel aujourd'hui répondant à ce critère : il s'agit de OpenOffice, suite bureautique OpenSource (cf www.openoffice.org). Donc la conception de la maquette doit se faire sous OpenOffice, du moins tant qu'OpenOffice n'aura pas de concurrent équivalent. Une maquette n'est rien d'autre qu'un document contenant des textes fixes, des champs référençant des données, des tableaux, etc (voir figure 3). Ecriture d'un module producteur d'un flux de données primaire Ici, on intervient dans l'application d'extraction des données afin de lui adjoindre un ou plusieurs modules, écrits dans un langage de programmation quelconque, généralement Java, qui vont permettre d'obtenir un flux ayant une forme standard indépendante des maquettes conçues par ailleurs. Voir figure 4. Lancement du générateur L'exécution du générateur permet d'obtenir deux programmes écrits dans le langage XSLT : de flux et la transformation XSLT de génération du document final. Ce générateur est lui même écrit en XSLT. L'adaptateur de flux permet de transformer (adapter) le flux primaire en un flux secondaire conforme à ce que réclame le générateur de document, étant donnée la maquette à laquelle le document à produire est assujetti. Voir figure 6 et l'exemple de flux secondaire décrit ci-après en annexe. Lancement de la génération de document Le système est désormais prêt pour la production de document : on lance l'application d'extraction avec les paramètres adéquats, ce qui provoque la production d'un flux primaire, transformé en flux secondaire par l'adaptateur XSLT (voir figure 6), puis fusionné avec la maquette par la transformation XSLT de génération de document (voir figure 7). On aboutit suivant les options choisies : - à un document XSL-FO, qui doit ensuite être traduit en un document PDF, ou autre format intéressant comme par ex. RTF ou PS, par un processeur standard disponible en OpenSource sur Internet (xml.apache.org). Dans le cas où l'on choisit une génération en XSL-FO, il est nécessaire de concevoir des modules de traduction des structures présentes dans le document XML représentant la maquette. Ces modules sont appelés plugin dans la figure 1. - ou directement à un document XML/OpenOffice visualisable sous OpenOffice (voir figure 8) que l'on peut ensuite imprimer ou convertir en PDF pour l'envoyer par mail ou en faire toute autre chose que l'on juge pertinente. La figure 1 représente le schéma de principe de l'architecture du générateur de documents. La figure 2 représente l'obtention de la maquette. La figure 3 représente un exemple maquette. La figure 4 représente l'extraction des données et la production d'un flux XML primaire. La figure 5 représente le lancement du générateur. La figure 6 représente l'obtention du flux secondaire. La figure 7 représente la génération du document final. La figure 8 représente un exemple de document final généré. On décrit ci-après un exemple de flux primaire, un exemple de flux secondaire et un exemple de maquette codée en XML/OpenOffice. Exemple de flux primaire Exemple de flux primaire (extrait) 5789 date 19, 20 et 21 Novembre 2001 stat.unique session.A01 session.A02 session.C02 intervention.tutorie1.A01 intervention.conf.1278 intervention.conf.1245 intervention.conf.7841 intervention.tutoriel.A02 unique forKey unique Programnieurs 25 Managers 12 Architectes 4S Chefs de projet 70 C05 code C05 date 19/11/2001 h~deb 14hl5 h~fin 16h00 A01 code A01 date 19/11/2001 h~deb 9h30 h~fin 12h30 A02 code A02 date 19/11/2001 h~deb 9h30 h~f1n 12h30 tutorie1.A01 type tutoriel code A01 titre introduction à XML: concepts et syntaxe résumé XML est une technologie incontournable dans l'entreprise. On le retrouve dans des contextes aussi divers que les applications distribuées, la configuration de produits, les annuaires, l'édition de documents, la diffusion de contenus sur le web ou la Gestion de Connaissances. 1. XML, généralités : XML = extensible Markup Language, les espaces de nommage, grammaire XML, DTD/XML- schemas, modélisation. 2. Manipulation des documents XML : les parsers, le data binding, les langages de requêtes. 3. Les domaines d'application : - XML et leB2C, - XML et les services web, - XML et l'EAI, - XML et le 828. l'ntervenant.Marc.Lang1ois Marc.Lang1ois prenom Marc nom société Edifrance cv Ancien Administrateur de l'INSEE, Membre du Conseil d'Administration Edifrance, EDItorialiste de la lettre professionnelle vendrEDI, Claude chiaramonti est un spécialiste du contenu sémantique des échanges électroniques B to B etc. Exemple de fluxsecondaire Exemple de flux secondaire (extrait) 19. 20 et 21 Novembre 2001 un jour deux jours chefs de projet 10 Programmeurs 25 Managers 1 consultants 15 Architectes 40 lundi 19 Novembre 2001 09:00 12:45 A01 Introduction à XML: concepts et syntaxe Didier Girard, Improve A02 L'intégration d'applications d'entreprise (EAI) avec XML Ludovic Cinquin, OCTO Technology A03 Modélisation de données et Schémas XML Bruno Chatel, indépendant A04 Techniques de mise en oeuvre de XSL & XSLT (1ère partie) Eric van der vlist, Dyomedea AOS Introduction à ebXML Marc Langlois, Edifrance etc. Exemple de maquette codée enXML/OpenOffice Exemple de maquette codée en XML/Openoffice (extrait) Forum XML & Intégration ebusiness des xlink:href--"#./Obj0012EF75" xlinkaype--^simple" xlink:show="embed" xlink: actuate="onLoad"/>XML, et 1’ensemble des technologies et outils qui s’y attachent, est aujourd’hui le chaînon incontournable pour faciliter et accélérer 1’intégration d’applications, la pierre angulaire des projets de e-business et des plates-formes d’ échanges, la clé pour agréger, échanger et publier des contenus de diverses origines, quelque soit le canal utilisé. Le programme des conférences de cette quatrième édition du Forum XML & intégration e-business reflète cette actualité technique et les bilans tirés des projets concrets menés dans divers secteurs d’activité. Reflet de la richesse de cette actualité, la partie exposition du Forum XML & Intégration e-business regroupe, cette année, plus de 80 acteurs, fournissseurs de solutions, éditeurs de logiciels, prestataires de services. Les grands noms de 1’industrie côtoieront des sociétés dont ce sera la première apparition publique en France. Planning du Forum Le forum commencera par format="page" text:ref-narae="Nbre3oursTutoriels"/>de tutoriels, suivi de de conférences. aable aable-column table:style-riame="Tableau-planningTUtorielS.D"/> #ctabl e : tabl e-col umn tab1e:style-name="Tab1eau-planningTUtoriels.B"/> #ctabl e : tabl e-col umn tabl e:sty1e-name="Tab1eau-pl anningTutori e1s. B"/> tutorie!s du REVENDICATION 1. Procédé logiciel de génération de documents ; ledit procédé étant destiné à permettre à un utilisateur de créer, facilement et sans compétences informatiques particulières, des documents finaux de haute qualité visuelle ; lesdits documents finaux étant destinés à intégrer des données contenues dans une base de données ; ledit procédé comprenant : - l'étape de générer, grâce à des premiers moyens de traitement informatique, un fichier-maquette se présentant notamment sous la forme d'un fichier au format XML et comprenant des caractéristiques telles que des textes fixes, des champs référençant des données, des tableaux, - l'étape de générer, à partir desdites données contenues dans ladite base de données, grâce à des seconds moyens de traitement informatique, un flux de données primaire, notamment un flux de données au format XML ; ledit flux de données primaire ayant un format standard et des caractéristiques indépendantes desdites caractéristiques dudit fichier-maquette ; ledit procédé comprenant en outre : - l'étape de générer, à partir dudit flux de données primaire, grâce à des troisièmes moyens de traitement informatique, un flux de données secondaire, spécifiquement adapté auxdites caractéristiques dudit fichier-maquette ; lesdits troisièmes moyens de traitement informatique se présentant notamment sous la forme d'un module logiciel de type XSLT ; ledit procédé comprenant en outre : - l'étape de générer, grâce à des quatrièmes moyens de traitement informatique, lesdits documents finaux en fusionnant ledit flux de données secondaire avec ledit fichiermaquette ; lesdits documents finaux ainsi obtenus se présentant notamment sous la forme de fichiers au format XSL-FO ou XML/OpenOffice ; lesdits documents finaux ainsi obtenus pouvant être convertis dans d'autres formats du type PDF ou RTF et imprimés grâce à des moyens d'impression.