• Aucun résultat trouvé

contextuel des applications

3.4.2 Gestion dynamique du contexte

Gestion homog`ene Afin d’´eviter qu’AxSeL ne g`ere les donn´ees h´et´erog`enes recueillies `a

partir de chaque source d’information nous utilisons un m´ecanisme qui masque les sondes. En effet, pour chaque source nous associons une enveloppe permettant `a travers l’interaction

avec des API sp´ecifiques de r´ecup´erer les donn´ees `a partir des sondes. L’enveloppe fournit des

m´ethodes qui permettent de r´ecup´erer les donn´ees courantes. Pour les ressources mat´erielles, les API utilis´ees sont celles fournies par la plate-forme d’ex´ecution, dans notre cas nous reposons sur une machine virtuelle permettant la r´ecup´eration des valeurs de la m´emoire. Les donn´ees

relatives aux services et aux composants sont extraites `a partir de l’API correspondante au

d´epˆot et sont affect´ees au niveau des nœuds du graphe de d´ependances. La figure 3.24 illustre les m´ecanismes mis en place pour assurer l’interaction entre les sondes et leurs repr´esentants respectifs. Ceux-ci communiquent ´egalement avec le service de gestion du contexte.

Ecouteurs de contexte Nous utilisons un syst`eme bas´e sur le m´ecanisme de notification ´ev´enementielle. Ce dernier repose sur une source produisant un objet ´ev´enement et un ´ecouteur. Les diff´erentes sources de donn´ees agissent comme des fournisseurs d’´ev´enements, elles ajoutent une liste d’´ecouteurs sur les ressources choisies au niveau du terminal, de l’utilisateur ou du d´epˆot, et produisent des ´ev´enements. Lorsqu’un ´ev´enement se produit l’´ecouteur en est notifi´e. AxSeL utilise ces m´ecanismes pour abonner le service de gestion du contexte `a l’ensemble des ´ev´enements provenant des diff´erentes sources d’informations contextuelles qui l’int´eressent, ainsi, chacune des sources User, Repository, et Device fournit des ´ev´enements. A la r´eception de

ces ´ev´enements le service de gestion du contexte peut proc´eder `a des traitements des donn´ees

collect´ees et les passer au service de d´ecision du chargement. Dans la figure 3.25, nous illustrons le m´ecanisme d´eploy´e pour ´ecouter les changements au niveau de la m´emoire. Chaque terminal ajoute des ´ecouteurs sur ses sources d’informations. Lorsque le terminal est notifi´e du nouvel ´ev´enement celui-ci est pass´e au service de gestion du contexte. Nous utilisons ´egalement le

patron de conception Adapter qui permet `a des classes h´et´erog`enes de collaborer. L’interface de

l’adapter est pass´e au client et ceux-ci continuent `a l’utiliser comme s’il manipulaient l’interface

d’origine. L’adapter traduit les appels pass´es `a l’interface en des appels `a l’interface originale.

Fig. 3.25 – Exemple d’´ecouteur d´eploy´e sur la m´emoire

Le service de gestion du contexte passe les ´ev´enements g´en´er´es dynamiquement au service de prise de d´ecision qui effectue un raisonnement sur le contexte. A ce niveau, AxSeL op`ere une confrontation entre un contexte requis par les services, les composants et l’utilisateur avec un contexte fourni par le terminal. Cette confrontation est op´er´ee par le service de d´ecision du chargement qui prend un ensemble de contraintes contextuelles en entr´ee telles que la capacit´e m´emoire maximale d’un dispositif et les services et composants auxquels l’utilisateur a donn´e une haute priorit´e et ´evalue au moment du chargement l’ad´equation de chaque nœud aux contraintes. La prise en compte du contexte est r´ealis´ee initialement au moment du d´eploiement de l’application mais est aussi d´eclench´ee au cours de l’ex´ecution de celle-ci par le syst`eme d’´ecouteurs qui permet de capturer les ´ev´enements pertinents. Les m´ecanismes de prise de d´ecision et d’adaptation contextuelle sont d´etaill´es dans la section 3.5.

Conclusion Dans cette section nous avons pr´esent´e les aspects contextuels propos´es par Ax-SeL. D’abord, nous avons d´efini le contexte et esquiss´e l’architecture g´en´erale de capture et de repr´esentation contextuelle. Ensuite, nous avons abord´e les aspects de repr´esentation et de

AxSel, un intergiciel pour le d´eploiement autonome et contextuel des applications

orient´ees services 90

capture du contexte en pr´ecisant le terminal, l’utilisateur et les services et composants comme sources de donn´ees pertinentes. En adoptant une mod´elisation hi´erarchique orient´e objet nous facilitons l’extensibilit´e de notre mod`ele par ajouts de nouvelles sources. Enfin, sur la base de ce mod`ele AxSeL fournit une gestion dynamique et autonome du contexte grˆace `a un m´ecanisme de notification par ´ev´enements. Dans la section suivante, nous pr´esentons les m´ecanismes de contextualisation propos´es par AxSeL.

