当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于JBPM的电子政务系统的设计

摘要:随着信息技术的深入发展,电子政务已成为信息化建设的重要领域。由于电子政务建设中软件费用支出巨大,本文提出了一个基于开源工作流引擎JBPM的电子政务系统的设计方案,该设计方案既能提高了电子政务系统性能,又能有效的节省软件开发的费用。

1 引言

所谓电子政务,是指各级政务部门利用现代信息技术,开展办公决策、业务处理和公 共服务等政务活动,提高工作效率、管理能力和服务水平的过程。近几年,随着国内信息化 建设速度的不断加快以及国家对电子政务工作重视程度的日渐加深,电子政务呈现出强劲的 发展势头[1]。

同时,工作流技术也发展迅速,商业和开源工作流产品相继推出。由于电子政务工程中 软件费用支出巨大,在不影响系统功能和性能的前提下,采用开源软件成为电子政务工程降 低成本的一个重要途径。而且,开源软件具有开放的特性,开源社区都在不断的努力提高开 源代码的可靠性,逐渐完善开源系统的质量。

本文在对比分析当今三大开源的工作流引擎的基础上,重点分析并研究了基于JBPM 构 建电子政务系统。基于JBPM 所设计的电子政务系统,既提高了政府的办公效率又降低了系 统开发的费用。

2 开源工作流引擎之间的比较

目前,在工作流领域,具有代表性的开源工作流产品有Shark、OSWorkflow 和JBPM。 在此对这三大工作流引擎进行分析比较,如表1。

由于JBPM 的图形化流程设计工具jbpm-designer 目前只是一个eclipse 插件,只能在 eclipse IDE 环境下使用,故在JBPM 开发中通常使用的是eclipse 开发环境。安装JBPM 很 简单,只需将文件jbpm-STarters-kit-3.1.1jbpm-designerjbpm-gpd-featureeclipse 拷贝到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.1jbpm-db 子目录,执行 命令“ant mysql. scripts ”。若执行成功,会在bpm-starters-kit-3.1.1jbpm-dbbuild 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所示。
 

通过对上表的分析可以得出:如果开发电子政务系统,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.1jbpm-designerjbpm-gpd-featureeclipse 拷贝到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.1jbpm-db 子目录,执行 命令“ant mysql. scripts ”。若执行成功,会在bpm-starters-kit-3.1.1jbpm-dbbuild 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构建电子政务系统,既 节省了软件开发费用又提高了政务系统的性能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京——2024年5月13日 亚马逊云科技游戏行业专属解决方案和全托管无服务器架构助力上海所思互动信息科技有限责任公司(以下简称“所思科技”),成功打造爆款游戏《Party Animals》(中文名称《猛兽派对》)。亚马...

关键字: 服务器 数据库

科睿唯安《全球创新Top100》以该公司拥有的专利数据库为基础,根据“成功率”、“地域投资”、“影响力”、“稀缺性”四个评价维度对知识产权进行分析,评选出全球百强创新企业和机构。该评选从2012年开始每年实施一次,202...

关键字: 数据库 5G 人工智能

北京——2024年2月26日 日前,领先的IT市场研究和咨询公司IDC发布《IDC MarketScape:全球云计算和以应用为中心的市场供应商评估》1报告,亚马逊位列“领导者”类别。报告指出,“亚马逊云科技Market...

关键字: 云计算 数据库 存储

北京——2023年12月27日 在2023亚马逊云科技re:Invent全球大会上,亚马逊云科技表彰了在过去一年中,利用亚马逊云科技的技术和服务在推动客户创新及解决方案构建方面做出杰出贡献的卓越合作伙伴。8家亚马逊云科技...

关键字: 数智化转型 机器学习 数据库

北京——2023年12月7日 亚马逊云科技在2023 re:Invent全球大会上,宣布推出三项新的无服务器服务创新,涵盖了数据库和分析领域,使客户能够更快速、更轻松地扩展他们的数据基础设施,以支持最具挑战性的应用场景。...

关键字: 服务器 人工智能 数据库

北京——2023年12月4日 亚马逊云科技在2023 re:Invent全球大会上,宣布推出一系列新的集成解决方案,旨在帮助客户迅速而轻松地连接和分析数据,而无需构建和管理复杂的提取、转换和加载(ETL)数据管道。通过全...

关键字: 数据存储 数据库 人工智能

北京——2023年11月13日 亚马逊云科技携手凯捷(Capgemini)中国共同发布《汽车行业可持续发展白皮书》(以下简称《白皮书》),并助力凯捷中国推出碳排放管理平台,致力于以数智化方式帮助车企解决在实践可持续发展过...

关键字: 数据库 机器学习 电动汽车

11月1日,由开放原子开源基金会主办,电子科技大学承办,深圳市腾讯计算机系统有限公司提供战略合作支持的2023年开放原子校源行(成都站)活动在电子科技大学圆满举行。本次活动以“聚缘于校,开源共行”为主题,将四川省在信息技...

关键字: 开源模式 操作系统 数据库

11月1日,2023杭州云栖大会上,阿里云瑶池数据库宣布已全面实现Serverless化,并接入通义等大模型能力,大幅提升数据库一站式及智能化水平。同时,PolarDB Always On系列推出3大重磅升级,首个数据智...

关键字: Serverless AI 阿里云 数据库

北京2023年9月8日 /美通社/ -- 日前,"云融数智 创领未来"2023浪潮云海云图生态峰会产品技术伙伴专场在北京成功举办。来自开源基金会、云安全、PaaS、数据库服务、容灾备份等领域的头部领先...

关键字: 云安全 私有云 数据库 NI
关闭
关闭