ViCE: Visual Computing Environment for Scientific Workflows on the Grid Lawrence Berkeley National Laboratory
Computational Research Division
Distributed Systems Department
Documentation Download current code release Links Mailing Lists

Overview

ViCE is a visual computing environment for building and executing scientific workflows. ViCE leverages industry standard technologies, such as XML, Web Services and Grid Services, to increase the reliability and reduce the difficulty of building and executing workflows. Workflows are built from actor components which are connected by typed communication pipes. Actor components encapsulate the behavior of individual tasks in the workflow, and communication pipes encapsulate the behavior of communication between tasks. Here is a trivial workflow to give you a basic idea of what they look like. This workflow simply iterates a range of numbers (from 30 to 50). This is a common scenario and would typically be used to initial a parameter sweep over a range of integers.
Image of ViCE

This example demonstrates an archetypal workflow in the life sciences: annotation of a novel gene using an existing protein database, and the creation of a multiple sequence alignment combining the gene with its nearest relatives. For a reasonably good although business oriented introduction to the BPEL4WS standard, there is a IBM DeveloperWorks article Business processes in a Web Services world. For a comprehensive review of workflow tools see the excellent Survey of Scientific Workflows.

Goals

ViCE was created to simplify the task of designing, building, and monitoring execution of computational workflows by domain scientists. Scientists from many different domains frequently assemble commonly executed tasks using ad-hoc scripts to carry out their workflows. Many of these workflows contain complex dependencies, and often parts of the workflow have to be executed on different back-end compute resources which are tuned to the particular sub-task being executed. We are developing an environment that provides scientists easy to use tools to assemble their workflows visually, and to receive instantaneous visual indications of the progress of their workflow as it executes. Further, the execution engine, CBEI, handles the tedious aspects of distribution of jobs to back-end compute resources, handling failure cases to ensure that the workflow continues to execute even when back-end resources fail, and allows users to compensate when failures cannot be handled autonomously.

Requirements

We are building ViCE to support the three most commonly used workstation platforms (Mac OS X, Windows XP, and Linux). We use the following software to build ViCE: Although ViCE is built using Python, it interoperates with practically all standard web services platforms. We recognize that modern computing enviroments are highly heterogenous and that you don't want to be constrained to a particular language when implementing services and components. We believe you should be able to build your services and components in any language that supports standard web services. We also provide a tool called PythonCLServiceTool that makes it easy to "wrap" and deploy legacy command-line applications as wgrid services.

Similar Programs and How ViCE is different

There are a number of similar scientific workflow applications; many of which adopt a design similar to ViCE. We will not list them all but list some of the better-known/more-established ones. These all provide a graphical user interace based on a "visual programming" interface in which networks are built from actors and pipes, although they may use different terms for them, and all have slightly different semantics: The big way that ViCE is different is that ViCE is only a front-end for editing workflows and monitoring their execution. It delegates the workflow execution to an external grid service, CBEI. ViCE could be an editor for Triana, Taverna, Kepler, or other workflows, because it is written as a generic framework. ViCE is designed with a simple core with a powerful extension mechanism where users can write their own actors and GUIs that "plug in" to the workflows. This extension mechanism will allow us to add Collaboratory functionality like shared chat, multiple users editing/monitoring a workflow at the same time, and to add other features to enhance user productivity. CBEI, likewise, is written as a generic framework and can be extended in a number of ways. We provide a number of actors which implement common workflow patterns and document how to write new actors that implement previously unacticipated patterns.