JBPM工作流引擎分析

(50页)

'JBPM工作流引擎分析'
JBPM工作流引擎分析周光昭(清华大学软件学院,信息系统与工程研究所,北京10084)摘要:本文以JBPM 3.2.2为蓝本,分析了 JBPM工作流管理系统的基木体系结构,对其核 心的工作流引擎做了流程定义、流程解析、流程调度、组织模型等基本功能的分析,并修改 了源代码增加了部分在JBPM 3.2.2自带WebConsole未实现的功能。关键词:JBPM工作流引擎1.引言JBPM,全称Java Business Process Management,是一个基于J2EE的轻量级柔性可扩展 工作流管理系统,最新版本为322。作为Red Hat旗下开放源代码软件公司JBOSS的企业 中间件平台的一个组成部分,JBPM提供了强大的业务流程管理功能。JBPM是一个开源软 件,遵循LGPL开源协议;它以纯Java编写,适用于不同的操作系统;采用自定义的 JPDL(JBoss JBPM Process Definition Language)语言描述业务流程,同时提供对BEPL的支 持;数据持久层以Hibernate为依托,儿乎支持目前所有的数据库管理系统;釆用面向图的 编程(Graph Oriented Programming)思想,架起业务人员和系统分析人员间沟通的桥梁,实 现了业务流程建模到具体实现的平滑过渡。2. JBPM体系结构JBPM工作流管理系统包含3个主要组件:核心组件——JBPM工作流引擎,封装成Java 类库,可以被方便的调用;可视化流程定义组件一一JPDL Designer,是一个图形化工具, 以Eclipse插件的形式存在,方便不懂编程的业务人员或业务分析师设计业务流程;应用组 件——JBPM Web Console,以JSF为表示层,捉供流程实例与用户的任务交互界面,同时 作为流程管理和监控的控制台。下展示了组件间的依赖关系,及其和WfCM标准工作流系统体系结构的对应关系。AdministrationProcess DefinrtKxi ToolJBoss jBPM graphicol process designer (Eclipse plugin: graphical interface ? XML editor)in XML formatiGraphical Designer (eclipse based)1 iProcessesRuntime1ii▼Engineiii@Web ConsoleEmbeddableand MonitWoricflow API and Interchange fonnats一 ‘ *iiiiiProcess repositoryRuntime Executions-———qHistoryi iiJBoss JBPM concole web applicationIdentity component (to be developed)Workflow Enactment & Workflow EngineJBoss JBPM core componentWorkflow ClientJBoss JBPM concole web applicationinvoked Applications e g Custom Java softwere图2」JBPM工作流管理系统体系结构作为核心的工作流引擎又可以进一步分解为以下组件:①流程定义装载,负责流程定义 的语法验证和解析;②流程执行服务,负责流程的实例化,以及流程实例的执行调度、资源 分配等;③请求处理器,将客户端传递给流程执行服务;④日志管理器,记录引擎运行的日 志信息;⑤状态管理器;⑥交互服务,提供引擎与遗留系统的交互。下图展示了组件间的依赖关系。本文着重分析JBPM工作流引擎的核心功能:流程解析和流程调度。图2.2 JBPM流程引擎体系结构3. JBPM流程定义要对流程进行解析,首先必须定义流程。JBPM提供了可视化流程设计器方便用户进行 业务流程的定义,在流程定义中借用了的UML的状态图和活动图的思想,使流程更加直观 易懂。下图展示了 JBPM中的流程定义图和UML活动图的对比。starty ?Tasl< NoOe? taskl<2 ?Fork?Node? lask2y ?Ta$Ktask3M "Jo 仍 *图3」JBPM流程定义图和UML活动图流程定义保存在一个XML文件中,主要由下面七个部分组成:1. swimlane,泳道,它们被用于任务分配,一个泳道可以被视为一个参与者在这一流程 中的角色名称。2. start-state,流程的起始状态,所有的流程实例都是从这个状态开始的,没有起始状态 的流程是合法的,但不能被执行;3. node-elements,包含一系统流程定义的节点,这些节点类型包括end-state|state|node|task-node|process-state|super-state|fork[join|decision transition作为node-elements的一个子元素存在4. action-elements,全局定义的动作,可以在事件和变迁中引用,为了被引用,这些动作必须被指定名称;包括 action|script|create-timer|cancel-timer5. event,事件,服务于动作的流程事件,作为action-elements的容器;6. task,任务,和用户交互;7. exception-handler,异常处理器,用户定义的流程异常处理程序。3.1 JPDL流程定义的对象及其关系从图3.1我们可以看出,JBPM流程定义中最基本的对象就是节点(Node)和变迁 (Transition),节点表示不同的业务处理逻辑,变迁指出节点间的执行顺序。JBPM在节点和 变迁的基础上又抽象了一层,称之为图形元素(GraphElement)o同时为了表达节点和变迁事 件的具体执行逻辑,引入了动作(Action)的概念。图形元素有5个主耍屈性:名称(name)、 描述(description) 所属流程定义(processDefinition)、可触发事件(events)、异常处理器 (exceptionHandler)。除了前面提到的节点和变迁,还有流程沱义(ProcessDefinition)和任务 (Task)也继承了图形元素。所有在流程图上可表达的节点,如开始节点、分支节点、汇合节 点等,都继承了 Node对象。下图展示了基本对象间的继承关系。图3.2 JBPM流程某木对彖间的继承关系除了基本对象外,JPDL还定义了 action、event等辅助的元素,下图展示了一个流程定 义中对象的关系:图3.3 JBPM流程定义中对象的关系3. 2 JPDL中的主要节点类型JPDL的
关 键 词:
JBPM 工作流 引擎 分析
 剑锋文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:JBPM工作流引擎分析
链接地址: //www.wenku365.com/p-43709369.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给剑锋文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 //www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开