• Aucun résultat trouvé

6.2 Approche g´en´erale et choix technologiques

6.2.1 Plate-forme logicielle

Lorsque nous avons d´efini le cahier des charges pour le prototype exp´erimen-tal, deux paradigmes technologiques ont ´et´e d´efinis : le socle logiciel sur lequel le d´eveloppement du prototype allait reposer devait permettre la production d’ap-plications ind´ependantes – par opposition `a des plugins ou extensions d’applica-tions existantes – et permettre la production d’applicad’applica-tions multi-plates-formes. Le premier paradigme r´epondait au besoin de d´efinir ses propres interfaces et de mani`ere g´en´erale de contrˆoler le fonctionnement de l’application dans son in-t´egralit´e. Bien sˆur, nous notre objectif n’´etait pas un d´eveloppement ex nihilo, mais de disposer d’une infrastructure logicielle permettant une mise en œuvre ra-pide des fonctionnalit´es de notre mod`ele d’environnement sans pour autant ˆetre contraints par un logiciel aux fonctionnalit´es et interfaces vou´ees `a un autre but que la lecture savante. Le deuxi`eme paradigme ´etait fond´e sur une volont´e de multiplier les possibilit´es d’exploitation du prototype, en le rendant ind´ependant d’un syst`eme d’exploitation particulier. Les technologies Java se sont pr´esent´ees naturellement comme un candidat satisfaisant ces deux crit`eres. Cependant, la relative lenteur d’ex´ecution des applications Java et surtout la n´ecessit´e de consti-tuer un framework composite pour disposer d’une infrastructure logicielle servant de socle `a nos d´eveloppements a jou´e en leur d´efaveur1

. Nous nous sommes alors tourn´es vers le framework mis en place par la communaut´e Mozilla dans le cadre de leurs d´eveloppements d’applications Web. Celui-ci propose en effet un vaste panel de fonctionnalit´es regroup´ees dans un ensemble homog`ene, qui plus est en exploitant un large nombre de standards du W3C2

. Les applications produites par le fondation Mozilla3

illustrent la qualit´e des d´eveloppements que ce frame-work permet de mettre en œuvre. De plus, l’Unit´e d’Innovation ICS avait d´ej`a une exp´erience de d´eveloppement reposant sur ce framework4

, mettant `a notre disposition une pr´ecieuse expertise. Enfin, ce framework propose une approche de d´eveloppement appropri´ee au prototypage, le Rapid Application Development (McFarlane 2003). La figure6.1donne une vue d’ensemble de ce framework, dont nous allons d´etailler certains ´el´ements.

Le cœur du framework repose sur la technologie XPCOM5

(Cross Platform Component Object Model), qui propose une approche de d´eveloppement centr´ee sur des composants `a l’instar de CORBA6

ou Microsoft Component Object Mo-1. L’ensemble de fonctionnalit´es d´ecrites dans le chapitre 5 n´ecessite le recours `a des biblio-th`eques tierces, si on ne veut pas tout impl´ementer `a partir des seules primitives du langage.

2. World Wide Web Consortium : organisme de standardisation `a l’origine du HTML, XML, RDF, etc.

3. Les plus populaires ´etant leur client de messagerie Thunderbird et leur navigateur Firefox. 4. Notamment dans les diverses d´eclinaisons de la chaˆıne ´editoriale SCENARI.

5. http://www.mozilla.org/projects/xpcom/(derni`ere consultation : d´ecembre 2007) 6. Common Object Request Broker Architecture, standard de l’Object Management Group

