SAMOVAR UMR 5157

  • Accueil
  • Accueil
  • Accueil
  • Accueil

CNRS

Rechercher




Accueil > Équipes > ACMES > Bilan scientifique 2008-2013 > Axes de recherche

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.