毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc

上传人:yyf 文档编号:3286941 上传时间:2019-08-08 格式:DOC 页数:45 大小:1.05MB
返回 下载 相关 举报
毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc_第1页
第1页 / 共45页
毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc_第2页
第2页 / 共45页
毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc_第3页
第3页 / 共45页
毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc_第4页
第4页 / 共45页
毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-面向服务的工作流引擎的设计与实现.doc(45页珍藏版)》请在三一文库上搜索。

1、学号: 200632580267 密级: 武汉大学本科毕业论文面向服务的工作流引擎的设计与实现院(系)名 称:国际软件学院专 业 名 称 :软件工程学 生 姓 名 :指 导 教 师 : 二一年五月BACHELORS DEGREE THESIS OF WUHAN UNIVERSITYThe Designing and ImplementingWorkflow EngineBased on Service-Oriented ArchitectureCollege :International School of Software Subject :Software EngineeringName

2、:Lu FanfengDirector :Ying Shi ProfessorMay 2010郑 重 申 明本人呈交的科研项目论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。本人签名: 日期: 摘 要传统的工作流技术受体系结构的限制,在适应目前大规模的企业应用需求上显得力不从心,它无法将现有的web服务编排起来,形成工作流程,适应新的业务需求,实现web服务的重用和系

3、统需求的重构。本文就是针对上述问题,对面向服务的工作流引擎进行研究,并以开源的工作流引擎jbpm为基础,开发一个面向服务的工作流引擎jbpm4ws。本文对jbpm4ws的研究围绕着系统需求展开,在系统需求中详细介绍了jbpm4ws需要实现的功能和系统应满足的非功能性需求。紧接着,对jbpm4ws的设计原理和系统的体系结构做了详细介绍,提出了jbpm4ws的流程定义语言jpdl4ws,jpdl4ws扩展了jpdl对任务的描述,添加了任务处理的服务特性,支持以服务的形式描述任务处理过程;实现了流程的服务化,让外界对流程数据的访问只能通过流程访问服务来完成。最后,以汽车制造为案例,介绍jbpm4ws

4、在现实系统中的应用场景。关键词:工作流引擎;面向服务;流程定义;流程实例;流程的服务化;ABSTRACTBecause the architecture of the traditional workflow technology constraints, It cant adapt to the current application requirements in large-scale business enterprises,and it can not lay out the web services effectively so as to forming workflow and

5、 meeting new functional requirements. This paper addresses this problem on a service-oriented workflow engine study, and developed a service-oriented workflow engine-jbpm4ws on the based of a open source workflow engine-jbpm. This paper starts as System Requirements, and in the system requirements i

6、t describes the non-functional requirements in detail which is needed to implement the functions and systems of jbpm4ws. Then, introduce the jbpm4ws design principles and the architecture of system in detail and propose jbpm4ws process definition language - jpdl4ws, jpbl4ws expands the description o

7、f the task, adds the services features of task processing, support the way to describe task processing the form of service; achieve the service of process, so that the outside world access to process data can only be accomplished through the process access to service.Finally, a car manufacturing com

8、pany is taken as a case to introduce the scenarios of jbpm4ws in the real system.Key words: Workflow Engine;service-oriented ;Process Definition; Process Instance; the Service of Process目 录摘 要IABSTRACTII第1章 引言11.1 研究背景11.2 研究内容21.3 论文组织结构2第2章 背景知识介绍42.1 SOA基础42.1.1 SOA的定义42.1.2 SOA的关键特性42.1.3 SOA的实现

9、技术52.2 工作流基础62.2.1 工作流概述62.2.2工作流核心概念72.2.3 工作流参考模型82.3 jbpm基础92.3.1 jbpm概述92.3.2 流程定义基础知识10第3章 面向服务的工作流引擎jbpm4ws123.1 jbpm4ws系统说明123.1.1 系统概述123.1.2 流程实例状态图123.2 jbpm4ws的需求分析133.2.1 管理流程需求分析133.2.2 管理流程实例需求分析143.2.3 非功能需求分析153.3 jbpm4ws程序开发流程16第4章 jbpm4ws的设计与实现174.1 jbpm4ws的设计原理174.2 jpdl4ws的设计184.

