SlideShare una empresa de Scribd logo
1 de 42
JBPM4 工作流介绍
你有没有碰到下面的问题 ,[object Object],[object Object],[object Object],[object Object],如何能够快速的变更流程,如何灵活的做到这一点,而无需大量的修改代码或者重新开发一个项目来替代老的项目呢? 如何控制复杂流程?
使用工作流的好处! 流程逻辑和业务逻辑相分离  应对复杂多变的流程需求 可以灵活的设计与部署新的流程
工作流的概述 工具 什么是工作流引擎? 规范 什么是工作流管理系统? 描述 什么是工作流?
什么是工作流? 概念: 在一个工作群组中,为了达成某一个共同目的而需要多人协力以串行或平行工作的形式来共同完成的任务。 ,[object Object],[object Object],[object Object],[object Object]
员工入职流程图
出差费用申请流程
学生请假流程
什么是工作流引擎? 概念: 工作流引擎的英文全称是: WorkFlow Engine ,是指 workflow 作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。 ,[object Object],[object Object],[object Object],[object Object]
什么是工作流管理系统? 概念: 工作流管理系统即 Workflow Management System ,简称 WFMS ,是定义、创建、执行、监控工作流的系统。 工作流管理联盟: 工作流管理联盟( WfMC , Workflow Management Coalition )给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。 。
关于工作流管理系统, 我们需要关注的三点。 第一点: 工作流管理系统 (WfMS) 具有的特点 第二点: WfMC  工作流管理系统参考模型 第三点: Jbpm 实现
WfMS 具有的特点: 1 建立时期( Build-time )功能,对工作流过程及其组成活动定义和建模。 2 运行时期( Run-time )控制功能,在运行环境中管理工作流过程,对工作流过程中的活动进行调度。 3 运行交互功能:指在工作流运行中, WFMS 与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。
WfMC 工作流管理系统
WfMC 工作流管理系统参考模型
WfMC 工作流管理系统之接口定义 1 工作流过程定义读 / 写接口。 2 客户应用程序 API  。 3 一些标准的服务供应用代理。 4 互操作接口。 5 管理及监控接口。
功能模型与参考模型的对应关系
JBPM 实现 1 流程定义 2 流程调度 3 流程执行 版本说明 JBPM4
JBPM 流程定义 形式化的描述语言 :jPDL ,是一个 xml 格式的。
JBPM 流程调度 PVM 提供了一套和 token 类似的 execution 过程 调度 机制,通过对 execution 的完全 操控 ,节点运行期行为有了无限的可能。
JBPM 流程执行 JBPM 是通过调用服务的 API 来 通知 流程引擎执行。
JBPM4 基本概念
基本概念之流程定义 流程定义: 又称流程模型,是用来描述业务过程的规定性文档。 组  成: 由一系列活动定义和转移组成。
基本概念之流程实例 流程实例: 是在流程运行时根据流程定义产生的实体,是实例化的流程定义。 解  释: 我们说一条流程执行完毕,意思也就是流程实例的生命周期结束。 分  类: 运行状态的流程实例,历史流程实例。
基本概念之活动 活动定义: 是最小的业务描述单位,是流程定义的重要组成部分。 自动活动: 由系统自动执行完成。 人工活动: 需要人工干预完成。
基本概念之转移 转移: 负责将各个活动定义连接起来,组成流程定义。 流入转移: 针对特定活动而言,它是指向该特定活动。 转出流程: 针对特定活动而言,它是由该特定活动流出。
基本概念之任务 任务: 用来处理涉及人机交互的活动。 ,[object Object],[object Object],[object Object],[object Object],[object Object]
泳道机制的流程示意图
事件监听器 事件监听器: 是流程定义时的概念,由触发条件(即流程事件)和触发操作(即监听处理器)组成。 应  用: 用来支持用户将自定义的业务逻辑代码“嵌入”流程的生命周期的特定阶段,从而达到扩展流程定义功能的目的。
流程之流转模型 串行:
流程之流转模型 循环:
流程之流转模型 并行:
流程之流转模型 聚合:
JBPM4 流程控制最常用、最基本的活动 start 开始活动 task 任务 结束活动 end state 状态活动 分支 / 聚合 判断活动 Sub-process 子流程 custom 自定义活动
流程在实际应用场景中的一些操作 发布 暂停 启动 暂停 显示流程图 执行 恢复 分配任务 任务与表单绑定 收回任务 定时任务 任务的历史 流程实例历史 活动历史 查询 删除 1. 定义管理 2. 实例管理 3. 任务管理 4. 历史查询
工作流开发的六个步骤 定义流程 部署流程 加载流程 启动流程 执行流程 完成流程
Demo
流程之激活模型 人工激活: 大多数的流程激活,都是因为人为的信息数据输入或产生。 例  子: 比如一个订单处理流程,客户提交了订单信息(订单信息数据产生),则激活了订单处理流程的开始。
流程之激活模型 定时或限时激活: 在一个特定的时间,因为特定的情况,符合特定的条件,激活某个特定的流程(或任务) 。 例  子: 订单处理流程,限定 5  天内发货,那么定义在第三天的时候,如果没有接到发货通知,则激活一个催办信息(催办任务)。这样流程系统,会在第三天的时候自动发出催办信息。
流程之激活模型 外界消息激活: 这种方式,大多是在多流程信息交互(或大小流程嵌套)应用中 。 task end 消息中间件 任务 A 任务 B start task JMS 或 WebService  接口
流程之整合模型 start 主流程 taskA taskB taskC end 数据交换平台 / 消息中间件 子流程 子流程 子流程
应用系统与 JBPM 的结合 采用 jBPM 系统与业务系统完全分离的策略。 应用系统 jBPM 系统 一切业务相关的操作 流程的监控和执行
 

