JFlow与activiti的对比
BPMN工作流的基本概念!详解工作流框架Activiti
BPMN⼯作流的基本概念!详解⼯作流框架Activiti⼯作流⼯作流简介⼯作流(Workflow): ⼯作流就是通过计算机技术对业务流程进⾏⾃动化管理。
实现多个参与者按照预定的流程去⾃动执⾏业务流程。
定义: 通过计算机对业务流程⾃动化执⾏管理主要解决的是: 使在多个参与者之间按照某种预定义的规则⾃动进⾏传递⽂档,信息或任务的过程.从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预⼯作流框架:Activiti,JBPM,OSWorkFlow,WorkFlow⼯作流框架底层需要有数据库提供⽀持⼯作流术语⼯作流引擎ProcessEngine对象: 这是Activiti⼯作的核⼼.负责⽣成流程运⾏时的各种实例及数据,监控和管理流程的运⾏BPM业务流程管理:是⼀种以规范化的构造端到端的卓越业务流程为中⼼,以持续的提⾼组织业务绩效为⽬的的系统化⽅法常见商业管理教育如EMBA,MBA等均将BPM包含在内BPMN业务流程建模与标注:这些图如何组合成⼀个业务流程图(Business Process Diagram)讨论BPMN的各种的⽤途:包括以何种精度来影响⼀个流程图中的模型BPMN作为⼀个标准的价值BPMN未来发展的远景流对象⼀个业务流程图有三个流对象的核⼼元素事件⼀个事件⽤圆圈来描述,表⽰⼀个业务流程期间发⽣的东西事件影响流程的流动.⼀般有⼀个原因(触发器)或⼀个影响(结果)基于它们对流程的影响,有三种事件:开始事件,中间事件,终⽌事件活动⽤圆⾓矩形表⽰,⼀个流程由⼀个活动或多个活动组成条件条件⽤菱形表⽰,⽤于控制序列流的分⽀与合并。
可以作为选择,包括路径的分⽀与合并内部的标记会给出控制流的类型Activiti开源⼯作流框架Activiti简介Activiti是⼀个开源的⼯作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进⾏流程调度Activiti 作为⼀个遵从 Apache 许可的⼯作流和业务流程管理开源平台,其核⼼是基于Java的超快速,超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌⼊性和可扩展性,同时更加强调⾯向业务⼈员Activiti 流程引擎重点关注在系统开发的易⽤性和轻量性上.每⼀项BPM业务功能Activiti流程引擎都以服务的形式提供给开发⼈员.通过使⽤这些服务,开发⼈员能够构建出功能丰富,轻便且⾼效的BPM应⽤程序Activiti服务结构Activiti系统服务结构图核⼼类:ProcessEngine: 流程引擎的抽象,可以通过此类获取需要的所有服务服务类:XxxService: 通过ProcessEngine获取,Activiti将不同⽣命周期的服务封装在不同Service中,包括定义,部署,运⾏.通过服务类可获取相关⽣命周期中的服务信息RepositoryServiceRepository Service提供了对repository的存取服务Activiti中每⼀个不同版本的业务流程的定义都需要使⽤⼀些定义⽂件,部署⽂件和⽀持数据(例如BPMN2.0XML⽂件,表单定义⽂件,流程定义图像⽂件等),这些⽂件都存储在Activiti内建的Repository中RuntimeServiceRuntime Service提供了启动流程,查询流程实例,设置获取流程实例变量等功能.此外它还提供了对流程部署,流程定义和流程实例的存取服务TaskServiceTask Service提供了对⽤户Task和Form相关的操作.它提供了运⾏时任务查询,领取,完成,删除以及变量设置等功能HistoryServiceHistory Service⽤于获取正在运⾏或已经完成的流程实例的信息,与Runtime Service中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化FormService使⽤Form Service可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单Activiti中的流程和状态Task均可以关联业务相关的数据IdentityServiceIdentity Service提供了对Activiti系统中的⽤户和组的管理功能Activiti中内置了⽤户以及组管理的功能,必须使⽤这些⽤户和组的信息才能获取到相应的TaskManagementServiceManagement Service提供了对Activiti流程引擎的管理和维护功能这些功能不在⼯作流驱动的应⽤程序中使⽤,主要⽤于 Activiti 系统的⽇常维护核⼼业务对象:org.activiti.engine.impl.persistence.entity包下的类,包括Task,ProcessInstance,Execution等根据不同职责实现相应接⼝的⽅法(如需要持久化则继承PersistentObject接⼝),与传统的实体类不同Activiti组件Activiti上下⽂组件Context: ⽤来保存⽣命周期⽐较长,全局性的信息,类似Application.主要包括如下三类:CommandContext: 命令上下⽂-保存每个命令必要的资源,如持久化需要的sessionProcessEngineConfigurationImpl: 流程引擎相关配置信息-整个引擎全局的配置信息.如数据源DataSource等.该对象为单例,在流程引擎创建的时候初始化ExecutionContext: 持有ExecutionEntity对象持久化组件:Activiti使⽤mybatis作OR映射,并在此基础上增加设计了⾃⼰的持久化框架在流程引擎创建时初始化,顶层接⼝Session,SessionFactorySession有两个实现类:DbSqlSession: 负责sql表达式的执⾏AbstractManager: 负责对象的持久化操作SessionFactory有两个实现类:DbSqlSessionFactory: 负责DbSqlSession相关操作GenericManagerFactory: 负责AbstractManager相关操作Event-Listener组件:Activiti允许客户代码介⼊流程执⾏,提供了事件监听组件监听的事件类型:TaskListenerJavaDelegateExpressionExecutionListenerProcessEngineConfigurationImpl持有DelegateInterceptor的某个实例,⽅便调⽤handleInvocation Cache组件DbSqlSession中有cache的实现Activiti基于List和Map来做缓存:如查询时先查缓存,没有则直接查询并放⼊缓存异步执⾏组件Activiti可以执⾏任务,JobExecutor为其核⼼类,JobExecutor包含三个主要属性:JobAcquisitionThreadBlockingQueueThreadPoolExecutor⽅法ProcessEngines在引擎启动时调⽤JobExecutor.start,JobAcquisitionThread 线程即开始⼯作,其run⽅法不断循环执⾏AcquiredJobs中的job,执⾏⼀次后线程等待⼀定时间直到超时或者JobExecutor.jobWasAdded⽅法,因为有新任务⽽被调⽤。
常见 流程编排框架
流程编排框架是用于定义、设计和管理业务流程的工具。
以下是一些常见的流程编排框架:1. **BPMN (Business Process Model and Notation)**:BPMN 是一种用于描述业务流程的图形化标准。
它为业务流程的设计、建模和可视化提供了一种通用的符号体系。
2. **Camunda BPM**:Camunda BPM 是一个开源的流程引擎,它支持 BPMN 2.0、CMMN 和 DMN 标准,并提供了一套完整的工具链来设计、执行和管理业务流程。
3. **Activiti**:Activiti 是一个轻量级的业务流程管理框架,它支持 BPMN 2.0,并提供了灵活的工作流引擎。
4. **Drools Flow (JBPM)**:Drools Flow 是基于 JBPM(Java Business Process Model)的一个业务流程管理框架,它支持 BPMN 2.0 和 Jbpm 工作流引擎。
5. **Spring Integration**:虽然 Spring Integration 主要用于集成应用程序,但它也提供了一些用于流程编排的功能,如事件驱动的流程和消息驱动的流程。
6. **AWS Step Functions**:AWS Step Functions 是Amazon Web Services (AWS) 提供的一种服务,它允许用户使用可视化的方式编排和执行一系列的AWS Lambda 函数。
7. **Azure Logic Apps**:Azure Logic Apps 是Microsoft Azure 提供的一种服务,它允许用户通过可视化的方式创建、管理和执行工作流。
8. **Mulesoft**:Mulesoft 提供了一个完整的API 管理和集成平台,其中包括用于流程编排和集成的工具。
这些框架都有各自的特点和优势,选择哪一个取决于具体的需求、技能和预算。
JFlow与activiti的对比
驰骋工作流引擎JFlow 与activiti对比分析报告目录前言 (4)工作流程引擎- 对比 (4)5 种基本控制流模式的对比 (5)4 种高级分支同步模式 (10)2 种结构化模式 (14)4 种包含多实例的模式 (16)3 种基于状态的模式 (19)2 种取消模式 (22)总结 (23)表单集成 (24)表单引擎与流程引擎的关系 (25)最简单的请假流程-根据表单的请假天数来判断流程的分支 (25)流程引擎操纵表单引擎的一个案例 (27)对多种表单的支持 (29)简洁明快的CCForm (29)Word 文档支持 (31)Excel 表单的支持 (31)表单树的支持 (32)符合中国特色个性化JFlow 功能 (32)流程属性 (33)多种接受人规则 (33)接受人员投递路径自动记忆 (34)发起前置导航 (35)节点属性 (35)方向条件可视化配置 (36)JFlow 对工业自动化的流程支持 (37)前言为了更好的说明activiti 与jflow 的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的、客观的对比。
首先activiti 是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛,解决了BPM领域的很多问题,值得我们赞赏。
他的boss 是jbpm 的前身。
JFlow 是济南驰骋公司开放的一款工作流程引擎,JFlow 的前身是CCFlow ,ccflow 是国内开源的一款老牌的工作流程引擎,承担过很多大型项目,适应于复杂的国内应用环境。
Activity 相对简单,仅有流程引擎,没有表单引擎。
在BPM 的研究领域, 很多的学者,专家都是把流程引擎与表单引擎分开的,对于这个观点我们并不很赞同。
实现功能需要大量的代码开发。
JFlow 是JFlow 流程引擎+CCForm 的表单引擎的有机结合,内容相对复杂,配置程度较高,实施周期短,上手快。
工作流程引擎- 对比以国外流行的工作流activiti 的模式与当今中国开源的JFlow(ccflow 和jflow 的总称)流程引擎对照。
activity 工作流详细介绍
activity 工作流详细介绍Activity工作流详细介绍随着科技的发展,人们对于工作效率和流程管理的要求也越来越高。
在现代企业和组织中,活动(Activity)工作流成为了一个重要的工具,用于管理和优化各种类型的业务流程。
本文将详细介绍Activity工作流的定义、特点、使用场景以及它所带来的好处。
一、定义Activity工作流是一种用于描述、管理和执行业务流程的工具。
它通过将业务流程拆解为一系列的活动(Activity)和控制流(Flow)来实现对流程的管理和控制。
每个活动代表了一个具体的业务操作,而控制流则描述了活动之间的先后顺序和条件关系。
二、特点1. 可视化建模:Activity工作流提供了图形化的建模工具,使用户可以直观地设计和编辑业务流程。
通过拖拽和连接各种活动和控制流,用户可以快速构建出复杂的流程模型。
2. 强大的执行引擎:Activity工作流的执行引擎可以自动执行和协调各个活动,按照预定义的规则和条件进行流转。
同时,它还提供了错误处理、并发控制、事务管理等功能,确保流程的正确执行。
3. 灵活的流程控制:Activity工作流支持多种流程控制机制,如条件分支、循环、并行等。
这使得用户可以根据不同的业务需求,灵活地设计和调整流程的控制逻辑。
4. 高度可扩展:Activity工作流提供了丰富的扩展机制,用户可以通过自定义活动和控制组件,满足特定业务场景的需求。
此外,它还支持与其他系统进行集成,实现流程的自动化和信息的无缝传递。
三、使用场景Activity工作流可以应用于各种业务场景,尤其适用于以下几个方面:1. 流程管理:Activity工作流可以帮助企业和组织规范和优化各种类型的流程,如请假流程、审批流程、销售流程等。
通过明确的流程定义和自动化的执行,可以提高工作效率和质量。
2. 工作协同:Activity工作流可以实现不同岗位之间的协同工作。
通过定义和分配任务,每个参与者可以清楚地知道自己需要做什么,以及何时完成。
国内外主流工作流引擎及规则引擎分析
国内外主流工作流引擎及规则引擎分析工作流引擎和规则引擎是现代信息化系统中常用的技术工具,旨在提高工作效率、降低人工操作成本并优化业务流程。
本文将对国内外主流的工作流引擎和规则引擎进行分析。
工作流引擎是一种用于管理和自动化业务流程的软件工具。
它定义、执行和监控各种业务流程,能够自动化工作流程、加强协作和控制、提高工作效率。
国内外主流的工作流引擎有:1. Activiti:Activiti是一个轻量级的工作流引擎,基于Java语言开发,采用BPMN2.0标准,具有可扩展性和灵活性,可以与各种企业应用集成。
Activiti提供了很多常用的工作流功能,如用户任务管理、调度执行、流程设计和监控等。
2. jBPM:jBPM是Red Hat公司开发的一个开源的工作流引擎,用于构建、执行和管理业务流程。
它使用BPMN2.0规范,支持业务流程建模、流程定义和流程执行。
jBPM可以与其他系统集成,并提供了各种工具和API来管理和监控工作流程。
3. Camunda:Camunda是一个基于Java的开源工作流引擎,也采用BPMN2.0标准。
Camunda具有灵活的工作流程定义、任务分配、任务执行和流程监控功能,可以与各种技术和系统集成。
Camunda还提供了Web模型器和集成开发环境,简化了工作流程的设计和开发过程。
规则引擎是一种用于管理和执行复杂业务规则的软件工具。
它可以将业务规则从应用代码中分离出来,使得规则的维护和修改更加灵活和高效。
国内外主流的规则引擎有:1. Drools:Drools是一个基于Java的开源规则引擎,提供了业务规则管理、规则引擎和决策表等功能。
Drools使用基于规则的编程模型,将业务规则和应用代码分离开来,并提供了灵活的规则引擎和规则语言,可以实现复杂的规则逻辑。
2. Jess:Jess是一个基于Java的规则引擎,也是一个专门用于开发专家系统的语言。
Jess提供了强大的推理和规则匹配功能,支持定义和执行各种复杂的业务规则。
国内外主流工作流引擎及规则引擎分析
国内外主流工作流引擎及规则引擎分析近年来,随着信息技术的高速发展和应用需求的增加,工作流引擎和规则引擎已成为企业信息化建设的重要组成部分。
相比于传统的人工操作,工作流引擎可以通过自动化和流程化的方式提高企业的工作效率和质量,规则引擎则可通过规则的自动验证和执行帮助企业实现业务流程的自动化处理。
本文将着重对国内外主流的工作流引擎和规则引擎进行分析。
一、国际主流工作流引擎1.1 ActivitiActiviti 是一个开源工作流管理系统,最初由Alfresco 软件公司开发。
Activiti 使用Java语言编写,采用Spring和Hibernate框架,并且允许开发人员使用BPMN 2.0 规范来定义工作流程。
Activiti 支持分布式部署,具有良好的可扩展性和高度的灵活性。
1.2 jBPMjBPM 是一个基于开放标准的开源业务流程管理系统,也是一个部分Java Business 的资深技术。
jBPM 使用BPMN 2.0 规范的建模语言来设计和实现业务流程,并采用面向服务的架构,使其能够处理非常复杂的流程。
1.3 CamundaCamunda 是一个开源工作流引擎,可以轻松地实现工作流程的自动化。
Camunda 使用BPMN 2.0 规范和DMN 规范来定义工作流程和规则,其支持分布式环境下的各种操作。
二、国内主流工作流引擎2.1 艾森格艾森格是一家专业的工作流引擎厂商,艾森格的工作流引擎具有高效性、可靠性以及良好的易用性。
艾森格工作流引擎支持分布式环境,可应用于企业级内部流程处理。
2.2 WeBWorkFlowWeBWorkFlow是一家国内比较优秀的工作流引擎厂商,支持多种操作系统(Linux、Windows等),支持HTTP 与TCP 协议的交互,并具有非常好的任务调度、安全性等特性。
2.3 宁波欧格软件宁波欧格软件是一家专业从事OEM服务的缔造者,欧格工作流引擎能够简化和优化所有流程,并为流程提供统一的管理平台。
activiti 概念
activiti 概念Activiti是一个开源的、基于Java的业务流程管理(BPM)框架。
它提供了一系列能够帮助企业实现业务流程自动化的功能,包括流程设计、流程执行、流程监控等。
本文将围绕Activiti的概念展开,逐步介绍Activiti 的主要特点、工作原理、核心组件以及与其他流程引擎的比较。
一、Activiti的概念Activiti是一个轻量级的、开源的、基于Java的BPM框架。
它具有以下主要特点:1. 灵活性:Activiti支持各种类型的流程、任务和事件,并且可以与现有的应用系统集成,以满足不同企业的需求。
2. 可扩展性:Activiti可以通过编写自定义的服务类和监听器来扩展其功能,以满足特定的业务需求。
3. 可视化设计:Activiti提供了一个图形化的设计器,可以方便地设计和修改流程模型。
4. 易于使用:Activiti的API简单易用,可以快速上手,并且提供了丰富的文档和示例。
二、Activiti的工作原理Activiti的工作原理是基于业务流程管理的各个环节进行自动化处理。
其主要过程如下:1. 流程设计:使用Activiti提供的图形化设计器,设计和绘制业务流程模型。
流程模型由一系列的活动、转移和网关组成,描述了流程的执行顺序和条件。
2. 流程部署:将流程模型部署到Activiti的运行环境中,生成流程定义。
流程定义包括处理任务的路由和执行逻辑等信息。
3. 流程执行:根据流程定义,Activiti会实例化一个流程实例,并按照流程模型中定义的顺序和条件来执行活动。
4. 任务处理:在流程执行过程中,会产生一系列的待处理任务。
这些任务会分配给相应的参与者,并通过任务管理功能进行处理。
5. 流程监控:Activiti提供了一个监控系统,可以实时查看流程的执行情况和各个活动的状态。
三、Activiti的核心组件Activiti的核心组件包括流程引擎、流程仓库、运行时服务、任务服务以及监控服务。
Flowable与activiti对比
Flowable与activiti对⽐⽬前Flowable已经修复了activiti6很多的bug,可以实现零成本从activiti迁移到flowable。
flowable⽬前已经⽀持加签、动态增加实例中的节点、⽀持cmmn、dmn规范。
这些都是activiti6⽬前版本没有的。
1、flowable已经⽀持所有的历史数据使⽤mongdb存储,activiti没有。
2、flowable⽀持事务⼦流程,activiti没有。
3、flowable⽀持多实例加签、减签,activiti没有。
4、flowable⽀持httpTask等新的类型节点,activiti没有。
5、flowable⽀持在流程中动态添加任务节点,activiti没有。
6、flowable⽀持历史任务数据通过消息中间件发送,activiti没有。
7、flowable⽀持java11,activiti没有。
8、flowable⽀持动态脚本,,activiti没有。
9、flowable⽀持条件表达式中⾃定义juel函数,activiti没有。
10、flowable⽀持cmmn规范,activiti没有。
11、flowable修复了dmn规范设计器,activit⽤的dmn设计器还是旧的框架,bug太多。
12、flowable屏蔽了pvm,activiti6也屏蔽了pvm(因为6版本官⽅提供了加签功能,发现pvm设计的过于臃肿,索性直接移除,这样加签实现起来更简洁、事实确实如此,如果需要获取节点、连线等信息可以使⽤bpmnmodel替代)。
13、flowable与activiti提供了新的事务监听器。
activiti5版本只有事件监听器、任务监听器、执⾏监听器。
14、flowable对activiti的代码⼤量的进⾏了重构。
15、activiti以及flowable⽀持的数据库有h2、hsql、mysql、oracle、postgres、mssql、db2。
java 流程编排架构
java 流程编排架构
Java流程编排架构是一种用于构建、管理和执行复杂工作流的系统架构。
它允许您将不同的任务、服务和组件组合在一起,以实现特定的业务目标。
以下是一些常见的Java流程编排架构:
1. Spring Integration:Spring Integration是一个基于Spring的集成框架,它提供了一种用于构建事件驱动的集成应用程序的方法。
它支持多种消息传递协议,包括消息队列、事件总线、电子邮件和文件传输等。
通过使用Spring Integration,您可以轻松地将不同的服务、应用程序和组件连接起来,以实现复杂的业务流程。
2. Camunda BPM:Camunda BPM是一个开源的工作流引擎,它使用BPMN 标准来建模和执行业务流程。
它提供了一个易于使用的API和用户界面,使您能够创建、部署和管理业务流程。
Camunda BPM还支持Java 和JavaScript等编程语言,并与其他平台和框架集成。
3. Activiti:Activiti是一个轻量级的业务流程管理(BPM)平台,它提供了一个易于使用的API和用户界面,使您能够创建、部署和管理业务流程。
Activiti支持BPMN 标准,并与其他平台和框架集成。
4. jBPM:jBPM是一个基于Java的业务流程管理(BPM)框架,它使用BPMN 标准来建模和执行业务流程。
jBPM提供了一个易于使用的API和用
户界面,使您能够创建、部署和管理业务流程。
jBPM还支持多种集成选项,包括与数据库、应用程序和消息队列的集成。
这些架构都具有不同的特点和优势,您可以根据您的具体需求选择最适合您的架构。
JBPM与Activity分析
1概述这里对现阶段市面上的几个主流工作流引擎进行对比,同时将其与FixFlow 进行功能和各方面的对比。
这里选定的目标是JBPM和Activit,现在两者最新稳定版本分别是JBPM5以及Activiti5。
同时这里会讲讲FixFlow这个国产工作流引擎,对于国内用户来说,使我们在几个国外工作流之外又有了更多的选择。
我们可以看到国内的开源流程引擎也可以做到国际级的水平,同时还可以支持加签、会签、回退等这样的“中国式工作流”。
2JBPM和Activiti对比首先先看看JBPM5和Activiti5,这两者现在可以说是国内外最常见到的开源工作流引擎。
如果总管两者的发展史会发现两者的奠基人都是来自于一个叫Tom Baeyens的人。
所以就会发现JBPM系列和Activiti系列的风格方面有很多相似,而Activiti看起来更像是JBPM的后续发展。
2.1 从JBPM3到Activiti5从架构层面上来看JBPM3的架构为:从这张图可以很清晰的看出JBPM的技术架构,可以说作为一个工作流引擎应该有的成分:设计器、控制台、流程引擎、引擎数据库这几者已经明显的标注之上,在后续的各个工作流引擎中这种架构都没有颠覆性的变化。
这里我们来看一下JBPM5的架构他引入了规则引擎Drools,规则引擎负责了整个流程引擎的运转,而知识仓库的存在。
让面向流程的知识管理有了更直观的认识,事实上JBPM的代码操作几乎都是从知识库类开始的。
这张图很好的表现出了一个以BPMS为方向的流程产品应该是什么样的架构模式。
如果说JBPM是产品经理的造物的话,那么Activiti就是技术人员的杰作,Activiti更多的精力是放在了技术架构的精妙。
其易用性方面是JBPM难以比拟的。
集成一个Activiti的难度要远低于JBPM,同时JBPM业务化的api体系也着实让技术人员有些头疼。
这张图就是Activiti的架构图,可以看出这张图与其说产品架构图,更有点像技术架构图。
Activiti和FixFlow介绍
Page 18
连接对象(Connecting Objects)
连接对象(Connecting Objects)将流程对象连接起来组成业 务流程的结构。有三种连接对象:序列流(Sequence Flow )、 消息流( Message Flow )和结合关系(Association )
序列流(Sequence Flow ) 用实线实心箭头表示,代表流程中将被执行的活动的执行顺 序。 例如:
Page 12
在BPMN中一个Task使用一个单实线圆角矩形来表示。在 Task上可以设置一个Marker(记号)如下图
Page 13
当事件子流程(Sub-Process)包含的Start Event被触发时, 事件子流程就启动了.事件子流程启动后,它的父流程是终止还是 继续运行呢? 这是由事件子流程的Start Event是否标注为“中 断”决定的。 如果Start Event标注为中断(Start Event表现为实线的圆圈 ,如下图中第二个事件子流程),则事件子流程启动后,父流程 终止; 如果Start Event没有标注为中断(Start Event表现为虚线的 圆圈,如下图中第一个事件子流程),则事件子流程启动后,父流 程继续运行。
Activiti和FixFlow介绍
半城山水
目录
1.什么是BPMN,WorkFlow 2.BPMN2.0介绍 3.Activiti介绍 4.FixFlow介绍 5.Activiti和FixFlow功能比较
Page 2
什么是BPMN、Workflow
BPM(Business Process Management)——“通过建模、自动化、管理 和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”。
activiti工作流引擎
activiti工作流引擎Activiti工作流引擎。
Activiti是一个轻量级的工作流引擎,它是一个开源的BPM(Business Process Management)平台,用于管理和执行业务流程。
Activiti工作流引擎可以帮助企业实现业务流程的自动化和优化,提高工作效率,降低成本,增强业务的灵活性和可控性。
Activiti工作流引擎具有以下特点:1. 灵活性,Activiti支持各种类型的业务流程,包括顺序流程、并行流程、循环流程等,可以根据企业的实际需求定制各种复杂的业务流程。
2. 可扩展性,Activiti提供了丰富的API和插件机制,可以方便地扩展和定制各种功能,满足企业特定的业务需求。
3. 可视化,Activiti提供了流程设计器,可以通过图形化界面设计和编辑业务流程,使业务流程的设计和管理变得更加直观和方便。
4. 高性能,Activiti采用了轻量级的架构设计,具有高性能和低资源消耗的特点,可以满足企业大规模业务流程的需求。
5. 安全性,Activiti提供了完善的安全机制,包括用户认证、授权管理等,保障业务流程的安全性和可靠性。
使用Activiti工作流引擎可以带来以下好处:1. 自动化流程,通过Activiti工作流引擎,企业可以将繁琐的业务流程自动化执行,减少人工干预,提高工作效率。
2. 优化资源配置,Activiti工作流引擎可以根据业务流程自动分配资源,合理利用企业的人力和物力资源,降低成本。
3. 实时监控,Activiti工作流引擎提供了实时监控和报表功能,可以随时了解业务流程的执行情况,及时发现和解决问题。
4. 灵活调整,Activiti工作流引擎可以根据业务需求灵活调整业务流程,适应企业不断变化的业务环境。
5. 提升管理水平,通过Activiti工作流引擎,企业可以实现业务流程的标准化和规范化管理,提升管理水平和业务质量。
总之,Activiti工作流引擎是一个功能强大、灵活性高、性能优越的工作流引擎,可以帮助企业实现业务流程的自动化和优化,提高工作效率,降低成本,增强业务的灵活性和可控性。
一、activiti流程引擎介绍
⼀、activiti流程引擎介绍⼯作流(Workflow),就是“业务过程的部分或整体在计算机应⽤环境下的⾃动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递⽂档、信息或任务的过程⾃动进⾏,从⽽实现某个预期的业务⽬标,或者促使此⽬标的实现”。
⼯作流管理系统(Workflow Management System, WfMS)是⼀个软件系统,它完成⼯作量的定义和管理,并按照在系统中预先定义好的⼯作流规则进⾏⼯作流实例的执⾏。
⼯作流管理系统不是企业的业务系统,⽽是为企业的业务系统的运⾏提供了⼀个软件的⽀撑环境。
⼯作流管理联盟(WfMC,Workflow Management Coalition)给出的关于⼯作流管理系统的定义是:⼯作流管理系统是⼀个软件系统,它通过执⾏经过计算的流程定义去⽀持⼀批专门设定的业务流程。
⼯作流管理系统被⽤来定义、管理、和执⾏⼯作流程。
⼯作流管理系统的⽬标:管理⼯作的流程以确保⼯作在正确的时间被期望的⼈员所执⾏——在⾃动化进⾏的业务过程中插⼊⼈⼯的执⾏和⼲预。
Activiti介绍Activiti5是由Alfresco软件在2010年5⽉17⽇发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、⼯作流、服务协作等领域的⼀个开源的、灵活的、易扩展的可执⾏流程语⾔框架。
Activiti基于Apache许可的开源BPM平台,创始⼈Tom Baeyens是JBoss jBPM的项⽬架构师,它特⾊是提供了eclipse插件,开发⼈员可以通过插件直接绘画出业务流程图。
1.⼯作流引擎ProcessEngine对象,这是Activiti⼯作的核⼼。
负责⽣成流程运⾏时的各种实例及数据、监控和管理流程的运⾏。
2. BPMN业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成⼀个业务流程图(Business Process Diagram)3. 数据库Activiti数据库⽀持:Activiti的后台是有数据库的⽀持,所有的表都以ACT_开头。
工作流activiti介绍
Activiti6工作流1、Activiti工作流概述1.1、工作流概述工作流(Workflow),就是通过计算机对业务流程自动化执行管理。
它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
在我们日常的工作中,每时每刻都在执行一个个的流程,我们可能是流程的发起人,也可能能是流程的中间人,甚至是最后终止一个流程的大boss,总体而言流程,即工作流就是为了团队协作而生,任何需要团队持续写作的场景都有必要用到工作流。
比如老生常谈的员工请假,发出请求,逐级上报,逐级审批。
在我们的项目中也是一样,很多项目都是存在业务流程。
1.2、工作流系统一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。
即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。
常见的工作流有:请假流程、出差申请流程、出差申请流程项目研发流程1.3 工作流的实现没有用工作流之前我们是怎么做的?我们之前为了实现流程控制, 通常是通过状态(status)字段的值,来跟踪流程状态,但是不完美比如请假流程:员工申请-> 部门经理审批-> 人事存档我们要给status字段设置状态: 0 = 员工未提交; 1 = 员工已提交; 2= 部门经理拒绝审批; 3 = 部门经理同意审批; 最终人事查询status= 4也就是申请成功的请假单数据通过状态字段我们虽然可以实现流程的控制但是弊端也很明显: 当我们那不讲武德的产品经理说出“这个功能要改”的时候我们只能去改变代码比如: 在这个部门经理的后面在加一个总经理审批的功能, 则程序不能用了那么能不能做到流程业务变化后,程序可以不用变呢?使用工作流之后改善了我们哪些问题?Activiti能做到当需求变更时,代码不需要发生改变,只需要更新业务流程图即可.二、Activiti概述Activiti是一个工作流引擎,activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
四大开源的java工作流程引擎,流程快速开发平台对比分析选型
四大国内外开源的java工作流程引擎,流程快速开发平台对比分析选型为了更好的帮助大家找到适合自己的流程引擎,快速的完成流程引擎技术架构选型,快速的完成项目交付我们找到了4个开源的java工作流引擎,一些应用环境对比分析。
希望您能从中找到适合您自己的流程引擎。
工作流引擎Activiti JBoss JBPM 6.5 JFlow 6.0 FixFlow 5.0简介Activiti是由jBPM 的创建Tom Baeyen离JBoss之后建立的项目,构建在开发jBPM 版本1到4时积累的多年经验的基础之上,旨在创建下一代的BPM 解决方案。
jBPM是公开源代码项目,jBPM在200年10月18日,发布了2.0版本,并在同一天加入了JBoss,成为了JBoss企业中间件平台的一个组成部分,它的名称也改成JBoss jBPM。
JFlow属于济南驰骋信息技术有限公司的开源项目,向社会100%开源。
研发于2003年,到一直持续到现在,功能强大丰富,图形化的配置,功能性配置较高,在中国国情下成长起来的优秀的工作流引擎。
在国内有一定的市场地位,是国内著名的老牌工作流引擎。
它是一款方正国际自主研发的开源BPM流程引擎。
吸纳了jBPM3和Activiti5等国际开源流程引擎的精髓,参考了SAP Netwaver、IBM BPM 等重量级BPM产品功能。
文档文档丰富,csdn有相应专栏,并且国人贡献了一本《activiti实战》详细的讲解了基于activiti的开发内容,网上教程资源丰富。
中文文档相对匮乏,网上教程资源参考价值不大。
公司提供完整详细的接口文档和操作手册,属于国内公司开源项目,有专门的BBS论坛。
官网已关闭,并且很多内容一两年没进行维护,导致文档资源相对缺乏。
官方提供一份完整用户向导手册,涵盖了所有FixFlow基本功能和简单操作。
环境部署官方提供webapp war包,部署在Tomcat下可快速操作和了解activiti,esclipse提供支持activiti项目的ide插件,总的来说环境支持良好。
java开源主流工作流框架比较
开源工作流框架及平台集成分析报告目录1.Java主要开源工作流列表 (1)1.1.jBpm (1)1.2.OSWorkflow (1)1.3.Enhydra Shark (1)1.4.Activiti5 (1)1.5.OpenWFE (1)1.6.Werkflow (1)1.7.OFBiz (2)1.8.Flow4J (2)1.9.ObjectWeb Bonita (2)1.10.OBPM (2)2.四大开源工作流框架分析 (2)2.1.JBpm (2)优点 (2)缺点 (3)2.2.OSWorkflow (3)优点 (3)缺点 (3)2.3.Enhydra Shark (3)优点 (3)缺点 (3)2.4.Activiti5 (4)优点 (4)缺点 (4)3.与统一开发平台集成 (4)3.1.流程定义插件集成 (4)3.2.核心包及jar包集成 (4)3.3.部署方式 (4)3.4.版本选择与维护问题 (5)4.图表比较 (5)5.总结 (7)1.Java主要开源工作流列表1.1. jBpmjBpm是一个灵活可扩展的工作流管理系统。
作为jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中。
jBpm将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。
1.2. OSWorkflowOSWorkflow是一个灵活的工作流引擎,设计成可嵌入到企业应用程序中。
它提供了许多的持久化API支持包括:EJB,Hibernate,JDBC和其它。
1.3. Enhydra SharkShark完全基于WfMC和OMG标准,使用XPDL作为工作流定义语言。
流程和活动的存储使用Enhydra DODS(一个开源OR映射工具)。
1.4. Activiti5Activit5继承了jBpm4的所有优点,支持最新BPMN2.0规范,实现了流程的可视化以及创新的Activiti Cycle协作组件,此外,通过与Mule的集成加强了其集成能力。
BPMN2新规范与Activiti
BPMN2新规范与Activiti5上世纪九十年代以后,随着WfMC联盟的成立,BPM市场群雄逐鹿如火如荼,工作流技术得到了突飞猛进的发展,其中IBM、Oracle等大型软件厂商在工作流领域各扯大旗割据一方。
2011年BPMN2.0新规范的发布为各工作流产品互容互通提供了统一的标准,结束了各工作流厂商各自为政相互抵斥的局面。
什么是BPMN、Workflow?•BPM(Business Process Management)——“通过建模、自动化、管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”。
•Workflow——“全部或者部分由计算机支持或自动处理的业务过程”(工作流管理联盟WfMC组织对工作流概念的经典定义)BPM基本内容是管理既定工作的流程,通过服务编排,统一调控各个业务流程,以确保工作在正确的时间被正确的人执行,达到优化整体业务过程的目的。
BPM概念的贯彻执行,需要有标准化的流程定义语言来支撑,使用统一的语言遵循一致的标准描述具体业务过程,这些流程定义描述由专有引擎去驱动执行。
这个引擎就是工作流引擎,它作为BPM的核心发动机,为各个业务流程定义提供解释、执行和编排,驱动流程“动“起来,让大家的工作“流”起来,为BPM的应用提供基本、核心的动力来源。
现实工作中,不可避免的存在跨系统跨业务的情况,而大部分企业在信息化建设过程中是分阶段或分部门(子系统)按步实施的,后期实施的基础可能是前期实施成果的输出,在耦合业务实施阶段,相同的业务过程可能会在不同的实施阶段重用,在进行流程梳理过程中,不同的实施阶段所使用的流程描述语言或遵循的标准会有所不同(服务厂商不同),有的使用WfMC的XPDL,还有些使用BPML、BPEL、WSCI等,这就造成流程管理、业务集成上存在很大的一致性、局限性,提高了企业应用集成的成本。
BPMN2.0规范的引入遵循BPMN2.0新规范的工作流产品能很大程度上解决此类问题。
简单易学工作流框架
简单易学工作流框架工作流框架是一种用于组织和管理工作流程的技术工具,它可以帮助企业实现工作的自动化、协作和监控。
在众多的工作流框架中,有一些简单易学的框架,它们不仅功能强大,而且易于上手和使用。
本文将介绍一些简单易学的工作流框架,并探讨它们的优势和适用场景。
一、工作流框架的基本概念在介绍简单易学的工作流框架之前,先来了解一下工作流框架的基本概念。
工作流框架主要由以下几个关键概念组成:1. 任务(Task):工作流中的基本单位,代表一个具体的工作项或者操作。
2. 流程(Workflow):由一系列任务组成的工作流程,代表了工作的执行顺序和依赖关系。
3. 规则(Rule):用于定义工作流程中的条件和约束,以控制流程的执行。
4. 触发器(Trigger):用于触发工作流的执行,可以是时间触发、数据触发等。
二、简单易学的工作流框架1. Apache AirflowApache Airflow是一个开源的工作流管理平台,它提供了一种简单易学的方式来定义、调度和监控工作流。
Airflow使用Python编写,通过编写代码来定义工作流程,具有良好的可扩展性和灵活性。
它支持任务的依赖关系和重试机制,并提供了丰富的插件和可视化界面。
2. CamundaCamunda是一个开源的工作流引擎,它提供了一个简单易学的方式来设计和执行工作流程。
Camunda支持BPMN(Business Process Model and Notation)标准,使用图形化界面来设计工作流,并提供了强大的执行引擎来驱动工作流的执行。
它还支持任务的分配和优先级管理,以及工作流的监控和报告。
3. ActivitiActiviti是另一个开源的工作流引擎,它也支持BPMN标准,并提供了一种简单易学的方式来设计和执行工作流程。
Activiti使用Java编写,可以与Spring等常用框架集成,具有良好的扩展性和灵活性。
它支持任务的委派和分配,以及工作流的历史记录和监控。
activity工作流替代方案
activity工作流替代方案
替代activity工作流的方案有很多种,具体取决于你的需求和实际情况。
以下是一些常见的替代方案:
1. 使用BPMN工作流引擎,BPMN(Business Process Model and Notation)是一种业务流程建模和标准化的方法,许多工作流引擎都支持BPMN标准,可以用来设计、执行和监控各种业务流程。
一些常见的BPMN工作流引擎包括Activiti、Camunda等。
2. 自定义开发,根据具体业务需求,可以考虑自行开发工作流引擎,使用各种编程语言和技术来实现自定义的工作流解决方案。
这种方法可以根据实际需求进行灵活定制,但需要投入更多的开发成本和时间。
3. 使用第三方工作流服务,一些云服务提供商提供了成熟的工作流解决方案,可以通过API或集成SDK来实现工作流管理。
这种方式可以快速部署,减少运维成本,但可能受限于第三方服务商的功能和定价策略。
4. 使用微服务架构,将工作流功能作为一个独立的微服务,与
其他业务系统进行集成。
这种方式可以实现业务逻辑和工作流的解耦,提高系统的灵活性和可维护性。
5. 使用规则引擎,一些规则引擎可以用来管理和执行复杂的业务规则和流程,可以作为activity工作流的替代方案来处理特定类型的业务流程。
总之,选择合适的替代方案需要综合考虑业务需求、技术栈、团队能力和预算等因素,希望以上建议对你有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
驰骋工作流引擎JFlow与activiti对比分析报告目录前言 (4)工作流程引擎 - 对比 (4)5种基本控制流模式的对比 (5)4种高级分支同步模式 (10)2种结构化模式 (14)4种包含多实例的模式 (16)3种基于状态的模式 (19)2种取消模式 (22)总结 (23)表单集成 (24)表单引擎与流程引擎的关系 (25)最简单的请假流程-根据表单的请假天数来判断流程的分支 (25)流程引擎操纵表单引擎的一个案例 (27)对多种表单的支持 (29)简洁明快的CCForm (29)Word文档支持 (31)Excel表单的支持 (31)表单树的支持 (32)符合中国特色个性化JFlow功能 (32)流程属性 (33)多种接受人规则 (33)接受人员投递路径自动记忆 (34)发起前置导航 (35)节点属性 (35)方向条件可视化配置 (36)JFlow对工业自动化的流程支持 (37)前言为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的、客观的对比。
首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛,解决了BPM领域的很多问题,值得我们赞赏。
他的boss是jbpm的前身。
JFlow是济南驰骋公司开放的一款工作流程引擎,JFlow的前身是CCFlow,ccflow是国内开源的一款老牌的工作流程引擎,承担过很多大型项目,适应于复杂的国内应用环境。
Activity 相对简单,仅有流程引擎,没有表单引擎。
在BPM的研究领域, 很多的学者,专家都是把流程引擎与表单引擎分开的,对于这个观点我们并不很赞同。
实现功能需要大量的代码开发。
JFlow是JFlow流程引擎+CCForm的表单引擎的有机结合,内容相对复杂,配置程度较高,实施周期短,上手快。
工作流程引擎 - 对比以国外流行的工作流activiti的模式与当今中国开源的JFlow(ccflow和jflow的总称)流程引擎对照。
以便让各位能够了解到中国国情的工作流引擎与国际流行的设计规则的差别、不同、与优缺点。
国外工作流比较通用的就是满足21种流程模式的支持。
5种基本控制流模式的对比1.顺序流(Sequence)ACTIVITI :就是按照流程设计的步骤,一步步的向下运行,这样的模式下每个节点有先后顺序,就是每个节点只有一个节点是活动的。
例子:比如申请后进行审批,一步一步的进行任务。
JFLOW:顺序流,也叫做没有分支的线性流程,流程一般在最后一个节点自动结束,并标识流程完成。
也可以通过设置节点条件,自动结束流程。
JFlow的特点是:允许用户自己定义流程完成条件,在任何一个节点运行过程中,JFlow都要去检查条件设置,如果满足这个条件流程就自动结束。
2.并行分叉(ParallelSplit)ACTIVITI :流程在某个活动(节点、步骤)之后产生多个分支,并且并行流转。
例子:比如在淘宝买了个商品需要开发票,那么卖家就需要一边准备商品发货,一边准备发票邮寄。
JFLOW:异表单分合流的分流动作,一个动作结束后(分流节点),并行启动多个分支,每个分支都要向下运动。
在cc中,可以根据方向条件设置来决定是否启用某一个分支。
3.同步(Synchronization)ACTIVITI :在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。
流程必须等待所有的分支都执行完成后,才能激活后续活动。
例子:比如商家在收到“发票”和“商品”后,才能确认收货。
JFLOW:异表单分合流中的合流动作,可以指定一定的完成率,才能到达合流节点。
对于未完成的子线程,可以进行删除操作。
4.独占式选择(Exclusive Choice)ACTIVITI :一个活动完成后,只能在后面的多个分支中激活一个。
例子:比如用户下单后,可以有N种付款方式,但是只能选择其中一种。
JFLOW:具有分支的线性流程。
可以由方向条件控制,也可以由用户手动控制。
5.简单聚合(Simple Merge)ACTIVITI :在流程中有2个以上的分支中某一个点处被合并成一个分支,只要分支中的一条完成,即可继续进行,而其他分支自动结束。
例子:比如发货在建设银行和中国银行等支付方式中的一个完成后才被激活。
JFLOW:即可以为带有分支的线性流程,又可以是异表单的合流动作。
在线性流程中,在某一处选择需要执行的节点并完成执行后,后面的节点一步一步的执行,没有被选择的节点不执行。
在异表单中,可以通过条件设置需要执行的节点,其他节点不执行,在合流点完成汇总并激活。
或者,通过设置完成率来激活合流点的操作。
区分到底是否是分合流,通过查看节点类型。
6.基本控制流程模式,在ACTIVITI 中与JFLOW中的综合实现。
ACTIVITI :JFLOW:4种高级分支同步模式1.多重选择(Multiple Choice)在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。
例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。
ACTIVITI 中的支持情况:1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。
2.BPMN方式支持根据条件执行多个子分支。
JFLOW中的支持情况:1.通过定义流程为异表单分合流来实现。
a通过条件控制发起子线程数量。
设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。
b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。
2.通过父子流程也可以实现。
2.同步聚合(Synchronizing Merge)在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。
如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。
这种模式的关键在于能够动态的根据分支的多少进行聚合。
ACTIVITI 中的支持情况:可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量,并在程序中动态的修改变量的值来制定分支的数量。
JFLOW中的支持情况:分合流中合流操作。
无论分支有多少,都可以进行汇总,并且可以对汇总的子线程进行删除操作、完成率控制等。
JFLOW的多重选择与同步聚合实例图:结束为聚合点,中间的为分支。
3.多重聚合(Multiple Merge)在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。
例子:游客观光完N个片区之后,每个片区各自的系统可以对游客在自己片区的信息进行存储。
ACTIVITI 与JFLOW的支持请参考同步聚合。
4.鉴别器(Discriminator)在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;与此同时,流程仍然要等待其余的分支完成并忽略完成。
注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的。
例子:个人申请提交后,并行提交给第一导师审批、第二导师审批、第三导师审批,他们中只要有一个完成了,那么就可以提交给学院审批。
N-out-of-M鉴别器模式:跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点未完成前,新激活的后续节点一样无法被执行。
ACTIVITI 中的支持情况:没有直接支持这种模式,但是通过自定义节点,应该是可以处理这种模式的。
JFLOW中的支持情况:有两个属性的控制,可以实现功能,就是上面所说的子线程完成路和子线程删除规则。
第1个:子线程完成率。
该规则可以决定是否可见第2个:子线程删除规则。
该规则决定那些子线程可以被删除以及他们的删除方式。
2种结构化模式1.任意循环(Arbitrary Cycles)ACTIVITI :某一个或多个活动可以反复执行。
例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水….JFLOW:完全是条件判断,在表单中增加一个审核组件,就可以把每次校验的信息,写入里面,完整的显示出来整个轨迹。
2.隐式终止(Implicit Termination)ACTIVITI :指这一个流程中,如果没有活动可以执行,那么流程会自动终止。
例子:比如用户买了汽水,中了50元,但是没有地方可以兑换。
JFLOW:这种类型属于JFlow的线性流程的一种,该流程配上流程完成条件,就可以实现该功能。
流程完成条件,就是流程在前进中检查的条件,如果满足该条件,流程就停止运行,该流程实例结束。
4种包含多实例的模式1.无同步的多实例(MIwithout)在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步。
例子:比如用户购买了N本书,于是后续的支付账单、更新客户可以以本书为单位各自执行。
ACTIVITI 中的支持情况:支持这种模式,但是不允许在后面进行结束动作。
JFLOW中的支持情况:分合流与父子流程支持这种模式,分合流上面已经讲过,下面说下父子流程。
第一种情况:发起子流程后,等所有的子流程执行完成后,父流程继续下一步骤或者结束。
第二种情况:发起子流程后,无论子流程是否执行完成,都执行到下一步或者结束。
父流程:2.设计时确定的多实例(MIwith a Priori Design Time Knoledge)在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候就已经知晓率。
ACTIVITI 中的支持情况:对于设计时已经知道实例数量的,最简单的就是使用多个Task节点来实现多个实例。
JFLOW中的支持情况:合流节点处理各个子线程的任务比率。
完成率 = 子线程上已经完成的数据/所有子线程数量*100%该节点对于合流节点与分合流节点有效,当子线程的完成率达到该值的时候,该节点的待办才能显示出来,否则该节点的人员不能处理待办。
如果合流节点的处理人能够看到待办,他就可以对该流程进行操作,比如:发送、删除、退回、删除子线程等等。
3.运行时确定的多实例(MI with a Priori RunTime Knoledge)在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,只有在运行时根据条件来决定需要激活多少个实例。
ACTIVITI 中的支持情况:对于运行时可以知晓实例数量的,可以通过设置JOIN节点的multipliclty来实现。
JFLOW中的支持情况:同表单分合流配合节点访问规则可以实现这个功能。
4.运行时无法确定的多个实例(MI without a Priori RunTime Knoledge)在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,该模式与上一个模式的区别就是,在产生的实例执行时或者已经执行完时,仍然有新的实例产生。