工作流和 SharePoint 产品和技术的技术基础知识
要了解 Microsoft 对于工作流的支持,需要掌握有关两种基础技术的基本知识,正是这两种技术奠定了这种支持的基础:Windows Workflow Foundation 和 Windows SharePoint Services。这一部分简要介绍每种技术。
Windows Workflow Foundation
通常,软件将实现某种过程,同时以定义的顺序接连执行多个步骤。既然经常使用这种方法,为何不为创建这种应用程序提供明确的支持呢?Windows Workflow Foundation 的目标就是完成这一任务。使用 Workflow Foundation 构建的应用程序包含一个或多个工作流,每个工作流包含一定数量的活动。Workflow Foundation 的运行库引擎以一次一个的方式执行工作流的活动,执行顺序由工作流本身确定。通过为面向过程的应用程序提供直接支持,Workflow Foundation 可使这些应用程序更易于创建和维护。
下图显示 Workflow Foundation 的主要组件。工作流(从活动中构建)使用运行库引擎执行。这一执行取决于由 Workflow Foundation 提供的一组运行库服务,这些服务允许保持工作流的状态、跟踪其执行等等。所有这一切都在某个主机内运行,它可以是任何 Windows 进程(从简单的桌面应用程序到可伸缩的服务器)。此外,为了满足由不同主机和不同类型的应用程序所施加的不同要求,需要时可以替换 Workflow Foundation 运行库服务。
如图中所示,可以使用 Workflow Foundation 工作流设计器创建工作流。此工具在 Visual Studio 2005 内运行,它提供一个图形环境,用于将活动组织成工作流。一个活动仅仅是一个类,因此,也可以完全在代码中创建工作流,也就是说,并非一定要使用图形工具。尽管工作流可以使用开发人员选择的任何活动,但 Workflow Foundation 提供了一个基本活动库 (BAL)。BAL 包含许多基本活动,其中包括:
IfElse:根据条件是否得到满足,执行一个或两个可能的路径中包含的活动。
While:只要条件为真,则重复执行一个或多个活动。
Sequence:以定义的顺序,以一次一个的方式执行一组活动。
Parallel:并行执行两个或更多的活动组。
Code:执行定义的代码块。
Listen:等待一组事件中的一个事件,然后当收到该事件时执行一个或多个活动。
InvokeWebService:调用 Web 服务。
Policy:允许使用 Workflow Foundation 提供的规则引擎定义和执行业务规则。
Workflow Foundation 提供两种类型的内置工作流:
顺序工作流,这种工作流以定义的顺序执行活动。顺序工作流可以包含 IfElse、While 和任何其他活动。
状态机工作流,这种工作流实现传统的有限状态机。这种类型的工作流也可以包含 IfElse、While 和其他活动,但它依赖于其他活动(如 State)来表示状态和过渡。
应了解 Workflow Foundation 本身不是一个完整的工作流应用程序,这一点至关重要。相反,它为开发人员创建基于工作流的软件提供了基础。并且,由于它位于任何 Windows 进程中,因此,Workflow Foundation 可以与其他技术组合以提供工作流服务。Windows SharePoint Services 3.0 将完成此任务,因此,了解 Microsoft 对于工作流的支持的下一步是了解这一技术的基础知识。
Windows SharePoint Services
共享信息是现代生活的重要组成部分。无论是在我们的工作中,作为志愿者组织的一部分,还是以其他某种方式,我们都经常需要与一组人员共享文档和其他信息。Windows SharePoint Services 是 Windows Server 2003 的标准组成部分,通过它可以更轻松地实现这种共享。
如下图中所示,Windows SharePoint Services 的用户可以创建网站,每个网站都包含文档库和列表。每个网站中的信息(包括文档和列表项)均存储在 SQL Server 中。使用 Internet Information Services (IIS),人们可以通过 Microsoft Office 应用程序或 Web 浏览器(如 Internet Explorer)与网站进行交互。用户也可以使用 Web 部件自定义浏览器界面,同时允许每个用户创建非常适合自己的界面。
Windows SharePoint Services 版本 3.0 也添加了对于内容类型的支持。一种内容类型提供一个定义文档或列表项的架构。默认情况下,给定库中的每个文档都具有相同的架构,就像特定列表中的每个项一样。将内容类型附加到文档或列表项后,将允许独立于它所属的库和列表的其他元素来指定该文档或项的架构。还可以将策略附加到内容类型,同时指定其他事项(如应将文档保留多长时间)。然后,这些策略将应用于该策略所附加到的任何文档或项。
运行 Windows SharePoint Services 的多台计算机可以访问单个 SQL Server 数据库,也可以访问一组数据库(网站分布在这些数据库之间)。这可以提高可伸缩性,同时允许大量用户访问相同的网站。值得指出的是,尽管它们在逻辑上是分开的并以不同方式向用户显示,但在外表之下,文档和项实际上是非常相似的:两者都只是 SQL Server 表中的条目。也有一些差异:例如,文档可以签入和签出,而文档不能。但就两者之间的差异而言,将用户查看它们的方式与实现它们的方式相比,前者与此差异之间的关系更大。
Windows SharePoint Services 还依赖于其他标准的 Windows 技术。例如,它可以使用 Active Directory 来确定用户,并且其用户界面(包括 Web 部件)建立在 ASP.NET 的基础之上。因为它是 Windows 的标准组成部分并且它可以解决一组共性问题,因此 Windows SharePoint Services 已成为一项非常通用的技术。许多组织使用它来共享许多不同种类的信息。然而,在推出 Windows SharePoint Services 3.0 之前,并没有为创建工作流提供内置的支持。接下来将介绍版本 3.0 如何使这种内置支持成为可能。
下载此书籍
本主题包含在以下可下载书籍内,以方便您阅读和打印:
有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载书籍。