A multi-agent system for opportunistic software composition in ambient and dynamic environment
Un système multi-agent pour la composition logicielle opportuniste en environnement ambiant et dynamique
Résumé
Cyber-physical and ambient systems consist of fixed or mobile devices connected through communication networks. These devices host software components that provide services and may require other services to operate. These software components are usually developed, installed, and activated independently of each other and, with the mobility of users and devices, they may appear or disappear unpredictably. This gives cyber-physical and ambient systems an open and changing character.
Software components are bricks that can be assembled to form applications. But, in such a dynamic and open context, component assemblies are difficult to design, maintain and adapt. Applications are used by humans who are at the heart of these systems. Ambient intelligence aims to offer them a personalized environment adapted to the situation, i.e. to provide the right application at the right time, anticipating their needs, which may also vary
and evolve over time.
To answer these problems, our team is exploring an original approach called “opportunistic software composition”, which consists in automatically building applications on the fly from components currently available in the environment, without relying on explicit user needs or predefined assembly plans. In this way, applications emerge from the environment, taking advantage of opportunities as they arise.
This thesis defines a software architecture for opportunistic software composition and proposes an intelligent system, called “opportunistic composition engine”, in order to automatically build relevant applications, both adapted to the user and to the surrounding environment. The opportunistic composition engine periodically detects the components and their services that are present in the ambient environment, builds assemblies of components, and proposes them to the user. It automatically learns the user’s preferences according to the situation in order to maximize user satisfaction over time. Learning is done online by reinforcement. It is decentralized within a multi-agent system in which agents interact via a protocol that supports dynamic service discovery and selection. To learn from and for the user, the latter is put in the loop. In this way, he keeps control over his ambient environment, and decides on the relevance of the emerging application before it is deployed.
The solution has been implemented and tested. It works in conjunction with an interface that describes the emerging applications to the user and allows him to edit them. The user’s actions on this interface are sources of feedback for the engine and serve as an input to the reinforcement learning mechanism.
Les systèmes cyber-physiques et ambiants sont constitués d’appareils fixes ou mobiles reliés par des réseaux de communication. Ces appareils hébergent des composants logiciels qui fournissent des services et peuvent nécessiter d’autres services pour fonctionner. Ces composants logiciels sont généralement développés, installés et activés indépendamment les uns des autres et, avec la mobilité des utilisateurs et des appareils, ils peuvent apparaître ou disparaître avec une dynamique imprévisible. Ceci donne aux systèmes cyber-physiques et ambiants une nature ouverte et changeante.
Les composants logiciels sont des briques que l’on peut assembler pour former des applications mais, dans un tel contexte de dynamique et d’ouverture, les assemblages de composants sont difficiles à concevoir, à maintenir et à adapter. Les applications sont utilisées par des humains qui sont donc au cœur de ces systèmes. L’intelligence ambiante vise à leur offrir un environnement personnalisé adapté à la situation, c’est-à-dire à fournir la bonne
application au bon moment, en anticipant leurs besoins, qui peuvent aussi changer dans le temps.
Pour répondre à ces problèmes, notre équipe explore une approche originale appelée “composition logicielle opportuniste” qui consiste à construire automatiquement des applications à la volée à partir des composants disponibles sur le moment dans l’environnement, sans s’appuyer sur des besoins explicites de l’utilisateur ni sur des plans d’assemblage prédéfinis. Ainsi, les applications émergent de l’environnement, en tirant parti des opportunités
au fur et à mesure qu’elles se présentent.
Cette thèse définit une architecture logicielle pour la composition logicielle opportuniste et propose un système intelligent, appelé “moteur” de composition opportuniste, afin de construire automatiquement des applications pertinentes, à la fois adaptées à l’utilisateur et à l’environnement ambiant. Le moteur de composition opportuniste détecte périodiquement les composants et leurs services présents dans l’environnement ambiant, construit des assemblages de composants et les propose à l’utilisateur. Il apprend automatiquement les préférences de l’utilisateur en fonction de la situation afin de maximiser ultérieurement sa satisfaction. L’apprentissage se fait en ligne par renforcement. Il est décentralisé au sein d’un système multi-agent dans lequel les agents interagissent via un protocole qui prend en charge la découverte et la sélection dynamique de services. Pour apprendre de l’utilisateur et pour l’utilisateur, ce dernier est mis dans la boucle. Ainsi, il garde le contrôle sur son environnement ambiant, et décide de la pertinence de l’application émergente avant qu’elle ne soit déployée.
La solution a été implémentée et expérimentée. Elle fonctionne de manière couplée avec une interface qui décrit les applications émergentes à l’utilisateur et lui permet de les modifier. Les actions de l’utilisateur sur cette interface sont sources de feedback pour le moteur et servent à alimenter le mécanisme d’apprentissage par renforcement.
Origine | Fichiers produits par l'(les) auteur(s) |
---|