文档库 最新最全的文档下载
当前位置:文档库 › 基于WWF工作流的开发过程研究

基于WWF工作流的开发过程研究

长沙通信职业技术学院学报第10卷

图1工作流参考模型

Iub 接口ATM/IP 双栈传输层数据配置研究[收稿日期]2011-10-27[作者简介]黄媛媛(1980-),女,四川成都人,长沙通信职业技术学院教师,华中科技大学工商管理硕士,研究方

向:企业信息化应用集成。

第10卷第4期2011年12月

长沙通信职业技术学院学报

Journal of Changsha Telecommunications and Technology Vocational College

Vol.10No.4Dec .2011

【摘要】工作流是面向流程管理提供业务流程处理自动化的重要应用。WWF (Windows Workflow Foundation )提供给开发者用于在Windows 操作系统平台上进行工作流设计、分析、开发的基本框架,在工作流设计与工作流管理系统开发中具有较好的扩展性、通用性和稳定性。文章对基于WWF 工作流的一般开发过程和方法进行初探和研究。

【关键词】

工作流;WWF ;企业信息化【doi :10.3969/j.issn.1671-9581.2011.04.007】【中图分类号】TP317.1

【文献标识码】A

【文章编号】1671-9581(2011)04-0028-07

基于WWF 工作流的开发过程研究

黄媛媛

(长沙通信职业技术学院,湖南长沙410015)

1工作流技术概要

1.1工作流

根据工作流管理联盟(WFMC )对工作流的定义,可将工作流理解成为一类能够完全或者部分自动执行的经营过程,它根据一系列的过程定义规则,使文档、信息或任务实例能够在不同的执行者

之间相互传递与自动流转执行。工作流管理系统是利用计算机信息技术和软件开发技术对构成活动的各项流程、各个活动进行管理、监督和实施的计算机软件环境。WFMC 提出的工作流管理系统接口参考模型如图1所示。该参考模型定义了工作流管理系统中包含的组件、接口以及相关工作流执行服

HUANG Yuan-yuan

(Changsha Telecommunications and Technology Vocational College ,Changsha ,Hu'nan ,China 410015

)Research on development process based on WWF workflow

Abstract:Workflow is an important application to provide business process automation in process management.WWF (Windows Workflow Foundation)provides the basic framework for the developer for workflow design,analysis and development on Windows operating system,which has good expansibility,versatility and stability in workflow design and workflow management system development.This paper makes a study on the general development process and methods based on WWF workflow.

Keywords:workflow;WWF;enterprise

informatization

第4期

由工作流管理系统的体系结构可见,工作流管理系统主要包括软件构件、系统控制数据、外部产品/数据三部分。其中,软件构件用于完成对应功能的实现,主要包括流程的过程定义,流程发起、审批、监控、结束等。系统控制数据用于存储本系统和其它系统进行流程控制、流程执行规则、流程约束条件、流程状态以及执行结果等数据。外部产品/数据包括其它应用之间的联系与应用数据,方便工作流管理系统调用外部应用数据等。1.3工作流建模

在整个工作流管理系统中,工作流过程建模是最关键的阶段。工作流模型不同于一般意义上的过程模型。通常将描述一组活动和它们之间相互连接

关系的模型称为过程模型,过程模型并不需要用计算机来执行。而工作流模型的建立是为了实现业务过程的自动化,必须要通过计算机来执行。由此,在进行工作流建模时,不仅要考虑组织在经营过程中的各项活动以及活动之间的关系表述,还要考虑对各个活动之间所传递的信息、活动的执行主体、活动所需调用的资源等进行定义,如此才能构成一个完整的业务过程模型,计算机才能对模型定义的任务进行解释执行。

WFMC 在工作流建模上提出了一个元模型,用于描述工作流内部的各个元素、元素间的关系以及元素的属性。

工作流元模型涉及过程定义元模型、组织机

图2工作流管理系统体系结构

