您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > Spring与JBoss+JBPM工作流集成开发指南+
Spring与JBossJBPM工作流集成开发指南工作流:全部或者部分,由计算机支持或自动处理的业务过程。工作流管理系统:工作流管理系统是这样的一个系统,详细定义、管理并执行“workflows”,系统通过运行一些软件来执行workflows,这些软件的执行顺序由工作流逻辑的计算机表示形式(计算机化的业务规则——过程定义)驱动。工单:一次申请的提交记录,该记录具有唯一性。工单相关的概念:!--[if!supportLists]--!--[endif]--工单管理:对投诉工单、建议工单、座席建议工单、业务受理工单等不同类型的工单进行派发、接收处理、回复等一系列工单处理操作。!--[if!supportLists]--!--[endif]--工单统计:对各种处理工单的数量,类型进行数据统计和导出、报表打印。!--[if!supportLists]--!--[endif]--工单系统管理:对工单系统进行管理,设置相应的处理部门、处理人员和相应的权限,规定处理流程。!--[if!supportLists]--!--[endif]--工单日志:记录工单操作日志,有效管理日志的处理状况和责任。背景工作流管理系统一项快速发展的技术,各种行业渐渐的采用工作流技术。工作流技术的主要特点是:过程的自动化处理,这些过程包含由人与以机器为基础的活动相结合;特别是对那些与IT应用程序、工具交互的过程,进行自动化处理。虽然,工作流技术广泛用于办公环境中,例如保险、银行、法院和行政管理等,然而工作流技术,也可以应用于一些类型的工业和制造业。概述在人们日常生活和工作中,都将与工作流程发生密切的关系,“工作流”干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。应用领域广泛,比如:!--[if!supportLists]--!--[endif]--公司或组织内部请假或休假流程、通知分发流程等!--[if!supportLists]--!--[endif]--政府政策审批流程、!--[if!supportLists]--!--[endif]--网上书店图书订阅流程、发送流程等!--[if!supportLists]--!--[endif]--驾照学习流程等等。同时,“工作流”可能由手工组织,实际上,多数“工作流”都在IT系统中进行组织的,从而对过程自动化提供计算机支持。“工作流”采用计算机化后,可以大大提高工作和生活的效率,而信息化过程中,对于采用的技术实现方式的不同,将直接影响到信息化的质量,包括:开发成本、维护成本等。好的工作流解决方案,可以大大提高业务流程流转效率、容易扩展对新流程的支持等。JBPM是当前优秀的开源工作流引擎。本文档是关于JBPM与Spring框架集成分析文档。包括:基本概念、设计要点、常见问题解答、参考资源等。本文主要介绍了集成开发的高级内容,基础知识参见:参考资料本文档适合所有计算机开发人员。基本概念什么是工作流“工作流”干预过程、业务程序的自动化处理,文档、信息或者任务按照定义好的规则在参与者间传递,来完成整个业务目标或者对整个业务目标的完成做贡献。同时,“工作流”可能由手工组织,实际上,多数“工作流”都在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的基本特性,以及上述功能间的关系:!--[if!vml]--!--[endif]--JBPM介绍jBPMisaplatformforexecutableprocesslanguagesrangingfrombusinessprocessmanagement(BPM)overworkflowtoserviceorchestration.Therearemanyprocesslanguages.Eachoneistargetedtowardsaspecificfunctionandaspecificenvironment.jBPMallowsalloftheseprocesslanguagestobebuildnativelyontopofonesingletechnology:theProcessVirtualMachine(PVM).jBPMalreadysupports3verydifferentprocesslanguages:jPDL,WS-BPELandSeamPageflow.Thismightexpandinthefutureasnewprocesslanguagesareaddedtoourplatform.!--[if!vml]--!--[endif]--jBPM(JBossBusinessProcessManagement业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jPDL是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态(waitstates)、计时器(timers)、自动处理(automatedactions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。jPDL可以部署于Java语言的任何应用环境下,JavaSEApplication(Swing/SWT)、JavaEEApplication(ApplicationServer)。jPDL分发包组成目前jPDL的最新版本是3.2.2,您可以在以下地址:。下载包分为两种,一种是标准包(jbpm-jpdl-3.2.2.zip)只有20M左右;一种是套件包(jbpm-jpdl-suite-3.2.2.zip)将近80M。两者最大的区别是套装包自带一个已经配置好的jboss服务,下载解压缩后,可直接运行。jPDL的核心程序包(jbpm-jpdl.jar)它是一个典型的jar文件,它涵盖对流程定义和运行时流程实例上下文环境的操作API。在最简化的业务流程样例中,jPDL将流程定义存储与XML格式的定义文件中,在运行时载入内存,在内存里记录完整的业务实例和执行过程的环境变量,并完成全部操作。显然,在实际应用中,流程信息必须被持久化的存储于数据库中。jPDL使用了Hibernate作为其对象持久化的API。GraphicalProcessDesigner插件(jbpm-jpdl-designer-3.1.2.zip)它是一个基于Eclipse的图型编辑插件。使用它可以对业务流程进行可视化的定制,而无须手动编辑XML文件。该插件还提供了流程定义上传功能,可以将新定义的流程发布到在线运行的jPDL系统上。jPDL身份包(jbpm-identity.jar)它是jPDL的一个轻量级扩展包,简单实现了组Group、用户User、许可权Permission等用户身份认证和鉴权机制。如果您的应用环境只需要简单的用户认证鉴权管理,那么它十分适合您。jPDLWeb控制台(jbpm-console.war)它是一个标准Web应用(使用了JSF技术),提供了对jPDL平台执行情况的监控程序(对jPDL数据库的监控)。管理员可以通过该程序方便的维护jPDL的数据库,管理流程定义和流程实例的执行情况。同时,它还提供了一个简单的GettingstartedDEMO,方便初学者了解jPDL。静态的流程定义模型流程定义实体(ProcessDefinition)编号PD-001对象流程定义实体(ProcessDefinition)描述流程定义实体是对一个流程抽象的对象化定义,如图-002。一套系统中,用户可以定义保存多个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。每个流程定义还可以有多个不同的版本,如:针对同样的报销流程可以有修订前和修订后的两个流程定义,同时存储于jPDL数库中。用户可以通过流程名称和版本号获取相应的流程定义。在默认请况下,系统启用最新的流程定义。Java对象org.jbpm.graph.def.ProcessDefinition数据库表JBPM_PROCESSDEFINITION该表存储流程定义的通用信息,如:流程名称、版本号表关联说明JBPM_PROCESSDEFINITION表中,每条记录有自己的数据库流水号ID_JBPM_PROCESSDEFINITION的外键(ForeignKeys):startstate_同JBPM_NODE(流程结点)表关联。此外键指向流程定义中的起始结点ID流程结点(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。一个子流程中
本文标题:Spring与JBoss+JBPM工作流集成开发指南+
链接地址:https://www.777doc.com/doc-2043 .html