《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 工作流技术及其在工程设计管理系统中的应用

工作流技术及其在工程设计管理系统中的应用

2009-09-27
作者:陈金水 薛海燕

  摘  要: 论述了工作流的相关概念、参考模型和分类,介绍了一个工作流技术支持的工程设计管理系统的实现,分析了工作流技术的优势。

  关键词: 工作流  管理系统  工程设计管理

 

  随着计算机的广泛应用,越来越多的工作依靠计算机而得以完成。与此同时,各种类型的信息系统也被广泛地使用以支持这些工作。由于这些系统基本上独立运行,相互之间缺乏必要的交互、协作与感知,所以,系统在协调多个人的活动及协同完成某个共同的任务方面存在严重不足。这也就是工作流管理系统(Workflow Management System,WfMS)自20世纪90年代以来引起来自研究机构与产业界广泛关注的重要原因。无论是生产系统的工作流,还是办公自动化和电子商务的工作流系统都为软件界所关注。工作流的概念是从生产和商务的过程(Process)概念演化而来。把工作活动分解为明确定义的任务(Tasks)、角色(Roles)、规则(Rules)和子过程(Procedures),通过它们对整个过程进行控制和调节。起初,整个过程都是由人来完成的。随着信息技术的发展,部分过程或全部过程已开始由计算机自动完成。

1  工作流介绍

1.1 相关概念

  工作流管理联盟(Workflow Management Coliation,WfMC)对工作流所作的定义是:工作流是指整个或局部商务过程的自动执行过程。在这个过程中,各种文本、信息和任务都根据设定的过程规则从一个人(地方)传送到另一个人(地方)。也就是说,工作流所要解决的主要问题是使多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者是促使此目标的实现。WfMS的作用就是将现实世界中的业务过程转化成某种计算机化的形式表示,并在此形式表示的驱动下完成工作流的执行和管理。工作流中的概念有:工作流模型、活动、过程实例等。

  (1)工作流模型(也称作过程定义):是业务过程的计算机化的形式表示。它定义的是过程运行中涉及到的各种参数,如业务过程的开始和终止条件、各个工作环节及相互之间的控制流动与数据流动关系等。

  (2)活动:是指工作流中的一个逻辑步骤或称环节。它既可以由计算机自动执行,也可以由人完成。它所含的信息包括:开始和结束条件;可参与到此环节中的用户;完成此活动所需的应用程序或数据以及关于此活动应如何完成的一些限制条件(如时间上的限制等)。

  (3)过程实例:是指某个工作流过程的一次执行。在实例的执行过程中,WfMS将解释相应的过程定义,生成有关的活动实例并根据过程定义中的控制规则协调这些活动实例之间的顺序关系,同时根据数据流动关系的定义完成活动实例之间的数据传送。一般情况下每一个活动实例都将表现为一个工作项(WorkItem),由某个或某组用户负责完成。

1.2 工作流参考模型

  一个庞大的商业过程往往要有许多实体的参与,且各个实体负责不同的工作。虽然各实体为一个自主的实体,其使用的工作流系统可能不一样,但是对于一个完整的商业过程来说,它们并不是孤立的。因为实体之间需要进行信息交换,需要相互协作才能完成整个商业过程。为了实现不同工作流系统之间的信息交换和协作,工作流管理联盟定义了工作流参考模型,图1描述了该模型的基本部件和基本接口。

 

 

  图1中的工作流系统有五个基本部件:

  (1)工作流定义工具。即提供一种描述工作流过程的软件,它把实际的过程步骤用图示化的方法或简单的文本描述出来,并产生或转化成规范的、可被计算机处理的形式化描述(过程定义)。

  (2)工作流执行服务(Workflow Enactment Service)。由一个或多个工作流引擎(Workflow Engine)组成,是工作流的核心,负责创建、管理和执行工作流实例。各种工作流应用通过工作流应用编程接口(Workflow API,WAPI)访问它。逻辑上它一共提供5个接口(图中的双向箭头表示接口),分别是:与过程定义模块的接口、与工作流客户端应用模块的接口、与管理和监视工作流工具的接口、与供调用的各种功能服务的接口以及与其他工作流系统的接口。工作流引擎是工作流实例提供运行时的执行环境。它解释过程定义,控制工作流实例的运行,根据工作流的定义和状态导航(Navigate)工作流,分派各种角色,维护工作流的控制数据及调用各种应用等。

  (3)供调用的应用(Invoked Application)。它是一些功能应用的集合,每一个应用可能负责完成工作流的某个子过程的执行或完成某项(些)任务。工作流引擎根据工作流的运行情况调用它们来完成工作流的执行。

  (4)工作流的客户应用(Workflow Client Application)。它可以通过工作列表访问(Worklist Access)接口访问工作列表(Worklist)库,而工作流引擎可以把工作(任务)分配到工作列表库而由用户去访问此列表库以接受分配给自己的任务。工作流客户应用部件在实现时是可选的,但在需要人参与完成工作流中某些非完全自动过程时应提供此应用。

  (5)工作流的管理和监视。负责管理监视工作流,包括用户管理、角色管理、运行记录、错误恢复、停止和删除工作流等。

  工作流执行服务与其他基本部件的接口统称为Workflow API(WAPI),为标准接口。这些标准接口对实现由不同厂家开发的工作流管理系统的互联与互操作性问题具有重要的意义。

