• Aucun résultat trouvé

1.2.1

Le contexte

Dans la vie de chaque jour, nous utilisons le contexte pour prendre des décisions. Il est parfois le centre de notre conversation et se manifeste de manière implicite ou explicite. Les données de contexte se révèlent donc capitales pour la compréhension de la situation dans laquelle on se trouve.

Une mauvaise compréhension du contexte peut entrainer de lourdes conséquences. Considérons le scénario d’assistance à domicile pour une personne âgée atteinte de la maladie d’Alzheimer. Si elle entre dans une pièce, alors allumer la lumière dans cette pièce, puis quand il n’y a plus de mouvements dans la pièce éteindre cette lumière. Il est clair que ce scénario ne fonctionne pas, car plusieurs informations contextuelles ne sont pas prises en compte durant l’exécution du scénario. Nous savons que les personnes âgées font très peu de mouvement et sont parfois à mobilité réduite donc elles peuvent regarder la télévision, s’allonger sur le divan ou rester immobiles pendant des minutes sans rien faire. On voit ici qu’aucune information sur le quoi et le comment de la personne, n’a été prise en compte et au risque d’éteindre la lumière à mauvais escient.

Comme le dit A. Dey [34], l’utilisation du contexte est importante dans les appli- cations interactives et plus importantes encore pour les applications dans lesquelles le contexte de l’utilisateur change rapidement. La définition apportée par Schilit et al [97] pour la notion de contexte met en avant trois aspects importants : où est la

personne ; qui est avec la personne ; et quelles ressources sont proches de la personne ? Cette définition implique une surveillance constante de l’environnement

Une autre définition proche de celle-ci est celle donnée par Pascoe [81] qui pense que le contexte joue un rôle important dans le développement des capteurs portables. À cause du caractère dynamique de l’environnement d’exécution et de la nature for- tement ad hoc du système ubiquitaire, il est impossible d’énumérer quels aspects d’une situation sont importants. Cela a comme incidence le fait que d’une situation à une autre certains aspects peuvent devenir moins pertinents, voire inutiles dans l’interaction.

La définition qui revient le plus dans la littérature concernant le contexte est celle donnée par Dey et al [33] en 2001. « Le contexte est toute information que l’on peut utiliser pour caractériser la situation d’une entité. Une entité est une personne, une place, ou un objet considéré comme important pour l’interaction entre l’utilisateur et l’application, incluant l’utilisateur et l’application elle-même ». Elle implique que si un élément d’information peut être utilisé pour caractériser la situation d’une personne dans une interaction, alors cette information est le contexte. Ainsi les concepts mis en avant par Schilit ont été augmentés, on retrouve maintenant la localisation « where », l’identification « who », l’activité « what » et le temps « when ». L’ajout de ces concepts permet d’enrichir le contexte avec de nouvelles informations.

Alors que la définition de Schilit et al [97] ne proposait que la localisation et l’identification pour comprendre le contexte sans inclure ce que fait l’utilisateur. Nous allons retenir dans ce document celle proposée par Dey et al [33].

1.2.2

La modélisation du contexte

La gestion du contexte est vitale pour la mise en place d’une solution utilisant l’informatique diffuse. Elle permet aux développeurs et aux architectes de services de fournir aux utilisateurs finaux une simplicité d’utilisation, une action et une réaction dynamique du système, une adaptation au changement et au contenu des données. Le contexte constitue donc un élément important et essentiel du comportement du service, surtout quand les interactions avec les utilisateurs finaux sont au cœur du système. Dans la littérature, il existe cinq grandes catégories de modélisation de contexte [64] :

2. L’utilisation des ontologies ;

3. L’utilisation des raisonnements basés sur les règles logiques ; 4. L’utilisation des extensions au niveau de la programmation ; 5. Les approches basées sur des modèles ;

Il est important de déterminer comment le système peut avoir connaissance de son contexte et d’être capable de s’adapter à celui-ci. Les outils de modélisation proposés permettent de rendre les applications sensibles au contexte.

1.2.3

La sensibilité du contexte

Comment le système peut-il être conscient de son environnement ? Comment s’adapte-t-il aux changements ? Comment interagit-il avec son environnement ? Telles sont les questions auxquelles cette section apportera des réponses.

La sensibilité au contexte (Context awareness) a été introduite en 1994 par Schilit et al [97] comme étant le fait qu’une application s’adapte à son environnement. Cette adaptation est fonction de son lieu d’utilisation, de l’ensemble d’objets impliqués, des personnes à proximité et des modifications apportées à ces objets au fil du temps. On passe donc d’une application qui permet d’informer sur le contexte à une application capable de s’adapter à son contexte. Il devient donc plus commun de rapprocher le terme de ses synonymes : adaptatif, réactif, sensible, situation, environnement direct [33].

Plus formellement, un système est sensible au contexte [2, 34, 33] s’il utilise le contexte pour fournir des informations ou des services pertinents aux utilisateurs. La pertinence dépend de la tâche de l’utilisateur. De cette définition, on peut voir que plusieurs opérations sont nécessaires pour la mise en place d’un système sensible au contexte. :

1. La collecte d’informations de contexte ; 2. La détection des changements de contexte ; 3. La réalisation des adaptations au contexte.

Ces actions peuvent être menées sans intervention humaine. Par conséquent, il est important que les systèmes informatiques réagissent au changement de contexte, peu

Figure 1.1 – Architecture du Context Toolkit components [33]

importe l’initiateur.

Plusieurs architectures génériques de développement d’applications sensibles au contexte offrent des services divers à plusieurs niveaux. Le modèle proposé par Dey intitulé la boîte à outils de contexte «Context Toolkit» [33] est un cadriciel permet- tant de développer des applications sensibles au contexte. Ce cadriciel est composé d’outils découplés de la partie architecture contextuelle de l’application et des pro- blématiques métiers. Dey préconise une organisation à plat où les capteurs sont di- rectement connectés à un module de widgets. Des interpréteurs sont définis pour le calcul et l’inférence de contextes interprétés. Les agrégateurs permettent de fusionner les données des entités observables. Un agent est défini pour assurer la gestion des opérations d’adhésion. Le cadre est construit de manière à permettre que plusieurs toolkits distincts puissent interagir. La Figure1.1montre l’entrelacement des modules pour rendre le système adaptable au contexte. Contrairement à la première solution, on a un découplage entre applications et gestion de contexte.