欢迎来到天天文库
浏览记录
ID:43709369
大小:1.65 MB
页数:47页
时间:2019-10-13
《JBPM工作流引擎分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JBPM工作流引擎分析周光昭(清华大学软件学院,信息系统与工程研究所,北京10084)摘要:本文以JBPM3.2.2为蓝本,分析了JBPM工作流管理系统的基木体系结构,对其核心的工作流引擎做了流程定义、流程解析、流程调度、组织模型等基本功能的分析,并修改了源代码增加了部分在JBPM3.2.2自带WebConsole未实现的功能。关键词:JBPM工作流引擎1.引言JBPM,全称JavaBusinessProcessManagement,是一个基于J2EE的轻量级柔性可扩展工作流管理系统,最新版本为322。作为RedHat旗下开放源代码软件公司JBOSS的企业中间件
2、平台的一个组成部分,JBPM提供了强大的业务流程管理功能。JBPM是一个开源软件,遵循LGPL开源协议;它以纯Java编写,适用于不同的操作系统;采用自定义的JPDL(JBossJBPMProcessDefinitionLanguage)语言描述业务流程,同时提供对BEPL的支持;数据持久层以Hibernate为依托,儿乎支持目前所有的数据库管理系统;釆用面向图的编程(GraphOrientedProgramming)思想,架起业务人员和系统分析人员间沟通的桥梁,实现了业务流程建模到具体实现的平滑过渡。2.JBPM体系结构JBPM工作流管理系统包含3个主要组件:
3、核心组件——JBPM工作流引擎,封装成Java类库,可以被方便的调用;可视化流程定义组件一一JPDLDesigner,是一个图形化工具,以Eclipse插件的形式存在,方便不懂编程的业务人员或业务分析师设计业务流程;应用组件——JBPMWebConsole,以JSF为表示层,捉供流程实例与用户的任务交互界面,同时作为流程管理和监控的控制台。下展示了组件间的依赖关系,及其和WfCM标准工作流系统体系结构的对应关系。AdministrationProcessDefinrtKxiToolJBossjBPMgraphicolprocessdesigner(Eclipse
4、plugin:graphicalinterface♦XMLeditor)inXMLformatiGraphicalDesigner(eclipsebased)1iProcessesRuntime1ii▼Engineiii@WebConsoleEmbeddableandMonitWoricflowAPIandInterchangefonnats一‘*iiiiiProcessrepositoryRuntimeExecutions-———qHistoryiiiJBossJBPMconcolewebapplicationIdentitycomponent(tobedev
5、eloped)WorkflowEnactment&WorkflowEngineJBossJBPMcorecomponentWorkflowClientJBossJBPMconcolewebapplicationinvokedApplicationsegCustomJavasoftwere图2」JBPM工作流管理系统体系结构作为核心的工作流引擎又可以进一步分解为以下组件:①流程定义装载,负责流程定义的语法验证和解析;②流程执行服务,负责流程的实例化,以及流程实例的执行调度、资源分配等;③请求处理器,将客户端传递给流程执行服务;④日志管理器,记录引擎运行的日志信息;
6、⑤状态管理器;⑥交互服务,提供引擎与遗留系统的交互。下图展示了组件间的依赖关系。本文着重分析JBPM工作流引擎的核心功能:流程解析和流程调度。图2.2JBPM流程引擎体系结构3.JBPM流程定义要对流程进行解析,首先必须定义流程。JBPM提供了可视化流程设计器方便用户进行业务流程的定义,在流程定义中借用了的UML的状态图和活动图的思想,使流程更加直观易懂。下图展示了JBPM中的流程定义图和UML活动图的对比。starty«Tasl7、定义保存在一个XML文件中,主要由下面七个部分组成:1.swimlane,泳道,它们被用于任务分配,一个泳道可以被视为一个参与者在这一流程中的角色名称。2.start-state,流程的起始状态,所有的流程实例都是从这个状态开始的,没有起始状态的流程是合法的,但不能被执行;3.node-elements,包含一系统流程定义的节点,这些节点类型包括end-state8、state9、node10、task-node11、process-state12、super-state13、fork[join14、decisiontransition作为node-elements的一个子元素存在4.15、action-eleme
7、定义保存在一个XML文件中,主要由下面七个部分组成:1.swimlane,泳道,它们被用于任务分配,一个泳道可以被视为一个参与者在这一流程中的角色名称。2.start-state,流程的起始状态,所有的流程实例都是从这个状态开始的,没有起始状态的流程是合法的,但不能被执行;3.node-elements,包含一系统流程定义的节点,这些节点类型包括end-state
8、state
9、node
10、task-node
11、process-state
12、super-state
13、fork[join
14、decisiontransition作为node-elements的一个子元素存在4.
15、action-eleme
此文档下载收益归作者所有