Friday, September 21, 2007

Workflow Builder Design

  • The Workflow Builder provide users with the ability to define their own workflow. It is based on the idea of document centric workflow system.
  • Prototype is designed to be a simple workflow builder that would be used to build the basic definitions of workflow but allow extensions for more complexes multiple user based workflow. Supported workflow includes the following fundamentals

  1. Sequence - An activity in a workflow process is enabled after the completion of another activity in the same process. A sequence point in the workflow is represented by a square followed by an arrow pointing to the next workflow element.
  2. Parallel Split - A point in the workflow process where a single thread of control splits into multiple threads of control which can be executed in parallel, thus allowing activities to be executed simultaneously or in any order. A parallel split is represented by a single workflow element with two or more arrows pointing to other workflow elements.
  3. Synchronisation - A point in the workflow process where multiple parallel sub processes/activities converge into one single thread of control thus is synchronizing multiple threads. It is an assumption of this pattern that each incoming branch of a synchronizer is executed only once.
  4. Exclusive Choice - A point in the workflow process where, based on a decision or workflow control data, one of several branches is chosen.
  5. Simple Merge - A point in the workflow process where two or more alternative branches come together without synchronization. It is an assumption of this pattern that none of the alternative branches is ever executed in parallel.

Source: http://www.workflowpatterns.com/


Workflow Builder Requirements
  • The primary goal of the Workflow Builder is to allow Users to build basic workflows using a simple user interface. The abstract workflow defined by users is converted into XML and then stored in a database.
  • The XML is saved into a MySQL database.
  • The workflow builder should be able to open saved workflow documents but may not necessarily offer modifications in the prototype.
Workflow Builder Prototype Goals
  • Design a simple user interface to allow users to construct workflow in abstract form. Initially the user interface will be a DOS type interface. A GUI may be developed if there is time.
  • This abstract workflow is then converted to XML in accordance with the WDL schema and stored in a MySQL database.
  • Allow read-only retrieval of workflow to show demonstrate the reconstruction of XML into run time instance of the workflow.
  • At this stage, modifying workflow, fancy GUIs and other bells and whistles are currently out of scope. They may fall into scope if time permits.
Basic Design Architecture

  • Separate GUI from underlying programs. Therefore develop a class for the workflow and a class for the GUI which will be a command prompt at the moment. In this prototype a test class will replace the GUI. The GUI will be developed when there is time available. The main focus should be on the computation and creation of abstract workflow and conversion of this abstract into XML.
OO Design
  • Work Element – is the individual workflow element; an atomic activity of some sort that does work using resources of the company. A series of work elements linked together make up a workflow. For example, “Prepare Bed” is a work element which is part of the “Admission” workflow. They are usually represented as squares or rectangles on the workflow diagram. In the workflow definition language (WDL), every work element is a form. Its behaviour is distinguished by its attributes and the flow of work to the next work element is determined by a relationship variable.
  • Relationships – are the linkages between the work elements which make up the workflow. The linkages or “relationships” between the work elements
  • Workflow – is a series of work elements and their relationships. It is essentially a container of workflow elements and their relationships

Work Element is a hierarchy with differing types. These types define the type of work element it is and also determines the relationship attribute, i.e. the relationship attributes is what distinguishes the different type of work element. Otherwise work elements devoid of relationships is the most basic and atomic object.


Simplified UML Diagram

Note: Diagram needs to be updated.

No comments: