Posts tagged "composants logiciels"

Moteur d’assemblage dynamique et opportuniste de composants logiciels

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

 

Développement, expérimentation et démonstration de composants logiciels pour l’assemblage dynamique et opportuniste.

figureEA

Le travail proposé s’inscrit dans le cadre du projet  Composition Logicielle Opportuniste  et de l’opération neOCampus. 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.

L’objectif est de développer et d’expérimenter une plateforme logicielle (de niveau  Proof of Concept ) qui permet de construire automatiquement des applications par assemblage de composants  briques  présents dans un environnement ambiant et connecté, en fonction des opportunités qui se présentent. Les composants peuvent être des pilotes de dispositifs matériels de toutes sortes (écrans, microphones, caméras, gyroscopes, joysticks...) ou des composants logiciels embarqués (visionneuse de diapositives, lecteur multimédia, fragments d’une IHM, agenda...).

Objectifs

Le travail a pour objectif d’imaginer des cas d’utilisation concrets dans lesquels plusieurs composants peuvent être assemblés dans le but de créer une application, de développer ces composants (analyse, conception, réalisation, test) et de les assembler en une application. Ces composants sont développés sur différentes plateformes comme Android, Arduino et Windows, principalement en Java et JavaScript.

Le domaine d’application privilégié est celui de la pédagogie innovante et des amphis interactifs. Plusieurs cas d’utilisation ont été définis et expérimentés, et font l’objet de démonstrations. Par exemple, l’assemblage de diverses télécommandes (interfaces utilisateur sur smartphone, tablette... de natures potentiellement différentes), d’un bureau de vote (sur PC) et d’un écran, permet à un enseignant de proposer des questionnaires et aux élèves d’y répondre, d’afficher les résultats. Ici, un élève peut rejoindre ou quitter le système de vote dynamiquement sans que l’organisation n’ait été préalablement prédéfinie, et voter avec une télécommande personnalisée.

Contacts

- Mathieu Kostiuk (IRIT) : Mathieu.Kostiuk@irit.fr

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

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

 

Back to Top