务。一个或多个工作流引擎组成了工作流执行服务,它为工作流的设计实现提供任务流程的创建、管理和执行等功能。在工作流管理系统中,工作流执行服务为系统的中心,相关应用程序和工具通过不同功能的接口与它进行数据交换和信息传递。1.2工作流管理系统体系结构

通过构建一个通用的工作流系统实现模型来规范目前市场上种类繁多的工作流产品,使该模型适用于市场上的大部分工作流产品,为开发协同工作的工作流系统奠定基础。通用工作流管理系统的体系结构如图2所示。

基于WWF

工作流的开发过程研究

长沙通信职业技术学院学报第10卷

图3过程定义元模型

构元模型、相关数据元模型三个相互关联的子元模型。其核心是用于定义业务过程,从而控制工

作流执行的过程定义元模型。过程定义元模型如图3所示。

活动(activity )用于完成工作流的一个逻辑步骤,包括活动名称、活动的类型、活动前/后条件、以及其他调度约束等重要属性。

角色(role )是参与者与组织中的系列活动相关联的机制,包括名称、组织实体等相关属性。

转移条件(transition conditions )是对从当前活动到下一个活动流转或状态转移的规则定义,包括定义过程条件、执行条件等。

工作流相关数据(workflow relevant data )是工作流管理系统中用于决定工作流活动实例状态跳转或转移的数据,其属性包括数据名称、数据路径以及数据类型等。

被调应用(invoked application )用于描述完成业务过程所需采用的手段和工具,其属性包括了类型、名称、过程执行参数、存取路径等。

2WWF 技术

由Microsoft 公司发布的WW F (Windows Workflow Foundation ),用于Windows 操作系统平台的工作流设计、分析和研发框架,具有较好的通用性、扩展性和稳定性。WWF 具备与WFMC 中XPDL 标准的衔接能力,可与Microsoft Visual

Studio 实现集成。2.1WWF 的技术构架

WWF 工作流整体应用框架如图4所示。

图4WWF 技术架构图

第4期

1)主机层(Hosting Layer)

主机层位于主进程之上,提供主机运行时服务,为WWF框架和宿主程序提供持久化、通信、定时、追踪、多线程和事务处理等关键服务。

服务服务实现

持久化SQL Server对状态进行持久化

定时基于内存和SQL Server两种定时器

多线程NET线程池。https://www.wendangku.net/doc/6912859250.html,线程池

跟踪SQL对持久化和临时的事件LOG记录进行跟踪查询通信.NET组件和WEB SERVICES

表1描述各种服务和它的实现

2)运行时层(Runtime Layer)

运行时层位于主机层之上,它包含对活动的按时序执行和对事件的处理、异常、跟踪、事务等一般性行为的执行服务。该层产生通过跟踪接口序列化的跟踪事件的跟踪服务,通过持久化接口对需要持久化的流程状态进行管理的状态管理,同时为活动的执行提供的序列化服务和条件评价的规则服务。

3)工作流模型层(Workflow Model Layer)

工作流模型层包含工作流模型的类型、活动和主要编程API。两种主要的工作流模型为有序工作流模型和状态机工作流模型。其中有序工作流模型主要用在系统对系统的结构化工作流中,它在设计时就定义了流程流转步骤的结构化工作流。状态机工作流模型无确定的流程途径,工作流用状态图和状态之间的转换来表示。

由于目前市场上的大部分基于WWF工作流系统,如OA(办公自动化)系统等,都是由用户根据工作需要来进行控制,势必造成一些重要的选择发生在系统的外部,从而具有一定的随机性。所以,一般的WWF工作流系统均采用状态机工作流模型进行开发。

2.2WWF模型体系

WWF模型体系参照WFMC参考模型建立,包括活动、条件、处理三部分构成。

活动:提供基本活动和自定义活动两种类型,基本活动可以接受用户自定义代码,具体有代码活动或延时活动等类型,而定义活动可以看做是粒度较小的子过程,有其内部活动、条件和处理。

条件:用以限制活动的开始和结束。

处理:WWF以分支选择模式提供工作流程的

