Skip to end of metadata
Go to start of metadata
WIP

This is a WORK IN PROGRESS

This page will document (or link to pages for) the work done on the first preview release of the next gen workbench, due around end of Nov 2010

Overview

The Taverna next generation workbench project aims to build a new workbench user interface (UI) for the Taverna workflow system. It is focused primarily on usability, both in terms of usability of the user interface and, more so, usability in terms of the workflow design, development, execution and debugging process. To aid in this, we are moving towards a more component and data driven workflow designer.

For the component part, we are developing the notion of workflow components as functional, atomic and (usually) domain specific pieces that can be added to workflows. These can range from very specific to generic and aim to provide a more functional view of the workflow design, rather than technical/implementation. Components can be pre defined or generated from existing tools (for example, services on BioCatalogue or workflows on myExperiment). We are working on a model for defining components.

To further support the components work, we are designing and building a workflow components library which will include shims, common components, domain specific components and component families. Where component families are a set of components that are designed to work very well together (for example, a set of Chemistry components for Taverna). Over time the library can be continually populated and maintained to always provide up to date components for Taverna users.

For the data part, we are working on ways to have users easily search for new data sources and easily add them to their workflows as part of the design and execution process.

The workflow designer is taking the form of a canvas in which users can easily drag and drop components and data on to and build workflows in an exploratory fashion. The aim is to have a more interactive and data-centric workflow development environment that can allow multiple workflows (or fragments of workflows) to be developed on the same area and used together as a higher level manual pipeline (a pattern that is emerging from users).

The next gen workbench is being built using the Eclipse Rich Client Platform (RCP) and will use the new Taverna Platform (things like Workflow Bundles, SCUFL2, Taverna Server and the new Taverna execution engine).

What we are planning to do

For the Preview 1 release due end Nov 2010:

  • Brand new workbench with a new user interface, built on the Eclipse RCP platform.
  • Load, partially edit, run and save SCUFL2 workflows (as Workflow Bundles).
  • Initial work on a more interactive canvas for developing workflows. This will move away from the single workflow view and allow for multiple workflow fragments to be developed at the same time.
  • Support for WSDL activity, scripting activity (initially just Beanshell) and string constants.
  • Components palette with some pre-packaged workflow components (still to be determined exactly what).
  • Ability to search for workflow components from BioCatalogue, myExperiment and a new myGrid Workflow Components Library, and add new components to your local palette.
  • Initial work on a data browser (for data sources, not data produced from workflows).
  • Initial work on a workflows browser, to browse and manage your current set of workflows.
  • Very initial integration of myExperiment and BioCatalogue.

Alternative Overview

  • SCUFL2 is the new Taverna workflow model and captures everything there is to know about a workflow's internals, it's configuration and how to run it.
  • SCUFL2 is stored within a Workflow Bundle.
  • The Taverna Platform works with and only knows SCUFL2.
  • We present a different layer on top of SCUFL2, ie: component and data driven workflow design.
  • So users work on a canvas where there are workflows, workflow fragments and data.
  • They d'n'd workflow components on to the canvas.
  • Components are a richer way of adding and configuring funcitonality in a workflow.
  • Components wrap and hide the underlying technical/implementation stuff into a more functional view.
  • Components can have ports.
  • Ports can have 0..* filters/shims.
  • The whole component + ports + filters/shims gets translated under the hood into a logical group of processors in SCUFL2, NOT a nested workflow (since nested workflows can be explicitly edited internally and introduce overhead).
  • We will be storing our own stuff in the Workflow Bundle together with the SCUFL2 bits (in sync).

Stories

User

  • Can create a new SCUFL2 workflow.
  • Can load existing SCUFL2 workflows
  • Can search for new components relating to {blast}
  • Can add a {blast sequence analysis} component to the canvas
  • Can configure the {blast sequence analysis} component
  •  

Development

  • SCUFL2 integration
  • Workflow components
  • Branding for different versions of the product
  •  

Design Work

Discussions with Users

Whiteboard Session with Paul - (2010-08-19)

User feedback - Component Definition + UI (2010-11-19)

See: Discussions with Users

Integration with Taverna Backend (Platform / Execution / SCUFL2 / etc)

See: Integration with Taverna Backend

Main Libraries Being Used

Library

Description

Homepage

Version

License

Eclipse Rich Client Platform (RCP)

 

http://wiki.eclipse.org/index.php/Rich_Client_Platform

3.6.1

Eclipse Public License (EPL)

Eclipse Modelling Framework (EMF)

 

http://www.eclipse.org/emf/

2.6.1

Eclipse Public License (EPL)

Eclipse Graphical Editing Framework (GEF)

 

www.eclipse.org/gef/

3.6.1

Eclipse Public License (EPL)

Eclipse Graphical Modelling Framework (GMF)

 

www.eclipse.org/gmf/

1.4.1

Eclipse Public License (EPL)

Google GSON

JSON parser

http://code.google.com/p/google-gson/

1.5

Apache License 2.0

Jackson

High-performance JSON processor

http://jackson.codehaus.org/

1.7.3

LGPL

Joda-Time

Joda-Time provides a quality replacement for the Java date and time classes

http://joda-time.sourceforge.net/

1.6.2

Apache License 2.0

Lombok

Makes life easier!

http://projectlombok.org/

0.9.3

MIT License

JRuby

Ruby on the JVM (mind = blown)

http://jruby.org/

1.5.5

CPL/GPL/LGPL

Apache Commons IO

 

http://commons.apache.org/io/

2.0.1

Apache License 2.0

Apache Commons Lang

 

http://commons.apache.org/lang/

3.0 beta

Apache License 2.0

guava-libraries

 

http://code.google.com/p/guava-libraries/

r07 / 1.7

Apache License 2.0

SWTBot

 

http://www.eclipse.org/swtbot/

2.0 and 1.2

Eclipse Public License (EPL)

RCPForms

 

http://sourceforge.net/apps/trac/rcpforms/wiki

1.2.4

Eclipse Public License (EPL)

Develop & Build

See: Develop & Build

Development Tutorials

See: Development Resources

Conceptual Model

See: Conceptual Model

Implementation Architecture

See: Implementation Architecture

Workflow Components

See: Workflow Components

Workflow Components Library

See:

Tasks List

Future Work

There is huge potential to do so much more with the next gen workbench:

  • Advanced data viewers.
  • A component designer to make it easy to build component definitions
  • Design input forms (then workbench, portal, web app, etc can use this to generate workflow input forms). Should be stored in the Workflow Bundle.
  • More advanced data browser (for data sources to add to workflows).
  • More advanced components palette (with filtering, sorting, data matching, etc.)
  • More assistive workflow design, using semantics etc. to do port matching, 
  • More advanced Canvas which can do snapshotting of runs and allow users to browse through the history of runs and the states of the Canvas.
Labels
  • None