10、3 jbpm4ws的概要设计194.3.1 系统整体架构194.3.2 系统核心包204.4 jbpm4ws的实现234.4.1 功能服务实现234.4.2 流程的服务化26第5章 jbpm4ws的应用案例285.1 案例简介285.2 案例分析与设计295.2.1 案例体系架构295.2.2 系统流程设计305.2.3 功能服务设计315.3 部署实施32第6章 总结与展望35参考文献36致 谢38IV第1章 引言1.1 研究背景随着市场经济的发展,经济开始走向全球化。在经济全球化面前,各个企业的业务将迅速增长,业务之间的关系将变得错综复杂,从而导致变更业务需求、更新业务需求之间的联系的工作

11、量会变得非常庞大。如何以快速的方式来实现需求的有效变更,减小软件开发过程中的工作量,提高系统的可维护性和可重用性,是如今IT界探讨的新话题。SOA的解决方案正是在适应这些需求下产生的。它是在以以前的软件架构技术为依托,一步一步发展而来的。它可以看作是B/S模型、XML/Web Service技术之后的自然延伸,是一个“松耦合、高内聚”的渐变演进过程。在一定程度上解决了系统的可重用性和可维护性。另一方面,在实际企业运作中,已经开始提出了工作流程自动化与企业再造工程的需求。这些企业希望由内部做起,缩短流程作业时间,快速反应市场与客户需求,有效监控工作进度,加强内部信息沟通传递效率,分析流程作业成本

12、与死角,从而有效的降低管理成本,提升企业决策反应能力。将人工操作流程顺利信息化与自动化,已成为许多企业未来兴衰的关键,而实现流程自动化的关键技术就是工作流1。然而,传统工作流技术由于体系结构的限制,在适应目前企业大规模的业务应用需求上显得力不从心,传统的工作流技术受体系结构的限制,在适应目前大规模的企业应用需求上显得力不从心,它无法将现有的web服务编排成起来,形成工作流程,适应新的业务需求,实现web服务的重用和系统需求的重构。因此面向服务的工作流17应运而生,在面向服务架构下的工作流技术利用了SOA架构所具有的快速反应性、可适应性和易操作性等特性,对提高企业的业务流程的信息化支持力度,对企

13、业竞争力方面有着非常积极的作用。现今j2ee平台上应用较为广泛的开源的工作流引擎产品有bpel和jbpm,然而bpel的开发比较复杂,学习难度较大,相反jbpm学习起来就容易得多。而且jbpm是一种基于j2ee的轻量级工作流管理系统,它还提供了对bpel的扩展,存储支持hibernate实现18。jbpm是较适合扩展的开源工作流引擎,也是较容易被商业化应用的开源工作流管理系统。然而,jbpm本身不提供对web服务的支持。1.2 研究内容本文对基于jbpm的面向服务的工作流引擎(jbpm4ws)的研发就是在上述的背景下展开的。本文的研究内容包括以下五个部分:(1) 对jbpm4ws进行需求分析,

14、指出jbpm4ws应该满足的功能性需求和非功能性需求。(2) 对jbpm的流程描述语言jpdl存在的问题进行分析,并以此为基础,提出了一套扩展的面向服务的流程描述语言jpdl4ws。(3) 对jbpm工作流引擎进行改进,采用cxf+spring+hibernate开发新的面向服务的工作流引擎jbpm4ws。(4) 将流程服务化,让外界可以以web服务的方式对流程的执行过程进行调度,对流程的执行信息进行监控。(5) 将改进的面向服务的工作流引擎用于汽车制造的案例中。 本文扩展的工作流引擎具有以下四个特征:.(1) 跨平台性:系统具备一定的跨平台能力,支持企业采用不同的软硬件平台。(2) 提供对异