1.3 工作流系统的分类与应用现状

  根据工作流过程本身的特点、系统建模的方式、所使用的底层支撑技术以及工作流过程的执行方式等的不同,文献[1]将现有的几百种具有工作流管理功能的商品化软件产品及原型系统进行了相应的分类,具体分类如下:

  (1)结构化的与即席的:结构化工作流指的是在实际工作过程中会反复重复、严格按照某个固定的步骤进行的业务过程。办公程序(如公文处理、审批等)都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作流程的,关于这类流程执行所需的有关参数(如参加者等)事先无法确定,必须推迟到过程实例运行时才能确定。同时在执行过程中还可能会发生一些意外的情况。

  (2)面向文档的与面向过程的:前者的侧重点是将电子形式的文档、图像等在有关人员之间进行分发,以便得到不同人员的处理与审阅。现有的文档管理与映象管理系统均属此类。在面向过程的WfMS中,工作流被描述成一系列执行环节,与各环节相应都存在待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去,如可以将数据对象的值作为控制条件或者依此数据对象组装成其他的数据对象等。

  (3)基于邮件的和基于数据库的:前者使用电子邮件来完成过程实例执行过程中消息的传递、数据的分发与事件的通知。在基于数据库的WfMS中,所有的数据都保存在某种类型的BMS中,过程的执行实际上就是对这些数据的查询与处理。

  (4)任务推动的与目标拉动的:前者指的是从过程开始处逐个环节地执行,当某个活动实例被处理完后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。这是目前大多数面向过程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流程被看成是一个目标。过程实例执行时,该目标将被分解为多个相互之间按一定约束条件关联起来的可执行的多个环节,其中各环节还可以作为子目标而进行进一步分解。在各环节均执行完毕之后,整个过程也就完成了。目标拉动是一种全新的执行方式,下一代的WfMS将具有此种特征。

  WfMS巨大的潜在市场和广阔的应用领域(例如办公、电子业务、协作研究、CIMS等)吸引了越来越多的科研机构与软件厂商投入到这方面的研究和开发中。据不完全统计,目前通用WfMS及具有工作流功能的系统已经有几百种之多,其中包括Action Workflow、Visual Workflow、FlowMark、Ultimus以及Inconcert等。国内目前也有不少单位在从事这方面的研究。

2 工作流技术支持的工程设计管理系统

  工程设计管理中设计图档的流转过程是一个典型的工作流过程,因此应用工作流技术来管理是非常合适的。

2.1 工程设计管理的特点

  工程设计管理系统实现了工程设计流程的计算机化与自动化管理。工程设计过程具有极强的流程特性。如图2所示,任何一个设计图档都要先经过设计,然后再进行校对、校核,最后审查、审定之后才能被采用并归档保存,其中任何一个环节出错都将导致设计图档的重新修改设计。设计图档流转过程中包含的活动有:设计、校对、校核、审查、审定、归档等,这些活动需要不同部门的参与。以作者参与的某水利工程设计为例,一个工程的设计过程中需要水文、水工、水电、水机、地质等不同部门的参与。

 

 

  随着工程的变化,设计过程中,有时会修改设计流程、增加或者减少业务环节,例如地质部门的勘测图档只需经过校对无误即可审定归档,省去了校核、审查二个业务环节。然而有的设计图档需要多个责任人进行多次反复审查之后才能进行审定,这就增加了多个业务环节。考虑到设计出的软件要具有通用性,能适应不同工程的需要,因此希望设计出的管理系统具有如下特点:

  (1)灵活性。表示系统能以最少的代价来适应和处理各种变化的过程,如能根据需要随时改变业务处理流程;

  (2)敏捷反应能力。表示系统能缩短业务处理过程的运转周期,提高处理的效率;

  (3)良好的可扩展能力。表示能方便地在系统中增加新的业务或删除已有业务,或者为已有的业务增加或删除一些处理功能。

