P.E.L.I.A.S

Easily create, edit and execute your tasks

Version française

The P.E.L.I.A.S open-source project's goal is to provide users with a solution able to create workflows (graphs of tasks) and to manage their execution. This project was initiated by Bertrand Coüasnon, member of the IMADOC team in the french IRISA research unit.

Context

Members of IMADOC need this tool for their research activity. Research activities inside IMADOC indeed need to be able apply multiple processes on large numbers of files. This imposes creating scripts to apply these operations, and building a sequence with these operations. It is then necessary to execute all those tasks on clusters (to reduce processing time), and to monitor execution.

This job being long and tedious, came a double need for P.E.L.I.A.S. On the one hand, one wants a simple, fast and intuitive mean to create workflows combining several tasks. On the other hand, it seems necessary to have a module dedicated to the execution of the newly-created workflow. This module has to operate in liaison with clustering and scheduling software already in use. Moreover, monitoring must be simple and easily accessible.

P.E.L.I.A.S also aims at being as generic as possible, which means being able to manipulate any kind of files with every possible application. Indeed, the IMADOC team will use P.E.L.I.A.S to launch executions on clusters to have processing complete in a reasonable amount of time.
This page gives an overview of the functionalities offered by P.E.L.I.A.S and briefly presents how it works.

P.E.L.I.A.S can be downloaded from the Sourceforge project page.

1. Create a workflow

A workflow is a sequence of actions that one wants to apply on files.
For instance, one may want to rename, resize or rotate images. The picture on the right gives an example of what a workflow can be.
Instead of running each task on every single file, creating a workflow will allow to apply the whole action set on a big number of files at once.

To serve that purpose, P.E.L.I.A.S includes a graphical editor named PCreator. This editor permits the creation and modification of workflows, by inserting actions.
These actions, called services, are described in service descriptors. Inside those files is recorded all the information necessary for PCreator to create the workflow. This information includes the required call parameters (i.e rotation angle), pieces of information about files generated by the service or the different error types that can be returned.
Using the provided tools, users sets connections between services, hence defining in which order they will be applied on files.

2. Execute a workflow

Once the workflow has been created, it is time to run it. P.E.L.I.A.S comes with a web server called PExecutor, which can be accessed from anywhere in the world, making it possible to entirely configure an execution and launch it at anytime.
Configuration consists, amongst others, in selecting which files will pass through the workflow, on which computers or clusters this workflow will be executed, and how.
Using PExecutor, one can also monitor all executions that are currently running, and choose to pause or cancel one.

PExecutor also is the interface where one can configure machines used to execute workflows. These machines range from the basic desktop computer to clusters of processing units, which offer huge computing power.
PExecutor's execution engine is very flexible. Thanks to its conception, one can imagine launching an execution on any type of processing unit.

Technologies

In order to save time, increase effectiveness and generate an easier to maintain source code, P.E.L.I.A.S is built on top of some advanced technologies. One requirement was that all of our applications be portable.

As regards PCreator, we decided to use the Eclipse Rich Client Platform (Eclipse RCP), along with the Graphical Editing Framework (GEF). GEF makes it easy to develop graphical editors of all kinds inside the Eclipse environment, employing an MVC (Model-View-Controller) architecture. Thus, PCreator is coded using the Java language and makes the most of the richness of the Eclipse platform.

As for PExecutor, the web server and interface, we chose the Ruby on Rails framework which allows creating a dynamic web application using, once again, the model-view-controller architecture. Ruby on Rails is also well known for its effectiveness, and for creating a clear and easily maintainable source code.

Having used such powerful technologies makes our solution more robust and evolutive.


Project supervisor : Bertrand Coüasnon - IRISA/INSA
Developers : Aurélien Fourmi, Lœïz Glondu, Florence Goblot, Jean-Christophe Guigon, Nicolas Jean, Christophe Pincemaille and Romain Pontida - INSA de Rennes, Computer Science department