Microsoft’s Rule Engines

February 5, 2010

I am often asked to describe the rule engines that Microsoft ships. (The first question being: “Microsoft has rule engines?”) This question frequently comes from folks who know rules, but don’t know .NET. This post is specifically written to answer the question. Should the offerings change in the future, I will update this post as needed.

As always, this is not an official Microsoft statement. Questions about the future directions for these products should be directed to Microsoft.

As of this writing, Microsoft is currently shipping two rule engines. They are aimed at somewhat different audiences as described below.

The first rule engine is called the Microsoft Business Rule Engine (sometimes called “MS BRE” or “BRE”) and it has shipped as part of BizTalk Server since early 2004. BRE has shipped in BizTalk Server 2004, BizTalk Server 2006, BizTalk Server 2006 R2, BizTalk Server 2009 and I’m sure it will be included in the upcoming BizTalk Server 2009 R2.

The second rule engine is part of Windows Workflow Foundation in .NET, it is the Windows Workflow Foundation Rule Engine (sometimes called “Workflow Rules” or “WF Rules”). The WF rule engine originally shipped in late 2006 as part of .NET 3.0. It was also included in .NET 3.5 and will be included in the upcoming .NET 4.0. If you are running Windows 7, Windows Server 2008 R2, Windows Server 2008, or Windows Vista or have installed .NET 3.0 or higher – you already have the WF rule engine on your computer.

Here are some comparisons of these engines written by other folks. Charles Young has written extensively on this topic.

If you asked me to summarize differences for a rules specialist, my comments would be along the following lines:

  • MS BRE is part of a BizTalk Server, which is a business-oriented server package, while WF Rules is part of the free .NET Framework. (MS BRE may be used standalone outside of BizTalk, but is only licensed with BizTalk.) Both engines provide forward chaining evaluation. WF Rules also provides the option for sequential evaluation.
  • MS BRE rules are typically authored in the Rules Composer, while WF Rules are typically authored in Visual Studio. There are partners that provide a more BRMS-like authoring environment. MS BRE has features such as vocabularies and a respository, and is therefore closer to what Gartner defines as a BRMS.
  • MS BRE implements the Rete algorithm, while WF Rules does not. MS BRE implements a greedy evaluation strategy, while WF Rules implements a lazy evaluation strategy. The performance profiles are accordingly different – WF “first hit” execution being faster, for example.
  • WF does not have assert/retract keywords or a Working Memory, while MS BRE does – so WF Rules requires all objects to be reachable from a common root object (this). (In WF Rules, support for multiple instances is achieved through forward chaining.) WF Rules supports “Else”, while MS BRE does not. MS BRE has some known restrictions around negation-as-failure. MS BRE has special handling for XML and DB fact types.

I would be remiss if I did not mention some Microsoft offerings that apply to related areas:

Lastly, I should also point out that the Mono Project is reimplementing Windows Workflow Foundation – including WF Rules.


BizTalk Server 2009 Released

May 3, 2009

If you were watching for it, some recent press confirms that BizTalk Server 2009 is now available.

Read the rest of this entry »


Windows Defender Potential Interaction with BizTalk BRE

March 28, 2009

If you are running both BizTalk BRE and Windows Defender, you may want to note that the BizTalk 2006 R2 documentation at MSDN has been updated recently to take into account a recent interaction with Windows Defender. The issue with Windows Defender was corrected immediately, and the fix for affected machines is simply adding localhost back to the hosts file.

This is the 2006 R2 documentation, but I believe the issue could also affect 2004, 2006, and 2009 Beta.


Thanks to the BRE survey participants

December 6, 2008

Many thanks to those readers who participated in the Microsoft BizTalk BRE survey that Charles Young pointed to in his blog.

In the future, I will endeavor to link to such surveys from this blog as well.

Charles mentioned in his post that he would liked to have seen a more “forward looking” survey, but hasn’t (as yet) followed up with any clarifications.

If you missed the survey, or have comments regarding it – I would love to hear from you.