ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:1.30MB ,
资源ID:15889010      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15889010.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JBPM工作流引擎分析Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JBPM工作流引擎分析Word格式.docx

1、2. JBPM体系结构JBPM工作流管理系统包含3个主要组件:核心组件JBPM工作流引擎,封装成Java类库,可以被方便的调用;可视化流程定义组件JPDL Designer,是一个图形化工具,以Eclipse插件的形式存在,方便不懂编程的业务人员或业务分析师设计业务流程;应用组件JBPM Web Console,以JSF为表示层,提供流程实例与用户的任务交互界面,同时作为流程管理和监控的控制台。下展示了组件间的依赖关系,及其和WfCM标准工作流系统体系结构的对应关系。 图2.1 JBPM工作流管理系统体系结构作为核心的工作流引擎又可以进一步分解为以下组件:流程定义装载,负责流程定义的语法验证和

2、解析;流程执行服务,负责流程的实例化,以及流程实例的执行调度、资源分配等;请求处理器,将客户端传递给流程执行服务;日志管理器,记录引擎运行的日志信息;状态管理器;交互服务,提供引擎与遗留系统的交互。下图展示了组件间的依赖关系。本文着重分析JBPM工作流引擎的核心功能:流程解析和流程调度。图2.2 JBPM流程引擎体系结构3. JBPM流程定义要对流程进行解析,首先必须定义流程。JBPM提供了可视化流程设计器方便用户进行业务流程的定义,在流程定义中借用了的UML的状态图和活动图的思想,使流程更加直观易懂。下图展示了JBPM中的流程定义图和UML活动图的对比。图3.1 JBPM流程定义图和UML活

3、动图流程定义保存在一个XML文件中,主要由下面七个部分组成:1. swimlane,泳道,它们被用于任务分配,一个泳道可以被视为一个参与者在这一流程中的角色名称。2. start-state,流程的起始状态,所有的流程实例都是从这个状态开始的,没有起始状态的流程是合法的,但不能被执行;3. node-elements,包含一系统流程定义的节点,这些节点类型包括end-state|state|node|task-node|process-state|super-state|fork|join|decisiontransition作为node-elements的一个子元素存在4. action-e

4、lements,全局定义的动作,可以在事件和变迁中引用,为了被引用,这些动作必须被指定名称;包括 action|script|create-timer|cancel-timer5. event,事件,服务于动作的流程事件,作为action-elements的容器;6. task,任务,和用户交互;7. exception-handler,异常处理器,用户定义的流程异常处理程序。 JPDL流程定义的对象及其关系从图我们可以看出,JBPM流程定义中最基本的对象就是节点(Node)和变迁(Transition),节点表示不同的业务处理逻辑,变迁指出节点间的执行顺序。JBPM在节点和变迁的基础上又抽象

5、了一层,称之为图形元素(GraphElement)。同时为了表达节点和变迁事件的具体执行逻辑,引入了动作(Action)的概念。图形元素有5个主要属性:名称(name)、描述(description)、所属流程定义(processDefinition)、可触发事件(events)、异常处理器(exceptionHandler)。除了前面提到的节点和变迁,还有流程定义(ProcessDefinition)和任务(Task)也继承了图形元素。所有在流程图上可表达的节点,如开始节点、分支节点、汇合节点等,都继承了Node对象。下图展示了基本对象间的继承关系。图3.2 JBPM流程基本对象间的继承关系

6、除了基本对象外,JPDL还定义了action、event等辅助的元素,下图展示了一个流程定义中对象的关系:图3.3 JBPM流程定义中对象的关系3.2 JPDL中的主要节点类型JPDL的主要节点类型为以下8个:任务节点(task node)、自动节点(node node)、状态节点(state node)、决策节点(decision node)、分支节点(fork node)、汇聚节点(jion node)、开始节点(start node)、结束节点(end nod)。这些节点是业务流程定义中最常用的,下面分别说明不同节点的功能:任务节点 :一个任务节点可以包含一个或多个任务,任务的完成需要和

7、用户进行交互(一般通过表单形式)。当流程执行到一个任务节点的时候,任务节点上的任务被实例化并插入相应用户(组)的任务列表中。然后,流程进入等待状态,直到用户完成任务。任务的完成将触发流程实例的继续执行,即触发标记(token)。表单和任务的绑定通过froms.xml文件实现。自动节点 :自动节点包含由计算机自动完成的任务,用于显示表达业务分析中相对重要的自动任务。一般来说,该节点包含一个名为动作(action)的子元素,其内容是一个Java类(实现ActionHandler接口),用于实现所需的API调用。对于那些不需要在流程中显示表达的API调用,可以把动作(acition)隐含在节点的事件

