Commit fd509624 authored by Jerome Mariette's avatar Jerome Mariette
Browse files

new version of jflow article

parent b2c20440
......@@ -53,18 +53,18 @@ and execute their computational pipelines.
Generic WMS, such as Galaxy (Goecks et al., 2010), provide a user friendly
graphical interface easing workflow creation and execution. Today, Galaxy is
probably the most used WMS by the biologist community thanks to its
probably the most used WMS in the biologist community thanks to its
intuitiveness and large software package collection. Unfortunately, such
environments come with their own interface, complicating their integration
within already existing web interfaces. Other tools such as weaver (Bui et al.,
within already existing web tools. Other WMS such as weaver (Bui et al.,
2012) or Cosmos (Gafni et al., 2014) provide a framework or a domain-specific
language to developers wanting to build and run workflows. These software
packages offer the flexibility and power of a high level programming language.
But they do not provide a user interface, enable component and workflow
packages offer the flexibility and power of a high level programming language,
but they do not provide a user interface, enable component and workflow
definition or check file formats.
To our knowledge, Jflow, presented in this article, is the only WMS designed to
be embedded in any web applications, thanks to its organization as five Jquery
be embedded in any web application, thanks to its organization as five Jquery
(http://jquery.com/) plugins. The remaining of the paper is organized as follows:
in Section~\ref{Methods}, Jflow web plugins and its python API are described.
Section~\ref{Example}, presents a concrete integration. Conclusions and further
......@@ -73,8 +73,7 @@ work are discussed in the last section.
\section{Methods}
Jflow user interface comes with five Jquery plugins providing user oriented
views.
Jflow user interface gathers five Jquery plugins providing user oriented views.
\begin{itemize}
\item \textit{availablewf} lists all runnable workflows accessible to users,
......@@ -90,7 +89,7 @@ views.
The plugins give access to multiple communication methods and events. They
interact with the server side through Jflow's REST API, running under a cherrypy
(http://www.cherrypy.org/) web server. The provided server uses the JSONP
(http://www.cherrypy.org/) web server. The included server uses the JSONP
communication technique enabling cross-domain requests.
To be available from the different Jquery plugins, the workflows have to be
......@@ -99,7 +98,7 @@ step. Adding a component to the system requires to write a Python
\textit{Component} subclass. In Jflow, different solutions are available to ease
component creation. To wrap a single command line, the developer can give a
position or a flag for each parameter. Jflow also embeds an XML parser which
allows it to run geniune Mobyle (Neron et al., 2009) components. Finally, to
allows to run geniune Mobyle (Neron et al., 2009) components. Finally, to
allow developpers to integrate components from other WMS, Jflow provides a class
skeleton. This class only requires to implement the parsing step. A workflow
chains several components. A Jflow workflow is built as a \textit{Workflow}
......@@ -112,11 +111,11 @@ and a data type. For files or directories parameters, it is possible to set
required file format, size limitation and location. Jflow handles server side
files with regular expressions, but also URLs and client side files, in which
case, it automatically uploads them. Before running the workflow, Jflow checks
data type compliance for every parameter. To manage job submission, status
checking and error handling, it relies on Makeflow (Albrecht et al., 2012) and
weaver (Bui et al., 2012). It benefits from the error recovery feature and the
support of most distributed resource management systems (Condor, SGE, Work Queue
or a single multicore machine, \ldots) provided by Makeflow.
data type compliance for each parameter. Job submission, status
checking and error handling, rely on Makeflow (Albrecht et al., 2012) and
weaver (Bui et al., 2012). Therefore Jflow manages error recovery and supports
most distributed resource management systems (Condor, SGE, Work Queue or a
single multicore machine, \ldots).
\section{Example}
......@@ -134,15 +133,15 @@ NG6 modal box. It requests the server to get the workflows implemented by the
developer. A \textit{select.availablewf} event thrown by the
\textit{availablewf} plugin is listened and catched to generate the parameter
form using the \textit{wfform} plugin. Considering the parameter type, Jflow
adapts its display. For example, a date is displayed as a calendar, and a
boolean as a checkbox.
adapts its display. For example, a date is displayed as a calendar and a boolean
as a checkbox.
Being dedicated to biological data, NG6 inputs are often experimental
samples, composed of read files and metadata such as name, tissue, developpement
stage. To help biologists to provide such information, Jflow enables to use
samples, composed of read files and metadata such as sample name, tissue,
developpement stage. To help biologists to enter such information, Jflow uses
structured data inputs. Such parameter sets are displayed within the
\textit{wfform} plugin as spreadsheet, allowing to copy and paste multiple
lines. Iterating over a set of samples is thus as easy as filling a spreadsheet.
\textit{wfform} plugin as a spreadsheet, allowing to copy and paste multiple
lines.
\begin{figure}[ht]
\centering
......@@ -169,8 +168,8 @@ execution graph where nodes represent components and edges links between inputs
and outputs.
NG6 was first implemented using the Ergatis (Orvis et al., 2010) WMS, which had
a separate user interface. With Jflow, all actions are available from the same
application, which makes it really user friendly.
a separate user interface. With Jflow, all actions are now available from the
same application, which makes it really user friendly.
\section{Conclusion}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment