Académique Documents
Professionnel Documents
Culture Documents
4.3. Les mta-donnes................................................................................................................12 4.4. L'architecture initiale.............................................................................................................12 4.5. Les limites de la ralisation..................................................................................................14 5. Choix techniques.......................................................................................................................15 5.1. La programmation de l'interface...........................................................................................15 5.2. Le stockage des documents : utilisation de XML.................................................................15 5.3. Gestion du systme et du contenu : une base de donnes.................................................16 5.4. Prsentation du contenu de l'entrept : intgration de Cocoon 2........................................18 6. La ralisation..............................................................................................................................20 6.1. La gestion des corpus..........................................................................................................20 6.2. La gestion des rsultats........................................................................................................20 6.3. L'importation de corpus sous diffrentes mesures...............................................................21 6.4. Le lancement d'un outil.........................................................................................................21 6.5. L'intgrateur de fichier texte 10..............................................................................................22 7. Bilan.............................................................................................................................................23 7.1. Une maquette fonctionnelle..................................................................................................23 7.2. Contraintes / discussions......................................................................................................23
7.2.a. L'intgration des corpus...............................................................................................................23 7.2.b. Spcifications pour l'intgration de nouveaux outils....................................................................24
7.3. Perspectives.........................................................................................................................24
7.3.a. Amlioration de l'intgration des corpus......................................................................................24 7.3.b. Intgration des web services.......................................................................................................25
8. Conclusion..................................................................................................................................26 9. Annexes......................................................................................................................................27 9.1. Bibliographie et sites Internet...............................................................................................28 9.2. Le format entrept : schma XML..................................................................................29 9.3. Les DTD utilises.................................................................................................................32 9.4. Le paramtrage dynamique de Cocoon 2............................................................................33 9.5. L'intgrateur textuel - Quelques rsultats.............................................................................34 9.6. Prsentation des Web-services............................................................................................36
Mars 2002
1 sur 49
1.Remerciements
Je tiens remercier les responsables de ce projet qui sont Nadine LUCAS et Bruno CREMILLEUX. Je remercie tout particulirement ce dernier qui tait mon interlocuteur privilgi, et qui a fait preuve d'une grande confiance mon gard en me laissant une grande autonomie dans mon travail et mes investigations. Je tiens galement remercier tous les membres du laboratoire qui ont bien voulu m'accorder du temps pour m'expliquer leur travail et leurs axes de recherche. Enfin, je remercie Christophe TURBOUT pour son aide lors de l'installation de Cocoon 2 sur mon ordinateur personnel.
Mars 2002
2 sur 49
2.Introduction
Dans le cadre du DESS RADI, le projet annuel occupe une part trs importante de la formation. Il permet de mettre en application bon nombre de nos connaissances thoriques tout en obligeant acqurir des comptences avec lesquelles nous ne sommes pas forcement familiarises. Au del de l'application des comptences, le projet demande un esprit critique, une prise de recul pour bien analyser le sujet et un travail d'valuation notamment des choix effectus dans la conception et la ralisation. Le sujet que j'ai choisi a t propos par Bruno CREMILLEUX et co-encadr par Nadine LUCAS. Il se nomme Entrept de donnes textuelles et se rvle tre un sujet trs ouvert. En effet, contrairement aux projets que j'avais pus avoir traiter jusqu' prsent, l'objet et les objectifs du projet taient loin d'tre figs. Le projet tait large dans le sujet proprement dit mais aussi sur les choix matriels et techniques mettre en oeuvre. Aussi, au fil de l'tude du sujet, nous nous sommes rendus compte de l'tendue du projet et du fait que nous ne pourrions pas traiter le problme dans son intgralit. Le projet m'a demand un bon esprit de synthse tant donn le nombre d'informations que j'ai pu collect. De plus, il a fallu que je canalise mes ides ainsi que mes axes de dveloppement afin de ne pas me perdre dans une conception trop vaste. En outre, les encadrants du projet m'ont beaucoup aid dans cette tche, ceci tant facilit pour eux du fait qu'ils aient plus de recul que moi par rapport au projet. Dans la ralisation, le projet demandait d'agrger de nombreux concepts et technologies. Dans cette phase, l'intervention de Bruno et Nadine s'est moins fait sentir du fait qu'ils n'taient pas familiariss avec les techniques que je proposais. Toutefois, cela m'a oblig aller la rencontre de personnes travaillant avec les outils que je voulais mettre contribution. En outre, il faut noter que les questions concernant mes choix et le fait que je sois oblig d'expliquer les mcanismes que j'utilisais m'a oblig faire un important travail de synthse lors des entretiens concernant l'avancement du projet. De plus, les rflexions souleves par mes explications m'ont parfois fait changer de direction ou ont mitig mes choix. L'objet du projet tait de crer un rel systme qui puisse s'intgrer au sein du laboratoire de recherche. Pour ne tracer que les grandes lignes du sujet, le but est de crer un entrept qui permette de grer le stockage et un certain nombre de prtraitements des corpus de texte utiliss dans le cadre des recherches. Le systme devra offrir un accs ces derniers sous une forme qui permette de faciliter le travail des personnes qui veulent les exploiter. Je propose maintenant de dcrire le contexte et de prciser les grands objectifs du projet avant de dcrire le travail de conception et la maquette ralise.
Mars 2002
3 sur 49
3.Prsentation du projet
3.1.Contexte et objectifs
Dans le cadre du travail de recherche en fouille de textes, les chercheurs du GREYC utilisent des corpus de textes. Ces vastes documents textuels doivent tre stocks, tout en restant la disposition des chercheurs. Ces derniers doivent faire subir des prtraitements aux corpus afin de les rendre exploitables par leurs outils de fouille de textes. L'objectif principal du projet est donc de concevoir un espace fdrateur du travail ralis au sein du laboratoire et notamment dans l'quipe DoDoLa1 . En effet, nous voulons concevoir un entrept de donnes textuelles qui permette de stocker les corpus utiliss par les diffrents chercheurs sous une forme homogne. Cette forme homogne, dfinir, est en relation directe avec les traitements appliqus sur les documents. Le deuxime objectif est de pouvoir stocker et utiliser les rsultats des outils de fouille de texte pour enrichir le contenu de l'entrept. Ce deuxime point est en relation avec le premier puisque la publication, par un chercheur, de ses rsultats permettra un change avec les autres utilisateurs de l'entrept et permettra une rflexion collective. Les pr-traitements, qui sont effectus, tiennent aussi bien de l'informatique que du traitement de la langue. Ceci tant, il se trouve que ces traitements sont souvent trs proches d'un utilisateur l'autre. Ils cherchent par exemple permettre de pouvoir dissocier le texte selon diffrentes mesures : paragraphe, phrase... En outre, pour le moment, chaque chercheur, chaque doctorant ou chaque tudiant en projet ou en stage de recherche r-implmente ses propres moulinettes pour mettre le texte dans un format en accord avec ses propres outils. Le but est donc bien de mettre en place une certaine standardisation dans les structures de donnes d'entre et de sortie des outils afin d'viter de toujours recrer des moulinettes qui font le mme travail. En outre, la standardisation facilitera l'change de donnes et de rsultats entre les diffrents membres du laboratoire. Pour faciliter cet change, une des contraintes du projet est de donner accs au systme via une interface web. Il semble que baser l'accs l'entrept sur un navigateur Internet lui confre une facilit d'accs et une capacit de dploiement plus importante que s'il s'agissait d'une interface ddie. En effet, de nos jours, la quasi totalit du parc informatique possde un navigateur web.
Architecture gnrale d'un entrept Il y a trois fonctions essentielles dans un entrept de donnes. Tout d'abord, il faut collecter ces donnes partir de sources existantes qui peuvent tre trs htrognes (partie intgrateur). La deuxime fonction est une gestion du contenu (base de donnes entrept). En effet, un entrept peut avoir un volume d'information qui crot trs rapidement. Aussi, il faut tre capable de grer la problmatique du stockage et du maintien de la cohrence des donnes. Enfin, un entrept doit offrir des possibilits d'analyse de son contenu (partie analyseur). Dans notre problmatique, il s'agit de pouvoir intgrer les outils de text-mining au sein du systme ou tout au moins leurs rsultats et ainsi proposer un systme fdrateur du travail ralis au laboratoire. Les trois fonctions cites prcdemment sous-entendent un certain nombre de choses. Tout d'abord, un systme de type entrept doit vraiment rendre accessible l'information et sous une forme adapte l'utilisateur. C'est la problmatique de prsentation de l'information. L'entrept doit rendre cohrent l'information et c'est l une des difficults de la cration de ce genre de systme. En effet, il faut dfinir une structure homogne pour le contenu. Toutefois, si l'on veut crer un outil viable, il faut que ce format soit assez souple et adaptable. L'entrept doit absolument pouvoir voluer dans le temps et pouvoir s'adapter de nouveaux types d'informations ou de nouveaux usages. Dans notre cas, il faut prendre en compte les axes de recherche mais aussi faire attention ne pas crer un format entrept trop rigide sous peine de crer un outil inutile. Enfin, un entrept de donnes peut devenir un systme cl dans une entreprise ou dans toute autre organisation. En outre, il peut contenir des informations de premier ordre que l'on peut mme qualifier de confidentielle. Aussi, il faut prendre en compte qu'il y a une problmatique de scurit mettre en oeuvre au sein de ce systme. Par exemple, dans le cadre de l'universit, l'utilisation et la publication de certains corpus sont soumises des droits. Le schma suivant illustre la problmatique du projet et montre les concepts d'entrept de donnes appliqus sur notre problme.
Mars 2002
5 sur 49
Le cadre centrale en bleu reprsente le trou combler entre la rcupration des corpus et leur exploitation. Cette partie correspondra donc la base de donnes entrept avec la mise en place d'une reprsentation homogne des corpus. Le cadre marron correspond la rcupration des corpus. Il s'agira ici d'implanter des intgrateurs permettant d'alimenter le contenu de l'entrept avec des documents de type diffrents. Le cadre rose illustre la partie analyse de donnes. Il faut bien voir que cette partie ne fera pas forcement partie intgrante de l'entrept. Si les outils sont intgrs au sein du systme, cela sera le cas. Par contre, si l'on met en place seulement un systme d'envoi de rsultats, une partie des traitements se feront en dehors de l'entrept. On fera certainement le choix d'une solution hybride. Enfin, le cadre vert illustre le besoin d'interface et de prsentation des donnes de l'entrept. En outre, on se propose de pouvoir visualiser les corpus et tout le contenu de l'entrept. On voudrait aussi pouvoir tlcharger les corpus ainsi qu'avoir accs une forme imprimable de ces derniers.
Mars 2002
6 sur 49
4.Conception
4.1.Dfinition d'un format homogne 4.1.a.Dialogue avec les membres du laboratoire
Les rencontres avec une partie des membres du laboratoire se sont rvles tre un aspect trs intressant du projet. En effet, le dialogue avec les chercheurs et les thsards m'a permis de voir le travail effectu au sein de l'quipe et les axes de recherche. En outre, cela a renforc mon intrt pour les domaines que sont le text-mining et l'informatique linguistique. De ces diffrents entretiens, j'ai pu lister un certain nombre de besoins exprims par mes interlocuteurs concernant les corpus qu'ils utilisent. Il faut savoir que les diffrentes personnes qui m'ont reu travaillent sur des pistes de recherches diffrentes. Ces pistes sont par exemple la recherche de descripteurs pour caractriser des fautes d'anglais dans des articles scientifiques, ou la recherche de squences frquentes dans un texte. J'ai aussi eu l'occasion d'changer quelques mots avec un thsard travaillant sur la recherche de marques spatiales et temporelles dans les textes. On sent bien que les orientations sont assez diffrentes d'une personne l'autre. Cependant, ce qui fdre ces diffrents travaux, c'est que l'ensemble du groupe travaille sur des textes. Aussi, les besoins exprims par chacun sont assez proches. Nous avons essentiellement travaill sur un de ces besoins : les mesures de texte. On peut dfinir les mesures de texte comme des niveaux dans le document textuel. Chaque niveau correspond en fait une faon de segmenter le texte. On peut citer les mesures suivantes dans l'ordre de leur imbrication respective : la partie, la section, le paragraphe, la phrase, le virgulot2 . La liste n'est pas exhaustive puisque j'ai eu un change, avec Nadine LUCAS, concernant le double-point et le point-virgule3 qui sont des signes de ponctuation qui peuvent eux-mme dfinir de nouvelles mesures. On pourrait galement parler de tous les caractres typographiques du type tiret ou puce qui donnent une signification particulire au texte prcd par ces marques. Exemple :
[Au dbut des annes 1990, plus de quatre enfants sur dix sont d'origine ouvrire - en entendant par l le fait d'tre d'une famille dont le chef de mnage est ouvrier]. [Pourtant les ouvriers ne sont que le tiers de la population active; mais leurs familles sont plus nombreuses que celles des autres catgories sociales]. [Un enfant sur vingt est enfant d'agriculteur], [un sur douze d'artisan ou de commerant], [un sur neuf de cadre suprieur ou de membre des professions librales], [un sur six de cadre moyen], [un sur huit d'employ].
On a 2 phrases et 4 virgulots sachant que l'ensemble des virgulots forme une phrase. De mme, l'ensemble de l'exemple forme un paragraphe. Les chercheurs s'intressent ces mesures de texte car les descripteurs ou les
2 Cette mesure reprsente le texte contenu entre un point et une virgule ou entre deux virgules. 3 Cette mesure pourrait se nommer le point-virgulot par exemple. Mars 2002 7 sur 49
marques spatiales et temporelles qu'ils essaient d'extraire n'ont pas la mme signification ou le mme impact selon qu'ils sont trouvs dans telle ou telle mesure. Aussi, l'entrept serait une rponse leur besoin s'il permettait d'occulter le problme de l'extraction des mesures de texte. Ainsi, les chercheurs pourraient se concentrer sur l'amlioration de leur recherche de descripteurs, sans avoir besoin de reprogrammer un script qui leur donne les parties de texte souhaites pour leurs travaux. Je vais illustrer cette problmatique par un exemple. Imaginons que je m'intresse la ngation en anglais et au not en particulier. Je veux rechercher si le not est prsent dans les phrases puis dans les virgulots d'un texte. L'entrept, pour offrir une relle plus-value dans le travail du chercheur, devrait fonctionner de la manire suivante. Je choisis mon texte puis je demande que le systme me fournisse toutes les phrases du texte : par exemple sous la forme d'un fichier texte avec une phrase par ligne. Ds lors que j'ai ce fichier, il serait alors trs facile de dire dans quelle phrase est prsent le descripteur recherch. Voici un exemple de ce que l'on pourrait obtenir :
Au dbut des annes 1990, plus de quatre enfants sur dix sont d'origine ouvrire - en entendant par l le fait d'tre d'une famille dont le chef de mnage est ouvrier \n Pourtant les ouvriers ne sont que le tiers de la population active ; mais leurs familles sont plus nombreuses que celles des autres catgories sociales \n Un enfant sur vingt est enfant d'agriculteur, un sur douze d'artisan ou de commerant, un sur neuf de cadre suprieur ou de membre des professions librales, un sur six de cadre moyen, un sur huit d'employ \n
Si l'on reprend l'exemple prcdent le systme pourrait, si on lui demandait d'exporter le corpus sous la mesure phrase, fournir un fichier texte de la forme ci-dessus (le \n correspondant au caractre de saut de ligne). Le fait de faciliter l'obtention des diffrentes mesures d'un corpus est donc une des contraintes fortes dans le projet. C'est d'ailleurs la principale. Toutefois, un certain nombre d'autres points sont prendre en compte. Il m'a t demand de penser des mcanismes permettant de retrouver facilement un document contenu dans l'entrept (par auteur ou par des mots cls).
Mars 2002
8 sur 49
Ensuite, il prend en compte les diffrentes mesures dont nous avons parl prcdemment : la partie, la section, le paragraphe, la phrase, le double point , le point-virgulot , et le virgulot. Chacun de ces lments possde 1 attribut id qui est un entier et qui permet d'identifier de manire unique une mesure. On peut faire remarquer que la qualification des mesures par les attributs est ici minime. On se limite une cl . Toutefois, dans une volution de l'entrept, on pourrait penser ajouter un attribut qui permette de connatre la langue de chaque mesure et ceci pour faciliter les traitements multi-lingues Ce n'est qu'une piste d'volution parmi beaucoup d'autres. Le diagramme de classe UML suivant illustre le format entrept dfini :
On remarque la prsence d'un lment nomm inconnu : il s'expliquera lors de la prsentation du segmenteur de texte mais permet en fait de baliser des zones de texte que l'on n'arrive pas faire correspondre avec une mesure. Comme je l'ai dj mentionn, le format l'intrieur de l'entrept peut voluer. Aussi, celui que je propose est loin d'tre dfinitif. Je n'ai pas rencontr toutes les personnes qui pourraient avoir intrt utiliser le systme, et ces dernires pourraient avoir besoin d'autres informations ou marques l'intrieur des corpus.
Mars 2002
9 sur 49
4.2.a.L'utilisateur et le chercheur
L'utilisateur de l'entrept a seulement une capacit de consultation. Il devra donc pourvoir consulter le contenu de l'entrept. La consultation peut se dfinir tout d'abord par un affichage des documents sachant qu'un document peut tre un corpus original ou un corpus associ des rsultats. Les rsultats seront donc issus d'outils de text-mining, et seront sauvegards dans l'entrept. D'autre part, la consultation peut tre tendue par ce qu'on a appel Exporter les documents . Il s'agit en fait de donner la possibilit l'utilisateur de pouvoir rapatrier sa consultation et qu'il puisse ainsi travailler hors ligne. Le rapatriement devra pouvoir se matrialiser sous forme lectronique (tlchargement de fichier) ou sous forme d'une impression papier. Le chercheur hrite de l'utilisateur. Il possde un niveau d'utilisation suprieur puisqu'il a la possibilit de faire voluer le contenu de l'entrept. Pour cela, il doit pouvoir dposer des documents dans l'entrept et utiliser les outils ventuels qui y sont connects. Le dpt au sein du systme inclut un certain nombre de cas puisqu'il faut enregistrer les mta-donnes associes au document, re-formater le document pour qu'il s'intgre la reprsentation homogne de l'entrept et enfin sauvegarder le document sous sa forme originale. Les mta-donnes4 sont indispensables puisque d'une part elles permettent de qualifier le document mais en plus elles sont utiles pour la gestion de l'entrept : on pourra par exemple prciser l'auteur, le sujet d'un corpus et quelques mots cls, mais aussi la personne qui a insr le document dans l'entrept et la date d'insertion. Enfin, nous voulons pouvoir conserver le document sous sa forme originale. Ceci
4 Le dtail des mta-donnes est disponible en partie 4.3 Mars 2002 10 sur 49
s'explique par le fait que d'une part, on veut donner la possibilit un utilisateur de rcuprer le corpus tel qu'il tait avant son insertion dans l'entrept. D'autre part, certains outils de text-mining ne peuvent s'appliquer que sur le format original. En effet, ds l'insertion d'un document dans le systme et notamment de sa mise au format homogne, on peut perdre une partie de l'information telle que la mise en forme. On fait ce choix car la majorit des outils travaillent sur le contenu textuel et les mesures de texte. Un cas d'utilisation dfinit le fait que le chercheur doit pouvoir obtenir le corpus de telle manire qu'il puisse facilement travailler sur les diffrentes mesures5. Le but est donc de pouvoir obtenir un fichier (de type texte ou XML, ou le fichier original) afin de pouvoir travailler sur ce dernier hors ligne. Ceci permettra de pouvoir travailler sur les corpus avec des outils non connects l'entrept. En outre, on pourra transmettre les rsultats de ces traitements toujours dans la problmatique d'enrichir le contenu du systme. En effet, nous voulons donner la possibilit aux utilisateurs de l'entrept, s'ils ont le niveau d'utilisation requis, de pouvoir transmettre leurs rsultats. Ceci pourra permettre d'associer des rsultats, qui ont t produits hors ligne, aux corpus correspondants.
4.2.b.L'administrateur
Nous avons dj dfini deux acteurs qui montrent des diffrences dans les possibilits d'utilisation du systme. Aussi, pour pouvoir grer et maintenir cet entrept de donnes, il est indispensable de prendre en compte, dans le travail de conception, un administrateur.
Ce troisime acteur a tout d'abord pour rle de grer les utilisateurs de l'entrept. Ce cas d'utilisation est l'image du rle d'un administrateur systme dans le cadre d'un
5 Se rfrer la partie Dialogue avec les membres du laboratoire Mars 2002 11 sur 49
rseau informatique. Il doit pouvoir ajouter et supprimer des utilisateurs mais aussi leur dfinir un niveau d'utilisation : par exemple, un droit de consultation pour le simple utilisateur, et un droit un peu plus volu pour le chercheur (consultation, possibilit d'envoyer de nouveaux corpus et d'utiliser des outils). Le second rle de l'administrateur est de grer la connexion des outils de text-mining que l'on veut connecter au systme. L'administrateur doit pouvoir ajouter et supprimer des outils. Notre objectif est de faire que les rsultats des outils puissent enrichir le contenu documentaire du systme. Il faut noter que pour qu'un outil puisse tre intgr au systme, il faut qu'il soit dvelopp en fonction des spcifications du systme. Une seconde solution consiste ce que le concepteur de l'outil dveloppe des interfaces pour qu'il puisse se connecter l'entrept.
4.3.Les mta-donnes
La dfinition des mta-donnes est mon avis une tche importante dans la conception d'un entrept de donnes. Ce sont elles qui vont permettre de structurer le contenu de l'entrept et permettre la recherche d'informations. Elles font partie intgrante des fondations de l'entrept. Le terme mme de mta-donnes est une notion assez vague puisqu'elles peuvent correspondre des informations multiples. Aussi, il est important de rapidement les dfinir afin de ne pas se retrouver avec une liste interminable qui deviendrait sans intrt. Les mta-donnes que nous avons dfinies sont assez simples. Il est mon avis indniable que la liste pourrait tre complte6. Toutefois, nous nous sommes limits des informations qui permettront une navigation et une recherche au sein du contenu de l'entrept. Aussi nous avons dcid de grer les informations suivantes. On a tout d'abord dfini des mta donnes qui sont propres chaque corpus. Nous prenons en compte les auteurs, des mots cls et une description, ceci afin de permettre de savoir quoi correspond chaque corpus et afin de permettre des recherches en fonction de celles-ci. Il est important de faire remarquer que ces mta-donnes vont tre compltes par d'autres qui seront beaucoup plus lies au fonctionnement proprement dit de l'entrept. On peut dj penser que l'on grera les dates d'insertion des corpus dans le systme et leur localisation dans le systme de fichier (le path ).
4.4.L'architecture initiale
Le diagramme de dploiement suivant reprsente l'architecture initiale dfinie. Nous verrons par la suite que son implantation telle quelle serait trop complexe. Aussi, le fonctionnement du systme a d tre adapt.
6 Une dfinition exhaustive des mta-donnes ainsi que leur gestion pourrait tre un projet part entire vu l'tendue du problme Mars 2002 12 sur 49
Pour ce qui est de l'entrept en lui-mme, on y retrouve diffrents composants. On a tout d'abord un composant intgrateur. Il s'agit en fait d'un module logiciel qui va permettre d'adapter les documents, que l'on souhaite ajouter au systme, au format homogne de l'entrept. Je peux dj mentionner que nous avons opt pour un formalisme XML au sein de l'entrept. A noter, que l'on pourrait parler de plusieurs intgrateurs puisque le traitement est diffrent selon que l'on expdie un document au format texte ou au format XML. Ensuite, on voit apparatre l'analyseur qui correspond en fait aux outils de text-mining directement connect l'entrept. Le fait d'intgrer ces outils, au sein de l'entrept, tait une hypothse de dpart. Cependant, le mcanisme implant dans la ralisation est un peu diffrent. En effet, les outils tant trs disparates notamment en ce qui concerne les langages utiliss la cration des interfaces pour les ajouter au systme peut se rvler complexe, d'autant que certains peuvent avoir des temps de traitement assez longs. Aussi, la piste concernant les outils n'a pas t approfondie et l'on a prfr grer un mcanisme qui permet l'envoi de rsultats de ces outils. Au sein de l'entrept, on retrouve une base de donnes. Celle-ci est mon avis un des points cls du projet puisque c'est elle qui va permettre de grer toutes les informations permettant le fonctionnement du systme. Elle va contenir une partie des mta-donnes propres chaque corpus mais surtout fournir toutes les informations permettant d'avoir une interface WEB qui puisse s'adapter au contenu de l'entrept. L'interface WEB est matrialise par l'entit site WEB sur le schma. Ce composant sera le point d'accs pour l'utilisation de l'entrept de donnes textuelles. En outre, le site WEB associ la base de donnes permettra d'offrir une interface dynamique. C'est cette interface dynamique qui permettra de donner accs au contenu du systme et de mettre en relation ce contenu avec les diffrentes fonctionnalits disponibles.
Mars 2002 13 sur 49
Enfin, on retrouve sur le diagramme la machine cliente. Celle-ci contient le navigateur WEB, lment qui faisait partie du cahier des charges du projet. Le navigateur sera le mode d'accs l'entrept pour tout utilisateur, ce qui peut confrer une facilit de dploiement du systme.
Mars 2002
14 sur 49
5.Choix techniques
5.1.La programmation de l'interface
Un des objectifs initials tait d'offrir un accs l'entrept via une interface web. Aussi, je pense que 2 alternatives s'offraient nous pour la programmation de l'interface. On pouvait axer le dveloppement ou sur php ou sur une technologie java de type servlets et jsp sur la base d'un serveur tomcat. Mon choix s'est port vers php. Il n'est pas cacher que j'ai t influenc par mon exprience dans l'utilisation de ce langage bien que j'ai dj utilis java dans le pass. Toutefois, d'autres points ont motiv mon choix. De mon point de vue, la maquette raliser, devait faire appel des techniques simples. La complexit du travail rsidait dans le fait qu'il y avait beaucoup de petits modules dvelopper et faire collaborer. Aussi, je pense que php est un trs bon outil de prototypage qui permet de faire des choses rapidement sans avoir forcment besoin de se proccuper de la collaboration des objets. De plus, si l'on programme en java, il est mon avis indispensable d'tre en adquation avec les standards de SUN ce qui aurait t une contrainte supplmentaire. Enfin, on peut dire que php est tout de mme beaucoup moins gourmand en terme de ressources systme. En utilisant php, on utilise Sablotron, le processeur XSLT intgr au langage, et on peut dire que celui-ci n'est certainement pas le plus performant du march. Toutefois, il faut relativiser cela puisque les traitements XSLT effectus par php dans la ralisation sont assez simples. Pour tous les traitement complexes et notamment ceux qui concernent l'affichage, nous avons dcid d'intgrer le framework Cocoon 2 (cf. ci-aprs). Un autre point manque Sablotron : il s'agit de la validation de documents par une DTD ou un XML schma. Ces fonctions sont effectivement disponibles en java ; toutefois il faut prciser que les parseurs disponibles sont trs peu performants et souvent complexes adapter des utilisations spcifiques. En outre, il y en a trs peu actuellement qui offrent une validation d'un document par un schma. Aussi, dans la ralisation, nous avons fait le choix d'utiliser un parseur validateur externe qui est excut et instanci partir de php. Cela nous a oblig passer de transformer notre schma en une DTD, ce qui se rvle une faible contrainte.
prcisment sur des analyses de mesures de texte. En outre, utiliser XML avec une structuration adapte aux problmatiques des chercheurs devrait permettre de faciliter leur travail notamment pour la slection des mesures de texte dans les corpus. L'entrept doit vraiment s'imposer comme un outil qui puisse faire partie intgrante de la recherche et pas seulement un espace de stockage. Dans la ralisation du projet, on utilise XML pour le stockage des corpus et des rsultats d'outils de text-mining que l'on peut transmettre l'entrept. Initialement, nous voulions stocker les rsultats de la faon suivante : on voulait intgrer les rsultats dans les corpus, sur la mesure de texte laquelle ils correspondent, puis sauvegarder le nouveau fichier. Ceci n'tait pas un bon choix car nous allions avoir une redondance d'information dont on peut s'abstenir en XML. En effet, avec ce choix si on a un corpus de C Mo, l'espace de stockage pour les rsultats allait tre de C x N, avec N le nombre de rsultats. Autant dire que nous allions vers de gros problmes de gestion d'espace de stockage. Aussi, le choix a t fait d'identifier chaque lment XML d'un corpus par un identifiant. Ainsi, dans les rsultats, on ne stocke plus l'intgralit des corpus mais seulement le contenu des rsultats eux-mmes associs l'identifiant. Avec l'utilisation d'XML, on peut ainsi faire une jointure de documents entre corpus et rsultats associs. Voici une illustration qui montre le mcanisme de jointure : Fichier de rsultats Corpus
<paragraphe id="9"> ... <phrase id="73"> <virgulot id="154">Most</virgulot>...</phrase> <phrase id="74"><virgulot id="158"> In the steady state</virgulot>...</phrase> <phrase id="75"><virgulot id="160"> This data has been used as direct evidence that Nef enhances the rate of CD4 endocytosis [31]</virgulot></phrase> <phrase id="76"><virgulot id="161"> However</virgulot><virgulot id="162"> the percent of CD4 internalized per unit time is not a rate and reflects the significantly lower total CD4 levels on the cell surface found in the steady state of Nef expressing cells</virgulot></phrase> ... </paragraphe>
<?xml version="1.0" .....> <resultats> ... <phrase not="1" id="73"/> <phrase not="0" id="74"/> <phrase not="0" id="75"/> <phrase not="1" id="76"/> <phrase not="1" id="77"/> ... </resultats>
En fait, la feuille de transformation va permettre la mise en correspondance des lments XML contenus dans le fichier rsultats et le corpus (par l'intermdiaire de la cl qui identifie chaque lment). On combine ainsi les informations des deux fichiers. Le mcanisme est l'image de l'opration de jointure existante en SQL.
Mars 2002
16 sur 49
Mars 2002
17 sur 49
concernant les outils afin de pouvoir dire sur quel type de mesure peut s'appliquer un outil. Voici une partie des lments qui composent la base de donnes
<map:act type="request"> <map:parameter name="parameters" value="true"/> <map:generate src="/var/www/html/projet/{doc}"/> <map:transform src="/var/www/html/projet/style/{style}"> <map:parameter name="use-request-parameters" value="true"/> <map:parameter name="fichier_resultat" value="/var/www/html/projet/resultats/{res}"/> </map:transform> <map:serialize type="html"/> </map:act> </map:match>
Lorsque l'on fait appel la page resultat.html sur le serveur tomcat, cette requte doit tre suivie de trois paramtres8 :
doc : correspond au document XML style : correspond la feuille XSL qui correspond l'outil res : correspond au document XML correspondant aux rsultats que l'on veut afficher
Remarque : pour avoir les dtails de configuration du fichier sitemap.xmap qui permettent de pouvoir utiliser des paramtres dans celui-ci, se rfrer aux annexes.
6.La ralisation
6.1.La gestion des corpus
L'entrept, dans son implantation actuelle, peut recevoir deux types de corpus. On peut lui transmettre des corpus au format texte pur ou au format XML. Il peut intgrer deux types de documents au format XML. Tout d'abord, on peut lui transmettre un document qui est dj au format entrept et qui peut ainsi tre directement intgr au contenu. En outre, l'arrive du fichier, on valide celui-ci afin de s'assurer qu'il est conforme la DTD. Il est important de faire remarquer que dans la ralisation nous avons utilis des DTD pour toutes les validations de documents XML. Ceci peut paratre en contradiction avec la conception qui a t faite sur la base d'un schma XML. Ce revirement s'explique par le fait qu'il y a peu d'outils actuellement qui permettent une validation par un schma XML et que ces derniers taient difficilement intgrables dans notre maquette. La seconde possibilit est d'envoyer un document XML avec une structure diffrente de la reprsentation homogne de document, mais de fournir une feuille de transformation XSLT. Cette feuille qui doit tre ralise par la personne voulant ajouter un corpus doit permettre de transposer le document au format de l'entrept. De mme que dans le cas prcdent, le document obtenu aprs transformation sera valid. Il faut prciser que l'on conserve toujours les documents dans leur format original en plus du nouveau document cr au sein du systme. Enfin, on peut transmettre un document de type texte pur. Le fichier transmis subit alors un traitement travers un intgrateur qui va le baliser en XML 9. En outre, le fichier produit doit aussi tre en concordance avec le format entrept. Toutefois, le segmenteur tant tudi pour produire des documents au formalisme du systme, on peut s'abstenir de la validation. Tous les corpus qui sont intgrs l'entrept peuvent faire l'objet d'une visualisation. C'est alors tomcat et la servlet Cocoon qui permettent de transformer le document XML en un flux HTML consultable par le navigateur. On peut aussi faire produire du pdf Cocoon afin d'avoir une version imprimable. Il est important de faire remarquer que dans la maquette j'ai dfini des feuilles de transformation qui produisent un affichage trs simple. On pourrait bien videmment affiner ses feuille afin d'obtenir une visualisation plus travaille.
document rsultat a t labore de telle manire qu'il soit facile de faire une jointure de document entre ce dernier et le corpus duquel il est issue. De mme que les corpus, les rsultats disponibles, au sein de l'entrept, sont visualisables. Toutefois, on ne prsente pas simplement les fichiers rsultat puisque le systme permet d'associer les rsultats aux corpus. Pour cela, on utilise Cocoon 2 qui permet de faire une jointure de documents XML. Ainsi, on obtient un affichage des rsultats directement avec la mesure laquelle ils correspondent.
Pour ce qui est de l'importation dans un formalisme XML, on cre un fichier XML bien form et validable par une DTD. Le fichier contient en fait les mesures balises telles quelles le sont dans le corpus original.
Mars 2002
21 sur 49
En outre, si le chercheur adapte ses outils de telle manire qu'ils puissent utiliser directement les fichiers imports, il peut faire abstraction du problme de la segmentation de texte.
suivantes : le paragraphe, la phrase et le virgulot . De plus, il compte les mesures dtectes et ajoute un attribut aux lments XML permettant ainsi d'identifier chaque mesure par un numro. Cet attribut, que l'on peut considrer comme une cl, a un rle jouer dans le fonctionnement de l'entrept. Il sera dcrit dans la suite de ce rapport. Comme je l'ai dj mentionn, crer un intgrateur avec une finesse de dtection accrue aurait fait l'objet d'un projet part entire11. Aussi, mon prototype ne fait que des dtections trs simples. C'est pourquoi il bute sur des choses telles que les abrviations. Voici un exemple :
Le numro de tl. est le 0662579222. sera traduit en deux phrases. <phrase id= 1 >Le numro de tl</phrase><phrase id= 2 >est le 0662579222 </phrase>
Cependant, j'ai essay d'intgrer quelques mcanismes afin de diminuer le nombre d'erreurs. En outre, si le texte contient une table des matires avec un formalisme 1. Introduction , mon intgrateur balisera cette zone comme une zone non-reconnue (<inconnu></inconnu>). Il reste tout de mme un gros travail faire sur cette entit qui a un grand rle jouer dans le fonctionnement de mon systme. En effet, c'est bien la finesse de l'intgrateur et sa capacit pouvoir identifier les mesures de texte dans la plus grande partie des documents qui va conditionner l'intrt du systme.
11 On peut se rfrer la partie Problmes et contraintes du systme pour plus de dtails Mars 2002 23 sur 49
7.Bilan
7.1.Une maquette fonctionnelle
Pour faire un bilan concernant la ralisation, on peut tout d'abord dire que l'on a une maquette tout fait fonctionnelle. Cette partie contient des captures d'crans qui permettent d'avoir un aperu du systme mme si elles ne peuvent pas montrer toute la logique implante en arrire plan. On voit sur cette premire capture le menu principal.
L'cran suivant montre le menu qui permet de voir la liste des documents contenus dans l'entrept et de les afficher. A travers ces illustrations, on voit bien qu'il s'agit d'une maquette : on n'affiche pas par exemple la langue ou la description du corpus bien que ces informations soient contenues dans la base de donnes.
La capture qui suit montre les traitements effectus ou en cours. En fait, les traitements correspondent un envoi de rsultats par un chercheur ou l'invocation d'un
Mars 2002
24 sur 49
outil en ligne. En outre, la premire ligne, de la liste ci-dessous, montre une invocation d'outil en ligne qui n'a pas encore t trait.
Sur la capture prcdente, on peut observer en bout de ligne un lien nomm Voir les rsultats . Il permet d'obtenir l'cran suivant qui correspond en fait au rsultat d'une jointure XML entre un corpus et des rsultats associs. Pour que cela soit plus visuel, on transforme la jointure XML en HTML. Par exemple ici cela permet de faire apparatre en rouge les phrases qui contiennent la ngation not .
Enfin, le dernier cran que je prsente correspond au menu permettant d'importer un corpus sous une mesure particulire. On peut observer que l'on choisi un document, la
Mars 2002 25 sur 49
Ces diffrentes captures ne reprsente que la partie apparente du travail de dveloppement. Toutefois, elles permettent de montrer l'interface utilisateur dveloppe pour l'accs l'entrept.
paragraphes, les phrases et les virgulots , et cela de manire non optimale. Pour ce qui du cas des corpus HTML, le problme n'est pas trait dans la maquette. On pourrait toutefois russir insrer des documents au format XHTML bien forms, avec une feuille de transformation, de la mme manire qu'un corpus de type XML. Pour des corpus baliss dans une version antrieure de HTML la majorit de ce que l'on trouve sur Internet on peut dire que la mise en forme du texte dans une page web peut fortement aider la dtection de mesures telles que les parties d'un document. En outre, cette mesure se rvle beaucoup plus complexe identifier dans un simple fichier texte, les indices tant moindres. Pour approfondir le sujet de la segmentation des pages HTML, on peut se rfrer aux travaux de Jacques Vergne qui a tudi sur le sujet.
Mars 2002
27 sur 49
12 Se rfrer aux annexes pour une description des web services Mars 2002 28 sur 49
8.Conclusion
Il est difficile de conclure un tel projet. Comme je l'ai dit dans l'introduction, le projet tait trs ouvert et c'est moi qu'a incomb en partie le fait de cadrer le sujet. Les objectifs que je me suis fixs ainsi que mes investigations ont bien sr t choisis en adquation avec les encadrants. Toutefois, la grande autonomie qu'ils m'ont laiss fait que le projet pris une grande importance pour moi. En effet, la confiance qui m'a t donne fait que je me suis senti responsable de ce projet dont l'objet tait vraiment de crer un outil qui puisse tre utilis par le laboratoire. Pour ce qui est de la ralisation, il est indniable que la maquette ralise demande tre amliore. En outre, si le systme devait tre dploy, il y aurait certainement de nombreuses amliorations apporter notamment sur toutes les questions de scurit et notamment les droits d'accs au rpertoire. Cependant, il faut souligner que la ralisation reprsente un outil fonctionnel mme s'il n'est pas entirement optimis. En effet, ce prototype d'entrept propose toutes les fonctionnalits que nous avions dfinies l'issue du travail de conception. En outre, il permet de recevoir des corpus de trois types : texte pur, xml au format entrept et xml transformer. La maquette permet de recevoir des rsultats issus d'outils de fouille de texte. Aussi, elle permet une visualisation du contenu de l'entrept et notamment une association entre les rsultats et les corpus dont ils sont issus. Enfin, pour obtenir les rsultats, il faut appliquer un outil sur un corpus. L'entrept permet une mise disposition des corpus sous diffrentes mesures. La structure des fichiers que l'on peut importer permet de faciliter l'exploitation des documents, du fait que le chercheur peut faire abstraction du problme de l'identification des mesures. Pour faire un bilan plus personnel, ce projet aura t riche en exprience pour moi. Tout d'abord le dialogue avec les membres du laboratoire m'a beaucoup apport. J'ai pu apprhender le travail de recherche effectu en fouilles de textes et cela m'a mme donn le got de la recherche. La conception m'a demand un gros travail de synthse afin de pouvoir mettre contribution toutes les informations recueillies auparavant. En outre, le fait que je sois la tte du projet du module systme d'informations du DESS m'a beaucoup aid. Enfin, la ralisation est une phase qui parat toujours trs courte. La maquette produite est fonde sur un certain nombre de comptences que je possdait dj mais cette ralisation m'a surtout permis d'en acqurir d'autres. J'ai d renforcer mes connaissances dans les technologies XML et la mise en place et l'exploitation d'un framework tel que Cocoon 2 n'a pas t une tche anodine. Pour finir, mes seuls regrets seront de ne pas avoir pu approfondir toutes les pistes que j'avais souleves notamment pour des questions de temps. Aussi, ayant l'objectif de reprendre un DEA l'anne prochaine, j'espre avoir l'occasion de pouvoir prolonger le travail effectu dans le cadre de ce projet.
Mars 2002
29 sur 49
9.Annexes
Mars 2002
30 sur 49
Mars 2002
31 sur 49
<xsd:annotation> <xsd:appinfo>datawarehouse.xsd v1.0 2003-01</xsd:appinfo> <xsd:documentation xml:lang="fr"> Schma destin la description des documents du datawarehouse. </xsd:documentation> </xsd:annotation>
<xsd:element name="corpus"> <xsd:complexType> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="paragraphe" type="typeParagraphe"/> <xsd:element name="parties" type="typePartie"/> <xsd:element name="inconnu" type="xsd:string"/> </xsd:choice> <xsd:attribute name="titre" type="xsd:string" use="required"/> <xsd:attribute name="multilang" type="xsd:boolean" use="requiredl" default="false"/> <xsd:attribute name="lang" type="typeLangue" use="optional" default="fr"/> <xsd:attribute name="origine" type="typeOrigine" use="required"/> <xsd:attribute name="auteurs" type="xsd:string" use="optional"/> <xsd:attribute name="coauteurs" type="xsd:string" use="optional"/> </xsd:complexType> </xsd:element>
<xsd:simpleType name="typeOrigine"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="xml"/> <xsd:enumeration value="txt"/> <xsd:enumeration value="html"/> <xsd:enumeration value="rtf"/> </xsd:restriction> </xsd:simpleType>
<xsd:complexType name="typePartie"> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="phrase" type="typePhrase" maxOccurs="unbounded"/> <xsd:element name="doublepoint" type="typeDoublepoint" maxOccurs="unbounded"/> <xsd:element name="pointvirgulot" type="typePointvirgulot" maxOccurs="unbounded"/> <xsd:element name="paragraphe" type="typeParagraphe"/> </xsd:choice> <xsd:attribute name="id" type="xsd:decimal" use="required"/> </xsd:complexType>
<xsd:complexType name="typeParagraphe"> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:element name="phrase" type="typePhrase" maxOccurs="unbounded"/> <xsd:element name="doublepoint" type="typeDoublepoint" maxOccurs="unbounded"/> <xsd:element name="pointvirgulot" type="typePointvirgulot" maxOccurs="unbounded"/> </xsd:choice> <xsd:attribute name="nbphrases" type="xsd:decimal" use="required"/> <xsd:attribute name="id" type="xsd:decimal" use="required"/> </xsd:complexType>
Mars 2002
33 sur 49
<xsd:complexType name="typePhrase"> <xsd:sequence> <xsd:element name="virgulot" type="typeVirgulot" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="nbvirgulot" type="xsd:decimal" use="required"/> <xsd:attribute name="id" type="xsd:decimal" use="required"/> </xsd:complexType>
<xsd:complexType name="typeDoublepoint"> <xsd:sequence> <xsd:element name="virgulot" type="typeVirgulot" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="nbvirgulot" type="xsd:decimal" use="required"/> <xsd:attribute name="id" type="xsd:decimal" use="required"/> </xsd:complexType>
<xsd:complexType name="Pointvirgulot"> <xsd:sequence> <xsd:element name="virgulot" type="typeVirgulot" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="nbvirgulot" type="xsd:decimal" use="required"/> <xsd:attribute name="id" type="xsd:decimal" use="required"/> </xsd:complexType>
<xsd:complexType name="typeVirgulot" mixed="true"> <xsd:sequence> <xsd:element ref="em" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:decimal" use="optional"/> </xsd:complexType>
</xsd:schema>
Mars 2002
34 sur 49
Cette DTD correspond la structure des fichiers rsultats de l'outil intgr la maquette. Cet outil permet de compter le nombre d'occurrences de la ngation not dans les phrases ou les virgulots d'un document.
Mars 2002
35 sur 49
Mars 2002
36 sur 49
Voici la DTD dfinissant la structure des fichiers obtenus lors de l'importation d'un corpus partir de l'entrept :
<!ELEMENT importation (partie+|section+|paragraphe+|phrase+|doublepoint+| pointvirgulot+|virgulot+)> <!ELEMENT partie (#PCDATA)> <!ELEMENT section (#PCDATA)> <!ELEMENT paragraphe (#PCDATA)> <!ELEMENT phrase (#PCDATA)> <!ELEMENT doublepoint (#PCDATA)> <!ELEMENT pointvirgulot (#PCDATA)> <!ELEMENT virgulot (#PCDATA)> <!ATTLIST importation mesure PCDATA #OPTIONAL> <!ATTLIST importation date PCDATA #OPTIONAL> <!ATTLIST partie id CDATA #REQUIRED> <!ATTLIST section id CDATA #REQUIRED> <!ATTLIST paragraphe id CDATA #REQUIRED> <!ATTLIST phrase id CDATA #REQUIRED> <!ATTLIST doublepoint id CDATA #REQUIRED> <!ATTLIST pointvirgulot id CDATA #REQUIRED> <!ATTLIST virgulot id CDATA #REQUIRED>
Mars 2002
37 sur 49
...
<map:actions default="request"> <map:action name="request" src="org.apache.cocoon.acting.RequestParamAction"/> </map:actions> ... </map:components>
Ensuite dans la partie pipeline : ... <map:pipeline> <map:match pattern="resultat.html"> <map:act type="request"> <map:parameter name="parameters" value="true"/> <map:generate src="/var/www/html/projet/{doc}"/> <map:transform src="/var/www/html/projet/style/{style}"> <map:parameter name="use-request-parameters" value="true"/> <map:parameter name="fichier_resultat" value="/var/www/html/projet/resultats/{res}"/> </map:transform> <map:serialize type="html"/> </map:act> </map:match> ... </map:pipeline>
La partie de code en rouge pour les passages de paramtres au sitemap.xmap. La partie de code en bleu si l'on veut passer des paramtres la feuille de transformation xslt
Mars 2002
38 sur 49
1.3. Depuis le milieu des annes 1980, une profonde mutation 1.4. Recruter des enseignants Chapitre 2. Un Franais sur quatre l'cole 2.1. La population scolaire 2.2. En trente ans, des changements considrables 2.3.Population scolaire et socit 48 32 37 37 40
<inconnu>1.3. Depuis le milieu des annes 1980, une profonde mutation <inconnu>1.4. Recruter des enseignants Mars 2002 32</inconnu>
39 sur 49
passage original
Tableaux de bord de l'ducation nationale. Notes d'information. Statistiques des enseignements. Tableaux statistiques. Documents de travail. ducation et formation.
Les deux passages qui posent des problmes correspondent d'une part la table des matires et d'autre part une zone d'numration. Le premier passage est qualifi d'inconnu, puisque rien de permet de dire de quelle mesure il s'agit. Par contre, pour le second, l'intgrateur fait une erreur car chaque lment de l'numration se termine par un point. Aussi, il identifie chaque ligne comme un paragraphe avec une seule phrase contenant un virgulot unique. On voit l les premires limites de l'intgrateur dvelopp. Je rappelle toutefois que l'objet du projet n'tait pas la segmentation de texte.
Mars 2002
40 sur 49
Les Web services ou une volution du concept d'interroprabilit Le domaine des Web Services est devenu le nouveau sujet la mode des chroniques de la presse spcialise. Mais que sont-ils vraiment ? Pour bien faire comprendre le potentiel de cette nouvelle vogue, je vais prendre un exemple certainement trs optimiste mme utopique mais qui montre bien l'enjeu conomique. Imaginons l'exemple que vous tes un jeune cadre dynamique et que vous deviez partir en sminaire l'autre bout de la France. Vous allez sur le site de la SNCF ou d'une agence de voyage qui vous fait les propositions appropries. Comme vous tes un voyageur rgulier, vous avez un profil de rservation sur votre ordinateur qui est transmis lors de vos demandes. Ainsi, l'agence de voyage sait qu'elle doit vous proposer une place non fumeur par exemple. Les systmes de rservation qui existent actuellement permettent un mcanisme proche de celui-ci mais il faut s'tre auparavant inscrit sur le site et ceci implique que l'on s'adresse toujours la mme agence de voyage. Le but des web services est de donner la possibilit de grer votre profil en local et, quelque soit l'interlocuteur que vous ayez, qu'il puisse comprendre ce profil lorsque vous lui envoyez. Il y a une vaste problmatique de standardisation des changes. On peut aller plus loin et se dire que lorsque vous avez valid votre rservation, le systme permette de mettre jour automatiquement votre agenda personnel et professionnel. De mme, en extrapolant, on peut se dire que l'intgralit de votre carnet d'adresses soit prvenu de votre absence aux dates indiqus par l'envoi automatique d'email. Bien sr, l'exemple est trs caricatural, mais le mouvement en faveur des web services pense pouvoir appliquer ce genre de philosophie au sein des rseaux entreprises, dans un premier temps. L'objectif terme est de permettre de faciliter le travail entre les entreprises et promouvoir le B2B (Business to Business) notamment pour rationaliser les cots. Les plus prcurseurs pensent dj appliquer cela sur le march du B2C (Business to Customer) et offrir une personnalisation accrue dans les services.
Origine des services web L'origine des services web peut tre relie l'informatique distribue et l'explosion de l'Internet. En effet, le but de l'informatique distribue est de permettre de faire collaborer des applications distantes. On veut par exemple qu'une application puisse utiliser une fonction d'une autre application sur un site distant et cela de manire transparente. On peut dire que trois grands standards existant dans le domaine de l'informatique distribue sont : CORBA/IIOP (Common Object Request Broker Architecture / Internet Inter-ORB Protocol) DCOM (Distributed Component Object Model) RMI ( Remote Method Invocation)
Ces standards sont trs complexes dans leur utilisation et sont difficilement interroprables entre eux. De plus, il est important de noter que ces systmes sont peu compatibles avec les firewalls du fait qu'ils utilisent des ports spciaux. Le cheminement des messages entre des agents CORBA, par exemple, ne peut passer par le port 80 rserv au HTTP. Toutes ces raisons font que ces 3 standards restent le plus souvent confins l'intrieur d'entreprises dans des intranets et ne peuvent tre dploys sur un rseau de type public (Internet). Les services web sont donc une alternative qui s'est dveloppe avec le dploiement du haut dbit Mars 2002 41 sur 49
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI sur les rseaux, le standard XML qui permet une fine structuration des donnes et enfin le besoin d'intrroprabilit des systmes. Une entreprise qui possde des succursales travers le monde ne veut plus seulement changer des donnes (de type email, ou fichier via ftp...) ou consulter de l'information (http), elle veut pouvoir utiliser ses applications mtiers travers le web et que celles-ci collaborent travers les rseaux. La premire socit a avoir introduit un produit qui rponde ce genre de service est HewlettPackard avec e-Speak. Le produit est sorti en 1999 et possdait de solides aptitudes de scurit dans les changes avec un systme reposant sur SPKI (Simple Public Key Infrastructure). Il faut toutefois faire remarquer qu'aujourd'hui ce produit se rvle tre un chec (a priori une technologie trop propritaire). Cependant les autres acteurs du march (IBM, Microsoft, Lotus, Intel...) se sont lancs au dveloppement de solutions qui sont en passe de devenir des standards et ceci pour un soucis de transparence dans la collaboration d'applications. On peut citer le trio SOAP, WSDL et UDDI qui sera dcrit dans la partie suivante.
Prsentation des services web Un service Web peut tre dfini de la manire suivante. Il s'agit en fait d'un simple change de documents entre deux URL13. Cela peut paratre simple mais en fait la problmatique de standardisation des changes est norme vu la diversit des langages et des applications. En outre, un tel concept n'a pu merger qu'avec des normes telles que SGML et maintenant XML. C'est une modification gnrale du concept de l'Internet : Internet est en train de passer de l're du client/serveur celle de l'application application Marc Gardette. Pour pouvoir arriver ce fonctionnement de type application application , on a besoin d'un certain nombre de composants et de modules qui puissent comprendre les messages envoys. Ces modules sont des analyseurs qui vont faire l'interface entre le rseau et vos applications. Ceci tant, peu importe votre systme d'exploitation ou votre type de programmation (C, Java, PHP, Pearl...). Du fait que les web services s'appuient sur les langages standards du web, il peuvent priori s'appliquer partout. Les lives motives des web services sont l'intrroprabilit et la r-utilisabilit des composants. L'intrroprabilit a dj t explicite prcdemment. Pour ce qui est de la r-utilisabilit, en fait, cela peut se rsumer : pourquoi recrer un service, qu'un concurrent propose dj et qu'il connat, alors que l'on peut faire un partenariat avec lui et externaliser ce service. C'est le concept d'ASP : Application Service Provider. On externalise certains services, en devenant client d'applications qui sont hberges chez des socits partenaires, voir des socits concurrentes. Autant dire qu'il faudra une rvolution dans les mentalits des dcideurs et des chefs d'entreprises.
Composants des Web Services Remarque : Les composants dcrits dans ce qui suit reprsentent les trois couches standards du concept de web services, mais la liste n'est pas exhaustive, d'autant plus que le march est en pleine explosion.
SOAP (Simple Object Access Protocol) SOAP correspond en fait aux spcifications des messages changs dans le cadre des web services. Il est apparut 1998 et a t trs largement dvelopp par Microsoft, mais on notera tout de mme que, trs vite, de nombreuses socits se sont greffes au projet : IBM, Lotus, Intel... SOAP est une recommandation du W3C14, mais qui est dj considre comme un standard. En effet, de nombreux produits de e-bussiness se basent dj sur SOAP et la messagerie XML.
13 Uniform Ressource Locator 14 World Wide Web Consortium Mars 2002 42 sur 49
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI SOAP se base sur les protocoles dj existants du web15 ce qui fait sa force mais ne spcifie qu'un protocole lger d'change de messages, pour le dialogue entre les applications distantes. SOAP est fond sur XML, ce qui lui confre une simplicit XML n'est que du texte en fait et un pouvoir de structuration des changes .
Le protocole SOAP Le protocole SOAP peut tre dcompos en trois parties principales. Il faut savoir que ces parties sont indpendantes. La premire concerne l'enveloppe SOAP et dfinit en fait l'ensemble de la structuration du message travers une DTD ou plus rcemment un schma XML. La deuxime partie correspond des rgles d'encodages. L'objet est de dfinir l'ordonnancement des changes de donnes entre diffrentes applications. Enfin, la dernire partie correspond la dfinition d'une convention pour standardiser les appels de procdure et leurs rponses. Il s'agit de SOAP RPC (Remote Procedure Call).
Message SOAP Un message SOAP est constitu de deux parties : une en-tte et un corps. L'en-tte est l'image d'une trame IP. Elle contient une partie qui permet de spcifier que le message possde des lments enfants afin d'ajouter des extensions au protocole SOAP. Par exemple, du fait que le protocole SOAP est trs simple, la scurit n'est pas prise en compte. Des lments enfants, spcifis dans l'entte, peuvent permettre de combler ce manque. Le corps du message contient les spcifications du service web que l'on veut appeler, notamment la faon d'effectuer les appels de procdure distance (RPC) et la faon d'invoquer l'application distante ainsi que les paramtres lui fournir. En fait, le corps du message contient les informations attendues par le destinataire afin qu'il puisse rendre le service voulu.
POST/UttExemple1 HTTP/1.1 Host : coraill.utt.fr Content-Type: text/html; charset= utf-8 Content-Length: 145 SOAPAction: <SOAP-ENV:Enveloppe xmlns:SOAP-ENV= http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle= http://schemas.xmlsoap.org/soap/encoding/ >
<SOAP-ENV:Body> <m:GetPrix xmlns:m= urn:utt.cite.bibliotheque > <livre>Troyes</livre> </m:GetPrix> 15 HTTP, FTP, SMTP... Mars 2002 43 sur 49
From: marc.lemercier.utt.fr To: reservation@travelcompany.example.org Subject: Message SOAP Message-Id: <GEKJHEFJHEJ65247365876537DHEV@pluton.utt.fr> <?xml version = 1.0 ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV= http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENV:encodingStyle= http://schemas.org/soap/encoding/ > <SOAP-ENV:Body> <m:GetPrix xmlns:m= urn:utt.cite.bibliotheque > <livre>Troyes</livre> </m:GetPrix> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Remarque : il existe des projets qui essaient d'implmenter bien plus que des messageries SOAP. Ces projets veulent modliser des commutateurs SOAP (dispatcheur). On peut faire l'analogie avec les switchs au sein des rseaux locaux.
WSDL (Web Service Description Language) WSDL est un langage qui a t dvelopp en majorit par IBM et Microsoft. C'est pour le moment un document de travail du W3C. WSDL a pour but de dcrire les interfaces des services web leur utilisation afin qu'elles soient invocables par des messages SOAP. Ce langage est un driv de XML et permet donc par exemple de spcifier les protocoles utiliser pour se connecter un tel service : HTTP GET ou POST, SMTP via MIME... On peut faire l'analogie entre ce langage de description et l'entte d'un programme ou les spcifications d'une classe dans un langage objet. Le but de WSDL est vident. Il s'agit de faciliter la communication entre celui qui a besoin du service et celui qui le fournit. Les perspectives sont de pouvoir invoquer dynamiquement des services.
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI <definitions name= WSbiliotheque targetNamespace= http://corail.utt.fr:8080/ws/WSbiblio.wsdl xmlns:xsd= http://www.w3.org/1999/XMLSchema xmlns:soap= http://schemas.xmlsoap.org/wsdl/soap/ xmlns= http://schemas.xmlsoap.org/wsdl >
<message name= getPrixRequest > <part name= livre type= xsd:string /> </message> <message name= getPrixResponse > <part name= return type= xsd:float /> </message> On a ici l'invoquation d'une mthode avec deux messages : une requte et une rponse. C'est en fait une dclaration de paramtres pour la mthode. <portType name= WSbiblioPortType > <operation name= getPrix > <input message= getPrixRequest name= getPrix /> <ouput mesage= getPrixResponse name= getPrixServeur /> </operation> </portType> Le porType dfinit ici une squence de 2 messages pour l'opration getPrix <binding name= WSbiblioBinding type= WSbiblioPortType > <soap:binding style= rpc transport= http://shemas.xmlsoap.org/soap/http /> <operation name= getPrix > <soap:operation soapAction= /> <input> <sopa:body use= encoded namspace= urn:cite_biblio /> </input> <output> <soap:body use= encoded namespace= urn:cite_biblio /> </output> </operation> </binding> Binding spcifie les protocoles utiliss : ici c'est le protocole RPC sur du HTTP <service name = WSBibliotheque > <documentation>Prix d'un livre</documentation> <port name = WSbibliothequeType binding= WSbiblioBinding >
Mars 2002
45 sur 49
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI <soap:adress location= http://corail.utt.fr:8080/soap /> </port> </service> Enfin on dfinit une URL pour pouvoir localiser le service en question. </definition> UDDI (Universal Description Discovery and Integration) UDDI n'est pas un composant en tant que tel dans les services puisqu'il s'appuie lui mme sur les services web et notamment sur le protocole de transport SOAP. UDDI est un systme d'annuaire qui a t initi par IBM, Ariba et Microsoft. L'objectif de UDDI est de proposer un systme d'annuaire mondial qui permette de trouver le service web dont on a besoin. Cette annuaire est matrialis par des fichiers XML, hbergs par des oprateurs UDDI, qui proposent une description des entreprises inscrites, ainsi que les spcifications des services web que ces dernires proposent. C'est l'accs ces spcifications qui doivent contribuer au dploiement des services web. En outre, ces annuaires donneront l'opportunit de faire dialoguer des applications entre elles. Il se pose alors le problme de mise jour de ces annuaires, ainsi que de la scurit des informations hberges. C'est l'objet de la version 2.0 de UDDI qui implmente notamment le principe que toute information publie sur un annuaire ne peut tre modifie que sur ce mme annuaire. Il instaure galement des principes scuritaires tels que des authentifications par accs jeton. Il est bien vident que les autorits de certification telles que Verisign et Equifax joueront un rle majeur dans le dploiement de ce type d'annuaire. La version 3.0 s'est toffe d'une gestion d'annuaires distribus trs utile pour les entreprises ainsi que d'un support de WSDL amlior. On notera galement une volution de l'interface d'abonnement et une gestion de la signature lectronique. En outre, UDDI 3.0 utilise les XML Schma du W3C pour la modlisation des structures de donnes. Architecture d'un fournisseur de services Sur le diagramme suivant, on peut observer l'architecture typique du systme d'un fournisseur de services, avec le trio SOAP,WSDL et UDDI.
Mars 2002
46 sur 49
L'annuaire UDDI a pour rle la publication des services qui sont offerts par le fournisseur. WSDL propose une description de ces services afin que le client puisse s'interfacer correctement. Enfin, on retrouve SOAP pour le dialogue entre les applications qui veulent collaborer.
Avantages et dsavantages L'utilisation des webs services engendre de nombreux avantages mais implique aussi une grosse contrepartie lie notamment aux possibilits des algorithmes et la capacit des machines utilises.
Les atouts Il n'est pas dmontrer que l'utilisation de cette technologie permet une rduction des cots de dveloppement. En effet, du fait que ces services reposent sur des protocoles et des standards dj existants, il est inutile de refondre les infrastructures matrielles et logiciels. La nature ouverte des services web fait que les changes deviennent indpendants du langage de programmation ou du type de client (navigateur WEB, tlphone mobile avec le WAP). Les webs services peuvent se greffer trs facilement sur les systmes existants. Si toutes les interfaces du systme sont bases sur ce type de service, donc standardises et auto-descriptives (XML, WSDL), on gagne ainsi une facilit d'intgration de nouvelles applications et de nouveaux outils. Enfin, tout le travail de maintenance et d'exploitation est facilit du fait de la standardisation du systme. Un deuxime avantage correspond des intrts conomiques. Les changes sont standardiss car il repose sur un formalisme bas sur SOAP. Ce standard permet le dveloppement d'un nouveau modle conomique qui permet par exemple de faciliter la facturation16 notamment lors d'changes entre diffrentes entreprises partenaires. L'utilisation de tels standards permet la mise en place d'changes de type Business to Business (B2B) et Business to Customer (B2C).
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI Les dsavantages On peut citer un certain nombre de dsavantages mais il est important de souligner, avant toute chose, que les web services sont encore jeunes. Tout d'abord, la jeunesse de ses systmes fait que les technologies utilises ne sont pas encore standardises. En outre, cela peut tre une limite au dploiement de ces technologies. Le deuxime inconvnient repose sur un des points forts du concept des services webs. En effet, l'utilisation de XML permet de standardiser les changes mais le pliage et le dpliage des messages SOAP demandent un temps et des ressources CPU importantes. Enfin, du fait que SOAP est un protocole que l'on peut qualifier de simple , il lui manque un certain nombre de fonctionnalits telles que les transactions et la scurit.
Evolutions Les volutions des services web seront nombreuses mais on peut dj en citer un certain nombre. Pour ce qui est de SOAP on peut s'attendre voir se dvelopper du routage de message SOAP. De plus, il semble qu'un gros travail sera ralis sur la qualit de service (QoS) et notamment sur la fiabilit des remises de messages. Nous l'avons dj cit mais une orientation sera certainement sur la gestion des transactions ainsi que sur la scurit (confidentialit, non rpudiation, non altration). Les web services voient apparatre de nouvelles spcifications telles que Xlang (Microsoft), WSFL (Web Service Flow Language - IBM) et WSCL (Web Service Conversation Language HP). Ces trois langage ont pour objectif de pouvoir spcifier l'enchanement des messages dans les cooprations entre applications. Ce concept va se rvler trs utile dans les applications transactionnelles - les services bancaires par exemple qui ont une certaine orchestration dans leur mode de fonctionnement. Enfin, on voit apparatre des normes de description pour le BtoB. Ces normes ont la vocation de crer des langages d'changes pour des applications mtier. On peut citer ebXML pour le commerce lectronique, RossettaNet pour les professionnels de l'informatique et l'lectronique, ou encore ChemXML pour le secteur de la chimie. La liste n'est bien sr que partielle tant donn l'engouement actuel.
Produit 17 L'implmentation des services webs se retrouve dans de nombreux produits. On observe leur intgration tout d'abord dans les serveurs d'applications commerciaux tels que Websphere (IBM) et Weblogic (BEA). On peut citer Axis,18 un produit open source de Apache, qui est un servlet qui peut tre utilis avec Tomcat. GLUE de The Mind Electronic est bas sur un concept propritaire mais simple. Son dploiement est a priori ultra rapide. Il existe sous la forme d'un servlet et possde des parseurs XML propritaires mais simples et rapides. Enfin, on peut noter le module php-soap qui se rvle tre un bon outil de prototypage.
Domaines d'utilisations A l'image des volutions cites prcdemment, les domaines d'application sont nombreux du fait des concepts d'intrroprabilit et de r-utilisabilit qu'ils implmentent. Ces caractristiques leurs confrent une facilit d'intgration qui n'existe pas avec CORBA. Les web services sont donc destins toute personne ayant besoin de faire dialoguer des applications distantes autant dire la majeure partie du march de l'informatique vu l'explosion des rseaux 17 N'ayant pas eu le temps de faire une analyse approfondie des produits je me base sur une prsentation de Maurice Szmurlo 18 Produit repris dans Websphere par IBM Mars 2002 48 sur 49
Entrept de donnes textuelles Samuel PARFOURU - DESS RADI et les personnes qui veulent offrir des services et ce de manire transparente . Ce sont toutes les socits qui veulent faire de la location d'applications ou plus souvent appel Application Service Provider. Ce domaine n'est pas trs rpendu pour le moment. Pour ce second domaine, il semble qu'il y ait une certaine rticense des socits de vouloir externaliser des services. Aussi, l'ASP n'est pas encore un modle conomique trs en vogue. Par contre, l'aspect collaboration d'applications est parfaitement en adquation avec les modles conomiques BtoB et BtoC. A noter qu'il s'intgre bien videmment dans les politiques d'EAI 19 qui sont mises en place par les grandes socits.
Conclusion D'aprs le rel engouement des diffrents acteurs du march de l'informatique en gnral et des systmes d'informations, il est indniable que les web services devraient s'imposer comme un standard incontournable. Il faut toutefois bien noter qu'il reste un important travail dans le domaine de la scurit des changes et la gestion des transactions, qui seront des composants essentiels pour de nombreux domaines. Ceci tant, il est, je pense, incorrect de dire que les web services vont rvolutionner le mode de fonctionnement des systmes d'informations. En effet, ils puisent leurs origines dans l'informatique distribue et ne sont qu'une volution du concept. Leur force est de se baser sur des standards du web, ce qui permet de les intgrer facilement sur l'existant. Il faut noter un grand absent dans le travail de dveloppement de ces futurs standards : Sun. En fait, la socit SUN adopte les web services dans ses produits, mais ne s'est que peu implique dans le travail de standardisation en cours. Il faut bien avouer que ces services sont en concurrence direct avec CORBA. Enfin, on peut noter la stratgie peu comprhensible de Microsoft, un des instigateurs de SOAP. La technologie .NET , directement lie aux services web, se veut open source. En effet, c'est une tape majeure dans l'histoire de Microsoft mais un passage oblig pour tre dans le concept mme des web services. Cependant, on remarque que l'diteur de Windows est en train de dposer un brevet sur sa technologie .NET : un vrai paradoxe en somme par rapport au concept ouvert des web services.
Liens Panorama sur les Web Services Didier DONSEZ http://www-adele.imag.fr/~donsez/cours/webservices.pdf Dfinition des services-web - Christophe NICOLLE http://www.iai-france.org/projets/batinterop/RT_Nicolle_0210_c.pdf Les Web-Services Marc Lemercier http://www-rp.lip6.fr/dmac/lemercier.pdf Les Services Web: un phnomne de mode ou un outil de dialogue incontournable ? http://www-sop.inria.fr/oasis/Intech/ Confrence Orange RADI Maurice Szmurlo (Octobre2002) http://infodoc.info.unicaen.fr/RADI/MauriceSzmurlo.pdf Plusieurs articles de ce journal en ligne
http://solutions.journaldunet.com/