Service Orchestration and Windows Workflow Foundation
Building and executing workflows without a traditional Enterprise Service Bus (ESB) is possible using Microsoft .NET 3.0 technologies.
by Peter Varhol
October 19, 2006
Web services do not exist in a vacuum. You must execute them in a given sequence, a sequence that might be different for different types of transactions. This process is called a workflow, and the management of transactions through this workflow is referred to as orchestration. While traditional monolithic applications can implement a workflow and orchestrate transactions throughout it, they lack the flexibility to upgrade, add, or swap out steps in the process.
So enterprises are breaking up these traditional applications into multiple services, or writing entirely new services. As a result, you need an external agent for orchestration and execution of the individual workflow steps in these services.
One way that you can perform this type of orchestration is with Microsoft's Windows Workflow Foundation (WWF), which is a .NET Framework 3.0 technology. WWF is an add-in to Visual Studio 2005, and lets you build workflow-oriented applications visually and with code.
Once a workflow model is compiled, you can execute it inside any Windows process, including console apps, forms-based apps, Windows Services, ASP.NET Web sites, and Web services. This provides you with the ability to set up the workflow visually within Visual Studio, write code that implements the steps of that workflow, and deliver it as a completed, services- and components-based application.
How Does WWF Work?
WWF is comprised of the programming model, engine, and tools for building workflow enabled applications on Windows. It consists of a .NET Framework 3.0 namespace, an in-process workflow engine, and designers for Visual Studio 2005. A completed workflow application requires that the computer on which it executes have the upcoming .NET Framework 3.0.
At its core, WWF implements a state machine. It enables an application to transition from one state to the next. Its Visual Studio add-in incorporates a set of workflow states and state transitions, and also a workflow menu to the menu bar. The visual elements of the workflow represent states that define what activity might occur at specific parts of the workflow.
WWF conveniently incorporates the visual design elements for building workflows and the ability to write code for the workflow within the same Visual Studio environment. Analysts can lay out the flow using the graphical modeling components, and developers can code the services and other application components that implement the workflow.
A workflow project is a console application. Web services and .NET assemblies implementing logic don't generally have a user interface that's associated with them. If a user interface is needed, it's added to individual services or components in the workflow, rather than the workflow itself.
WWF is still in beta, and expected to be released, along with Windows Vista, as a part of .NET 3.0 offering. But you have been able to download community versions for initial use since the beginning of 2006. And WWF has proved to be useful and stable, so Microsoft now offers Go Live licenses for enterprises that are looking to deploy a workflow application before the formal release of the product. However, these enterprises have to acquire Windows Vista to use in conjunction with Go Live WWF early deployment licenses if they intend to deploy a workflow application early.
Looking in Depth at a Workflow
A common business workflow might take an incoming order and check the order against inventory. If the product is available, then the workflow accepts the order, schedules the product for shipment, and bills the customer. If the product is not available, then the workflow notifies the customer and places the order on backorder status, assuming the customer approves. When the inventory arrives, the workflow matches inventory to backorder, ships the product, and bills the customer.
Back to top