




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号分类号 学号学号 2005821830708 学校代码学校代码 1 0 4 8 7 密级密级 硕硕士士学学位位论论文文 基于基于 jbpmjbpm 的银行住房贷款审批系统的的银行住房贷款审批系统的 设计与实现设计与实现 学位申请人学位申请人 学科专业学科专业:软件工程软件工程 指导教师指导教师: 答辩日期答辩日期: 2008.12.30 a thesis submitted in partial fulfillment of the requirements for the degree for the master of engineering the design and imple
2、mentation of the housing loans approval system based on jbpm candidate : han tao major: software engineering supervisor : assoc.prof.gao jiansheng huazhong university of science workflow engine; approval process; open source 目录目录 摘 要.i abstract.ii 1 绪论 1.1 课题背景及意义 .(1) 1.2 工作流技术的起源与发展 .(2) 1.3 工作流技术
3、国内外研究现状 .(3) 1.4 本论文主要工作 .(6) 2 工作流技术分析 2.1 工作流的相关概念 .(7) 2.2 工作流管理系统参考模型 .(10) 2.3 petri 网.(12) 2.4 本章小结 .(18) 3 jbpm 技术与开发框架 3.1 jbpm 技术.(19) 3.2 ssh 开发技术介绍.(25) 3.3 本章小结 .(33) 4 系统分析与设计 4.1 系统需求分析 .(34) 4.2 系统功能设计 .(35) 4.3 基于 uml 的系统建模 .(36) 4.4 数据库设计 .(42) 4.5 本章小结 .(49) 5 系统的实现与运行结果 5.1 系统运行环境
4、 .(50) 5.2 jbpm 流程建模.(50) 5.3 ssh 框架的整合.(56) 5.4 struts 中关键技术的实现.(57) 5.5 系统的运行效果.(59) 5.6 本章小结.(65) 6 总结与展望 6.1 全文总结 .(66) 6.2 展望 .(66) 致 谢 .(68) 参考文献 .(69) 1 1 绪论 随着信息技术的发展,计算机作为一种新的工具,已经对社会产生了巨大的影 响。新的工具产生新的方法,计算机辅助业务流程管理已经成为一种先进、可行的 新方法。利用计算机网络系统,可以大大提高信息沟通和数据采集的效率,可以把 大量纷杂的信息进行有序的组织。建立在计算机网络世界基
5、础上的办公自动化,对 提高企事业单位工作效率,实现更多的价值,起到了良好的促进作用。 1.1 课题背景及意义 当前金融风险的影响已越来越大、越来越集中,其存在对经济发展和社会进步 都有巨大的危害。它不但能使个别金融机构蒙受巨额损失,而且还可能破坏一个国 家和地区的经济稳定,引发社会动荡。 而房地产业在我国国民经济的发展中也日益占据举足轻重的地位。自 20 世纪 90 年代以来,我国房地产市场逐步发展并迅速壮大,己逐渐成为推动各地区乃至整 个国民经济增长的重要力量。与其发展紧密相关的个人住房贷款业务是我国福利分 房制度向住房分配货币化转变过程中引入的一种金融产品,在不断发展的过程中起 已成为我国
6、商业银行贷款业务中重要的项目。个人住房贷款规模在银行资产中的比 重逐年上升,对解决居民住房问题和促进房地产业的发展起到了重要作用。 伴随着互联网技术在银行系统内的应用推广,银行内快速增长的业务客观上要 求银行内部流程处理快速高效。这样就必然要求银行的信息化方案应当是操作方便 快捷,界面友好,多个计算实体之间通过基于标准的数据描述方式,减少冗余架构, 创建跨客户和员工系统的公共业务接口;基于角色和工作流对用户提供个性化的信 息业务。这样才能实现银行业务流程的可视化与自动化1。 工作流技术是在上世纪九十年代发展起来的一门新兴研究方向,是近年来计算 机应用技术与信息技术领域最具发展潜力的方向之一。工
7、作流管理联盟(wfmc)给出 的工作流的定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据 一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。工 作流技术是支持现代企业经营过程重组、经营过程自动化的一项关键技术,它通过 对经营过程进行明确的定义和表示,使其能够被计算机所支持和运行,从而实现企 业过程管理与过程控制2。 jbpm 作为一个优秀的开源项目,研究它的源代码对于我们来说是一个很好的学 习和提高的过程。无论是编程风格还是面向对象的思想甚至编程技巧很多都是值得 我们借鉴、消化和吸收的。另外 jbpm 是基于 java ee 架构的,而 java ee 又是近
8、 年来最热门也是最优秀的企业级应用的技术架构或软件平台。 本文基于 jboss jbpm 工作流引擎来实现银行住房贷款审批流程,使得银行对 该工作流程能够实时监控,使得参与该流程的各部门在一个统一的平台上高效率工 作。 1.2 工作流技术的起源与发展 80 年代初期,在 pc 机尚未作为信息处理工具而出现的时候,纸张是各行各业 中进行日常业务活动所不可替代的载体,包括表单、文件、信函、技术资料等在内 的各类与企业密切相关的文档都是以纸张的形式在各个部门之间进行传递的。这种 古老的载体在信息的处理、组织、存储以及查询检索方面都是低效的。因此,人们 希望出现一种无纸化的、计算机使能的工作环境。一些
9、公司、企业也建立了自己专 用的或者可商品化的表单传递应用系统(forms-routing applications),通常运行在大型 机或小型机上,用于实现日常表单处理的电子化与自动化。这种系统可以看成是现 代工作流管理系统的一个雏型。80 年代中期,filenet 和 viewstar 等公司率先开拓 了工作流产品市场,成为最早的一批工作流产品供应商。他们把图像扫描、复合文 档、结构化路由(structured routing)、实例跟踪、关键字索引以及光盘存储等功能结 合在一起,形成了一种全过程支持某些业务流程的集成化的软件(包),这便是早期 的工作流管理系统。比较典型的有 filenet
10、 于 1984 年推出的 workflo business system,viewstar 于 1988 年推出的 viewstar。很显然,这种增值性质的集成化软件 系统为企业简化与重组自己的关键业务流程提供了一种非常合适的方案。而且,由 此我们还可以看出,工作流从最初的诞生之日起就是作为一种面向过程的系统集成 技术而出现的,只不过限于当时的计算机发展水平,它所集成的功能较为简单而已 3。 进入 90 年代,随着计算机的普及、网络的延伸,现代企业的信息资源越来越 表现出一种异构、分布、松散耦合的特点,企业的分散性、决策制定的分散性、对 日常业务活动详尽信息的需求以及 client/serve
11、r 体系结构、分布式处理技术 (corba,www,ole,java)的日益成熟,都说明了这样一个事实:集中式信 息处理的时代已经过去,实现大规模的异构分布式执行环境,使得相互关联的任务 能够高效运转并接受密切监控已成为一种趋势。在这种不可抗拒的技术背景下,工 作流管理系统也由最初的创建无纸办公环境转而成为同化企业复杂信息环境、实现 业务流程自动执行的必要工具。这样的一个转变,把工作流技术带入了一个崭新的 发展阶段,使得人们从更深的层次、更广的领域上对工作流展开了研究4。 工作流技术的标准化组织工作流管理联盟(workflow management coalition)于 1993 年成立。它
12、的成立标志着工作流技术在计算机应用研究领域之中被明确地划分 出了自己的一席之地,相应的概念与术语也得到了人们的承认。在全球范围内,对 工作流的技术研究以及相关的产品开发进入了更为繁荣的阶段,更多、更新的技术 被集成进来,文件管理系统、数据库、电子邮件、移动式计算、internet 服务等都已 被容纳到工作流管理系统之中5。 1.3 工作流技术国内外研究现状 .1 目前工作流技术的研究内容 目前工作流主要的研究内容包括以下几个方面: (1)工作流管理系统体系结 构的研究;(2)工作流模型与工作流定义语言;(3)工作流的事务特性:研究目 的在于将高级事务处理技术与工作流管理技术相结
13、合,用良好定义的模型语义与恢 复机制来更好地支持企业的经营过程,提高工作流系统的可靠性与实用性;(4) 工作流的实现技术:包括面向对象技术、异构分布式计算、图形用户界面、消息通 信、数据库、www 等在内的与工作流系统的设计实现有关的各项技术、方法; (5)工作流的仿真与分析方法;(6)工作流的集成与互操作技术:研究异构应用 系统的集成以及不同工作流系统之间的互操作问题;(7)工作流与经营过程重组: 研究如何通过工作流系统的实施来有效地实现企业的经营过程重组6。 .2 目前工作流技术中所存在的不足 目前在经营过程中采用工作流管理系统的企业仍只是一少部分,而且这些系统 的应用范围
14、也很有限,并不能全方位地支持企业的关键业务流程。从企业用户应用 的角度来分析产生这种状况的原因,主要有以下四点7: (1)工作流的运行必须要有底层的通信基础结构的支持,但是就目前能够实 现分布计算环境的产品来看,它们在实际应用中仍然显得不够成熟,在安全性、容 错性、可靠性等方面均不能满足企业的需求,而且在价格上也给企业造成一定的负 担。 (2)缺乏标准。不同的厂商所提供的工作流产品可能具有自己独立的一套工 作流模型、工作流定义语言以及 api 函数。 (3)实现的复杂性。工作流应用的开发不仅仅是过程的定义,还需要完成其 他许多任务。比如,对外部的应用系统进行封装、建立工作流机运行所必须的分布
15、计算环境、设计开发相应的用户界面等等。 (4)工作流技术本身的不成熟性。目前尚没有一种工作流产品或原型系统能 够在过程执行的可靠性与一致性方面达到与关系型数据库管理系统同水平的功能8。 通过对工作流的研究,我们认为工作流技术自身的不成熟性从较为根本的几个 层次上来看,主要表现在以下三个方面9: (1)在工作流的模型描述方面,缺乏一种支持过程定义、过程演进以及过程 分析的形式化的数学模型。工作流模型的核心是对过程的定义,包括组成过程的基 本活动以及活动之间的时序关系。目前的各种工作流模型,大部分都是从直观感觉 出发,以图形语言或者文本语言来定义工作流过程。由于缺乏理论层的模型支持, 使得工作流在
16、应用的许多关键特性上无法得到保证,包括柔性定义、过程重用、事 务管理、异常处理等,这些都大大限制了工作流在企业应用中的推广。 (2)在工作流的执行方面,缺乏一个标准化的集成框架来支持对企业常用的 分布式应用的集成。目前来看,工作流应用中的一个很大的瓶颈就是工作流管理系 统所能支持的企业应用太少,在集成的方式方法上还没有统一的标准,很大程度上 要受到外部应用的限制。因此,在工作流系统与企业应用间亟待建立一个性能良好 的“粘合层” ,最好是独立于不同企业应用的一个标准的集成框架,这将极大地提 高工作流系统对企业应用的适应性。 (3)在工作流的仿真评价方面尚处于一种几近空白的状态。应该说,在缺乏 仿
17、真方法与仿真工具支持的情况下,整个工作流系统是不完善的。因为人们难以预 料所部署的工作流过程将有可能出现怎样的结果,它有哪些不合理的地方,其性能 指标如何,这一切都必须等到实际运行以后才能由工作流管理系统所记录的数据中 获得,显然,这并非是一种合理的方式。针对工作流进行仿真的难点主要在于:仿 真的性能指标不好确定;仿真的内容较为复杂等10。 .3 工作流技术的发展趋势 针对目前工作流产品存在的不足和信息技术、分布对象技术、lnternet/lntranet 技术的发展趋势,从技术与应用角度看,在今后一段时间内,工作流管理技术的研 究及产品主要在以下几个方向发展。 (1)面向复杂
18、企业应用的工作流管理系统:目前的工作流技术和产品难以支 持复杂的企业应用,对己有企业应用的集成能力也显然不足,因此,支持复杂企业 应用和应用集成的工作流管理系统将会得到充分的重视和长足的发展。 (2)扩展工作流模型的描述能力:现有工作流系统的模型在企业应用中的描 述能力不足,主要反映在工作流模型的语义在描述复杂过程时,能力不足和活动属 性的定义不够丰富。需要在进一步深入分析的基础上,丰富工作流模型的语义和活 动属性的定义。 (3)代理技术与工作流管理技术的结合:代理技术与工作流技术都是近年来 受到广泛重视并得到长足发展的计算机软件技术,在分布对象技术的基础上,充分 发挥工作流技术在灵活性方面的
19、优势和代理技术在知识表达、事务处理、智能性能 方面的优势,将这两种技术进行有机结合,以工作流管理为基础,以代理技术为核 心,将开发出具有良好前景的应用软件产品。 (4)内置到商用企业应用软件包中:在过去的几年里,为了使通用软件能够 满足客户提出的特别需要,say 等公司将工作流技术引入到他们的产品中,使用户 可以按照预定的顺序调用这些产品的不同功能模块,满足本企业的特殊需求。 (5)基于 web 的工作流:随着 web 技术的普及,基于 web 的工作流技术将 得到充分的发展。工作流可以通过 web 扩展到多个企业,并将实现多个基于 web 的工作流服务器之间的协同工作。 (6)分布式工作流:
20、经过几年的发展,工作流管理系统的结构己经由原来的 只能支持单一的工作组环境,发展到现在可以支持企业级(甚至企业间)的工作流环 境。一个工作流实例可以通过局域网、广域网分布在不同的服务器和客户端,而且 服务器的故障所造成的影响将被减少到最小。因而,大大提高了系统的可扩展性、 实用性和管理能力。 (7)融入事务管理的概念:目前大部分工作流产品不支持事务的概念,甚至 不能保证活动的执行是一个 acid ( atomicity, consistency, isolation,durability)的 事务。 (8)工作流模型的分析和仿真工具:目前,越来越多的用户要求能够对模型 进行评估和性能测试,仿真
21、和性能监控工具的引入,将成为新一代工作流产品的发 展趋势11。 1.4 本论文主要工作 (1)阐述了工作流技术的相关概念和工作流管理系统的体系结构。 (2)对工作流引擎用到的建模技术 petri 网进行了相关介绍。 (3)分别对系统开发使用的开源框架 struts,spring,hibernate 的特性、关键 技术进行了详细介绍。同时对在系统开发中 jbpm 的建模过程进行了详细介绍。 (4)以本文介绍的工作流管理信息系统的框架模型为基础,结合银行个人住 房贷款流程并利用 uml 建模工具对系统进行了详细设计。 (5)在详细设计的基础上,充分利用 ssh 开源框架和 jbpm 插件,实现了该
22、 系统的原型。 (6)总结和展望。总结了论文有价值的核心内容和创新点,分析了系统存在 的不足,确定了下一步的研究方向。 2 工作流技术分析 近年来,it 技术能力得到大幅度提高,越来越多的企业利用信息技术去支持他 们的业务过程处理,以适应快速变化的市场环境并提高企业的工作效率和管理水平。 随着网络的延伸以及 c/s、b/s 体系结构的日益普及,目前新型的管理信息系统大 多建立在基于 internet/intranet 结构及技术的分布式计算机环境中,各种软件新技术 不断被应用于信息系统的开发之中,其中工作流(workflow)技术以其良好的适应性 和灵活性而受到广泛关注,并且在银行、保险、法律
23、、行政管理以及工业和制造业 等领域得到了广泛应用,并得以蓬勃发展,越来越显示出其强大的生命力。 2.1 工作流的相关概念 .1 工作流定义 根据工作流管理联盟(workflow management coalition)的定义,工作流是一类能 够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务 能够在不同的执行者之间进行传递与执行。这个定义说明:l、工作流是业务过程的 一个计算机实现,工作流管理系统就是这一实现的软件环境;2、使用工作流作为 业务过程的实现技术首先要求工作流系统能够反映业务过程的几个问题,即业务过 程是什么、怎么做、由谁来做、做得怎样。在实
24、际情况中可以更广泛地把凡是由计 算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。工作流通常用于 过程的自动化,通过文档、信息和任务按照预先定义好的规则和流程在参与者之间 进行传递,从而帮助用户实现整个经营目标12。 .2 相关概念 定义定义 2-1 业务流程(business process) 一组用来实现一个商业或策略目标的存在关联的过程或行为,通常处于一个定 义功能角色和关系的组织结构的上下文中。在某企业或机构中,它能够实现业务目 标和策略的相互连接的过程和活动集,如公文处理流程、投保过程、银行客户的取 款过程等等。 定义定义 2-2 工作流(workflow)
25、 工作流是面向特定应用的业务流程的抽象。它是业务流程的整体地或部分地自 动化处理,文档、信息或任务按照一组规则自动从一个参与者传递给另一个参与者 处理。 定义定义 2-3 工作流引擎(workflow engine) 工作流引擎为一个工作流实例提供执行环境。它提供的服务包括:过程模型的 解释、过程实例的控制(创建、激活、暂停、终止等) 、在过程各活动之间的游历 (控制条件的计算与数据的传递等) 、参与者的加入与退出、生成工作项通知用户 进行处理、工作流控制数据和工作流相关数据的维护、调用外部应用和访问工作流 相关数据等13。 定义定义 2-4 工作流管理系统(workflow manageme
26、nt system) 运行在一个或多个工作流引擎上,使用软件来定义、创建和管理工作流执行过 程的系统,能翻译过程的定义,能与工作流参与者互动,并且能在需要时调用 it 工具和应用软件14。 定义定义 2-5 过程定义(process definition): 计算机所能识别的业务流程的形式化描述,用来支持运行过程的自动化。流 程一般被分解成一些子过程和活动以及它们之间的关系,其定义主要包括运行过程 中所涉及到的各种数据和参数,比如过程的开始和终止条件、各个工作环节(活动) 及相互之间的控制流和数据流关系以及一些关于个体行为的信息,如组成成员、与 it 相关的应用和数据等。 定义定义 2-6 工
27、作流模型(workflow model) 工作流模型是对工作流的抽象表示,也就是对经营过程的抽象表示。工作流 模型是使用工作流定义语言对某个应用域的业务过程形式化描述所得到的结果,它 包含工作流执行所需要的信息。 定义定义 2-7 活动(activity): 活动是工作流中一些逻辑步骤或环节的工作任务,一般分为手工操作和自动处 理两类。活动是流程执行中的最小工作单元,要求有人员的参与或由计算机自动完 成。 定义定义 2-8 流程实例(process instances): 流程实例是实际运行中的一个业务流程。每个实例代表一个能独立控制执行、 具有内部状态的线程。在流程实例执行的业务流程中,wf
28、ms 将解释相应的流程定 义,生产相关的活动实例并根据定义中的控制规则协调这些活动之间的顺序关系, 同时根据数据流动关系的定义完成活动之间的数据传送。从参与者的角度来说,实 例的执行实际上是由参与者处理他所涉及的环节的数据,完成该环节的任务,之后 由 wfms 根据相应结果激活后续环节,同时通知后续参与者对之进行处理,由此 依次反复直至整个流程完成。 定义定义 2-9 活动实例(activity instances): 活动实例是过程实例中的一个逻辑步骤或环节。 定义定义 2-10 工作项(work item) 可被工作流参与者执行的活动实例的表示,一个活动实例通常产生一个或几 个工作项,工作
29、项通过赋予相关参与者的工作列表而被参与者所感知。 定义定义 2-11 任务(task) 活动和工作项的统一表示,在工作流定义的上下文中表示活动,在工作流实 例的上下文中表示工作项。 定义定义 2-12 路由(routing) 工作流实例中任务间的关系,基本的路由关系有:顺序(sequence) 、选择 (choice) 、派生(fork) 、合并(merge) 、同步(synchronization)等。 定义定义 2-13 组织(organization) 任务执行所需要的,一般指参与者,可以是机器,也可以是人。图 2-1 是这些 基本概念之间的相互关系。 图 2-1 工作流的基本概念间的关
30、系 2.2 工作流管理系统参考模型 1994 年 11 月 29 日,wfmc 发布的工作流参考模型,如图 2-2 所示。参考模 型详细描述了工作流系统的有关概念,并在此基础上给出了 wfmc 的主要组成部 分、各部分的功能以及相互之间的接口。 (1)流程定义工具。在流程定义、建模工具、工作流引擎之间定义标准接口。 使流程开发人员能够部署流程定义。流程定义表示一种形式上的业务流程描述,由 各种活动以及相互之间的网状关系组成,标识了流程的开始和终止,并且包含个体 行为的信息,比如各个参与者、与 it 相关的应用程序和数据,等等。该接口采用 的标准是 xpdl(xml process defini
31、tion language) 。 (2)工作流客户端应用程序。该程序由用户结合业务需求而开发,用它来驱 动工作流。客户端程序通过该接口与引擎交互。一般的工作流引擎用户不需要懂引 擎的实现,只要知道怎么实现客户端程序就可以了。它的作用是给用户提供一种手 段,以处理流程实例运行过程中需要人工干预的任务。每个这样的任务就被称为一 个工作项,它包括处理上的一些要求及待处理的数据对象等。wfms 将为每一个用 户维护一个工作项列表,它表示当前需要该用户处理的所有任务。 (3)被调用的应用程序。指工作流核心服务在流程实例的运行过程中调用的, 用以对应用数据进行处理的应用程序。通过普通代理软件调用该接口,允
32、许调用工 作流引擎之外的功能。 (4)其他工作流核心服务。与其他工作流引擎协作的接口。它提供了一个运 行环境,在这个环境中,利用一个或多个工作流引擎进行过程实例化或激活,通过 与必要的外部资源进行交互负责解释和激活部分或全部过程定义,完成工作流过程 实例的创建、执行与管理,如过程定义的解释,过程实例的控制(创建,激活,暂停, 终止等),在过程各活动之间的游历,并生成有关的工作项通知用户进行处理等,为 工作流程的进行提供一个运行时的环境。 (5)工作流管理和监控工具。其功能是对 wfms 中的流程实例的状态进行监 控与管理,如用户管理,角色管理,审计管理,资源控制等。系统管理和监控接口 的目的主
33、要是为了让多个工作流服务共享一个公共的管理和监控系统,可以通过在 wapi 集合中提供特定的命令来完成管理和监控功能管理人员通过监控接口获得流 程运行的确切数据。有时,运行日志也可用于审计15。 图 2-2 wfmc 发布的工作流管理系统参考模型 2.3 petri 网 为了把复杂的企业经营过程定义成工作流引擎可以理解的形式化信息及工作流 管理系统可以管理的工作流,需要建立计算机化的工作流模型。为了全面描述经营 过程,工作流模型通常又包含三个子模型,分别是过程模型、资源模型和组织模型。 过程模型描述经营过程中的活动以及活动之间的关系,资源模型描述活动所需要的 软硬件资源,而组织模型描述活动的执
34、行实体。过程模型是工作流模型的核心,比较 常见的过程建模方法有 petri 网、活动图、状态图等。 petri 网是一个图形化的数学建模工具。一方面可以利用图形化的方式来描述工 作流过程,另一方面可以通过形式化的分析技术检查工作流模型的正确与否,甚至 对其进行性能分析。通过了解 petri 网理论,可以加深对工作流引擎过程模型的理 解。 .1 petripetri 网的基本元素 petri 网作为一个图形化的建模工具,具有四种基本的图元,任何一个 petri 网 模型都是由如下四种基本图元组合形成的。这四种基本图元如图 2-3 所示: (1)库所(2)变迁 (3)弧(4)标记
35、图 2-3 petri 网的基本元素 petri 网定义成三元组,pn=(p,t,f),其中: p=p1,p2,p3pm是库所的有限非空集; t=t1,t2,t3tn是变迁的有限非空集; f=pttp 是有向弧的集合,p 和 t 还满足 pt= 且 pt; 图 2-4 是一个 petri 网模型实例 图 2-4 一个 petri 网模型实例 2.3.2 库所 在 petri 网中,库所因其所处的位置的不同被划分为三类,分别是:起始库所、 终止库所、中间库所。 1.起始库所:即 start place,在标准 petri 网模型中有且仅有一个,它表示 petri 网模型的唯一入口,模型实例将从该
36、点开始并进行流程推进。起始库所的特征是, 没有指向该库所的外向弧,但可以有一个或多个从该库所指向变迁的内向弧。 2.终止库所:即 end place,在标准 petri 网模型中有且仅有一个,它表示 petri 网模型的唯一出口,模型实例将在该点结束流程。终止库所的特征是,没有从该库 所指向变迁的内向弧,但可以有一个或多个从变迁指向该库所得外向弧。 3.中间库所:即 intermediate place,在标准 petri 网模型中可以有 0 个或多个, 它是除去起始库所和终止库所外的第三类库所,通常,中间库所起到的作用是连接 变迁与变迁,中间库所根据其相对于变迁的位置的不同又可以分为输入库所
37、和输出 库所两种。当存在一条内向弧 p-t 时,我们称 p 是 t 的输入库所。当存在一条外 向弧 t-p 时,我们称 p 是 t 的输出库所。 .3 变迁 变迁使用矩形表示。变迁是英文 transition 的中文译文,在英文中 transition 意 为转换、转变。使用 t 来表示变迁,使用 ti(i=1,2,3)表示在一个 petri 网模 型中的某个具体变迁。 .4 弧 弧使用一条有向线段表示。弧是英文 arc 的中文译文,弧在 petri 网模型中起到 的作用是连接库所和变迁,因为有弧的存在,一个 petri 网的模型最终形成了一个 有向图。根据弧的
38、方向是从库所指向变迁还是从变迁指向库所,弧可以分为两类: 内向弧和外向弧。 .5 标记 标记不是 petri 网静态模型的元素,而是 petri 网模型实例运行时的存在的元素。 具体来说,在 petri 网模型建模期间是不存在标记的,只有当该模型被工作流执行 引擎实例化并开始调度时存在的。标记始终是存在于库所中的,如果把库所理解为 一种容器,那么,库所的作用就是用来装标记的。petri 网模型实例中标记在所有库 所中的分布状态就反映了一个 petri 网模型实例的运行状态。 .6 petri 网的触发器 变迁处于就绪态的时刻和变迁处于激发态的时刻是不同的。能够引
39、起一个处于 就绪态的变迁向激发态迁移的事件被称为一个“触发器” 。存在四种不同类型的触 发器如图 2-5 所示。 ab cd 图 2-5 petri 网的触发器 a)自动触发:任务一旦从常态迁移到了就绪态就马上可以被激发。这种类型的触 发应用于那些不需要人来交互的而是被应用程序来执行的任务。 b)用户触发:任务由人来触发,例如,用户选择一个处于就绪态的任务来执行。 在一个工作流管理系统中每个用户都有一个任务输入箱,这个输入箱所包含的 就是那些已经就绪的可以被用户执行的任务实例,任务实例也称为工作项 (workitem) 。用户选择并完成一个工作项的操作就是相关的任务实例的触发, 同时工作流实例
40、也将进入流程的下一阶段。 c)时间触发:处于就绪态的任务由一个时钟来触发。例如,任务项在一个预定的 时刻被执行。 d)消息触发:一个外部事件触发一个处于就绪态的任务实例。消息可能是电子邮 件、传真、电话或 edi 消息。每个这样的外部事件都对应应用任务的某个活动, 这样工作流系统才能知道事件的发生。 .7 petri 网的路由 从工作流程的起始库所到中止库所的路由形式有多种,如下: 顺序路由: 图 2-6 顺序路由示意图 并行路由: 图 2-7 并行顺序路由示意图 条件路由: 图 2-8:条件路由示意图 迭代路由: 图 2-9:迭代路由示意图 .8 petri
41、网的发散和汇聚 为了能够实现 petri 网的路由方法,需要使用发散和汇聚,petri 网具有如下基 本的发散和汇聚单元: 与发散显式或发散隐式或发散 与汇聚或汇聚 图 2-10:petri 网的发散和汇聚标示 1与发散 与发散标示的是一种并行路由,即多个任务可以并行地或以某种不确定的次序 进行。用图表示为具有一个输入库所、两个或多个输出库所的变迁。这样,当该变 迁被激发后将为所有的输出库所产生 token。 2与汇聚 与汇聚用图表示为一个具有两个或多个输入库所和一个输出库所的变迁。这样, 变迁只有当其所有的输入库所中都拥有了可用的 token 后才能够从常态迁移到就绪 态,既是说,输入库所前
42、并行的流程必须全部执行完,才汇聚到当前变迁,任何一 个输入库所没有可用的 token,变迁都处于同步等待状态。 3显示或发散 显示或发散是条件路由的一种具体实例,它在流程的推进中表现出来的特征是 尽可能早的确定(as early as possible) 。用图表示为在变迁的输出弧上附加了条件判 断,即是说,当变迁被激发后,并不是为其所有输出库所产生 token,而是要根据 输出弧上的条件,通常条件是一种 boolean 型的表达式,以决定是否为弧所连接的 输出库所产生 token。 4隐式或发散 隐式或发散也是条件路由的一种具体实例,它在流程的推进中表现出来的特征 是尽可能晚的确定(as l
43、ate as possible) 。用图表示为存在两条弧从同一库所出发指 向不同的变迁,这样,当输入库所获得 token 后,哪个变迁先激发就会获得这个 token。一旦某个变迁消耗了该 token,那么,另外的变迁将不再具备就绪的条件了, 也就无法被激发了。 5或汇聚 或汇聚用图表示为两个不同的变迁拥有同一个输出库所,这样,这两个不同的 变迁中任何一个的激发都会使得其输出库所后继的变迁的状态的迁移16。 2.4 本章小结本章小结 本章首先介绍了工作流的定义与相关概念,给出了工作流管理系统的参考模型。 然后对工作流建模工具 petri 网的定义与原理进行了相关介绍。 3 jbpm 技术与开发框
44、架 3.1 jbpm 技术 工作流系统理论的研究仍是年轻的,至今没有一种流程控制调度理论能与实践 应用完美的结合。在这种背景下,本章分析了当前活跃在应用领域的工作流管理系 统jbpm。深入分析了其系统结构、流程建模及任务管理方法。并从源码层次对其任 务调度机制进行了深入剖析,为当前工作流系统的研究开发者提供了一种简单实用 的解决方案。 3.1.1 jbpm 简介 jbpm,全称是java business proeess management,是基于j2ee的轻量级工作 流管理系统。jbpm是公开源代码项目,它的使用要遵循apache lieense,可以免费 应用于商业开发。jbpm在200
45、4年10月18日,发布了2.0版本,并在同一天加入了 jboss,成为了jboss企业中间件平台的一个组成部分,它的名称也改成 jbossjbpm。现在的最新版本是3.2。jbpm具有以下几个特点: jbpm采用的jpdl(jbpm process definition language)流程描述语言,这种语 言使用简单而功能强大,它使得业务分析人员与软件开发人员都能很直观的与软件 进行交互,从而有助于获得高效的业务解决方案。jbpm采用java语言实现,其核心 功能都被封装作为一个简单的java库,提供了对外交互的api,开发人员可以很方 便地在其之上进行功能扩展。jbpm采用hiberna
46、te进行数据持久化操作,这使它能 在不同的数据库服务器上轻松布署并方便地进行管理24。图3-1为jdpl组件概况。 图 3-1 jpdl 组件概况 3.1.2 jbpm 特点 (1)灵活的、可扩展的流程引擎 jbpm流程引擎在应用和服务之间协调交互作用提供了有力的基础。它适合面 向服务的架构,和所有基于j2ee整合技术彼此协作,这些技术包括web服务,java 消息,jdbc和ejb。流程引擎处理流程计时器也自动地处理状态、变量和任务管理, 并且审查记录通过的所有活动流程。jbpm提供可见的流程当前的点到点状态,在这 些状态里用户和应用正处于交互之中。当适当地执行长时间运行的流程是一件复杂 的
47、任务的时候,jbpm以一种灵活和扩展的方式处理了这个难题。jbpm统一工作流的 定义、执行和管理并且为管理用户与系统之间的交互提供一个集中平台。 (2)可嵌入的和可插拔的架构 jbpm设计成可以独自运行或无缝地嵌入到任何java应用或程序框架里,比如 jboss seam。它的嵌入特性对于应用的需求是可以完成自定义的。此外,jbpm可插 拔的架构允许在各级扩展和自定义;在流程引擎里,包括每一个流程定义和每一个 相关的流程实例。 jbpm设计成可支持多流程语言和环境,包括工作流的jpdl和人类的任务管理, 用于web服务架构(计划未来发布)的bpel,以及在web应用中嵌入工作流的页面流。 支持
48、多流程语言的能力是一个关键微分器。能够让流程开发人员和web应用开发人 员为创建一个广泛的应用利用一个统一的平台。 (3)与jboss seam集成 jboss seam 是一个创建 web2.0 和基于 ejb3、jsf、ajax 和其他 innovative 技术的富企业应用框架。jboss seam 为所有的 java 组件提供描述性的应用状态管 理,与 jbpm 紧密整合可以支持页面流的情况。jboss seam 组件是有状态和上下文 联系的,具有一个定义明确的容器处理的生命周期。通过在 jboss seam 里使用 jbpm,开发人员能够编写带有复杂工作流的应用并且更加容易与用户交互
49、。 (4)简单的编程模块 jbpm 用流程定义语言(jpdl),提供了正真独特的面向流程的编程模块 jpdl 混合最好的 java 和宣布的编程技术,使开发人员容易理解流程图,方便构成他们 的件软,这个方法用一种普通的方言描述业务流程,让业务人员和开发人员说相同 的语言。jbpm 包含基于 eclipse 的可视化的设计器,简化了 jpdl 部署。jbpm 可视 化的设计器支持以图形和 xml 代码方式查看业务流程或工作流,能够让不同编程水 平的程序员合作来开发。 (5)流程所知节点的丰富种类 jbpm 包含预建流程 jpdl 节点的分类,节点用于创建流程图。这些节点提供必 须的流程创建功能比
50、如开始、任务、分支、结合和决定。这些节点提供默认的流程 所知的执行也使 java 代码能够无缝地插入其中来扩展流程逻辑和写上应用的独特 需要。 (6)企业类可靠性和扩展性 支持业务流程嵌入在java应用里,jbpm能够在jboss企业应用平台上部署,从 应用的proven基础获益。需要superior表现和扩展性。此外,jbpm和其他应用服务 一起部署,比如bea weblogic服务和ibm websphere application server18。 3.1.3 jbpm 流程建模 为了把复杂的业务流程定义成工作流引擎可以理解的形式化信息及工作流管理 系统可以管理的工作流,需要建立计算机
51、化的工作流模型。为了全面描述业务流程, 工作流模型通常又包含三个子模型,分别是过程模型,资源模型组织模型。过程模 型描述经营过程中的活动以及活动之间的关系,资源模型描述活动所需要的软硬件 资源,而组织模型描述活动的执行实体。过程模型是工作流建模的核心,比较常见 的过程建模方法有petri网、活动图、状态图等jbpm定义了自己的流程定义语言 jpdl,用它来精确描述业务流程,并用户提供了可视化的面向图形的编辑流程定义 的方法,其流程定义采用格式。 jbpm的过程建模结合了uml活动图和状态图的知识,并且吸收了petri网的理念。 它使用了活动图transition/event概念;在其流程控制实
52、现中还采用了状态图 token的概念。下面简单介绍jbpm流程基本概念。 1 1 节点节点(nodes)(nodes): jpdl提供了几种可以直接使用的节点类型,在这些节点中已经定义了流程的执 行方式(工作流的模式)。但是jpdl允许开发者编写自己的节点类型,定制代码实现 用户自己指定的节点行为,这就使jpdl对工作流模式有了良好的扩展支持。 jpdl主要定义了以下几种节点类型: (1)task-node结点 一个task-node节点包含一个或多个task子元素和完成这些task的actor。每 个task-node节点代表着一个或多个将要被该actor完成的任务。当流程执行到 task-
53、 node节点时,jbpm将会自动为task-node节点下的每一个task创建task instance,并将它们放进actor的任务列表中。之后,流程就处于等待状态,一直 到它里面的所有taskinstances都被指定的actor执行完为止,当所有的 taskinstance被执行完后,流程将会自动转移到下一个节点(相当于给当前的token 发了一signal(),继续流程的执行。在task一node节点中,用户可以灵活的定义对 每个task子节点的处理方式。jpbm提供了高度可扩展的机制来方便用户定义特殊的 处理逻辑。比如在审批过程中常见的回退,协同工作中的会审等等子元素来实现, 在c
54、ondition元素的值中直接编写条件判断脚本,该脚本返回boolean类型值。当流 程执行到deeision节点时,计算eondition指定的脚本,第一个返回值为true的转 移将被执行。另一种方法是通过decision节点的handler元素来实现,该元素的指 定了一个实现了decisionhandler接口的类,在这个类中的decide()方法的返回值 为string类型,该返回值即是所要执行的转移的名字。当流程执行到该节点时,类 的decide()方法将会被调用,从而决定流程的执行路径。decision节点的定义,支 持了工作流or-split模式。 (2)节点类型分支(fork)
55、fork 节点把一条执行路径分离成多条同时进行(并发)的执行路径,当流程到 达该节点时,流程产生多个相同的流程沿着 fork 节点的全部路径转移,并行执行。 对于每个离开 fork 节点的子流程,jbpm 会跟它分配一个子 token,所有子 token 的父 token 则为到达该 fork 节点的 ro 吐 token。fork 节点支持了工作流 and- split 模式。 (3)节点类型联合(join) join 节点与 fork 节点是一一对应关系,有一个 fork 节点就要有一个 join 节 点,反之亦然。默认情况下,join 节点会认为所有到达该节点 token 都有着相同父
56、tokenojoin 节点会检查每一个到达该节点的 token,当所有的子 token 都到达该节 点后,结束所有的子 token,激活它们相同的父 token,继续流程的执行。当仍然 有子 token 处于活动状态时,join 节点是 waitstate(等待状态),流程在此等待。 join 节点支持了工作流的 and-join 模式。 (4)节点类型node node节点是专门用来添加用户代码的,node节点要求有一个action子元素,该 元素的值对应着一个实现了actionhandler接口的类名。在该类的execute()方法中 可以实现任何操作,如调用javaapi,ejb等。当流
57、程到达该类型节点时,aetion元 素对应的实现了action handler接口的类的exeeute()方法会自动执行,从而实现 用户所需求的操作。但要注意的是,在该实现类中应对流程的继续执行负责,一般 是通过在它的execute()方法体的最后用executecontext.leavenode(string)来实 现。 总结以上节点类型,节点主要由以下选项来控制流程的执行: (1)进入等待状态。此时节点的行为是使流程进入阻塞状态,等待触发条件。 (2)自动执行。此时节点的行为是自动执行一些定制的程序逻辑后,调用如 executioncontext.leavenode(string)方法,使
58、token由当前节点,通过 transition,到达下一个节点。在此过程中,节点不进入阻塞状态,而是自动执行。 (3)建立新的执行路线。比如fork节点,在执行fork节点时,流程为root token建立新的child token。 (4)结束流程。节点可以指定流程结束。 (5)建立自己的token树,实现流程执行时包含复杂tokert树的流程实例,在这 种情况下每一个token表示一个执行的路线。比如当流程执行中有子流程时,流程 将为子流程建立新的roottoken,新的token由子流程自己维护。 2 2 转移转移(transitions)(transitions) 每个转移在图中表示
59、为一条线,它有一个源节点和一个目的节点。可以给 transition指定一个名字。流程执行时,根据指定的名字选择transitinn,如果一 个节点有两个以上重名的transition,只识别第一个 transition。listgetleavingtransitions()返回当前节点下一步转移的列表,流 程自动执行时默认的转移是该方法返回list中的第一项。 3 3 动作动作(actions)(actions) jbpm 中动作(actions)是在流程执行的过程中自动执行的 java 代码段。流程的 图形化表示在进行软件需求分析讨论时十分重要,但是流程的图形化只给了软件设 计的一个框架视
60、图,隐藏了技术细节。action 是一种为流程图增加技术细节的机制。 当一个流程部署的时候,actio 也随之一起被部署。流程执行时的事件(event)类型 主要有:进入节点(entering a node),离开节点(leaving a node)和执行转移 (taking a transition)。action 就是在这些事件中定义的,当这些事件执行时, 其中定义的 action 将被执行。 4 4 异常处理异常处理(exception(exception hand1ing)hand1ing) jbpm 的异常处理只是简单应用了 java 异常,主要用来处理流程定义里自定义 类抛出的异常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届上海师大附中高三第三次测评英语试卷含解析
- 2025-2030商业地产产业市场发展分析及发展趋势与投资研究报告
- 2025-2030卫衣产业规划专项研究报告
- 2025-2030农业旅游产业政府战略管理与区域发展战略研究咨询报告
- 陕西韩城象山中学2025届高三第六次模拟考试英语试卷含解析
- 广东省肇庆市鼎湖中学2025届高考英语一模试卷含解析
- 2025-2030全球及中国即时支付行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030停车场行业市场发展现状分析及发展趋势与投资战略规划报告
- 湖北省“荆、荆、襄、宜四地七校考试联盟”2025届高三第三次模拟考试英语试卷含解析
- 2025届安徽六校教育研究会高考全国统考预测密卷英语试卷含答案
- 2025年重庆市中考物理模拟试卷(一)(含解析)
- 《服务营销双主动》课件
- 公司法公章管理制度
- 演出经纪人员资格备考资料2025
- 成都交通投资集团有限公司招聘考试真题2024
- (二模)嘉兴市2025年高三教学测试语文试卷(含答案)
- DZ∕T 0227-2010 地质岩心钻探规程(正式版)
- GB/T 23858-2009检查井盖
- 员工个人信息保护合规要点清单
- 山东省危废处理名录
- 班组安全安全考核表
评论
0/150
提交评论