《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 水利设计图档的工作流管理及实现技术
水利设计图档的工作流管理及实现技术
薛海燕 于永玲
郑州航空工业管理学院计算机科学系(450000)
摘要: 提出利用基于有向图的工作流模型来管理图档的动态流转过程,给出了利用Visio作为建模工具快速建立工作流模型的实现过程。
关键词: 工作流模型
Abstract:
Key words :

摘   要: 提出利用基于有向图的工作流模型来管理图档的动态流转过程,给出了利用Visio作为建模工具快速建立工作流模型的实现过程。
关键词: 水利工程设计  工作流  工作流模型  Visio

  在水利工程设计项目中,大量设计图档需要经过校对、校验、审查、审定、归档等一系列的流程。对图档设计流程的有效管理是提高工程进度的一个关键因素。目前图档的设计流程是通过手工完成的,而手工管理图档不仅效率低,且难以实现诸如版本管理、设计流程跟踪等工程设计中必须解决的问题。为了实现水利工程设计流程的自动化,人们采用了许多办法,如利用现有的办公自动化软件,或者采用为特定部门开发的专用图档管理系统,但是仍然存在问题。前者仅仅在设计和保存这一小部分实现自动化,根本没有实现对流程的自动化控制;后者的专用性太强,不能灵活定义设计流程以满足不同工程、不同项目的要求。
  工作流管理技术致力于业务流程的自动化。由于可降低成本和流程执行时间,提高工作效率,所以被业界广泛使用并迅速发展。其最大的特点是可以方便地描述业务流程,并对业务的实施进行监控。这一特点恰恰解决了当前水利设计图档管理中所存在的问题。本文提出一种基于工作流管理技术的水利设计图档动态管理模型。该模型不仅使得设计流程自动化,而且用户可以根据实际需要灵活地制定任意的设计流程,实现设计流程之间的无缝连接,缩短设计周期。
1  工作流管理
1.1 工作流的有关定义
  近年来,不同的研究者对工作流分别提出了不同的定义,它们分别从不同的角度对工作流概念进行了描述,使人们对工作流的一些基本特征有了一定的理解。这里列举如下二种:
  (1)工作流管理联盟的定义
工作流是一类能够完全或者部分自动执行的经营过程。它根据一系列过程、规则、文档、信息或任务在不同的执行者之间进行传递与执行。
  (2)W.M.P. Van der Aalst 的定义
  工作流是一切工作的偏序集,工作的序列可以有多种方式,例如工作X与Y,满足X<Y,当且仅当X在Y开始之前已经就绪。
  以上这些对工作流的定义虽然表达方式略有不同,但都说明了一个问题,即工作流是经营过程的一个计算机实现,而工作流管理系统则是这一实现的软件环境。
  工作流管理联盟给出的工作流管理系统的定义是:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。
  工作流管理系统在实际系统中的应用一般分为三个阶段,即模型建立阶段、模型实例化阶段和模型执行阶段。图1给出了工作流管理系统应用的三个阶段。

  由图1 可以看出,在工作流管理系统中工作流建模是最基础也是最核心的模块之一,为系统提供了描述实际业务流程的方法、数据和信息,是实施工作流管理系统中其他部分的前提。