15、构的企业应用环境的支持:能够通过流程建模,将异构的企业应用以服务的方式集成到工作流程中,完成整体应用目标。(3) 提供对上层统一接口的支持:系统为访问其内部各个层次的组件提供一致的接口,以保证系统能与其他上层模块或应用系统以系统开发时不能预见的方式集成。(4) 将流程服务化:将流程操作接口发布成服务,让外界系统能够以服务的方式调用接口。虽然流程引擎的研发包含了需求分析、概要设计、详细设计、代码实现、维护等各个方面,但本文着重从需求和设计两个方面进行论述。1.3 论文组织结构本文大体可以分为以下五个部分:第一部分是引言,主要介绍了本文的研究背景、研究内容和全文的组织结构;第二部分是背景知识介绍,

16、讲解了开发面向服务的工作流模型要用到的相关知识,主要是对SOA的基础知识、工作流的基础知识和jbpm的知识进行介绍;第三部分是jbpm4ws的需求分析,在介绍需求分析时,先介绍了系统的整体概况,然后通过用例图的方式对系统的功能需求进行了描述,同时对系统的非功能性需求进行了文字描述,最后以怎样使用jbpm4ws进行系统开发结尾;第四部分是jbpm4ws的概要设计和详细设计,在这个部分给出了jbpm4ws的体系结构和核心包图,是整篇论文的核心;第五部分则是针对开发的工作流引擎jbpm4ws给出应用案例;第六部分是总结与展望,是在总结全文的基础之上,指出现有的jpbm4ws存在的问题,为今后的工作做

17、准备。第2章 背景知识介绍2.1 SOA基础2.1.1 SOA的定义面向服务的体系结构(SOA)的概念是在1996年由Gartner公司提出来的。当时Gartner将SOA定义为:“客户端/服务器的软件设计方法。”从这以后,SOA的定义便层出不穷,下面列举了对SOA比较权威的定义。S将SOA定义为:“服务的集合,服务间会彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动,服务间需要某些方法进行连接。而服务则是精确定义、封装完善、独立于其他服务所处环境和状态的函数。” W3C将SOA定义为:“一套可以被调用的组件,用户可以发布并发现其接口。”19IBM将SOA定义为

18、:“一种将信息模块化为服务的架构风格。”百度百科中将SOA定义为:“一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。”到目前为止,关于SOA还没有一个统一的、被广泛认可的定义。但无论专家如何诠释SOA,它的核心思想是不变的,那就是服务,SOA的重点是面向服务的3。当然,这个服务包括企业的内部与外部的每一个业务细节,并把这些服务从复杂的环境中独立出来,使得各服务之间是可互操作的、独立的、模块化的、

19、位置明确的、松耦合的并且是可相互调用,不依赖于其它系统的。2.1.2 SOA的关键特性SOA作为一种新的架构风格,它与传统的架构风格相比,有自己的特点,这些特点主要体现在以下三个方面2,3:(1) 模块化服务,把业务功能分解并打包成模块化服务,该服务是具有自包含和自描述特征的。服务可以根据需要进行混合和匹配来创建新的组合服务,也可以由其他模块化服务组成;(2) 服务封装,将服务的内容和其具有自描述特征的接口进行分离。封装公开了服务的功能,隐藏了服务内部的实现,保证实现可以在接口不变的情况下进行独立演变;(3) 中立的接口定义:服务的接口定义是采用通用协议进行的。正是由于上述特点,使得SOA在与

20、其它软件架构风格相比,有着一下三点优势: (1) 耦合性低:SOA将应用程序的不同功能单元,通过服务间定义的接口联系起来,而接口是中立的,这样大大降低了系统与系统之间、系统内部的各个功能模块之间的耦合性;(2) 互操作性强:SOA 可以实现任何平台之间的跨平台调用,而与编程的语言、操作系统和计算机类型等等无关,可以确保各系统之间的集成性和互操作性;(3) 重用性高:服务重用避免了重复开发的弊端,同时提高了实现中的一致性。由于使用目的不同,可以将服务分别多次进行组合。在应用中,服务重用比组件重用和类的重用要更容易实现。另外,在SOA系统中要注意保持服务接口的稳定。稳定的服务接口可以让服务的提供者

