Académique Documents
Professionnel Documents
Culture Documents
Digital Museum
Julien DUCRET
Promotion 2002-2003 Universit Nancy 2 UFR Mathmatiques et Informatique 13 rue Michel Ney case officielle n 75 54037 Nancy cedex
Digital Museum
Rapport de stage en entreprise de DESS SID 1er avril 30 septembre 2003 Stage effectu au : LORIA Campus Scientifique B.P. 239 54506 VANDOEUVRE-ls-NANCY CEDEX Tuteur en entreprise : Samuel CRUZ-LARA Julien DUCRET Promotion 2002-2003
Je tiens remercier Samuel Cruz-Lara, mon responsable de recherche pour son accueil et sa bienveillance, Jonathan Faivre-Vuillin stagiaire de DUT avec qui jai travaill de faon remarquable sur ce projet, Odile Thiery, ma responsable de stage et Kalid Benali le responsable du DESS pour mavoir permis de raliser mon stage au LORIA.
Sommaire
1 2 Introduction .................................................................................................. 7 Le LORIA ....................................................................................................... 8 2.1 Prsentation................................................................................................. 8 2.2 Organisation ................................................................................................ 8 2.3 Personnels ................................................................................................... 8 3 Lquipe....................................................................................................... 10 3.1 Prsentation............................................................................................... 10 3.2 Axes de recherche ...................................................................................... 11 3.2.1 Fondements scientifiques ................................................................... 11 3.2.2 Domaines d'application ...................................................................... 13 3.3 Relations scientifiques et industrielles ............................................................ 16 4 Le point sur la technologie .......................................................................... 17 4.1 Historique des rseaux ................................................................................ 17 4.1.1 Le systme central ............................................................................ 17 4.1.2 Le modle client serveur .................................................................... 17 4.1.3 Le modle Internet............................................................................ 19 4.1.4 Le modle WebServices ..................................................................... 20 4.2 La technologie JWSDP ................................................................................. 21 4.2.1 Gnralits ...................................................................................... 21 4.2.2 Les API............................................................................................ 22 4.2.3 Installation du JWSDP........................................................................ 23 4.2.4 Server Administration ........................................................................ 24 4.2.5 Web Application Manager ................................................................... 25 5 Le projet Digital Museum ...................................................................... 26 5.1 Prsentation............................................................................................... 26 5.2 Architecture gnrale .................................................................................. 27 5.3 La couche de Persistance (connection) ........................................................... 27 5.3.1 Le concept ....................................................................................... 27 5.3.2 Larchitecture ................................................................................... 27 5.3.3 La grammaire ................................................................................... 28 5.3.4 Les difficults rencontres .................................................................. 28 5.3.5 Un exemple de code .......................................................................... 29 5.4 Ladministration des donnes (admin)............................................................ 29 5.4.1 Le concept ....................................................................................... 29 5.4.2 Larchitecture ................................................................................... 29 5.4.3 Les java Beans ................................................................................. 29 5.4.4 Lorganisation des JSP ....................................................................... 30 5.4.5 Linterface........................................................................................ 31 5.5 Le Web Service Museum (DigitalMuseum) ...................................................... 33 5.5.1 Le concept ....................................................................................... 33 5.5.2 Larchitecture ................................................................................... 34 5.5.3 Linterfaage et limplmentation du service .......................................... 34 5.5.4 Les types supports .......................................................................... 34 5.5.5 Les fichiers de configuration ............................................................... 36 5.5.6 La Compilation et le dploiement du service.......................................... 37 5.5.7 Le Fichier WSDL : ............................................................................. 37 5.5.8 La publication ................................................................................... 38 5.6 Le Designer................................................................................................ 39 5.6.1 Le concept ....................................................................................... 39 5.6.2 Larchitecture ................................................................................... 39 5.6.3 Le tutorial ........................................................................................ 45 5.7 Larchitecture finale..................................................................................... 51
Perspectives ................................................................................................ 52 6.1 Les ressources multimdia ........................................................................... 52 6.2 Uddi.......................................................................................................... 52 6.3 Base de donne XML ................................................................................... 52 6.4 Editeur de prsentation multimdia ............................................................... 52 6.5 Format multimdia...................................................................................... 52 6.6 Programmation........................................................................................... 53 7 Conclusion ................................................................................................... 54
1 INTRODUCTION
Mon stage au LORIA a t pour moi loccasion de dcouvrir le milieu de la recherche en informatique. En effet, jai dj eu plusieures reprises loccasion de travailler en entreprise, mais je navais encore jamais travaill dans un centre de recherche. Ceci ma permi dapprhender ltendue des domaines couverts par le LORIA. Par ailleurs, ce stage ma fourni loccasion dencadrer un stagiaire IUT pendant trois mois. Cette exprience ma fait ctoyer de prs les difficults de lencadrement et de la gestion de projet. En effet, lors de mes prcdents stages en entreprise, jai toujours eu un suprieur qui savait assez prcisment ce dont il avait besoin. Javais un cahier des charges strict, imposant de nombreuses contraintes. Quand javais oprer des choix techniques ayant des implications sur le rsultat final, je pouvais demander mes collaborateurs leur avis, et choisir ainsi la solution la plus profitable. Pour la premire fois, personne ne pouvait me donner dorientation lorsquil fallait choisir entre deux possibilits ayant chacune des rpercussions diffrentes. Il ne mtait encore jamais arriv de prendre par moi-mme des dcisions influenant aussi profondment le rsultat final. Enfin, dans le cadre de ce projet jai pu mettre en pratique les connaissances en programmation distribue acquises au cours de ma formation, les concepts et pratiques de la modlisation oriente objet et, pour finir, mettre en avant mes qualits dencadrement et de gestion de projet.
2 LE LORIA
2.1 PRESENTATION
Le Laboratoire Lorrain de Recherche en Informatique et ses Applications (LORIA) est une unit mixte de recherche (UMR 7503) commune au CNRS (Centre National de la Recherche Scientifique), l'INRIA (Institut National de Recherche en Informatique et en Automatique), l'INPL (Institut National Polytechnique de Lorraine), et aux universits Henri Poincar, Nancy 1 et Nancy 2. Cette unit, dont la cration a t officialise le 19 dcembre 1997 par la signature du contrat quadriennal avec le Ministre de l'ducation Nationale, de la Recherche et de la Technologie et par une convention entre les cinq partenaires, succde ainsi au Centre de Recherche en Informatique de Nancy (CRIN), et aux quipes communes entre celui-ci et l'Unit de Recherche INRIA de Lorraine. Le LORIA est situ sur le campus de la facults de sciences de Nancy, ct de la bibliothque universitaire.
2.2 ORGANISATION
Depuis le 1er janvier 2001, c'est Hlne KIRCHNER qui dirige le LORIA. Actuellement plus de 300 personnes travaillent dans le laboratoire. Ces personnels sont rpartis en 21 quipes de recherche et 7 services d'aide la recherche. Chaque quipe rassemble des chercheurs, des doctorants et des assistants techniques ou administratifs, pour la ralisation d'un projet de recherche. Cinq instances ont t mises en place pour assister le directeur du laboratoire, garantir la cohrence de la politique scientifique et le bon fonctionnement au quotidien : l'quipe de Direction : compose de plusieurs membres du laboratoire, elle assiste la Directrice dans ses fonctions ; le Comit de Gestion : compos des chefs de service, il assiste le directeur dans le fonctionnement journalier du LORIA ; le Comit des Projets : il conseille le Directeur sur la politique scientifique du LORIA, participe l'valuation des projets/quipes, et instruit les restructurations ncessaires ; le Conseil du LORIA : il met des avis sur la politique scientifique mise en uvre par le Comit des Projets. Sa composition est fixe par les statuts d'UMR. ; le Conseil des Orientations Scientifiques : compos de reprsentants des quipes de recherche, il conseille la Direction dans la gestion scientifique du laboratoire.
2.3 PERSONNELS
Le LORIA est une Unit Mixte de Recherche (UMR 7503) associant les personnels et les moyens des cinq tablissements suivants : CNRS : Centre National de la Recherche Scientifique INPL : Institut National Polytechnique de Lorraine INRIA :Institut National de Recherche en Informatique et en Automatique UHP : Universit Henri Poincar, Nancy 1 Nancy 2 : Universit Nancy 2 Le LORIA regroupe plus de 300 personnes rpartis comme le montrent les Figure 1 et Figure 2.
Chercheurs permanents
61 109
94
Figure 1 : rpartition du personnel par statuts (Les chiffres de la Figure 1 ne comprennent pas les projets INRIA Messins et de l'IECN)
64
LEQUIPE
3.1 PRESENTATION
L'objectif du projet Langue et Dialogue est de dfinir des modles et des techniques permettant de mettre en uvre court, moyen ou long terme des systmes de dialogue homme machine finaliss reposant sur une forte composante langagire. Dans ce cadre, son activit se dveloppe dans trois directions complmentaires : l'tude des mcanismes fondamentaux de la communication en langue naturelle seule ou accompagne d'une dsignation gestuelle (dialogue multimodal). Cette recherche s'effectue dans un contexte pluri-disciplinaire alliant linguistique et informatique principalement ; la ralisation de systmes de dialogue effectifs dans le cadre notamment de collaborations industrielles. Cette activit permet par ailleurs de disposer d'une plate-forme d'exprimentation pour la validation des diffrents modles conus par lquipe ; la dfinition d'outils et de mthodes gnriques permettant d'tudier de faon fine des situations de dialogues rels, issus de la transcription d'expriences de simulation ou d'observations directes. Ce travail s'appuie sur une exprience acquise depuis plusieurs annes sur la normalisation et la manipulation de ressources linguistiques (en particulier des corpus ). Lquipe restreint son ambition du DHM finalis, c'est--dire ddi la commande, l'apprentissage ou la recherche d'informations dans un domaine clairement spcifi ; cela suppose que l'on peut expliciter compltement l'action - ou plus gnralement l'intention - vise par l'utilisateur, de manire ce qu'elle puisse tre ralise par le systme . Il ne s'agit, cependant, pas de se limiter l'emploi de quelques bribes de langage naturel pour apporter une consonance naturelle. Les recherches que lquipe mne visent long terme mettre en uvre une vritable communication en langue naturelle entre un usager et une machine. Le choix de partir de l'hypothse d'un dialogue oral - mme si lquipe n'effectue pas de recherche sur la parole proprement dite - rsulte de la volont de grer au plus prs la dynamique de la tche et correspond l'exprience acquise par les chercheurs du groupe dans la prise en compte des aspects temporels dans la langue ainsi que de phnomnes plus particuliers tels que la dixis, que l'on peut observer par exemple dans des expriences de simulation de dialogues oraux. De fait, il semble important, dans un souci de respect de la spontanit des utilisateurs potentiels de leurs systmes, de savoir modliser les modes de rfrenciation immdiate aux diffrentes composantes d'une tche donne, notamment quand celle-ci est visualise sur un cran.
10
3.2.1.3 MULTIMODALITE
Les langues s'emploient toujours dans des contextes rels qui sont par essence multimodaux, c'est--dire intgrant d'autres canaux de communication que la parole ou le texte proprement dit. Pour le moins, des interlocuteurs en situation de dialogue sont toujours situs dans un endroit identifis, un certain moment dans le temps, et ont une conscience mutuelle de leur environnement. L'exploitation de ces informations dans le dialogue leur permet de communiquer avec plus d'efficacit. Les thories contemporaines en smantique commencent peine intgrer ces. L'approche envisage par Langue et Dialogue de la multimodalit reste fortement ancre sur la complmentarit des autres informations avec le matriau linguistique. Elle vise dfinir une description unifie des diffrentes sources d'information qui puisse conduire au dveloppement d'un modle d'interprtation d'noncs en contexte qui soit indpendant des
11
modes de ralisation. Par ailleurs, l'utilisation des logiques de description semble un cadre adquat pour l'intgration des modes sur la base de modles conceptuels unifis.
12
3.2.2.2 GENERATION
Pour de nombreuses applications informatiques, les donnes de toutes natures qui sont produites sont des donnes complexes difficiles interprter par le non expert. Un gnrateur de textes, qui prend en entre ces donnes et produit un texte exprimant le contenu de ces donnes en langue naturelle, permet d'adresser ce problme. Le problme de la gnration de texte est essentiellement un problme de choix: tant donns une multitude de paramtres linguistiques (e.g. , ordonnancement des phrases et des constituants, choix des units et des catgories lexicales) et extra-linguistiques (contexte situationel, connaissance du monde, profil de l'utilisateur), le problme est de fixer les bonnes valeurs pour l'ensemble de ces paramtres. Un texte de bonne qualit sera alors un texte pour lequel le gnrateur a fait les bons choix. Comme l'a montr en particulier le travail de Matthew Stone, la ralisation de textes de bonne qualit passe en outre par une interaction troite entre gnration, reprsentation des connaissances et infrence. On a besoin de cette interaction par exemple pour : vrifier que les prsuppositions du texte gnr soient satisfaites par le contexte nonciatoire ; pour dcider des mots les plus appropris tant donn ce contexte (problme de la lexicalisation) ; construire des rponses dites coopratives cest--dire des rponses qui vont au-del du simple oui / non ou de l'numration et soit corrigent une mauvaise conception de l'utilisateur, soit fournissent une rponse partielle lorsqu'une rponse directe la question pose n'est pas possible.
13
Cette interaction entre gnration et infrence constitue l'un des thmes de recherche de LED.
14
Dans le type de dialogue considr (dialogue de commande), la rfrence aux objets et aux actions constitue l'lment fondamental de toute interprtation. Par ailleurs, il apparat clairement que l'on ne peut tudier les actes de rfrence sans se proccuper de la manire dont l'utilisateur peroit visuellement les objets dont il parle. Ceci amne tout naturellement l'tude conjointe des acteurs que sont : la langue, le geste et la perception visuelle. La langue : on s'intresse spcifiquement aux noncs accompagns d'un geste de dsignation et plus prcisment aux expressions rfrentielles servant de support au geste de dsignation. Le geste : l'objectif est de pouvoir partir de donnes fournies par un dispositif gestuel (ex. souris, cran tactile, interface haptique) de reconstituer une trajectoire partir de laquelle les objets susceptibles d'tre dsigns sont mis en vidence. La perception visuelle : on s'intresse ici la configuration spatiale des objets affichs sur une scne. Il est vident que cette dernire conditionne la forme de la trajectoire mais aussi le choix de l'expression rfrentielle. L'tude de ces trois acteurs fournit des informations essentielles quant au rle de chacun d'entre eux dans l'acte de co-rfrence, informations partir desquelles il est possible de proposer une modlisation du processus d'interprtation menant de l'nonc multimodal l'identification des rfrents (rsolution des rfrences). Depuis environ une dizaine d'anne, LED mne des travaux en ce sens qui ont permis d'apporter des avances diffrents niveaux de conception des systmes de dialogues multimodaux. Aujourd'hui, ses priorits de recherche peuvent se dcliner comme suit : Description gnrale du geste : il s'agit de proposer une modlisation du geste indpendante du dispositif c'est--dire de mettre en vidence les mcanismes fondamentaux qui rgissent la forme des trajectoires en fonction du contexte visuel. Smantique formelle : l'objectif est ici de proposer une modlisation abstraite des contraintes issues des diffrents acteurs intervenant dans l'acte de co-rfrence : a. Focalisation du geste : le geste de dsignation a pour objet de fournir une focalisation sur un sous-espace de l'espace visuel partag entre l'utilisateur et la machine. Cette focalisation prend appuie sur la forme de la trajectoire et sur les caractristiques de la configuration spatiale ; Structuration de l'espace visuel : pour interprter un geste, il est indispensable de disposer d'une modlisation de ce que peroit l'utilisateur de la scne affich sur l'cran de la machine. En effet, un geste vague ne pourra tre compris que si cette imprcision est compense soit par une information prcise de l'nonc langagier qui l'accompagne soit par des caractristiques de saillance forte de la scne. Classification fournie par la langue : le type des rfrents est souvent contenu dans l'expression rfrentielle langagire et donne un
b.
c.
15
lment de filtrage appliquer sur les objets candidats la rfrence. Quand ce n'est pas le cas, cette information peut aussi tre recherche au niveau du prdicat de l'nonc. Intgration smantique des modalits : disposant des diffrentes contraintes nonces prcdemment (contraintes de focalisation, contraintes de saillance, contraintes de type) se pose la question de dterminer le principe qui va guider l'intgration de toutes ces contraintes pour aboutir l'interprtation de l'nonc multimodal. Ainsi LED sappuie sur la thorie de la pertinence qui fournit des heuristiques permettant de rduire l'espace de recherche aux lments les plus pertinents par rapport au contexte d'nonciation. Architecture : l'implantation d'un systme de dialogue multimodal repose sur un ensemble de modules ddis la ralisation de tches spcifiques (tels que traitement des entres : parole, geste, gestion du dialogue, ) mais qui sont nanmoins coopratifs. Cette coopration suppose la circulation d'un flux d'information qui pour tre possible doit s'appuyer sur un langage homogne d'interfaage entre les modules tel que le langage MIL.
16
Station de travail
Serveur
Station de travail
Station de travail
17
Donnes
TCP/
IP
/IP TCP
Serveurs
TCP/IP
Windows
Figure 4 : le modle client-serveur bi-partite Dans l'architecture trois tiers ou multi-tiers, un niveau supplmentaire est ajout entre les deux niveaux prcdents, permettant de sparer les traitements de l'interface graphique et du serveur de base de donnes. Ce niveau intermdiaire peut tre implment de diffrentes manires entre moniteur transactionnel, serveur de messages, ou serveur d'applications. Le dialogue peut se faire en mode synchrone ou en mode asynchrone, dans ce cas l'utilisateur est inform lors d'une nouvelle connexion du rsultat de sa requte prcdente. L'architecture tripartite supporte de la centaine d'utilisateurs plusieurs milliers accdant plusieurs serveurs rpartis gographiquement. La division de l'application en couches distinctes, consacres l'interface utilisateur graphique, la logique de gestion (partitionne entre plusieurs processeurs) et aux traitements sur la base de donnes permet de faciliter l'extension et la maintenance des applications tout en offrant un moyen d'intgration des nouvelles applications aux systmes existants. Ce gain engendre toutefois des tches plus complexes d'administration des composants de l'architecture (clients, serveurs et quipement rseau) ou du dploiement de l'application vers les serveurs.
18
Donnes
Serveurs
TCP/I P
TCP
/IP
Serveurs
TCP/IP
Windows
Figure 5 : modle client-serveur tri-partite Avantages : Rapidit Optimisation des traitements Inconvnients : Choix de plateforme Evolutivit difficile Gourmand en ressources systmes
le but de rpondre des requtes de logiciel client qui tournent sur d'autres ordinateurs.
Serveur Internet
HT
TP
TT P
HTTP
iMac
Figure 6 : le modle Internet Avantages : Multi-plateforme Idale pour de la consultation Facilit de mise en uvre Maintenance aise Inconvnients : Petits fichiers Petits traitements Traitement local quasi inexistant
20
Serveurs Internet
SO AP
AP
SOAP
SO
iMac
Avantages : Multi-plateforme Multi-application Grande volutivit Echange de donnes normalises Inconvenients : Technique relativement rcente
21
4.2.2.1 JAXP
JAXP expose des API connectables d'analyse et de transformation de documents XML quel que soit le processeur XML.
4.2.2.2 JAXB
JAXB expose des API permettant le dveloppement d'applications Java XML. JAXB propose des outils, des API et des environnements pour mapper des documents XML et des objets Java. Un compilateur est fourni pour la conversion de schmas XML en classes Java. L'environnement de liaison permet de contrler les erreurs et la validit des documents XML entrants et sortants.
4.2.2.3 JAX-RPC
JAX-RPC expose des API pour dvelopper des clients et endpoints de service web bass sur SOAP. JAX-RPC est un package requis de la plateforme J2EE 1.4.
4.2.2.4 JAXR
JAXR expose des API pour l'accs, les requtes et l'dition de registres XML.
22
4.2.2.5 JAXM
Le package JAXM expose des API d'envoi et de rception de messages XML orients documents. JAXM supporte la messagerie SOAP 1.1 "with Attachments" (avec pices jointes). JAXM fonctionne avec des profils de messagerie, tel que le service de traitement des messages Transport, Routing & Packaging (transport, routage, enveloppe) d'ebXML. Ce concept ouvre la voie au support de protocoles de messagerie bass sur les standards.
4.2.2.6 SAAJ
SAAJ complte JAXM pour permettre aux dveloppeurs de produire et exploiter des messages SOAP "with Attachments".
23
Vous pouvez maintenant accder la page daccueil du JWSDP via ladresse locale suivante : http://127.0.0.1:8080 (Figure 8 : la page d'accueil du JWSDP).
Cest avec cet outil que peuvent tre appliques, entre autres, les politiques de scurit, le dploiement des services, la redirection des erreurs, les sources de donnes.
24
25
Institut National de la Langue Franaise University of Birmingham, Department of English, School of Humanities
Ressources multimdia
Ressources multimdia
SOAP
Ressources multimdia
Ressources multimdia
Figure 9 : schma du projet Digital Museum Mon travail : Conception et dveloppement d'une maquette de CMF (Content Management Framework) pour le partage de ressources multimdia. Projet "Digital Museum" avec la "National Chi Nan University" de Taiwan.
26
Connection
HTTP Administrator
J S P
Data
DigitalMuseum XML
Exibition Designer
Proxy
SO AP
Designer
S W I N G
X H T M L SMIL
H TTP
5.3.2 LARCHITECTURE
La couche de persistance prend la forme dun package dans la partie administration. Nous avons choisi dappliquer le design pattern factory qui nous permet de manipuler indiffremment et dynamiquement lune ou lautre des implmentations de persistance (XML ou BDD). Voici le diagramme de classe correspondant :
27
ConnectionLayer getConnection(name : String, host : String, port : Integer, database : String, user : String, password : String) : ConnectionLayer connect(name : String) : ConnectionLayer insert(table : String, fields : Enumeration) : Boolean delete(table : String, id : Integer) : Boolean update(table : String, id : Integer, values : Enumeration) : Boolean select(table : String, fields : Enumeration, constraints : String) : Collection
ConnectionJDBC ConnectionJDBC()
ConnectionXind ConnectionXind()
JDBCKit make()
ConnectionDat a
XindKit make()
ConfigParser
5.3.3 LA GRAMMAIRE
Pour raliser cette interface il nous faut concevoir un langage dinterrogation et de manipulation commun aux diffrents types de persistance. Ce langage devra donc combiner des structures de type SQL et Xpath. Expression Constraint Link Colonne Digitoperator Digitval Alphaoperator Alphaval Lowalpha Digit Colchar ::= constraint | expression link expression | (expression) ::= colonne digitoperator digitval | colonne alphaoperator alphaval ::= and | or ::= (lowalpha|digit|colchar)* ::= <,>,>=,<=,!=,= ::= digit* ::= =,!=,~ ::= [<any char but brackets>*] ::= <a..z> ::= <0..9> ::= <_>
28
5.4.2 LARCHITECTURE
La partie administration est une interface entre les JSP et la couche de persistance. Elle est compose de 3 Java Beans jouant ainsi le rle de cache pour les donnes.
29
User user_id user_name user_login user_pass user_email user_rights User() setUser_id() setUser_name() setUser_login() setUser_pass() setUser_email() setUser_rights() getUser_id() getUser_name() getUser_login() getUser_pass() getUser_email() getUser_rights() setAllValues() select() insert() update() delete()
Resource res _id : Integer res _type : String res _author : S tring res _year : Integer res _uri : String res _desc : St ring Resource() setRes _id() setRes _type() setRes _author() setRes _uri() setRes _desc() setRes _year() getRes _id() getRes _type() getRes _author() setRes _year() getRes _uri() getRes _desc() setAllValues() select() insert() update() delete()
QueryResource query : String queryType : String queryAut hor : String queryYear : St ring queryKeyW ords : S tring nbKey Words : int QueryResource() setQuery () setQuery Type() setQuery Author() setQuery Year() setQuery Key Words() setNbK eyWords() getQuery () getQuery Type() getQuery Author() getQuery Year() getQuery Key Words() getNbK eyWords() makeQuery() find()
30
/actions
haut.jsp
connection
Index.jsp
disconnection
Bas.jsp
saveresource
deleteresource
changeresource
/pages
home
about
query
editresource addresource
result
5.4.5 LINTERFACE
Page daccueil (Figure 13) : Descriptif du site Digital Museum Accs la rubrique A Propos Possibilit de saisie du login et du mot de passe pour authentification.
31
Authentification russie (Figure 14): Apparition de 4 nouveaux icons (Recherche, Ajout, Outils et Deconnexion) Affichage dun message personnalis de bienvenue
Figure 14 : authentification russie Recherche (Figure 15) : Formulaire de recherche de ressources multimdia sur le serveur du muse par type et/ou par auteur et/ou par anne et/ou par mots cls (description).
Figure 15 : formulaire de recherche Rsultats (Figure 16) : Ajouter, supprimer, modifier (Figure 17 : modifier une ressource) ou visualiser des ressources multimdias.
32
Figure 17 : modifier une ressource Ajouter une nouvelle ressource (Figure 18) : Renseigner le type par combo box, lauteur de la ressource, sa date de cration, indiquer son uri et une description de la ressource.
33
5.5.2 LARCHITECTURE
Museum DigitalMuseum (Web Service) DigitalMuseumImpl Connection connection ConJDBC
Data
Remote
DigitalMuseumIF
ConXML
XML
WSDL
DigitalMuseumImpl
java.lang.Integer java.lang.Long java.lang.Short java.lang.String java.math.BigDecimal java.math.BigInteger java.util.Calendar java.util.Date java.util.Collection Subinterface Implementation Classes : List, ArrayList LinkedList Stack Vector Map, HashMap Hashtable Properties TreeMap Set, HashSet TreeSet
5.5.4.2 PRIMITIVES
JAX-RPC supporte les primitives Java suivantes : boolean byte double float int long short
5.5.4.3 TABLEAUX
JAX-RPC supporte aussi les tableaux de types JAX-RPC types. Exemples de tableaux supports : int[], String[][].
35
La classe peut contenir des attributs public, private, ou protected. Mais, pour que ces valeurs soient passes (ou retournes) pendant un appel remote, un attribut doit tre compatible avec les spcifications suivantes : Un attribut ne peut pas tre final ou transient Un attribut non public doit possder une mthode getter et setter
5.5.5.1 JAXRPC-RI.XML
Ce fichier dfinit diffrentes caractristiques du service. Il est utilis par l'outil wsdeploy fourni avec le Java Web Services Developer Pack (Java WSDP). L'attribut webServices doit contenir un ou plusieurs lments endpoint spcifiant la classe de l'implmentation du service, la classe de l'interface du service, le nom du service. L'attribut endpointmapping permet d'associer le service une URL.
36
Figure 22 : descripteur du dploiement Toutes les tapes de compilation et dploiement ont t rsumes dans un fichier build.xml appel par ANT.
37
5.5.8 LA PUBLICATION
Le rfrenceur de services porte le nom d'annuaire UDDI (Universal Description Discovery and Integration). L'objectif de ces annuaires est de rfrencer des services au sein d'une mme entreprise ou sur Internet. L'UDDI Business registry contient une srie d'informations accessibles par trois moyens : les pages blanches donnent les noms, adresses, contacts ... des entreprises rfrences et proposant des Web Services, les pages jaunes informent sur le mtier des entreprises, les types de services que ces dernires proposent, les pages vertes apportent les informations ncessaire l'utilisation des services (description fonctionnelle des mthodes, adresse des services, ...). La publication du WebService permet de le rfrencer sur un serveur distant (UDDI) et ainsi le rendre accessible via des outils de recherche. Dans notre architecture, la dcouverte des WebServices se fait par lintermdiaire du Registry Browser et leur sauvegarde dans le systme via linstanciation dun objet java nomm Server Nous avons choisi de publier notre WebService sur le serveur UDDI de microsoft. Pour cela il faut crer un passeport Microsoft et accder au serveur via une interface web. Ensuite il faut enregistrer le provider (fournisseur de service : lorganisation), un contact, le nom du WebService et enfin le ou les access points
38
Figure 24 : l'interface web de microsoft uddi Lors de la description du webservice il ne faut pas oublier de spcifier une langue (en ou fr) pour chaque sous rubrique car cela a des consquences sur la visibilit du webservice lors de la recherche. Si le Registry Browser est paramtr en franais, seul les webservices dont il existe une description en franais seront visibles.
5.6 LE DESIGNER
5.6.1 LE CONCEPT
Disposer dun module de gestion des ressources par caddies et proposer une interface ddition simple des fichiers SMIL.
5.6.2 LARCHITECTURE
Le designer est une application indpendant compose de 4 parties distinctes : Le Registry Browser Le proxy Le noyau (core) Linterface utilisateur (UI)
39
Designer proxy UI
DigitalMuseumClient
Resource
Server
Cart Observer
Servers
S W I N G
ServerView
SMIL core
Figure 25 : architecture du designer (proxy, core et UI) On peut tout de suite remarqu lapplication du design pattern Observer permettant ainsi le dcouplage entre le noyau de lapplication (core) et son interface (UI). En effet, on peut ainsi modifier compltement linterface graphique sans tre oblig de toucher au noyau de lapplication. Enfin, cette construction permet de rafrachir automatiquement laffichage en cas de modification.
40
getResource()
Figure 27 Linstanciation de cet objet se fait en plusieurs tapes et chaque fois que lon souhaite accder un web service. Tout dabord, il faut accder au descripteur de service (WSDL) pour pouvoir crer un objet proxy. Ensuite il faut obtenir un port sur le webservice et enfin la communication RPCSOAP peut alors commencer (
41
Remote
DigitalMuseumIF
Remote
DigitalMuseumIF
WSDL
WSDL
3 1
A SO P
4
SO AP
3 1
4 proxy
DigitalMuseumClient 2
Figure 28 La traduction en code machine JAVA des tapes dcrites prcdemment est illustre par le code suivant : public class DigitalMuseumClient { private String nameSpaceUri = "http://com.test/wsdl/MyDigitalMuseum"; private String serviceName = "MyDigitalMuseum"; private String portName = "DigitalMuseumQueryIFPort"; private URL museumWsdlUrl; private DigitalMuseumIF myProxy; //creation de lobjet public DigitalMuseumClient(URL server) throws Exception { this.museumWsdlUrl = server; ServiceFactory serviceFactory = ServiceFactory.newInstance(); Service museumService=ServiceFactory.createService(museumWsdlUrl, new QName(nameSpaceUri, serviceName)); this.myProxy = (DigitalMuseumIF) museumService.getPort(new QName(nameSpaceUri, portName), DigitalMuseumIF.class); } //mthode dinterrogation public Collection query(String query) throws Exception { return myProxy.getResource(query); } }
42
5.6.2.3 NOYAU
Voici comment sont organiss les diffrents objets formant le noyau (package core). Les objets dont la visualisation se fera laide dune liste limplmentent une ObservableList qui implmente elle mme une interface Observable. Cette architecture sinscrit dans la volont dappliquer le pattern Observer notre structure. Enfin, on remarquera le fait quun projet est serialisable.
<<Interface>> Serializable
(from io)
Servers
Cart name
DigitalMuseum Client
(f ro m proxy )
Obs ervableList vectorObject enumerationObject() : Enumeration size() : Integer addObject(object : Object, position : Integer) addObject(object : Object) deleteObject(object : Object) deleteObject(position : Integer) getObject(position : Integer) moveUp() : Boolean moveDown() : Boolean moveTo(position : Integer) : Boolean
Observable
(from util)
Observable() addObserver() deleteObserver() notifyObservers() notifyObservers() deleteObservers() setChanged() clearChanged() hasChanged() countObservers()
43
Observable
(from util)
ObservableList
(from core)
vect orObject enumerat ionObject () size() addObject() addObject() deleteObject() deleteObject() getObject() moveUp() moveDown() moveTo()
<<Interface>> Observer
(f ro m ut il)
update()
Observable() addObserver() deleteObserver() notifyObservers() notifyObservers() deleteObservers() setChanged() clearChanged() hasChanged() countObservers()
<<Interface>> TableModel
(f ro m t abl e)
OLTableModel
ResourceOLTreeModel
OLComboBoxModel
ResourceOLTableModel
getRoot () getChild() getChildCount() isLeaf() valueForPat hChanged() getIndexOfChild() addTreeModelList ener() removeTreeModelListener()
<<Interface>> ComboBoxModel
(from swing)
setSelectedItem() getSelectedItem()
44
Figure 29
Figure 30 Cette option ouvre une nouvelle fentre et appelle les Registry Browser (Figure 31).
45
Figure 31 Vous avez la possibilit de rechercher les WebServices par catgorie ou par organisation. Sur la Figure 31, on peut voir la recherche par catgorie qui nous a fait dcouvrir un enregistrement. En cliquant dessus, on dcouvre lorganisation LED (Figure 32)
46
Figure 34 Cliquez sur le bouton Add pour ajouter le serveur slectionn dans la liste des serveurs de lapplication. Cette liste est srialise dans le fichier servers.cfg la racine de lapplication.
Figure 36
47
Configuration Cette tape consiste associer des serveurs au projet afin de consulter simultanment plusieurs WebServices lors dune mme requte. Pour cela allez dans Project | Edit server list (Figure 37).
Figure 37 Slectionnez le ou les serveurs de lapplication qui seront utiliss par le projet dans la combo box global server et cliquez sur Add (Figure 38). Les serveurs ainsi slectionns sont automatiquement visibles dans la combo box project servers et peuvent tre supprims (ou rendus global si le projet a t charg depuis un fichier)
Figure 38 Cration dun cart Le cart est une liste de ressources multimdia obtenu aprs une interrogation sur un ou plusieurs WebService. Pour crer un nouveau cart associ au projet, selectionnez Cart | New dans le menu (Figure 39).
Figure 39 Une fentre apparat. Choisissez le projet en cours dans la combo box Please select a project puis entrez le nom de cart souhait et enfin crivez la requte de slection dans le champ please enter your query (pas de requte entrane une slection de toutes les ressources disponibles).(Figure 40)
48
Figure 40 Le cart NewCart est maintenant cr et associ au projet NewProject. Cration dune prsentation multimdia Ouvrir la fentre correspondant au projet NewProject et slectionnez, gauche, le cart contenant les ressources utilises pour la prsentation multimdia (Figure 41).
Figure 41 La fentre de droite est un diteur de texte. En double cliquant sur une ressource gauche, le code (SMIL) est automatiquement inscrit au niveau du curseur de lditeur. Une fois la prsentation SMIL termine on peut lenregistrer dans lapplication ou encore exporter son travail directement dans un fichier SMIL (Figure 42).
49
Figure 42 Gestion des carts Indpendamment dun projet lapplication propose une gestion des carts. La gestion des carts consiste nettoyer et fusionner les carts enregistrs dans diffrents projets. Slectionnez Cart | Edit dans le menu. Choisissez gauche le projet et un cart (ici Cart1) et droite un autre cart (Cart2) (Figure 43).
Figure 43 Les flches du bas permettent dordonner les ressources et passer les ressources dun cart lautre.
50
BeanQuery
HTTP
Admin
J S P
ConJDBC
Data
BeanResource
Connection
BeanUser
ConXML
XML
Remote
DigitalMuseumIF
SO
AP
Resource
Server
Cart Observer
Servers
S W I N G
Designer
ServerView
SMIL core
X H T M L
HTTP
SMIL
51
6 PERSPECTIVES
Le prototype ralis est dj all trs loin dans loptimisation et limplmentation java. Cependant il convient de lister les amliorations encore possibles.
6.2 UDDI
DigitalMuseum utilise UDDI afin de rechercher les webservices disponibles mais ne teste pas la compatibilit avec notre systme. En effet, on peut rfrencer et tenter dutiliser un websevice totalement tranger au DigitalMuseum. De plus, cest lutilisateur qui est charg de rechercher manuellement les webservices. Il nous semble donc intressant de remplacer UDDI pour un systme hirarchique de SOAPCASTER charg de trouver automatiquement les webservices de type DigitalMuseum en bon tat de fonctionnement.
52
6.6 PROGRAMMATION
De nombreux modules sont crer ou amliorer : La rubrique Outils de linterface dadministration web devra tre cre (donnes orphelines, utilisateurs, nettoyage de la base de donne, gestion des connexion BDD) Le code correspondant au lien mot de passe perdu de linterface dadministration web devra tre cre La rubrique Ajouter et modifier devront offrir la possibilit de charger la ressource sur le serveur. Il faut supprimer les fichiers ConnectionData.java afin de modifier les paramtres de connexion sans tre oblig de recompiler.
53
7 CONCLUSION
Le but fix par le stage a t atteint et le rsultat obtenu dpasse largement nos esprances. En effet, cest bien plus quune maquette qui a t ralise, cest une application presque finalise et accompagne de toute la documentation technique et conceptuelle ncessaire sa bonne volution. Toutes les difficults techniques ne sont pas encore vaincues (Bases de donnes XML) mais tout porte croire quelles le seront bientt et sont en grande partie dues la jeunesse des produits. Lors de ce stage, jai dispos dun large espace de libert. Cest la bienveillance de Samuel CRUZ-LARA que je dois cet espace. Je suis fier des choix que jai pu prendre lors de ce stage car ils ont conduit le projet un haut niveau de qualit et de technicit. Une prolongation de stage a t conclue lissue de mes travaux afin de finaliser la documentation et prparer la publication et la prsentation des travaux sur les Web Services lquipe Langue et Dialogue et lIEEE.
54