A workflow can be defined as a series of jobs or an efficient framework which can be used for similar repeatable work.

As a simple example, there is a series of jobs which can be defined as a workflow. First, find homologous proteins to the given protein, then create a phylogenetic tree using those protein sequences. To do this, we first need to perform BLAST and pick several sequences for multiple sequence alignment. If we defined this flow as a workflow, every job will quickly and smoothly be done.

There are two types of workflows, fixed and user-definable. With fixed workflows, the user is usually not allowed to chnage the main flow and cannot sometimes get what he or she really wishes. But on the other hand it is easy to use since the user does not have to specify many things, such as parameters. With user-definable workflows, the user can usually customize many things, including the main flow, although it tends to require relatively a long time for user tarining and developing such software.

The user can carry out workflows in various environment. However, what is important is that the user does not have to think about environment and how jobs will be done. In this regard any jobs should be distributed or parallelized if the job has no dependancy without the user's knowing.