AxSeL: a middleware for contextual and autonomous services deployment in pervasive environments
AxSeL : un intergiciel pour le déploiement contextuel et autonome de services dans les environnements pervasifs
Résumé
Pervasive environments appeared as a consequence of the development of communicating technologies along with that of mobile electronic devices. In the same time software trends encouraged the development of modular approaches instead of the classical systemic ones. Thus, applications are no more considered as big monolithic systems but as a set of dependent modules. However, deploying an application on a constraint device is still be a hard task. Applications are resource greedy and not adapted to the hardware and contextual constraints encountered in pervasive environments. We propose a solution that is borderline between the ubiquitous world and the services-oriented one. In this thesis, we present AxSeL, A conteXtual SErvice Loader, for the service-oriented application deployment in constraint environments. In pervasive environments provided services are spread over mobile devices as well as servers. Services access is fulfilled using services descriptors where services and application dependencies and location are listed. In order to deploy a given application its whole services dependencies are resolved. AxSeL makes services descriptors aggregation and build its own application representation. Applications are represented as logical dependency graphs. Graph nodes are the application services and graph edges are the links between them. Using graphs allows us an intuitive and flexible dependencies representation. Then, AxSeL proceeds to the loading decision by considering the services features and the hardware constraints and the user services preferences. The decision process is made through a graph coloring method. In case of context changes in the services repositories or contextual data (services, devices, users) AxSeL launches an adaptation process. The adaptation process includes the captured changes in the deployment decision in order to reach adaptability to such highly variable environments. In conclusion, AxSeL proposes a global and flexible representation of service oriented applications and a set of heuristics allowing their contextual and autonomic deployment. We implemented AxSeL using the OSGi technology and the java virtual machine as a service execution environment. The above-mentioned propositions are proved through the prototype AxSeL4OSGi. Performance tests and comparative studies have been conducted considering different use cases and contexts.
Les environnements pervasifs sont apparus avec l'essor des technologies de communication couplé avec celui des terminaux mobiles. Parallèlement à cela, une évolution logicielle s'est effectuée en passant de l'informatique systémique globale à une approche modulaire et granulaire. Déployer une application sur un dispositif mobile reste toutefois une problématique ouverte, à cause de l'inadéquation de celle-ci aux contraintes matérielles et contextuelles de tels environnements. En effet, les applications usuelles nécessitent plus de ressources que ne peuvent fournir les terminaux mobiles. Pour pallier cela, nous proposons une solution qui s'inscrit à la frontière de ces deux mondes~: celui des environnements pervasifs contraints et celui des applications orientées services. Dans cette thèse nous présentons une approche pour le déploiement contextuel et autonome d'applications orientées services dans des environnements contraints~: AxSeL -A conteXtual SErvice Loader- adapte le déploiement des applications en prenant en compte le contexte des services, la mémoire d'exécution disponible sur le dispositif et les préférences utilisateur. Dans les environnements pervasifs, les services fournis sont disséminés sur les dispositifs mobiles ou des serveurs de dépôts. L'accès à ceux-ci se fait grâce à des descripteurs de services intégrant l'ensemble des dépendances d'un service et sa localisation. Pour déployer une application il est nécessaire de résoudre l'ensemble de ses dépendances en termes de services. A partir de l'agrégation des descripteurs des services AxSeL construit sa propre représentation de l'application sous la forme d'un graphe de dépendances logiques de services. Les noeuds de ce graphe représentent les services et les composants les implantant et les arcs les dépendances d'exécution et de déploiement entre ceux-ci. Le graphe fournit une représentation intuitive et flexible des dépendances et nous permet de distinguer le niveau de l'exécution (services) de celui du déploiement (composants). AxSeL opère à la suite un processus de décision du chargement prenant en compte les caractéristiques des services, celles de la plate-forme matérielle et enfin les préférences utilisateurs. La décision est prise grâce à une technique de coloration sous contraintes du graphe de dépendances des services. En cas de changement du contexte, par exemple modification du dépôt ou des caractéristiques des services, de la mémoire disponible sur la machine ou des préférences utilisateurs, AxSeL le détecte et déclenche un processus d'adaptation qui intègre les changements perçus dans le processus décisionnel du déploiement. Ainsi, AxSeL propose une représentation globale et flexible pour les applications orientées services et des heuristiques permettant leur déploiement contextuel et autonome. Nous avons validé les concepts de notre approche à travers un prototype AxSeL4OSGi en utilisant une machine virtuelle java comme support d'exécution et OSGi comme plate-forme de développement et d'exécution de services. Les performances de notre plate-forme sont évaluées et comparés à une approche similaire à travers des tests réalisés dans des contextes de variation de la structure des graphes applicatifs, de la mémoire disponible sur la machine, des caractéristiques des services et des préférences utilisateurs.
Loading...