Proposition de Stage de DEA






Encadrants : Christelle Urtado  – Sylvain Vauttier

Lieu du stage : Laboratoire de Génie Informatique et d'Ingénierie de Production (LGI2P) - Ecole des Mines d'Alès - Nîmes



 

 Titre : Modèle de composants pour le développement d'agents logiciels.
 

Motivation :

La programmation à base de composants et d’agents sont des paradigmes distincts qui proposent des solutions pour le développement d’applications complexes.
Les composants sont des briques réutilisables de logiciels développés par la recherche en génie logiciel pour faciliter le développement d'applications distribuées multi-tiers (architectures client-serveur hiérarchisées). Ils sont décrits par un ensemble d'interfaces d'entrée et de sortie et permettent le développement d'applications par simple assemblage, c'est-à-dire la connexion des interfaces des composants.
Les agents sont des entités actives, capables de percevoir leur environnement, de raisonner sur cet environnement et d'agir de leur propre initiative sur cet environnement. Ils ont été développés pour répondre à des problématiques de résolution de problèmes (intelligence artificielle distribuée) ou de simulation (écosystèmes, systèmes sociaux, ...).
Les travaux sur l'utilisation des agents pour le génie logiciel sont plus récents et comparativement peu nombreux. Ainsi, les modèles actuels de composants n'offrent pas de solution dédiée au développement d'agents logiciels dans les applications multi-tiers. Les modèles les plus avancés commencent simplement à intégrer  la gestion d'interactions asynchrones entre les composants. Pourtant les avantages (support de la concurrence, faible couplage, autonomie) procurés par l'intégration d'agents aux applications distribuées sont nombreux en matière de performance, de fiabilité, d'ouverture, de mobilité,  de  maintenance,  de déploiement,  ...
Pour répondre à ce besoin, nous souhaitons concevoir un modèle de composants actifs, c'est-à-dire d'entités qui se définissent et se manipulent comme des composants mais qui se comportent comme des agents.

Travail à réaliser :

Le travail  consistera dans un premier temps en une étude bibliographique sur la notion de composants (concurrence, asynchronisme, message-oriented middleware) et d'applications des agents pour le génie logiciel afin de cerner les hybridations possibles entre ces deux paradigmes de programmation. Un deuxième temps consistera à définir un modèle de composants permettant le développement et l'utilisation d'agents dans une plateforme de développement à base de composants typique, soit en se basant sur un standard industriel (Java Enterprise, Corba 3.0), soit sur un projet de recherche existant (Fractal, SOFA). Une maquette du modèle pourra être réalisé à l'aide d'une implémentation open-souce de ces plateformes.
 

Bibliographie :

A venir…