1.2 工作流建模
  工作流建模对现实世界中的业务流程进行分析,将之抽象为能被计算机处理的模型。这一模型中包括工作流的一系列活动、活动之间的逻辑关系、工作流参与者、可能被调用的应用以及所有与工作流相关的数据。其中工作流活动指的是业务流程中的每一个业务环节,工作流活动和活动之间的逻辑关系组成了工作流模型的核心部分。这样,在进行工作流活动的定义时,需要指明活动拥有的转换条件、实施工作流的组织实体、需要激活的应用程序等相关数据。图2为工作流管理联盟定义的工作流活动元模型。

  目前,工作流管理领域中存在多种不同的建模方法,常用的建模方法可以归纳为5大类:脚本语言、基于有向图的方法、基于规则的方法、基于逻辑的方法和代数方法。针对不同的建模方法所生成的工作流模型表现形式也不同,可以表现为文字形式、图形形式或者一种形式化的语言符号等。
  (1)脚本语言
  脚本语言中有描述控制流和数据流的语句结构,它提供了一种简明的描述方法,对于有经验的设计者来说更易于使用。它的主要缺点是缺乏流程本身的形式化语义。语言的语义主要是供语言解释器使用。
  (2)基于有向图的方法
  使用状态变迁图,流程中的活动用节点表示,控制流用边表示。该方法的主要问题在于是否有形式化的语义。在具有形式化语义的状态变迁图中,使用最多的是Petri网和状态图。具有形式化语义的基于有向图的方法可以转换成其他建模方法,如基于规则的、时序逻辑的和脚本语言的方法。
  (3)基于规则的方法
  目前使用最多的是ECA规则。ECA规则最早用于AOODBS,而后被用于工作流管理领域。它具有形式化基础,也可转换为其他建模方法,如Petri网、时序逻辑等。但ECA规则的可视化工作量较大,且当规则集较大时难以管理。
  (4)基于逻辑的方法
  该方法适合于描述系统的动态性,其中时序逻辑是一种常用的方法,它具有很好的形式化基础,验证工作流模型的属性比较方便。缺点是很难实现可视化,不容易转换成其他描述方法,描述业务流程的系统行为太复杂。
  (5)基于代数的方法
  代数过程(process algebra)目前还局限在理论探讨上,只有一种基于过程代数的描述语言LOTOS被用于工作流管理领域。代数方法的主要缺点类似于基于逻辑的方法,并且在自动执行和形式化验证方面表现得比基于逻辑的方法更差,建模方法缺乏直观性,难以理解。
  由以上分析可知,各种建模方法各有优缺点。总体上,基于有向图的建模方法简单直观、容易理解,尤其适用于流程较为固定、异常情况较少的工作流,因而比较具有吸引力。一个完整的工作流过程由一个无自环的有向图构成。有向图中的节点表示可执行的步骤或任务,节点间的有向弧代表了节点间的逻辑关系。
2  水利设计图档工作流管理
2.1 水利图档设计流程
  水利设计图档工作流管理是指对图档的设计、校对、校核、审查、审定、修改、归档等一系列流转操作的总称。这里称每一个操作为一个工作流活动节点。如图3所示,单个设计图档的流转过程相对比较简单固定,且流转过程中各活动节点之间属于松散耦合结构,活动节点之间没有严格的约束关系,仅以时序关系约束为主。
 

  因此,在水利设计图档工作流管理中,应采用基于有向图的建模方法,将一系列的活动及其之间的时序关系直观地映射成一个由节点和有向弧组成的有向图。有向图中的节点表示一个可执行的活动,连接2个节点的有向弧表示活动之间的时序关系,可定义如下:
  (1)有向图G=(N,L)为一个二元组,N={n1,n2,……nr}是节点的集合;L={l1,l2,……ls}是有向弧的集合,其中li=(nj,nk)为从节点nj到节点nk的有向弧,nj,nk∈N。
  (2)对于ni,nj∈N,若有l=(ni,nj)∈L,则ni为nj的一个前驱节点,nj为ni的一个后继节点。
  (3)节点状态。对于n∈N,有状态函数State(n)={0,1,2},当节点n处于未执行状态时,State(n)=0;当节点n处于正在执行状态时,State(n)=1;当节点n处于完成执行状态时,State(n)=2。初始时刻,对任意n,State(n)=0。
  (4)推进规则。有向图的推进规则由节点状态的改变和有向弧发生转移二个因素决定。其步骤为:
  ①首先激活起始节点,假设为n1,并将节点状态State (n1)置为2。
  ②当节点ni执行完毕,节点状态State(ni)=2时,搜索节点ni的所有后继节点,并根据节点ni的完成情况选择出将要被激活的后继节点(可以是一个,也可以是多个)。这里假设将要被激活的后继节点为nj。
  ③将节点nj的节点状态State(ni)置为1,然后,进行有向弧(ni,nj)的转移,将执行权从节点ni 转移到节点nj上,开始执行节点 nj。反复执行②,③,直至整个流程完成。