2.2 系统结构

  从2.1节的分析中可看出,工程设计是一个典型的工作流处理过程,它有一个固定的处理模式,即工作流过程定义。每一种业务的处理均可由一个对应的过程定义来描述,每一个设计图档的处理就是该种业务的一个过程实例。该业务有多个处理步骤,它与工作流中的一项活动相对应,各项活动由不同的角色来完成。随着工程的变化,业务过程可能被修改,即修改工作流过程定义等。考虑这些特点,在构建工程设计管理系统时,可完全遵照工作流的思想对系统进行分析设计和实现。

  在设计系统时,出于各方面的考虑,没有选择商品化的工作流管理系统来做二次开发,而是采用数据库等技术自行开发一个工作流管理系统。如图3所示,该工作流管理系统有如下构成及功能:

 

  (1)一个执行服务。负责工作流过程的实例化、任务的分配、过程的调度等(通过解释过程定义脚本来完成),同时提供了一套角色管理与授权机制,以保障系统安全运行。

  (2)一个简单的过程定义工具。可以用来设置和修改业务的处理过程,过程描述采用一种自定义的简单的脚本语言。

  (3)一个管理监控工具。供工程设计单位和客户查询业务的处理工具,实现查询功能,使客户可以随时了解处理进度。同时工程设计单位使用该监控工具,可以动态改变业务的处理流程。

  (4)多个业务功能模块。如客户应用功能模块负责处理客户与系统之间的交互操作。随着业务过程的变化,可以随时增加功能模块。每一个功能模块中有一个任务列表(Task List),工作流执行服务通过该任务列表给各功能模块分配任务。工作人员登录进入某个功能模块后,可从任务列表选取任务,并按规定执行。

整个系统是以工作流执行服务为核心,由工作流执行服务中的工作流引擎来负责任务的调配工作。

2.3 系统的优点

  前面介绍了系统所需要具有的性能:灵活性、敏捷性与可扩展性。下面将分析基于工作流的方法是如何满足这些性能要求的。

  (1)灵活性。在工作流系统中,过程模型和组织模型是相互分离的,可以随时使用工作流定义功能模块改变工作流过程定义,从而改变业务的处理流程。同时,在一个业务过程实例的处理当中,可以通过管理和监控模块动态改变业务处理流程,这些均反应了系统具有很好的灵活性。

  (2)敏捷反应能力。从图3中可看出,系统是以工作流执行服务为核心来协调各个功能模块的处理活动。工作流执行服务可以很好地监控各个功能模块,对各项活动的分配与执行均有记录,可以避免部门之间的扯皮。同时也能方便地统计各项活动的处理时间,寻找瓶颈所在,从而根据出现的问题寻找解决办法。客户可以随时查询业务的处理状态并与相应部门联系。这些途径都能较好地提高系统的效率,提高业务处理的反应能力。

  (3)良好的可扩展能力。系统的灵活性是实现系统可扩展性的手段之一,因为可以使用工作流定义功能模块方便地修改业务的处理流程、增加新的处理业务或删除已有的业务。同时系统是以工作流执行服务为核心来协调各个功能模块的处理活动,因此系统是一个二级结构,这也是系统规模可扩展的重要手段。

实践证明,该系统的设计思想具有一定的参考价值,对开发类似的系统可起到一定的借鉴作用。

 

参考文献

1   史美林,杨光信,向勇等.WfMS:工作流管理系统.计算机学报,1999;22(3)

2   胡锦敏,张申生.支持企业动态联盟的敏捷工作流系统.计算机研究与发展,1999;36(12)

3   Workflow Management Coalition.Workflow Reference Model.WfMC-TC-1003.Http://www.wfmc.org

4   范玉顺,吴澄.工作流管理技术研究与产品现状及发展趋势.计算机集成制造系统-CIMS,2000;6(1)

5   罗海滨,范玉顺,吴澄.工作流技术综述.软件学报,2000;11(7)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。