Appendix E: Workflow Technology Matrix
For more details of the topics covered in this guide, see Contents of the Guide.
- Workflow Technologies Summary
- Human Workflow vs. System Workflow
- Benefits and Considerations Matrix
- Common Scenarios and Solutions
- Additional Resources
This appendix will help you to understand the tradeoffs you have to make when choosing a workflow technology. It will help you to understand the design impact of each technology, and assist when choosing a workflow technology for your scenario and application type.
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 understand the range of technologies available for workflow. Use the Common Scenarios and Solutions to map your application scenario to common workflow technology solutions.
Workflow Technologies Summary
The following workflow technologies are available on the Microsoft platform:
- 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 Visual Studio.
- Workflow Services. Workflow Services provides integration between Windows Communication Foundation (WCF) and 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, 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 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 (an extension of the Web Service Definition Language used to model service orchestration and collaboration), which is 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. This is a type of workflow in which a process that includes human intervention is broken down 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. Sometimes called orchestration, this a specific type of workflow that is generally used to implement mediation between business services and business processes. Orchestration does not include any human intervention.
Benefits and Considerations Matrix
The following table lists the key benefits and considerations for each of the workflow technologies.
Windows Workflow Foundation (WF)
A developer-centric solution for creating workflows.
Supports sequential, state-machine, and data-driven workflows.
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.
Custom code is required if you want to host the designer in your application.
Does not provide true parallel execution support.
Provides integration between WCF and WF.
Allows you to expose workflows to client applications as services.
Supports coordination across multiple services to complete a business process.
When calling Workflow Services, the WF runtime is automatically engaged for new or existing workflow instances.
Provides developer support in Visual Studio 2008, with new templates and tools for Workflow Services.
Requires .NET Framework 3.5 or higher.
Extra coding is required when not using default security credentials.
MOSS 2007 Workflow
The workflow engine is based on WF.
Approval-based workflow can be defined using the Web interface.
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.
Workflows are bound to a single site, and cannot access information in other sites.
Not well suited for complex line-of-business (LOB) integrated workflow solutions.
Provides a single solution for business process management.
Enables electronic document exchange relationships between companies using Electronic Data Interchange (EDI) and/or Extensible Markup Language (XML) formats.
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.
Saves the orchestration state to SQL Server, which can introduce latency while executing the orchestration.
Current version does not use WF. However, a future version may support WF.
Common Scenarios and Solutions
The following sections provide guidance on choosing the appropriate type of workflow technology for your application.
Consider using WF if:
- You must build a custom workflow solution.
- You need workflow designer support in Visual Studio.
- You want to host the WF designer in your application.
Consider using Workflow Services if:
- You must expose workflows as services.
- You must call services from within a workflow.
- You must coordinate calls across multiple services to complete a business process.
If you are already using SharePoint, consider using MOSS 2007 workflow if:
- You must enable workflow for human collaboration.
- You must enable workflow on a SharePoint list or library; for example, to support an approval process.
- You need to extend SharePoint workflow to add custom tasks.
- You want to use the workflow designer in Visual Studio.
Consider using BizTalk Server if:
- You need a workflow solution that works across different applications and systems.
- You want a server-hosted system workflow product that enables enterprise integration.
- You are developing an application that must gather data from multiple Web services as part of a Service Oriented Architecture (SOA).
- You are developing an application that has long-running business processes that may take many days to complete.
- You must support business-to-business processes based on industry standards.
- You need parallel execution of services.
- You must abstract your application business logic into declarative rules that can be changed easily to match changing business requirements.
For more information, see the following resources:
- For more information on MOSS 2007 workflows, see "Workflows in Office SharePoint Server 2007" at http://msdn.microsoft.com/en-us/library/ms549489.aspx.
- For more information on WF, see "Windows Workflow Foundation" at http://msdn.microsoft.com/en-us/netframework/aa663328.aspx.
- For more information on Workflow Services, see "Workflow Services" at http://msdn.microsoft.com/en-us/library/cc825354.aspx.
- For more information on BizTalk, see "BizTalk Server" at http://msdn.microsoft.com/en-us/biztalk/default.aspx.
- For more information on enterprise workflows, see "Architecting Enterprise Loan Workflows and Orchestrations" at http://msdn.microsoft.com/en-us/library/bb330937.aspx.