技术监督系统中工作流回退策略的研究与实现

时间:2022-07-12 03:45:06

技术监督系统中工作流回退策略的研究与实现

摘要:针对当前电力企业总公司对分公司之间生产过程的跟踪监督,将工作流技术应于技术监督系统中,采用面向对象程序设计和面向切面编程思想,将Spring、Hibernate和JBPM三大框架进行整合,开发了适合企业实际应用的技术监督系统。对系统中出现的技术难点进行了深入剖析和研究,并提出了解决思路。实际应用表明,工作流技术在电力生产的跟踪督查过程中起到很好的作用,改变了以往信息交流不畅,部门之间相互推诿的情况,也为后来的业务流程再造提供了必要的基础支持。

关键词:工作流;业务流程;JBPM;回退

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)07-1667-03

电力技术监督系统主要是依据电力行业技术标准,总公司对子公司的水电生产情况进行跟踪督查。通过定期或不定期的跟踪督查发现子公司在生产过程中出现的问题并提出整改意见,子公司先将整改方案提交给总公司,由总公司审核,未通过审核则继续修改,直到审核通过再提交整改结果给总公司,总公司继续进行整改结果的审查,未通过则继续修改整改结果,直到通过为止。在以上信息传递的过程中,需要各级专业技术人员审核,最终才能生效,这样就不自觉地形成了工作流程。

当前、公司中现有的几乎系统没有认识到将工作流技术应用到技术监督系统中的必要性。这必然导致总公司和子公司之间的数据交换效率低下,并且现有程序的应用逻辑和业务过程逻辑相互融合,对软件的维护和升级都带来极大不便。另外,在公司的运作中,为了加强内部管理,公司建立了大量制度和审批手续,但层层审批、众多领导签字的制度,大大降低了企业的运行效率,也是推卸责任的最好方式,也给公司的绩效考核带来很大难度。

工作流是通过计算机软件进行定义、执行并监控的经营过程,而这种计算机软件就是工作流管理系统[1]。

该技术将工作活动分解成定义良好的任务、角色、规则和过程来完成执行和监控,达到提高生成组织水平和工作效率的目的。

1 技术监督系统业务流程模型

1.1 基于JBPM的技术监督系统业务流程的建模

JBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架[3]。

采用JBPM4的建模语言JPDL(JBoss JBPM Process Definition Language)和可视化的图形建模工具GPD(Graphical Process Designer)建立的公司业务模型如图1所示。

1.2 模型的正确性验证

一个工作流模型是正确的充分必要条件是[4]:

1)对于任何一个由S可达的状态M,都存在一个实施序列Seq可达状态E,S和E分别是初始和结束状态。

2)对于任何一个由S可达的状态M,如果此时在位置E中存在至少一个标记(token),该状态就是终止状态。终止时,该工作流网除了有一个标记在E位置中外,其他的位置都是空的。

3)没有死任务,也就是说工作流网是有活性的。

根据以上三个条件,对技术监督流程模型进行验证:

1)根据业务流程模型图看出,任何一个初始状态到结束状态,都可以经过一系列的库所变迁达到。例如:途中S为初始状态,E为终止状态,可得出有很多种组合的M序列可以实现这种流程。

最为简单直观的是在审批环节中均为“通过”,即:Seq = S发送整改意见提出(修改)整改方案审核整改方案提交(修改)整改结果审核整改结果E,若存在未通过审核情况,则返回至当前状态的上一状态,再通过Seq序列到达结束状态。

2)在模型图看出,终止状态为E。如果业务流程运转至该状态,则该库所中有一个token,其他库所中的token为空。

3)模型图中,各任务都是可触发可执行。

根据以上分析得出业务过程设计是合理的。

2 任务回退

