工作流管理系统是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。 工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
目前已有上百种声称具有工作流管理功能的商品化软件或原型系统。为了对这些系统的功能、特点等有一具清晰的认识,可以根据工作流过程本身的特点、系统建模的方式、所使用的底层支撑技术、以及工作流过程的执行方式等的不同而对它们进行相应的分类如下:
1、结构化的与即席的
结构化工作流指的是在实际工作过程中会反复重复、严格按照某个固定的步骤进行的业务过程。定义此种工作流所需要的各种类型的信息可以通过对业务过程进行详细的分析而得到,从而得到完整的过程定义并在以后的应用过程中反复使用。大量的办公程序,如公文处理、审批等都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作流程的,关于这类流程执行所需的有关参数(如参加者等)事先无法确定,而必须推迟到过程实例运行时才能确定,同时在执行过程中间还可能会发生一些意外的情况。这种动态多变的特点在提供更高灵活性的同时,也为过程的建模与执行带来更多的复杂性。
2、面向文档的与面向过程的
前者的侧着点在于将电子形式的文档、图像等在有关的人员之间进行分发,以便能够得到不同人的处理与审阅。现有的文档管理与映像管理系统均属此类。在面向过程的WfMS中,工作流被描述成一序列执行环节。与各环节相应都有待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去,如可以将数据对象的值作为控制条件、或者依此数据对象组装成其他的数据对象等。高端的WfMS一般都属此类系统。
3、基于邮件和基于数据库
前者使用电子邮件来完成过程实例执行过程中消息的传递、数据的分发与事件的通知。低端的系统所使用的经常就是此种方法,它可以充分发挥电子邮件系统在广域环境下的数据分发功能,但整个系统将运行于一种松散耦合的模式下。在基于数据库的WfMS中,所有的数据都保存在某种类型的DBMS中,过程的执行实际上就是对这些数据的查询与处理。高端的大规模系统所使用的一般都是此种方法。
4、任务推动的与目标拉动的
前者指的是从过程的开始逐步地一个环节一个环节的执行,当某个活动实例被处理完之后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。这是目前大多数面向过程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流程被看成是一个目标。过程实例执行时,该目标将被分解得到多个相互之间按一定约束条件的关联起来的可执行的多个环节,其中各环节还可以当成是子目标而进一步进行分解。在各环节均执行完毕之后,整个过程也就完成了。目标拉动是一种全新的执行方式,下一代的WfMS将具有此种特征。应该说明的是:上述分类只是从不同的角度入手的。一般来说,后面那些特点将给WfMS带来更好的灵活性,同时也将成为那些能够支持跨机构的大规模复杂工作流管理、面向关键任务的WfMS不可缺少的特征。
工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。本文深入研究工作流管理系统模型和各大主流工作流管理系统的基础上设计了一套功能全面的工作流管理系统体系结构。本文主要从该体系结构的三个层次深入介绍了该系统结构。
1、引言
在一个组织内部存在着两种信息:一种是数据信息,另一种是业务信息。在组织之间也同样存在着两种信息:一种是数据信息,另一种是业务往来信息。如果这两种信息用计算机系统来管理,前一种属于组织内部的信息系统,后一种属于B2B电子商务系统。目前对数据信息的计算机管理系统(即:数据库管理系统)经过多年的发展已经成熟。对业务过程的计算机管理系统由于比较复杂,可变因素较多,难度大,因此发展还不成熟。工作流技术作为现代组织实现过程管理与过程控制的一项关键技术,为组织的业务处理过程提供了一个从模型建立、管理到运行、分析的完整框架。同时,工作流管理系统(WorkflowManagementSystem,WFMS)通过一套集成化、可互操作的软件工具为这个框架提供了全过程的支持。ThomasKoulopoulos曾预言:工作流管理系统将最终成为覆盖于各类台式机与网络操作系统(如:Windows,Unix,WindowsNT)之上的业务操作系统BOS(BusinessOperatingSystem),它将带来操作系统的一次革命。但是目前工作流技术无论从理论上还是从实践都还不够完善,要实现ThomasKoulopoulos的预言可能还需有一段路要走。本文主要介绍了由作者独立设计一套工作流管理系统体系结构,以供工作流技术爱好者参考。
2、工作流管理系统的基本概念
顾名思义,工作流就是工作任务在多个人或单位之间的流转。在计算机网络环境下,这种流转实际上表现为信息或数据在多个人之间的传送。工作流管理联盟(WorkflowManagementCoalition,WfMC)对工作流的定义是:“业务过程的部分或全部在计算机应用环境下的自动化”。她所要解决的主要问题是,“使在多个参与者之间按照某种预定义规则传递的文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者是促使此目标的实现”。
工作流管理系统就是通过管理一序列的工作活动以及相关人员、资源、信息技术资料来提供业务处理程序上的自动控制。工作流管理系统通过计算机软件来定义、管理和执行工作流程。在工作流管理系统中计算机运用程序的执行顺序是由工作流逻辑的计算机描述来驱动的。她的主要目标是对业务过程中各步骤(或称活动、环节)发生的先后次序,以及同各个步骤相关的人力、资源、信息资料的调用等进行管理,从而实现业务过程的自动化。当然这种管理可能会在不同的信息及通信环境下实现,所涉及的范围可以小至一个只有几人的工作组,也可以大到企业、企业组织各个机构之间。工作流管理系统将人员、组织结构、设备资源、信息源(如数据库、文件系统、电子邮件、计算机辅助设计工具等)整和成一个整体。这样,工作流管理系统就成为了一个理想的用来收容业务逻辑的业务知识仓库,并给予业务逻辑一个易操作易控制的界面。
工作流管理系统的最大优点就是实现具体应用逻辑和过程逻辑的分离,实现在不修改具体功能的情况下,通过修改业务流程模板来改变系统的功能,完成对组织生产经营过程的部分业务或全部业务的集成管理,有效的把人力资源、物质资源和信息组织在一起,发挥最大的效能。
3、工作流管理系统体系结构
工作流管理系统在实际运用中一般分为三个阶段:工作流建模阶段,工作流模型实例化阶段和工作流执行阶段,如图1。在工作流建模阶段主要通过工作流建模工具完成业务流程的模型建立,将实际的业务操作流程转为为计算机可模拟处理的工作流模型;在模型实例化阶段主要通过工作流引擎完成具体业务流程的实例化,为具体业务流程办理流转提供工作流相关数据和工作流控制数据,并为业务流程的办理提供所需要资源(如人力资源和物料、设备资源等);工作流执行阶段主要完成业务流程的执行,重点是完成人机交互和系统内部应用或外部应用程序的调用。
图1、实施的三个步骤
根据工作流的三个阶段的分工,工作流管理系统结构可以分为过程设计定义功能、运行控制功能和运行交互接口三个层次的功能,如图2。
4、过程设计定义功能
过程设计定义功能主要作业务处理流程的计算机定义,她提供了一种分析、建模、系统定义技术,将一个现实世界的业务处理过程转换成计算机可处理的定义;最终的定义叫作工作流模型、过程模版或过程定义,她可以用图形符号进行表示。工作流管理系统结构这一层次主要包括以下功能:业务建模与信息建模、组织管理、资源管理、内部应用开发工具、数据窗口开发工具、工作流定义等功能。
4.1业务建模与信息建模
业务流程是由各业务环节连接而成,而每一个业务环节都由多个相互关联、不同层次的要素构成。在业务建模时可自顶向下的将业务流程中各个业务环节最终分解成一系列的原子任务。所谓原子任务,即将有可能发生的每笔业务进行原子化分解,细分到不能再分割的操作单元,每个操作单元即是一个原子任务。任务之间的相互联结也将最终转化为数据流、信息流、协作流、资源流。这样各个原子任务的控制连接,就成为了工作流模型。因此,工作流是企业中过程流、数据流、信息流、协作流、资源流等各种流的综合集成。业务建模工具主要提供流程定义开发人员便捷的与数据流图工具或活动图等流程描述工具类似的业务流程分析工具。
业务模型是信息模型的出发点。信息模型说明了业务处理对象中所包含的信息,或者说执行具体功能的活动的输入、输出数据、以及这些数据之间的逻辑关系。信息建模工具可提供使用E-R图方法构建信息系统的逻辑数据模型;根据实际选用的数据库管理系统,建立适用于该数据库管理系统的物理数据模型,同时可生成目标数据库管理系统的数据库创建脚本。信息模型是个两层次的建立过程,先建立逻辑模型,再建立物理模型。逻辑模型支持数据的概念模式,它从抽象的层次上反映内部数据间的关联,不管具体的数据结构及数据存储方式等等。物理模型支持数据库的物理设计,它与具体选定的数据库类型密切相关。
4.2组织管理
在组织单位中组织结构是信息决策、任务执行和监督管理等重要活动的载体,组织结构揭示了组织单位人员管理的层次,反映了人与工作、决策、责权之间的联系。因此,组织结构对于一个组织单位中如何完成业务流程的建模和提升管理、生产效率是至关重要的。组织结构、工作流、过程建模等概念的提出,为描述组织单位业务流程提供了有力的工具,也使过程到组织的映射模型的建立成为可能。
工作流管理系统结构提供了组织管理功能,用于定义业务单位的组织架构和人员管理职责分配等工作。为工作流模型的定义和工作流的实例化、执行提供人力资源约束和支持。
4.3资源管理
资源是进行生产经营不可缺少的物资因素,在工作流的执行过程,必须得到企业资源的支持,相应的组织实体才能够按照要求完成活动。同时,工作流要保证将正确的信息和资源在正确的时刻以正确的方式送给正确的小组或成员。
工作流管理系统结构提供了资源管理功能,用于建立组织单位的资源模型,表示组织单位的资源结构和配置情况,描述组织单位各种资源对象之间的联系和关系,为工作流模型提供资源约束和支持。
4.4内部应用开发工具
工作流管理系统结构提供了图形化应用开发工具,用户可以使用图形化设计方法,开发出动态页面应用,其结果可保存为html或jsp或其他可直接调度执行的运用程序。这些内部应用程序具有数据库访问能力,能够访问或存储工作流相关数据和控制数据。在流程定义时流程开发人员可以直接设计并提供流程节点预调用。运行时用户可以在任务列表中直接调用,执行所需完成的工作。它的最大的优点是让开发人员避免了复杂业务处理应用程序的开发。
4.5数据窗口开发工具
工作流管理系统结构提供了图形化设计复杂报表页面的能力,可设计任意复杂的报表,并可画出各种统计分析图并能够使用多种形式输出。在流程定义时数据窗口开发工具就像内部应用开发工具一样可以由用户自行定义并提供流程节点预调用。当流程实例运用到指定节点时,用户可以直接调用该数据窗口以用户所需要的形式展现相关信息内容。
4.6工作流建模工具
工作流建模工具以工作流元模型为基础,通过分析不同类型的业务过程,采用有向图的方法对现实的业务活动进行形式化描述,建立业务过程到工作流模型的映射机制。对于建模工具而言一方面为用户提供了一个建立规范的业务过程的接口,另一方面,所建立的工作流过程可以存储于工作流库中作为工作流引擎的输入,投入运转、执行并接受监控。建模工具的主要包含以下功能:
提供建立工作流模型所需的各类基本元素,比如活动、子过程、连接弧等;
支持图形用户界面的基本操作,比如鼠标的点击与拖动;
提供用户定义各模型单元属性的对话框;
模型的保存与读取;
支持多层次建模;
与外部自动应用的接口;
4.7工作流模型库
工作流模型库主要用于保存和管理已定义完成的工作流模型。在工作流程启动时工作流引擎将直接加载并将其实例化,同时为工作流的流转提供基础模板。
5、运行控制功能
运行控制功能主要对工作流模型的定义进行解释,创建并控制过程的运行实例,调度过程的各种行为步骤,调用适当的人力、资源和应用程序以完成任务的执行。工作流管理系统的核心部件就是工作流管理控制软件——工作流引擎。工作流管理系统结构在这一层次的主要包括:工作流引擎和工作流监控管理2部分。
5.1工作流引擎
工作流引擎可以说是工作流管理系统的心脏。一个工作流管理系统通常可以包括一个或多个工作流引擎,不同工作流引擎通过协作共同执行工作流程。工作流引擎实际上是经营过程的任务调度器,在某种程度上还是资源的分配器。在采用工作流管理系统支持经营过程中,工作流引擎可以看成是一个业务操作系统BOS(BusinessOperatingSystem)。业务过程在她的管理、监控之下运行,因此工作流引擎的性能和可靠性就直接决定了业务过程的运行效率和安全性。
5.2工作流监控管理
系统管理与监控是工作流系统一个非常重要的功能。工作流系统管理与监控工具能够对工作流在整个组织内部的流动状况进行监视,并提供一系列的管理功能,实现安全性、过程控制和授权操作等方面的管理。它包括以下几个方面的功能:
1)建立、设置和优化组成工作流管理系统的各个软件。
2)对过程模型进行实例化。
3)将过程模型中的角色实例化。
4)将运行中的过程实例、活动实例和数据分发到各个工作流机中。
5)启动、挂起、恢复和终止过程实例。
6)管理正在执行的过程实例,并对正常结束或异常退出的过程实例的历史数据进行统计和分析。
6、运行交互接口
运行交互接口主要提供工作流管理系统与人员或应用程序工具的交互接口来处理各种活动步骤。交互接口对于活动间的控制传递是必须的,如确定过程的状态,调用应用程序工具,传递应用程序数据等。
7、结论
该工作流管理系统体系结构是作者深入研究了工作流管理联盟提供的工作流管理系统模型和各大主流工作流管理系统的基础上设计出来的。以该体系结构为基础作者领导开发了基于J2EE架构的新一代工作流管理系统UniFlow。UniFlow工作流管理系统目前已在电子政务中取得了广泛的运用。