I’ve known Jürgen for years and he’s someone that I really admire for ability to explain technology to any audience. Let’s see how he puts up with my four questions.
Q: Congrats on releasing the new Workflow Manager 1.0! It seems that after a quiet period, we’re back to have a wide range of Microsoft tools that can solve similar problems. Help me understand some of the cases when I’d use Windows Server AppFabric, and when I’d be bettering off pushing WF services to the Workflow Manager.
A: Workflow Manager and AppFabric support somewhat different scenarios and have different design goals, much like WorkflowApplication and WorkflowServiceHost in .NET support different scenarios, while leveraging the same WF core.
WorkflowServiceHost (WFSH) is focused on building workflows that consume WCF SOAP services and are addressable as WCF SOAP services. The scenario focus is on standalone Enterprise apps/workflows that use service-based composition and integration. AppFabric, in turn, focuses on adding management capabilities to IIS-hosted WFSH workflows.
Workflow Manager 1.0 has as its key scenarios: multi-tenant ISVs and cloud scale (we are running the same technology as an Azure service behind Office 365). From a messaging standpoint, we focused on REST and Service Bus support since that aligns with both our SharePoint integration story, as well as the predominant messaging models in new cloud-based applications. We had to scope the capabilities in this release largely around the SharePoint scenarios, but we’ve already started planning the next set of capabilities/scenarios for Workflow Manager.
If you’re using AppFabric and its meeting your needs, it makes sense to stick with that (and you should be sure to check out the new 4.5 investments we made in WFSH). If you have a longer project timeline and have scenarios that require the multi-tenant and scaleout characteristics of Workflow Manager, are Azure-focused, require workflow/activity definition management or will primarily use REST and/or Service Bus based messaging, then you may want to evaluate Workflow Manager.
Q: It seems that today’s software is increasingly built using an aggregation of frameworks/technologies as developers aren’t simply trying to use one technology to do everything. That said, what do you think is that sweet spot for Workflow Foundation in enterprise apps or public web applications? When should I realistically introduce WF into my applications instead of simply coding the (stateful) logic?
A: I would consider WF in my application if I had one or more of these requirements:
- Authors of the process logic are not full-time developers. WF provides a great mechanism to provide application extensibility, which allows a broader set of people to extend/author process logic. We have many examples of ISVs who have used WF to provide extensibility to their applications. The rehostable WF designer, combined with custom activities specific to the organization/domain allow for a very tailored experience which provides great productivity to people who are domain experts, but perhaps not developers. We have increasingly seen Enterprises doing similar things, where a central team builds an application that allows various departments to customize their use of the application via the WF tools.
- The process flow is long running. WF’s ability to automatically persist and reload workflow instances can remove the need to write a lot of tricky plumbing code for supporting long running process logic.
- Coordination across multiple external systems/services is required. WF makes it easier to write this coordination logic, including async messaging handling, parallel execution, correlation to workflow instances, queued message support, and transactional coordination of inbound/outbound messages with process state.
- Increased visibility to the process logic is desired. This can be viewed in a couple of ways. The graphical layout makes it much clearer what the process flow is – I’ve had many customers tell me about the value of a developer/implementer being able to review the workflow with the business owner to ensure that the requirements are being met. The second aspect of this is that the workflow tracking data provides pretty thorough data about what’s happening in the process. We have more we’d like to do in terms of surfacing this information via tools, but all the pieces are there for customers to build rich visualizations today.
For those new to Workflow, we have a number of resources listed here.
Q: You and I have spoken many times over the years about rules engines and the Microsoft products that love them. It seems that this is still a very fuzzy domain for Microsoft customers and I personally haven’t seen a mass demand for a more sophisticated rules engine from Microsoft. Is that really the case? Have you received a lot of requests for further investment in rules technology? If not, why do you think that is?
A: We do get the question pretty regularly about further investments in rules engines, beyond our current BizTalk and WF rules engine technology. However, rules engines are the kind of investment that is immensely valuable to a minority of our overall audience; to date, the overall priorities from our customers have been higher in other areas. I do hope that the organization is able to make further investments in this area in the future; I believe there’s a lot of value that we could deliver.
Q [stupid question]: Halloween is upon us, which means yet another round of trick-or-treating kids wearing tired outfits like princesses, pirates and superheroes. If a creative kid came to my door dressed as a beaver, historically-accurate King Henry VIII, or USB stick, I’d probably throw an extra Snickers in their bag. What Halloween costume(s) would really impress you?
A: It would be pretty impressive to see some kids doing a Chinese dragon dance 🙂
Great answers, Jürgen. That’s some helpful insight into WF that I haven’t seen before.