Figure 6.1 – Le framework de la fondation Mozilla (d’apr`es (McFarlane 2003))

del (COM). Une telle approche peut ˆetre consid´er´ee comme une extension de la programmation orient´ee objet : les composants sont des briques logicielles d´e-velopp´ees avec des langages vari´es et dont les interfaces sont d´ecrites avec un langage commun (souvent appel´e IDL pour Interface Definition Language). Les divers composants peuvent ainsi ˆetre coupl´es et communiquer entre eux sur une mˆeme machine ou `a travers un r´eseau. Cette approche permet par cons´equent de mutualiser des d´eveloppements au-del`a d’un langage de programmation particu-lier et de mettre en place une logique de production multi-plateforme en proposant pour une interface donn´ee plusieurs impl´ementations du composant selon l’archi-tecture sous-jacente. XPCOM comprend un ensemble de composants de base, mais peut ˆetre ´etendu selon les besoins des d´eveloppeurs qui peuvent en cr´eer les leurs. Tous les composants sont rendus accessibles `a des langages interpr´et´es, typiquement JavaScript7

, grˆace `a la couche XPConnect. Au-del`a de cette couche, nous arrivons `a la partie du framework consacr´ee au param´etrage de l’interface utilisateur d’une application. Cette partie du framework se base uniquement sur la production de code interpr´et´e, sans compilation. Elle contient :

permettant `a des composants logiciels ´ecrits avec des langages de programmation diff´erents de fonctionner ensemble.

– XUL : certainement la partie la plus populaire du framework, XUL est un dialecte XML d´edi´e `a la sp´ecification d’interfaces graphiques. Ces derni`eres sont d´ecrites comme un assemblage de composants (boutons, zones texte, images, menus, fenˆetres, etc.).

– Templates : les gabarits permettent de d´efinir un param´etrage des compo-sants de l’interface en fonction de donn´ees fournies par des sources RDF8

. C’est-`a-dire qu’en exploitant les informations de la source RDF, du code XUL pourra ˆetre g´en´er´e dynamiquement (si une modification est apport´ee aux descriptions RDF, elle se r´epercute directement sur l’interface). L’ex-ploitation des informations contenues dans la source de donn´ees RDF peut aller du peuplement de listes d’´el´ements d’apr`es le nom des ressources d´e-crites `a la cr´eation de boutons ou autres composants d’interface en fonction du nombre de ressources, etc.

– XBL : l’eXtensible Bindings Language est utilis´e lors de la d´efinition d’inter-faces XUL afin de permettre d’associer des comportements `a des composants graphiques. C’est ce langage qui permet de cr´eer ses propres composants graphiques ou de modifier le comportement de ceux qui sont d´ej`a pr´esents. – Overlays : ce sont des regroupements d’´el´ements constituant l’interface, qui peuvent ˆetre manipul´es comme des blocs et ainsi permettre une modulari-sation de l’interface utilisateur.

D´evelopper une application dans ce framework consiste principalement `a d´e-finir l’interface graphique dans le langage XUL et ensuite `a lui adjoindre des fonctionnalit´es en utilisant le langage JavaScript. Le recours au d´eveloppement de nouveaux composants XPCOM n’est n´ecessaire que lorsque ceux fournis par Mozilla ne sont pas suffisants. Or comme ce framework est utilis´e par Mozilla pour le d´eveloppement de ses applications Web, les composants fournis sont d´ej`a pl´ethore. On dispose des fonctions d’acc`es au syst`eme de fichiers, d’affichage de pages Web, de manipulation d’arbres via le DOM9

, de manipulation d’images SVG10

, d’extraction de donn´ees `a partir de graphes RDF, etc. Ce bouquet de fonctionnalit´es regroup´ees dans le mˆeme framework offre un excellent socle pour la conception d’applications avec une forte empreinte Web ou des technologies associ´ees, ce qui a ´et´e un argument en faveur de son adoption dans le cadre de notre projet. Comme tout le code de l’interface utilisateur est ´ecrit en langages interpr´etatifs, un moteur d’ex´ecution est n´ecessaire pour faire fonctionner une application d´evelopp´ee dans ce framework. Il s’agit de XULRunner11

, qui per-8. Resource Description Framework : langage XML permettant de d´efinir des graphes pour fournir une description formelle des ressources Web (c’est un standard du W3C).

9. Document Object Model : mod`ele de repr´esentation d’un document – au sens informatique – en m´emoire, pour sa manipulation dynamique (c’est un standard du W3C).

10. Scalable Vector Graphics : langage XML pour la cr´eation d’images vectorielles (c’est un standard du W3C).

met la r´ealisation d’applications ind´ependantes et auto-suffisantes. Ce moteur d’applications XUL existe pour les syst`emes d’exploitation Windows, Linux et MacOS, ce qui garanti une ex´ecution en natif des fonctionnalit´es assur´ees par les composants XPCOM. Quelques exemples d’applications bas´ees sur XULRunner : la chaˆıne ´editoriale SCENARI, l’application d’aide `a la pr´e-production Celtx, le service de t´el´evision sur IP Joost ou encore le logiciel de t´el´ephonie sur Internet WengoPhone12

.