摘要:随着信息技术的深入发展,电子政务已成为信息化建设的重要领域。由于电子政务建设中软件费用支出巨大,本文提出了一个基于开源工作流引擎JBPM的电子政务系统的设计方案,该设计方案既能提高了电子政务系统性能,又能有效的节省软件开发的费用。
1 引言
所谓电子政务,是指各级政务部门利用现代信息技术,开展办公决策、业务处理和公 共服务等政务活动,提高工作效率、管理能力和服务水平的过程。近几年,随着国内信息化
建设速度的不断加快以及国家对电子政务工作重视程度的日渐加深,电子政务呈现出强劲的 发展势头[1]。
同时,工作流技术也发展迅速,商业和开源工作流产品相继推出。由于电子政务工程中 软件费用支出巨大,在不影响系统功能和性能的前提下,采用开源软件成为电子政务工程降
低成本的一个重要途径。而且,开源软件具有开放的特性,开源社区都在不断的努力提高开 源代码的可靠性,逐渐完善开源系统的质量。
本文在对比分析当今三大开源的工作流引擎的基础上,重点分析并研究了基于JBPM 构 建电子政务系统。基于JBPM
所设计的电子政务系统,既提高了政府的办公效率又降低了系 统开发的费用。
2 开源工作流引擎之间的比较
目前,在工作流领域,具有代表性的开源工作流产品有Shark、OSWorkflow 和JBPM。 在此对这三大工作流引擎进行分析比较,如表1。
通过对上表的分析可以得出:如果开发电子政务系统,JBPM 是最适用的开源工作流引 擎。因为相对于Shark,JBPM
更加灵活,而且以当前流行的Hibernate 作为它的持久层,这使它能在不同的数据库服务器上轻松部署并方便地进行管理,另外还有全面的文档;相对于
OSWorkflow,JBPM 更加简单,可以作为嵌入工作流,给了开发者更大的灵活性。同时,JBPM 系统最大的特色是使用自己的流程定义语言JPDL
来精确描述业务流程,过程建模结合了UML 活动图和状态图的知识,为用户提供了可视化的面向图形的编辑流程定义的方法,业务人员
能很直观的与软件进行交互,更好的发挥了电子政务系统的作用。
3 JBPM 剖析
JBPM,全称是Java Business Process Management,是基于J2EE 的轻量级工作流管理系
统[2]。JBPM 是公开源代码项目,它使用要遵循Apache License,可以免费应用于商业开发。
JBPM 在2004 年10 月18 日,发布了2.0 版本,并在同一天加入了JBoss,成为JBoss
企业 中间件平台的一个组成部分,它的名称也改成JBoss JBPM。JBPM 的系统结构如图2 所示。
由于JBPM 的图形化流程设计工具jbpm-designer 目前只是一个eclipse 插件,只能在
eclipse IDE 环境下使用,故在JBPM 开发中通常使用的是eclipse 开发环境。安装JBPM
很 简单,只需将文件jbpm-starters-kit-3.1.1\jbpm-designer\jbpm-gpd-feature\eclipse
拷贝到eclipse 安装目录的pulgins 目录下即可。如果安装成功,重启eclipse,就可在 Eclipse
的首选项里发现多了一个JBoss jBPM 。
JBPM 具体的开发流程如下: 1) 初始化数据库。 任何系统都需要数据库支持,jBPM 会把自己的一个初始化数据存
储到数据库,同时工作流的数据也是存储到数据库中的。jBPM 使用了Hibernate 做为自己 的存储层,因此只要是
Hibernate 支持的数据库,JBPM 也就支持。
本文所设计系统使用的 数据库是MySQL,故以MySQL 为例,简单介绍JBPM 数据库的初始化操作:
首先安装MySQL 和MySQL 客户端,安装MySQL 客户端是为了方便查看数据库中的数据; 接着在MySQL
中创建一个库并将下载的文件 jbpm-starters-kit-3.1.1 下的子目录 jbpm 改名为
jbpm.3;最后在DOS 窗口下进入jbpm-starters-kit-3.1.1\jbpm-db 子目录,执行
命令“ant mysql. scripts ”。若执行成功,会在bpm-starters-kit-3.1.1\jbpm-db\build\
mysql\ scripts 子目录中生成四个sql 文件。再在MySQL 客户端中的脚本界面执行 “mysql.create.sql”脚本,这样就在JBPM
库中创建了一个数据表。
2) 在Eclipse 中配置JBPM。进入Eclipse 的首选项中找到JBoss JBPM,指定
JBPM 的安装路径,目的是为了在Eclipse 找到JBPM 下的各种 jar 包,设置项目的JBPM
库引用。
3)新建JBPM 项目。进入Eclipse 的主菜单,依次点击文件、新建、项目、JBoss JBPM、
Process Project,取个项目名,点击完成即可。
4)设置Hibernate 的配置文件,主要是设定相关的数据库连接信息。以MySQL 为例,在 JBPM
项目中点击进入hibernate.cfg.xml 文件,其中做如下修改:
<!-- jdbc connection properties -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">******</property>
5) 添加库引用。为了连接JBPM 工作流引擎与Hibernate 持久层的通信,要将Hibernate
的Hibernate3.jar 包添加进JBPM 项目的库引用。而本系统使用了MySQL 数据库,故也要将
其JDBC 库添加进库引用,使用其他数据库与此类似。
6) 具体工作流的开发。使用JPDL 定义工作流,保存在processdefinition.xml 文件中。
流程定义法则参考JBPM 工作流开发指南[2]。
4 电子政务系统的设计与实现
本文采用工作流引擎JBPM作为政务系统的核心,利用Struts +Spring +Hibernate架构[3]
作为政务系统的框架,构建一个结构清晰、实用价廉的电子政务系统。系统架构如图3所示。
图中用户(User)负责以下工作:
(1)登录电子政务系统界面,使用流程定义工具(Modeling Tool)将要进行流程运行的 业务流程定义完整后发送业务请求到中央控制器(ActionServlet);
(2)在系统界面(System Interface)上查看本人所发起的业务流程的详细信息,包括到 达流程路线中各节点的时间以及各节点负责人的意见;
(3)通过系统界面(System Interface)读取由视图模块(JSP)传递出来的业务流程的 最终结果。
接着再分析电子政务系统架构图中其他组件的具体实现:
(1)表示层。在该系统架构中,表示层实际包含了Struts框架中的两个层次结构:控制层 和视图层。控制层是使用中央控制器(ActionServlet)和处理器(Action)实现,视图层
则是使用JSP实现。表示层中的处理器表单(ActionForm)本质上是一种JavaBean,是专门用
来传递表单数据的DTO(Data Transfer Object),它包括用于表单数据验证的validate()
方法和用于数据复位的reset()方法。在表示层的设计中,严格遵照MVC模式设计系统,页面中需要的数据均由控制层传递,用户提交的业务请求和数据都是通过控制层处理,访问合法
性判断、页面跳转、响应用户请求等工作也是由控制层完成;视图层负责显示模型的数据、 接受模型的数据更新通知更新视图、接受用户输入的数据传送给中央控制器和接受处理器处
理后的结果传送给系统界面,将控制层和视图层代码分离。表示层具体实现的流程如图4。
(2)业务层。业务层是电子政务系统的核心,负责处理繁琐复杂的日常事务和工作流 事务,并根据业务需求进行动态扩展,同时业务层还为表示层组件提供必要的接口服务,本
系统使用Spring管理bean的机制。具体的实现流程是:当业务请求流转到业务层时,模型层 (JavaBean、EJB)负责与工作流引擎(JBPM)连接,把业务请求传送到JBPM进行业务流转,
流程定义文件通过JBPM流程解析器解析进入工作流引擎的核心完成业务流转的具体实现。业 务流程实现后将结果返回模型层,模型层再返回给表示层中的Action。在JBPM流程运转中,
模型层还负责与持久层通信,实现对数据库中数据的调用。
(3)持久层。本文所描述的系统采用了轻量级O/R Mapping工具-Hibernate,进行数据 持久化的工作。实例中只要把对象的属性抽象出来,Hibernate就会根据映射文件自动将对
象映射到基于SQL的关系模型数据结构中去,则在使用JBPM的时候可以不用考虑数据持久化 操作的具体实现细节,而只专注于流程的设计,并且业务中需要保存和修改的信息都将会实
时的在数据库中更新,保证了整个数据系统数据一致。这些特性使Hibernate 为电子政务系 统提供良好的持久层支持环境。
5 结束语
本文创新点:JBPM系统的过程建模技术结合了UML活动图和状态图的技术,能实现并提 高电子政务系统的可视化设计,并且,作为当今市场上扩展性能最好的开源工作流引擎,为
电子政务系统的升级奠定了坚实的基础。故基于开源工作流引擎JBPM构建电子政务系统,既 节省了软件开发费用又提高了政务系统的性能。
|