工作流宿主体系结构

上次修改时间: 2010年8月10日

适用范围: SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 中的工作流功能构建于 Microsoft Windows Workflow Foundation (WF) 基础之上,WF 是 Windows 平台上的一个组件,可为开发和执行基于工作流的应用程序提供编程框架和工具。具体来说,SharePoint Foundation 2010 使用由 Windows Workflow Foundation 提供的两个组件:Visual Studio 2010 工作流设计器和 WF 运行时引擎。

Visual Studio Designer for Windows Workflow Foundation

Visual Studio 2010 工作流设计器以 Microsoft Visual Studio 作为宿主,它使开发人员可以创建自己的自定义工作流和工作流活动。Windows Workflow Foundation 提供工作流模型,使开发人员可以描述业务流程的流。可以使用图形构造、XML 规范、代码或它们的组合来编写工作流。Visual Studio 2010 工作流设计器提供直观的图形设计平面,开发人员可以用来方便地将预定义活动组合和配置到自定义工作流中。工作流作者可以使用和扩展工作流模型,方法与使用和扩展 Microsoft .NET Framework 的其他元素的方法一样。

有关详细信息,请参阅 Visual Studio Designer for Windows Workflow Foundation 概述

Windows Workflow Foundation 运行时引擎

WF 运行时引擎管理工作流执行,它允许工作流长时间保持活动状态并在计算机重新启动后不丢失。运行时服务向运行时引擎提供核心服务(如事务和持久性)。WF 允许任何应用程序进程或服务容器通过承载 WF 来运行工作流;也就是在其进程中加载 WF。当您编写 Microsoft SharePoint Foundation 2010 工作流时,SharePoint Foundation 2010 将用作 WF 的宿主。

WF 运行时引擎提供每个工作流应用程序所需的服务,如顺序、状态管理、跟踪功能和事务支持。WF 引擎可用作状态机,它负责加载和卸载工作流模板以及管理正在运行的任何工作流的当前状态。

SharePoint Foundation 2010 承载 WF 运行时引擎。SharePoint Foundation 2010 为引擎提供以下服务的自定义实现:事务、持久性、通知、角色、跟踪和消息传递,以取代随 WF 提供的可插入服务。这样,开发人员可以基于 SharePoint Foundation 2010 创建工作流解决方案。

有关使用 Windows Workflow Foundation 技术的详细信息,请访问 Windows Workflow Foundation 开发中心

工作流持久性

SharePoint Foundation 2010 向 WF 工作流引擎提供的最重要的服务之一是持久性。包含人员交互的工作流在本质上运行时间就很长;甚至在理想的情况下,与机器相比,人力也需要比较长的时间才能完成工作。在许多环境中,工作流通常需要数天甚至数周才能完成。请看一个传送文档以供审阅的示例工作流。可能需要数天审批者才能收到审阅文档的任务。

很明显,让每个正在运行的工作流在整个执行期间都处于内存中是不可行的;长时间运行的工作流不断积累所需的资源很快就会导致系统进入暂停状态。

但是如果使用 Windows Workflow Foundation,一旦某个工作流实例到达等待用户输入的时间点,SharePoint Foundation 2010 就可以从内存中卸载该工作流实例并保留其数据。接着,当适当的事件(如用户输入信息)要求再次启动该工作流实例时,SharePoint Foundation 2010 使用保留的数据重新实例化工作流实例,这样,工作流实例就可以根据需要收到和处理事件了。

因此,尽管在任何指定时间可能有大量的工作流实例正在运行,但在这些工作流中,可能只有一小部分实际处于内存中并占用系统资源。

请参阅

概念

SharePoint Foundation 工作流开发

SharePoint Foundation 中的工作流简介