Services, Workflows et Clouds

  • Membres : Djamel Belaid, Bruno Defude (HDR), Walid Gaaloul, Kais Klai (Délégation CNRS dans l’équipe en 2012-13) Samir Tata (HDR) ;
  • Doctorants : 9 dont 4 soutenues
  • Post-doctorants : Zhang Bing Zhou (2011), Ngoc Chan Nguyen (2012-2013), Mohamed Sellami (2012-2013)

L’hétérogénéité des ressources des environnements distribués, pervasifs ou de type cloud ainsi que le déploiement et la gestion dynamiques et à la demande des applications à base de services représentent des défis majeurs. Il est donc indispensable de s’appuyer sur des méthodologies et des outils de composition dynamique de ressources de plateforme virtuelle comme on effectue de nos jours la composition dynamique et autonomique d’applications et de services. La principale question à laquelle nous nous intéressons ici est la suivante : Comment peut-on développer des plateformes permettant le déploiement, l’exécution et la gestion de tout le cycle de vie d’applications peu importe
leurs langages de développement, leurs modèles de composants/services, leurs paradigmes de programmation ou leurs protocoles de communications applicatifs ?

Nous nous intéressons donc dans cet axe de recherche aux applications basées sur les services évoluant en environnements distribués, pervasifs ou de type cloud. Ces applications englobent les procédés d’entreprise (ou encore workflows), les orchestrations de services (par exemple modélisées en BPEL) ou encore les architectures de services (par exemple modélisées en SCA). Dans ce contexte, nos travaux visent le développement de modèles, algorithmes et outils pour supporter tout le cycle de vie d’applications couvrant les phases de (1) la modélisation, (2) l’analyse, (3) la gestion (déploiement, surveillance et reconfiguration) et (5) la ré-ingénierie par la fouille de procédés d’entreprise.

Modélisation d’applications à base de services

Avec la démocratisation des procédés métier en entreprise, la modélisation/conception de procédés se base de plus en plus sur la réutilisation de services et de parties de procédés existants. Pour identifier les services à intégrer/réutiliser, de nombreux travaux de recherche, basés sur des techniques de découverte et/ou de recommandation de services, ont été conduits dans les milieux académiques ou industriels.

D’une part, les travaux existants font des recommandations sans tenir compte des données qui reflètent l’intérêt des utilisateurs et peuvent demander des informations supplémentaires aux utilisateurs. D’autre part, plusieurs techniques ont été élaborées pour rechercher des modèles de procédés métier similaires, ou à partir de modèles de référence (procédés configurables). Cependant, ces techniques sont lentes, source d’erreurs et grandes consommatrices de ressources humaines. Nos contributions dans ce contexte ont porté sur (1) la description et la découverte de services, (2) la découverte d’annuaires de services en environnements distribués (étape préalable à la découverte ou la recommandation de services).

Pour améliorer la découverte de services, nous avons développé un langage de description sémantique de services qui enrichit les descriptions de services par des références qui portent sur des concepts techniques de services tels que la pré-condition, l’effet, l’opération, etc. Ces concepts proviennent d’une ontologie dite technique que nous avons définie en nous basant sur l’intégration des concepts de services de modèles sémantiques de services existants (WSMO, OWL-S, etc.) [189]. De plus, nous avons défini et implémenté trois algorithmes d’appariement de services. Les expérimentations que nous avons menées ont montré l’efficacité (en termes de précision et temps de réponse) de notre technique de découverte de service [190]. Ce travail a été réalisé dans le cadre de la thèse de Y. Chabeb [313].