Más contenido relacionado

Similar a Jbpm

SAP NetWeaver 业务流程管理
SAP NetWeaver 业务流程管理SAP NetWeaver 业务流程管理
SAP NetWeaver 业务流程管理BPC流程社区
 
20dc49df 47b2-2b10-1f91-d9cb6b6589d4
20dc49df 47b2-2b10-1f91-d9cb6b6589d420dc49df 47b2-2b10-1f91-d9cb6b6589d4
20dc49df 47b2-2b10-1f91-d9cb6b6589d4BPC流程社区
 
Presentation template for ea & bpm 2015 06-14-001
Presentation template for ea & bpm  2015 06-14-001Presentation template for ea & bpm  2015 06-14-001
Presentation template for ea & bpm 2015 06-14-001Tein Horng Yuan
 
Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0mfrog
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
Linux运维趋势 第14期 高性能电子商务网站
Linux运维趋势 第14期 高性能电子商务网站Linux运维趋势 第14期 高性能电子商务网站
Linux运维趋势 第14期 高性能电子商务网站51CTO
 
敏捷之美
敏捷之美敏捷之美
敏捷之美rex wang
 
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角yushilin
 
Easy flowprofile
Easy flowprofileEasy flowprofile
Easy flowprofileazhe
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow introted-xu
 
2_人見人愛的control-m作業請求流程
2_人見人愛的control-m作業請求流程2_人見人愛的control-m作業請求流程
2_人見人愛的control-m作業請求流程Galaxy Software Services
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
Web系统性能测试方案浅谈
Web系统性能测试方案浅谈Web系统性能测试方案浅谈
Web系统性能测试方案浅谈beiyu95
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意cucued
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用yiditushe
 
朱昌创-Top100summit 构建专业化测评环境-final
 朱昌创-Top100summit 构建专业化测评环境-final 朱昌创-Top100summit 构建专业化测评环境-final
朱昌创-Top100summit 构建专业化测评环境-finaldrewz lin
 
