La composition logicielle opportuniste vise à offrir à un utilisateur les bons services au bon moment, même si celui-ci évolue dans un environnement instable et dynamique. Les services proposés sont le résultat d’assemblages de composants logiciels “enfouis” dans l’environnement. Les assemblages se réalisent automatiquement et dynamiquement en fonction des composants qui sont disponibles et en situation d’interagir, et ceci, sans que leur composition n’ait été planifiée. De manière générale, cette approche pose un certain nombre de problèmes parmi lesquels l’identification des composants et la sensibilité au contexte, la composabilité (connexion entre services requis et fournis) et la sémantique de l’assemblage obtenu, la réalisation automatique de la composition, la maîtrise de la combinatoire et la validation (prise en compte de l’intérêt de l’utilisateur). La solution que nous développons est fortement décentralisée, basée sur un système multi-agent qui est le moteur de la composition opportuniste : des agents, situés au niveau des composants et des services et dotés de capacités d’apprentissage, décident localement des connexions et les supervisent. Ce projet de recherche fait l’objet de collaborations entre les équipes SMAC et MACAO de l’Institut de Recherche en Informatique de Toulouse, Rainbow du Laboratoire I3S de l’Université de Nice-Sophia Antipolis et IIHM du Laboratoire d’Informatique de Grenoble. 

Objectifs scientifiques

 Actuellement nous disposons d’une première version du moteur de composition sur laquelle s’exécute une démonstration à base de composants Android et Arduino. L’objectif du stage est de consolider cette solution pour avoir une version opérationnelle et maintenable d’un moteur composé de quatre types de composants logiciels Sonde, Medium, Unifieur et Agent. La fonction du moteur d’assemblage est de connecter et de déconnecter des services, fournis et requis par des composants logiciels présents (disponibles) dans un environnement dynamique et ouvert. L’autre volet du stage porte sur les décisions des agents. Les agents, associés aux services, décident de leurs actions (connecter/déconnecter un service, créer un agent, augmenter/diminuer sa confiance en un autre agent…), en fonction de leurs perceptions locales et des interactions avec les autres agents. Il s’agit d’enrichir les mécanismes d’apprentissage pour la prise en compte du contexte et des compositions antérieures. Les propositions seront validées au travers de cas d’utilisation réalistes, en particulier en lien avec l’opération neOCampus pour un campus connecté, innovant, intelligent et durable. 

Contacts

- Sondes Benzarti (IRIT) : sondes.benzarti@irit.fr

- Jean-Paul Arcangeli (IRIT) : jean-paul.arcangeli@irit.fr

- Sylvie Trouilhet (IRIT) : sylvie.trouilhet@irit.fr