引言
随着社会生产的流程化,工作流起着越来越重要的作用。根据 WFMC 的定义,工作流(Workflow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。本文将详细介绍基于UML的工作流管理系统分析与建模。
1 工作流概述
对工作流的研究起源于二十世纪七十年代,受网络的局限性,最初的工作流系统主要以企业内部的文档处理为主。到了二十世纪九十年代,随着Internet 技术的发展及应用,促进了电子商务应用的极大发展,使得公司与公司之间、公司内部部门之间以及子公司之间的业务相互处理成为可能,这为工作流的发展带来了很大的机遇和挑战。
根据国际有关组织的预测,随着电子商务的发展,以数据处理为中心的数据库产品已经进入稳定发展期,以业务过程处理为中心的工作流产品将进入高速发展期。在国内,随着企业管理的规范化和规模的不断扩大,企业的计算机管理将不仅仅停留在信息资源管理上,而将向更复杂的业务过程管理迈进。
为了实现组织目标,有关业务活动依时序或逻辑关系相互连接构成业务流程。在业务开展过程中,文档、信息或任务,依据组织规范在参与者之间传递、处理或执行。总体业务流程中,实现了基于计算机辅助处理而达到自动化的全部或部分称为工作流。也就是说,工作流是在计算机辅助下全部或部分自动执行的工作过程,该过程可运行于异质、分布的运行环境中,供多人协同工作。工作流服务器是供业务流程可视化设计、管理和控制业务流程的运行、并在实际执行过程中可动态修改业务流程的一种计算机软件平台。它使得快速开发、部署和运行企业业务管理系统、电子商务系统等成为可能。它也使得企业在复杂多变的市场环境中,为了快速适应市场的变化,在保存现有投资,现有系统不变的情况下,迅速调整业务或商务流程成为可能。如它可应用在:采购处理、各种申请、订单与报价处理、员工绩效考核、人事变动、贷款审批、索赔处理、B2B、电子商务等。
2 工作流管理系统概述
工作流管理系统是定义、创建和执行工作流的系统,它是一种特殊的计算机支持的协同处理(CSCW,Computer Supported CooperativeWork)软件系统。
工作流管理系统的产生
工作流管理系统(WfMS,WorkflowManagementSystem)是以计算机支持的分布式、协同工作业务流程的自动或半自动化为研究目标的软件系统。随着计算机网络,特别是Internet/Intranet 的迅猛发展和应用,计算机支持的分布式、协同工作的工作流系统在企、事业单位中的地位显得越来越重要,也有着广阔的前景。
工作流管理系统是定义、创建、执行工作流的系统。开发这类软件系统就是要协调分布式、协同处理的各个节点上的活动,按照预定义的控制流程进行执行,以达到对它们的自动执行和有效的管理。开发这类软件有很大的重复性,工作流管理系统就是将这类软件的公共的流程控制部分(工作流运行服务、引擎)、管理部分和其他公共部分抽象出来,形成一种软件开发平台,用户只需要将它们的控制流程描述出来,该平台软件就可对它们的控制流程进行自动执行和有效地管理,而不需要对每次不同的应用重复地开发。
不同工作流管理系统可以有不同的实现方法,不同的底层通讯机制,应用的范围也可能有很大的差距,但所有的工作流管理系统从用户的应用层上来看,通用工作流管理系统应该能够提供以下三个方面的功能支持:
首先是建造功能,即对工作流的业务流程及组成这些业务流程的活动进行定义和建模。
其次是运行控制功能,即在一定的运行环境下,负责创建、执行和控制工作流实例,激活相应的资源和应用,并完成过程中从一个活动到另一个活动的控制转移。它是整个工作流管理系统的核心部分。
最后是运行交互功能,即在工作流实例的运行中,工作流管理系统与工作流参与者(业务工作的参与者或控制者)及外部应用程序进行交互的功能。
由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WfMS 的出现是必然的。它可以改进和优化业务流程,提高业务工作效率;实现更好的业务过程控制,提高顾客服务质量;提高业务流程的柔性等。
3 工作流管理系统的组成
一个完整的工作流管理系统中主要包括如下七个部分的部件和数据。
a.过程定义工具
过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。
b.过程定义
过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。
c.工作流执行子系统和工作流引擎
工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WfMS 的核心软件组元。它的功能包括:解释过程定义,创建过程实例并控制其执行,调度各项活动,为用户工作表添加工作项,通过应用程序接口(API,Application Program Interface)调用应用程序,提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。
d.工作流控制数据
指被工作流执行子系统和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。
e.工作流相关数据
指与业务过程相关的数据。WfMS 使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。
f.工作表和工作表处理程序
工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。
g.应用程序和应用数据
应用程序可以直接被WfMS 调用或通过应用程序代理被间接调用。通过应用程序调用,WfMS 部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WfMS 的其他部件来说是不可见的。
术语解释
表1 工作流管理系统术语解释
术语/缩写
解 释
过程定义
由过程定义工具所定义的一个工作流过程
过程实例
过程定义运行之后转化为过程实例,一个过程定义可以产生多个过程实例
活动
一个相对独立的工作的描述,它是过程定义的一个重要组成部分
活动实例
活动运行之后的一个实例
工作项
在一个活动实例中,工作流参与者所需执行的工作
工作项列表
一个参与者所负责的所有工作项的详细描述
信牌箱
活动之间传递信息的驿站
转移
从活动到信牌箱或从信牌箱到活动,描述信牌箱与活动之间关系的连接
工作流控制数据
表示过程实例、活动实例的状态信息
工作流相关数据
与业务过程相关的数据,工作流引擎根据它们来确定过程实例的状态转移
日志数据
系统中所有发生的事件及相应数据的记录
运行服务器
负责整个过程的运行、调度、查询及日志的记录等
过程定义状态
表示过程定义目前所处的状态,如:是否已发布等
过程实例状态
表示过程实例目前所处的状态,如:运行、挂起等
活动实例状态
表示活动实例目前所处的状态,如:运行、挂起等
工作项状态
表示工作项目前所处的状态,如:运行、挂起等
引擎
运行服务器的核心,负责过程实例的执行、调度
引擎容器
包含了多个引擎,并提供多引擎管理功能
4 工作流管理系统功能分析
前面已经介绍过,一个完整的通用工作流管理系统应当包括七个部件,这里限于篇幅的原因,只对工作流管理系统的核心部分:工作流执行子系统和工作流引擎进行分析。
工作流管理系统核心功能
工作流管理系统的核心组成部分称为工作流执行子系统,它为创建、初始化和执行过程实例提供了一个运行环境。
在一个工作流执行子系统中可以包括一个或多个工作流引擎,前者是一种集中式的实现方式,而后者是一种分布式的实现方式。分布式的实现方式又可以分为同构和异构两种不同的情况。所谓同构是指在一个运行服务系统中包含了多个兼容的工作流引擎;所谓异构是指在工作流管理系统中包含了两个以上异构的工作流执行子系统。
工作流引擎是工作流管理系统的核心软件部件。它的主要功能有:解释过程定义,控制过程实例(创建、激活、挂起、终止等),按照过程定义已确定的业务逻辑调用各项活动,为用户工作表添加工作项,维护工作流控制数据和工作流相关数据,调用应用程序,提供监督,管理和审计功能。
工作流执行子系统涉及四种数据:工作流控制数据、工作流相关数据、组织/角色模型数据和工作表。
第一种,工作流控制数据。指只由工作流执行子系统维护的内部控制数据,主要用于表示过程实例与活动实例的状态信息。
第二种,工作流相关数据。指与业务过程相关的数据,他们由应用程序或由用户通过工作项处理来产生和更新,工作流引擎根据相关数据来确定过程实例的状态转移,例如过程调度决策数据、活动间的传输数据等。
第三种,组织/角色模型数据。是描述组织结构的数据,主要用于确定工作项的执行者。
第四种,工作表。列出了与工作流参与者相关的一系列工作项。
文章来源:
http://www.01g.net/blog/default.asp?id=3