En ce qui concerne la découverte d’annuaires de services en environnements distribués (étape préalable à la découverte ou la recommandation de services), nous avons développé une approche de recommandation qui se compose de deux grandes étapes : la sélection d’un groupe d’annuaires et la recommandation d’un (ou plusieurs) annuaire(s) de ce groupe [13, 174]. La sélection d’un groupe se base sur un appariement sémantique entre la requête de l’utilisateur et les descriptions sémantiques des groupes d’annuaires. Toutefois, le groupe sélectionné peut contenir un nombre important d’annuaires de services. Pour cibler un annuaire, la recommandation est basée sur l’appariement entre la caractérisation du demandeur de service et la caractérisation de l’annuaire. Cette dernière
est calculée en fonction des caractérisations des différents demandeurs de services ayant dans le passé sélectionné un service de cet annuaire (Thèse de Mohamed Sellami). Ces travaux se sont continués dans le contexte de services de gestion de données (Data as a Service ou DaaS, services encapsulant des accès à des sources de données) accessibles à travers un réseau pair-à-pair [15]. Chaque service est annoté relativement à une ontologie locale de référence.
Pour permettre l’interopérabilité entre les pairs, des correspondances entre ontologies locales sont définies au niveau de chaque pair. Une requête d’interrogation est formulée comme une requête SPARQL sur une ontologie locale et son évaluation est faite par invocation d’une composition de services sur une ou plusieurs sources (impliquant le cas échéant les correspondances entre ontologies). Pour réaliser cette composition, les sources doivent pouvoir être découvertes et nous avons proposé une organisation à base de clustering permettant à la fois de mieux structurer
l’espace de recherche et de pouvoir également remplacer un service défaillant par un autre [6]. Puisque les services ne sont pas forcément décrits de manière homogène, de la médiation est nécessaire pour transformer les sorties d’un service en entrées compatibles syntaxiquement et sémantiquement d’un autre service. Nous avons proposé un mécanisme de médiation basé sur des services et des ontologies de médiation et fonctionnant dans un contexte pair-à-pair [90].

Ces travaux sur la modélisation d’applications à base de services ont été réalisés avec le support des projets ANR INFRA SemEUsE (coordonné par Thales) et ANR INFRA PAIRSE (coordonné par l’équipe SOC du laboratoire LIRIS).

Vérification formelle de propriétés

La vérification des applications à base de services, des procédés métier ou workflows est un problème difficile et représente un enjeu crucial pour leurs mises en oeuvre, déploiements et managements. En effet, il est primordial de définir formellement des propriétés spécifiques, de développer des techniques de vérification adaptées aux applications à base de services, procédés métier ou workflows et en particulier à leurs environnements de déploiement. En particulier nous nous sommes intéressés à la modélisation formelle et la vérification de procédés interentreprises.
Ces travaux ont été réalisés en collaboraion avec Kais Klai de l’université Paris 13/LIPN qui a passé un an de délégation dans l’équipe en 2012-13.

La conception d’un procédé inter-entreprise (PIE) est généralement effectuée de façon modulaire. Chaque procédé est conçu séparément avant que le PIE soit obtenu par composition. Le comportement correct de chaque procédé (analysé indépendamment des autres) n’apporte aucune garantie sur la correction du comportement du procédé obtenu par composition (i.e., la plupart des bonnes propriétés ne sont pas préservées par composition).
Par ailleurs, le caractère privé de certaines informations d’une entreprise rend difficile l’accès au modèle global du PIE pour prouver la correction de son comportement. En effet, un procédé qui cherche un partenaire doit rendre disponible certaines informations nécessaires à la vérification d’une collaboration éventuelle tout en respectant des critères de confidentialité internes.

Nous avons proposé une technique de vérifications des PIE basée sur les Graphes d’Observation Symboliques (GOS). Le GOS représente une technique de vérification efficace puisqu’elle est largement basée sur le principe d’abstraction. Les données internes à un procédé qui ne sont pas nécessaires à la preuve de la correction du système sont cachées.

Nous nous sommes alors intéressés à la propriété d’absence de blocage et à la propriété de "soundness" et ses variantes (weak, relaxed, easy). Nous avons identifié les informations locales à rattacher aux états locaux du GOS qui nous permettrons de détecter des situations où ces propriétés ne sont pas respectées dans un PIE global du fait de la composition. Ce travail a donné lieu à plusieurs publications dans des conférences internationales de renom [31, 238].

Si l’absence de blocage et la soundness sont des propriétés génériques, il est aussi possible de vouloir exprimer des propriétés spécifiques exprimées avec des logiques temporelles (e.g. LTL ou CTL). Nous avons donc proposé d’étendre le critère de compatibilité entre procédés à des propriétés spécifiques exprimées avec la logique LTL [81, 22]. Nous avons par ailleurs défini une nouvelle structure appelée TAG pour abstraire le graphe d’accessibilité d’un réseau temporisé. Cette nouvelle structure nous permettra de vérifier des propriétés temporisées dans les PIE d’une façon efficace [83].

Par ailleurs, nous nous sommes aussi intéressés, toujours en collaboration avec Kais Klai, à la vérification des propriétés non fonctionnelles des procédés relatives à leur comportement transactionnel pour assurer une exécution fiable [163]. D’un autre côté, dans le cadre d’une collaboration avec les universités de Monastir et de Sfax en Tunisie nous avons proposé une approche formelle de vérification des propriétés structurelles liées à la médiation dans une
composition de services en utilisant une approche dirigée par les modèles [19].

