Cheat Sheet: Workflow Technology Matrix
J.D. Meier, Alex Homer, David Hill, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat
- Understand all of the available workflow technologies.
- Understand the tradeoffs for each workflow technology choice.
- Understand the design impact of choosing a workflow technology.
- Choose a workflow technology for your scenario and application type.
Use this cheat sheet to understand your technology choices for designing workflows. Your choice of workflow technology will be related to the type of workflow you are developing. Use the Workflow Technologies Summary to review each technology and its description. Use the Benefits and Considerations Matrix to make an informed choice of workflow technology based on the advantages and considerations of each one. Use the Common Scenarios and Solutions to map your application scenario to common workflow technology solutions.
Workflow Technologies Summary
- Windows Workflow Foundation (WF). WF is a foundational technology that allows you to implement workflow. A toolkit for professional developers and independent software vendors (ISVs) who want to build a sequential or state-machine based workflow, WF supports the following types of workflow: Sequential, State-Machine, Data Driven, and Custom. You can create workflows using the Windows Workflow Designer in Microsoft® Visual Studio®.
- Workflow Services. Workflow Services provides integration between Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) to provide WCF-based services for workflow. Starting with Microsoft .NET Framework 3.5, WCF has been extended to provide support for workflows exposed as services and the ability to call services from within workflows. In addition, Microsoft Visual Studio 2008 includes new templates and tools that support workflow services.
- Microsoft Office SharePoint® Services (MOSS). MOSS is a content-management and collaboration platform that provides workflow support based on WF. MOSS provides a solution for human workflow and collaboration in the context of a SharePoint server. You can create workflows for document approval directly within the MOSS interface. You can also create workflows using either the Microsoft Office SharePoint Designer or the Windows Workflow Designer in Visual Studio. For workflow customization, you can use the WF object model within Visual Studio.
- Microsoft BizTalk® Server. BizTalk currently has its own workflow engine that is geared toward orchestration, such as enterprise integration with system-level workflows. A future version of BizTalk may use WF as well as XLANG, the existing orchestration technology in BizTalk. You can define the overall design and flow of loosely coupled, long-running business processes by using BizTalk Orchestration Services within and between applications.
Human Workflow vs. System Workflow
The term workflow
applies to two fundamental types of process:
- Human workflow. Human workflow is a type of workflow in which a process that includes human collaboration is decomposed into a series of steps or events. These events flow from one step to the next based on conditional evaluation. The majority of the time, workflow is composed of activities that are carried out by humans.
- System workflow. System workflow, or orchestration, is a specific type of workflow that is generally applied to implement mediation between business services from business processes. Orchestration does not include human-performed activities.
Benefits and Considerations Matrix
The following table breaks down the benefits and key considerations for each of the workflow technologies.Table 1 Benefits Consideration Matrix
|Technology ||Benefits ||Considerations|
|Windows Workflow Foundation (WF) ||A developer-centric solution for creating workflows. ||Custom code is required if you want to host the designer in your application. |
| ||Supports sequential, state-machine, and data-driven workflows. ||Does not provide true parallel execution support. |
| ||Designer support available in Visual Studio. || |
| ||Includes protocol facilities for secure, reliable, transacted data exchange. || |
| ||Supports long-running workflows that can persist across system restarts. || |
|Workflow Services ||Provides integration between WCF and WF. ||Requires .NET Framework 3.5 or greater. |
| ||Allows you to expose workflows to client applications as services. ||Extra coding is required when not using default security credentials. |
| ||Supports coordination across multiple services to complete a business process. || |
| ||When calling Workflow Services, the WF run time is automatically engaged for new or existing workflow instances. || |
| ||Provides developer support in Visual Studio 2008, with new templates and tools for Workflow Services. || |
|MOSS 2007 Workflow ||Workflow engine is based on WF. ||Workflows are bound to a single site, and cannot access information in other sites. |
| ||Approval-based workflow can be defined by using the Web interface. ||Is not well suited for complex line-of-business (LOB) integrated workflow solutions. |
| ||SharePoint Designer can be used to define conditional or data-driven workflows. || |
| ||Visual Studio can be used to create custom workflows using WF components and services. || |
| ||Integrates with applications in the Microsoft Office suite. || |
|BizTalk ||Provides a single solution for business process management. ||Saves the orchestration state to the Microsoft SQL Server® and causes latency while executing the orchestration. |
| ||Enables electronic document exchange relationships between companies using Electronic Data Interchange (EDI) and/or Extensible Markup Language (XML) formats. ||Current version does not use WF. However, a future version may support WF. |
| ||Contains orchestration capabilities for designing and executing long-running, loosely coupled business transactions. || |
| ||Integrates with non-Microsoft systems. || |
| ||Easily extended to provide Enterprise Service Bus (ESB) capabilities. || |
| ||WCF LOB adapters enable development of custom adapters for use inside or outside BizTalk. || |
Common Scenarios and Solutions
Windows Workflow Foundation
Consider using WF if you:
- Want to build a custom workflow solution.
- Want workflow designer support in Visual Studio.
- Want to host the WF designer in your application.
Consider using Workflow Services if you:
- Want to expose workflows as services.
- Want to call services from within a workflow.
- Want to coordinate calls across multiple services to complete a business process.
MOSS 2007 Workflow
If you are already using SharePoint, consider using MOSS 2007 workflow if you:
- Want to enable workflow for human collaboration.
- Want to enable workflow on a SharePoint list or library; for example, to support an approval process.
- Want to extend SharePoint workflow to add custom tasks.
- Want to use the workflow designer in Visual Studio.
Consider using BizTalk if you:
- Are looking for a workflow solution that works across different applications and systems.
- Want a server-hosted system workflow product that enables enterprise integration.
- Are developing an application that must gather data from multiple Web services as part of a Service-Oriented Architecture (SOA).
- Are developing an application that has long-running business processes that may take many days to complete.
- Want to support business to business (B2B) processes based on industry standards.
- Want parallel execution of services.
- Need to abstract your application business logic into declarative rules that can be easily changed to match changing business requirements.