I’ve just returned from the Workflow conference in Redmond, where for a full week we attended presentations on BizTalk Server 2006, Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF).
In what is likely a pre-cursor for what will happen when Windows Workflow Foundation gets wider exposure, there was rampant confusion among the attendees concerning BizTalk Server and WF. When do you use what? Does the existence of one mean the demise of the other? Can they work together? Would you want to use them together? I will try to sum up (in a very succinct manner) what some of the key differences are.
First off, let’s get this out of the way upfront, WF is NOT “BizTalk Light”. WF is a framework that provides the building blocks needed to build workflow-based applications. BizTalk is an integration server that includes the ability to add business process automation.
BizTalk Server is a platform that provides developers with the pieces they need to automate business process, Windows Workflow Foundation is a framework that provides developers with the base components they need to build the modules that will be used to automate processes. BizTalk provides a lot of capabilities that are needed for serious business process automation that WF developers would have to write. To name a few, BizTalk has proven scalability, tracking, administration and transformation capabilities that a WF developer would need to write from scratch.
The intended audience for WF is primarily ISVs, people that need to include workflow as part of their applications. Some examples of these would be:
1. Office 12
2. BizTalk (in a post-BizTalk 2006 version)
3. Page flow in ASP.NET
4. Line of Business Systems such as CRM, Dynamics, etc
Perhaps much of the confusion stems from the fact that the designers look very similar. This is not surprising, given that the same team worked on both. In fact, if you look back at a post I did after PDC 2003 on the Windows orchestration engine, this was an early look at Window Workflow Foundation. However, don’t judge workflow technologies by their appearance.
The following table is not intended to be an in-depth comparison of the feature sets of both technologies. It does however compare and contrast some key features.
| Feature | BizTalk Server 2004/2006 | Windows Workflow Foundation |
| Hosting | Server-side in the BizTalk process | Hosted in a custom application (client-side execution, but the client could be an ASP.NET application) |
| Designer | Included in Visual Studio | Included in Visual Studio, or custom designers can be written |
| Scalability | Well-proven, highly scalable | Developer must implement |
| Transactional integrity | Long running and atomic (ACID) transactions | Developer must implement |
| Tracking infrastructure | Comprehensive Business Activity Monitoring infrastructure provided | Simple framework pieces provided that allow you to build the tracking infrastructure |
| Runtime modification of “in-flight” workflows | No, workflows are defined at design time | Yes, but developer must implement |
| Cross-platform integration capabilities | Extensive adapters available | Not supported natively |
| Composability | A BizTalk process could invoke a WF process via Web service call, or from a helper class or expression shape | WF processes cannot directly invoke a BizTalk application, although you could indirectly by calling an orchestration that had been exposed as a Web service (for example), or perhaps by API usage |
| Management and administration | Extensive set of tools provided for IT pros to administer and track execution | Developer must implement |
| Windows Communications Framework (formerly “Indigo”) support | Through an adapter, or could be called from an expression shape or helper class | Natively supported |
| Rules engine support | Yes | Yes |
| Extensible activities | No | Yes |
| Transformation capabilities | Yes | No |
| Programmability | BizTalk Server exposes APIs for most parts, and has numerous extensibility points such as pipeline components, adapters and “functoids” (out-of-the box and custom mapper components) | WF is a framework. You must implement applications to use it. |
So, does WF replace BizTalk? Not at all. They are complimentary technologies. Hopefully this post has shown that.
Most importantly, hopefully WF will expand the ranks of developers that know it’s OK to at least partially create applications by drawing diagrams.
No matter which path you take, these are very cool technologies and we, as architects and developers, will be having a lot of fun with them over the next few years.
What's in a name?
WF has gone through a lot of name changes as the technology has baked. So why is Indigo WCF now, but Windows Workflow is WF? Well... because apparently the World Wildlife Foundation has a trademark on "WWF". And if you look at this article, they actually “smacked down“ the World Wrestling Federation in 2000. So... for now at least, Windows Workflow Foundation abreviates down to "WF" (does Wells Fargo know about this? :)).
Learning more:
Understanding BizTalk Server 2004: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/c245a8af-9f01-410f-b1bc-c43e725bfc27.asp
David Chappell's overview white paper on Windows Workflow Foundation: http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx?pull=/library/en-us/dnlong/html/WWFIntro.asp
WinFX site at MSDN: http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx