10 people following this project (follow)

Project Description
Workflow Engine component developed in C#.NET. Workflow Engine is State Machine.

Workflow process scheme represented as XML (or T4 template generator).

Workflow process scheme include:
- Verification of the current status
- Determine the authority of users
- Executing condition script
- Timers
- Actors (Identities, Roles or Business Rules that can execute commands)
- Parameters (That can be temporary or persistance)
- Commands
- Actions(external methods call)
- Activities
- Transitions

Features:
1. Process scheme generation in runtime.
2. Changing process scheme in runtime is possible.
3. Pre-execution of process (executing of a process from initial activity to final activity without changing state)
4. Simple version control and upgrade of process scheme.
5. Serialization and saving of parameters on demand.

Plans to the near future:
1. Designer of process scheme.


Official web site - http://workflowenginenet.com
Documentation - here
Demo - http://demo.workflowenginenet.com

For technical questions, please contact dmelnikov@optimajet.com
For commercial use, please contact sales@optimajet.com

Comparison with other engines:

Feature Workflow Engine .NET Microsoft WF 3.5 Microsoft WF 4 Objectflow
1 Supported types of workflow State machine State machine, sequential  Flowchart  Sequential 
2 Long-running operation support Yes  Yes  Yes  No 
3 Mechanisms of state persistence Only few workflow parameters are saved.  Type of serialization (xml, binary etc) is defined by Persistence Provider. The settings saving is easily controlled and changed. The entire process instance is saved (binary serialization).The complexity of changing the mechanism of saving: high. The process instance is saved in part.The complexity of change in the mechanism of saving: the average.  The state persistence is possible.Required to write an external logic. 
4 Versioning and upgrading running processes on the new version of the scheme

The engine supports the following types of versioning:

  1. If you change the schema of the process, the processes that were created before the schema change, working under the old scheme.
  2. The scheme of the specific process is updated after calling the appropriate command.
  3. The scheme of the process is automatically updated in the allowed statesThe engine supports the following types of versioning.
There's no ways of work with versioning schemas of processes.The complexity of realization the mechanism of scheme upgrading: high.(Updating scheme of process with maintaining its state) There's no ways of work with versioning schemas of processes.The complexity of realization the mechanism of scheme  upgrading: high.(Updating scheme of process with maintaining its state)  No 
5 Visual designer Plans  Yes Yes No 
6 Human Readable XML format of the process scheme  Yes  No  No  No
7 Identification of the process
The ID of the process Guid 
The ID of the process Guid The ID of the process - any  Possible 
8 Possibility to install the process in an arbitrary state Yes. By the calling one method  Yes. The process requires the writing of the supplementary code.  No  No 
9 The possibility of obtaining a list of available states for the current process  Yes. By the calling one method  Yes. The process requires the writing of the supplementary code.  No  No 
10 Built-in authorization of access to external actions (commands) for the workflow  Yes  No. The complexity of the implementation depends on the complexity of the business logic.  No. The complexity of the implementation depends on the complexity of the business logic.  No. The complexity of the implementation depends on the complexity of the business logic. 
11 Timers / delays  The external timer implementation is possible. The functional of the internal timers are planned to be implemented. Yes. Possible internal and external implementation.  Yes. Possible internal and external implementation.  Yes. Possible internal and external implementation. 
12 The possibility of obtaining a list of available external actions (commands) for the current process  Yes. By the calling one method.  No. The complexity of the implementation depends on the complexity of the business logic.  No. The complexity of the implementation depends on the complexity of the business logic.  No. The complexity of the implementation depends on the complexity of the business logic. 
13 Library activity  All activities represent calls of external methods. In the short term plan to make a call to the stored procedures.  Yes  Yes  All activities represent realizations of the defined interface. 
14 The possibility of modifying the scheme of the process at runtime  It’s possible  No  No  No 
15 The possibility of modification the generation of process scheme, depending on the parameters of a controlled entity  Yes. The support is built into the engine.  No  No  It’s possible 

Last edited May 11 at 2:57 PM by dmelnikov, version 28