Gestion d’applications à base de service dans le cloud

Nos résultats de recherche sur la gestion d’applications à base de service en environnements distribués, pervasifs ou de type cloud concernent le déploiement, la supervision et la configuration d’applications. Ils ont été supportés par les projets FSN OpenPaaS (Fond National pour la société Numérique coordonné par LINAGORA), ITEA Easi-Clouds (projet européen coordonné par Thales) et FUI CompatibleOne (coordonné par BULL).

Nous avons développé un framework pour le déploiement d’applications à base de services en environnement Cloud. Etant donné un service et son descripteur de déploiement, le framework génère un micro-conteneur dédié au service métier à déployer muni des services techniques adéquats (communication, mobilité [131], monitoring et configuration [86], etc.). L’expérimentation de ce conteneur a prouvé son efficacité en termes de consommation de ressources, de temps de réponse et de passage à l’échelle [178]. A la base de ce Framework, nous avons développé une approche pour le déploiement automatique des processus BPEL et des applications SCA [14, 94]. Ce travail a été réalisé dans le cadre de la thèse de S. Yangui.

Nous avons également proposé une approche de supervision et de configuration générique d’applications à base de services (typiquement décrites en SCA [87]). Concrètement, nous avons conçu et réalisé un framework permettant à un architecte d’exprimer les besoins de monitoring et de configuration de services d’une application à base de composants répartis [85]. Ce framework permet à partir de cette description d’ajouter dynamiquement les fonctionnalités de monitoring et de reconfiguration aux services à déployer. Les expérimentations ont montré son efficacité en termes de consommation de temps et de ressources mémoire. Dans le même cadre, nous avons proposé une approche de monitoring et de reconfiguration des ressources dans un environnement Cloud [88]. Cette approche se base sur une extension du standard OCCI et est indépendante du niveau du service (IaaS, PaaS ou SaaS). Ce travail a été réalisé dans le cadre de la thèse de Mohamed Mohamed.

Nous avons défini un service générique de gestion de la provenance pour le cloud. La provenance d’un objet représente toutes les opérations qui lui ont été appliquées depuis sa création. La généricité est assurée par un modèle métier défini par spécialisation d’un modèle minimal et propre à chaque application. L’existence d’un modèle minimal commun permet une interrogation de toutes les sources de provenance quel que soit leur modèle métier. Il est également possible de lier et d’interroger des sources de provenance distribuées portant sur les mêmes objets. Une implémentation efficace de ce service a été réalisée sur un système NoSQL CouchDB et a montré ses
capacités de passage à l’échelle en utilisant du partitionnement sur plusieurs serveurs [57, 310]. Ce travail a été réalisé dans le cadre d’une thèse CIFRE avec la société Novapost.

Aide à la conception de procédés d’entreprises et fouille

Pour aider un concepteur de procédé métier, nous avons utilisé une approche de recommandation prenant en compte les relations entre services du procédé métier et le contexte de voisinage d’un service. Par ailleurs, nous avons développé un langage de requête pour permettre aux analystes métier d’exprimer formellement des contraintes de filtrage. Enfin, nous avons développé trois applications afin de valider notre approche. Nous avons effectué des expérimentations sur des données recueillies par nos applications et sur deux grands ensembles de données publiques.
Les résultats expérimentaux montrent que notre approche est faisable, précise et performante dans des cas d’utilisation réels. Ce travail a été réalisé dans le cadre de la thèse de Ngoc Chan Nguyen et a donné lieu à plusieurs publications (e.g. [307, 128, 170, 171]).

Il est aussi important de faire la ré-ingénierie des procédés à partir de leur utilisation réelle. Pour cela, les techniques de fouille de procédés à partir de leurs traces d’exécution permettent de détecter et corriger des lacunes de conception/modélisation. Cependant, les traces d’exécution utilisées par les travaux existants sont purement syntaxiques et présentent plusieurs ambiguités. En se basant sur des traces d’exécution sémantiquement enrichies, nous avons proposé une approche de découverte des structures organisationnelles. Concrètement, avons défini un nouveau format de traces d’exécution annotées sémantiquement par une ontologie générique à base d’agents qui décrit
la structure organisationnelle et la communication entre les différents acteurs au sein d’un procédé donné. Cette annotation sémantique nous a permis de créer une base de connaissances organisationnelle en peuplant l’ontologie par des données existant dans les traces d’exécution annotées. [137]. Par conséquent, nous avons pu découvrir les relations existant entre les acteurs dans un procédé en utilisant des règles d’inférence sur la base de connaissances construite.