AppFabric Server


I’ve gotten a few questions about AppFabric for Windows Server, so I’d like to share some thoughts on the topic, specifically on the Workflow management aspects of AppFabric Server.

First, it’s important to clarify what AppFabric Server is/isn’t, since I’ve seen some confusion on this.  Simply put, AppFabric provides a set of extensions for IIS-hosted workflows.  With .NET 4, we added support for “WCF Workflows Services”, workflows that you can call as WCF SOAP services and that can consume other SOAP services.  These workflows run in WorkflowServiceHost (WFSH) instances.  As with other WCF ServiceHosts, WFSH can be self-hosted in a process of your choosing, e.g. a Windows Service, an Azure Worker role, etc.  We also provided integration which makes it easy to host WFSH instances in IIS, including use of the WAS (Windows Process Activation Service) for message-based activation of workflows.  All of these capabilities were part of the framework in .NET 4.

AppFabric Server builds on WF and provides extensions to IIS to deliver additional capabilities for the management of WCF Workflow Services.  The most important pieces are:

  1. A tracking event aggregator.  The WF runtime writes tracking records to ETW channels; AppFabric Server reads those records and pushes them into a SQL Server tracking DB
  2. A IIS Management Console plugin which provides tooling support for configuring workflows and viewing the workflow tracking information (from the above DB)
  3. Integration with the IIS auto-start feature to automatically start WFSH instances

In this release, we have continued to invest significantly in the WCF Workflow Service scenarios that WFSH and AppFabric Server target.  These investments have largely been in the core framework in .NET 4.5, where they are most leveraged. They include support for contract-first authoring of WCF Workflow Services and support in WFSH for versioning (via WorkflowIdentity integration), Dynamic Update and C# expressions.  And of course, our other core investments such as the authoring improvements, state machine and performance enhancements accrue to all of our hosting options, including WorkflowApplication and WFSH. 

Given the big investments we’ve been making across the workflow stack, we have not been able to invest in surfacing all of the new 4.5 functionality in the AppFabric tooling.  However, we are doing the work to ensure that AppFabric works well on .NET 4.5 and Windows Server 2012.

Comments (15)

  1. PeteGoo says:

    Hi Jurgen, you miss the most important point which is the support for durable delay provided by the Workflow Management Service. Without AppFabric or a custom server piece, any workflow with a Delay activity will not work. Therefore my question is, currently are we unable to move to .Net 4.5 or is it only a move to Windows Server 2012 that is broken?

  2. Thanks for the question/feedback.  Just to clarify, durable delay support is provided by WFSH. The relevant AppFabric piece, the Workflow Management Service, ensures that IIS-hosted WFSH instances are up and running to monitor for expired events, which is done via the third item above: integration with IIS auto-start.  

    We have not seen any breaking issues upgrading to .NET 4.5 or Windows Server 2012.

  3. PeteGoo says:

    Thanks for the clarification Jurgen but effectively the outcome is the same, that the expired delay may not resume. Also, it seems like the documentation is wrong here blogs.msdn.com/…/windows-server-appfabric-architecture.aspx.

    Can you then clarify then that Windows Server AppFabric running on Windows Server 2008 R2 will be able to ensure that a .Net 4.5 WFSH is running when one of it's .Net 4.5 instance has an expired delay? Will it also be able to issue control commands to that instance via the URI and monitor it's events?

  4. Yes Pete, that scenario will be supported.  

  5. Henrik Dahl says:

    Hello Jurgen!

    I have a few questions concerning "Given the big investments we’ve been making across the workflow stack, we have not been able to invest in surfacing all of the new 4.5 functionality in the AppFabric tooling." which sounds as valuable information:

    *) Which functionality is unavailable when using Windows Server AppFabric?

    *) If the unavailability temporary until e.g. the next major version of Windows Server AppFabric or is it a more long lasting decision/situation?

    Concerning "However, we are doing the work to ensure that AppFabric works well on .NET 4.5 and Windows Server 2012.":

    *) Will you also take care that AppFabric will work well on Windows 8 for development purposes or will it just operate so so?

    *) Is it just a political decision that it should not work equally well on Windows 8?

    Best regards,

    Henrik Dahl

  6. Henrik, in response to your questions:

    1 & 2) All existing AppFabric functionality will continue working as is

    3 & 4) AppFabric will be supported for development purposes on Windows 8, as with Windows 7.  You shouldn't see any loss of existing functionality

  7. Henrik Dahl says:

    Jurgen, it sounds excellent!

    If you have access to the development it would be VERY nice if you could have a feature to be built into the configuration facility where it could re-initialize, i.e. wipe out, each of the two databases because this you need to do countless times during development and it's very time consuming in the current way.

  8. Good suggestion, thanks Henrik.

  9. PaulDGibson says:

    Thanks for this post Jurgen.  It is great to hear that AppFabric Server will work well on Windows Server 2012, .Net 4.5, and Windows 8 for development.  I had some trouble with Win8 RP / Win Server 2012 beta and AppFabric so I had been worried, and the lack of comments from the AppFabric/WF team had me worried.

    +1 for what PeteGoo said about the importance of the AppFabric Server Workflow Management Service.  I may be misreading your tone in the post, but you seem to be almost downplaying the importance/benefit of AppFabric Server.  I spent a lot of time researching the various hosting options for hosting workflows, and my conclusion was that hosting in IIS with AppFabric server saved me a ton of time and effort that I would have otherwise had to put into workflow hosting plumbing code.  With AppFabric Server I get slick integration with the IIS management GUI, a set of PowerShell cmdlets for setting up the persistence store, and those 2 services that take care of the tracking events and loading suspended instances on timer expiration.

    I got the impression from this MSDN thread ( social.msdn.microsoft.com/…/bb395581-e0d4-45db-801e-75357e48c69c) that AppFabric Server was practically the recommended host, taking care of some of the deeper complexities around driving the [System.Activities.DurableInstancing].[EnqueueWorkflowInstanceControlCommand].

    I'm hoping that I'm not reading something in your post that is not there.  I hope that AppFabric is still something the workflow team believes in and is excited about and will continue to support beyond just a baseline "we will make it work on the latest OS..for now…" that one might interpret from this post.

    Thanks communicating about AppFabric and its future either way.

  10. Hi Paul, I certainly wasn't trying to downplay the value of AppFabric Server; as you point out, it provides a lot of value for IIS-hosted WCF Workflow Services.  The intent of these posts was simply to provide visibility into our investments and pointers to the relevant resources; the points on AppFabric Server were provided to better explain the investments we’ve made for WCF Workflow Services.  

    I’d be interested in following up with you offline on the issues you saw with Windows 8 and AppFabric.  Can you send me a note at jwillis (here at Microsoft.com).

  11. Henrik Dahl says:

    Hello Jurgen. I've had quite the same concerns as Paul. In my case I'm quite convinced that inclusion of AppFabric Server in the .NET 4.5 Framework and its pre-releases would have saved me from these concerns.

  12. Hello Jurgen! Do you have some news in this regard?

  13. Henrik, stay tuned.  We'll have news on Windows Server 2012 and Windows 8 support soon.  I promise 🙂

  14. PaulG says:

    Is there any update you can make on this topic with regard to Windows Server 2012 R2 and Windows 8.1?

  15. Gil says:

    Yes what about servert 2012 r2 plz?