La reproductibilité est la capacité d’une expérience à être répétée à l’identique par son auteur ou par un tiers. Elle assure que les résultats seront équivalents à des moments différents et dans des conditions différentes. C’est un des principes fondamentaux qui conditionnent le caractère scientifique d’une étude et la capacité à généraliser ses conclusions.
L’accroissement de la reproductibilité scientifique est un enjeu essentiel pour accélérer la productivité scientifique. Pour la favoriser, les analyses de données, qui représentent la partie in silico des protocoles expérimentaux, doivent être formalisées. Ces processus peuvent être implémentés sous forme de chaînes de traitements. En pratique, celles-ci sont souvent de nature hétérogène et peu structurées, limitant la capacité d’échanges et la maintenabilité. Les systèmes de gestion de workflows (Workflow Management Systems ou WfMS) scientifiques ont émergé depuis une dizaine d’années et proposent de mieux formaliser les chaînes de traitements en mettant en avant des propriétés de répétabilité, de maintenabilité et de capacité à l’échange. Certains de ces environnements bénéficient d’une très large base d’utilisateurs. Ainsi, en bioinformatique, un WfMS comme Galaxy tire parti d’une communauté très active et rend accessible des traitements d’analyse de données reproductibles couvrant une large partie du domaine d’application.
Définition d’un langage DataFlow adapté à la conception rapide de workflows intensifs
Un des apports majeurs de ce travail est la définition des bases formelles d’un langage graphique DataFlow générique, particulièrement adapté aux analyses de données intensives. Ce langage permet de spécifier de façon simplifiée un workflow basé sur la composition d’acteurs hétérogènes sans état. La spécification produite est interprétable par un moteur de workflows. Pour cela nous avons exploité des principes et patrons de conception issus des langages fonctionnels. Ceux-ci facilitent la hiérarchisation des fonctionnalités et permettent ainsi une prise en main intuitive des outils de conception, sans limiter l’expressivité du langage. L’apport des langages fonctionnels est ici notamment caractérisé par l’utilisation de la gestion implicite des itérations et l’emploi d’un système de jetons de données abstraits référençant des collections (monades collection) et associé à des fonctions de filtrage (listes en compréhension).
Modèle de calcul générique exploitant les niveaux extractibles de parallélisme dans les workflows
Une autre contribution de cette étude est la création d’un modèle de calcul original. Ce modèle de calcul s’inspire des modèles DataFlow historiques en les adaptant aux architectures orientées service dédiées au calcul intensif. Ce modèle de calcul est associé à un algorithme d’ordonnancement et permet l’exploitation de plusieurs niveaux de parallélisme extractible à partir d’une spécification DataFlow: le parallélisme de tâches (itération, dépendances de données) et le parallélisme de données gros grain. La particularité de notre modèle de calcul est qu’il exploite les niveaux de parallélisme les plus communs dans les workflows bioinformatiques. D’autre part, il est adapté aux infrastructures distribuées comme les clusters de calcul. C’est une approche générique et automatisable permettant l’introduction du parallélisme dans l’exécution des workflows et donc la diminution des temps d’analyses. Le moteur de workflows basé sur ce modèle est performant pour l’analyse des grands jeux de données. Par ailleurs, la capture d’une spécification de workflow adaptée à ce moteur est particulièrement rapide.
Génération d’implémentations multiples à partir de la capture d’une unique spécification de workflows
Nous avons montré le potentiel d’une approche orientée modèle pour adapter les workflows à différents environnements d’exécution. Pour cela, nous abordons l’exploitation de la transformation de modèles. Par cette méthode, il est possible, à partir d’un même modèle de worfklow, de générer différentes implémentations, chacune adaptée à un contexte d’exécution particulier. Il peut s’agir d’une spécification exécutable par un moteur de workflows ou de code interprétable dans un langage general purpose. Cette capacité à s’adapter à différents contextes d’exécution favorise l’indépendance entre spécification et implémentation et la pérennisation des processus capturés.
Application à la conception d’un WfMS
Nous montrons l’intérêt des formalismes élaborés en les implémentant au sein d’un nouveau WfMS intégratif orienté service qui associe un environnement de conception, un répertoire de workflows et un moteur d’exécution. Nous mettons notamment en évidence l’intérêt de cet environnement pour la conception rapide de workflows intensifs scientifiques. Ce WfMS rend possible la capture rapide de composants hétérogènes et leur orchestration. Nous étudions des exemples d’intégration de méthodes d’analyse de données bioinformatiques, en cours d’élaboration. Ces méthodes sont capturées sous forme de workflows puis converties semi-automatiquement en implémentations adaptées à un contexte d’exécution intensif. Cet environnement logiciel est capable, à partir d’une même spécification, de produire différents types d’implémentations et modes de mise à disposition. Il peut ainsi concilier différents usages pour plusieurs publics tout en garantissant la normalisation et la pérennisation des processus d’analyse. Grâce à ce type de plates-formes, le workflow devient lui même un service exploitable dans différents contextes applicatifs et contextes d’exécution. Nous pensons donc que ce nouveau type de WfMS favorise l’usage et la dissémination des workflows.
Formalisation d’une spécification autonome de workflows
Une autre contribution de cette thèse est la définition d’une spécification DataFlow autonome, suffisante pour permettre le déploiement des workflows indépendamment de l’infrastructure de calcul. Le couplage entre spécifications de workflows et dépendances des composants permet, dans le cas du modèle de cloud computing CaaS (Container as a Service), la diffusion et l’échange de chaînes de traitements de données directement interprétables et réutilisables. La spécification proposée, A-SCDFM (Autonomous SemiConcrete DataFlow Model), rend possible la création de répertoires communautaires de workflows intrinsèquement diffusables et ré-exécutables. Pour cela nous suggérons l’élaboration conjointe de répertoires de workflows basées sur A-SCDFM et de répertoires de containers incluant les dépendances logicielles. Cette architecture pourrait déboucher sur une accélération de la diffusion et de la mise à disposition des chaînes de traitements de données, notamment intensives dans des contextes de développement communautaire, comme on le trouve en bioinformatique.
|
Table des matières
Introduction
Motivations
Une méthode orientée modèle dans la conception des workflows scientifiques
Définition d’un langage DataFlow adapté à la conception rapide de workflows intensifs
Modèle de calcul générique exploitant les niveaux extractibles de parallélisme dans les workflows
Génération d’implémentations multiples à partir de la capture d’une unique spécification de workflows
Application à la conception d’un WfMS
Formalisation d’une spécification autonome de workflows
1 Etat de l’art formel
1.1 Modèles de calcul
1.1.1 Définition
1.1.2 La représentation des Workflows
1.1.2.1 Méthodes algèbriques de manipulation de processus
1.1.2.2 Méthodes basées sur les graphes
1.1.3 Validation et exécution d’un MoC
1.2 L’expressivité dans les langages graphiques
1.3 Les langages DataFlow
1.3.1 Une famille de modèles
1.3.2 La nature graphique des langages DataFlow
1.3.3 Langages fonctionnels et DataFlow
1.3.3.1 Les langages Fonctionnels
1.3.3.2 La nature fonctionnelle des langages DataFlow
1.4 Approche de conception orientée modèle
1.4.1 Architectures Orientées Modèle
1.5 Ontologies et MDA
1.5.1 L’apport des ontologies dans la conception logicielle
1.5.2 Formalisation de l’intégration des ontologies en MDA
1.6 Résumé
2 Etat de l’art des techniques et usages
2.1 Les systèmes de gestion des workflows scientifiques d’analyse de données
2.1.1 Définitions
2.1.2 Typologie des WfMS
2.1.3 Clients lourds
2.1.4 Environnements SaaS
2.1.5 WfMS et environnements intégratifs
2.2 L’usage des WfMS scientifiques dans les organisations
2.2.1 Émergence et gradient de formalisation des chaînes de traitements
scientifiques
2.2.2 Les intervenants des WfMS
2.3 WfMS et prototypage
2.3.1 Prototypage de workflows et conception de composants dans les
WfMS
2.3.2 Intégration de composants hétérogènes
2.4 Catégorisation des composants logiciels
2.5 Les types de sources de données
2.6 Exploitation des infrastructures d’exécution par les WfMS
2.6.1 Les infrastructures de calcul et leurs modes de mise à disposition
2.6.2 Adaptation des WfMS aux changements d’infrastructures de calcul
2.7 Performances des moteurs de workflows
2.7.1 Les types de parallélismes accessibles dans les WfMS
2.7.2 Exploitation du parallélisme dans les WfMS actuels
2.8 Résumé
3 Méthodologies
3.1 Synthèse des objectifs
3.2 Proposition d’un nouveau modèle de calcul
3.2.1 Spécification du modèle de calcul UDFAS
3.2.2 Extraction du parallélisme dans le Moc UDFAS
3.3 Une démarche de conception inspirée de l’architecture dirigée par les modèles
3.3.1 Méta-Modèle des données, conception rapide et parallélisation semiautomatique
3.3.2 Méta-Modèle des composants et des plates-formes et adaptation à de multiples environnements d’exécution
3.4 Résumé
4 Implémentations
4.1 Un nouveau WfMS intégratif
4.1.1 Prototypage à partir de Kepler/Ptolemy
4.1.2 Une architecture orientée service
4.1.3 WfMS intégratif en mode SaaS
4.2 Un moteur de workflows basé sur le Modèle de calcul UDFAS
4.2.1 La spécification DSURI
4.2.2 La gestion distribuée des données et des exécutions
4.2.3 L’architecture des acteurs
4.3 Design rapide de workflows
4.3.1 De la ligne de commande à l’acteur
4.3.2 Génération du parallélisme de données
4.4 Transformation de modèles et adaptation aux contextes d’exécution
4.4.1 Une spécification, plusieurs implémentations
4.4.2 CPMM et personnalisation pour le PaaS
4.4.3 Exploitation du modèle Containers as a Service
4.5 Résumé
5 Résultats
5.1 Evaluation des performances
5.2 Illustrations
5.2.1 PrimerFinder
5.2.2 Orthocis
5.3 Résumé
6 Discussion
Conclusion