• Aucun résultat trouvé

2.2 Trois probl´ ematiques de conception des applications attentives

2.2.2 Robustesse des applications

Les environnements d’informatique ubiquitaire en g´en´eral et les environne- ments interactifs en particulier, ont pour particularit´e d’ˆetre beaucoup plus dy- namiques et instables que l’environnement traditionnel de l’ordinateur de bureau (Russell et al., 2005). Ce sont en effet des environnements distribu´es, constitu´es de dispositif de capacit´es diverses, et soumis aux contraintes peu contrˆolables du monde physique. Dans ces conditions, les applications attentives, destin´ees `a rester actives sur de tr`es longues p´eriodes, doivent ˆetre particuli`erement fiables et robustes pour fonctionner de mani`ere satisfaisante dans un environnement dynamique, instable et en ´evolution.

Cette section d´ecompose la probl´ematique de robustesse des applications en plusieurs probl`emes. La figure 2.2 repr´esente graphiquement la d´ecomposition effectu´ee.

a) D´eploiement automatique

Exemple 4 Lorsqu’il initialise une requˆete iRider, Thom n’a pas `a indiquer les dispositifs qui pourront ˆetre utilis´es pour le tenir inform´e (´ecran et lampe ambiante). Ceux-ci sont d´ecouverts et configur´es pour ˆetre utilis´es par iRider de mani`ere automatique.

Un premier aspect de robustesse d’une application attentive est la capacit´e `a fonctionner dans un environnement particulier, l’environnement d’un utilisateur particulier, dont les caract´eristiques compl`etes ne peuvent pas ˆetre connues pr´e- cis´ement lors de la conception de l’application. Pour cela, l’application doit pou- voir se configurer plus ou moins automatiquement pour exploiter les ressources disponibles dans l’environnement.

Robustesse

Déploiement

Dynamicité

Pannes

Découverte

Conformité

Encapsulation

Apparition

Détection

Récupération

Réparation

Évolution

Substitution

Environnement

Dispositifs

Fonctionnalités

Figure 2.2 – D´ecomposition de la probl´ematique de robustesse des applications

D´ecouverte et s´election L’application doit d´ecouvrir et s´electionner dyna- miquement les fonctionnalit´es pr´esentes dans un environnement particulier. Les concepteurs d’applications doivent limiter les hypoth`eses sur les caract´eristiques pr´ecises des ressources que l’application utilisera lors de son fonctionnement. V´erification de conformit´e L’application doit assurer l’interop´erabilit´e entre les fonctionnalit´es qu’elle utilise. En effet, l’environnement est un syst`eme ou- vert (Davies & Gellersen, 2002) dans lequel il n’existe pas de garantie que les diff´erentes fonctionnalit´es peuvent fonctionner ensemble. Aucune hypoth`ese ne peut donc ˆetre faite a priori sur l’interop´erabilit´e des fonctionnalit´es, et cette interop´erabilit´e doit ˆetre v´erifi´ee lors de l’ex´ecution.

Interposition et encapsulation L’application doit assembler des fonction- nalit´es qui n’ont pas ´et´e con¸cues pour fonctionner ensemble. Dans certains cas, le fonctionnement de l’application peut n´ecessiter la mise en place de m´ecanismes d’interposition et d’adaptation qui permettent `a des fonctionnalit´es d’interagir malgr´e leur manque d’interop´erabilit´e (Grimm, 2004). La capacit´e de l’applica- tion `a mettre en place de telles adaptations de mani`ere raisonnablement automa- tique est primordiale pour assurer un d´eploiement simple dans un environnement particulier.

b) Dynamicit´e

Exemple 5 Au cours de son utilisation, l’application iRider pr´esente diff´e- rentes configurations, qui d´ependent de la situation. En particulier, l’interface utilis´ee pour informer Thom ´evolue selon l’importance des informations `a trans- mettre.

Les applications attentives sont actives sur de longues dur´ees et peuvent rencon- trer de nombreuses situations diff´erentes dans lesquelles elles doivent continuer `

a r´epondre aux besoins de l’utilisateur. Pour cela, elles doivent ˆetre capables de se reconfigurer dynamiquement et d’ajouter/retirer certaines fonctionnalit´es.

Apparition/disparition de fonctionnalit´e Dans un environnement inter- actif, l’ajout ou le retrait de fonctionnalit´es sont courants, que ce soit en raison de la mobilit´e des dispositifs ou `a cause de dysfonctionnements temporaires. L’application doit prendre en charge la possibilit´e d’ajouter et de retirer dy- namiquement des fonctionnalit´es au cours de son fonctionnement, sans avoir `a red´emarrer.

Substitution de fonctionnalit´es Dans un environnement interactif, il est g´en´eralement possible de trouver plusieurs dispositifs fournissant des fonction- nalit´es ´equivalentes. Il doit ˆetre possible de substituer l’une `a l’autre dans l’appli- cation attentive sans interrompre son fonctionnement. En particulier, les fonc- tionnalit´es d’interface avec l’utilisateur sont souvent modifi´ees pour s’adapter au contexte d’interaction.

