Incremental weaving process for aspect of assembly oriented programming

Descriptif

Depuis la thèse de Daniel Cheung, l'équipe Rainbow travaille sur une approche originale appelée Aspect d'Assemblage (AA) de composants logiciels, pour faciliter le développement logiciel d'applications en Informatique Ambiante, qui s'auto-adaptent aux variations de leur contexte en cours d'exécution (variations dynamiques de l'ensemble des services logiciels disponibles depuis internet, variations dynamiques de l'ensemble des dispositifs disponibles pour la mise en oeuvre de l'application, variations dynamiques de l'état de l'environnement physique, de l'utilisateur).

En effet les AAs sont des sortes de schémas d'adaptation programmés et indépendants qui supervisent une application orientée services et composants logiciels, pour la modifier à l'exécution fonction des variations dynamiques de son contexte tel que défini dessus.

Nombre de problèmes théoriques se posent alors pour garantir la cohérence de l'application modifiée à chaque instant en fonction des variations du contexte. En effet, l'application mettant en oeuvre des services logiciels (ex. WS) et des services pour dispositifs (ex. UPnP et DPWS), plusieurs modifications indépendantes peuvent être alors sources d'interférences, voire de conflits (ex. suite à une modification du contexte, un schéma d'adaptation a pour but de condamner les lumières de la maison dans l'application et un autre au contraire de les utiliser pour servir d'alarmes).

La principale contribution de l'équipe Rainbow reposent alors sur les algorithmes présents dans le mécanisme de composition de ces schémas d'adaptation, dit mécanisme de tissage des aspects d'assemblage, entre autre sur le temps que mets le système pour adapter une application à partir de la dernière variation du contexte.

Ces travaux ont déjà donnés lieu à de nombreuses publications scientifiques internationales (voir les références dans la section publications) et sont en cours de transfert dans l'industrie grâce à des projets de l'Agence Nationale de la Recherche (voir Continuum) et nombre d'applications industrielles (voir Demo).

Comme la plupart des travaux de recherche, ils sont bien évidemment perfectibles mais nécessitent pour cela de faire évoluer quelques points théoriques.

Dans le cas des aspects d'assemblage la complexité des algorithmes de tissage influence grandement les durées nécessaires pour un cycle d'adaptation et empêche aujourd'hui d'envisager une telle approche pour des systèmes ambiants à grande échelle comme une ville, ou de manière plus abstraite, un cloud d'objets communicants.

Une évolution en cours d'étude est l'introduction d'un algorithme qui s'appuierait sur des pré-calculs du tisseur et son incrémentalité. Cette évolution réduirait de manière drastique la complexité du mécanisme de tissage à l'exécution, sa durée d'exécution dur un cycle et sa sensibilité à la taille de l'application (nombre de composants et de services mis en oeuvre).

Sujet et Travail attendu

Dans le cadre du PFE, l'étudiant devra donc:

  • se familiariser avec la notion d'Aspect d'Assemblage et les algorithmes de la chaîne de tissage de ces Aspects
  • étudier les évolutions possibles de ces algorithmes pour répondre au challenge ci-dessus, en collaboration avec les scientifiques impliqués dans le projet.
  • valider théoriquement les améliorations qui en découle mettre en oeuvre sur un démonstrateur les résultats de ces travaux

Autres informations

  • Nombre d'étudiants: 3
  • Encadrants: Jean-Yves Tigli, Stéphane Lavirotte
  • Organisme: Equipe Rainbow - Laboratoire I3S
  • Lieu du projet: Polytech'Nice Sophia