2.2  利用Visio进行建模
  目前,基于有向图的建模工具大多是用户自己从头开发的,这种自制的工具往往使用不灵活、不方便,对用户的操作有很大限制。而且,现有建模工具不便于对复杂流程的建模。另外,这种建模工具对所建模型难以实现驱动,往往流于形式。综上所述,本文力求找到一种建模工具,不仅使用方便,能够处理复杂流程,而且最重要的是能够对所建模型进行开发使用。
  Visio是一种用于建模的工具,通过组合Microsoft Visio绘图和程序来实现现实世界的模型化。和现有的工作流建模工具相比,利用Visio建模的优点在于:
  (1)极大地缩短开发时间。开发人员不需要从头开发所有功能,使用在内置产品中的现有功能即可实现工作流建模,这使得开发人员可以将精力放在工作流引擎的研究与开发上。
  (2)建模过程简单、清晰,用户可以方便地画出类型各异、线条流畅的图形。
  (3)开发人员还可以编写程序来控制图形以及绘图过程。程序可以帮助创建绘图、分析绘图,或者在绘图和外部数据源之间传输信息。自定义程序可以使用任意一种支持将Automation作为客户的编程语言来编写,例如VBA、VB或C++等。
  (4)Visio绘图与数据库可以同步,提高了开发模型的灵活性。开发人员可以从Visio图形中自动提取数据保存到数据库中,也可以从外部数据创建图形。
3  应用实例
  现在以一个水利设计项目为实例来详细说明利用Visio建模的具体过程。
  (1)根据实际需要创建流程图模板
  流程图模板中包含水利设计中常用的活动节点,如设计、校对、审定、归档等主图形。拖动主图形到绘图页即可生成相应图形。在创建主图形时,根据工作流管理联盟定义的活动元模型,为它们添加自定义属性,如活动的起止日期、活动的参与人员、活动需要激活的应用程序、活动的状态等,如图4所示。

  (2)利用流程图模板画出所需流程图
  流程图中的节点分为三种节点:开始节点、活动节点和结束节点。活动节点代表的是业务流程中的原子级活动环节,对应于实际的操作。活动的执行者可以是一段程序,也可以是某一个人。工作流模型并不负责活动的执行,而是密切监视活动状态的变化。开始节点是一个业务过程开始的标志,开始节点并不对应实际的操作。每一个工作流过程有且仅有一个开始节点。结束节点是一个业务过程结束的标志,它并不对应实际的操作。每一个工作流过程有且仅有一个结束节点。
流程图中的有向弧用来定义二个活动之间的执行顺序。当有向弧的起始节点执行完毕后,工作流管理系统根据流程推进规则进行活动导航,使有向弧的终止节点能够被执行。
  (3)将流程图中的属性信息导出到数据库中
   这时建模工作已经完成,与之对应的数据库也同样能够反映整个流程。开发人员既可以直接对流程图进行推进,也可以基于结构化的关系数据库进行操作,以降低开发应用的难度。
4  结束语
  工作流是办公自动化、并行工程、经营过程重构等研究领域的热点技术。本文针对水利设计项目提出的基于有向图的工作流模型实现了对简单流程的快速建模。利用Visio建模的方法,还可以实现对复杂流程的描述,例如,利用UML中的活动图(Activity Diagram)可以实现多个约束条件的相与、相或、异或等操作,具有极大的实用价值。
参考文献
1   罗海滨,范玉顺,吴澄.工作流技术综述.软件学报,2000;11(7)
2   董章震,潘捷.工作流建模工具.计算机辅助设计与制造,2002;(1)
3   汪涛,黄力芹,吴耿峰.工作流管理的发展历程与趋势.计算 机工程与科学,2001;23(1)
4   奚伟,周羽.基于工作流的过程文档动态管理模型.清华大学 学报,2001;41(10)
5   范玉顺.工作流管理技术基础.北京:清华大学出版社,2001
6   Microsoft公司.开发Microsoft Visio解决方案.北京:北京大 学出版社,2002

此内容为AET网站原创,未经授权禁止转载。