contextuel des applications
3.2.2 Interactions entre les services d’AxSeL
a travers des API sp´ecifiques pour chacune des sources contextuelles. Le service de gestion
du contexte collecte les donn´ees `a partir des API sondes, et r´eagit en cas de changements
pertinents en g´en´erant un ´ev´enement contextuel. Les aspects de gestion dynamique du contexte sont pr´esent´es dans la section 3.4.
Service de d´ecision du chargement Ce service confronte un contexte requis `a satisfaire
avec un contexte fourni `a respecter. AxSeL parcourt le graphe de d´ependances et ´evalue les
donn´ees contextuelles des services et des composants par rapport aux contraintes du terminal et de l’utilisateur. Pour chaque service du graphe de d´ependances, une d´ecision de chargement est prise. Une nouvelle d´ecision de chargement peut avoir comme cons´equences d’´eventuels chargements/d´echargements de services et de composants. Le chargement se fait d’une mani`ere progressive jusqu’au rapatriement et ex´ecution de toutes les d´ependances de l’application. La
d´ecision de chargement peut ob´eir `a plusieurs strat´egies relatives aux politiques adopt´ees, par
exemple, dans le cas d’une politique d’´economie de ressources mat´erielles une strat´egie mettant en priorit´e celles-ci est choisie. Enfin, AxSeL anticipe le chargement de certains services en vue
d’une utilisation future ce qui optimise les performances du dispositif en lui ´economisant le coˆut
d’acc`es, de rapatriement et de r´esolution des d´ependances des composants et services. Le d´etail des m´ecanismes de d´ecision est donn´e dans la section 3.5.2.
3.2.2 Interactions entre les services d’AxSeL
Nous avons pr´ealablement d´etaill´e le rˆole de chaque service d’AxSeL. A pr´esent, nous illus-trons les interactions prenant place entre ces services pour r´ealiser le chargement autonome et contextuel des applications. D’abord, AxSeL r´ealise l’extraction des d´ependances pour ob-tenir une vue globale sous la forme d’un graphe contextuel bidimensionnel de services et de composants. L’extraction des d´ependances est suivie par l’´etape de d´ecision contextuelle de
chargement. La collecte du contexte pertinent et essentiel `a la prise de d´ecision est r´ealis´ee par
le service de gestion du contexte.
La figure 3.5 illustre les services et mod`eles d’AxSeL qui sont impliqu´es dans l’´etape d’ex-traction des d´ependances. Les services et composants peuvent ˆetre h´eb´erg´es sur des dispositifs mobiles tels qu’un assistant personnel ou un ordinateur portable. Le service d’extraction des
d´ependances acc`ede `a un ou plusieurs d´epˆots de services locaux ou distants, et construit `a
par-tir des descripteurs des d´epˆots un mod`ele d’application sous la forme d’un graphe flexible et contextuel. Le graphe repr´esente d’une mani`ere globale l’application `a charger incluant les ser-vices, les composants, les liens entre eux, et leurs donn´ees fonctionnelles et non fonctionnelles.
Service d’extraction des dépendances Service de décision d u c h a r g e m e n t Service de gestion du contexte Evènements du contexte Terminal, utilisateur, descripteur
A x S E L - E x t r a c t i o n d e s d é p e n d a n c e s Graphe de l’application D e s c r i p t e u r d e d é p ô t d e s e r v i c e s , e t d e c o m p o s a n t s Modèle du contexte Ecouteur du contexte S e r v i c e M o d è l e
Fig.3.5 – Extraction des d´ependances d’une application
Service d’extraction des dépendances Service de décision d u c h a r g e m e n t Service de gestion du contexte Evènements du contexte Terminal, utilisateur, descripteur
A x S E L - G e s t i o n d u c o n t e x t e D e s c r i p t e u r d e d é p ô t d e s e r v i c e s , e t d e c o m p o s a n t s Modèle du contexte Ecouteur du contexte Graphe de l’application S e r v i c e M o d è l e
Fig. 3.6 – Gestion du contexte
Dans la figure 3.6 nous illustrons les services d’AxSeL qui sont impliqu´es dans la gestion du contexte. Le service de gestion du contexte emploie un ´ecouteur du contexte pour collecter
dynamiquement les donn´ees `a partir des m´etadonn´ees de l’utilisateur, du descripteur du d´epˆot
et du API sondes sur le terminal. Le mod`ele de contexte fournit la repr´esentation des donn´ees de toutes les sources. Lorsqu’une modification est observ´ee au niveau de ces sources de donn´ees des ´ev´enements sont g´en´er´es. Ceux-ci sont d´ependants de la source qui les d´eclenchent. Tous les ´ev´enements contextuels de nature mat´erielle ou autre sont achemin´es vers le service de d´ecision du chargement.
Au sein d’AxSeL, la prise de d´ecision du chargement est r´ealis´ee par le service de d´ecision
du chargement. Ce dernier prend le graphe extrait `a partir de l’´etape pr´ec´edente, les donn´ees
contextuelles fournies par le service de gestion du contexte et applique une coloration du graphe dirig´ee par les contraintes. Le graphe contextuel de l’application est communiqu´e `a l’outil de d´eploiement de l’intergiciel d’ex´ecution des services et composants pour qu’il r´ealise son char-gement. Le m´ecanisme de la prise de d´ecision est donn´e figure 3.7. AxSeL r´ealise le d´eploiement initial de l’application mais aussi son adaptation, ainsi lorsqu’au cours de l’ex´ecution d’une application le service de gestion du contexte notifie le service de d´ecision du chargement d’un changement, celui-ci engage une nouvelle prise de d´ecision afin d’offrir la configuration la plus optimis´ee de l’application.
AxSel, un intergiciel pour le d´eploiement autonome et contextuel des applications
orient´ees services 70
Service d’extraction des dépendances Service de décision d u c h a r g e m e n t Service de gestion du contexte Evènements du contexte Terminal, utilisateur, descripteur
A x S E L - D é c i s i o n d u c h a r g e m e n t D e s c r i p t e u r d e d é p ô t d e s e r v i c e s , e t d e c o m p o s a n t s S e r v i c e M o d è l e Modèle du contexte Ecouteur du contexte Graphe de l’application
Fig.3.7 – D´ecision du chargement
Conclusion Dans cette section nous avons pr´esent´e une vue d’ensemble de l’architecture AxSeL pour le d´eploiement autonome d’applications orient´ees services. Nous avons ´egalement d´etaill´e chacun des services et mod`eles constituant notre architecture et les principales interac-tions prenant place pour r´ealiser le chargement contextuel. Ainsi nous avons mis en ´evidence trois principaux services : le service d’extraction des d´ependances, le service de gestion du contexte et le service de d´ecision du chargement, et deux mod`eles : le mod`ele d’application et le mod`ele du contexte. Dans la section suivante, nous pr´esentons la couche de mod´elisation haut niveau sur laquelle AxSeL repose. Nous proposons un mod`ele expressif et flexible pour repr´esenter les applications orient´ees services et composants, ainsi qu’un mod`ele dynamique pour repr´esenter les donn´ees du contexte.
3.3 Une vue globale expressive et flexible
L’approche `a base de services am`ene une vue d’ex´ecution o`u les services sont mis `a
disposi-tion des clients dans des annuaires pour ˆetre utilis´es. Quant `a l’approche `a base de composants
elle am`ene une vision de d´eploiement o`u ceux-ci sont h´eberg´es dans des d´epˆots en vue de leur
d´eploiement sur les plates-formes clientes. Les services et composants poss`edent des d´ependances contextuelles fonctionnelles et non fonctionnelles avec d’autres services et composants. Le pa-radigme des d´ependances est essentiel dans ces approches puisqu’il leur permet d’importer des fonctionnalit´es qu’ils ne poss`edent pas. Pour d´eployer un composant il est n´ecessaire de r´esoudre et de satisfaire ses d´ependances. Enfin, les environnements intelligents permettent `a n’importe
qui de fournir des services ou des composants n’importe o`u et `a n’importe qui d’autre entraˆınant
ainsi la multiplicit´e des fournisseurs. Cela consiste en une information pertinente `a consid´erer. En effet, si un service ne respecte pas les contraintes de d´eploiement, il est possible de retrouver son ´equivalent qui soit ad´equat.
Unifier l’ensemble de ces aspects dans un paradigme commun fournit une vue
bidimen-sionnelle et expressive grˆace `a laquelle il est possible de g´erer simultan´ement les aspects de
d´eploiement et d’ex´ecution d’une application et de repr´esenter les aspects contextuels fonc-tionnels, non fonctionnels et multi-fournisseur. Outre l’expressivit´e, il est essentiel que la vue
globale soit flexible. En effet, il est pertinent de consid´erer les possibles variations de l’environne-ment telles que l’apparition, la disparition des services et composants et la modification de leur m´etadonn´ees. Ces variations n´ecessitent l’extensibilit´e de la vue de l’application `a l’ex´ecution, par ajout et retrait de ses ´el´ements ainsi que sa dynamique par modification de leurs valeurs.
Dans cette section, nous proposons une nouvelle approche expressive et flexible orient´ee graphe pour la repr´esentation des d´ependances des applications orient´ees services composants. D’abord, nous d´efinissons les concepts de service, de composant et d’application en nous basant sur la recherche bibliographique pr´ealablement r´ealis´ee et pr´esentons un mod`ele ind´ependant de la plate-forme et bas´e sur les paradigmes des architectures orient´ees services. Ensuite, nous proposons notre graphe bidimensionnel et flexible. Pour mod´eliser les services, les composants et les applications nous utilisons les diagrammes de classes UML [45].