21、和服务的消费者独立演变。2.1.3 SOA的实现技术在典型的SOA系统中,会涉及3个参与者。即服务注册代理、服务请求者、服务提供者。这三者之间的关系可以用图2-1来描述,下面是对参考模型中个参与者的解释: 图2-1 SOA参考模型图服务请求者:服务请求者是一个应用程序、一个软件模块或SOA系统中的一个服务。它发起对服务注册代理的服务查询,通过传输绑定协议调用远程服务。服务请求者根据接口契约来调用服务。服务提供者:服务提供者是实现服务接口的一个可通过网络寻址来查找的软件实体,它接受和执行来自服务请求者的请求。它将自己的服务和接口契约发布到服务注册代理,以便服务使用者可以发现和访问该服务。服务注册

22、代理:服务注册代理是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务请求者查找服务提供者。SOA架构中每个参与者都扮演着服务提供者、使用者和注册中心这三种角色中的某一种或多种。并且它们之间会通过协议进行交互,他们之间的交互包括:发布:为了使服务可访问,服务提供者会向服务注册代理发布服务,这样服务使用者就可以通过服务注册代理来发现和调用它。发现:服务请求者定位服务,方法是服务请求者向服务注册代理发送请求,查找需要调用的服务,服务注册代理找到满足其标准的服务,并将结果返回给服务请求者。绑定和调用:在检索完服务描述之后,服务请求者会根据服务描述中的信息向服务提供者发送请求,服务提供者

23、会执行相应的服务,并将执行结果返回给服务请求者。2.2 工作流基础2.2.1 工作流概述工作流是对现实生活中业务流程的自动化管理,它将将业务流程中的工作按照一定的逻辑顺序组织在一起,并对组织在一起的工作实施管理,它能够在多个参与者之间,利用计算机,按某种预定的规则自动传递文档、信息或者任务。工作流技术的研究开始于上个世纪70年代中期对办公自动化领域的研究,但工作流思想的出现还应该更早,1968年Fritz Nordsieck就已经清楚地表达了利用信息技术实现工作流程自动化的想法。70年代与工作流有关的研究工作包括:宾夕法尼亚大学沃顿学院的Michael D. Zisman开发的原型系统SCOO

24、P,施乐帕洛阿尔托研究中心的Clarence A. Ellis和Gary J. Nutt等人开发的Officetalk系列试验系统,还有Anatoly Holt和Paul Cashman开发的ARPANET上的“监控软件故障报告”程序。SCOOP,Officetalk和Anatoly Holt开发的系统都采用Petri网的某种变体进行流程建模。其中SCOOP和Officetalk系统,不但标志着工作流技术的开始,而且也是最早的办公自动化系统。含有工作流特征的商用系统的开发始于1983年至1985年间,早期的商用系统主要来自于图像处理领域和电子邮件领域。图像处理许多时候需要流转和跟踪图像,工作流

25、恰好迎合这种需求;增强的电子邮件系统也采用了工作流的思想,把原来点对点的邮件流转改进为依照某种流程来流转。在这些早期的工作流系统中只有少数获得了成功。进入90年代以后,相关的技术条件逐渐成熟,工作流系统的开发与研究进入了一个新的热潮4。据调查,截至1995年共有200多种软件声称支持工作流管理或者拥有工作流特征。工作流技术被应用于电讯业、软件工程、制造业、金融业、银行业、科学试验、卫生保健领域、航运业和办公自动化领域。1993年8月,工作流技术标准化的工业组织-工作流管理联盟(WFMC)成立。 1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业

26、标准。2.2.2工作流核心概念工作流管理联盟的成立标志着工作流技术进入了相对成熟的阶段5,6。为了实现不同工作流产品之间的互操作,工作流联盟制定了工作流管理系统7,8,9的相关术语、体系结构以及应用编程接口,其中核心概念和定义如下:工作流:一类能够完全或者部分自动执行的经营过程,它根据一系列的过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行;业务流程:企业或者机构为了总体业务目标,而进行的一系列相关活动,这些活动的执行需要遵循一定的规则;流程定义:业务流程的形式化描述,用来支持系统建模和运行过程的自动化。流程可分解为一系列的子流程和任务,其定义包括描述流程起始、终止的关系网络以及

