面向JBPM工作流引擎的Web.docx
- 文档编号:2244995
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:54
- 大小:567.18KB
面向JBPM工作流引擎的Web.docx
《面向JBPM工作流引擎的Web.docx》由会员分享,可在线阅读,更多相关《面向JBPM工作流引擎的Web.docx(54页珍藏版)》请在冰点文库上搜索。
面向JBPM工作流引擎的Web
毕业设计(论文)
题目:
面向JBPM工作流引擎的Web
流程设计器的设计与实现
学生:
指导老师:
系别:
专业:
班级:
学号:
2011年6月
福建工程学院本科毕业设计(论文)作者承诺保证书
本人郑重承诺:
本篇毕业设计(论文)的内容真实、可靠。
如果存在弄虚作假、抄袭的情况,本人愿承担全部责任。
学生签名:
年 月 日
福建工程学院本科毕业设计(论文)指导教师承诺保证书
本人郑重承诺:
我已按有关规定对本篇毕业设计(论文)的选题与内容进行了指导和审核,该同学的毕业设计(论文)中未发现弄虚作假、抄袭的现象,本人愿承担指导教师的相关责任。
指导教师签名:
年 月 日
目录
1课题背景1
1.1课题来源1
1.2课题研究的目的与意义1
1.3专业术语1
2开发平台介绍3
2.1开发平台3
2.1.1B/S模式3
2.1.2相关开发技术3
2.2开发工具4
3过程分析6
3.1Web流程设计器概况6
3.2需求分析7
3.2.1功能用例图7
3.2.2功能用例描述表8
3.3顺序图及说明11
3.4协作图及说明14
3.5性能规定17
4方案设计19
4.1类图19
4.2状态图21
4.3数据库关系模式设计21
4.4总体结构设计23
4.4.1功能结构图23
4.4.2包图23
4.5活动图24
5具体实现30
5.1设计器界面设计30
5.2设计器代码设计33
6总结与展望42
致谢语45
参考文献46
面向JBPM工作流引擎的Web流程设计器的设计与实现
摘要:
新大陆软件公司当前的产品NL-RATO的流程设计器需要依赖Eclipse开发工具,用户或业务流程管理员无法独立完成流程定制工作,该工作需要由专业开发人员完成。
在制定完流程后无法直接将已完成的流程部署到服务器。
针对这些问题,本文论述面向JBPM工作流引擎的Web流程设计器的设计与实现过程。
该设计器的前端主要采用jQuery技术、jQuery-easyui框架和VML技术来实现,后台的服务端采用的是Hibernate、Spring框架和Serlvet技术来实现。
Web流程设计器应用工作流程节点和流转线绘制工作流程,实现对工作流程的定制。
其中,流程节点管理中包含了添加节点、设置节点属性、移动节点和删除节点等功能;流转线管理中包含了添加流转线、设置流转线属性和删除流转线等功能。
除绘制工作流程外,该设计器还可进行导入、导出、保存、读取流程等操作。
目前,该设计器已可以与公司现有工作流管理系统紧密结合,形成完整的工作流程管理过程。
用户或业务流程管理员可以直接参与流程的定义,甚至可以进行业务规则定制,使工作流程的定义更加简洁、方便、易懂。
关键字:
流程设计器;JBPM;VML
TheDesignandImplementationoftheWebProcessDesignerOrientedtoJBPMWorkflowEngine
Abstract:
NL-RATOProcessDesigner,whichistheNewLandSoftwareCompany’scurrentproduct,hassomeproblems.Forexample,itneedstorelyonEclipsedevelopmenttool.Usersorthebusinessprocessadministratorscan’tindependentlyfinishtheworkofcustomizingtheprocessflows,theworkrequirestobeaccomplishedbyprofessionaldevelopers.Andaftertheprocessflowshavebeencompleted,theycannotbedeployedontheserversdirectly.Aimingattheseproblems,thispaperisgoingtodiscussthedesignandimplementationoftheWebProcessDesigner,whichisorientedtoJBPMworkflowengine.Thisdesigner’sclientmainlyusesthejQuerytechnology,jQuery-easyuiframework,andVMLtechnologytoimplement.AndtheserveradoptsHibernate,SpringframeworkandSerlvettechnologytoachieve.TheWebProcessDesignerusesthenodesandtransitionsofworkflowtodrawtheworkingprocess,andrealizethecustomofworkingprocess.Inthenodemanagement,itcontainsthefunctionsofaddingnodes,settingnodeproperties,movingnodesanddeletingnode.Inthetransitionmanagement,itcontainsthefunctionsofaddingtransition,settingtransition’sattributesanddeletingtransitionetc.Besidesdrawingworkflows,thisdesignercanalsoundertaketheoperationsofimport,export,saving,readingprocess,etc.Atpresent,thisdesignerhavealreadycloselycombinedwiththecompany’sexistingworkflowmanagementsystem,andformedacompleteprocessmanagement.Usersorthebusinessprocessadministratorscandirectlyparticipateinthedefiningoftheprocess,andeveninthecustomizingofbusinessrules,thus,makingtheprocessdefinitionmoreconcise,convenient,andeasytounderstand.
Keywords:
ProcessDesigner;JBPM;VML
1课题背景
1.1课题来源
新大陆软件工程有限公司的移动业务支撑领域软件产品之一NL-RATO(新大陆电信级工作流管理系统)通过灵活的流程引擎和业务流程定制支撑复杂的电信业务流程模式和人工环节的处理,满足电信业务的处理性能和并发扩展性的需要。
该系统是基于开源软件JBPM开发的可扩展工作流管理系统,使用直观的流程语言来表示复杂的商业流程。
但现有的流程设计器是基于Eclipse开发的GUI插件,需要依赖Eclipse开发工具,一般情况下,在工作流定义完成之后,需要部署流程定义到数据库中,使得JBPM工作流引擎可以取得工作流定义信息并执行。
现有的基于C/S模式的流程设计器无法直接连到服务器,因此无法在定义完流程后直接部署,而需要通过导出基于XML格式的工作流定义文件,再进行部署。
同时在定义流程过程中需要输入繁琐的代码。
其主要面向的使用人员是开发人员,不利于用户或业务流程管理员直接参与流程的定义。
因此,需要一种面向JBPM工作流引擎的Web流程设计器,该设计器可以嵌入原系统,形成一个完整的流程管理过程。
同时应有利于用户或业务流程管理员直接参与流程的定义,甚至进行业务规则定制。
1.2课题研究的目的与意义
基于当前开源工作流领域易被商业化应用的工作流管理系统JBossJBPM(JBossJavaBusinessProcessManagement)设计并实现的面向JBPM工作流引擎的Web流程设计器,可以与现有业务流程管理系统紧密结合,形成完整的流程管理过程,用户或业务流程管理员可以直接参与流程的定义,甚至进行业务规则定制,操作简单,界面友好。
该设计器的使用将让工作流程的定义更加简洁、方便、易懂。
1.3专业术语
(1)AJAX:
使浏览器可以为用户提供更为流畅的浏览体验。
在Ajax之前,Web站点强制用户提交请求并等待请求,只有服务器响应了请求后,用户才能继续操作。
Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。
(2)CSS:
(CascadingStyleSheet,译为“层叠样式表”),用于控制Web页面的外观。
通过使用CSS样式设置页面的格式,可使得页面的内容与表现形式相分离。
将内容与表现形式分离,不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练、清晰、明了,同时缩短浏览器的加载时间。
(3)正则表达式:
就是用某种模式去匹配一类字符串的一个公式.由一些普通字符和一些元字符(metacharacters)组成。
普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。
(4)JavaScript:
是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,它是一种解释型语言,无需编译。
JavaScript增加浏览器与用户间的互动性。
(5)XML:
(ExtensibleMarkupLanguage)即可扩展标记语言。
扩展标记语言XML是一种简单的数据存储语言,常用来在网上传输数据和作为配置文件使用。
(6)JSON:
(JavaScriptObjectNotation)是一种轻量级的数据交换格式。
JSON存储数据能力很强,在网上传输数据时,可以使用JSON替代XML。
JSON将成为理想的数据交换语言。
2开发平台介绍
2.1开发平台
面向JBPM工作流引擎的Web流程设计器基于目前比较流行的Web前端开发技术jQuery,jQuery-easyui框架,服务前端使用Hibernate、Spring框架和Serlvet技术,数据库为Oracle10g(具体版本号为10.2.0),及数据库的可视化操作工具PL/SQLDeveloperv8.0。
在整个开发周期中使用的主要开发工具有MyEclipse6.5,Tomcat6.0,建模工具为RationalRose和PowerDesigner。
(1)软件开发模式:
B/S模式;
(2)运行环境:
部署在tomcat6.0应用服务器;
(3)运行模式:
支持基于网络的服务器HTTP协议运行模式;
(4)数据库:
Oracle10g数据库;
(5)Web服务器操作系统:
WindowsXP或更高版本;
(6)客户端操作系统:
WindowsXP或更高版本;
(7)客户端浏览器:
IE6.0及以上,并且必须启用JavaScript。
2.1.1B/S模式
B/S(Browser/Server,浏览器/服务器)模式又称B/S架构。
它是随着Internet技术的兴起,对C/S模式应用的扩展。
在这种结构下,用户工作界面是通过IE浏览器来实现的。
B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据;除了安全性外,最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。
2.1.2相关开发技术
Hibernate:
是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的封装,使得开发人员可以使用面向对象的方式来操作数据库。
同时Hibernate是一个非侵入式的框架,可以应用在任何使用JDBC的场合。
Spring:
是一种多层的J2EE应用程序框架,其核心就是提供一种新的机制管理业务对象及其依赖关系。
例如IOC(控制反转),AOP(面向切面编程)。
Servlet:
是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它处在客户端与服务器的中间,在MVC模式中属于C,即控制层。
使用Servlet来控制业务流程,使得JSP+Servlet+JavaBean成为了最基本的MVC模式。
jQuery:
一个快速的,简洁的javaScript库,使用户能更方便、快捷地处理HTMLdocuments、events事件等,可以方便地使用AJAX交互。
jQuery-easyui:
EasyUI是一组基于jQuery的UI插件集合,目标就是帮助web开发人员能轻松的打造出功能丰富并且美观的UI界面。
开发者不需要编写复杂的javascript代码,不需要对css样式有深入了解,只需要了解一些简单的html标签。
EasyUI作为一个轻量级的UI插件,提供了常用的UI控件accordion,combobox,menu,dialog,tabs,tree,validatebox,window等等。
VML:
(VectorMarkupLanguage,矢量标记语言)是一种基于XML的标记语言,它的核心是基于HTML的。
使用VML可以在IE中绘制矢量图形。
2.2开发工具
(1)RationalRose
RationalRose是具有能满足所有建模环境需求能力和灵活性的一套解决方案。
该工具允许开发人员,分析人员,系统工程师和项目经理在软件开发周期内在将需求和系统的体系架构转换成代码。
(2)PowerDesigner
PowerDesigner提供了一个完整的建模解决方案,开发人员、数据库管理员DBA、设计人员或系统分析人员可以对其自定义以满足特定的需求。
PowerDesigner提供了直观的符号表示使数据库的创建操作更加容易,同时能更简单地向非技术人员展示数据库和应用的设计。
(3)PL/SQLDeveloper
PL/SQLDeveloper是一个专门用于开发Oracle数据库开发工具,可方便地创建服务器端的应用程序。
该工具具有程序编辑、编译和查询等功能,它是一个非常便利的第三方开发工具。
(4)Eclipse软件
Eclipse是一个相当著名的开源JavaIDE。
Eclipse主要以其开放性、极为高效的扩展性和先进的代码编辑器等著称。
任何人都能够实现自己的Eclipse的插件,只需将这些插件简单的复制到Eclipse的插件文件夹下就可以被集成。
(5)MyEclipse插件
MyEclipse为Eclipse提供了一个大量私有和开源的Java工具的集合,这解决了各种开源工具的不一致的问题。
MyEclipse企业级工作平台是对Eclipse3.0IDE的扩展,我们利用它可以在数据库和J2EE的开发、发布,以及应用程序服务器(如tomcat)的整合方面极大地提高工作效率。
3过程分析
3.1Web流程设计器概况
Web流程设计器的作用是在线定义流程,定义好流程后再调用先前工作流系统的接口将流程部署入数据库。
该设计器同其他系统的关系如图3-1-1。
图3-1-1整个系统结构布局图
在图3-1-1中,JBPM是JBoss旗下的开源工作流产品,新大陆软件公司的RATO工作流管理系统是基于JBPM进行的二次开发,其中调用较多JBPM提供的方法。
RATO系统由很多的子系统组成,本文设计的Web流程设计器将作为WorkFlowWeb系统的一部分,WorkFlowWeb系统基于B/S结构,负责对流程进行部署,运行,监控等操作。
目前工作流系统的流程设计器是基于C/S模式的,使用该设计器制定的流程定义必须先导出jar文件,然后再通过WorkFlowWeb系统进行部署保存,这样用户就必须在两个系统之间进行切换操作,且该设计器只适合开发人员使用,因为其中很多设置都必须以输入代码的方式进行配置。
本文设计并实现的Web流程设计器嵌入WorkFlowWeb系统中使用,这样使得流程定义、部署、运行、监控等操作都能在同一个系统中进行,同时Web流程设计器针对C/S设计器中的不足进行了改良,使流程的定义更加简洁、方便、易懂。
3.2需求分析
需求分析通过功能描述说明某个项目系统或设计中要实现的各功能模块。
不论是系统或设计的介绍,还是开发人员与用户之间的沟通,功能描述都是不可缺少的。
本次设计所要实现的功能主要分为三块。
(1)流程的管理,主要包含新建流程、设置流程属性、导入流程和导出流程等功能。
(2)流程节点的管理,主要包含添加节点、设置节点属性、移动节点和删除节点等功能。
(3)流转线的管理,主要包含添加流转线、设置流转线属性和删除流转线等功能。
3.2.1功能用例图
用例图用于描述系统需求,把系统当作黑盒,从用户的角度,系统的外部看系统功能,并不描述系统内部对功能的具体实现。
从用例图中可以明确系统的边界,确定系统应具备的功能,及这些功能是否满足系统的需求,从而为系统的功能提供清晰一致的描述,方便开发人员传递需求的功能,并清楚的知道谁使用系统以及使用系统执行什么操作。
Web设计器用例图如图3-2-1。
图3-2-1Web设计器用例图
由于篇幅所限,本文中以导入流程、导出流程、添加节点、设置节点属性、移动节点等功能为例说明Web设计器设计与实现过程。
3.2.2功能用例描述表
图形化表示的用例本身不能提供该用例的全部信息,因此还必需描述用例不可能反映在图形上的信息。
通常用文字描述用例的这些信息。
用例的描述其实是一个关于参与者与系统如何交互的规格说明,该规格说明要清晰、明了,没有二义性。
表3-2-1导入流程
要素
说明
用例编号
UC_003
用例名称
导入流程
简要说明
将已有的流程含xml文件的jar包导入至流程设计器。
优先级
高
使用频度
高
执行者
操作员
基本事件流
操作员选择流程文件,确认导入流程;系统将导入的流程显示在编辑区。
特定需求/规则
1、支持的文件格式jar。
表3-2-2导出流程
要素
说明
用例编号
UC_004
用例名称
导出流程
简要说明
从流程设计器中导出已设计的流程,文件格式jar(含xml)。
优先级
高
使用频度
高
执行者
操作员
基本事件流
操作员选择导出文件存放位置,输入文件名并确认导出;
系统将流程图导出为jar文件格式。
表3-2-3添加流程节点
要素
说明
用例编号
UC_006
用例名称
添加流程节点
简要说明
支持通过拖拽的方式在编辑区添加流程节点。
优先级
高
使用频度
高
执行者
操作员
基本事件流
操作员在工具栏选中某个节点类型图标,按住鼠标左键将鼠标移动至编辑区,松开鼠标左键;或在工具栏选中某个节点类型图标,将鼠标移动至编辑区,点击鼠标左键并松开
系统在编辑区显示对应的流程节点;
特定需求/规则
支持的流程节点:
开始、结束、分支、联合、决策、任务、子流程;
开始节点:
标识一个流程的开始,一个流程中只有一个,开始节点只有from连接,出度数量不限;
结束节点:
标识一个流程的结束,一个流程中只有一个,结束节点只有to连接,入度数量不限;
分支节点:
一个分支把一个执行路线分割成多个并发的执行路线;出入度数量都无限制
联合节点:
将多个并发执行的路线并成一个执行路线,入度数量不限,出度只能是1个;
决策节点:
由流程来决定判定流程走向时,需使用该类型节点,出入度数量都不限;
任务节点:
代表一个或多个可被执行的任务,出入度数量不限;
子流程节点:
表明一个子流程的开始,出入度数量不限。
开始节点只允许单个from连接,结束节点只允许to连接,支持多连接
表3-2-4设置流程节点属性
要素
说明
用例编号
UC_008
用例名称
设置流程节点属性
简要说明
在编辑区选中节点,属性栏显示该节点的属性,操作员可在属性栏设置节点属性,系统自动保存属性,并响应至编辑区的图形。
续表3-2-4
要素
说明
优先级
高
使用频度
高
执行者
操作员
基本事件流
操作员在在编辑区选定某个节点;
系统在属性栏显示该节点属性;
操作员在属性栏设置节点属性;
系统自动保存属性,并响应至编辑区的图形。
特定需求/规则
开始节点属性:
节点名称(默认值:
开始节点1,必填项)、节点描述、事件(参考事件设置用例);
支持的事件类型:
node-leave;
结束节点属性:
节点名称(默认值:
结束节点1,为必填项)、节点描述、事件(参考事件设置用例);
支持事件类型:
node-enter;
分支节点属性:
名称(默认:
分支节点1,第二个分支节点默认值:
分支节点2,以此类推,为必填项)、是否异步(默认:
否)、设置事件(参见设置事件用例)、设置定时器(参见设置定时器用例);
支持事件类型:
;
联合节点属性:
名称(默认:
联合节点1、第二个分支合并节点默认值:
联合节点2,以此类推,为必填项)、是否异步(默认:
否)、设置事件(参见设置事件用例)、设置定时器(参见设置定时器用例);
支持的事件类型:
;
决策节点属性:
名称(默认:
决策节点1,第二个条件分支节点默然:
决策节点2,以此类推)、处理器、是否异步、设置事件(参见设置事件用例);
a、处理器类型只有expression。
任务节点属性:
节点类型、节点名称(默认:
任务节点1,第二个任务节点默认:
任务节点2,以此类推)、
新增任务(处理时限、选择处理时限单位、是否工作日、识别码、选择优先级、任务名称、描述、选择任务处理人、设置任务催办(参见设置催办用例))、是否异步、设置会签(参见设置会签用例)、设置事件(参见设置事件用例)、设置定时器(参见设置定时器用例);
a、节点类型选项:
普通节点、通知反馈类节点、环节等待、业务节点、会签节点,默认选定:
普通节点
处理时限单位选项:
分、小时,默认选定:
分;
优先级选项:
普通、加急、紧急,默认选定:
普通;
可为一个任务节点配置一个个任务;
表3-2-5移动流程节点
要素
说明
用例编号
UC_007
用例名称
移动流程节点
简要说明
在编辑区改变流程节点显示位置。
优先级
高
使用频度
高
执行者
操作员
基本事件流
操作员在在编辑区选定某个节点,按住鼠标左键并拖动;
系统在编辑区相应地改变节点显示位置,同时流程转向线位置也随之改变;
特定需求/规则
支持通过方向键,upleftrightdown进行移动
3.3顺序图及说明
顺序图用来详细描述对象间传送消息的时间顺序,它表示用例中的行为顺序。
顺序图详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)用例时的行为依赖关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 JBPM 工作流 引擎 Web