分支和聚合,其分支的个数可以扩充,同时提供IF/ELSE判断模型。

WWF以事件——

—处理模式(Event——

—Handler )相应操作,通过外部事件接口进行各种交互。

2.3WWF工作流开发工具

开发WWF工作流的工具很多,Visual Studio 是开发WWF工作流的重要工具。它几乎为开发所有和工作流有关的软件提供了所有的工具和功能。Visual Studio2010工作流设计器使开发人员能够创建自己的自定义工作流和工作流活动。是目前创建工作流模板和自动以工作流比较常用的开发工具之一。可以在工作流中包括自定义代码,还可以设计表单(如https://www.wendangku.net/doc/6912859250.html,表单),工作流可使用这些表单在关联和运行时与工作流用户进行通信。还可以创建用于其他工作流的自定义活动。

3WWF工作流开发的一般过程

基于WWF工作流开发的一般过程主要分为5个阶段:业务需求分析阶段、业务流程定义与整体设计阶段、WWF工作流系统运行调试阶段、WWF 工作流系统维护阶段。

3.1业务需求分析阶段

业务对工作流系统的整体需求大致可以概括为四个大方面,即事件管理流程、保障流程、问题管理流程、变更流程等。由此可见,工作流管理系统包含流程定义、表单定义、组织角色定义等工具和工作流引擎。它们之间在工作中是相互透明独立的,不存在关联关系,因此它们之间的设计要是松耦合关系才能保证相互间更好的协同工作。通过对这种松耦合关系进行分析,可得出工作流管理系统框架的结构定义,如图5所示。

基于WWF工作流的开发过程研究

长沙通信职业技术学院学报第10卷

由工作流系统框架可以得出WWF 工作流管理系统的一般组织模型,该模型描述资源(处理任务的人或者机器)的组织结构情况。可以根据企业业

务需求来建立组织模型,并将该模型存放在数据库中,供其它工具进行引用。

图6组织结构图

图5

工作流系统框架结构图

第4期

如图6所示,该模型能够满足企业内部大多数业务的需求。在最初的设计实现中,主要对模型中部门、人员和角色进行定义和实现。并对相关人员角色进行关联,为实现资源分配提供支持,使用户的功能需求更加明确。人员、角色等定义后,继而分析活动的内容和要求,如,活动是要做什么、由谁来做、实施之后对整个流程的有何影响,活动实施过程中需要处理的数据有哪些、各业务对象与工作流对象之间的有何关联,影响整个业务过程的数据有哪些。

3.2业务流程定义与整体设计阶段

业务需求分析结束后,根据分析结果获得业务流程的实例,生成流程实例表,从而获得流程实例的定义,并在流程实例表中进行标识,得到流程定义的相关信息。接下来,设置流程的启动者,并记录到数据库中,通过获得流程活动列表得到流程中所有的活动。

根据业务流程定义进行业务流程的整体设计。首先流程的设计是由流程描述和定义开始,先要进行流程相关的页面设计,使流程能够在相应的管理界面下进行流转操作。流程定义就是将业务活动建立起来,成为以后流程流转的基础。在进行流程描述和定义的同时,还要把相关的流程定义存储到数据库中,并进行关联。除此之外设计者还需要对各个活动进行相关参数的定义,包括流程流转需要的条件、参与人员等。定义这些参数可以从现有的数据库表中选择,也可以是新建,所以设计者在流程定义的工具中需要添加流程相关数据的定义功能。同时,通过对相关数据表进行操作就可以完成对流程发起权限的控制。

业务流程的定义与整体设计阶段实际上是对于业务流程的实现阶段,其主要任务是通过WWF工作流软件实现用户接口、实现业务单元、实现操作和事件插件。主要完成流程数据库的创建、流程模型的定义和流程定义的导入工作。而流程的管理操作主要是通过后台的WWF工作流引擎来进行控制。

3.3WWF工作流系统运行调试阶段

完成WWF流程定义和整体设计后,就可以通过WWF工作流引擎提供的任务调度等服务来运行所设计的工作流程。WWF工作流系统的运行情况就是组成该系统的一系列活动执行的情况。当一个工作流实例启动时,活动会按照工作流中的定义进行,直到执行最后一个活动,此时工作流结束。活动类的定义中包含着相应的执行逻辑,下面以定义一个复合活动的例子来说明活动的执行逻辑。

在这个复合活动中包含了一个Execute方法,这是继承自Activity类的方法,在这个方法里面包含活动的执行逻辑,所以自定义的活动都是通过重定义这个方法来实现对执行逻辑的修改。

下面定义一个活动的流程如下:

Xmlns:x=https://www.wendangku.net/doc/6912859250.html,/winfx/2006 /xaml>

上面的流程定义是按照XML格式描述的。其中WriteLine是一个控制台输出一个Text属性的字符串的一个活动。

首先,启动流程实例的时候,即调用了WorkflowInstance.Start()方法以后,工作流运行时(WorkflowRuntime)会启动根活动Sequence的Execute方法。下面是当前的执行状态和执行队列。

Sequence(s1)

WriteLine(w1)

WriteLine(w2)

WriteLine(w3)

WriteLine(w4)

一旦执行了Sequence的Execute方法后,在执行了前面代码中粗体的代码后,会导致Squence 的第一个子活动的执行,即w1会被执行。

Sequence(s1)

WriteLine(w1)

WriteLine(w2)

WriteLine(w3)

WriteLine(w4)

在w1执行完成的时候,那么会触发一个活动完成的时间,从而导致s1的ContinueAt方法的执行,从而根据流程模板的定义开始工作流的下一步流程。

Sequence(s1)

WriteLine(w1)

WriteLine(w2)

基于WWF工作流的开发过程研究

长沙通信职业技术学院学报第10卷

WriteLine(w3)

WriteLine(w4)

根据流程模板的定义,程序会依次的执行w2,w3,w4,如果所有的子活动都执行完毕后,context.CloseActivity()方法后结束s1流程。

在流程模型的建立时可以根据需求进行调整,活动的执行逻辑,在运行过程中,WWF引擎会利用WorkflowRuntime会自动隐式的调用活动的执行代码,实现流程运转的自动化。如果在运行时,发现流程中的某个环节出现问题或者不符合实际业务需求,应当及时进行调整,优化流程的活动类。这些调试与优化主要针对流程执行过程的变化、业务活动的变化、流程控制权限的变化、执行人的变化、执行期限、执行事件的变化等方面,这个阶段贯穿了WWF工作流流程运行的始终,是非常重要的一个环节。

3.4WWF工作流系统维护阶段

维护阶段的任务,是通过各种必要的维护活动使WWF工作流系统能够持久的满足用户的需要。通常维护活动有四类:改正行维护,即诊断和修改WWF工作流系统使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充WWF系统的

功能,使它更加完善;预防性维护,即修改WWF 系统软件为将来的维护活动预先做下准备。每一项维护活动都应该准确地记录下来,作为真实的文档资料加以保存。

4结论

在当今竞争日益激烈的世界市场环境下,企业的信息管理水平在很大程度上决定了它的竞争力。工作流技术作为信息管理技术的重要应用,成为企业必不可少的管理工具和手段。微软WWF 提供的工作流管理系统框架为工作流开发提供了很好的平台,成为很多企业研发工作流管理系统,实现信息化建设的重要手段。随着工作流技术的发展,基于WWF工作流的开发为企业信息化水平的提升做出成就不容小觑。

【参考文献】

[1]吴朝辉,郑水光.工作流系统设计与关键实现[M].杭州:浙江

大学出版社,2006.

[2]崔淼.基于WWF工作流模型的信息系统优化设计[D].大连:

大连海事大学,2007.

[3]乔艳军,张耀鸿.基于WF的工作流管理系统[J].微计算机信

息,2011,(3).

[4]范玉顺.工作流管理基础[M].北京:清华大学出版社,2001.

相关文档
相关文档 最新文档