Glossary

Workflow

There are a few nuances surrounding the term workflow.

A workflow is a set of pieces of work coordinated to achieve a target of some astronomical investigation. Each piece of work is considered a step in the workflow, and will be undertaken by running a computer program.

A concise and somewhat abstract definition such as the above leaves a lot to be desired and inevitably sounds somewhat pompous. However, in concrete terms a workflow is described in XML and is stored as an XML document, ie: as a file on a file system. When we refer to a workflow, the reference is often to such an XML document. A workflow XML document has an XML schema to describe it, and so the structure of a workflow has an abstract design that all workflows should adhere to.

A workflow consists of a hierarchical structure of parts (steps, tools, flows, sequences). We currently use Castor to generate the Java classes from the XML schema. And a particular instance of a workflow XML file may be deserialized or instantiated into a set of Java objects. So, when we refer to workflow, we can also be referring to the Java class named Workflow, or even more probably to a particular object of type Workflow.

To further complicate matters, in the round a workflow usually refers to the design, whereas a job is the execution-time equivalent, somewhat in the way that a blueprint of a building is not the building. In Astrogrid parlance, a job is a workflow that has been submitted for execution.

Sorry. Anyone familiar with software development will recognize this confusing level of meaning. It's part of the job (no pun intended). Most meanings are clear from the context.