当前位置:首页 期刊杂志

工作流引擎平台的设计和实现

时间:2024-05-19

龚剑云 汤建农 陈小磊 李福军

摘 要 本文介绍工作流引擎的设计思路和实现方法。通过J2EE开发平台,提供一套完整的工作流引擎机制,实现可视化的流程设计器、任务分发和签审、流程自动流转、工作流跟踪监控和查询追溯。

关键词 工作流引擎;可视化;任务

中图分类号 TP3 文献标识码 A 文章编号 2095-6363(2017)15-0106-02

工作流引擎平台是软件系统协同办公平台的血脉,是连接并打通其他各个应用模块之间协同的关键所在。本系统参照工作流管理联盟(WfMC)提出的工作流模型和五大接口标准,基于J2EE开发平台自主研发而成。方便用户快速构建符合自己企业规则的各类流程,支撑企业的规范化管理。

1 软件目标

1)提供可视化的流程图设计器,方便用户快速完成结构清晰层级分明的各类企业流程设计,并用直观的流程图展示,方便用户维护。

2)将业务系统的用户、角色和权限整合到工作流引擎中,将业务流程的流向过程整合到流程模型中,实现流程跟踪、监控、管理、调度、优化和查询统计等功能。

3)提供一套完整的工作流引擎机制,实现平稳、快速、准确无误地控制流程流转、任务自动分发和跟踪、审批内容提交和管控、审批信息表达和跟踪、审批过程中事务处理、流程发起/挂起/恢复/终止。

4)提供一套易用、易维护、可扩展的工作流引擎平台。

5)提供一套与其他应用程序或软件系统具备良好交互性能的工作流引擎平台,支持ORACLE/SQL SERVER等常用数据库,支持JAVA语言开发的软件系统。

2 实现方法

2.1 平台架构

采用JAVA语言,ORACLE数据库技术,基于J2EE开发平台开发的三层架构。

存储端——部署在企业服务器。ORACLE数据库用于存储工作流引擎平台结构化的数据。文件存储器用于存储图文档。

服务端——部署在企业服务器。应用服务处理平台业务逻辑、相关数据存取结构和存取地址;处理ORACLE数据库的创建和关联,表和记录的增删改功能,系统数据之间的关联关系,各表和记录之间的关联关系。文件服务处理文件相关的业务逻辑和文件保存、获取和删除等功能。

客户端——部署在用户的PC机。通过工作流引擎,提供工作流程、任务箱、接口、查询统计四大模块。用户通过四大模块的功能,实现信息化签审和管理等。

2.2 软件模块

将业务流程的工作环节、过程、控制思路等提炼成软件四大模块。工作流引擎内含流程图绘制器、工作流解释器、事件处理器、状态管理器、内容分级管理器和接口管理器,通过这些技术实现工作流平稳、准确无误地运转。

2.2.1 工作流程模块

通过可视化的流程图设计器,实现流程模板图的快速定制。通过数据库和文件管理技术,实现流程模板图的增删改等维护管理。

1)将企业业务流程的各个环节和过程提炼为11种软件元件模型,开始元件、设计任务元件、更改任务元件、审批任务元件、会签任务元件、归档任务元件、文件分发任务元件、子流程元件、与节点元件、或节点元件、连接弧元件和结束元件。2)根据业务信息,定义每个元件包含的属性信息,并将其保存到模型中。同时系统也会将这些元件信息提取到数据库中保存,方便查询检索使用。3)将业务中的组(部门)、角色、人员融合到元件模型中,可以在模型中预设定任务的执行者。4)通过元件模型和事件处理器,将业务流程的流向和控制逻辑融合到流程图模型中,并应用工作流解释器检查流向和控制逻辑是否合理,确保流程图是完整可行的。5)提供可视化的流程图设计器,提供鼠标快捷操作,方便快速绘制各类业务流程的流程模型图。6)通过可视化的流程图设计器,用户可以快速建立企业需要的各类工作流程。用户通过“与节点”元件、“或节点”元件和“连接弧”元件控制流程图的流向和流转条件,适用各类复杂流程。7)为了获得结构清晰层次分明的流程图,用户可以使用“子流程”元件,“子流程”元件可以一级一级查看流程图。这样避免复杂流程中分支过多,元件过多,避免出现“蜘蛛网”的现象。8)用户设计的每个流程模板图都可以分类保存到系统中,以供后续调用、更改、删除等维护管理方面的操作应用。

2.2.2 任务箱模块

通过工作流解释器,实现任务审批、任务自动分发、触发任务事件、任务状态控制和管理、流程自动流转、工作流跟踪和监控。

1)任务箱分为待做任务和跟踪任务,方便用户快速了解需审批的任务信息和任务状态。对于每个任务,可以查看跟踪任务各个层级的审批內容列表、关联的流程图、任务所在流程的完成情况记录、当前状态和历史信息,方便用户了解当前任务的详细信息。2)为了应对企业突发状况,下一级任务执行人员除了可以在流程模板图中预设定,也可以在任务执行过程中批量设定。当级任务可以批量转移或委托给他人。对于一些无效或作废流程,流程发起人可以挂起、终止、恢复流程。3)工作流解释器将任务执行过程中的设置,更新到流程图中,然后根据流程图来实现自动分发任务和控制流程流转。4)任务签审过程中,签审员除了明确表示批准和拒绝之外,还可以添加带有建议或意见等描述性语言。5)提供事件处理器,按照流程执行阶段和任务状态,触发预设定的事件,比如审批内容的加锁解锁等。这些事件可以在流程模板图中预设定,也可以在流程执行过程中设定。6)任务的签审信息和流程的流转过程信息,除了体现在流程图中,系统也会将其自动保存到数据库中,方便用户检索和统计。7)对于正在审批的流程,可以通过待做任务和跟踪任务进行跟踪维护。对于已经关闭的流程,用户可以在任务箱中查询历史流程,获取流程的所有信息,以供参考。

2.2.3 接口模块

提供一套基于JAVA语言的接口程序,实现和其他软件应用程序或软件系统之间的交互,比如在整车性能设计计算分析平台中的流程发起、流程属性查看等功能。

为了实现和其他应用程序或软件系统的交互,提供大量的接口,具体为:获取流程模板图接口,流程的发起、挂起、终止等流程操作接口,流程属性更改和存取接口,流程状态更改和存取接口,流程审批内容更改和存取接口,任务签审信息查询接口,流程历史信息查询接口等。

2.2.4 查询统计模块

提供基于数据库技术的查询统计功能。1)提供根据流程属性、状态、内容、时间等信息快速查询流程或者任务的功能。2)根据查询的流程或者任务,能够追溯到它的所有信息,包括历史信息。3)可以针对查询结果的不同属性信息或者审批内容信息,进行分门别类的统计,并且提供统计报表。

3 结论

通过JAVA语言、数据库、可视化等技术,实现一套易用、易维护、易扩展、易集成的工作流引擎平台,方便用户制定各类企业流程,实现平稳快速流转,支撑企业规范化、信息电子化的流程审批和管理。

参考文献

[1]Cay S. Horstmann,Gary Cornell.JAVA核心技术卷2[M].北京:机械工业出版社,2014.

[2]BruceEckel.JAVA编程思想[M].北京:机械工业出版社,2017.

[3]耿祥义,张跃平.JAVA设计模式[M].北京:清华大学出版社,2009.

[4]工作流管理联盟.工作流管理联盟工作流标准.endprint

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!