4.3 Vers une infrastructure de gestion de composition d’applications
5.2.1 Mod` eles de description des applications, des fonctionnali-
Afin de permettre aux syst`emes de gestion de composition de manipuler les dif- f´erentes descriptions, FCAP propose des mod`eles de description de haut-niveau pour les applications, les fonctionnalit´es et les configurations. Ces mod`eles d´efinissent les concepts principaux, g´en´eriques et applicables `a tout environnement attentif. Ces mo- d`eles peuvent ainsi ˆetre ´etendus pour d´ecrire plus pr´ecis´ement les caract´eristiques d’une application, d’une fonctionnalit´e, ou d’une configuration.
a) Mod`ele de description d’application abstraite
Le mod`ele de description d’application abstraite permet la sp´ecification d’une ap- plication de mani`ere abstraite, sans faire r´ef´erence aux dispositifs et aux fonctionnalit´es qui peuvent ˆetre pr´esents dans l’environnement. La figure 5.3 pr´esente ce mod`ele de description. Il se compose de trois concepts :
app:AbsFunctionnality repr´esente le concept de fonctionnalit´e d’une application abs- traite (ou fonctionnalit´e abstraite). Une fonctionnalit´e abstraite repr´esente une fonctionnalit´e dont les caract´eristiques correspondent aux besoins exprim´es par l’application abstraite, mais ne fait pas n´ecessairement r´ef´erence `a une fonction- nalit´e r´eellement fournie par un dispositif.
app:Interaction repr´esente le concept d’interaction entre des fonctionnalit´es. Des fonc- tionnalit´es peuvent interagir pour ´echanger des informations, ou avoir une in- fluence indirecte l’une sur l’autre. On consid`ere ici qu’une interaction lie toujours deux fonctionnalit´es.
app:Application repr´esente le concept d’application. Une application comporte g´en´e- ralement plusieurs fonctionnalit´es abstraites qui interagissent.
app:Application
app:Interaction
app:AbsFunctionality
2 0..n 1 1app:hasInteraction
app:hasFunctionality
app:involves
1 0..nFigure 5.3 – Mod`ele de description d’application
Exemple La figure 5.4 pr´esente une partie de la description d’une application cor- respondant au sc´enario de la section 2.1.2. Cette description d´efinit une application irnotif:app, compos´ee de deux fonctionnalit´es : irnotif:sender et irnotif:notifier. Elle d´efi- nit de plus que ces deux fonctionnalit´es doivent interagir au travers d’une interaction irnotif:interaction (sans pr´eciser la nature de cette interaction).
b) Mod`ele de description de fonctionnalit´e
Le mod`ele de description de fonctionnalit´e est un mod`ele de haut-niveau, qui s’ap- plique `a toute sorte de fonctionnalit´es pr´esentes dans un environnement attentif. La
irnotif:app a app:Application ; app:hasFunctionnality irnotif:sender ; app:hasFunctionnality irnotif:notifier ; app:hasInteraction irnotif:interaction1 . irnotif:sender a app:AbsFunctionnality . irnotif:notifier a app:AbsFunctionnality . irnotif:interaction1 a app:Interaction ; app:involves irnotif:sender ; app:involves irnotif:notifier .
Figure 5.4 – Partie de la description de l’application
figure 5.5 repr´esente le mod`ele de description de fonctionnalit´es. Cette ontologie pr´e- sente deux classes (ou concepts) essentiels :
fonct:Composable
fonct:Service
0..n 0..n
1 1
fonct:expects
fonct:provides
Figure 5.5 – Mod`ele de description de fonctionnalit´e
fonct:Composable repr´esente le concept de fonctionnalit´e composable. Une fonction- nalit´e composable peut ˆetre compos´ee avec d’autres fonctionnalit´es pour former une application.
fonct:Service repr´esente un service grˆace auquel il est possible d’invoquer une fonc- tionnalit´e. La propri´et´e fonct:provides permet d’exprimer qu’une fonctionnalit´e fournit un service. La propri´et´e fonct:expects permet d’exprimer qu’une fonc- tionnalit´e s’attend `a utiliser un service fourni par une autre fonctionnalit´e.
Exemple Les figures suivantes pr´esentent des descriptions de fonctionnalit´es du sc´enario pr´esent´e dans la section 2.1.2.
– La figure 5.6 pr´esente une partie de la description de la fonctionnalit´e offerte par le cadre photo. Elle d´efinit ainsi que la ressource nomm´ee pframe:msg displayer est
une fonctionnalit´e composable et qu’elle fournit un service, nomm´e pframe:VisualNotification. – La figure 5.7 pr´esente une partie de la description de la fonctionnalit´e offerte par
iRider. Elle d´efinit ainsi que la ressource nomm´ee irider:irider est une fonction- nalit´e composable et qu’elle attend un service, nomm´ee irider:notif service.
pframe:msg_displayer a fonct:Composable ;
fonct:provides pframe:display_service . pframe:display_service
a fonct:Service .
Figure 5.6 – Partie de la description du cadre photo
irider:irider
a fonct:Composable ; fonct:expects irider:notif_service . irider:notif_service
a fonct:Service .
Figure 5.7 – Partie de la description de iRider
c) Mod`ele de description de configuration
La mod´elisation des configurations s’appuie sur la mod´elisation des fonctionnalit´es et fournit des ´el´ements pour d´ecrire des interactions entre les fonctionnalit´es. La figure 5.8 repr´esente le mod`ele de description des configurations. Ce mod`ele pr´esente deux classes essentielles :
conf:Assembly repr´esente le concept d’assemblage de plusieurs fonctionnalit´es. Un as- semblage implique plusieurs fonctionnalit´es composables et met en place des connecteurs pour les faire interagir.
conf:Connector repr´esente le concept de connecteur entre des services. Un connec- teur permet de mettre en interaction un service fourni par une fonctionnalit´e composable et un service attendu par une autre fonctionnalit´e composable.
conf:Assembly
conf:Connector
fonct:Composable
1..n 1 1conf:creates
conf:involves
conf:provided
fonct:Service
conf:expected
1 1 0..n 0..n 0..nFigure 5.8 – Mod`ele de description des configurations
Exemple La figure 5.9 pr´esente un assemblage issu du sc´enario pr´esent´e dans la section 2.1.2. Elle d´efinit que la ressource nomm´ee notif1:asm1 est un assemblage, qui
implique les ressources pframe:msg displayer et irider:irider. Cet assemblage cr´ee de plus un connecteur nomm´e notif1:connector1, qui connecte deux fonctionnalit´es composables pframe:msg displayer et irider:irider en consid´erant pframe:display service comme service fournit et irider:notif service comme service attendu.
notif1:asm1
a conf:Assembly ;
conf:involves pframe:msg_displayer ;
conf:involves irider:irider ;
conf:creates connect:connector .
notif1:connector1
a conf:Connector ;
conf:connects pframe:msg_displayer ;
conf:connects irider:irider ;
conf:provided pframe:display_service ;
conf:expected irider:notif_service .
Figure 5.9 – Partie de la description d’un assemblage de iRider et du cadre photo