基于JBPM工作流公文流转系统研究与实现
2018-03-02杨志肖中杰
杨志+肖中杰
摘要:公文流转系统是电子政务系统的重要组成部分,在政府和企事业单位中得到了广泛的使用和普及。本文基于目前业界使用较为普遍的开源工作流引擎JBPM作为研究对象,针对高校的业务模式,提出了面向高校的公文流转系统,并将其应用到高校公文流转系统的开发中。首先,论文介绍了工作流的相关技术,然后研究了JBPM工作流引擎的开发机制,分析了高校公文流转系统的功能需求,并给出了系统主要设计方案,最后,基于JBPM工作流引擎以及高校的业务模式,实现了公文流转系统。该系统的实施提高了工作效率和办公自动化水平。
关键词:公文流转;工作流;JBPM;J2EE;办公自动化
O 引言
办公自动化系统已经成为提高日常办公效率、降低办公成本的重要技术手段。通过对常见办公自动化系统的对比研究发现,工作流技术己经发展成为办公自动化系统的核心技术之一。通过引入工作流技术,系统可以在复杂多变的工作模式、异构环境下提供良好的互操作性,从而提高系统的性能和健壮性。
通过比较常见的工作流引擎技术发现,以往的工作流开发结构中,往往采用“业务驱动”方式,造成业务代码和流程代码重复开发,并产生大量冗余代码,对于系统长期发展和维护十分不利,需要将业务过程和流程处理过程进行完全解耦合,如何提高代码的复用率,减小冗余代码,提高开发效率,是传统工作流开发中面临的重要问题。而JBPM具有灵活的流程定义语言和良好的数据库移植性,提供了很多预留接口,具有足够的弹性与良好的扩展性,非常适合商业应用的二次开发,在一些复杂流程的处理中有一定优势,已成为当前主流的工作流引擎技术。综合上述因素考虑,本论文结合高校现有公文流转的需求,采用JBPM 工作流引擎技术进行公文流转系统的开发,并实现了校内公文的正常流转。
1 JBPM工作流引擎
1.1 JBPM简介
JBPM是包括了业务流程管理、工作流、服务协作等一系列相关领域的开源的轻量级框架,其特点灵活、易扩展。同以往面向对象和面向切面编程的开发框架不同,JBPM是面向过程的框架,用于业务流程的管理,它使用自己的流程定义语言JPDL进行流程定义,较其他工作流产品通俗易懂,同时引擎底层基于Active Diagram模型,使用Hibemate作为持久层框架,可以配置到任何主流数据库如MySQL、Oracle等,数据库移植性好。
1.2 JBPM开发流程
其开发流程都是通过提供的Servlce类进行的,并由流程引擎ProcessEngine获得。开发流程如下:
①确定数据库。因为JBPM使用了Hibemate作为其OR-Mapping框架,所以可以选择任意Hibemate支持的数据库。数据库的初始化任务可由JBPM主动实现,也可通过antgenerate.ddl自动生成SQL语句。
②使用JPdl定义工作流,生成流程定义文件。流程定义文件包括 processdefinition.xml、processimage.jpg、gpd.xml。其中processdefinition.xml是工作流的流程定义文件,processimage.jpg为流程展示图片,gpd.xml为流程中各个节点坐标位置等信息的文件。
③使用Antcreate.pde生成pde包的丁作目录,使用antbuild.precess.archives生成pde包。
④使用Antdeploy.process.archives,将生成的pde部署到数据库。
⑤使用JBPM API接口开发相应的业务流程。
2 系统设计
2.1 系统流程设计
公文流转系统主要涉及到校发文、外来公文以及签呈几个业务流程的管理工作。每个业务流程涉及到拟稿、审批、流转、会签、意见等活动,以及拟稿人、单位负责人、公文管理员、校办、教代会、会签单位、校领导等角色。本文均以流程泳道图来表示。
①发文流程
发文流程分为六个阶段:由发文的承办单位拟稿人起草公文;经该单位负责领导复核后,公文提交至两办秘书科;秘书科发文管理员对公文进行初审;初审通过后,发文管理员对公文流转进行控制,可根据公文是否简明流程、是否涉及其他部处等选择发送给相关审批环节,其公文流转为星形结构,即以发文管理员为核心的“请求响应式”公文审批;经各环节审批通过后,发文管理员提交校领导签发;校领导签发完毕后,发文管理员进行校发公文的排版与发布。流程图如图1所示:
②收文流程
外来公文流转程序主要分为三个阶段:收文登记、拟办;领导批阅;部门反馈及归档。其典型流程描述为:收文管理员登记外来公文,录入公文标题、类别、文号等信息;两办主任提出拟办意见;收文管理员根据拟办意见,进行公文流转控制,传递给校领导批复或知会各单位及中层干部等;根据领导批复的意见,转相关单位,要求其进行反馈;公文流转完毕后,办结公文,进行归档。流程图如图2所示。
③签呈流程
签呈流程主要分为四个阶段:起草一主管部处审核一公文签批流转一相关部处反馈。具体流程为:各单位签呈拟稿人起草签呈并呈送单位负责人;单位负责人进行复核,审核通过后选择发送该事由的主管部处;主管部处审核通过后,呈送校办;校办的签呈管理员根据该事由的主管领导及主管部处的签署意见,选择请求相关校领导批示意见;批示完毕后,两办签呈管理员根据批示意见,选择发送签呈报送单位填写常委会讨论结果或者发送管理部门填写办理执行情况。流程图如图3所示。
2.2 系统架构设计
从技术层面来讲,公文流转系统采用Vaading+Struts+Spring+Hibemate的框架。Vaading是最近几年比较流行的一款用于創建RIA的优秀开发框架,它拥有丰富的UI界面组件库,先进的事件监听和数据绑定功能,并且有强大的CSS渲染功能,对前台开发提高效率起到了很大的作用。系统的业务逻辑层和数据层采用目前Web应用开发常见的Srping+Hibernate轻量级开源框架,由此来完成事务管理、持久化、面向切面的编程以及OR-Mapping等功能。公文流转的工作流引擎采用JBPM2.0框架,采用CAS实现SSO单点登录功能,基于OAuth2.0标准,实现对第三方系统的授权和认证。分层体系结构如图4所示。endprint
2.3 系统功能结构设计
公文流转系统包括工作配置系统、工作流监控系统、文件管理系统,其中监控系统中又包括短信子系统。工作流配置系统用来定义工作流程,通过流程监控系统来实现工作流引擎的管理,接收来自工作流配置系统中预定义的工作流配置数据,对于逾期未办理完成者,由系统发出短信通知。T作流监控系统以短信子系统为基础,流转公文到达办理人的通知是调用短信系统实现的。用户在收到短信后对公文进行处理,然后发送给下一步骤的办理人[8]。公文流转系统的功能层次如图5所示:
3 系统应用程序设计与实现
本公文流转项目总共有20个子项目,portal.oa.workflow為公文流转主工程。其他包括ws.rs.auth文档,与授权认证相关;ws.rs.oa,与用户、角色、组织结构等相关;data.tools实现批量导人数据工具;ftp.client ftp为客户端;signets.client为数字签名客户端;sms.client为短信客户端;support.jersey,封装webservlce框架;support.spring,封装Spring框架;support.vaadin,封装vaadin框架;tju.utils为基本工具包;tju.vaadin为vaading 工具包;ws.rs.client.oa为oa客户端;ws.rs.client.auth为客户端;ws.rs.common为通用工具包;ws.rs.exception封装异常信息;ws.rs.model封装model信息。其中项目 portal.oa.worktlow . ws.rs.auth、ws.rs.oa ,是核心的三个Web service应用,采用Jersy+Spring+Hibemate框架,提供Rest API接口,公文流转系统三层之间则通过基于Restful风格的WebServlce接口进行调用,所有资源请求首先需要使用HTTPS进行用户认证,认证方式为Basic HTTP accessauthentication[11]。调用流程如图6所示:
4 结束语
本论文以青海民族大学公文流转实际需求为开发背景,在对工作流理论进行了深入细致的研究的基础上,采用B/S架构及分层体系架构,设计和实现了以JBPM为工作流引擎,基于Vaadin/Struts/Spring/Hibernate架构的公文流转系统。目前,该系统已投入实际使用,系统运行稳定可靠,效果良好。结果表明,该系统能有效提高公文流转效率,提高学校办公自动化水平。endprint