随着时代的发展和技术的进步,工作流管理系统不再仅局限于办公管理系统,已经涉及到了制造、销售等核心领域,与ERP、CRM、CIM等业务系统的关联也越来越紧密。企业中不可避免地存在很多已有的应用系统,分布在不同的软件平台,采用不同的开发工具和语言。工作流必须支持对这些异构软件的集成,从而构建企业级的业务平台。
工作流管理系统是以计算机支持的分布式、协同工作业务流程的自动或半自动化为研究目标的软件系统。随着计算机网络,特别是Internet/Intranet的迅猛发展和应用,计算机支持的分布式、协同工作的工作流系统在企、事业单位中的地位显得越来越重要,有着广阔的前景。
1 工作流技术综述
1.1 工作流的提出
工作流来源于办公自动化领域,是针对日常工作中具有固定程序的活动而提出的一个概念,通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好地控制过程、增强对客户的服务、有效管理业务流程等目的。
1.2 工作流定义
1993年工作流管理联盟(Workflow Management Coalition,WFMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WFMC对工作流给出的定义为:工作流是一类能够完全或者自动执行的经营过程,根据一系列过程规则、文档、信息或任务在不同的执行者之间进行传递与执行。
1.3 工作流系统定义
对于工作流管理系统,WFMC给出的定义是:工作流管理系统是一个软件系统,它能完成工作流的定义和管理,并按照在计算机中预先定义好的工作逻辑推进工作流实例的进行。
工作流管理系统包括三个主要功能,其结构关系如图1所示。
图1 工作流管理系统三个主要功能之间的关系
过程设计与定义模块主要通过工作流建模工具完成业务流程的模型建立,将实际的业务操作流程转为计算机可模拟处理的工作流模型;过程实例化与控制模块负责装载流程定义,将流程进行实例化,为具体业务流程办理提供工作流相关数据和工作流控制数据,并为业务流程的办理提供所需资源,控制流程实例的运行状态;人机交互模块主要完成业务流程的执行,重点是完成人机交互和系统内部应用或外部应用程序的调用。
1.4 工作流参考模型
WFMC提出的工作流系统参考模型包括五个接口与工作流运行控制器,其结构如图2所示。
图2 WMFC工作流系统参考模型
接口1是工作流定义交换接口,用于在建模和定义工具与执行服务之间交换工作流定义;接口2是工作流客户端应用接口,用于工作流客户端应用访问工作流引擎和工作列表,通过WAPI完成;接口3是被调用的应用接口,用于调用不同的应用系统;接口4是工作流系统互操作接口,用于不同工作流系统之间的互操作;接口5负责系统管理和监控,用于系统管理应用访问工作流执行服务。
2 工作流管理系统的设计及实现
为了实现企业业务流程的过程逻辑和应用逻辑的分离,工作流管理系统逻辑上包含两个部分,即工作流平台和表单应用集。
工作流平台由工作流引擎以及其他相关接口服务构成,负责提供业务流程运行的各种接口和服务,与具体的业务流程没有关系,只是负责过程逻辑的定义、解析、执行、监督和管理。
表单应用集由各种表单应用构成,涉及到各个业务模块。通过表单,对企业各类业务流程进行整合。一个表单通常是由一个或者多个角色,按照一定的顺序,伴随着业务的发展逐步填写完成的,而且企业的一个业务流程,往往需要处理多种表单或文档。对这些表单或者文档处理的衔接关系就体现了企业的业务流程。表单是不同业务抽象对象流程与数据的载体,系统通过表单将流程信息和结果数据进行交换,实现大业务流程的智能化管控,通过对表单数据格式以及业务流程的定义,可以定义企业各业务系统之间的数据交互和流程走向。
2.1 流程建模
工作流模型是企业业务流程所包含的任务体及其执行规则有序集的一种形式化表示。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。
在实际企业应用中,表单设计人员通过表单设计工具和流程设计工具完成表单的建模过程。通过表单设计工具建立表单业务数据结构,并完成表单的页面设计;通过流程设计工具完成表单的流程建模过程,设定其开始和结束条件,添加各种中间活动以及活动的分支条件和参与者。
流程模型包括四要素:活动(Phase)、活动分支(Phase Rule)、分支条件(Condition)、参与者(Participant)。活动是工作流中一个逻辑步骤或环节的工作任务,是同一类型任务的抽象集合体。活动分支是活动的子集,一个活动可以存在很多的活动分支,每个活动分支分别包含一条分支条件和参与者定义。参与者则通过任务参与业务流程的实际运作,参与者可以是人也可以是程序。
在实际表单应用中,不同的表单实例、不同的活动分支条件决定了业务流程的不同走向,导致实际过程执行中会应用不同的规则。 2.2 工作流引擎
工作流引擎是工作流系统的核心,为工作流实例提供运行时期的执行环境的软件服务器或引擎,也叫工作流机。主要完成如下任务:
·装载表单流程定义;
·解释表单流程定义,并将流程定义存储在不同的对象实例中;
·控制表单流程实例创建、激活、挂起、终止等;
·解析分支条件,为流程进行导航,控制其并行或串行操作;
·产生工作列表,提供接口,支持用户交互;
·响应参与者的交互指令;
·存储和传递工作流控制数据及相关数据。
在实际企业应用中,线性的工作流程占总流程的80%以上,相对于WFMC的工作流标准,为了提升业务流程的执行效率,在系统设计之初就将活动分为两种:静态活动(Static Phase)和动态活动(Dynamic Phase)。静态活动在流程实例化的完成后就可以进行预解析,产生工作列表;相对于静态活动,动态活动往往在业务流程实例运行过程中人工参与指定或依据实际的控制数据才可以决定后面的业务流程走向。
工作流引擎在接到实例化的请求,装载表单的流程定义后会进行预解析,生成预处理工作列表,其解析逻辑如图3所示。
图3 工作流引擎解析逻辑1
引擎会首先装载表单的流程定义,并将流程定义数据存储于系统对象中;然后引擎会对表单流程进行实例化,接着进行预解析,获取活动列表,把其中静态活动解析出来,判断其条件分支,找到条件成立的活动规则,解析对应的参与者模型定义,为不同类型参与者分配工作任务,插入到任务队列之中;对于动态活动,引擎只是生成一个需要动态解析的任务,放入任务队列,待流程需要激活动态活动产生的任务时,再进行二次解析处理;最后引擎会找到可以执行的任务,对其进行激活动作。
当参与者完成工作任务后,会调用引擎接口,推动流程继续前进,其处理逻辑如图4所示。
图4 工作流引擎解析逻辑2
在接收到工作任务完成的请求后,工作流引擎会装载表单流程实例数据;然后保存流程相关数据,并判断活动以及表单是否结束;有可以激活的任务,引擎就会将对应的任务激活,如果激活的任务是动态活动产生的任务,则依据流程控制数据、相关数据重新解析动态活动,生成新的工作任务,放人任务列表。
2.3 参与者模型
根据WFMC的定义,参与者是指执行工作流活动实例任务的一种资源,包括人工节点和自动节点。人工节点的概念是与自动节点相对的。人工节点就是需要有人参与的节点,在实际流程中,它体现在产生由人完成的工作项以及由人决定一些决策变量,这些决策变量会对流程的运行产生影响(例如分支的选择等)。自动节点则是由工作流引擎自己调用完成的,不需要人的参与,通常是执行定制的业务操作。
参与者的手动节点是人的集合。人工节点定义分为静态和动态两种方法,静态定义可以直接指定企业组织节点中特定成员、岗位、职位作为活动的参与者,动态定义不直接指定具体的人员,而是依据人员的级别、组织、角色等信息以及这些信息的组合条件来制定参与者,还可以根据前驱活动的执行者信息来制定。
企业的不同业务流程领域,其实都是针对某一种类型的工作模型而决定的,公司产品的研发制造、财务管理、销售管理、货物配送、客户和员工关系都有各自的工作模型。针对一些特殊项目,需要建立不同的工作模型,而这些不同的工作模型都会有其独特的参与者模型对应。
工作流系统支持的参与者模型都继承IParticipant接口,都会重载实现getParticipants()方法,方法返回结果为参与人员的对象集,常用的参与者模型有如下两种。
(1)组织汇报树模型。企业中每个员工都存在一个工作汇报关系列表,它往往是一个有先后顺序的人员列表。流程在设定活动参与者时可以设定某参与者汇报关系的开始和结束位置。
(2)核决权限参与者模型。企业中涉及到与资财有关的业务流程,会遵守企业财务审核制度,根据不同的财务审批类型、审批项目、审批金额,规定不同的审批核准层级和角色。此类流程往往需要业务单位先进行内部的审核,只有具有审批项目对应核决权限的主管核准后才可以继续执行。
另外,系统还定义了一些其他类型的参与者模型,如角色人员参与者模型针对企业内项目式模式,可以设定最多5个维度的角色人员,且可分门别类地设定对应的角色人员。
此外,系统默认支持几种可扩展的签核模型接口,如Web service及Procedue,其返回对象均为参与者对象集,可以针对特殊的业务流程工作模型进行自定义扩展。
3 结论
工作流管理系统通过对企业业务系统进行分析及抽象,完成了过程逻辑和应用逻辑的分离,各种业务流程和数据可以方便、快捷地运转在工作流平台之上。用户可轻松地通过可视化的工具对事项的流程、流程环节涉及的人员(角色)、流程环节的表单、流程环节的操作进行修改,从而达到应对不断变化的需求的目的,而工作流管理系统通常提供的流程监控、查询统计模块更足极大程度地为用户优化流程提供支持,提高了企业的工作效率。
工作流从更高层次上实现了企业对物料流、资金流、信息流以及控制流的相关过程与应用的集成机制,从而使得企业能够实现业务过程集成、业务过程自动化与业务过程的管理。
CIO之家 www.ciozj.com 公众号:imciow