Titre: génération automatique de code pour services Web composites Encadrants: Tarek Melliti (Univ. Evry & IBISC, Evry), Pascal Poizat (Univ. Evry & LRI, Orsay). mots-clés: services Web, transformation de modèle en code, automates, Java objectif: à partir d'un modèle de composition de service, il s'agit de générer automatiquement le code de l'application réalisant la composition ainsi que le code d'une interface graphique intelligente pour les utilisateurs de cette composition (ce sujet peut convenir pour 2 binômes). résumé: les architectures à base de services permettent, grâce à des avancées récentes en recherche, de composer automatiquement des applications à forte valeur-ajoutée à partir d'une description des besoins des utilisateurs et des descriptions de services disponibles sur le Web. Supposons que vous désiriez partir en vacances. Pour cela, vous souhaitez pouvoir obtenir un billet d'avion ou un billet de train, ainsi qu'une chambre d'hôtel. Cependant, vous ne voulez pas partir seul(e) mais préférez voyager avec un(e) ami(e). La composition automatique de service permet d'abord de trouver et de sélectionner automatiquement des applications (services) disponibles sur le Web afin de connaître vos amis au sein d'un réseau social choisi, obtenir les billets et la chambre. La composition automatique de service permet ensuite et surtout d'assembler ces applications afin de vous fournir une solution "tout en un" répondant à vos besoins. Les applications réalisées ainsi sont centralisées et coordonnent l'utilisation des services en réponse aux requêtes des utilisateurs. On parle de service Web composite ou encore d'orchestration. Nous avons développé des algorithmes prenant en entrée des modèles (listes d'opérations et protocole d'utilisation) pour les besoins et les services de base, et retournant en sortie un modèle du service Web composite. L'objectif du TER est de générer automatiquement, à partir de ce dernier, le code permettant de faire réellement tourner l'application. Il y a ici deux aspects possibles. Le premier concerne le code de l'application elle-même (code orchestrateur). Ce dernier sera ensuite déployé sur un serveur d'application ou sur un iPhone. Le second concerne la génération d'une interface de client pour l'utilisateur qui lui permette de communiquer avec l'application. Cette interface doit être intelligente au sens où elle doit prendre en compte et forcer des usages corrects de l'application (en termes de données fournies, de suite d'opérations appelées autorisées ou non et de temps passé entre ces appels). aspects recherche: problème du contrôle d'une application Web, composition automatique de services Web contexte: projet PERSO financé par l'Agence Nationale de la Recherche. Des poursuites sont possibles en M2 Recherche. Par ailleurs, l'ingénierie des services Web est actuellement un domaine porteur de l'industrie informatique, tant en France que dans le monde. Une réelle expérience avec les technologies utilisées dans le TER (J2EE, services Web, code java embarqué sur équipement personnel mobile) est un plus dans votre cursus, qu'il soit recherche ou professionnel. planning: 1) écriture de services Web simples (Java/J2EE) 2) écriture d'une application orchestrant ces services (différents choix possibles: Java/J2EE ou WS-BPEL ou JCWS) 3) écriture d'un client pour l'application (différents choix/combinaisons possibles: J2EE, JSP, AJAX, mash-ups, Yahoo Pipes, etc.) 4) étude du modèle de composition de services et du lien entre ce dernier et le code à générer (choisi au point 3) 5) codage du programme de transformation modèle -> code (différents choix possibles: Java (préf.), CAML, Python) 6) expérimentations (temps de génération du code sur des exemples, essais de déploiement du code sur équipement mobile dont iPhone) 7) écriture du rapport, préparation à la soutenance, soutenance