8、(event)属性内实现。(工作流引擎调用外部系统的API)状态节点 :状态节点实际上就是一个等待状态状态,与任务节点不同之处在于它不会在任何用户的任务列表插入任务实例。状态节点用于等待外部系统的响应,例如:当流程执行到该任务节点时,流程进入等待状态;直到外部系统发回一个响应消息时,标记被触发,流程继续执行。(外部系统调用工作流引擎的API,一般是触发标记)决策节点 :决策节点即单一选择路由节点,有3种方式指定决策标准。最简单的是使用决策表达式,返回一个出向变迁名。另一种方法是给决策节点的每个出向变迁附上一个布尔表达式,当流程执行到决策节点时,工作流引擎将按流程定义文件中的顺序依次计算每个变迁

9、上的布尔表达式,选择第一个为真的变迁向下执行流程。最后一种方式,也是最灵活的方式是使用决策处理程序:一个实现DecisionHandler接口的java类,该类返回决策结果的变迁名,例如调用规则引擎按照事先定义好的业务规则执行决策。这3种决策方式命名为:表达式决策、变迁条件决策、接口决策。分支节点 :分支节点即并行路由节点,把当前流程的执行路径分为多个并行的执行路径。当流程执行到该节点时,标记(token)停留在fork节点作为父标记,同时产生与分支数相同个数的子标记,子标记沿各自分支向下传递。汇聚节点 :汇聚节点必须与上述分支节点成对使用,所有到达汇聚节点的子标记应由同一个父标记产生。当子标

10、记到达汇聚节点时,子标记自动结束。当最后一个子标记到达汇聚节点时,父标记将传递到汇聚节点,并沿汇聚节点的唯一出向迁移向下传递。在这之前汇聚节点一直处于等待状态。开始节点 :一个流程定义只能有一个开始节点,它没有入向迁移,只有出向迁移,作为流程的开始标记。开始节点最多只能包含一个任务。开始节点可以不进行人员选派,默认的任务执行人为流程实例的发起者。结束节点 :结束节点表示流程的终止,它仅有入向迁移,一个流程可以有一个以上的结束节点。3.3 JPDL中的辅助节点类型作为主要节点类型的补充,JPDL中还定义了以下4种节点:Email节点 :在流程中显示的表达发送Email给指定用户的节点,完全可以用

11、自动节点加上适当的参数代替它。ESB服务节点 :企业服务总线(ESB,Enterprise Service Bus)是JBoss新推行的一个SOA平台,通过服务封装企业遗留系统的应用,达到企业应用集成的目的。ESB服务节点就是用于调用ESB提供的服务的,可以用自动节点加上适当的参数代替它。(注:JBPM已经被集成到JBossESB系统中)流程状态节点 :调用一个子流程。超态节点 :超态是一组节点的集合,可以用来在流程定义中产生一些层次,例如,一个应用可能要把流程中的所有节点按阶段进行分组。3.4 JPDL流程定义文件的XML文档结构及其校验 JBPM的流程定义保存在部署包的文件中,JPDL的X

12、ML Schema描述对该文件做了限定。一个XML Schema通常是一组为了描述一类给定的XML文档而预先定好的规则。它定义了可以在指定XML文档中出现的各个元素以及和某个元素相关的若干属性。jPDL的XML Schema包括3个不同的版本的文件:可以在jbpm-jpdl.jar包的orgjbpmjpdlxml目录下找到,其中jpdl-3.0.xsd有详细的注释。附件的schema.rar里也有图形化的说明。所以这里不在赘述。JBPM对流程定义的解析是直接对文件进行解析,提取其中的元素和属性,生成一套对应的对象,这套对象的结构反映了流程定义的结构。解析流程定义的类为orgjbpmjpdlxm

13、lJpdlXmlReader.java,总体流程如下图所表示。进行流程定义语法校验和解析时,调用的是开源XML解析包dom4j。下面一一介绍各个部分的详细解析过程。图4.1 JPDL流程定义解析总体流程4.1 解析泳道(Swimlane)泳道解析调用函数readSwimlanes(root),其中root是经过dom4j解析后生成的doc树根,函数声明如下:protected void readSwimlanes(Element processDefinitionElement)该函数获取processDefinitionElement中的所有swimlane元素,按下图中的流程解析,生成对应的对象。从下面的解析流程图中可以看出,泳道的表达式分配使用的委托程序属于identity包,这个包是独立于引擎核心的。如果不使用identity包就无法使用表达式分配。图 JPDL泳道解析流程图4.2 解析动作(Action)文件定义了5种默认Action类型和对应的处理类: create-timerorg.jbpm.scheduler.def.CreateTimerActioncancel-timer cl

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1