27、一些关于个体行为的信息,具体而言,即构成流程的各任务节点以及各任务间的关系、组织成员的角色、应用中的数据结构等;任务:业务流程的一个执行阶段,由执行者完成。执行者可以是人、软件系统或二者的集合,任务是过程执行中可被工作流引擎调度的最小工作单元,任务的执行要求有人或机器的参与;流程实例:实际运行中的一个流程,每个实例代表一个能独立控制执行、具有内部状态的线程;工作流引擎:根据流程定义工具流程定义文件来管理,流程实例的生成、运行与结束。一个任务执行完成后,引擎根据流程定义文件将控制权及其所引用的过程实例数据自动地向后传递。任务的执行如果需要人的参与,引擎应将该实例信息加入相应人的工作列表中,并且在

28、人选择开始该活动实例的运行时,激活预定义的应用程序模块,如果不需要人的参与,引擎应直接激活预定义的软件模块。在流程实例执行过程中,引擎将随时记录运行信息。2.2.3 工作流参考模型工作流模型是对工作流的程序结构的抽象表示。它确定了程序结构中的接口,使得这些接口可以在不同产品和不同的结构层次上协同工作10,11。图2-2是WFMC给出的工作流系统的参考模型,从图中可以看出,一个通用的工作流系统包含以下5个部分12,13:图2-2 工作流参考模型图(1) 流程定义工具:以计算机能处理的形式进行流程定义,现在的大多数流程定义工具采用了图形方式。流程设计者通过绘图方式来创建流程模型,最后输出一个流程定

29、义文件;(2) 工作流执行服务:由一个或多个工作流引擎组成,它主要解释流程定义、创建流程实例、并执行流程实例,在流程定义的执行过程中,会与工作流客户端和外部应用系统进行交互; (3) 客户端应用:是用户操作工作流管理系统分配来的任务的客户端,由工作流任务表管理器和任务操作共同完成。工作流任务表管理器是一个软件模块,负责管理工作流的任务表,并完成与工作流参与者的交互操作。(4) 调用应用:在工作流任务执行过程中,一些不需要人员参与的活动会直接调用一些外部应用程序。(5) 管理监控工具:对工作流在整个组织内的流程情况进行监控,并提供一系列管理功能,实现安全控制、过程控制、授权等操作。典型的功能范围

30、包括用户管理、角色管理、监控管理、资源管理、过程监控管理。具体如:过程模型的实例化,启动、挂起、恢复、终止过程实例;管理正在执行的过程实例等;这5个部分之间的交互由下面5个接口来完成14:(1) 流程定义部署接口(接口一):将流程定义工具设计的流程定义文件部署到工作流引擎的通信接口;(2) 工作流客户端应用程序接口(接口二):客户端工作流应用程序与工作流引擎之间的通信接口;(3) 应用程序调用接口(接口三):工作流引擎直接调用应用程序或应用程序代理的API,是工作流系统同应用系统通信的主要接口;(4) WAPI协作功能接口(接口四):工作流引擎与工作流引擎之间的通信接口,是构成分布式工作流管理

31、系统的主要功能接口;(5) 管理和监控接口(接口五):提供对工作流机状态以及工作流运行实例的监控和管理的接口。本文研究的工作流引擎与参考模型中的工作流引擎一致。2.3 jbpm基础2.3.1 jbpm概述jbpm,全称是Java Business Process Management(业务流程管理),它是jboss开发的开源的工作流引擎。jbpm覆盖了业务流程管理、工作流、服务协作等领域,是一个灵活的、易扩展的可执行流程语言框架15。jbpm框架主要有三部分组成:(1)、用于描述流程定义、处理业务逻辑的流程定义语言jpdl:jpdl是基于状态图的,它详细定义了流程的起始状态、结束状态、状态之间

