JBPM与Spring集成开发指南6600.docx
《JBPM与Spring集成开发指南6600.docx》由会员分享,可在线阅读,更多相关《JBPM与Spring集成开发指南6600.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JBPM与Spring集成开发指南 1 术语工作流:全部或者部分,由计算机支持或自动处理的业务过程。工作流管理系统:工作流管理系统是这样的一个系统,详细定义、管理并执行“workflows”,系统通过运行一些软件来执行workflows,这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则过程定义)驱动。工单:一次申请的提交记录,该记录具有唯一性。工单相关的概念: l 工单管理:对投诉工单、建议工单、座席建议工单、业务受理工单等不同类型的工单进行派发、接收处理、回复等一系列工单处理操作。 l 工单统计:对各种处理工单的数量,类型进行数据统计和导出、报表打印。 l 工单系统管理:对
2、工单系统进行管理,设置相应的处理部门、处理人员和相应的权限,规定处理流程。 l 工单日志:记录工单操作日志,有效管理日志的处理状况和责任。 2 背景工作流管理系统一项快速发展的技术,各种行业渐渐的采用工作流技术。工作流技术的主要特点是:过程的自动化处理,这些过程包含由人与以机器为基础的活动相结合;特别是对那些与IT 应用程序、工具交互的过程,进行自动化处理。虽然,工作流技术广泛用于办公环境中,例如保险、银行、法院和行政管理等,然而工作流技术,也可以应用于一些类型的工业和制造业。 3 概述在人们日常生活和工作中,都将与工作流程发生密切的关系,“工作流”干预过程、业务程序的自动化处理,文档、信息或
3、者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。应用领域广泛,比如: l 公司或组织内部请假或休假流程、通知分发流程等 l 政府政策审批流程、 l 网上书店图书订阅流程、发送流程等 l 驾照学习流程等等。同时,“工作流”可能由手工组织,实际上,多数“工作流 ”都在IT系统中进行组织的,从而对过程自动化提供计算机支持。“工作流”采用计算机化后,可以大大提高工作和生活的效率,而信息化过程中,对于采用的技术实现方式的不同,将直接影响到信息化的质量,包括:开发成本、维护成本等。好的工作流解决方案,可以大大提高业务流程流转效率、容易扩展对新流程的支持等。JBPM是
4、当前优秀的开源工作流引擎。本文档是关于JBPM与Spring框架集成分析文档。包括:基本概念、设计要点、常见问题解答、参考资源等。本文主要介绍了集成开发的高级内容,基础知识参见:参考资料本文档适合所有计算机开发人员。 4 基本概念 4.1 什么是工作流“工作流”干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。同时,“工作流”可能由手工组织,实际上,多数“工作流 ”都在IT系统中进行组织的,从而对过程自动化提供计算机支持,WFMC把工作定位在这个方向上。“工作流”定义:全部或者部分,由计算机支持或自动处理的业务过
5、程。工作流经常与“过程重组(BPRBusiness Process Re-engineering)”联系在一起。BPR 是关于企业(组织)核心业务过程的评估、分析、模拟、定义以及其后的操作实现。尽管,不是所有的BPR都是采用工作流实现的,但工作流技术是最佳的方法,主要因为,工作流技术提供了业务过程逻辑与IT操作支持的分离,从而以后可以修改过程规则来重定义业务过程。相反,工作流技术并不只在BPR中采用,例如用于现有的业务过程中。“工作流管理系统(WFMSWorkflow Management System)”通过管理工作活动序列,调用与各种活动步骤相关的人员、IT资源,对业务过程提供自动化处理。
6、“工作流管理系统”定义:工作流管理系统是这样的一个系统,详细定义、管理并执行“workflows”,系统通过运行一些软件来执行workflows,这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则过程定义)驱动。每个业务过程都有一个生命周期,从几分钟到几天(甚至数月),由过程的复杂性与组成活动的持续时间来决定。有多种方法实现工作流管理系统,使用多种IT和通讯组件,运行环境可以从一个小的本地工作组到企业间。因此,WFMC参考模型从各种角度考虑工作流管理系统,希望提供各种不同的实现技术、运行环境。尽管实现的方法多种多样,但所有的WFMS都表现出某种共同的特性,这为不同产品间的集成、
7、协同工作提供了基础。参考模型描述了工作流系统的一个公共模型,并且指出参考模型如何能使其与其他各种不同的实现方法相关联。在最高层,所有的WFMS都相同的特性,即为下边的3个功能提供支持: 建立时期(Build-time)功能,定义、模拟工作流过程,及其组成活动。 运行时期(Run-time)控制功能,在运行环境中管理工作流过程,管理不同 运行时期与用户、IT应用程序(工具)的交互,来处理各种活动的执行。下图描述WFMS的基本特性,以及上述功能间的关系: 4.2 JBPM 4.2.1 介绍jBPM is a platform for executable process languages ran
8、ging from business process management (BPM) over workflow to service orchestration. There are many process languages. Each one is targeted towards a specific function and a specific environment. jBPM allows all of these process languages to be build natively on top of one single technology: the Proc
9、ess Virtual Machine (PVM). jBPM already supports 3 very different process languages: jPDL, WS-BPEL and Seam Pageflow. This might expand in the future as new process languages are added to our platform. jBPM(JBoss Business Process Management业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。 jPD
10、L是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态 (wait states)、计时器(timers)、自动处理(automated actions)等术语,并通过图型化的流程定义,很直观地描述业务流程。 jPDL可以部署于Java语言的任何应用环境下,JavaSE Application(Swing/SWT)、JavaEE Application(Application Server) 。 4.2.2 jPDL分发包组成目前jPDL的最新版本是3.2.2,您可以在以下地址: 4.2.3 jPDL的核心程序包(jbpm-jpdl.jar) 它是一个典型的j
11、ar文件,它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。 4.2.4 Graphical Process Designer插件(jbpm-jpdl-designer-3.1.2.zip) 它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制,而无须手动编辑XML文件。该插件还提供了流程定义上
12、传功能,可以将新定义的流程发布到在线运行的jPDL系统上。 4.2.5 jPDL身份包(jbpm-identity.jar) 它是jPDL的一个轻量级扩展包,简单实现了组Group、用户User、许可权Permission等用户身份认证和鉴权机制。如果您的应用环境只需要简单的用户认证鉴权管理,那么它十分适合您。 4.2.6 jPDL Web控制台(jbpm-console.war) 它是一个标准Web应用(使用了JSF技术),提供了对jPDL平台执行情况的监控程序(对jPDL数据库的监控)。管理员可以通过该程序方便的维护jPDL的数据库,管理流程定义和流程实例的执行情况。同时,它还提供了一个简
13、单的Getting started DEMO,方便初学者了解jPDL。 4.2.7 静态的流程定义模型 4.2.7.1 流程定义实体(Process Definition)编号 PD-001 对象 流程定义实体(Process Definition) 描述 流程定义实体是对一个流程抽象的对象化定义,如图-002。一套系统中,用户可以定义保存多个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。每个流程定义还可以有多个不同的版本,如:针对同样的报销流程可以有修订前和修订后的两个流程定义,同时存储于jPDL数库中。用户可以通过流程名称和版本号获取相应的流程定义。在默认请况下,系统启
14、用最新的流程定义。 Java对象 org.jbpm.graph.def.ProcessDefinition 数据库表 JBPM_PROCESSDEFINITION该表存储流程定义的通用信息,如:流程名称、版本号 表关联说明 JBPM_PROCESSDEFINITION表中,每条记录有自己的数据库流水号 ID_JBPM_PROCESSDEFINITION的外键(Foreign Keys):startstate_ 同JBPM_NODE(流程结点)表关联。此外键指向流程定义中的起始结点ID 4.2.7.2 流程结点(Node)编号 PD-002 对象 流程结点(Node) 描述 流程结点是对流程中的
15、过程环节/行为的抽象对象化定义,如图-002中的每个方框即代表一个结点。结点有两个主要职责:一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,转递、维持流程的延续,直至达到最终结点。在jPDL的结点设计中,系统开放了充分的用户行为模型,程序员可以基于这些行为接口,实现自定义的业务功能。在jPDL中,系统预定义了一系列的Node类型,同时也允许程序员开发定义自己的Node类型。 Java对象 org.jbpm.graph.def.Node 数据库表 JBPM_NODE该表存储结点的定义信息。 表关联说明 JBPM_NODE表中,每条记录有自己的数据库流水号 ID_JBPM_
16、NODE的外键(Foreign Keys):processdefinition_ - 此外键说明该Node从属的流程定义对象ID subprocessdefinition_- 此外键指定了一个由该Node发起的子流程。在主流程离开当前结点之前,该子流程必须完成执行过程。action_ - 此外键指定该结点动作类的ID superstate_ - 该外键是一个自关联键,指向结点的上级父结点ID。一个子流程中的多个结点从属于同一个父流程结点。 decisiondelegation_ 该外键指定了结点委派的判定类ID(所谓委派判定类是指根据用户的业务逻辑,判定流程的下一个流向的Java Class)
17、 4.2.7.3 流程转向(Transitions)编号 PD-003 对象 流程转向(Transitions) 描述 流程转向是描述流程中从一个结点到另一个结点的状态转换过程,因此一个转向一定有一个源结点和一个目标结点。 在jPDL中transition的命名是通产是唯一的,结点依靠transition的命名来区别到下一结点的路径,当一个Node中存在有多个同名的transition的时候,第一个transition将会被选中。结点转向的过程中,排在transition列表第一位置的即是默认的transition。 Java对象 org.jbpm.graph.def.Transition 数
18、据库表 JBPM_TRANSITION该表存储流程定义中的转向对象。 表关联说明 JBPM_TRANSITION表中,每条记录有自己的数据库流水号 ID_JBPM_TRANSITION的外键(Foreign Keys):processdefinition_ - 该外键指向transition所属的流程定义对象ID from_ - 该外键指向transition的源结点ID to_ -该外键指向transition的目标结点ID 4.2.7.4 动作(Actions)编号 PD-004 对象 动作(Actions) 描述 Actions是指一系列的在流程事件中运行的Java代码。流程图是软件需求
19、的传达的重要手段,但它只是软件需求的一个投影,隐藏了很多技术实现的细节。Actions则是向流程图添加技术实现细节的一种机制,它可以很好的补充和修饰流程图。这意味着在不改变流程图结构的情况下,可以将Java的代码与之关联。Actions通过事件(Events)同流程绑定,常用的主要事件包括:进入结点、离开结点、进行转向。请注意,同Events关联的Actions和处于Node中的Actions是有不同的。处于Events中的Actions是通过事件触发执行的,它是典型的观察者模式,是无法影响流程控制的流向。而处于Node中的Action则要承担起流程传递的责任。此外,Actions是可以命名的
20、。可以通过Actions的命名在任何地方引用该Actions。命名的Actions可以作为主流程定义的公用子元素。这个功能可以提高对Actions定义的复用。 Java对象 org.jbpm.graph.def.Action 数据库表 JBPM_ACTION该表存储流程定义中的动作对象。 表关联说明 JBPM_ACTION表中,每条记录有自己的数据库流水号ID_ JBPM_ACTION的外键(Foreign Keys):processdefinition_ - 指明action所属的流程定义ID event_ - 指明action绑定的event ID actiondelegation_ -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JBPM Spring 集成 开发 指南 6600
限制150内