JBPM与Spring集成开发指南

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JBPM与Spring集成开发指南1术语工作流:全部或者部分,由计算机支持或自动处理的业务过程。工作流管理系统:工作流管理系统是这样的一个系统,详细定义、管理并执行“workflows”,系统通过运行一些软件来执行workflows,这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则——过程定义)驱动。工单:一次申请的提交记录,该记录具有唯一性。工单相关的概念:l工单管理:对投诉工单、建议工单、座席建议工单、业务受理工单等不同类型的工单进行派发、接收处理、回复等一系列工单处理操作。l工单统计:对各种处理工单的数量,类型进行数据统计和导出、报表打印。l工单系统管理:对工单系统进行管理,设置相应的处理部门、处理人员和相应的权限,规定处理流程。l工单日志:记录工单操作日志,有效管理日志的处理状况和责任。2背景工作流管理系统一项快速发展的技术,各种行业渐渐的采用工作流技术。工作流技术的主要特点是:过程的自动化处理,这些过程包含由人与以机器为基础的活动相结合;特别是对那些与IT应用程序、工具交互的过程,进行自动化处理。虽然,工作流技术广泛用于办公环境中,例如保险、银行、法院和行政管理等,然而工作流技术,也可以应用于一些类型的工业和制造业。3概述在人们日常生活和工作中,都将与工作流程发生密切的关系,“工作流”干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。应用领域广泛,比如:l公司或组织内部请假或休假流程、通知分发流程等l政府政策审批流程、l网上书店图书订阅流程、发送流程等l驾照学习流程等等。同时,“工作流”可能由手工组织,实际上,多数“工作流”都在IT系统中进行组织的,从而对过程自动化提供计算机支持。“工作流”采用计算机化后,可以大大提高工作和生活的效率,而信息化过程中,对于采用的技术实现方式的不同,将直接影响到信息化的质量,包括:开发成本、维护成本等。好的工作流解决方案,可以大大提高业务流程流转效率、容易扩展对新流程的支持等。JBPM是当前优秀的开源工作流引擎。本文档是关于JBPM与Spring框架集成分析文档。包括:基本概念、设计要点、常见问题解答、参考资源等。本文主要介绍了集成开发的高级内容,基础知识参见:参考资料本文档适合所有计算机开发人员。4基本概念4.1什么是工作流“工作流”干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。同时,“工作流”可能由手工组织,实际上,多数“工作流”都在IT系统中进行组织的,从而对过程自动化提供计算机支持,WFMC把工作定位在这个方向上。“工作流”定义:全部或者部分,由计算机支持或自动处理的业务过程。工作流经常与“过程重组(BPR—BusinessProcessRe-engineering)”联系在一起。BPR是关于企业(组织)核心业务过程的评估、分析、模拟、定义以及其后的操作实现。尽管,不是所有的BPR都是采用工作流实现的,但工作流技术是最佳的方法,主要因为,工作流技术提供了业务过程逻辑与IT操作支持的分离,从而以后可以修改过程规则来重定义业务过程。相反,工作流技术并不只在BPR中采用,例如用于现有的业务过程中。“工作流管理系统(WFMS—WorkflowManagementSystem)”通过管理工作活动序列,调用与各种活动步骤相关的人员、IT资源,对业务过程提供自动化处理。“工作流管理系统”定义:工作流管理系统是这样的一个系统,详细定义、管理并执行“workflows”,系统通过运行一些软件来执行workflows,这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则——过程定义)驱动。每个业务过程都有一个生命周期,从几分钟到几天(甚至数月),由过程的复杂性与组成活动的持续时间来决定。有多种方法实现工作流管理系统,使用多种IT和通讯组件,运行环境可以从一个小的本地工作组到企业间。因此,WFMC参考模型从各种角度考虑工作流管理系统,希望提供各种不同的实现技术、运行环境。尽管实现的方法多种多样,但所有的WFMS都表现出某种共同的特性,这为不同产品间的集成、协同工作提供了基础。参考模型描述了工作流系统的一个公共模型,并且指出参考模型如何能使其与其他各种不同的实现方法相关联。在最高层,所有的WFMS都相同的特性,即为下边的3个功能提供支持:●建立时期(Build-time)功能,定义、模拟工作流过程,及其组成活动。●运行时期(Run-time)控制功能,在运行环境中管理工作流过程,管理不同●运行时期与用户、IT应用程序(工具)的交互,来处理各种活动的执行。下图描述WFMS的基本特性,以及上述功能间的关系:4.2JBPM4.2.1介绍jBPMisaplatformforexecutableprocesslanguagesrangingfrombusinessprocessmanagement(BPM)overworkflowtoserviceorchestration.Therearemanyprocesslanguages.Eachoneistargetedtowardsaspecificfunctionandaspecificenvironment.jBPMallowsalloftheseprocesslanguagestobebuildnativelyontopofonesingletechnology:theProcessVirtualMachine(PVM).jBPMalreadysupports3verydifferentprocesslanguages:jPDL,WS-BPELandSeamPageflow.Thismightexpandinthefutureasnewprocesslanguagesareaddedtoourplatform.jBPM(JBossBusinessProcessManagement业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jPDL是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态(waitstates)、计时器(timers)、自动处理(automatedactions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。jPDL可以部署于Java语言的任何应用环境下,JavaSEApplication(Swing/SWT)、JavaEEApplication(ApplicationServer)。4.2.2jPDL分发包组成目前jPDL的最新版本是3.2.2,您可以在以下地址:http://labs.jboss.com/jbossjbpm/jpdl_downloads/获得官方下载包。下载包分为两种,一种是标准包(jbpm-jpdl-3.2.2.zip)只有20M左右;一种是套件包(jbpm-jpdl-suite-3.2.2.zip)将近80M。两者最大的区别是套装包自带一个已经配置好的jboss服务,下载解压缩后,可直接运行。4.2.3jPDL的核心程序包(jbpm-jpdl.jar)它是一个典型的jar文件,它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。4.2.4GraphicalProcessDesigner插件(jbpm-jpdl-designer-3.1.2.zip)它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制,而无须手动编辑XML文件。该插件还提供了流程定义上传功能,可以将新定义的流程发布到在线运行的jPDL系统上。4.2.5jPDL身份包(jbpm-identity.jar)它是jPDL的一个轻量级扩展包,简单实现了组Group、用户User、许可权Permission等用户身份认证和鉴权机制。如果您的应用环境只需要简单的用户认证鉴权管理,那么它十分适合您。4.2.6jPDLWeb控制台(jbpm-console.war)它是一个标准Web应用(使用了JSF技术),提供了对jPDL平台执行情况的监控程序(对jPDL数据库的监控)。管理员可以通过该程序方便的维护jPDL的数据库,管理流程定义和流程实例的执行情况。同时,它还提供了一个简单的GettingstartedDEMO,方便初学者了解jPDL。4.2.7静态的流程定义模型4.2.7.1流程定义实体(ProcessDefinition)编号PD-001对象流程定义实体(ProcessDefinition)描述流程定义实体是对一个流程抽象的对象化定义,如图-002。一套系统中,用户可以定义保存多个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。每个流程定义还可以有多个不同的版本,如:针对同样的报销流程可以有修订前和修订后的两个流程定义,同时存储于jPDL数库中。用户可以通过流程名称和版本号获取相应的流程定义。在默认请况下,系统启用最新的流程定义。Java对象org.jbpm.graph.def.ProcessDefinition数据库表JBPM_PROCESSDEFINITION该表存储流程定义的通用信息,如:流程名称、版本号表关联说明JBPM_PROCESSDEFINITION表中,每条记录有自己的数据库流水号ID_JBPM_PROCESSDEFINITION的外键(ForeignKeys):startstate_同JBPM_NODE(流程结点)表关联。此外键指向流程定义中的起始结点ID4.2.7.2流程结点(Node)编号PD-002对象流程结点(Node)描述流程结点是对流程中的过程环节/行为的抽象对象化定义,如图-002中的每个方框即代表一个结点。结点有两个主要职责:一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,转递、维持流程的延续,直至达到最终结点。在jPDL的结点设计中,系统开放了充分的用户行为模型,程序员可以基于这些行为接口,实现自定义的业务功能。在jPDL中,系统预定义了一系列的Node类型,同时也允许程序员开发定义自己的Node类型。Java对象org.jbpm.graph.def.Node数据库表JBPM_NODE该表存储结点的定义信息。表关联说明JBPM_NODE表中,每条记录有自己的数据库流水号ID_JBPM_NODE的外键(ForeignKeys):processdefinition_-此外键说明该Node从属的流程定义对象IDsubprocessdefinition_-此外键指定了一个由该Node发起的子流程。在主流程离开当前结点之前,该子流程必须完成执行过程。action_-此外键指定该结点动作类的IDsuperstate_-该外键是一个自关联键,指向结点的上级父结点ID。一个子流程中的多个结点从属于同一个父流程结点。decisiondelegation_–该外键指定了结点委派的判定类ID(所谓委派判定类是指根据用户的业务逻辑,判定流程的下一个流向的JavaClass)4.2.7.3流程转向(Transitions)编号PD-003对象流程转向(Transitions)描述流程转向是描述流程中从一个结点到另一个结点的状态转换过程,因此一个转向一定有一个源结点和一个目标结点。在jPDL中transition的命名是通产是唯一的,结点依靠transition的命名来区别到下一结点的路径,当一个Node中存在有多个同名的transition的时候,第一个transition将会被选中。结点转向的过

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功