梁科山, 唐 力, 曹玉君, 程 晨
(国防科技大学机电工程与自动化学院,湖南 长沙 410073)
信息技术的快速发展和制造的全球化,使得企业的产品开发方式发生了巨大的变化,复杂的产品设计任务往往由多个企业协作完成[1]。如何使企业间的信息、资源进行有序的工作,以充分提高工作效率,即协调跨企业的业务过程,是当前企业急需解决的一个问题。
目前,多数企业都引入了PDM系统,用其自带的工作流管理模块可实现企业的业务流程导航与监控。但这类工作流系统仅适于单个企业内部的业务过程的管理,对于针对上述的跨企业业务过程,还难以解决以下两个问题:1)产品开发总体企业无法对协作方的工作即进行有效监控;2)无法判断局部工作流的部分或轻微改变对于整个业务过程的影响范围,往往使得多个单位的工作需要重复。
由此看来,开展跨企业的工作流变更问题研究还是尤为必要。而目前针对工作流变更的研究都主要是在理论层面上的,而对于已有商业工作流系统,都不能直接利用这些方法有效处理[2-6]。
Qiu讨论了在PDM系统中处理动态工作流的变更问题,提出了对于Bypassable节点的处理办法,并在IBM公司的PDM产品SmarTeam中得到了初步应用,具有一定的实用性,但是其未讨论对于跨企业工作流变更的处理问题[7]。
因此,本文中提出了一种基于虚拟PDM的跨企业工作流管理系统,建立了基于有向图描述的跨企业工作流模型,支持基于商用PDM工作流管理系统与基于虚拟PDM的工作流管理系统之间业务流程的交互与管理,还可减少由于业务流程变更引起的重复工作问题。
图1 基于虚拟PDM的跨企业工作流工作过程
虚拟PDM是一类构建于通用PDM之上的PDM系统,其详细描述可见文献[8]。基于虚拟PDM的跨企业工作流管理系统,是集成了各协作方独立PDM的工作流管理系统建立起来的。其有两个层次,一个层次是运行于虚拟PDM中的工作流管理系统的总流程系统,另一个层次是由各PDM中工作流管理系统的分工作流系统或者子流程系统:
1) 虚拟PDM上建立的跨企业工作流程模型,主要由活动子过程与连接组成;
2) 各企业在其PDM中建立各自的工作流,完成总工作流中活动子过程定义的任务;
3) 跨企业工作流程中仅包含了开始、结束、空活动、活动子流程4类节点,这4类节点是不执行任何具有实际工作意义的活动,完成具体任务的工作流活动存在于各PDM中流程中;
4) 虚拟PDM中不保存各分工作流程描述数据,数据均是来自各PDM系统。
基于虚拟PDM的工作流处理跨企业的业务流程如图1所示。
1) 模型定义过程 在虚拟PDM中建立跨企业的总工作流模板,然后将活动子过程描述的任务发送到各PDM中,各PDM将依据该任务,在其PDM中建立或选择(已经建立过)工作流程模板,并向虚拟PDM发送状态回报,直到虚拟PDM获取所有PDM都已完成分流程模板的建立工作;
2) 实例化过程 在所有工作流模板都建立好之后(包括总流程模板和各分流程模板),总流程模板首先完成自身的实例化工作,然后再向各企业的PDM发送要求实例化的消息,通知依据建好的各分流程模板将各自实例化。各分流程实例化完成后,向虚拟PDM发送状态回报,直到虚拟PDM获知所有的PDM都已经完成分流程的实例化工作;
3) 执行过程 总流程首先启动开始执行,在执行到各活动子过程时,就会向对应的PDM发送消息,该消息中包含了要求启动信息和相关的数据。分工作流的则在其PDM中执行,完毕后,向虚拟PDM发送执行完毕的消息和相关的输出数据。虚拟PDM收到后,将总工作流中对应的活动子节点置为“Finished”,并查询后继活动子过程,将接收到的数据与启动信号封装,向后继节点发送,重复该过程,直到活动子过程都完成,总流程执行完毕。
为了在虚拟PDM中描述跨企业工作流系统,还需要对其建模。考虑到实际的工程应用中广泛采用了有向图建模,尤其是本研究中的各类实际应用的PDM系统。故本文中也采用了有向图并加以扩展的方式对跨企业的工作流进行建模[8]。
由于业务流程定义时缺乏知识或规范,导致后期工作流在执行过程中发生了异常时,必须对正在执行的工作流进行变更,以处理这些意外问题。
对于发生了变更的流程,其处理不是简单的停止旧工作流、启动新工作流,重要是如何对于在原有工作流中已完成而在新工作流中能继承的工作认定问题。因为重复工作会导致时间、费用的大幅度增加,造成产品设计周期的拉长,这对于跨企业的协同工作过程显得意义更为重要。
如图2所示,原有流程图2(a)中活动A0,A1,A2,A3,A4已经完成,活动A5处于正在执行状态,活动A6则尚未启动。当在A2与A3之间加入一个新活动A7,此时形成的新流程如图2(b)所示。对于新工作流中,正确的处理方式应为如图2(c)所示,重新执行的活动应从A2开始,而不是从A0开始执行。
图2 新工作流的工作继承
类似于图中A0、A1不需要在新流程中重新执行的工作流活动,称之为可略活动。
按照工作流变更发生源,可将跨企业工作流变更类型分为自下而上型的工作流变更和自上而下型的工作流变更。
1)自下而上的工作流变更
所谓自下而上型的工作流变更,是指工作流变更的发生源是下层各企业的分工作流发生了变更。这种变更表现在上层的虚拟PDM上,主要是某个活动子过程的输出数据发生了变化,引起了总工作流的变更。这时,总工作流只需按原有模板重新生成一个新的总工作流程实例,并判断可略活动,从相关节点开始执行。其处理过程为:
Step 1 某企业向虚拟PDM发送变更申请,并提交变更后的输出数据;
Step 2 虚拟PDM接收了企业提交的变更申请及数据,与原来的数据比较:如果无变化,忽略;如果数据发生了变化,执行下一步;
Step 3 如果判断活动子节点的输出数据发生了变化,虚拟PDM首先复制一套当前正在执行的工作流(包括各活动子过程的状态、任务、输入和输出数据等),并以接收到的数据替换;
Step 4 虚拟PDM在新的总工作流程中搜索可略活动,并标记为“Neglectable”;将已执行完毕,但又不是可略活动的,标记为“Enforced”
Step 5 虚拟PDM将未标记为“Enforced”的活动子节点和状态为“Running”的活动子节点状态复位为“Unreached”,并向其发送“重新开始”的消息;
Step 6 接收到“重新开始”消息的各企业PDM重新处理各自过程。
2) 自上而下的工作流变更
所谓自上而下型的工作流变更,是指工作流变更的发生源是虚拟PDM对于总工作流程发生变更引起的。自上而下的变更是工作流结构性变更,总工作流需要重新生成工作流模板并实例化新的工作流程来。
其处理过程为:
Step 1 虚拟PDM查询总工作流中状态为“Running”的活动子节点,向其发送暂停执行的消息;
Step 2 虚拟PDM复制旧的工作流模板,修改生成新的总工作流模板;
Step 3 初始化新工作流模板生成一个新的工作流实例来,并将原总工作流实例中已完成活动子过程数据付给新工作流实例;
Step 4 虚拟PDM在新的总工作流程中搜索可略活动,并标记为“Neglectable”;将已执行完毕,但又不是可略活动的,标记为“Enforced”;
Step 5 虚拟PDM将未标记为“Enforced”的活动子节点和状态为“Running”的活动子节点状态复位为“Unreached”,并向其发送“重新开始”的消息;
Step 6 接收到“重新开始”消息的各企业PDM重新处理各自过程。
成为可略活动首先需要具备以下两个条件:1)该活动在变更前后的工作流中未作改变;2)该可活动在旧工作流实例中已经执行完毕。然而,具备了上述两个条件并不能完全确定该活动是可忽略的,如在图1中的活动A4,虽然也具备了上述条件,但其在新工作流实例中仍然需要重新被执行一次。
一个活动Ai,其从开始节点s到该活动路径依次为{s,A0,A2, …,Ai-1},如果Ai要能成为可略活动,则其前面的节点A0,A2, …,Ai-1都是可略活动。
2.2.1 未修改活动的查找
活动的变化主要包括:
1)活动属性的改变;2)前后连接的改变。对于活动和连接的查找,是通过其id号实现的。考虑到变更后的新工作流与原有工作流变化并不是很大,所以我们在生成新工作流时采用的是“复制+修改”的方式进行的,这样,新工作流中的活动与连接与原有工作流中的活动与连接有相同的属性,这样可以较为容易地实现对应节点的比较,未修改的节点容易被查找出来。
2.2.2 完成活动识别
流程中已完成的活动是比较容易识别的,因为当活动完成时,其状态被置为“Finished”,通过其状态位可识别其是否被完成。
2.2.3 可略活动
具备了前两个性质的活动,我们通过下面的递归算法来判断其是否为可略活动。算法执行是从开始节点开始的,任何一个总工作流程,其开始节点都是可忽略活动。其算法过程如下:
本文探讨基于虚拟PDM的跨企业工作流管理系统是应用JAVA语言开发,开发工具则使用了Eclipse和GMF(Graphical Modeling Framework)。数据库则使用了Microsoft SQL Server2000,其框架结构采用了C/S和B/S结合的方式。
图3为虚拟PDM工作流启动后的监控窗口,图中红色框的活动子流程表示该对应的分流程在各企业的PDM中已经完成,蓝色框活动子流程表示该对应的分流程在各企业的PDM中正在进行。双击该任务或点击“浏览详细情况”,虚拟PDM将连接对应企业PDM,获取该活动子流程的详细结构图与各活动状态并在虚拟PDM客户端显示,如图4所示。图3中所示的活动子流程其在SmarTeam结构与状态如图5所示。
图3 虚拟PDM工作流监控
图4 子流程过程监控
图5 SmarTeam中的流程
图6和图7展示的是图3工作流经过变更和变更分析前后的界面。由于某种原因,原由A所完成的部分工作拆分为由A所和D所共同完成。产生新的工作流如图6所示。经过分析,系统认为“初步设计”、“总体设计”、“部件X详细设计”和“汇总”是可略节点,在新工作流中不需要重复完成,并将其状态自动标注为“已完成”,如图7所示,等待系统启动执行。
图6 工作流变更分析前
图7 变更分析后
工作流对企业的业务过程实现了导航与监控,是现代企业信息系统的关键技术。伴随随着经济全球化和Internet的普及,目前的工作流管理系统不再局限于单个企业内部的业务处理,还必须协调不同企业之间的工作活动。
但目前的PDM系统对于跨企业的业务流程处理显得无能为力,并不能对合作企业工作过程监控,使得跨企业的工作可控性较低。
本文通过虚拟PDM方法实现跨企业工作流管理,并着重探讨了跨企业工作流处理方法,集成了SmarTeam和Windchill两类的PDM系统,对其实现机制进行了详细描述,探讨了基于虚拟PDM的工作流变更处理方法和过程,给出了可略活动的递归判断算法,实现了该方法的应用。
[1]Li Jianqiang, Fan Yushun, Zhou Mengchu. Timing constraint workflow nets for workflow analysis [J].IEEE Transactions on Systems, Man, and Cybernetics-Part A:Systems and Humans, 2003, 33(2): 179-193.
[2]Casati F, Ceri S, Pernici B, et al, Workflow evolution [J].Data & Knowledge Engineering, 1998, 24: 211-238.
[3]Yamaguchi S, Ge Q W, Tanaka M. Performance evaluation on change time of dynamic workflow changes [J]. Transactions on Fundamentals of Electronics, Communications and Computer Sciences,2000, 83(11): 2177-2187.
[4]Ellis C, Keddara K, Rozenberg G. Dynamic change within workflow systems [C]//Proceedings of Conference on Organizational Computing Systems,1996: 10-18.
[5]Van Der Aalst W M P, Basten T. Inheritance of workflows: an approach to tackling problems related to change [J]. Theoretical Computer Science, 2002,270(1–2): 125-203.
[6]Reichert M, Dadam P. ADEPTflex-supporting dynamic changes of workflows without losing control [J].Journal of Intelligent Information Systems, 1998,10(2): 93-129.
[7]Qiu Z M, Wong Y S. Dynamic workflow change in PDM systems [J]. Computers in Industry, 2007, 58:453-463.
[8]Liang Keshan, Fan D P, Tang L, et al. VPDM-based product structure data exchange [C]//Proc. of 2010 International Conference on Computer Design and Applications, IEEE, QingHuangDao, China, 2010:408-411.