32、的转换,以xml的方式直观地描述业务流程;(2)、对流程逻辑进行控制的流程虚拟机pvm:pvm将对jpdl定义的流程描述文件进行解析,并将解析的数据持久化到数据库中,当请求创建流程实例时,pvm会从数据库中取出流程定义,并根据流程定义创建对应的流程实例,然后执行相应的流程实例;(3)、对jpdl的建模工具,目前jbpm提供了eclipse插件版的图形化建模工具,开发人员可通过绘图的方式构建自己的流程定义。jbpm这三个部分之间是独立的,开发人员可以根据自己的需要对其进行扩展。例如,可以开发符合自己需求的jpdl规范的流程建模工具。jbpm采用hibernate来进行数据库管理,因此,凡是 hi

33、bernate 支持的数据库,jbpm也就支持。通过这种方式,jbpm将数据的管理职能分离出去,专注于商务逻辑的处理。另外,jbpm可以与spring进行无缝集成,可以将jbpm对数据库的事物管理、对IOC容器的管理交由spring来完成,从这儿也可以看出,jbpm的灵活性和可扩展性。2.3.2 流程定义基础知识流程定义包括流程建模,流程建模即采用图形化的方式来定义流程,而流程建模是流程定义的核心,它会以一组对象来形式化描述流程。jbpm流程建模使用的是改良的UML活动图,同时采用jpdl作为流程建模语言,jpdl的核心元素主要有以下几个部分组成16:状态结点(state):是一个典型的等待状

34、态。同任务结点不同的是,状态结点不会向任务列表添加任务实例。它的完成需要等待外部系统的干预,这儿的外部系统不包括人。开始节点(start):是状态节点的一种,它是整个流程的入口,在流程中只能有一个。终止节点(end):是状态节点的一种,在流程中可以有多个。任务结点(task):任务结点由人介入的一个或多个任务组成,当流程运行到一个任务结点时,会生成对应的“任务实例对象(task instances)”,并添加到参与人的任务列表中,之后结点会处于等待状态,直到参与人完成任务,并激活流程继续向下执行。转换(Transition):它决定流程中节点之间的转移路径,它连接了源节点和目标节点。分支判断节

35、点(decesion):它会对流程中的条件进行判断,会在不同的条件下转移到不同的任务节点。第3章 面向服务的工作流引擎jbpm4ws3.1 jbpm4ws系统说明本节是对jbpm4ws进行需求分析前的说明,主要包括系统概述、流程实例状态图两个方面。其中,系统概述介绍了jbpm4ws的整体概况,而流程实例状态图则是对jbpm4ws中流程实例的状态进行描述。3.1.1 系统概述本文是对jbpm进行扩展,开发一个面向服务的工作流引擎jbpm4ws。jbpm4ws对流程定义的描述采用的是jpdl4ws语言,它是扩展了jpdl的面向服务的流程定义语言。jbpm4ws扩展了jbpm的两大功能:对web服务

36、编排的支持和流程的服务化。web服务编排,是将一系列的现有的服务资源通过一定的方式(流程),按照一定的次序,组合起来,完成某个总体的业务目标。流程的服务化:是将流程的操作接口发布成web服务,即流程访问服务,让外界对流程数据的访问只能通过流程访问服务来完成,流程的服务化是数据服务化的一个特例,流程访问服务是数据访问服务的一种。另外,本文只是对jbpm的扩展,jbpm支持的功能在jbpm4ws中都将被支持。这些功能主要包括两大部分:(1)对流程的管理,包括流程的部署卸载、流程的挂起、流程信息的查询;(2)对流程实例的管理,包括流程实例的创建,流程实例的挂起、恢复、终止,执行流程任务,委派等。而本