流程管理闭环到构建文化.pptx
流程管理闭环到构建文化.pptx流程管理闭环到构建文化.pptx
流程管理闭环到构建文化.pptxZhangJia6
 

Similar a Jbpm (20)

SAP NetWeaver 业务流程管理
SAP NetWeaver 业务流程管理SAP NetWeaver 业务流程管理
SAP NetWeaver 业务流程管理
 
20dc49df 47b2-2b10-1f91-d9cb6b6589d4
20dc49df 47b2-2b10-1f91-d9cb6b6589d420dc49df 47b2-2b10-1f91-d9cb6b6589d4
20dc49df 47b2-2b10-1f91-d9cb6b6589d4
 
Presentation template for ea & bpm 2015 06-14-001
Presentation template for ea & bpm  2015 06-14-001Presentation template for ea & bpm  2015 06-14-001
Presentation template for ea & bpm 2015 06-14-001
 
Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0Aws 全面业务流程管理解决方案v2 0
Aws 全面业务流程管理解决方案v2 0
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
Linux运维趋势 第14期 高性能电子商务网站
Linux运维趋势 第14期 高性能电子商务网站Linux运维趋势 第14期 高性能电子商务网站
Linux运维趋势 第14期 高性能电子商务网站
 
软件工程2010
软件工程2010软件工程2010
软件工程2010
 
敏捷之美
敏捷之美敏捷之美
敏捷之美
 
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
第1章 系统分析与设计技术 第1部分 1.3认知对象及其建模视角
 
Easy flowprofile
Easy flowprofileEasy flowprofile
Easy flowprofile
 
1, workflow intro
1, workflow intro1, workflow intro
1, workflow intro
 
2_人見人愛的control-m作業請求流程
2_人見人愛的control-m作業請求流程2_人見人愛的control-m作業請求流程
2_人見人愛的control-m作業請求流程
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
Ch15
Ch15Ch15
Ch15
 
Web系统性能测试方案浅谈
Web系统性能测试方案浅谈Web系统性能测试方案浅谈
Web系统性能测试方案浅谈
 
应用开发一般工作流程和注意
应用开发一般工作流程和注意应用开发一般工作流程和注意
应用开发一般工作流程和注意
 
软件设计原则、模式与应用
软件设计原则、模式与应用软件设计原则、模式与应用
软件设计原则、模式与应用
 
朱昌创-Top100summit 构建专业化测评环境-final
 朱昌创-Top100summit 构建专业化测评环境-final 朱昌创-Top100summit 构建专业化测评环境-final
朱昌创-Top100summit 构建专业化测评环境-final
 
流程管理闭环到构建文化.pptx
流程管理闭环到构建文化.pptx流程管理闭环到构建文化.pptx
流程管理闭环到构建文化.pptx
 

Jbpm

