【VC++开源代码栏目提醒】:本文主要为网学会员提供“荆门市行政审批电子监察系统工作流设计与实现 - 硕士论文”,希望对需要荆门市行政审批电子监察系统工作流设计与实现 - 硕士论文网友有所帮助,学习一下!
武汉理工大学 硕士学位
论文荆门市行政审批电子监察系统工作流设计与实现 别:硕士 专业:计算机应用技术 指导教师:张南平夏红霞 20090501 摘要 随着信息化浪潮的来临,各国政府都开始将利用信息技术改进传统管理方式看作是新世纪的重大机遇和挑战。
工作流技术便越来越成为新一代办公系统的新宠,而如何将现实当中的工作流程以数字方式进行完美的展现,更是众多软件厂商为之努力的方向。
目前市场上的工作流引擎很多,也许有人会质疑为什么选择.iBPM作为该审批系统的工作流引擎,所以在本文开头简要介绍了市场上的主流工作流引擎,比如OSWorkFlow、Enhydra Shark、OpenWFE等等。
在对它们之间的优缺点进行对比之后,阐述了选择iBPM工作流引擎的原因。
jBPM作为一种
开源的工作流引擎,将业务流程看作一个UML活动图,有利于客户和软件开发人员之间的沟通,具有灵活的扩展机制,对回退任务,会签任务提供了良好的支持。
为了使读者能够更加深入的了解基于iBPM的工作流系统
设计,本文并没有急于介绍jBPM,而是首先介绍了在开发该审批系统中所用到的一些技术,包括,J2EE技术,该技术可以说构成了整个系统的框架,其它的所有技术都是建立在它的基础之上的;Struts技术,该技术实现了MVC的架构,将业务逻辑和前端表现分离开来,便于系统的维护和升级;Hibernate技术,该技术使在操作数据库时能够像操作对象一样方便,便于不同数据库产品之间的切换;Spring技术,提供了事务管理,依赖管理;FreeMarker,该技术是实现工作流系统中自定义表单的关键。
在本文最核心的第3、4章,首先讲解了工作流管理系统的体系结构,这对于理解iBPM的整体框架和实现原理具有很好的指导意义。
在做足了所有的准备工作之后,开始详细介绍JBPM工作流引擎从定义、部署到执行的各个环节,并重点介绍了jBPM如何处理回退任务,会签任务等特殊工作流,同时通过分析iBPM的源
代码来介绍其过程调度和执行机制。
最后介绍荆门市行政审批电子监察系统的,详细讲解如何实现权限管理、工作流的定义、部署和流转以及自定义表单,并且给出了相关的测试数据,使该子系统能够放心的提供给上层应用。
总之该文即注重理论分析,又重视实际开发,充分阐述了jBPM工作流引擎在OA系统中的应用。
关键字:jBPM,工作流,J2EE,自定义表单 Abstract With the coming of information-based wave tide,Governments are beginning to regard how to use information technology to improve traditional models of management,as the opportunity and challenge of the new century.So,Workflow technology is increasingly becoming the focus of the OA system.But,how to demonstrate the actual working process with a digital pattern perfectly is the goal of many software developers. There are many workflow engines on the market nowadays.Maybe you will doubt why I choose jBPM as the workflow engine of the supervision system.So,this article gives a brief introduction to dominant products at the beginning,such as OSWorkFlow,Enhydra Shark,OpenWFE and SO on.On comparing advantage and disadvantage between them,the paper illustrates why to choose jBPM.As a opensource workflow engine,j BPM regards workflow as a activity diagram in UML, which is favorable to the communication between customers and Software developers.And it has a flexible,extensible mechanism.Furthermore,it provides the good support for rollback of mission and countersign. In order to make readers know the jBPM—based workflow system beaer,thepaper is not eager to introduce jBPM,but rather technologies used in the system.Such as J2EE,it composes the framework of the system,and it is the foundation ofother technologies.Struts,which is a implementation of MVC architecture,separatesbusiness logic and UI,which is for convenience of maintenance and update.Hibernate,which make it as convenient to operate database as using object,and itmakes switching between databases US transaction and easier.Spring,it providesdependence-injection management.Freemaker’it is the key that implement customform of workflow system. In the chapter 3 and 4,which is the core of this paper,it explains the architectureof workflow management system,and it has directive significance for understandingstructure and principle of jBPM.On all the preparation work has been done,thisarticle introduces each sector of jBPM engine,such as definition,deployment and U mission Wereexecution.锄d how to handle rollback of mission and countersigned and mechanism olstrcssed.Meanwhile,this part introduces scheduling operational and code.At last,the paper presents the deslgniBPM by analyzing the source how to Electronic Supervision System,and expIaInsimplemen诅tion of the Jingmen and transactlon otimplement authority management,definition,deployment of test,SO that the subsystem c锄beworkflow.CUStom form,and give the resultcommitted to upper layer application. arc interested in the paper.And it In short,both theory and practical application elaborates on the application ofjBPM engine in OA system. form Keywords:jBPM,Workflow,J2EE,Cugom III 独创性声明 本人声明,所呈交的
论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并表示了谢意。
签名: 学位
论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权武汉理工大学可以将本学位
论文的全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存或汇编本学位
论文。
同时授权经武汉理工大学认可的国家有关机构或
论文数据库使用或收录本学位
论文,并向社会公众提供信息服务。
(保密的
论文在解密后应遵守此规定) 一呼聊魏毪啡一 武汉理工大学硕十学位
论文 第1章引言1.1选题的背景和意义1.1.1选题的来源与背景 随着
计算机网络与信息技术的迅猛发展,使得
网络办公自动化系统在企事业单位的工作中发挥着越来越重要的作用。
通过办公自动化系统能实现各部门之间的协作、便捷地进行信息的收集与处理、流动与共享,最终达到办公现代化、信息资源化、传输网络化和决策科学化。
目前湖北省省级电子监察
系统建设已初见成效,为了适应转变政府职能、改进管理方式、推行电子政务、提高行政效率、降低行政成本的发展趋势,贯彻廉洁高效行政管理体制的要求,荆门市行政审批电子监察系统的实施刻不容缓。
本课题来源于武汉菲旺
软件技术股份有限公司的OA项目,该工作流项目是在流行的
开源工作流引擎iBPM的基础上开发的。
该引擎作为一个完整的工作流系统,为工作流的定义,部署和运行提供了完美的解决
方案,并为第三方进行二次开发提供了良好的接口。
1.1.2选题的意义 从整个项目的角度看,建设行政审批电子监察系统,实行过程控制,强化监察职能,有利于改善政务环境,是优化
经济发展环境的有效方法;有利于推动政务公开,规范审批行为,促进依法行政,避免滥用职权,或严重失职渎职行为的发生,及时纠正不良行政行为和执法行为,督促政府机关及其
工作人员自觉遵守和严格执行国家的法律、法规和党的方针政策,以及人民政府的决定、命令,严格依照法定权限和程序管理行政事务,不失职、不越权、不走样,保证政令畅通,保证各项行政或执法活动在法制的轨道上运行;有利于促进勤政廉政建设,从源头上预防和治理腐败;有利于推进行政监察工作体制改革的创新;有利于增强责任意识提高办事效率,有利于改善行政管理,促进政府机关勤政高效。
从技术的角度看,工作流技术是从上世纪九十年代发展起来的一门新兴技术,是近年来计算机应用技术领域最具发展潜力的研究方向之一。
它可以改进 武汉理丁二大学硕士学位
论文和优化业务流程,提高业务工作效率;实现更好的业务过程控制,提高顾客服务质量:提高业务流程的柔性等【11。
jBPM作为一个优秀的丌源项目,研究它的
代码对于我们来说是个很好的学习和提高的过程,其中包含了大量的面向对象的思想,并运用了大量设计模式。
另外jBPM是基于J2EE架构的,通过研究还可以深入
学习J2EE技术,加深对J2EE的理解。
1.2工作流产品市场分析1.2.1主流工作流产品分析与比较 OSWorkFlow是完全用Java语言编写的
开源的工作流引擎,最大的特点是具有很好的灵活性,并且它主要面向有技术背景的用户。
通过使用该工作流产品,用户就可以把工作重心放在工作流程的定义上,而不用考虑复杂的
代码实现。
用户可以很容易的以嵌入式的方式将OSWorkFlow整合到自己的系统中。
OSWorkFlow提供了几乎可能在实际流程定义中需要用到的所有工作流元素,如:环节(step)、条件(conditions)、循环(100ps)、分支(spilts)、合并(joins)、角色(roles)等等。
在开始接触OSWorkflow时可能较难掌握,因为OSWorkflow不要求使用图形化工具来开发工作流,而推荐手工编写xml格式的工作流程配覆文件,这对于学习OSWorkflow有很大的帮助,但是在定义复杂的工作流程时会比较麻烦。
此外,OSWorkflow不希望一个非技术用户修改工作流程,这样无疑减弱了系统的灵活性,增加了系统的维护成本。
Enhydra Shark是一个可扩展的工作流引擎框架,使用XPDL作为自身的工作流流程定义语言。
Enhydra Shark包含一个图形XPDL编辑器,可用于生成XPDL流程定义,流程与活动实例的存储通过一个可配置的持久化框架来完成。
持久层采用的框架是轻量级的Enhydra DODS O/R Mapping工具。
这也是它的主要缺陷所在,因为基本上没有什么人使用DODS,所以要想使用Shark还要花时间去学习DODS。
有人曾经提供了Shark的Hibernate实现,但Shark并没有将其集成到产品中,也无计划在将来的版本中支持Hibernate。
这不是很符合
开源的思想。
此外Shark的版本更新比较慢,也没有采用
开源的方式进行
代码管理弘J。
以上这些都阻碍了Shark的发展。
OpenWFE是一套符合WFMC标准的工作流管理系统。
项目具有功能完善、 2 武汉理工大学硕十学位
论文通用型好、扩展能力强等特点。
它除了能够为各种丌发环境提供工作流引擎之外,也能够直接作为一个完整的工作流
管理系统使用。
它主要包括一个引擎,一个工作
列表,一个Web界面和一个反应器。
OpenWFE项目使用Java和JSP编写,项目为B/S结构。
它最大的特点就是能够直接通过浏览器进行工作流的定义,运行和管理。
同时,也可以使用其他语言调用OpenWFE服务的管理系统,只要OpenWFE提供了该语言的连接器。
1.2.2 iBPM工作流引擎的优势 jBPM,全称是Java Business Process Management(业务流程管理),它是涵盖了业务流程管理、工作流定义、服务协作等领域的一个丌源的、灵活的、易扩展的可执行流程语言框架。
jBPM最大的特色就是,它的流程定义采用了它自己定义的JBoss jBPMProcess Definition Language(jPDL)。
jPDL将工作流程看作是UML状念图。
它通过图形化的流程定义,直观地描述业务流程pJ,这样有利于业务人员和开发人员之间的沟通。
和其它
开源的Java工作流引擎相比,灵活的扩展机制,使得iBPM在处理包括回退任务、催办任务、动态任务、会签任务和抄送任务时,能够提供有力的支持。
iBPM的另一个特色是使用Hibernate作为持久化框架。
Hibernate是目前Java领域最好的,也是使用最广泛的一种数据库O/R Mapping工具。
只要是Hibernate支持的数据库,jBPM也就支持p】。
通过Hibernate,可以带来数据库迁移方面的简便,而且iBPM将数据的管理职能分离出去,自己能更好的专注于商务逻辑的处理。
3 武汉理工大学硕+学位
论文 第2章核心技术与重难点分析2.1 J2EE技术 J2EE是一种利用Java平台来简化企业系统的开发、部署和管理等相关的复杂问题的体系结构。
J2EE核心是一组技术规范与指南,使各种遵循J2EE架构的不同平台之间,存在良好的兼容性,能够最大程度的解决企业新老系统的共存
问题。
基于J2EE的应用程序不依赖任何特定操作系统、软硬件资源。
所以设计合理的J2EE程序只需开发一次就可部署到各种平台。
这在典型的异构企业环境中是十分关键的。
而且J2EE允许公司把一些通用的、繁琐的任务交给其它厂商完成。
这样开发人员可以集中精力在商务逻辑的处理上,降低了开发难度,并相应地缩短了开发时间。
J2EE技术可以说是所有Java Web开发技术的基础,其它所有技术都是遵循它的原则进行开发的,是J2EE规范的具体实现。
2.2 MVC三层架构 MVC,M是指数据模型(Model),用来表示业务数据和业务逻辑;V是指用户界面(View),用来向用户显示数据,并接收用户的输入;C则是控制器(Controller),用来接收请求并调用相应的模型处理请求,然后调用相应的视图显示模型返回的数据。
使用MVC的目的是将M和V的实现
代码分离,从而使对任意一方的改变都不会影响另一方的实现。
C存在的目的则是确保M和V的同步更新1.3J o使用MVC架构具有以下的一些优势: (1)低耦合性。
视图层和模型层分离,这样就允许更改视图层
代码而不用重新修改模型和控制器
代码。
同样,一个应用的业务数据或者业务逻辑的改变只需要修改模型层即可。
这样就消除了各个层次之间的依赖性。
(2)高复用行。
MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的
代码。
这样,对于不同的应用需求,你只需更改用户界面就可以了,而模型层和控制层不需要进行任何修改,从而达到软件的复用。
(3)较低的生命周期成本。
由于MVC的高复用性,使丌发和维护系统的成本大大降低。
(4)快速的部署。
使用MVC模式使开发周期大幅缩减,它使程序员(Java 4 武汉理工大学硕士学位
论文开发人员)集中精力于业务逻辑,美I(Html和JSP开发人员)集中精力于表现形式上。
这样双方可以同时进行开发,加速系统的部署。
(5)有利于软件工程化管理。
由于采用分层的思想,每一层都有一些共同的特称,这样就有利于对项目进行标准化和工程化的管理,指定相应的丌发规范,这对于后期的维护也有很大的帮助。
目前市场上的MVC产品非常多,我们下面要提到的Struts就是比较有代表性的产品。
2.2.1 Struts Struts是在JSP Model2基础上实现的一个MVC框架。
按照MVC的思想,Struts的核心控制器是ActionServlet类,它用来处理客户端发过来的请求,根据请求的不同,选择不同的模型组件进行处理,并将结果反馈给指定的视图。
它的模型组件包括ActionForm类和Action类。
ActionForm用来接收表单传过来的参数,将这些参数封装到一个类中,然后传递给Action类。
在该类中可以加入自己的处理逻辑。
习惯上将Action类看作控制器的一部分,’因为它在执行完处理逻辑后要负责将用户带到另一个视图。
而Struts的视图主要是由传统的JSP页面,以及Struts的一些自定义标签组成。
Struts的体系结构如图2.1所示。
浏览器 7————+ Web 中一 器乏 (控制器) ActionServlet 、、|- /, (模型) JavaBean 11I竺杉 EJB 服务器 卢 争 1 f,Action y L—c翟, \ / 图2.1 Struts体系结构 5 武汉理T大学硕十学位
论文 Struts的优点主要集中在以下几个方面p1: (1)Taglib是Struts的标记库,采用类似于Html标签的方式,比较符合前端
程序员的编程习惯,可以避免在页面中嵌入Java
代码。
灵活运用Taglib能大大提高开发效率。
(2)页面
导航使系统的脉络更加清晰。
通过一个配置文件,就可以把握整个系统各部分之间的联系,这对于后期的维护有着很大的好处。
尤其是当另一组开发人员接手这个项目时,这种优势体现得更加明显。
(3)通过ActionForm封装页面表单中的元素,能够在视图组件和控制器组件之间传递参数,并且可以在其中加入数据校验,保证数据的完整性和J下确性。
(4)Struts的ActionServlet采用前端控制模式。
让所有的请求都是经过一个统一入口进行转发。
该方式方便人们在入口中加入一些全局控制
代码,如权限控制、日志管理等。
(5)Struts Validator允许通过配置文件的方式进行数据校验,避免重复编写验证
代码,它提供的一些默认验证方式基本上就能满足实际的开发需要,减少了开发工作量。
同时它还能实现验证
代码的集中管理。
2.2.2 Spring Spring是一个
开源框架,它是为了解决企业应用丌发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
任何Java应用都可以从Spring中受益。
Spring框架由7个定义良好的模块组成。
Spring的所有模块构建在核心容器之上L,J,如图2.2所示。
组成Spring框架的每个模块都可以单独存在,或者与其他一个或多个模块联合使用。
每个模块的功能如下: (1)核心容器:提供Spring框架的基本功能。
核心容器的主要组件是BeanFactory,它使用控制反转(IoC)模式降低各个类之间的相互依赖,以前需要我们手工创建的实例对象,现在都可以交给Spring进行管理。
(2)Spring上下文:对于Spring来说上下文就是一个配置文件,用来提供诸如JNDI、EJB、JDBC、国际化、JavaMail等功能。
(3)Spring AOP-该模块直接将面向方面的编程功能集成到了Spring框架中。
通过使用Spring AOP,就可以轻松地将声明式事务集成到应用程序中。
而 6 武汉理』:大学硕士学位
论文不需要像以前那样,在
代码中由程序员自己来控制事务管理。
(4)Spring DAO:该模块集中管理异常处理和不同数据库供应商抛出的错误消息。
极大地降低了需要编写的异常
代码数量,对于常见的数据库连接打开和关闭操作,可以交由Spring进行管理,而不需要像以前那样由程序员负责关闭。
(5)Spring ORM:Spring框架插入了若干个O/R Mapping框架,包括JDO、Hibernate和iBatis。
这样Spring在原有框架的基础上又进行了一次封装,进一步降低了API的使用难度。
(6)Spring Web模块:该模块为基于Web的应用程序提供了上下文。
所以,Spring框.