37、文对jbpm4ws需求的描述是按jbpm4ws完成的功能进行划分的,其中管理流程的需求将在3.2.1中被描述,管理流程实例的需求将在3.2.2节中被描述,而对jbpm4ws的非功能性需求将在3.2.3节中被描述。3.1.2 流程实例状态图图3-1描述了流程实例从创建到运行结束的整个生命周期,而触发流程实例状态转换的事件即是jbpm4ws对外界系统提供的对流程实例管理的api,它由人或者外界系统调用。下面是对流程实例各个状态的介绍:就绪:在流程实例的生命周期中,没有任务执行时的状态。运行:在流程实例的生命周期中,有任务正在执行时的状态。挂起:在流程实例的生命周期中,不允许对流程实例进行操作的暂时

38、状态。终止:流程实例完成一次完整的执行过程或强制终止后所处的状态,此时流程实例的生命周期终止。图3-1 流程实例状态图3.2 jbpm4ws的需求分析3.2.1 管理流程需求分析图3-2是管理流程用例图,它是对流程管理和流程信息查询的需求描述,从图中可以看出,jbpm4ws引擎管理流程包括一下六个功能服务:(1) 部署流程:将流程定义文件部署到jbpm4ws引擎中。(2) 卸载流程:将流程定义文件从jbpm4ws引擎中删除。(3) 挂起流程:将整个流程挂起,挂起流程时会同时挂起对应的流程实例。(4) 恢复流程:将挂起的流程恢复,恢复时也会将对应的流程实例恢复。(5) 获取流程实例列表:查询由某

39、个流程定义创建的流程实例列表。(6) 查询流程信息:查询与流程定义相关的信息,例如,流程定义名,流程定义ID,流程是否被挂起等。图3-2 管理流程用例图3.2.2 管理流程实例需求分析图3-3是管理流程实例用例图,它是对流程实例管理和流程实例信息查询的需求描述,从图中可以看出,jbpm4ws管理流程实例包括以下七个功能服务:(1) 创建流程实例:jbpm4ws引擎根据指定的流程定义,创建相应的流程实例。(2) 执行流程任务:执行流程实例中某个任务节点的任务,并触发流程实例转移到下一个任务节点。(3) 指派流程任务:为流程中的某个任务指定负责人。(4) 挂起流程实例:将流程实例的状态由就绪改为挂

40、起;(5) 恢复流程实例:将流程实例状态由挂起改为就绪;(6) 查询流程信息:根据客户端的请求查询相应的流程实例信息;(7) 终止流程实例:终止处于就绪状态的流程实例。图3-3 管理流程实例用例图3.2.3 非功能需求分析jbpm4ws除了包括前面两节的功能需求外,还必须满足下面的非功能需求:(1) jbpm4ws须支持流程的服务化,这就要求jbpm4ws的服务层接口的数据定义必须采用基本数据类型;(2) jbpm4ws内核实现要是动态可配置的,这主要包括数据访问方式的可配置,xml解析器的可配置,和内核支持环境的可配置;(3) jbpm4ws的使用要支持jbpm原有的功能,不能限制jbpm的

41、功能,本文仅是对jbpm的扩展;(4) jbpm4ws支持对服务的编排,能够调用外界系统提供的web服务。3.3 jbpm4ws程序开发流程基于上述需求开发的工作流引擎jbpm4ws进行应用系统开发时的开发流程包括四个方面:流程的设计,流程服务的选取,流程与流程服务的绑定,流程的部署实施。流程的设计可以通过图形化的界面让普通的不懂计算机的业务人员参与完成,也可以通过编制xml的方式由专业的系统开发人员完成。流程服务选取分为两步完成:从服务资源库中查询现有的服务资源,如果现有的服务资源可以完成或可以通过一定的组合方式完成目标功能,则将查询到的服务作为待选取的服务;当服务资源库中查询不到与目标功能

