"First they will ignore you, then they will laugh at you,  then they will fight you, then you will win."
- Mahatma Gandhi

Saturday, July 31, 2010
       
  
Blogs

Search Blogs

Thoughts about WF and some 3rd party tools
Location: BlogsSteve's blog   
Posted by: Steve.Morse3/5/2007 11:29 PM

I've been thinking about some fundamental differences between WF and a few 3rd party workflow tools (Metastorm, Bluespring Software and others). In WF, describing a workflow process is conceptually similar to designing a Windows form.  Utilizing the Visual Studio design time capabilities of activity classes we can configure our model. Code-behind implements the configuration and is eventually compiled into a "runnable" workflow. The 3rd party tools I've worked with provide a more explicit seperation of the process description metadata and the workflow engine runtime. Generally a process description tool allows the process to be modelled and published to a persistant store. At runtime, the workflow engine utilizes this metadata to execute an instance of a workflow.

Initially the WF approach seemed flawed. I instictively felt it was Microsoft's bias that everything should be source code and modelled in Visual Studio. But the more I've thought about it the more I like it. The conceptual seperation of a process model (imperative description) from the knowledge of how to execute it is maintained. And because XAML markup can fully describe a process model and be compiled at runtime to an executable form we still have the capability of describing a workflow outside of Visual Studio without code-behind. A significant strength of the approach is the capability to utilize inheritance to begin to develop more specialized activity classes that fit a particular subject area. These classes can provide specialized design time features that make them easier to configure. For example, we might develop a general activity to send an email. This activity provides many parameters to allow for comprehensive email functionality. Now for a specific kind of workflow process, for example a standard "approval" process, we might sub-class this activity to create a specialized email activity that simplifies the design time configuration for a simple approval notification. This is difficult in tools where you have an immutable workflow engine that accesses a pre-defined respresentation of metadata. The functionality of the engine and the process description semantics are designed to be general and capable of supporting whatever a customer might dream up. The least-common-denominator approach makes designing workflows difficult.

Permalink | Trackback

Comments (2)  
So you are saying "traditional" workflows are not extensible?  By Doug.Danoff on 3/10/2007 8:12 AM
To expose myself as less than expert in the Workflow space...

When you say:
This is difficult in tools where you have an immutable workflow engine that accesses a pre-defined respresentation of metadata.

Why is this? Are typical workflow products usually not extensible? Can't custom actions be created and used to manage specialized workflows?
I understand your comments are restricted to "immutable workflow engines", but I'm not clear how a nonextensible workflow engine could be considered a workflow engine.

Re: Thoughts about WF and some 3rd party tools  By Steve.Morse on 3/11/2007 9:26 PM
Typical workflow products (at least those I'm familiar with) are not extensible. They are sold with a general set of activities that can be configured to do many different things. But the schema or semantics of the metadata that describe the configuration is baked into the product. The engine has an intrisic understanding of the metadata that cannot be altered. So its not to say that the engine is not capable of executing a wide range of different workflows. It is. But you are limited to describing those workflows by configuring out-of-box activities that were defined when the product was sold. By design, these activities are very general.


Contact Information

Strong Point Consulting LLC is located in Malden, MA.

Contact us via
Contact@strong-point.com
A Senior Technologist will respond promptly.


Privacy Statement  |  Terms Of UseCopyright 2007 Strong Point Consulting LLC