3.5 Une contextualisation autonome dynamique

Un client voulant d´eployer une application sur un dispositif ´electronique acc`ede `a un d´epˆot

de services composants et choisit l’application `a d´eployer. Afin de r´ealiser cela il est n´ecessaire

de r´esoudre toutes les d´ependances de services et de composants de cette application et les rapatrier localement sur la plate-forme. Dans un cas classique le d´eploiement de l’ensemble des d´ependances est syst´ematique et aucune contextualisation servant `a adapter ce processus au contexte de l’utilisateur ou de la plate-forme n’est adopt´ee.

AxSeL propose de r´ealiser un d´eploiement contextuel et autonome des applications `a travers un ensemble d’heuristiques. Ces heuristiques reposent sur des m´ecanismes d’automatisation de la gestion des d´ependances de l’application, de contextualisation du d´eploiement et d’adaptation `a l’ex´ecution. La figure 3.26 illustre le sch´ema de d´eploiement g´en´eral d’AxSeL.

Modèle

Service AxSeL A d a p t a t i o n d y n a m i q u e

E v é n e m e n t d u c o n t e x t e Description des ressources

Intergiciel de déploiement et d’exécution de services et de composants Représentation du contexte

Modèle du contexte Modèle de l’application

Graphe de dépendances Graphe contextuel

Extraction du graphe de dépendances

Modèle du contexte

Décision du chargement

Contextualisation du graphe Adaptation du graphe

Service Composant Application Contexte Utilisateur D é p ô t Terminal 1 2 3

Fig.3.26 – Sch´ema du d´eploiement d’AxSeL

L’extraction du graphe de d´ependances trace l’ensemble des d´ependances d’une application `a partir du descripteur de ressources fourni et les repr´esente sous la forme d’un graphe de d´ependances orient´e bidimensionnel. Ensuite, la d´ecision du chargement ´evalue la faisabilit´e du d´eploiement initial en se basant sur les contraintes. Durant la phase d’ex´ecution de l’application,

les ´ev´enements contextuels remont´es `a partir des sources de donn´ees utilisateur, terminal et

d´epˆot de services composants, sont pris en compte par un processus d’adaptation contextuelle dynamique. Un graphe de d´ependances contextuel et offrant une vue actualis´ee et dynamique

Dans cette section nous pr´esentons nos heuristiques de d´eploiement. Celles-ci se basent sur le mod`ele d’application orient´ee graphe et le mod`ele de contexte pr´esent´es dans la section pr´ec´edente. D’abord, nous pr´esentons l’´etape d’extraction du graphe des d´ependances en sec-tion 3.5.1, ensuite, la d´ecision contextuelle en secsec-tion 3.5.2. Enfin, nous montrons les m´ecanismes

d’adaptation contextuelle `a l’ex´ecution en section 3.5.3. A la fin de cette section, nous effectuons

une ´evaluation th´eorique des performances de nos heuristiques.