La description de l’assemblage permet également de définir les aspects de
dis-tribution à l’exécution du composant. Par exemple, un composant peut être exécuté
de localement ou à distance (sur une autre machine).
Compilation et exécution
Une fois les composants et l’assemblage décrits par les fichiers CIDL et PDCL
res-pectifs, la plate-forme gère la compilation et l’exécution de l’assemblage. La
com-pilation permet de générer les proxies des composants utilisés. L’exécution va
ins-tancier chaque composant et gérer les connexions.
7.2 OIDE, notre environnement de prototypage
Dans cette section, nous présentons notre environnement OIDE (OpenInterface
Interaction Development Environment) développé au dessus de la plate-forme à
composants de la section précédente. Pour cela, nous décrivons d’abord son
archi-tecture et son modèle logiciel. Nous présentons ensuite son interface graphique et
l’intégration de composants. Nous finissons en soulignant les deux types
d’utilisa-tion de notre outil.
7.2.1 Architecture et modèle logiciel
Notre environnement graphique noté OIDE (OpenInterface Interaction
Develop-ment EnvironDevelop-ment) est construit au dessus de la plate-forme à composants
Ope-nInterface. Nous avons appelé l’ensemble de cette architecture la plate-forme
Ope-nInterface(OI framework) et nous utilisons le termenoyau OpenInterface(kernel OI)
pour désigner la plate-forme à composants sous-jacente, présentée à la section
pré-cédente (Figure 7.3).
OIDE NOYAU OI
PLATE_FORME OPENINTERFACE
Concepteur
F
IGURE7.3 – Architecture globale de la plate-forme OpenInterface : environnement
gra-phique de prototypage (OIDE) + plate-forme à composants sous-jacente (noyau OI).
L’éditeur a été implémenté en Java afin d’assurer le même niveau de
portabi-lité que le noyau. Nous avons implémenté l’architecture Modèle-Vue-Contrôleur
(MVC) (section 3.3.4 du chapitre 3), de la Figure 7.4, afin de séparer l’interface
gra-phique de la description fonctionnelle des composants. Le contrôleur (C) gère la
synchronisation entre la vue et le modèle. La vue (V) englobe l’interface graphique
de l’éditeur, les différents menus et les aspects graphiques du graphe de
l’assem-blage de composants. Le modèle (M) inclut notre modèle conceptuel de la
multimo-dalité et le modèle à composants du noyau (Figure 7.4). En effet, afin de clairement
168 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT
dissocier l’OIDE du noyau OI, le modèle logiciel de l’éditeur considère deux
par-ties : le modèle de la multimodalité et le modèle technique du noyau. Le modèle
de la multimodalité implémente notre modèle conceptuel (chapitre 4). Ce modèle
est décrit dans un fichier xml nommé MCDL (Multimodal Component Description
Language) que nous présentons à la section 7.3.1. Le modèle technique implémente
la description technique (CIDL, PDCL) des composants et des assemblages OI.
Contrôleur
de dialogue
GUI de l'éditeur
+
Graphe de l'assemblage
Modèle de la multimodalité
+
Modèle du noyau OI
VUE
MODÈLE
CONTRÔLEUR
changement
d'état
Sélection de la
vue
actions
utilisateur
requête
d'état
notification
changement
F
IGURE7.4 – Architecture MVC de l’éditeur graphique.
Ainsi, la partie Modèle de notre outil manipule avant tout des composants de
type multimodal. Un composant multimodal est composé d’une description selon
notre modèle conceptuel dédié à la multimodalité et d’une description technique.
La description technique dépend de l’approche à composants sous-jacente utilisée.
Dans notre cas, la description technique implémente le modèle logiciel du noyau
OI (CIDL + PDCL). La Figure 7.5 schématise le modèle logiciel du OIDE.
7.2.2 Composants logiciels, éléments de base du OIDE
Les composants logiciels décrits selon le modèle introduit ci-dessus constituent les
unités élémentaires manipulées par l’OIDE. Dans un contexte de conception rapide
de prototypes multimodaux, notre objectif est de définir un processus efficace et
flexible pour ajouter des composants logiciels au sein de notre outil de prototypage.
Pour viser une intégration efficace d’un nouveau composant, nous définissons
un processus avec un nombre réduit d’étapes (entre une et trois étapes). De plus
le processus d’intégration est flexible et certaines étapes sont optionnelles. Ainsi
l’OIDE permet la manipulation de composants partiellement décrits.
Le processus complet d’intégration commence avec le code source d’un
compo-sant. La Figure 7.6 illustre ce processus avec un composant c++ comme exemple. Il
faut ensuite générer la librairie correspondante (dll en c++, jar en java, etc.). Notons
qu’il est possible de commencer directement à partir d’une libraire. Puis
l’utilisa-teur doit décrire le composant et son interface dans le langage CIDL afin de le
rendre opérationnel au sein du noyau OI. À ce point, le composant est prêt à être
7.2. OIDE, NOTRE ENVIRONNEMENT DE PROTOTYPAGE 169
Modèle Noyau OI
Modèle de la
Multimodalité
Composant
Multimodal
MCDL
Assemblage
Multimodal
Description
Technique
Composant
*
1
*
1
Description
Technique
Assemblage
*
1
Modèle
Assemblage OI
PDCL
Modèle
Composant OI
CIDL
*
1
F
IGURE7.5 – Modèle logiciel du OIDE composé d’un modèle multimodal et d’un modèle
technique.
utilisé dans l’OIDE, même si la description selon notre modèle de la
multimoda-lité (MCDL) n’est pas réalisée. Cela permet d’intégrer et de tester rapidement des
composants techniques.
Code source du composant
Librairie du composant
Description technique CIDL
Description multimodale MCDL .h + cpp .h + dll xml CIDL xml MCDL
début possible
composant
technique
composant
d'interaction
multimodale
début possible
F
IGURE7.6 – Étapes de l’intégration d’un nouveau composant (c++ dans l’exemple) dans
la plate-forme. À gauche les départs possibles et à droite les points d’intégration.
Lorsque l’utilisateur veut décrire complètement un composant outre la
descrip-tion CIDL, elle/il doit décrire le composant selon le langage MCDL, que nous
pré-sentons en détail à la section 7.3.1. Le composant ainsi décrit peut être déposé en
ligne et exploité au sein du OIDE. Nous notons (1) les composants partiellement
dé-crits (uniquement la description CIDL), des composants techniques et (2) les
com-170 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT
posants complètement décrits (description CIDL et MCDL) des composants
d’in-teraction multimodale. Afin de faciliter la création des descriptions, il est possible
d’éditer facilement une description MCDL d’un composant (formulaire).
Afin de gérer les composants ainsi décrits et intégrés à la plate-forme, nous
avons établi deux dépôts de composants
2: un dépôt local et un dépôt en ligne.
Le dépôt local de composants est un stockage localisé sur la même machine que
l’installation du OIDE. Ainsi, chaque installation du OIDE possède son propre
dé-pôt local. Le dédé-pôt local est composé de deux stockages distinguant les composants
partiellement décrits (composants techniques décrits selon le CIDL), de ceux décrits
complétement (composants d’interaction multimodale décrits selon le CIDL et le
MCDL). L’OIDE gère donc ces deux types de composants (Figure 7.7). Les
compo-sants du dépôt local comprennent les compocompo-sants installés par défaut avec l’OIDE,
des composants que l’utilisateur a développé et intégré à la plate-forme ainsi que
des composants que l’utilisateur a téléchargé du dépôt en ligne.
Local Repository Model Component Repository Interaction Component Repository OI Component Repository
décrit selon
MCDL
décrit selon
CIDL
F
IGURE7.7 – Dépôt local de composants divisé en deux : un stockage de composants
d’in-teraction multimodale et un stockage de composants techniques.
L’Université de Glasgow (partenaire du projet OpenInterface) a développé un
dépôt de composants en ligne, leOpenInterface repository, qui permet d’ajouter ou
de télécharger des composants. Le dépôt en ligne exploite la description des
com-posants MCDL reposant sur notre modèle conceptuel (section 7.3.1), ce qui permet
entre autre de chercher des composants selon des caractéristiques de notre modèle,
comme le type de composant (dispositif, transformation, composition ou tâche)
(Fi-gure 7.8).
Le dépôt en ligne est intégré à notre outil : la commande de recherche de
com-posants en ligne du OIDE permet de télécharger et installer automatiquement un
composant (qu’il soit technique ou d’interaction multimodale) dans le dépôt local.
7.2.3 Editeur graphique (Vue)
L’interface graphique de l’outil (partie Vue de la Figure 7.4) a été implémentée avec
Java Swing, la bibliothèque graphique de Java, afin de bénéficier de sa portabilité
sur différents systèmes d’exploitation. L’interface graphique est composée de 4
es-paces principaux : la librairie de composants techniques (zone A à la Figure 7.9),
7.2. OIDE, NOTRE ENVIRONNEMENT DE PROTOTYPAGE 171
F
IGURE7.8 – Interface web duOpenInterface repository.
la librairie de composants d’interaction multimodale (zone B à la Figure 7.9), la
li-brairie d’outils (zone C à la Figure 7.9) et la zone de conception (zone D à la Figure
7.9).
A
B
C
D
F
IGURE7.9 – Interface graphique du OIDE.
La libraire de composants (A) contient tous les composants techniques
dispo-nibles dans le dépôt local. La libraire de composants (B) contient tous les
compo-sants d’interaction multimodale disponibles dans le dépôt local. Ainsi, notre outil
admet l’utilisation mixte de composants caractérisés et non-caractérisés, dans le
but de doter notre outil d’une plus grande flexibilité et d’inter-opérabilité. Comme
nous l’avons expliqué, cela permet aussi de rendre plus rapide l’ajout d’un
compo-sant par exemple pour le tester au sein d’une interaction multimodale. La librairie
172 CHAPITRE 7. NOTRE OUTIL POUR LE PROTOTYPAGE MULTIMODAL :OPENINTERFACE INTERACTION DEVELOPMENT ENVIRONMENT
d’outils (C) contient tous les composants utilitaires disponibles dans le dépôt local,
comme le composant DataViewer, qui permet de voir textuellement des données
numériques ou textuelles. Nous présentons à la section 7.4 les composants
utili-taires développés.
Au sein de la barre d’outils de l’interface se trouvent les commandes
essen-tielles de l’OIDE. Quatre boutons rassemblent les principales actions utilisées par
le concepteur pendant la création d’une interaction multimodale (Figure 7.10) :
• Compilation : permet de compiler l’assemblage afin de générer les proxies
des composants utilisés. Cette opération doit seulement se faire si on utilise
un composant pour la première fois.
• Exécution: permet d’exécuter l’assemblage conçu.
• Connexion au dépôt de composants distants : permet de se connecter à la
base de composants en ligne, distante pour télécharger des composants.
• Changement de mode d’exécution: permet de passer du mode d’exécution
statique au mode dynamique. Nous expliquons ces différents modes
d’exécu-tion dans la secd’exécu-tion suivante.
Compilation Execution Changement
Mode
Execution
Chercher
Composants
Distants
F
IGURE7.10 – Commandes principales du OIDE.
7.2.4 Utilisation du OIDE et dynamicité du prototype développé
Pour développer un prototype multimodal, l’utilisateur assemble des composants
dans la zone de conception de l’éditeur (zone B de la Figure 7.9). Nous distinguons
deux modes d’utilisation :
• Mode statique de conception : dans ce mode, les phases de conception
(construction de l’assemblage) et l’exécution sont séquentielles.
Dans le document
Interaction multimodale en entrée : Conception et Prototypage
(Page 188-194)