JFlow与activiti的对比
BPMN工作流的基本概念!详解工作流框架Activiti
![BPMN工作流的基本概念!详解工作流框架Activiti](https://img.taocdn.com/s3/m/1561d7fa162ded630b1c59eef8c75fbfc77d94e9.png)
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⽅法,因为有新任务⽽被调⽤。
activity 工作流详细介绍
![activity 工作流详细介绍](https://img.taocdn.com/s3/m/d20bee1c3a3567ec102de2bd960590c69ec3d8d0.png)
activity 工作流详细介绍Activity工作流详细介绍随着科技的发展,人们对于工作效率和流程管理的要求也越来越高。
在现代企业和组织中,活动(Activity)工作流成为了一个重要的工具,用于管理和优化各种类型的业务流程。
本文将详细介绍Activity工作流的定义、特点、使用场景以及它所带来的好处。
一、定义Activity工作流是一种用于描述、管理和执行业务流程的工具。
它通过将业务流程拆解为一系列的活动(Activity)和控制流(Flow)来实现对流程的管理和控制。
每个活动代表了一个具体的业务操作,而控制流则描述了活动之间的先后顺序和条件关系。
二、特点1. 可视化建模:Activity工作流提供了图形化的建模工具,使用户可以直观地设计和编辑业务流程。
通过拖拽和连接各种活动和控制流,用户可以快速构建出复杂的流程模型。
2. 强大的执行引擎:Activity工作流的执行引擎可以自动执行和协调各个活动,按照预定义的规则和条件进行流转。
同时,它还提供了错误处理、并发控制、事务管理等功能,确保流程的正确执行。
3. 灵活的流程控制:Activity工作流支持多种流程控制机制,如条件分支、循环、并行等。
这使得用户可以根据不同的业务需求,灵活地设计和调整流程的控制逻辑。
4. 高度可扩展:Activity工作流提供了丰富的扩展机制,用户可以通过自定义活动和控制组件,满足特定业务场景的需求。
此外,它还支持与其他系统进行集成,实现流程的自动化和信息的无缝传递。
三、使用场景Activity工作流可以应用于各种业务场景,尤其适用于以下几个方面:1. 流程管理:Activity工作流可以帮助企业和组织规范和优化各种类型的流程,如请假流程、审批流程、销售流程等。
通过明确的流程定义和自动化的执行,可以提高工作效率和质量。
2. 工作协同:Activity工作流可以实现不同岗位之间的协同工作。
通过定义和分配任务,每个参与者可以清楚地知道自己需要做什么,以及何时完成。
国内外主流工作流引擎及规则引擎分析
![国内外主流工作流引擎及规则引擎分析](https://img.taocdn.com/s3/m/dd6a5446e97101f69e3143323968011ca300f720.png)
国内外主流工作流引擎及规则引擎分析工作流引擎和规则引擎是现代信息化系统中常用的技术工具,旨在提高工作效率、降低人工操作成本并优化业务流程。
本文将对国内外主流的工作流引擎和规则引擎进行分析。
工作流引擎是一种用于管理和自动化业务流程的软件工具。
它定义、执行和监控各种业务流程,能够自动化工作流程、加强协作和控制、提高工作效率。
国内外主流的工作流引擎有: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提供了强大的推理和规则匹配功能,支持定义和执行各种复杂的业务规则。
国内外主流工作流引擎及规则引擎分析
![国内外主流工作流引擎及规则引擎分析](https://img.taocdn.com/s3/m/676d9667814d2b160b4e767f5acfa1c7aa00822c.png)
国内外主流工作流引擎及规则引擎分析近年来,随着信息技术的高速发展和应用需求的增加,工作流引擎和规则引擎已成为企业信息化建设的重要组成部分。
相比于传统的人工操作,工作流引擎可以通过自动化和流程化的方式提高企业的工作效率和质量,规则引擎则可通过规则的自动验证和执行帮助企业实现业务流程的自动化处理。
本文将着重对国内外主流的工作流引擎和规则引擎进行分析。
一、国际主流工作流引擎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服务的缔造者,欧格工作流引擎能够简化和优化所有流程,并为流程提供统一的管理平台。
java 流程编排架构
![java 流程编排架构](https://img.taocdn.com/s3/m/0dc6af596d175f0e7cd184254b35eefdc8d315c2.png)
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分析
![JBPM与Activity分析](https://img.taocdn.com/s3/m/6b7161267375a417866f8f56.png)
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介绍
![Activiti和FixFlow介绍](https://img.taocdn.com/s3/m/c0a962f1700abb68a982fbbc.png)
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)——“通过建模、自动化、管理 和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”。
工作流引擎概论
![工作流引擎概论](https://img.taocdn.com/s3/m/2972924f4693daef5ff73d91.png)
• jBpm是一个灵活可扩展的工作流管理系统。作为 jBpm运行时server输入 的业务流程使用简单强大的语言表达并打包在流程档案中。jBmp将工作 流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来。 jBmp包括一个Web应用程序和一个日程安排程序。jBmp是一组J2SE组件, 可以作为J2EE应用集群部署。
关于Activiti
• 背景介绍
• Activiti 其核心是 BPMN 2.0 的流程引擎。BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准, 全称为 Business Process Model and Notation,由 OMG 组织进行维护,2011 年 1 月份发布了其 2.0 的正式版。BPMN 2.0 对比于第一个版本,其最重要的变化在于其定义了流程的元模型和 执行语义,即它自己解决了存储、交换和执行的问题。这代表着 BPMN 2.0 流程定义模型不 仅仅可以在任何兼容 BPMN 2.0 的引擎中执行,而且也可以在图形编辑器间交换。作为一个 标准,BPMN 2.0 统一了工作流社区。
• 本文将会介绍 Activiti 的基本概念,同时通过示例来介绍如何通过搭建 Activiti 开发环境和 Activiti API 使用,同时也会接触到 Activiti 的一些工具,希望通过阅读这篇文章,Activiti 能成 为您在开发 BPM 系统时的一个选择。
Activiti 基本架构和服务组件介绍
• RuntimeService:在 Activiti 中,每当一个流程定义被启动一次之后,都会生成一个相应 的流程对象实例。Runtime Service 提供了启动流程、查询流程实例、设置获取流程实例 变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。
JFlow与activiti的对比
![JFlow与activiti的对比](https://img.taocdn.com/s3/m/b7da60aa4693daef5ef73dcc.png)
驰骋工作流引擎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的总称)流程引擎对照。
一、activiti流程引擎介绍
![一、activiti流程引擎介绍](https://img.taocdn.com/s3/m/88c9ab2b86c24028915f804d2b160b4e767f810f.png)
⼀、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介绍
![工作流activiti介绍](https://img.taocdn.com/s3/m/1edb948609a1284ac850ad02de80d4d8d15a011c.png)
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工作流程引擎,流程快速开发平台对比分析选型](https://img.taocdn.com/s3/m/f00a40742af90242a895e55b.png)
四大国内外开源的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开源主流工作流框架比较
![java开源主流工作流框架比较](https://img.taocdn.com/s3/m/4c92f949f46527d3240ce0be.png)
开源工作流框架及平台集成分析报告目录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的集成加强了其集成能力。
java流程引擎框架
![java流程引擎框架](https://img.taocdn.com/s3/m/25d5425da200a6c30c22590102020740be1ecdaf.png)
3. jBPM:jBPM是一个用于业务流程管理的开源框架,它提供了一个灵活且可扩展的流程引擎,可以用于执行各种类型的业务流程。jBPM支持BPMN 2.0标准,并且提供了一个图形化的工具,用于创建和编辑流程。
4. Flowable:Flowable是一个用于业务流程管理和工作流引擎的开源框架,它提供了一组功能丰富的工具和API,可以用于创建、部署和执行业务流程。Flowable支持BPMN 2.0标准,并且提供了一组REST API,可以与其他系统进行集成。人员简化和管理复杂的业务流程。选择合适的框架取决于项目需求、团队经验和支持等因素。
java
Java流程引擎框架(Java Workflow Engine Framework)是一种用于管理和执行业务流程的工具。它提供了一个编程接口和一组功能,帮助开发人员定义、模拟、执行和监视复杂的流程。以下是一些流行的Java流程引擎框架:
1. Activiti:Activiti是一个开源的BPMN 2.0引擎,它提供了一个功能强大的流程引擎和一组工具,可以用于创建、部署和执行业务流程。它支持用户任务、网关、事件和持久化等功能。
activitiworkflow原理
![activitiworkflow原理](https://img.taocdn.com/s3/m/8ed24168657d27284b73f242336c1eb91a3733c8.png)
activitiworkflow原理Activiti是一个开源的工作流引擎,用于管理和执行业务流程。
其原理可以概括为下述几个方面:1. 流程定义:Activiti使用BPMN2.0作为流程定义语言,用户通过定义一个XML格式的BPMN文件来描述业务流程。
这个文件包含了流程中涉及的各种任务、连线、条件和分支等元素。
2. 流程部署:当流程定义被创建好后,需要将其部署到Activiti引擎中进行管理和执行。
流程部署包括将BPMN文件部署到引擎中,并对其进行解析和转换成可执行的流程实例。
3. 流程实例:在流程定义被部署后,可以通过引擎创建流程实例。
流程实例表示一个流程定义的具体执行过程,包含了当前执行到的任务、变量等信息。
4. 任务分配:在流程执行过程中,任务会被分配给执行者,并通过引擎进行管理。
引擎根据流程定义中定义的人员角色和条件来确定任务的分配方式。
5. 任务执行:执行者通过Activiti提供的API来完成分配给自己的任务。
执行者可以查看任务详情、完成任务、提供任务相关的信息等操作。
6. 流程控制:Activiti引擎会根据流程定义中的连线和条件来控制流程的走向。
当一个任务被完成时,引擎会根据流程定义中定义的下一个任务来确定下一步的执行路径。
7. 监控和查询:Activiti提供了丰富的查询和监控功能,用于查看流程的状态、任务的执行情况和历史记录等。
用户可以通过这些功能来追踪和监控流程的整个执行过程。
总体来说,Activiti的工作流原理就是通过定义和管理流程定义,控制流程的执行,分配和执行任务,以及提供监控和查询功能,实现业务流程的自动化和管理。
BPMN2新规范与Activiti
![BPMN2新规范与Activiti](https://img.taocdn.com/s3/m/a07b9b0627d3240c8447ef77.png)
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新规范的工作流产品能很大程度上解决此类问题。
简单易学工作流框架
![简单易学工作流框架](https://img.taocdn.com/s3/m/bf73190af011f18583d049649b6648d7c0c70856.png)
简单易学工作流框架工作流框架是一种用于组织和管理工作流程的技术工具,它可以帮助企业实现工作的自动化、协作和监控。
在众多的工作流框架中,有一些简单易学的框架,它们不仅功能强大,而且易于上手和使用。
本文将介绍一些简单易学的工作流框架,并探讨它们的优势和适用场景。
一、工作流框架的基本概念在介绍简单易学的工作流框架之前,先来了解一下工作流框架的基本概念。
工作流框架主要由以下几个关键概念组成: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工作流替代方案](https://img.taocdn.com/s3/m/6b49664c91c69ec3d5bbfd0a79563c1ec4dad76f.png)
activity工作流替代方案
替代activity工作流的方案有很多种,具体取决于你的需求和实际情况。
以下是一些常见的替代方案:
1. 使用BPMN工作流引擎,BPMN(Business Process Model and Notation)是一种业务流程建模和标准化的方法,许多工作流引擎都支持BPMN标准,可以用来设计、执行和监控各种业务流程。
一些常见的BPMN工作流引擎包括Activiti、Camunda等。
2. 自定义开发,根据具体业务需求,可以考虑自行开发工作流引擎,使用各种编程语言和技术来实现自定义的工作流解决方案。
这种方法可以根据实际需求进行灵活定制,但需要投入更多的开发成本和时间。
3. 使用第三方工作流服务,一些云服务提供商提供了成熟的工作流解决方案,可以通过API或集成SDK来实现工作流管理。
这种方式可以快速部署,减少运维成本,但可能受限于第三方服务商的功能和定价策略。
4. 使用微服务架构,将工作流功能作为一个独立的微服务,与
其他业务系统进行集成。
这种方式可以实现业务逻辑和工作流的解耦,提高系统的灵活性和可维护性。
5. 使用规则引擎,一些规则引擎可以用来管理和执行复杂的业务规则和流程,可以作为activity工作流的替代方案来处理特定类型的业务流程。
总之,选择合适的替代方案需要综合考虑业务需求、技术栈、团队能力和预算等因素,希望以上建议对你有所帮助。
Flowable与activiti对比
![Flowable与activiti对比](https://img.taocdn.com/s3/m/48b846fe0875f46527d3240c844769eae009a311.png)
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。
- 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 中的综合实现ACTIVITIJFLOW:4 种高级分支同步模式1.多重选择( Multiple Choice ) 在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N 个分支。
例子:比如去世博园玩,在门口检票后,可以选择A-E 个片区中的N 个进行观光。
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 )在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,只有在运行时根据条件来决定需要激活多少个实例。
对于运行时可以知晓实例数量的,可以通过设置 JOIN 节点的 multipliclty 来 实现。
JFLOW 中的支持情况:ACTIVITI 中的支持情况:同表单分合流配合节点访问规则可以实现这个功能 在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计 的时候并不知道,该模式与上一个模式的区别就是,在产生的实例执行时或 者已经执行完时,仍然有新的实例产生。