Windows Workflow Foundation (WF) vs. Biztalk Server?
Many customers tend to ask about the relation between WF and Biztalk Server. Is WF the next version of Biztalk Server? Will the WF Rule Engine replace the Biztalk BRE (Business Rules Engine)? Typically, people are looking for guidelines or the appropriate questions to answer in order to make the right decision.
The main difference between Biztalk Server and WF is that Biztalk is a product for BPM (Business Process Management) and EAI (Enterprise Application Integration), which comes with a price. WF is a framework for developers to build solutions on top of.
As a product, Biztalk Server consists of some layers / components that help it to do its job. One of them is the Orchestration Layer which is similar to WF. In fact, Biztalk Server vNext will replace the Orchestration Layer with WF. For the rest of the layers, there are no similar components in WF. For instance, if you want to build a business process that talk to several systems / platforms, WF has no out-of-the-box adapters for it, and developers will have to build them on their own. Also, there is not Transformation Layer in WF. WF receives .net objects as parameters and not XML Messages, and therefore doesn’t have to transform schemas. I can only assume that in the future there will be a Transform Activity that will execute an Xslt, but today, customer will have to develop that.
The Monitoring and Administration Layer is not covered by WF. Although we have the Tracking Service which allows us to pull data out of the process and save it wherever we wish, but we do not have an administration and monitoring applications such as Biztalk Server BAM, and we will have to work hard to get there.
For the Business Rules Engine – there are many differences between the WF Rules Engine and the Biztalk BRE, from the Vocabulary that BRE has, and up to the algorithm that is used to execute the rules. Each of the approaches has its pros and cons, and I don't know what will happen with both of them in the next version of Biztalk Server.
Few questions you have to ask yourself in order to compare between Windows Workflow Foundation (WF) vs. Biztalk Server:
- Do I need to work with other systems / platforms? Can I benefit from using Biztalk Adapters?
- Do I need to change the message structure / schema? Can Biztalk Mapper help me doing it?
- Do I want my solution to be able to scale out? WF runs In-Process and has threads limitations as a .Net application, while Biztalk is a very scalable deployable solution.
- Do I need very complex administration and monitoring capabilities? Is the WF Tracking Service fine for what I need?
These questions can give you a good place to start with when you have to choose between WF and Biztalk Server. But, the fact that you answered "Yes" on all of them doesn't automatically mean that you have to buy Biztalk. Sometimes the price you'll pay developing solutions will be cheaper than buying Biztalk Server.
The final decision doesn’t have to be choosing between those two. You can definitely decide that the best thing for you is to choose them both. In those cases, processes that are internal for your system (i.e. no integration with other systems / platform), that do not require advanced administration, but do required high performance, will be implemented using WF, while integration scenarios will use Biztalk Server.
I hope you find it useful, and if you have some more guidelines, please comment.