Notas del editor

  1. 几个要素有: 1. 实体 (Entity) 是工作流的主体,是需要随着工作流一起流动的物件 (Object) 。例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文 2. 参与者 (Participant) 是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备 3. 流程定义 (Flow Definition) 是预定义的工作步骤,它规定了实体流动的路线。它可能是完全定义的,即对每种可能的情况都能完全确定下一个参与者,也可能是不完全定义的,需要参与者根据情况决定下一个参与者; 4. 工作流引擎 (Engine) 是驱动实体按流程定义从一个参与者流向下一个参与者的机制
  2. 1 、通过建模,创建流程定义数据并导入到数据库,形成模型库数据。 2 、通过工作流程引擎进行流程:调度、推进、执行。 3 、有管理界面,外部应用程序互调( java 、脚本、批处理等),参与者界面(特殊的是待办任务)
  3. 定义接口:允许流程开发人员部署流程定义;这里的“流程开发人员”是业务分析师和软件开发人员的组合。 执行接口:使用户和系统可以操作流程实例;流程实例是流程定义的执行;流程定义的控制流通过状态机描述;执行接口的两个主要方法是启动一个流程实例和通知工作流系统一个状态的结束。 应用程序接口:表示由工作流系统发起的工作流系统和外部系统之间的交互。当用户或系统管理一个流程实例的运行时,会产生事件;流程定义中可以指定一段响应事件的可执行代码逻辑,程序代码能够和组织内外部的其他系统通信。 监控接口:管理人员通过监控接口获得流程运行记录的统计数据;有时,运行记录也可用于跟踪审计
  4. 定义接口:允许流程开发人员部署流程定义;这里的“流程开发人员”是业务分析师和软件开发人员的组合。 执行接口:使用户和系统可以操作流程实例;流程实例是流程定义的执行;流程定义的控制流通过状态机描述;执行接口的两个主要方法是启动一个流程实例和通知工作流系统一个状态的结束。 应用程序接口:表示由工作流系统发起的工作流系统和外部系统之间的交互。当用户或系统管理一个流程实例的运行时,会产生事件;流程定义中可以指定一段响应事件的可执行代码逻辑,程序代码能够和组织内外部的其他系统通信。 监控接口:管理人员通过监控接口获得流程运行记录的统计数据;有时,运行记录也可用于跟踪审计
  5. 这张图就描述清楚了工作流管理系统。
  6. PVM 提供了一套和 token 类似的 execution 过程调度机制,通过对 execution 的完全操控,节点运行期行为有了无限的可能。 jBPM4 采用 execution 来记录当前流程执行的位置,并通过移动 execution 来推动流程的流转。 execution 通过 activity 和 transition 属性来记录位置。 目前移动 execution 的 atomicOperation 有 7 种,分别是:执行节点、触发流转、结束源节点、执行转移线和开始目标节点、 MoveToChildNode 与 MoveToParentNode
  7. 比如一个订单处理流程,客户提交了订单信息(订单信息数据产生),则激活了订单处理流程的开始。
  8. 比如,订单处理流程,限定 5 天内发货,那么定义在第三天的时候,如果没有接到发货通知,则激活一个催办信息(催办任务)。这样流程系统,会在第三天的时候自动发出催办信息。
  9. 一般现实应用中,都需要考虑 JMS 或 WebService 的应用接口。
  10. 流程整合的模型,已经超越了“流程运转模型”的概念范畴。但是作为目前“系统整合”的一个比较流行的趋势,拿到这里顺便提一下。 现在的业务越来越复杂,跨区域,跨部门之间信息交互方式的需要越来越明显,而且跨区域,跨部门之间业务配合也越来越多。从信息整合的发展来看,“面向应用的数据层整合”和“面向服务的接口层整合”都逐渐走向“ BMP” 模式:由中央主流程控制多个子流程(分布在不同地域或不同部门,各自独立的流程)协同运行,以达到整个业务逻辑的运行。 其实在第二章“流程的激活模型”的“外界消息激活”模型中,我已经简单提到了一些,只是不太明确。那么现在让我们来看看一个普通的“流程整合”大概是什么样子的,请参看下图。 实际的整合要比这张图上的复杂很多,也许还会有一些 JMS/WebService 等的信息交换接口,可能用到不同厂家的数据交换平台,或消息中间件等等;当然那些安全措施也必不可少了。 简单的整合模型,基本上都是采用“主流程控制”的方式:由一个主流程控制整个流程的运行,由各个子流程具体完成某项任务,并向主流程返回处理结果。主流程在确定子流程正确运行 / 处理完后,并得到处理完的信息后,会继续按照预定的流程路线,激活另一个子流程。 在有的流程整合设计中,主流程本身不完成任何任务(只负责运转控制);而有的设计中,主流程本身自己也需要完成一些任务。
  11. 1 、启动一个流程实例时,首先访问流程系统,取得一个新的流程实例 ID 。在业务系统中保存这个 ID 。 2 、业务流程领域 ID (比如,一个订单 id 或者一个保险单号)作为 key 来创建流程实例。