Bienvenue ...

Je suis Maître de Conférence,
j'enseigne a
L'university d'Evry Val d'Essonne
et je fais ma recherche au labo d' IBISC FRE 3190 CNRS, (équipe LIS).



Mes activités de recherche portent essentiellement sur la conception et sur la réalisation d'applications réparties sur le Web (du type B2C ou B2B) en utilisant une approche SOA (Service Oriented Architecture) et son implémentation, les services Web. Dans ce cadre, mon travail porte sur l'utilisation des approches formelles du génie logiciel pour la mise en place et l'exploitation des services Web. Je m'intéresse aux différentes phases du cycle de vie d'un service Web :


- Phase de "Création" : Les services Web – notamment conversationnels (dotés d'un comportement) – peuvent exhiber un comportement ambigu menant à des problèmes connus en situation d'interaction, tel que le blocage vivant et/ou mort. La source de cette ambiguïté se situe dans la phase de composition du service, utilisant des langages tels que BPEL. Ce dernier offre des patrons de Workflow qui ne tiennent pas compte de la phase d'abstraction (c'est-à-dire de la génération de l'interface comportementale). J'ai proposé dans mon travail de thèse une sémantique à base des algèbres de processus qui formalisent les constructeurs de ce langage, permettant ainsi de caractériser cette ambiguïté dans le code BPEL à travers une relation d'interaction.


- Phase de "Consommation de service" : Sur la base de la relation d'interaction, je propose un algorithme de synthèse de clients corrects qui (1) soit détecte l'ambiguïté dans l'interface du service (2) soit génère une composante client qui permet d'utiliser le service.


- Phase de "Composition de services" : Je m'intéresse également à la composition point à point d'un ensemble de services Web complexes (appelée chorégraphie de services). Dans ce cas de figure, un ensemble de partenaires se regroupent afin de créer un service à "valeur ajouté". Pour ce faire, il faut que les services soient compatibles d'un point de vue comportemental. J'ai proposé une méthode qui permet de tester la compatibilité entre un groupe de partenaires. Je m'intéresse au cas de non-compatibilité, dans ce cadre Nous avons proposé -avec Pascal Poizat- une approche qui permet de synthétiser un ensemble de services Web "adaptateurs" qui réparent l'incompatibilité. L'originalité de cette approche consiste dans le fait que les adaptateurs sont également distribués (un service Web adaptateur par partenaire) afin de conserver le caractère distribué de la chorégraphie.


- Phase de "Maintien de services Web" (self-healing Web services) : Ce travail est effectué dans la cadre de la thèse de Yingmin Li que je co-encadre avec Philippe Dague.
Les systèmes composés -ici une composition de services Web- peuvent parfois mal fonctionner. En outre, il n'est pas évident de détecter immédiatement le dysfonctionnement, a fortiori quand la conséquence des fautes (autrement dit les symptômes) peut apparaître plus tard et dans une autre composante. Afin de localiser la faute, le diagnostic consiste à expliquer ces dysfonctionnements -localisation de la source- en se basant sur le modèle du système (le modèle peut être celui du bon ou du mauvais fonctionnement) et sur les traces observées. Dans cette perspective, je m'interesse à utilisation des réseaux de Petri Coloré comme modèle du mauvais fonctionnement du système à diagnostiquer: les couleurs représentent l'état de santé des données (Rouge : mauvaise; Blanche : bonne; Noire: inconnue) et on uttilise les modalités des transitions pour représenter les modes de fonctionnement des activités (normal et abnormal). Notre approche coniste à utilise la matrice d'incidence des réseaux de Petri pour mettre en place un système d'équations dont la résolution donne lieu au diagnostic. L'avantage de cette méthode est qu'on procède comme pour le diagnostic à base de consitance (sans dépliage du réseaux) mais contrairement à cette dernière on cherche pas une affectation conistante par rapport à l'état actuelle mais aussi parapport aux modalité passé. Ceci qui nous permet de traiter des données modfifiées par une itération d'activités.