c) Tol´erance aux pannes

Exemple 6 Dans l’application iRider, la lampe ambiante peut cesser de fonc- tionner si elle ne dispose plus d’´energie. Dans ce cas, l’application peut continuer son fonctionnement en utilisant l’´ecran.

Dans les environnements d’informatique ubiquitaire, les dysfonctionnements sont la r`egle, et non l’exception (Kindberg & Fox, 2002). Dans ces conditions, une ap- plication attentive doit ˆetre particuli`erement tol´erante aux pannes pour assurer un fonctionnement sur de longues p´eriodes. Trois probl´ematiques apparaissent dans la tol´erance aux pannes.

D´etection de panne Lorsqu’une panne survient, l’application doit ˆetre ca- pable de d´etecter et d’isoler sa provenance, de mani`ere `a pouvoir corriger son comportement ou avertir l’utilisateur. En particulier, il est important de d´etec- ter si une fonctionnalit´e n’est plus disponible, que ce soit en raison d’une panne interne ou d’une impossibilit´e de communiquer avec elle. Parfois, il est aussi possible de d´etecter une panne temporaire.

D´egradation contrˆol´ee En cas de panne, il est souvent possible d’assurer un fonctionnement d´egrad´e ou minimal de l’application, qui continue de r´epondre en partie au besoin de l’utilisateur, mais sans offrir une qualit´e parfaite. La d´egradation contrˆol´ee peut se traduire par un maintien d’une partie des capacit´es non impact´ees par la panne.

R´eparation automatique Dans certains cas, l’application peut se r´eparer automatiquement en cas de panne, notamment en rempla¸cant des fonctionnali- t´es d´efaillantes par d’autres fonctionnalit´es ´equivalentes. En cas de panne tem- poraire, l’application peut aussi reprendre automatiquement la configuration qu’elle avait avant la panne.

d) Evolution de l’environnement´

Exemple 7 Dans son environnement, Thom peut acqu´erir et ajouter de nou- veaux dispositifs que l’application iRider utilisera pour le tenir inform´e des pro- positions de co-voiturage. Si Thom ajoute un ´ecran dans une pi`ece qui n’en ´etait

pas ´equip´ee, iRider dispose alors d’une nouvelle possibilit´e de lui proposer des solutions de co-voiturage dans cette pi`ece.

Comme le remarquent (Kindberg & Fox, 2002), les syst`emes d’informatique ubi- quitaire se d´eveloppent par morceaux, au fur et `a mesure que les utilisateurs ajoutent de nouvelles fonctionnalit´es. Il n’est cependant pas possible de(( red´e- marrer le monde )) pour ajouter une fonctionnalit´e. L’environnement doit donc offrir des possibilit´es d’´evolution.

Ajout et remplacement de dispositifs Comme les objets physiques qui ´

equipent un environnement domestique, des fonctionnalit´es peuvent ˆetre ajou- t´ees `a un environnement interactif au cours du temps. Certains fonctionnalit´es peuvent aussi ˆetre remplac´ees par d’autres plus r´ecentes ou plus performantes. L’application attentive doit chercher `a utiliser les fonctionnalit´es pr´esentes et adapter son fonctionnement `a ce type de modification durable.

Reconfiguration physique de l’environnement L’environnement physique est rarement fig´e et les ´el´ements physiques qui le composent doivent pouvoir ˆetre d´eplac´es et r´eorganis´es sans interrompre le fonctionnement de l’application. ´

Evolution interne des fonctionnalit´es Comme tout syst`eme informatique, les fonctionnalit´es d’un environnement attentif peuvent b´en´eficier de mises `a jour logicielles destin´ees `a corriger des erreurs ou `a apporter de nouvelles pos- sibilit´es. Dans ce cas, l’application attentive doit pouvoir prendre en compte l’´evolution individuelle des fonctionnalit´es pour adapter leur utilisation. Elle peut aussi chercher `a b´en´eficier des am´eliorations qu’elles fournissent, mˆeme si elles n’´etaient pas pr´evues au moment de sa conception.