Kepler scientific workflow system. Kepler is a free software system for designing, executing, reusing, evolving, archiving, and sharing scientific workflows.
Kepler's facilities provide process and data monitoring, provenance information, and high-speed data movement.  Workflows in general, and scientific workflows in particular, are directed graphs where the nodes represent discrete computational components, and the edges represent paths along which data and results can flow between components.
In Kepler, the nodes are called 'Actors' and the edges are called 'channels'.  Kepler includes a graphical user interface for composing workflows in a desktop environment, a runtime engine for executing workflows within the GUI and independently from a command-line, and a distributed computing option that allows workflow tasks to be distributed among compute nodes in a computer cluster or computing grid. The Kepler system principally targets the use of a workflow metaphor for organizing computational tasks that are directed towards particular scientific analysis and modeling goals.  Thus, Kepler scientific workflows generally model the flow of data from one step to another in a series of computations that achieve some scientific goal.

Scientific workflow 
A scientific workflow is the process of combining data and processes into a configurable, structured set of steps that implement semi-automated computational solutions to a scientific problem. Scientific workflow systems often provide graphical user interfaces to combine different technologies along with efficient methods for using them, and thus increase the efficiency of the scientists.

Access to scientific data 
Kepler provides direct access to scientific data that has been archived in many of the commonly used data archives.  For example, Kepler provides access to data stored in the Knowledge Network for Biocomplexity (KNB) Metacat server and described using Ecological Metadata Language.  Additional data sources that are supported include data accessible using the DiGIR protocol, the OPeNDAP protocol, GridFTP, JDBC, SRB, and others.

Models of Computation 
Kepler differs from many of the other bioinformatics workflow management systems in that it separates the structure of the workflow model from its model of computation, such that different models for the computation of the workflow can be bound to a given workflow graph. Kepler inherits several common models of computation from the Ptolemy system, including Synchronous Data Flow (SDF), Continuous Time (CT), Process Network (PN), and Dynamic Data Flow (DDF), among others.

Hierarchical workflows 
Kepler supports hierarchy in workflows, which allows complex tasks to be composed of simpler components.  This feature allows workflow authors to build re-usable, modular components that can be saved for use across many different workflows.

Workflow semantics 
Kepler provides a model for the semantic annotation of workflow components using terms drawn from an ontology.  These annotations support many advanced features, including improved search capabilities, automated workflow validation, and improved workflow editing.

Sharing workflows 
Kepler components can be shared by exporting the workflow or component into a Kepler Archive (KAR) file, which is an extension of the JAR file format from Java.  Once a KAR file is created, it can be emailed to colleagues, shared on web sites, or uploaded to the Kepler Component Repository.  The Component Repository is centralized system for sharing Kepler workflows that is accessible via both a web portal and a web service interface.  Users can directly search for and utilize components from the repository from within the Kepler workflow composition GUI.

Provenance 
Provenance is a critical concept in scientific workflows, since it allows scientists to understand the origin of their results, to repeat their experiments, and to validate the processes that were used to derive data products.  In order for a workflow to be reproduced, provenance information must be recorded that indicates where the data originated, how it was altered, and which components and what parameter settings were used. This will allow other scientists to re-conduct the experiment, confirming the results.

Little support exists in current systems to allow end-users to query provenance information in scientifically meaningful ways, in particular when advanced workflow execution models go beyond simple DAGs (as in process networks).

Kepler history 
The Kepler Project was created in 2002 by members of the Science Environment for Ecological Knowledge (SEEK) project  and the Scientific Data Management (SDM) project.  The project was founded by researchers at the National Center for Ecological Analysis and Synthesis (NCEAS) at the University of California, Santa Barbara and the San Diego Supercomputer Center at the University of California, San Diego.  Kepler extends Ptolemy II, which is a software system for  modeling, simulation, and design of concurrent, real-time, embedded systems developed at UC Berkeley.  Collaboration on Kepler quickly grew as members of various scientific disciplines realized the benefits of scientific workflows for analysis and modeling and began contributing to the system.  As of 2008, Kepler collaborators come from many science disciplines, including ecology, molecular biology, genetics, physics, chemistry, conservation science, oceanography, hydrology, library science, computer science, and others.
Kepler is a workflow orchestration engine which is used to make workflows for making work much easier, in the form of actor.

See also 

 Apache Taverna
 Discovery Net
 VisTrails
 LONI Pipeline
 Bioinformatics workflow management systems
 DataONE Investigator Toolkit

References

External links 
 Kepler Project website
 Kepler Component Repository
 Ptolemy II project website
 Knowledge Network for Biocomplexity (KNB) Data archive
 List of software tools related to workflows on the DataONE website

Workflow applications
Bioinformatics software
Free and open-source software
Software using the BSD license
Free software programmed in Java (programming language)