Créez, éditez et exécutez vos tâches simplement
Le projet open-source P.E.L.I.A.S a pour but de proposer une solution afin de créer des chaînes de traitements et de gérer leur exécution. Ce projet a été initié par Bertrand Coüasnon, membre de l'équipe IMADOC de l'IRISA.
Les membres de l'équipe IMADOC ont besoin de cet outil dans le cadre de leurs recherches. En effet, l'activité de recherche au sein d'IMADOC nécessite d'effectuer de multiples traitements sur d'importantes quantités de fichiers. Cela impose de réaliser les scripts d'application des traitements, et de construction de la chaîne des traitements. Il faut ensuite faire exécuter les tâche par des grappes de machines (ou clusters), et suivre l'exécution.
Ce travail étant long et fastidieux, il est venu un besoin double. D'une part, il faut un moyen simple, rapide et intuitif pour créer des chaînes de multiples traitements. D'autre part, il semble nécessaire d'avoir un module d'exécution de la chaîne de traitements ainsi créée, s'appuyant sur les logiciels de clustering et scheduling déjà utilisés. Le suivi des traitements doit pouvoir être simple et facile d'accès.
P.E.L.I.A.S aura également pour vocation d'être le plus générique possible, c'est à dire de pouvoir s'appliquer sur n'importe quel type de fichier, d'application ou de contexte d'exécution. Cela permettra de répondre au mieux aux besoin des membres de l'équipe IMADOC. Le but final est de rendre plus aisée la manipulation des chaînes de traitements.
Cette page donne ainsi un aperçu des fonctionnalités offertes par la solution P.E.L.I.A.S, et présente son fonctionnement de façon simplifiée.
P.E.L.I.A.S peut être téléchargé depuis la page du projet sur Sourceforge.
Une chaîne de traitements est une suite d'actions que l'on veut enchaîner sur des fichiers.
Par exemple, sur des images, on peut avoir l'intention de les renommer, les redimensionner, etc.
La figure ci-contre montre un exemple de chaîne de traitement.
Au lieu d'effectuer chacune de ces actions sur chaque fichier souhaité, la création d'une chaîne de traitement va permettre d'appliquer l'ensemble de ces actions sur un grand nombre de fichiers, et tout cela en une seule fois.
Pour cela, le projet P.E.L.I.A.S propose un éditeur graphique, nommé PCreator.
Cet éditeur permet de créer et modifier des chaînes de traitements, en insérant des actions.
Ces actions sont décrites par des descripteurs de services.
A l'intérieur de ces fichiers sont consignées les différentes informations nécessaires à PCreator pour créer la chaîne.
Ces informations peuvent être les paramètres requis (angle de rotation, etc), ou des informations à propos des fichiers générés en sortie ou encore les types d'erreurs qui peuvent être émises.
Avec l'outil mis à disposition, l'utilisateur établit les connections entre les traitements, et définit ainsi l'ordre dans lequel les actions sur les fichiers vont être effectuées.
Une fois la chaîne de traitement créée, il faut l'exécuter. Pour cela, P.E.L.I.A.S met en place un serveur web nommé PExecutor. Ainsi, depuis n'importe quel endroit de la planète, il est possible via PExecutor de paramétrer entièrement une exécution et de la lancer.
Le paramétrage consiste notamment à définir les fichiers qui vont passer à travers la chaîne de traitement, sur quelles entités celle-ci sera exécutée, et de quelle manière.
PExecutor permet ensuite de suivre les états d'avancement de toutes les exécutions lancées en parallèle, proposant de stopper l'exécution, ou de l'annuler.
PExecutor est aussi l'interface via laquelle on paramètre les unités d'exécutions disponibles. Ces unités d'exécutions peuvent varier de la simple machine de bureau aux grilles de machines, qui offrent des puissances de calcul incomparables.
Le moteur d'exécution intégré dans PExecutor est très souple, sa conception permet d'imaginer de lancer une exécution sur n'importe quelle entité capable de calculer.
Pour la réalisation de ce projet, nous avons utilisé plusieurs technologies avancées, dans le but de gagner en temps, en efficacité, et en maintenabilité du code. Nous voulions aussi que toutes nos application soient portables.
Ainsi, pour la partie PCreator, nous avons choisi d'utiliser le RCP (Rich Client Platform) d'Eclipse, couplé au framework GEF (Graphical Editing Framework), qui est, comme son nom l'indique, conçu pour permettre le développement d'éditeurs graphiques en tous genres. L'application PCreator est donc programmée avec le langage Java, et profite de toutes les richesses de l'environnement Eclipse.
Pour ce qui est de PExecutor, le serveur web, nous avons utilisé le framework Ruby on Rails, qui permet de développer une application web en suivant l'architecture Modèle Vue Contrôleur (MVC). Ruby on Rails est aussi réputé pour son efficacité, et pour permettre de procurer du code clair et facilement maintenable.
Le fait d'avoir utilisé des technologies puissantes et efficaces rend notre solution plus solide, et évolutive.
Encadreur : Bertrand Coüasnon - IRISA/INSA
Réalisateurs : Aurélien Fourmi, Lœïz Glondu, Florence Goblot, Jean-Christophe Guigon, Nicolas Jean, Christophe Pincemaille et Romain Pontida - INSA de Rennes, département informatique