I need information regarding rule and workflow engines meant for dotnet.
Please give me your critical comments on performance degradation issues arising out of usage of workflow and rule engine vis a vis increase in scalability and agility.
Also name a few workflow and rule engines which are gerenrating code and those who are generating runtime implementation directly
In biztalk generated workflow/rules, can changes be at runtime or design time or both?
Posted by: Christopher Shain on February 25, 2006 Bhaskar,
You are asking for a lot of information with those questions, however I'll do my best based on what I have found in looking at these types of applications. My experience is primarily with BizTalk Server 2002/2004, but this advice should apply to any BRE.
In terms of performance, obviously any business rules engine will come at the cost of some performance hit (versus hard coding the same rule), however any enterprise-class BRE should be capable of scaling out in order to negate this effect. You are not likely to see a major impact on the performance of your applications provided that you are using the BRE in the way that it was intended to be used. For example, BizTalk is great at dealing with XML, but many people seem to implement it as a glorified message queue, which is not the intent of the product. Furthermore, for the slight performance gain you are getting a lot- "automatic" scalability, very simple realtime updating of business rules, and a BR design environment that is far more graphical than anything you are likely to develop in your own applications. BizTalk rules can indeed be changed on the fly, and can also incorporate code that you write in .NET (directly through assemblies or indirectly through web services).
My advice would be to consider the products that are available, especially in regards to their future support and development plans. One of the main reasons that I stick with BizTalk is that I know MS will be supporting and developing it 5 or 10 years from now.
Hope this helps-
Posted by: bhaskar sharma on March 01, 2006
Thanks cris for your elaborate reply.
Please also guide me in workflow engines.
my queries regarding workflow are as follows:
1. Where exactly worflow fits inside business layer.
2. Do there any workflow engines available who create .et code at compile time or in which we can change workflow on the fly. please name atleast one in both categories
3.Which worlflow engine is highly recommended in .net
Posted by: Christopher Shain on March 03,2006
1) Workflow is used in the business layer to abstract the process used for a complex business process from the business objects themselves. This allows you to develop more maintainable applications without adding excessive complexity to your app.
2 and 3) The workflow engine that seems to be most hyped by microsoft (besides biztalk) is Windows Workflow Foundation. First, the bad: it is a .NET 2.0-only package, and it is currently in beta. The good: it supports both compiled and XAML (markup) workflows, which seems to support your runtime change requirement.
Posted by: Marco Ensing on July 08, 2007
I do not have any specific performance metrics on the runtime performance for invoking Windows Workflow Rules.
Microsoft has published some performance metrics here (the rules performace is just before the Performance Case Studies section). I would read this document with a grain of salt, considering that their example does not use an extensive rule chaining. They even turn the inferencing off and execute the rules in a sequential manner. That's not really a declarative definition of a business rule policy.
You are right that there is a balance between agility and performance. Considering that hardware vendors increase their performance every year, I would focus on the agility of the software architecture that allows Business policy changes with minimal impact to an IT architecture.
Agility can easily be achieved by using rule activities inside Windows Workflow Foundation. (Using the workflow engine is actually optional)
The Rule Manager from Acumen Business lets business users define a rule policy, test a rule policy on it's correctness (by rule verification and rule validation), and store the rules into a rule repository.
The Rule Manager can export the rule policy to Windows Workflow Foundation rules. A complete visual studio .NET solution is generated. This makes it a very trivial task to integrate an executable rule engine into the existing IT architecture by software developers.
The Rule Manager also allows you to import existing BizTalk (2004 and 2006) policies and convert them to WFRules.
The trial version allows you to export up to 10 rules.