|
Object-Oriented Declarative Workflow |
|
|
|
|
|
May 2009 |
|
|
|
|
|
This page presents initial
assumptions of the project “Workflow
Systems with Extended Functionality” (Systemy przepływu prac o rozszerzonej funkcjonalności),
supported by the Polish Ministry of Science and Higher Education
(Ministerstwo Nauki i Szkolnictwa Wyższego) by the grant The main idea of the project
assumes a totally different attitude to data structures that workflow
operates on, to control flow assumed in workflow processes and to parallelism
of processes and methods of their synchronization. While in traditional
workflow processes the control flow is determined first of all, in the
declarative workflow the control flow is dynamic, determined by conditions
that appear in the workflow data and service environment. The workflow environment consists
of so-called active objects that have double roles. On one side active
objects are data structures that can be queries and managed according to the
ordinary query syntax and semantics. On the other hand, active objects
possess active parts that are executable. We distinguish four such active
parts: fire condition, execution code, end condition and end code.
An active object is waiting for execution up to the time when its fire
condition becomes true. After that the object execution code is executed and
all its active sub-objects are set into the waiting-for-execution state (and perhaps executed if their fire
conditions become true). The execution of the execution code of a given
active object is terminated when all actions are done or its end condition
becomes true. It is possible that after end condition some actions would be
necessary (e.g. aborting transactions), hence an optional end code can be
executed. In principle, all active objects
are executed in parallel, which means a fundamentally different attitude to
workflow control flow. The flow is not determined explicitly (e.g. as a graph
a There are several big advantages
of this approach to workflow. Firstly, the parallel execution of many
processes and their synchronization is not constrained. Secondly, the
workflow environment can be the subject of ad hoc changes of running and
waiting processes, according to the current business needs. Workflow change
flexibility, in particular, grouping and ungrouping of processes, dynamic
changes of their structures, dynamic inserting new tasks to running workflow
instances, etc. is the main motivation for this research. The idea is already implemented
within ODRA, a
prototype object-oriented database management system. As a workflow
programming language we use SBQL, an
object-oriented database query and programming language implemented in ODRA.
The current prototype implementation of the idea will be essentially
extended. |
|
Keywords:
workflow, workflow management system, object-oriented, declarative, query
language, workflow programming language, active object, control flow, fire
condition, end condition, PERT, mass parallelism, dynamic workflow change,
grouping of processes, ungrouping of processes, workflow resource management,
ODRA, SBQL, strong type checking, transaction, distributed processing,
programming through reflexion |
|
Last modified: May 29, 2009 |