开源产品分析-jbpm.ppt
《开源产品分析-jbpm.ppt》由会员分享,可在线阅读,更多相关《开源产品分析-jbpm.ppt(38页珍藏版)》请在三一办公上搜索。
1、开源产品分析JBPM,小组:NO.21成员:陈云锋 王小建 雷 淳,一、工作流相关概念,工作流:工作流管理联盟(W FMC)给出定义:工作流是一类够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。工作流管理系统:是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。,二、工作流管理系统,工作流管理系统的构成:1、工作流引擎(核心)定义流程规则和执行流程2、工作流设计器(如JBPM自带的设计器或者flex)3、流程操作4、工作流客户端程序5、流程监控6、表单设计器7、与表单的集成8、与应用
2、程序集成,三、JBPM概述,BPM:BPM是指业务流程管理,多用在企业的多个系统之间,用来实现多个系统的协同(包括多个业务系统之间的数据交互)。JBPM:是基于java实现的流程业务处理框架(Business Process Management)。是一个工作流引擎,它能够支撑企业的流程性业务应用,实现流程的自动化。特点:没有采用WFMC的规范xPDL(尤其是业务定义部分)强大的业务逻辑描述能力(jPDL)核心组件是流程调度引擎(核心调度算法)轻量级,core engine无须运行于J2EEContainer 采用hibernate作为数据持久化的工具,兼容多种数据库 简单易用,灵活、可扩展,
3、同一需求有多种解决策略,四、JBPM架构分析,五、JBPM主要功能,流程建模功能,eclipse的plugin实现可视化的流程编辑功能流程定义及实例的持久化功能,通过hibernate将流程定义持久化到数据库流程的自动导航,即对任务的调度(核心调度引擎)对外部应用的调用,通过Event-Action机制实现流程监控,六、JBPM主要套件(JPDL),JPDL Designer:流程定义设计器,流程建模工具(流程定义文件)JPDL Library:流程执行引擎WebConsole:参与者和流程执行环境的交互界面,流程运行期间的监控工具,七、JBPM编程的核心概念,start-state end-
4、stateNodetokendecisionfork/joinProcessDefinitionProcessInstanceJbpmConfigurationJbpmContext,ActionEventTaskTaskInstance,七、JBPM编程的核心概念,工作流引擎(engine):核心组件,负责生成流程运行时的各种实例及数据,以及监视和管理流程的运行;流程定义(ProcessDefinition):预先定义的业务逻辑;流程实例(ProcessInstance):业务的实际流转过程;参与者(Actor):任务的参与者(可能是人也可能是角色或是组织等);任务(Task):业务逻辑上定
5、义的需要呈现给参与者参与处理的元素;任务实例(TaskInstance):业务实际流转过程中,生成的需要参与者进行参与的实际内容;流转(Transition):连接业务逻辑不同节点的桥梁,也是业务实例进行流转的依据;令牌(Token):概念源于PetriNet,可记录流程当前状态及记录父子流程及分支等;信号(signal):触发流程进行流转的一个标志;工作列表(worklist):根据实际应用的需求,需要展示给参与者的任务实例列表。,八、图例说明JBPM概念(流程定义),流程定义是一种采用xml语法表达的有向图结构流程定义文件包包括:processdefinition.xmlprocessim
6、age.jpggpd.xml三个文件processdefinition.xml为流程定义的xml表示文件processimage.jpg为其图片展示gpd.xml为定义文件上各节点位置信息,JBPM的过程建模采用的是改良了的UML 活动图。,八、图例说明JBPM概念(流程定义),八、图例说明JBPM概念(流程定义),流程定义文件中的各种结点关系,八、图例说明JBPM概念(流程定义),流程定义文件对应的源代码,八、图例说明JBPM概念(流程执行),九、JBPM流程引擎核心调度过程,十、JBPM工作流应用一般开发步骤,分析业务流程、用JPDL对业务流程进行建模(流程定义文件)部署流程定义(即把流程
7、定义对象持久化到数据库)创建和启动流程实例(如创建公文)获取待办任务(核心)执行任务(核心)提交(结束)任务,十一、JBPM中与之对应的API,JBPM API:典型应用-流程定义部署JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();ProcessDefinition processDefinition=ProcessDefinition.parseXmlResource(“*/processdefinition.xml);/部署流程定义,如果已经存在同名的定义,则版本号会自动累加jbpmCo
8、ntext.deployProcessDefinition(processDefinition);jbpmContext.close();,十一、JBPM中与之对应的API,如何加载和开始流程JbpmContext jbpmContext=JbpmConfiguration.getInstance.createJbpmContext();GraphSession graphSession=jbpmContext.getGraphSession();/加载流程定义ProcessDefinition processDefinition=graphSession.loadProcessDefinit
9、ion(processDefinitionId);/创建流程实例:启动流程ProcessInstance processInstance=new ProcessInstance(processDefinition);/此时,rootToken指向流程定义的第一个节点jbpmContext.save(processInstance);jbpmContext.close();,十一、JBPM中与之对应的API,如何获取工作列表JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmContext();TaskMgmtSes
10、sion taskMgmtSession=jbpmContext.getTaskMgmtSession();/只能获取尚未完成的任务列表(待办任务)List list=taskMgmtSession.findTaskInstances(userId);jbpmContext.close();在实际的应用中,需要自己写DAO来获取各种列表,例如待签、待办、已办、办结等列表,而且可以进行条件查询,分页等,十一、JBPM中与之对应的API,如何执行任务典型代码:JbpmContext jbpmContext=JbpmConfiguration.getInstance().createJbpmCont
11、ext();TaskMgmtSession taskMgmtSession=jbpmContext.getTaskMgmtSession();TaskInstance taskInstance=taskMgmtSession.loadTaskInstance(id);taskInstance.start();jbpmContext.save(taskInstance);jbpmContext.close();start():标识着一个任务的执行的开始:任务的开始时间会被填充在实际业务中类似签收的作用也可以带入参数(actorId)来主动参与任务的执行,十一、JBPM中与之对应的API,如何结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 产品 分析 jbpm

链接地址:https://www.31ppt.com/p-6283769.html