定义业务流程以后,应用JBPM工作流引擎将按照定义好的流程顺序来驱动整个运行过程。但在实际应用中,存在这样一种情况,即:一个任务完成后,用户发现有不完善的地方需要修改,然而这时的任务以提交给下一个环节,用户就不能修改已提交的工作内容。基于这样一种应用场景,就需要工作流程在一定的环境下可以回退。

定义1:在业务流程序列中,当前活动状态为Sc,Sc的上一个活动(任务)Sp,若需要由当前活动状态Sc返回Sp,则称该操作为回退操作。

如图1中T1和T2所示,在提交整改方案后就进入审核整改方案状态,若需要再重新修改整改方案,就需要进行回退操作。

2.1 回退操作条件分析

在回退操作中,有其条件限制,主要有以下三个条件:

1)“已完成任务”的下一任务未进行提交;如任务序列(S1,S2,S3),设S1已提交,则进入S2,在S2未被提交前能回退到S1,若S2已被处理提交,则进入S3,就不能从S3回退到S1。

2)在当前流程实例中,只存在一个活动状态;如任务序列(S1,S2,S2’),设S1已提交,若进入两个并发任务S2和S2’,则不能进行回退操作,也就是只能存在一个活动状态。如图2所示。

3)在两个状态之间的转移不存在分支(Decision)节点或其他节点。

2.2 JBPM中回退操作的实现策略

根据回退操作的限制条件,要实现回退操作可以采用以下步骤:

1)使用业务流程建模工具建好业务流程模型图;

2)根据以上三种限制条件,分析出那些地方是能进行任务回退;再需要回退操作的地方设置回退功能。

3)提供用户访问接口,能顺利的取回已完成的任务。

2.3 回退操作实现算法

回退操作的实现,从本质上来讲,任务回退也是一种转移,如图1中T1和T2所示。即从当前任务返回到历史任务。其实现过程的算法如下:

1)在“提出/修改整改方案”转移到“审核整改方案”时,设置监听器,当发生转移时,监听器实现动态创建转移对象,将以前的“转移源”改为新的转移的目标。

1.获取当前流程实例execution

2.取得当前流程实例中处于活动状态的实例(Set actNames),并判断是否符合回退操作条件;

3.通过当前活动的名称取出当前活动的任务列表(List tasks);

4.获取要回退的历史任务(withdrawActivity),并将其删除(baseDao.delete(withdrawActivity));

5.完成当前任务,并执行回退操作。回退操作通过完成当前任务时传递回退路径来完成。

6.删除当前活动任务的历史痕迹(baseDao.delete(currentActivity));

7.删除与业务相关的数据。

3 实际应用分析

自技术监督系统在公司投入应用以来,主要功能满足了总公司对分公司生产情况的跟踪督查,提高了总公司和分公司之间文档传递的效率,节约了办公成本,取得了良好的使用效果,赢得了用户好评。

系统的优点主要表现在采用工作流技术,将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,提高了工作效率、更好的控制过程、有效管理业务流程。改变了企业以往以专业职能部门为中心的文档审核过程,而是以业务的“流程”为中心。

4 结束语

在企业内部网络的环境下,通过将整个工作流技术应用于系统之中,使企业中相应的人员都参与到流程中来,相关人员更多的是将自己的精力放在掌握企业业务流程上,重在掌握该流程中的业务知识,而不是专注于自己的职位,同时,在流程的运行过程中,流程在自动运行的过程中,会暴漏一些不必要的步骤,这对企业的经营效果起到很好的作用,业务企业的业务流程再造奠定基础,这也是未来的主要工作。

参考文献:

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

[2] 胡迎松,周立斌.柔性工作流管理系统建模与实现[J].网络安全技术与应用,2006(6).

[3] JBPM Designer 2.4.0.Final .中国Linux联盟.2012-12-02.

[4] 欧阳俊,杨贯中.基于对象Petri 网工作流建模的研究与实现[J].计算机工程与设计,2005(10).

上一篇:企业竞争信息检索系统的设计与实现 下一篇:基于SQL Server 编写过磅查询客户端