42、匹配的服务资源,则进行系统构建服务,将构建的系统服务作为待选取的服务,并将构建的服务添加到服务资源库中。服务资源库的构建是在不断的系统开发中不断积累而成。当服务资源积累到一定程度时,系统的构建将变得异常容易,只是一个资源的查找过程。这也是jbpm4ws引擎与jbpm引擎相比最大的优势。流程与服务的绑定是指,在流程设计好之后,流程的某个任务节点要与相应的流程服务进行绑定,这样当进行流程调度时,jbpm4ws引擎就可以通过绑定信息同时进行流程服务的调度。流程的部署实施,当所有工作完成之后,就可以通过调用jbpm4ws的部署功能将流程部署到数据库之中。外界的系统就可以通过jbpm4ws引擎提供的流程

43、操作接口对流程进行管理、调度。第4章 jbpm4ws的设计与实现4.1 jbpm4ws的设计原理图4-1是jbpm4ws的设计原理图,从图中可以看出,在外界向jbpm4ws发送执行流程任务请求后,jbpm4ws引擎会接收发送过来的请求,然后解析对应的流程定义文件。解析完成后,jbpm4ws会查询与任务绑定的服务,然后调用对应的服务。与此同时,jbpm4ws会调用jbpm提供的功能触发流程实例继续向下运行。图中核心部分的解释如下:图4-1 jbpm4ws设计原理图由椭圆表示的service是由流程引擎的使用者开发的功能服务,功能服务主要包括规则校验服务和任务处理服务两部分。由矩形框表示的流程服务

44、是由流程引擎的使用者开发的功能服务,它会调用jbpm4ws提供的流程访问服务。由圆角矩形表示的jbpm引擎会对流程进行调度,触发流程的执行。由矩形表示的任务-服务绑定描述的是流程中任务节点与流程服务的绑定信息,这样在对任务进行调度时可以查询相应的功能服务,然后进行处理。由矩形表示的解析jpdl4ws会对jpdl4ws进行解析,将jpdl4ws分成两个部分:用jpdl定义的流程定义文件;和对任务节点和服务进行绑定的配置文件。4.2 jpdl4ws的设计要使jpdl4ws描述的流程支持面向服务的特性,需要在jpdl的任务节点中添加对服务的描述。因此,在jpdl原有的task元素的基础上,添加tas

45、k-service子元素,图4-2是jpdl4ws中任务节点的schema描述。从图中可以看出,每一个任务节点(task)对应一个任务处理服务(task-service)。图4-2 jpdl4ws的task描述图task-service的详细定义如图4-3所示。每一个任务处理服务(task-service)包含0个到多个规则校验服务(task-check)。任务处理服务和规则校验服务中都含有一个location属性,它描述的是服务所在的地址,类型是string。图4-3 jpdl4ws的task-service描述图jpdl4ws中描述的规则校验服务都是对任务处理服务的前置规则校验,而对任务处

46、理服务的后置规则校验均可转化为对下一个任务的前置规则校验。4.3 jbpm4ws的概要设计4.3.1 系统整体架构根据4.1节的的系统设计原理图,可以设计出对应的系统架构图如下:图4-4 jbpm4ws的整体架构图从图4-4可以看出,jbpm4ws从上至下可以分为三层,service层、jbpm4ws内核和运行支持环境。各层的功能描述如下:service:jbpm4ws对外提供的流程访问服务,在本文中,这些服务均以web服务的方式提供。jbpm4ws内核:它是jbpm4ws的核心,包括service层的实现,对数据库的访问、流程调度、任务调度、jpdl4ws解析五个功能模块,其中数据访问、流程

47、调度、任务处理、xml解析都是为service的实现提供服务,它们彼此之间无依赖关系。运行支持环境:它是jbpm4ws的底层支持,是jbpm4ws的底层设施,其中hibernate为数据库访问提供支持,jbpm为流程调度提供支持,CXF为服务调度提供支持,JAXB为jpdl4ws解析提供支持。4.3.2 系统核心包由上一节的系统架构图可以得到,图4-5所示的包图。下面分别从每一个包的名称、功能两个方面进行描述。图4-5 jbpm4ws的核心包图l com.jbpm4ws.service:jbpm4ws的对外提供的服务,在com.jbpm4ws.service中包含 ManageProcessComponentService和ManageProcessInstanceService两个核心接口,其中ManageProcessComp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1