基于工作流引擎的企业信息系统研究
2012-07-12谢英辉
谢英辉
(长沙民政职业技术学院,湖南长沙410004)
一、引言
工作流从英文单词workflow而来,是工作work和流动flow的组合,是一种能够被计算机解释和执行的反映经营过程业务流动的计算机化模型,提出的目的是通过将工作分解为定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低工作成本、提高企业竞争力的目的。工作流引擎是指工作流作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级的核心解决方案。而办公自动化系统就是要使得企业从传统的办公模式中解放出来,大大提高企业的工作效率和生产效率。基于工作流引擎的办公自动化系统研究能使企业达到提高工作效率和生产效率的目标,通过对工流技术JBPM的应用和改进,设计出的办公自动化系统在实际应用中得到了很好的效果。
二、采用基于工作流技术的信息管理系统的优势和必要性
workflow对于已经有传统管理软件的企业的作用非常明显,可以籍此平台整合企业的各种应用系统,使之成为一个完整的企业级应用,也就是通常所说的EAI。还可以根据企业的需要开发解决信息传递问题的流程以及帮助企业开发与现有应用系统的接口,工作流管理系统与企业传统信息系统相比有很多的优势,主要体现在[3]:
(1)能降低劳动强度,提高企业经营效率,以便集中精力处理核心业务。
(2)缩短运营周期,减少人为差错,从而提高劳动生产率。
(3)新员工可以迅速适应系统,易学易会易用。
(4)可以实现对文件、消息及任务的轻易追踪,从而易于发现流程瓶颈。
(5)随时随地办公,实现事务处理零响应。
(6)灵活地更改任何流程而无需改变系统的其他部分
在当今企业竞争日益激烈的社会,在工作效率决定企业的生命力的时候,工作流信息系统的采用势在必行。
三、基于工作流信息系统的设计与实现
(一)采用的工作流引擎
该系统采用工作流引擎JBPM,全称是Java Business Process Management(业务流程管理),覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架,是一种基于J2EE的轻量级工作流管理系统。BPM是公开源代码项目,在使用时遵循Apache License。工作流业务流程管理技术是基于SOA技术实现的一个核心部分。使用工作流能够在软件开发和业务两个层次受益,使用Hibernate来管理数据库。基于JBPM的总体解决方案如图1所示。具体实现如下:
(1)安装jBPM与创建工作流数据库表
下载 JBoss jBPM Starters Kit并解压缩,将jbpm-starters-kit-3.1.1下的子目录jbpm改名为jbpm.3,在Dos窗口中进入解压缩目录下的jbpm-db目录,在 dos窗口中运行 ant mssql.scripts,在 E:softwarejbpm-starters-kit-3.1.4jbpm-dbuildmssql目录下产生一个 scripts文件夹即:jbpm-starters-kit-3.1.4jbpm-dbuildmssqlscripts,该文件夹下生成了mssql.clean.sql、mssql.create.sql、mssql.drop.create.sql、mssql.drop.sql;在SQlserver的新建查询下运行mssql.create.sql文件中的语句,创建工作流数据库表[4]。
(2)安装jBPM的Eclipse开发插件
把 e:jbpm-starters-kit-3.1.1jbpm-designerjbpm-gpd-featureeclipse目录下的插件文件分别复制进eclipse安装目录下的features和plugins子目录中;把lib目录下的jbpm工作流开发所需jar包复制进web工程目录下的lib目录下。
(3)定义流程
按业务需要定义工作流流程,此处列举出请假流程的定义,编写流程的定义文件processdefinition.xml,核心代码如下。
(4)结合ssh框架编码实现以上流程
按照以上流程文件的配置结合ssh框架编码实现,代码略,至此就实现了jbpm工作流引擎在项目中的引用。
(二)总体框架设计
系统采用J2EE技术平台开发,采用Struts、Spring和Hibernate三大框架相结合的SSH框架开发。采用Myeclipse作为开发工具,系统总体框架图如图2所示。
(四)系统功能框架设计
系统分为四层,分别为UI层,借助Struts实现;业务层,借助SpringFrame work进行业务组件的组装关联;数据持久层,借助Hibernate实现;域对象层,将所有域对象划分在这个层面。这样设计的优点是通过成熟的开源产品实现各层,同自己编写代码实现,相比之下能缩短开发周期,且架构所用到的开源产品,均有很广泛的用户群,经受过实践的考验,质量和性能更有保障;层与层之间松散耦合,增加代码重用率。各层分工明确,这样也利于团队的明确分工。
(1)UI层
UI是User Interface的缩写,这一层是面向用户的界面,是用户与系统之间交互的媒介。用户在界面发送请求,系统接收请求,进行处理,然后通过界面将结果呈现于用户,包括了用户动作、数据传递、界面显示。大家熟悉的MVC模式就是将这三者分离,减少三者耦合。
(2)业务层
在实际的项目开发中,每个领域都会有自己独特的业务逻辑,正因为这样,致使项目中代码高度耦合,原本有可能被重用的代码或功能,因为与具体的业务逻辑绑定在一块而导致很难被重用。因此,将实现这些具体逻辑的代码抽取出来分为单独的一层,其目的是希望通过层,来降低它与系统其他部分的耦合度。该层借助了Spring,通过依赖注入、AOP应用、面向接口编程,来降低业务组件之间的耦合度,增强系统扩展性。
(3)数据持久层
开发中与数据库进行数据交互必不可少,通常归为CRUD(添加、读取、修改、删除),这些操作占据了系统开发中大部分的时间,同时还需要考虑与数据库交互的性能问题,如连接池、数据缓存等等。因此该层实现借助了Hibernate。
(4)域对象层
该层应该说是ORM思想的产物,ORM用对象关联数据表,将这些对象的集合归为一个专门的层即Domain Layer。域对象是各层之间数据通信的载体。实际上域对象也是一个完完全全的业务对象,如User对象、Book对象。通过对业务的对象化,这有利于业务逻辑的重用。
四、小结
办公自动化系统在当前信息科学领域中飞速发展,是一个多学科综合应用的技术,它的研究愈来愈受到企业的广泛重视。随着理论研究的不断深入和信息技术的不断发展,办公自动化系统将在社会的各个领域中获得更加广泛的应用。本文在阅读、参考、学习大量国内外相关理论和应用的基础上,提出了基于工作流和时序逻辑的信息系统的研究与实现,取得了很好的应用效果。
[1]范玉顺.工作流管理技术基础——经营过程重构、过程管理和过程自动的核心技术[M].北京:清华大学出版社,2001.
[2]范玉顺,吴澄.工作流管理技术研究与产品现状及发展趋势[J].计算机集成制造系统CIMS,2000,6(1):1-7.
[3]陈天河.Struts,Hibernate,Spring集成开发宝典[M].北京:电子工业出版社,2007.1.
[4]高洪岩.至简 SSH:精通 Java Web实用开发技术(Struts+Spring+Hibernate)[M].北京:电子工业出版社,2009.11.
[5]陆渝.中国工作流软件市场现状与趋势分析[J].软件世界,2004,(11):88-89.
[6]张涛,战洪飞,孙静等.基于WEB的企业工作流管理系统的研究[J].计算机应用研究,2002,19(5):130-133.